+1 to that definition On Wed, Mar 6, 2024 at 3:14 PM Konrad Windszus <[email protected]> wrote:
> Maven Core plugins are listed in https://maven.apache.org/plugins/. > But I would say that this versioning policy applies to all plugins in > groupId org.apache.maven.plugins….. > > Konrad > > > On 6. Mar 2024, at 15:06, Gary Gregory <[email protected]> wrote: > > > > One issue from a non-Maven dev (me) is that I have no idea what is a > > Maven "core" plugin vs. not. I would make that obvious for users, and > > no, the "maven-" prefix does not make it obvious: > > > > maven-clean-plugin -> maven-core-clean-plugin or maven4-core-clean-plugin > > > > I'm also not sure the "plugin" suffix is needed: > > > > maven-clean-plugin -> maven-core-clean or maven4-core-clean > > > > My preference is "maven4-core-clean" > > > > Gary > > > > On Wed, Mar 6, 2024 at 8:59 AM Tamás Cservenák <[email protected]> > wrote: > >> > >> Howdy, > >> > >> We have several topics that need to be discussed. > >> > >> I. Core Plugin Versioning > >> > >> History: When Maven2 was born, and started using plugins "as we know > them > >> today" (Maven 1 was a very different beast), the Core Plugin versions > were > >> started as 2.0 on purpose. Just check the Maven Central for historical > >> versions, some examples: > >> * clean > >> > https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/ > >> * compiler > >> > https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/ > >> * jar > >> > https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-jar-plugin/ > >> * surefire > >> > https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/ > >> * dependency > >> > https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/ > >> > >> So, Maven2 "as a fresh release" got all new shiny 2.0 plugins at the > >> beginning. Later on, when Maven3 came to existence, it was able to use > >> Maven2 plugins, the plugins were slowly migrated to become "Maven 3 > >> plugins" (Maven2 could not use them anymore). This was denoted by the > "3.x" > >> major plugin version jump. > >> > >> So far, we have no 4.x plugin release of anything (M releases do not > >> count). But my question is the following: > >> > >> How should we distinguish similar changes for Maven4? > >> > >> Explanation: when a plugin is migrated to Maven4 API, it will mean > Maven3 > >> will NOT be able to use anymore (will be incompatible). Similarly as > >> before, Maven4 CAN run the "Maven 3" plugins, and will retain this > >> capability for some time. But other ways it does not work, nor never > worked > >> (Maven3 will not be able to run Maven4 plugin, just like Maven2 never > ran > >> Maven3 plugin). > >> > >> For me, the logical answer to this question is the use of major version > >> 4.x. So just like it happened with Maven 2 to Maven 3 transition, a > plugin > >> version 2.x meant "Maven2 plugin", version 3.x of plugin meant "Maven3 > >> plugin" (Maven2 incompatible). > >> > >> As otherwise, if we start releasing Core plugins 4.x or 5.x, we will > >> confuse the hell out of our users. At least that is what I think. > >> > >> II. Consequence: How to interpret Core plugin versions > >> > >> As can be seen above, so far the major version of the plugin was kinda > >> showing "which Maven API level" is the plugin. > >> > >> So, it begs the question: HOW to interpret the Maven Core Plugin > version? > >> > >> My interpretation was always: "shift it once left", meaning: Core plugin > >> version "3.2.1" MEANS: > >> - Maven API version: 3 > >> - Core Plugin version 2.1(.0) > >> > >> III. Consequence: How to express Core plugin "breaking change"? > >> > >> Today, everyone expects a "major version jump" to express breaking > changes. > >> BUT, as explained above, that would be totally misleading here, and > would > >> break the "customary law" that Major expresses Maven lineage. > >> > >> Ideas and opinions welcome. > >> > >> T > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > >
