-
Improvement
-
Resolution: Fixed
-
Minor
The following yaml file results in a bad dependency version for the git plugin:
plugins: - artifactId: configuration-as-code source: version: 1.32 - artifactId: git source: version: 4.0.0 - artifactId: workflow-aggregator source: version: 2.6 - artifactId: ssh-slaves source: version: 1.31.0 - artifactId: build-user-vars source: version: 1.5
When Jenkins starts, the following happens:
2019-11-18 15:14:50.418+0000 [id=33] SEVERE jenkins.InitReactorRunner$1#onTaskFailed: Failed Loading plugin Jenkins Git plugin v4.0.0 (git) java.io.IOException: Jenkins Git plugin version 4.0.0 failed to load. - Matrix Project Plugin version 1.4 is older than required. To fix, install version 1.14 or later. at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:922) at hudson.PluginManager$2$1$1.run(PluginManager.java:545) at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296) at jenkins.model.Jenkins$5.runTask(Jenkins.java:1118) at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214) at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)
It is because the git plugin lists the matrix plugin as optional:
Plugin-Dependencies: configuration-as-code:1.30;resolution:=optional,w orkflow-scm-step:2.9,workflow-step-api:2.20,credentials:2.3.0,git-cli ent:3.0.0,mailer:1.23,matrix-project:1.14;resolution:=optional,parame terized-trigger:2.33;resolution:=optional,promoted-builds:3.2;resolut ion:=optional,scm-api:2.6.3,ssh-credentials:1.17.2,structs:1.20,token -macro:2.8;resolution:=optional
But at the same time, the workflow-aggregator depends on the lockable-resources, which depend on matrix-project 1.4. So even though the git plugin lists the matrix-project:1.14 as optional, if it's there, it has to be the "right" version for the git plugin, which means 1.14 instead of 1.4.
The workaround is to explicitly list matrix-project 1.14 in the yaml.
Can the plugin manager support this type of situation?