Plugin Health Scoring system

Goal: Provide a 'plugin health indicator' for plugin maintainers and Jenkins administrators

Status: Selected

Team

Details

Abstract

This project aims to introduce a metric system to calculate the health score of each plugin within the Jenkins ecosystem and reflect the final scores on the Plugin Site for the plugin maintainers and users. The health score of each plugin would be shown on the UI with a detailed report of strengths and areas of improvement, making it easier for maintainers to maintain their plugins, and for users to decide if they should install/use a plugin.

Rationale

Plugin maintenance is an extremely important phase of a plugin’s lifecycle. Keeping a plugin current with the ongoing development of Jenkins is key for a smooth operation. Keeping it current can require user interface improvements, dependency updates, and more. Measurements of the plugin’s "health" will help maintainers as they decide how to invest their development time, and will also help the users to decide if they should install and use a plugin. Plugins with a lower health score may be less likely to meet the user’s reliability needs. The plugin health score attempts to provide an accurate picture of how much care and help a plugin needs and makes it easier for every interested potential contributor to have an in-depth look at how they can fulfill those needs based on their expertise. This score also allows users to make a conscious decision before installing and/or using a plugin.

Implementation

A backend maven project which generates and deploys a JSON file containing the health score details of the plugins. Scrape each plugin’s repository and run some probes and collect the observations. Calculate Plugin Health score with the help of the above observations. Deploy the health scores via a JSON file similar to how Jenkins Update Center does it. A separate section on the Jenkins Plugin Site which displays the detailed report of the health score of each plugin by fetching the JSON data generated above.

Office hours

  • (General) Official weekly Jenkins office hours: Thursdays 3pm to 3:30pm UTC

  • (Project-based) Details regarding the Weekly project-specific office hours can be found inside our Meeting Document, along with the past recordings and important links.

Links