Quantcast
Channel: Jenkins Blog
Viewing all articles
Browse latest Browse all 1114

Meet Raunak Madan – GSoC 2025 Contributor Working on Improving Plugin Modernizer Tool

$
0
0

Hey everyone, I am Raunak Madan, currently in my sophomore year pursuing my Bachelor’s in Computer Applications. It’s been fun and engaging working with such an amazing community in the past couple of weeks.

About the Plugin Modernizer Tool

The Plugin Modernizer Tool 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. For a detailed description of the project, please refer to the project page.

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.

What I did in the Community Bonding Period?

  • Contributions: I worked on enhancing the existing recipes, such as MigrateToJUnit5, adding new recipes - AddThrowsExceptionWhereAssertThrows, fixing bugs, and addressing chore issues like updating the OpenRewrite BOM version and updating test coverage.

  • Documenting Everything: Maintaining a record of the work done each day on tools like Notion, which helps to track daily progress and ensures transparency, as everyone can see your work and give feedback to improve. It also helps future contributors to see what work has been done.

  • Communication is key: One of the mentors, Bruno Verachten taught me that there is no such thing as “overcommunicating”, definitely asking questions without doing your research is not good, but if you feel there is anything your mentors should know or can help you out, feel free to reach out to them. Communication prevents roadblocks early on.

  • Planning and Scheduling: Plan the following weeks and months, discussing the proposal’s phases to gain more clarity, and communicate any time commitments, such as exams, to adjust the schedule accordingly.

What lies ahead (Coding Period)?

  • Storing metadata about the modernization process on the Jenkins reports site or maybe on an open-source repository for now.

  • Making REST API endpoints to access the modernization metadata.

  • Automating Running Recipes on Plugins with Low Health Scores.

  • Visualizing the metadata on the Jenkins Statistics Site.

  • Implementing more recipes that help in the modernization of plugins.

By automating modernization on plugins with low health scores and providing APIs to access the metadata, we can measure the impact of this tool in the Jenkins ecosystem.

This tool can reduce a lot of technical debt, and with the vast Jenkins Ecosystem, it surely has the potential to create a lot of impact; that’s what is amazing about this project. It will be fun working this summer on the plugin modernizer tool with my amazing team.

Acknowledgements

I would like to thank my mentors, Valentin Delaye, Bruno Verachten, Sridhar Sivakumar, Phillipp Glanz, and the community for giving me this opportunity. I am excited to learn, contribute, and share my experience with others.

You can find all the project-related notes and discussions here:


Viewing all articles
Browse latest Browse all 1114

Trending Articles