Chris Kilding created MNG-7238:
----------------------------------

             Summary: Dependency deprecation indicators
                 Key: MNG-7238
                 URL: https://issues.apache.org/jira/browse/MNG-7238
             Project: Maven
          Issue Type: New Feature
            Reporter: Chris Kilding


I would like to propose a new Maven feature: dependency deprecation indicators.

In a nutshell, the idea is to let maintainers set a 'deprecated' metadata 
indicator on a Maven artifact in a repository. This will indicate to users that 
the artifact should no longer be used.

The Maven CLI tools could then react to deprecation indicators in the 
appropriate ways:
 * {{mvn}} itself: Print a warning when deprecated dependencies are seen.
 * Maven Enforcer Plugin: Add a {{<banDeprecatedDependencies>}} rule which 
throws an error when deprecated dependencies are seen. (Also have a 'skip' 
property which allows the rule to be temporarily bypassed if needed.)
 * Maven Dependency Tree: Print a {{[deprecated]}} notice next to any 
deprecated dependency in the tree.

We can also envisage automated agents like Dependabot or Snyk using these 
indicators to alert developers about deprecated dependencies in their stacks, 
and even assisting developers to remove them.

Some of the major build tools outside the JVM already have deprecation 
indicators:
 * NPM: [https://docs.npmjs.com/cli/v7/commands/npm-deprecate]
 * Nuget: [https://docs.microsoft.com/en-us/nuget/nuget-org/deprecate-packages]
 * Composer: 
[https://tomasvotruba.com/blog/2017/07/03/how-to-deprecate-php-package-without-leaving-anyone-behind/]
 * Cocoapods: [https://guides.cocoapods.org/syntax/podspec.html#deprecated]

So the feature has precedent, and I believe it would be useful to have in Maven.

This Jira ticket follows up from the conversation "Feature proposal: Dependency 
deprecation indicators" on the maven-dev mailing list.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to