You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Yesterday, I embarked on upgrading the Vagrant plugin, which had remained untouched for over 7 years. The plugin was still declaring Java 7 compatibility, causing our current Maven setup to reject it due to its inability to handle versions below Java 8.
Manual Upgrade Process
Unable to use our automated tools, I resorted to manual interventions:
These steps alone were insufficient. Further actions included:
Adding missing dependencies (incorporating code previously extracted from core and now available as plugins) to the pom file to achieve compilation
Questions and Considerations
Should we create a recipe listing these dependencies and add them automatically?
The plugin dependencies page suggests potential beneficial dependencies. Are we already extracting this information from updates.jenkins.io?
Should we add dependencies incrementally to test the waters?
Final Resolution
Mark Waite identified an outdated test-harness specific version reference. Removing this allowed the tests to pass, as maintaining an old test harness version is inadvisable due to compatibility issues with recent Jenkins core versions.
Key Insights
Our tool reaches its limits when dealing with plugins untouched since Java 7.
Many steps (if not all) could potentially be automated, particularly for plugins still dependent on older Java versions. Automated does not mean "with this tool", as we're stuck with the Maven compatibility problem with older Java versions.
We should implement "recipes" already listed in the "Upgrade a Plugin" tutorial.
Future Steps
While this single plugin upgrade doesn't reveal all potential limitations, I plan to periodically attempt upgrades on seriously outdated plugins to gather more insights for our automation process.
Note: The Vagrant plugin now successfully compiles with JDK 21.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Background
Yesterday, I embarked on upgrading the Vagrant plugin, which had remained untouched for over 7 years. The plugin was still declaring Java 7 compatibility, causing our current Maven setup to reject it due to its inability to handle versions below Java 8.
Manual Upgrade Process
Unable to use our automated tools, I resorted to manual interventions:
java.level
propertyThese steps alone were insufficient. Further actions included:
Questions and Considerations
Final Resolution
Mark Waite identified an outdated test-harness specific version reference. Removing this allowed the tests to pass, as maintaining an old test harness version is inadvisable due to compatibility issues with recent Jenkins core versions.
Key Insights
Future Steps
While this single plugin upgrade doesn't reveal all potential limitations, I plan to periodically attempt upgrades on seriously outdated plugins to gather more insights for our automation process.
Note: The Vagrant plugin now successfully compiles with JDK 21.
Beta Was this translation helpful? Give feedback.
All reactions