Project goal: Introduce new features and improvements in the plugin installation manager
Skills to study/improve: Java, YAML, Command line tools, Package management tool theory
In 2019 there was a Jenkins Google Summer of Code project to create a tool to automatically install plugins from the command line based on a provided input. This is meant to help with creating reproducible environments and other places where you would want to install a certain set of plugins. The project was successful in creating a useable tool to install plugins with a 1.0 release. Over time, the plugin installation manager was improved and added to other components like official Jenkins Docker images.
As a part of this project, students are invited to introduce new features and improvements in the plugin installation manager. The list of enhancements is a subject for discovery as a part of the application process. Some of the ideas are available in the project tracker.
Visit the project page at https://github.com/jenkinsci/plugin-installation-manager-tool
Clone the project
Run the tests; there are several different lists of plugins
Run the Plugin Installation Manager for various combinations of plugins with a real Jenkins instance. See how the downloads and caching work.
Try out some edge cases to see what could be improved.
YAML/data structures/package management tools
Writing command line interfaces
How the Jenkins Docker image and Configuration as Code (CasC) work