Adding Probes to Plugin Health Score
- Mentors
- Mostafa Ashraf Mohamed, Dheeraj Singh Jodha, Adrien Lecharpentier
- Organization
- Jenkins
- Technologies
- postgresql, java
- Topics
- Data extraction from GitHub, Data analysis applied to data representation
Project Abstract
The project proposes to add new probes to the Plugin Health Score tool. Originally started in 2022 as a part of a GSoC project, this tool determines the health score of a plugin. Probes are the heart of the tool. To extend the work started last year, I propose adding new probes to make the tool more valuable and feature-complete.
Project Description
Jenkins is an almost two-decade-old open-source project with over 1000 repositories. Plugins bridge the gap between Jenkins and different environments.
A project as mature and large-scale as Jenkins requires active involvement from active maintainers.
In general, probes serve two purposes within the context of this toolset:
To collect the data to compute the score of the plugin systematically. Based on the computed score, the health of the plugin can be determined.
Based on the score future contributors, maintainers, and adopters decide which plugin(s) they want to invest their time in.
Project Deliverables
Designing of the probes
Identify the key features and functionality of the plugins.
Define the metrics that would contribute to the Plugin Health Score.
The more probe criteria the plugin meets, the higher the health score of the plugin.
Deciding the probe’s interaction with other probes
Determining how the probe would contribute to the score.
Adding unit test cases for each probe and scoring implementation. If time permits, I will add integration test cases too.
The final delivery would be 10 new probes to the Plugin Health Scoring System.
These probes will contribute to calculating the overall health of a plugin.
By the time the project ends, the tool will approximately have 24 probes in all (10 new + 14 existing probes)
Proposed Implementation Plan
- Build each probe, implement it, score it and write its test cases.
- Define interaction of probes with each other.
- Define execution order of each probe.
Stretch Goals
- Adding metrics probe
- Writing integration test cases