How to Start Contributing to Jenkins-Infra Plugin Modernizer Tool

Open source enthusiast who loves to build cool stuff.
Introduction
Jenkins is an essential part of the DevOps ecosystem, and its vast plugin library—over 2000 plugins—keeps it flexible and adaptable. However, keeping these plugins up to date is a challenge. This is where the Jenkins Plugin Modernizer Tool comes in.
If you're looking to contribute to an open-source project that has a significant impact, this tool is a great place to start. In this blog, we'll discuss what the Plugin Modernizer Tool is, its role in the Jenkins ecosystem, and how you can begin contributing effectively.
Understanding the Plugin Modernizer Tool
Plugin Modernizer is a generic CLI tool designed to automate the modernization of Jenkins plugins. It utilizes OpenRewrite recipes to apply transformations to the plugin, validating the applied transformations and creating pull requests with the results.
The CLI is also used to collect metadata from Jenkins plugins, such as the plugin's dependencies (including transitive) or JDKs used for building the plugin.
What is OpenRewrite?
The Plugin Modernizer Tool leverages OpenRewrite, an automated refactoring tool that helps update and modernize codebases. OpenRewrite works by applying recipes—predefined transformations—that analyze and rewrite code based on specific rules.
What Are Recipes?
Recipes in OpenRewrite are a set of transformations that automatically update code patterns. In the context of Jenkins, these recipes help modernize outdated plugin code, making it compatible with the latest Jenkins core versions and best practices. You can checkout recipes provided by open rewrite in their docs https://docs.openrewrite.org/recipes.
Why is This Tool Important?
With over 2000 plugins in Jenkins, keeping them updated manually is a daunting task. The Plugin Modernizer Tool automates much of this work, ensuring:
Plugins stay up to date with modern Jenkins practices.
Compatibility with the latest Java and Jenkins versions.
Reduced technical debt for plugin maintainers.
In simple words this CLI tool helps to modernize and refractor the code base of multiple jenkins plugins.
It will automatically fetch the code base of the plugin you want to modernize and then make automated pull requests to it.
Isn’t that cool?
If you're new to this tool, your contributions can have a real impact on keeping the Jenkins ecosystem healthy.
The mentors @jonesbusy and @gounthar and others are very friendly, the best part about open source is you get to work with experienced engineers in that field and you can learn a lot.
Getting Started with Contributions
Where to Begin?
You can clone the repo and then setup the tool locally, try to use it, experiment with it, and play with it.
There is no fix path on how to start contributing, but you can try to look for good first issues.
Also a good way to start contributing is by fixing test cases. They are usually straightforward and a great way to familiarize yourself with the codebase.
What to Expect?
Most of your initial time may be spent reading code rather than writing it. And that’s perfectly fine! You don’t need to fully understand everything before you start. Just get your hands dirty, and as you make contributions, your understanding will grow over time.
Tips for Beginners:
Don’t try to understand the entire codebase at once—Just try to get a high level overview of how this project works. As you make contributions you will understand the project layer by layer. Each contribution will open up a new layer of understanding of the project.
Make incremental contributions—even fixing a small bug is a step forward. Start with good first issues and then smoothly transition to core issues.
More contributions = deeper understanding—every issue you solve will help you uncover more layers of the project.
How to Approach Mentorship?
It’s completely okay to ask questions, but asking the right way makes a huge difference. Ask good questions.
Example of a Poorly Structured Question:
❌ "Hey @jonesbusy, I am getting problems running the tool locally. When I try to run it, I am getting this error."
Example of a Well-Structured Question:
✅ _"Hey @jonesbusy, upon running the tool locally, I encountered this error. I followed all the instructions in the README. I used Maven 3.9.7 and Java 21.0.5, as mentioned. I ran mvn clean install, then set up my environment variables as follows:
export GH_TOKEN=your_generated_token
export GH_OWNER=your_github_username
Maybe the README is outdated, or I might have missed something. Any guidance would be appreciated. Thanks!"_
See the difference? The second question is clearer, provides context, and makes it easier for the mentor to help you.
NOTE: Make it easier for the other person to help you.
The Learning Curve
When you start contributing, even "good first issues" might take hours to understand. But don’t get discouraged—this is completely normal. Over time:
Your contributions will become more meaningful.
Your familiarity with the project will increase.
Your speed and confidence will improve.
Remember: Quality of contributions matters more than quantity. Focus on making impactful changes rather than rushing to submit multiple PRs with minimal learning.
Final Thoughts
If you’re interested in contributing to the Plugin Modernizer Tool, don’t wait until you know everything. Start now.
Pick an issue.
Experiment with the code.
Learn as you go.
The best way to grow is by diving in and getting your hands dirty. Happy coding!



