Plugin Management Library and CLI Tool Phase 2 GSoC Updates
At end of the first GSoC phase, I announced the first alpha release of the CLI tool and library that will help centralize plugin management and make plugin tooling easier.
Phase 2 has mainly been focused on improving upon the initial CLI and library written in Coding Phase 1. In particular, we’ve been focusing on getting the tool ready to incorporate into the Jenkins Docker Image to replace the install-plugins.sh bash script to download plugins. This work included parsing improvements so that blank lines and comments in the plugins.txt file are filtered out, allowing update centers and the plugin download directory to be set via environment variables or CLI Options, creating Windows compatible defaults, and fixing a bug in which dependencies for specific plugin versions were not always getting resolved correctly.
In parallel to getting the tool ready for Jenkins Docker integration, Phase 2 saw the addition of several new features.
Yaml Input
In addition to specifying the plugins they want to download via the --plugins
CLI option or through a .txt file, users can now use a Jenkins yaml file with a
plugins
root element.
Say goodbye to the days of specifying incremental
plugins like incrementals;org.jenkins-ci.plugins.workflow;2.20-rc530.b4f7f7869384
-
you can enter the artifactId, groupId, and version to specify an incremental plugin.
Making the Download Process More Transparent
Previously, the plugin download process was not very transparent to users - it was
difficult to know the final set of plugins that would be downloaded after pulling in
all the dependencies. Instead of determining the set of plugins that will be downloaded
at the time of download, users now have the option to see the full set of plugins
and their versions that will be downloaded in advance. With the --list
CLI
option, users can see all currently downloaded and bundled plugins, the set of all
plugins that will be downloaded, and the effective plugin set - the set of all
plugins that are already downloaded or will be downloaded.
Viewing Information About plugins
Now that you know which plugins will be downloaded, wouldn’t it be nice to know if these are the latest versions or if any of the versions you want to install have security warnings? You can do that now too.
Next Steps and Additional Information
The updates mentioned in this blog will be released soon so you can try them out. The focus of Phase 3 will be to continue to iterate upon and improve the library and CLI. We hope to release a first version and submit a pull request to Jenkins Docker soon. Thanks to everyone who has already tried it out and given feedback! I will also be presenting my work at DevOps World in San Francisco in a few weeks. You can use the code PREVIEW for a discounted registration ($799 instead of $1,499).
Feel free to reach out through the Plugin Installation Manager CLI Tool Gitter chat or through the Jenkins Developer Mailing list. I would love to get your questions, comments, and feedback! We have meetings Tuesdays and Thursdays at 6PM UTC.