Using OpenRewrite Recipes for Plugin Modernization or Automation Plugin Build Metadata Updates

Goal: Explore ways OpenRewrite recipes can be used for Jenkins plugin modernization or automation of plugin build metadata updates

Status: Selected

Team

Details

Abstract

OpenRewrite enables large-scale distributed source code refactoring for framework migrations, vulnerability patches, and API migrations via large-scale automated source code refactoring. While the original focus was on the Java language, OpenRewrite is continuously expanding language and framework coverage.

Rationale

The Jenkins ecosystem combines a monolithic core with a modular plugin system. True, this design provides a great degree of flexibility and robustness, yet also it poses challenges to propagating large-scale changes throughout the ecosystem. The lack of automation has led to many plugins falling behind with regard to ecosystem-wide migrations. This project proposes the creation of a new tool to apply generic transformations across the Jenkins ecosystem.

Implementation

The project will consist of the following steps:

  1. Research: Identify common patterns in Jenkins plugins that can be automated.

  2. CLI tool: Create a new CLI tool that can apply OpenRewrite recipes to Jenkins plugins.

  3. Recipes: Create OpenRewrite recipes that can be used to modernize Jenkins plugins.

  4. Integration: Integrate the new tool with the Jenkins plugin ecosystem.

Office hours

  • (General) Official weekly Jenkins office hours: Thursdays 13:00 UTC

  • (Project-based) Weekly project based office hours: Tuesdays 15:00 UTC (Direct link)

Links