Deprecating or removing a Plugin

Some plugins may be replaced by others or just become irrelevant (e.g. integration with a service which was shut down). We do not recommend deleting source code outright, even a stale or no-longer-relevant code can still be educational. However, we do have a mechanism for deprecating or hiding plugins in the Jenkins update centers. This page describes the process.

Deprecating a plugin

  1. Set a deprecated label for the plugin. It can be done in 2 ways:

    • Put a deprecated topic in the plugin’s GitHub repository. If you have multiple plugins inside a single repository, it will apply to all of them

    • Add a deprecated label to the plugin entry in the Update Center’s label-definitions.properties file

  2. Update the plugin’s documentation to explain the reason of the deprecation

  3. Release the plugin and put the deprecation notice into the changelog

Removing a plugin from Update Centers

  1. Deprecate the plugin as documented above

  2. Submit a pull request to the Update Center’s artifact-ignores.properties file

  3. Archive the plugin’s repository

    • If you have admin permissions in the repository, it is possible to do it from the GitHub’s web interface

    • Otherwise, create a Jenkins Jira ticket to archive the plugin’s repository (project: INFRA, component: github)

Reverting deprecation/removal

If required, it is possible to revert all the actions above. A Jenkins Jira ticket is required to unarchive a plugin, but the rest can be done via pull requests to the respective update center files mentioned above.

References