-
-
Notifications
You must be signed in to change notification settings - Fork 8.9k
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
Remove bundled External Monitor Job Type, LDAP, and PAM Authentication plugins #5445
Remove bundled External Monitor Job Type, LDAP, and PAM Authentication plugins #5445
Conversation
Interesting, I got 255 using
How did you do this? (FWIW it looks like no plugin has an explicit dependency on these, which would allow use of usage-in-plugins with a custom class list to replace the grep for redundancy. I may still do this for fun, but not a requirement.) |
I generally use
No need; creating
then using
produced no references. |
Makes sense, I'm not used to non-bees caring about CB proprietary update sites 😉 Thanks for the usage-in-plugins confirmation. Time to slim down the war. |
FTR, if you plan to continue doing these PRs: Mailer usage looks annoying based on plugins it shows up in, but the three plugins between Mailer and Matrix Project look really easy to unbundle based on usage-in-plugins. So skipping Mailer for now and continuing with those afterwards could be a reasonable next step. Classes file I used for usage-in-plugins
( |
I was considering it, but not until the next LTS cycle. Slow and steady wins the race.
On the other hand, Mailer is literally the most popular Jenkins plugin of all time. It has 298,206 installations and is a suggested plugin. So do we really gain much by bundling it? I honestly can't imagine a production Jenkins controller without Mailer installed. |
Mailer was the first plug-in split out from core, hence it having the most installs due to the detached plug-in system. It's certainly a commonly used plug-in at least. |
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.
+1 for External Monitor and PAM auth, they are not actively used AFAIK. For LDAP I am rather +0. Although there is no strict need to bundle it, it is used widely
Why would this make a difference? This isn't Jenkins 1.x, bundled plugins are used very rarely.
Not quite: jenkins/core/src/main/resources/jenkins/split-plugins.txt Lines 9 to 17 in 5382345
Sorry for derailing your nice PR @basil , I didn't expect a discussion to happen. |
BTW it would be great to clean these up in batch somehow. Makes for a lot of noise in GH searches. |
Specifically https://javadoc.jenkins.io/plugin/mailer/hudson/tasks/Mailer.UserProperty.html is a widely used API. |
We may merge it in 24 hours if there is no negative feedback. Please see the merge process documentation for more information about the merge process |
Previously: #4242, #5102, and #5338. Dealing with bundled plugins in Jenkins core is painful. The fewer of these we have, the better. Here we stop bundling External Monitor Job Type, LDAP, and PAM Authentication in the Jenkins WAR. As I explain below, we do not actually need to bundle these any longer, just like in #4242, #5102, and #5338.
Testing Done
First, I verified that none of the other plugins we bundle in the WAR have a (non-implied) dependency on External Monitor Job Type, LDAP, or PAM Authentication. It turns out that 0 plugins on the Update Center explicitly depend on External Monitor Job Type, LDAP, or PAM Authentication. So we are good to go there.
Next, I did a realistic smoke test by starting up Jenkins with
java -jar jenkins.war
(after verifying the WAR no longer contained External Monitor Job Type, LDAP, or PAM Authentication inWEB-INF/detached-plugins
) and running through the wizard. This installed LDAP and PAM Authentication (which are both suggested plugins), but that was expected. The wizard completed successfully with no errors. Note that External Monitor Job Type was not present in the list of installed plugins after completing the wizard.Finally I had to make sure this wouldn't break any plugins consuming the classes provided by External Monitor Job Type, LDAP, or PAM Authentication. The last core release still containing External Monitor Job Type, LDAP, and PAM Authentication functionality was 1.467. Trawling through the graveyard I found 291 plugins whose required core was ≤ 1.467. Of those, 286 returned no results for the following
grep(1)
commands:My
grep(1)
commands only found a match incrittercism-dsym
, but it was a false positive: someone had erroneously committed thetarget/jenkins-for-test/
directory into the source tree.I could not find the source code for these four plugins …
… but these all seem outdated and unlikely to depend on External Monitor Job Type, LDAP, or PAM Authentication. I do not anticipate this being a major issue.
Proposed changelog entries
ClassNotFoundException
or similar.Proposed upgrade guidelines
See above.
Submitter checklist
Proposed changelog entries
section only if there are breaking changes or other changes which may require extra steps from users during the upgradeDesired reviewers
@daniel-beck
Maintainer checklist
Before the changes are marked as
ready-for-merge
:Proposed changelog entries
are correctupgrade-guide-needed
label is set and there is aProposed upgrade guidelines
section in the PR title. (example)lts-candidate
to be considered (see query).