Skip to content

Commit

Permalink
Merge pull request #778 from CodexRaunak/recipe-remove-developers-tag
Browse files Browse the repository at this point in the history
Top level recipe to Remove <developers> tag
  • Loading branch information
jonesbusy authored Feb 7, 2025
2 parents 76f3288 + 270f1ea commit 2d21584
Show file tree
Hide file tree
Showing 5 changed files with 187 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
@import io.jenkins.tools.pluginmodernizer.core.model.Plugin
@import io.jenkins.tools.pluginmodernizer.core.model.Recipe
@param Plugin plugin
@param Recipe recipe

Hello `${plugin.getName()}` developers! :wave:

This is an automated pull request created by the [Jenkins Plugin Modernizer](https://github.com/jenkins-infra/plugin-modernizer-tool) tool. The tool has applied the following recipe to modernize the plugin:

<details aria-label="Recipe details for ${recipe.getDisplayName()}">
<summary>${recipe.getDisplayName()}</summary>
<p><em>${recipe.getName()}</em></p>
<blockquote>${recipe.getDescription()}</blockquote>
</details>

## Why is this important?

### Removing `developers` Tag from `pom.xml`

Jenkins no longer requires the `developers` tag in `pom.xml` since the `developers` section in the pom.xml file was traditionally used to specify individuals responsible for the plugin.
However, Jenkins has transitioned to using the Repository Permission Updater (RPU) for managing permissions and developer information.

Benefits of Removing `developers` Tag:

- **Simplification:** Eliminates unnecessary metadata from the pom.xml, making it cleaner and more maintainable.
- **Consistency:** Ensures that developer information is managed centrally through the RPU, reducing discrepancies.
- **Security:** Relies on the RPU's controlled permission management, enhancing the security of artifact deployments.

By removing the `developers` tag, we adhere to the modern Jenkins infrastructure standards and prevent the inclusion of outdated or redundant developer information in plugin metadata.
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@import io.jenkins.tools.pluginmodernizer.core.model.Plugin
@import io.jenkins.tools.pluginmodernizer.core.model.Recipe
@param Plugin plugin
@param Recipe recipe

chore: Remove `developers` tag from pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ recipeList:
- io.jenkins.tools.pluginmodernizer.core.recipes.UpgradeJenkinsTestHarnessVersion:
jenkinsVersion: 2.479.1
- io.jenkins.tools.pluginmodernizer.core.recipes.MigrateStaplerAndJavaxToJakarta
- io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag
- io.jenkins.tools.pluginmodernizer.RemoveDependencyVersionOverride
- io.jenkins.tools.pluginmodernizer.RemoveExtraMavenProperties
- io.jenkins.tools.pluginmodernizer.MigrateToJenkinsBaseLineProperty
Expand All @@ -179,6 +180,16 @@ recipeList:
onlyIfVersionsMatch: false # Keep newer dependencies
---
type: specs.openrewrite.org/v1beta/recipe
name: io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag
displayName: Remove developers tag
tags: ['chore']
description: Remove developers tag from the pom.xml.
recipeList:
- org.openrewrite.xml.RemoveXmlTag:
xPath: /project/developers
fileMatcher: '**/pom.xml'
---
type: specs.openrewrite.org/v1beta/recipe
name: io.jenkins.tools.pluginmodernizer.RemoveExtraMavenProperties
displayName: Remove extra maven properties
tags: ['chore']
Expand Down Expand Up @@ -391,6 +402,7 @@ recipeList:
minimumVersion: ${jenkins.core.minimum.version}
- io.jenkins.tools.pluginmodernizer.core.recipes.UpgradeJenkinsTestHarnessVersion:
jenkinsVersion: ${jenkins.core.minimum.version}
- io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag
- io.jenkins.tools.pluginmodernizer.RemoveDependencyVersionOverride
- io.jenkins.tools.pluginmodernizer.RemoveExtraMavenProperties
- io.jenkins.tools.pluginmodernizer.UpgradeBomVersion
Expand All @@ -412,6 +424,7 @@ recipeList:
minimumVersion: 2.462.3
- io.jenkins.tools.pluginmodernizer.core.recipes.UpgradeJenkinsTestHarnessVersion:
jenkinsVersion: 2.462.3
- io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag
- io.jenkins.tools.pluginmodernizer.RemoveDependencyVersionOverride
- io.jenkins.tools.pluginmodernizer.RemoveExtraMavenProperties
- io.jenkins.tools.pluginmodernizer.UpgradeBomVersion
Expand Down Expand Up @@ -443,6 +456,7 @@ recipeList:
jenkinsVersion: 2.346.1
- io.jenkins.tools.pluginmodernizer.core.recipes.AddDetachedPluginDependency:
jenkinsVersion: 2.346.3
- io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag
- io.jenkins.tools.pluginmodernizer.RemoveDependencyVersionOverride
- io.jenkins.tools.pluginmodernizer.core.recipes.code.ReplaceRemovedSSHLauncherConstructor
- io.jenkins.tools.pluginmodernizer.RemoveExtraMavenProperties
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -609,6 +609,42 @@ void shouldRemoveExtraProperties() {
"""));
}

@Test
void removeDevelopersTag() {
rewriteRun(
spec -> spec.recipeFromResource(
"/META-INF/rewrite/recipes.yml", "io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag"),
// language=xml
pomXml(
"""
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.jenkins.plugins</groupId>
<artifactId>empty</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>Empty pom</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
</project>
""",
"""
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.jenkins.plugins</groupId>
<artifactId>empty</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>Empty pom</name>
</project>
"""));
}

@Test
void upgradeToRecommendCoreVersionTest() {
rewriteRun(
Expand Down Expand Up @@ -648,6 +684,13 @@ void upgradeToRecommendCoreVersionTest() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/jenkinsci/empty-plugin.git</connection>
</scm>
Expand Down Expand Up @@ -778,6 +821,13 @@ void upgradeToRecommendCoreVersionTestWithoutPluginDependencies() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/jenkinsci/empty-plugin.git</connection>
</scm>
Expand Down Expand Up @@ -873,6 +923,13 @@ void upgradeToRecommendCoreVersionTestWithBaseline() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<properties>
<jenkins-test-harness.version>2.41.1</jenkins-test-harness.version>
<jenkins.baseline>2.440</jenkins.baseline>
Expand Down Expand Up @@ -1003,6 +1060,13 @@ void upgradeToRecommendCoreVersionTestWithMultipleBom() {
<version>${revision}-${changelist}</version>
<packaging>hpi</packaging>
<name>My API Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<properties>
<jenkins-test-harness.version>2.41.1</jenkins-test-harness.version>
<revision>2.17.0</revision>
Expand Down Expand Up @@ -1162,6 +1226,13 @@ void upgradeToUpgradeToLatestJava11CoreVersion() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/jenkinsci/empty-plugin.git</connection>
</scm>
Expand Down Expand Up @@ -1302,6 +1373,13 @@ void upgradeToUpgradeToLatestJava8CoreVersion() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/jenkinsci/empty-plugin.git</connection>
</scm>
Expand Down Expand Up @@ -1696,6 +1774,13 @@ void upgradeNextMajorParentVersionTest() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/jenkinsci/empty-plugin.git</connection>
</scm>
Expand Down Expand Up @@ -1827,6 +1912,13 @@ void upgradeNextMajorParentVersionTestWithBom() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<properties>
<jenkins-test-harness.version>2.41.1</jenkins-test-harness.version>
<java.version>17</java.version>
Expand Down Expand Up @@ -1981,6 +2073,13 @@ void upgradeNextMajorParentVersionTestWithBaseline() {
<version>1.0.0-SNAPSHOT</version>
<packaging>hpi</packaging>
<name>Empty Plugin</name>
<developers>
<developer>
<id>bhacker</id>
<name>Bob Q. Hacker</name>
<email>bhacker@nowhere.net</email>
</developer>
</developers>
<properties>
<jenkins-test-harness.version>2.41.1</jenkins-test-harness.version>
<jenkins.baseline>2.440</jenkins.baseline>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -541,4 +541,43 @@ public void testPrTitleForMergeGitIgnoreRecipe() {
// Assert
assertEquals("Merges .gitignore entries from archetype with existing .gitignore file.", result);
}

@Test
public void testFriendlyPrTitleRemoveDevelopersTag() {

// Mocks
Plugin plugin = mock(Plugin.class);
Recipe recipe = mock(Recipe.class);

doReturn("io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag")
.when(recipe)
.getName();

// Test
String result = TemplateUtils.renderPullRequestTitle(plugin, recipe);

// Assert
assertEquals("chore: Remove `developers` tag from pom.xml", result);
}

@Test
public void testFriendlyPrBodyRemoveDevelopersTag() {

// Mocks
Plugin plugin = mock(Plugin.class);
Recipe recipe = mock(Recipe.class);

doReturn("io.jenkins.tools.pluginmodernizer.RemoveDevelopersTag")
.when(recipe)
.getName();

// Test
String result = TemplateUtils.renderPullRequestBody(plugin, recipe);

// Just ensure it's using some key overall text
assertTrue(result.contains("Why is this important?"), "Missing 'Why is this important?' section");
assertTrue(
result.contains("Removing `developers` Tag from `pom.xml"),
"Missing 'Removing `developers` Tag' section");
}
}

0 comments on commit 2d21584

Please sign in to comment.