Short story long
As of October 24th, there is a new tab named Health Score on each plugin page of plugins.jenkins.io.
This new tab provides the plugin’s health score, along with every aspect that contributed to its score. The score is meant to be unbiased and all plugins are evaluated the same way.
Here is what it looks like:
.
Back to the beginning
This project started during the Google Summer of Code 2022 and was finished during the Google Summer of Code 2023. We created the Plugin Health Scoring project with and for the Jenkins community.
The purpose of the project is to provide an unbiased score to all plugins. The resulting score is based on data retrieved from each plugin, and this data is analyzed the same way for every plugin.
Understanding the scores
The scores are based on several data points gathered from each plugin.
We use the update-center.json
to populate the list of plugins and their source code location.
Based on that, we run what we call probes
on each plugin.
The purpose of these probes is strictly to gather data such as:
Is there a
Jenkinsfile
within the plugin repository?When was the last commit on the default branch of the repository?
etc.
Here is the list of probes used in the project, and you can find their source code in their repository.
Once the data is gathered, we run a list of scoring processes, which grade all plugins based only on the available data. All plugins are then scored using the same criteria. You can find the list of scoring processes on the Plugin Health Score site and their implementation in the Plugin Health Score repository.
Refer to the Plugin Health Scoring project documentation for further information about the architecture and behavior of the project.
How is it displayed?
The score of every plugin is fetched when the plugin site is built.
That data is then used to build the /<plugin-name>/healthscore/
page, using the component PluginHealthScore
.
That component can be found in the plugin site repository.
The scores and different categories are dynamic, and are coming directly from the Plugin Health Scoring project.
Disclaimer
The scores are not perfect and are just another indicator of the plugin state. We are still working on using more data from the plugin to contribute to the score.
The grading system that generates the score for each plugin is, I believe, subjective. However, it is not written in stone and can, and most likely will, evolve in the future.
If you feel there is something incorrect about a plugin score, this may indicate a false negative. Please raise an issue on the Plugin Health Scoring project if the score does not appear to be accurate.