Uploaded image for project: 'Clover'
  1. Clover
  2. CLOV-1775

Rename maven-clover2-plugin artifactId to clover-maven-plugin

    • Icon: Suggestion Suggestion
    • Resolution: Fixed
    • 4.1.0
    • Maven plugin
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

      Decision

      We are currently working on renaming Maven Clover2 Plugin according to the naming convention recommended by the Apache Maven project.

      Due to a fact that this is a major breaking change, forcing customers to modify their POMs, CI build plans etc, it will be done in the nearest major Clover release (currently planned for end of 2015) and appropriate migration guides will be prepared.

      New plugin name will be: clover-maven-plugin

      Problem reported:

      According the Maven's Plugin Naming Convention, Clover's plugin artifactID violates the Apache Maven Trademark. The artifactId should be clover2-maven-plugin. I would even suggest removing the 2 from the artifactId.

      Plugin Naming Convention and Apache Maven Trademark

      Scope of the change:

      Before release

      investigate if we can use clover-maven-plugin or must use cloverX-maven-plugin - will be renamed to clover-maven-plugin
      decide if major Clover release will be numbered 4.1.0 or 5.0.0 (as per Semantic Versioning)
      prepare migration message in maven-clover2-plugin pom.xml for versions 4.0.x, similarly as it was done for Clover Core (com.cenqua.clover:clover:3.3.0) - message added in pom in 4.0.6
      rename maven-clover2-plugin artifactId for 4.1.0 / 5.0.0 , update integration tests
      prepare migration guide for Clover 4.1 / 5.0 Release Notes
      update Clover's Tutorial (Moneybags bundled in clover-ant.zip) -> see also CLOV-1827

      After release

      See CLOV-1828.

            [CLOV-1775] Rename maven-clover2-plugin artifactId to clover-maven-plugin

            A follow up after Clover 4.1.0 is released: CLOV-1828.

            Marek Parfianowicz added a comment - A follow up after Clover 4.1.0 is released: CLOV-1828.

            Marek Parfianowicz added a comment - - edited

            Hi Justin,

            Thank you very much for reporting this issue, I wasn't aware of this web page you linked. Building maven-clover2-plugin under Maven 2.x raises no errors, compilation under Maven 3.x prints a message:

            Artifact Ids of the format maven-___-plugin are reserved for
            plugins in the Group Id org.apache.maven.plugins
            Please change your artifactId to the format ___-maven-plugin
            In the future this error will break the build.
            

            which looks like a deprecation warning.

            The only reason why the plugin is still named 'maven-clover2-plugin' is backward compatibility. Plugin is named this way since version 2.3.1, released on 27-May-2008. According to a web.archive.org, at that time a naming conversion for ALL plugins was "maven-xyz-plugin":

            http://web.archive.org/web/20080522154238/http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

            The statement:

            Calling it maven-<yourplugin>-plugin (note "Maven" is at the beginning of the plugin name) is strongly discouraged since it's a reserved naming pattern for official Apache Maven plugins. Using this pattern is an infringement of the Apache Maven Trademark.

            was introduced around July 26, 2013:

            http://web.archive.org/web/20130726033911/http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

            I'd like to notice that renaming a plugin is a breaking change.

            There is a problem with renaming it to 'clover-maven-plugin'. Reason? Typing 'mvn clover:setup' in a project where clover-maven-plugin is not explicitly defined in pom.xml causes that Maven resolves the 'clover:setup' as 'com.atlassian.maven.plugins:maven-clover-plugin:maven-plugin:3.7' which is wrong. So it would be very confusing for customers.

            The maven-clover-plugin:3.7 is an old Maven plugin, which used a numbering scheme different from Clover Core (com.cenqua.clover:clover / com.atlassian.clover:clover), for example maven-clover-plugin:3.7 was for Clover 2.1

            Current version numbering scheme is that we always try to use the same version number for Clover Core and all it's integrations (Maven, Grails, Eclipse, IDEA etc).

            One of the options would be to rename it to a completely different artifact, e.g. "clover4-maven-plugin". However, I'm not sure if we could do this in a bugfix release.

            Marek Parfianowicz added a comment - - edited Hi Justin, Thank you very much for reporting this issue, I wasn't aware of this web page you linked. Building maven-clover2-plugin under Maven 2.x raises no errors, compilation under Maven 3.x prints a message: Artifact Ids of the format maven-___-plugin are reserved for plugins in the Group Id org.apache.maven.plugins Please change your artifactId to the format ___-maven-plugin In the future this error will break the build. which looks like a deprecation warning. The only reason why the plugin is still named 'maven-clover2-plugin' is backward compatibility. Plugin is named this way since version 2.3.1, released on 27-May-2008. According to a web.archive.org, at that time a naming conversion for ALL plugins was "maven-xyz-plugin": http://web.archive.org/web/20080522154238/http://maven.apache.org/guides/plugin/guide-java-plugin-development.html The statement: Calling it maven-<yourplugin>-plugin (note "Maven" is at the beginning of the plugin name) is strongly discouraged since it's a reserved naming pattern for official Apache Maven plugins. Using this pattern is an infringement of the Apache Maven Trademark. was introduced around July 26, 2013: http://web.archive.org/web/20130726033911/http://maven.apache.org/guides/plugin/guide-java-plugin-development.html I'd like to notice that renaming a plugin is a breaking change. There is a problem with renaming it to 'clover-maven-plugin'. Reason? Typing 'mvn clover:setup' in a project where clover-maven-plugin is not explicitly defined in pom.xml causes that Maven resolves the 'clover:setup' as 'com.atlassian.maven.plugins:maven-clover-plugin:maven-plugin:3.7' which is wrong. So it would be very confusing for customers. The maven-clover-plugin:3.7 is an old Maven plugin, which used a numbering scheme different from Clover Core (com.cenqua.clover:clover / com.atlassian.clover:clover), for example maven-clover-plugin:3.7 was for Clover 2.1 Current version numbering scheme is that we always try to use the same version number for Clover Core and all it's integrations (Maven, Grails, Eclipse, IDEA etc). One of the options would be to rename it to a completely different artifact, e.g. "clover4-maven-plugin". However, I'm not sure if we could do this in a bugfix release.

              Unassigned Unassigned
              36308c403599 Justin Wesley
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved:

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - Not Specified
                  Not Specified
                  Logged:
                  Time Spent - 10m
                  10m