On Tue, Oct 6, 2020 at 7:46 AM Thomas Broyer <t.bro...@gmail.com> wrote:
> (sorry for the delay) > > On Sat, Oct 3, 2020 at 5:27 PM Karl Heinz Marbaise <khmarba...@gmx.de> > 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/> >