Romain, we have multiple ONGOING issues:
- site plugin IMHO must not be 4.x (as it is still a Maven3 plugin, it does not use Maven4 API). OTOH, it _is a breaking change_, so users need to adjust their builds once upgraded https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-site-plugin/ - same stands for incoming maven-gpg-plugin (breaking change that will break their builds if only thing they do is "bump version") - incoming Maven4 plugins (many of them are already migrated, sitting on mvn4 branches) - incoming new compiler plugin(s), etc To start/do any of these, we MUST align on these IMHO. T On Wed, Mar 6, 2024 at 3:05 PM Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > Hi Tamas, > > Not sure I really got the issue, is it to do a breaking change without a > maven-core bump? > > I tend to agree with you, ie the versioning is > $mavenCoreMajor.$pluginMajor.$pluginMinor and no patch digit and guess it > works good enough even for users, no? > > Best, > Romain Manni-Bucau > @rmannibucau <https://twitter.com/rmannibucau> | Blog > <https://rmannibucau.metawerx.net/> | Old Blog > <http://rmannibucau.wordpress.com> | Github < > https://github.com/rmannibucau> | > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book > < > https://www.packtpub.com/application-development/java-ee-8-high-performance > > > > > Le mer. 6 mars 2024 à 14:59, Tamás Cservenák <ta...@cservenak.net> a > écrit : > > > 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 > > >