-
-
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 Ant and Javadoc plugins #5338
Conversation
FYI once this change is merged and released, I plan to unbundle the External Monitor Job Type, LDAP, and PAM Authentication plugins next. I've already verified that it is safe to do so. |
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 from me
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 |
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 for the diligent testing!
Formally deprecating plugins left behind in jenkinsci/jenkins#5320, jenkinsci/jenkins#5338, jenkinsci/jenkins#5521, and jenkinsci/jenkins#5526.
Previously: #4242 and #5102. Dealing with bundled plugins in Jenkins core is painful. The fewer of these we have, the better. Here we stop bundling the Ant and Javadoc plugins in the Jenkins WAR. As I explain below, we do not actually need to bundle these any longer, just like in #4242 and #5102.
Implementation notes
ClassicPluginStrategyTest#testDisabledDependencyClassLoader
happened to be relying on the fact that Ant was a detached plugin in order to test JENKINS-18654. The test case was not specific to Ant and could work with any detached plugin, so I changed it to use JUnit instead. I stepped through it and the test case works the same way it did before. Since the change is buried in a.hpi
file in a.zip
file and isn't visible in GitHub, I am including it here:Testing Done
First, I verified that none of the other plugins we bundle in the WAR have a (non-implied) dependency on the Ant or Javadoc plugins. Only 20 plugins in the ecosystem explicitly depend on the Ant or Javadoc plugins, and none of them are bundled in the WAR. 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 the Ant or Javadoc plugins inWEB-INF/detached-plugins
) and running through the wizard. This installed Ant (which is a suggested plugin), but that was expected. The wizard completed successfully with no errors.Finally I had to make sure this wouldn't break any plugins consuming the classes provided by the Ant and Javadoc plugins. The last core release still containing the Ant and Javadoc functionality was 1.430. Trawling through the graveyard I found 202 plugins whose required core was ≤ 1.430. Of those, 198 returned no results for these three
grep(1)
commands:I could not find the source code for these three plugins …
… but I checked the binaries with
javap(1)
and found no references tohudson.tasks.ant
,hudson.tasks._ant
, orhudson.tasks.javadoc
there either.The only positive result I got from my search was RAD Builder, a plugin with 87 installs whose required core is 1.375. RAD Builder uses
hudson.tasks.Ant
inhudson.plugins.radbuilder.RAD
. On the off chance that one of these 87 users doesn't already have the Ant plugin installed (note that it is a suggested plugin in the wizard) they will need to install a recent release of the Ant plugin after this unbundling. I do not anticipate this being a major issue.RAD Builder testing
I tested shutting Jenkins down after going through setup without installing anything, putting
rad-builder.hpi
in$JENKINS_HOME/plugins/
, then starting Jenkins. Before this change, Ant and Javadoc get installedled; after, they don't, as expected, and RAD Builder fails to launch with:After I correct the problem by manually installing Ant, RAD Builder loads again.
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).