Improving "Plugin Health Score" scoring abilities

Project goal: To add additional probes and review scorings to the "Plugin Health Score" project.

Skills to study/improve: Java, Data extraction from GitHub repositories, Data analysis applied to data representation

NOTE: This idea is published as a draft under active discussion, but it is confirmed in principle. It is FINE to apply to it. The scope and the suggested implementation may change significantly before the final version is published. Sections like quickstart guide and newbie-friendly issues may be also missing. As a contributor, you are welcome to request additional information and to join the discussions using channels linked on this page.

Details

Background

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.

“Plugin Health Score” was a successful GSoC 2022 project. It laid the principles, the framework, and the automation for this important feature. For reference, the code product of the original 2022 GSoc project can be viewed on GitHub.

Measurements of the plugin’s "health" helps Jenkins maintainers as they decide how to invest their development time. With such a system, items that need to be maintained, improved, or adapted are identified.
For example, having Release Drafter correctly configured and Pull Request Labeling in place is a recognized good practice. It reduces the effort to provide a changelog with each release.
Another example: having Dependabot properly configured will reduce the dependency update effort by automatically submitting update pull requests.

Measurements of the plugin’s "health" will help 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. It is similar to a badly maintained garden that will make harvesting difficult and not yield good vegetables or fruits.

The probes purpose is to gather data on the plugins. The plugin health score already has a few probes implemented. Now it’s your turn to implement more probes.

A “Plugin Health Score Probe” will be executed on all the plugins to get the status or measure a given indicator. Some can be quite simple, but others need creativity and skills. The more probes we have, the better the health score quality and its representativity. Bottom line: we need more probes…

With those new probes, in addition of the existing ones, we can improve the score representation of the plugin.

Quick Start

A presentation of the "Plugin Health Score" project was made during the 10-Feb-2022 GSoC Office Hour.

A presentation of the status of the "Plugin Health Score" project at the end of GSoC 2022 was made during the 05-Oct-2022 GSoC Final Edition.

Some simple probe ideas

  • Comparing the existing parent pom to the latest one?

  • Comparing the base Jenkins version to the latest one?

  • See if spotbugs has been configured to catch most of the bugs

  • Has a contributing guide

  • Has enabled incremental builds

  • Has replaced JSR-305 Nonnull and CheckForNull annotations with spotbugs annotations

Existing probes are listed at Plugin Health Scoring :: Probes

Skills to Study and Improve

  • Java

  • Data extraction from GitHub repositories

  • Data analysis applied to data representation

Project Difficulty Level

Beginner to Intermediate

Project Size

175 hours

Expected outcomes

New probes to help improve the plugin health score.

Details to be clarified interactively, together with the mentors, during the Contributor Application drafting phase.

Improving and new scoring implementation in the project.

Newbie Friendly Issues

For some newbie friendly issues, please refer to the Plugin Health Scoring issue tracker on GitHub. Look out for the friendly label for some issues that can be served as an introduction to the project.

Potential Mentors

Project Links

Organization Links

> Go back to other GSoC 2024 project ideas