This is slightly differently described on https://maven.apache.org/plugins/

Core plugins                            Plugins corresponding to default core 
phases (ie. clean, compile). They may have multiple goals as well.
But I think the intention is clear: This should apply to all plugins maintained 
by the Apache Maven Project (not only core plugin according to the definition 
from above).
Konrad

> On 6. Mar 2024, at 15:12, Tamás Cservenák <ta...@cservenak.net> wrote:
> 
> Gary,
> 
> maven "core plugins" are these
> https://maven.apache.org/plugins/
> 
> In short, Maven plugins that are maintained by this project at ASF.
> 
> While there is a quite overlap with mojohaus etc, they are NOT core plugins
> 
> T
> 
> On Wed, Mar 6, 2024 at 3:09 PM Gary Gregory <garydgreg...@gmail.com> 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 <ta...@cservenak.net>
>> 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: dev-unsubscr...@maven.apache.org
>> For additional commands, e-mail: dev-h...@maven.apache.org
>> 
>> 

Reply via email to