The provided dependency on commons-logging is inconsistent with the general design of this POM, which avoids specifying Jenkins core dependencies in order to allow them to be fetched from the Jenkins core BOM.
For a comprehensive fix, the provided dependency should be removed both from here and from Jenkins core. The main implementation/testing challenge here is to avoid a regression with regard to https://www.slf4j.org/codes.html#release
The relevant test scenarios are:
- Jenkins core before the change to remove
commons-logging, plugin POM before the change to remove commons-logging (the status quo)
- Jenkins core before the change to remove
commons-logging, plugin POM after the change to remove commons-logging (the scenario when a plugin updates its parent POM but not its core)
- Jenkins core after the change to remove
commons-logging, plugin POM before the change to remove commons-logging (the scenario when a plugin updates its core but not its parent POM)
- Jenkins core after the change to remove
commons-logging, plugin POM after the change to remove commons-logging (the scenario when a plugin updates both its core and its parent POM)
A test scenario should be set up to expose https://www.slf4j.org/codes.html#release in both core and a plugin, and the results of (1) in both scenarios should be measured to establish a baseline. Then (2), (3), and (4) should also be measured in all applicable scenarios to assure there are no regressions.
The
provideddependency oncommons-loggingis inconsistent with the general design of this POM, which avoids specifying Jenkins core dependencies in order to allow them to be fetched from the Jenkins core BOM.For a comprehensive fix, the
provideddependency should be removed both from here and from Jenkins core. The main implementation/testing challenge here is to avoid a regression with regard to https://www.slf4j.org/codes.html#releaseThe relevant test scenarios are:
commons-logging, plugin POM before the change to removecommons-logging(the status quo)commons-logging, plugin POM after the change to removecommons-logging(the scenario when a plugin updates its parent POM but not its core)commons-logging, plugin POM before the change to removecommons-logging(the scenario when a plugin updates its core but not its parent POM)commons-logging, plugin POM after the change to removecommons-logging(the scenario when a plugin updates both its core and its parent POM)A test scenario should be set up to expose https://www.slf4j.org/codes.html#release in both core and a plugin, and the results of (1) in both scenarios should be measured to establish a baseline. Then (2), (3), and (4) should also be measured in all applicable scenarios to assure there are no regressions.