Hi all,

I have a question about changing the Jenkins LTS versions in
buildPlugin.recommendedConfigurations() which is a part of the Jenkins
Pipeline Library <https://github.com/jenkins-infra/pipeline-library/>. This
is a utility method which provides a list of the recommended configurations
for plugin build pipelines (see the code below).

The method was introduced as a part of the Java 11 support effort, and the
version was pinned to 2.164.1 which was the first LTS to officially support
Java 11.The intent was to change the recommended configuration over time,
and it is reflected in the documentation: "It is also possible to use a
buildPlugin.recommendedConfigurations() method to get recommended
configurations for testing. Note that the recommended configuration may
change over time, and hence your CI may break if the new recommended
configuration is not compatible".

There are around 70 plugins using the method to retrieve the recommended
configurations, and there is a pull request
<https://github.com/jenkins-infra/pipeline-library/pull/92> from Jesse
Glick to update the version. Although the pull request is totally legit
w.r.t to the documentation, there is a risk of breaking master branch
builds for some plugins (as designed and documented). There is also a pull
request <https://github.com/jenkins-infra/pipeline-library/pull/94> from
Baptiste Mathus which pins the version and allows overriding it; this PR
changes the purpose of the method a bit.

Although there are great suggestions from Jesse about a longer-term
solution (pulling the version from pom.xml and using Dependabot to bump
it), I would like to ask plugin maintainers about short-term steps:

   - Bump the version, potentially break CI for plugins (Jesse's PR)
   - Pin the version, allow overriding it (Baptiste's PR)
   - Reject both PRs, keep status quo and old Jenkins core until a
   plugin-repo-side suggestion is implemented by somebody

Any feedback/and comments will be appreciated.

Thanks in advance, Oleg

P.S: Code:

static List<Map<String, String>> recommendedConfigurations() {
def recentLTS = "2.164.1"
def configurations = [
[ platform: "linux", jdk: "8", jenkins: null ],
[ platform: "windows", jdk: "8", jenkins: null ],
[ platform: "linux", jdk: "8", jenkins: recentLTS, javaLevel: "8" ],
[ platform: "windows", jdk: "8", jenkins: recentLTS, javaLevel: "8" ],
[ platform: "linux", jdk: "11", jenkins: recentLTS, javaLevel: "8" ],
[ platform: "windows", jdk: "11", jenkins: recentLTS, javaLevel: "8" ]
]
return configurations
}

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAPfivLBRoFNVj67sgbRBH%3DiVequYXkuYVdckFm6dvav9SQhV2Q%40mail.gmail.com.

Reply via email to