-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Recommend specific core versions for the dependency #3643
Recommend specific core versions for the dependency #3643
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the technique very much! It fits nicely with the idea to use the knowledge from update center in the generation of the Windows download page so that we stop using the symoblic link to latest
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Great to have it automated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using explicit versions is a great help for everybody! Thanks. This makes #3630 obsolete.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fine I suppose, though my inclination is still to say that this is all making things unnecessarily complicated and that the most straightforward policy is just to do new plugin development against a current LTS baseline. Whenever I have checked plugin installation statistics, there are not really many people who are updating the plugin yet are not updating core to at least current LTS (if not weeklies), so the actual impact of the dependency is probably not that big; and having old core dependencies causes real harm to the Jenkins ecosystem. IMHO.
* *Prefer ".1" LTS releases over weekly versions and later releases within an LTS line* for greater compatibility. | ||
LTS releases with the same baseline usually don't have differences that would matter to plugin developers, and if they do, they may well behave differently on supposedly compatible weekly releases published shortly after the LTS baseline. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure I agree with this advice (the *.1
part). Better to be testing the plugin against a core version that users are actually likely to have installed than some obsolete version with subtly different behavior. As for weeklies published after the LTS baseline, well yes but the same problem applies to *.1
also.
Could you elaborate? The major reason I'm aware of is implied dependencies which this script takes care of. Most other reasons (outdated tooling and configuration etc.) seem obsolete since plugin parent POM 2.0 became independent of the core release. FWIW I have an improvement over this PR prepared locally that I plan to submit as future enhancement to never recommend versions older than 36 weeks (i.e. generally recommend "previous" and "previous previous" LTS lines).
There are many maintainers for which stats are not useful as plugin releases are usually too infrequent, so it's more difficult to "prove" this relationship beyond a general statement on this page. |
There are lots of miscellaneous stuff that is best kept up to date in plugin sources—newly deprecated APIs, changes to nullability annotations, deleted Many aspects of tooling are indeed independent as of
OK, that would be an improvement from my PoV.
Indeed. ¹Even though we cannot literally use Dependabot for this purpose yet—nor can |
Submitted an alternative #3655 with more aggressive baseline recommendation in the case that there were no recent plugin splits from core. |
I'd like to give this 24 hours for further discussion, then I intend to merge #3655. I think it is the right approach. Plugin authors can certainly ignore the recommendations or follow their own preferences, but I think recommending 2.204 (LTS - 2) and 2.222 (LTS - 1) as the preferred baselines are well suited to the Jenkins project. |
Closing this and merging #3655 |
Alternative to / parts to be reused in #3630 by @uhafner.
I basically wrote this just to demonstrate that we're now able to get update site tier metadata to make more specific recommendations as mentioned in #3630 (comment). Then I added
split-plugins.txt
and now it's essentially a fully automated recommendation engine for core baselines.I updated the text a bit to make sense "standalone" with the recommendations given, but the script parts could just as easily be integrated into #3630.