I agree with other users' sentiments here. I was ignoring the milestone releases for a long time as though they were unfinished and unsuitable for stable use.
Additionally, I have my version checking plugin configured to ignore milestones based on how they are used by other projects, and there's little point to making an exception for Maven plugin versions. Greg Chabala On Tue, Oct 6, 2020 at 9:13 AM Gary Gregory <[email protected]> wrote: > On Tue, Oct 6, 2020 at 7:46 AM Thomas Broyer <[email protected]> wrote: > > > (sorry for the delay) > > > > On Sat, Oct 3, 2020 at 5:27 PM Karl Heinz Marbaise <[email protected]> > > wrote: > > > > > Hi, > > > > > > On 03.10.20 11:47, Thomas Broyer wrote: > > > > Wait, you mean that you don't even follow your own rules for versions > > ⁉️ > > > > where milestones sit between beta and RC versions. > > > > > > Can you explain which rules you are referencing? > > > > > > > I meant those: > > https://cwiki.apache.org/confluence/display/MAVENOLD/Versioning > > > > > https://github.com/apache/maven/blob/maven-3.6.3/maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java#L356 > > > > > https://github.com/apache/maven/blob/maven-3.6.3/maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java#L48 > > and as shown by that command: > > $ java -jar /opt/maven/lib/maven-artifact-3.6.3.jar 3.0.0-beta1 3.0.0-M1 > > 3.0.0-RC1 3.0.0 > > Display parameters as parsed by Maven (in canonical form) and comparison > > result: > > 1. 3.0.0-beta1 == 3-beta-1 > > 3.0.0-beta1 < 3.0.0-M1 > > 2. 3.0.0-M1 == 3-milestone-1 > > 3.0.0-M1 < 3.0.0-RC1 > > 3. 3.0.0-RC1 == 3-rc-1 > > 3.0.0-RC1 < 3.0.0 > > 4. 3.0.0 == 3 > > > > The part M... is from our perspective a milestone in direction to a > > > particular set of features that has nothing to do with not stable... > for > > > > example see https://maven.apache.org/surefire/maven-failsafe-plugin/ > > > > > > > > I'm for example using maven-release-plugin:3.0.0-M1 in production... > > > You can take a look into the CI results > > > ( > > > > > > https://ci-builds.apache.org/job/Maven/job/maven-box/job/maven-release/job/master/ > > > ) > > > or the tests which are running on them: > > > > > > > > > https://ci-builds.apache.org/job/Maven/job/maven-box/job/maven-release/job/master/lastCompletedBuild/testReport/ > > > > > > > > > The question based on that is comming up: > > > > > > What do you define as "unstable" ? All of those plugins are already > > > running very long (I mean very long) in production environments ... so > > > of course sometimes people find bugs ... > > > > > > > > > As Enrico alrady mentioned ...we don't release unstable plugins... (but > > > it drills down to the question: What is a unstable plugin?) > > > > > > The question to me is: should anyone use a milestone version? What are > the > > "guarantees" compared to a "final" version? > > If you're saying that there's no reason not to use a milestone in > > production, that it's guaranteed to work just as well as a "final" > version, > > then why isn't it labelled "final"? > > When I see a milestone version (or any "prerelease" version), I'm > thinking > > "OK, they're still working on it (hey, it's not even a release > candidate), > > let's use the latest "final" release" (in this case 2.5.3; > > > > > https://search.maven.org/artifact/org.apache.maven.plugins/maven-release-plugin > > ). > > I also expect that if there are bugs in that latest "final" release that > > possibly there could be a "point release" fixing them (2.5.4) before the > > next major version is "stable" (3.0.0) > > So of course such a "prerelease" could be "stable enough" to be used in > > production, but who knows in which ways it could possibly break? or > change > > in backwards-incompatible ways in a future 3.0.0-M2 or the final 3.0.0? > > Only people following the plugin's development closely can know. > > > > So, if the message you want to send is "use that 3.0.something version, > > it's absolutely OK for production use (and btw we'll fix 2.5.3 bugs in a > > 3.0.0-M2, not a 2.5.4)", then tag it as 3.0.0 (or 2.5.4 or 2.6.0), not > > 3.0.0-M1. > > If you want to make it clear that some feature is not "stable" yet (in > its > > API/configuration, or possibly buggy), then you could add warnings in the > > docs and even issue a warning at runtime if it's being used (I know > people > > don't pay attention to warnings, and I think mostly because Maven output > is > > quite/too verbose, but still). > > > > From a user's POV, I agree that the messaging on "M" releases is unclear. > To me a milestone release is not stable, it's just a different way of > saying "alpha" or "beta". > > Gary > > > > > -- > > Thomas Broyer > > /tɔ.ma.bʁwa.je/ <http://xn--nna.ma.xn--bwa-xxb.je/> < > http://xn--nna.ma.xn--bwa-xxb.je/> < > > http://xn--nna.ma.xn--bwa-xxb.je/> > > >
