Plugin Installation Manager Tool Improvements

Project goal: Update the plugin installation manager to integrate with the docker image and Configuration as Code projects

Skills to study/improve: Java, JSON, Command line tools, Package management tool theory

Details

Background

Last summer, 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. As the project progressed over the summer, the student received a lot of enhancement suggestions that were great, but out of the scope of the summer project. This summer, the project should incorporate enough enhancements to be used by the official Jenkins docker tooling and Configuration as Code.

Following the project tracker, there are several tickets specific to better running with the docker image that would make it more universal. Most of these revolve around using alternative locations for downloading plugins, and sharing a cache with the maven repo.

Along with improvements that are already known, it’s important for the student to work with the community to integrate the tool with the docker image and with Configuration as Code. There are some requirements the student will have to discover to fully integrate the plugin installation manager tool.

Quick Start

  1. Clone the project

  2. Run the tests; there are several different lists of plugins

  3. You would also want to try experimenting with other lists of plugins; you can almost pick at random and see how it installs. You can launch an instance of Jenkins using your created plugin folder to see how it loads

Open Questions

How do we use other update-center jsons without compromising download accuracy? How do we better catch edge cases for dependent plugins?

Skills to Study and Improve

  • Java

  • JSON/data structures/package management tools

  • Writing command line interfaces

  • How the Jenkins Docker image and Configuration as Code (CasC) work

Newbie Friendly Issues

For information about how to contribute to and what to work on, please use the gitter channel. Since the project is in active development, these issues could be closed by the time you are looking at them.

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2020 project ideas