[ 
https://issues.apache.org/jira/browse/MNG-7714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold updated MNG-7714:
---------------------------------------
    Description: 
Ported from a comment on https://issues.apache.org/jira/browse/MNG-7701

The claim is that sp < final, which if true is incorrect according to spec. 

It is easy to demonstrate that this is not fixed and also not in line with the 
spec, with just this one important example (yes this does break for us):

$ jbang org.apache.maven:maven-artifact:3.8.6 1.0.final-redhat-0001 
1.0.sp1-redhat-0001
Display parameters as parsed by Maven (in canonical form and as a list of 
tokens) and comparison result:
1. 1.0.final-redhat-0001 -> 1-redhat-1; tokens: [1, [redhat, [1]]]
   1.0.final-redhat-0001 < 1.0.sp1-redhat-0001
2. 1.0.sp1-redhat-0001 -> 1.0.sp-1-redhat-1; tokens: [1, 0, sp, [1, [redhat, 
[1]]]]

versus

$ jbang org.apache.maven:maven-artifact:3.8.7 1.0.final-redhat-0001 
1.0.sp1-redhat-0001
Display parameters as parsed by Maven (in canonical form and as a list of 
tokens) and comparison result:
1. 1.0.final-redhat-0001 -> 1-redhat-1; tokens: [1, [redhat, [1]]]
   1.0.final-redhat-0001 > 1.0.sp1-redhat-0001
2. 1.0.sp1-redhat-0001 -> 1-sp-1-redhat-1; tokens: [1, [sp, [1, [redhat, [1]]]]]

As you can see, our `sp` release is now ordered after our `final` release 
despite this clear text in the "spec":

    Non-numeric tokens ("qualifiers") have the alphabetical order, except for 
the following tokens which come first in this order: "alpha" < "beta" < 
"milestone" < "rc" = "cr" < "snapshot" < "" = "final" = "ga" < "sp"

It's clear that this tokenization isn't really correct by any reasonable 
measurement, and breaking large amounts of (our) existing artifacts in the wild 
is definitely not OK.


  was:
It is easy to demonstrate that this is not fixed and also not in line with the 
spec, with just this one important example (yes this does break for us):

$ jbang org.apache.maven:maven-artifact:3.8.6 1.0.final-redhat-0001 
1.0.sp1-redhat-0001
Display parameters as parsed by Maven (in canonical form and as a list of 
tokens) and comparison result:
1. 1.0.final-redhat-0001 -> 1-redhat-1; tokens: [1, [redhat, [1]]]
   1.0.final-redhat-0001 < 1.0.sp1-redhat-0001
2. 1.0.sp1-redhat-0001 -> 1.0.sp-1-redhat-1; tokens: [1, 0, sp, [1, [redhat, 
[1]]]]

versus

$ jbang org.apache.maven:maven-artifact:3.8.7 1.0.final-redhat-0001 
1.0.sp1-redhat-0001
Display parameters as parsed by Maven (in canonical form and as a list of 
tokens) and comparison result:
1. 1.0.final-redhat-0001 -> 1-redhat-1; tokens: [1, [redhat, [1]]]
   1.0.final-redhat-0001 > 1.0.sp1-redhat-0001
2. 1.0.sp1-redhat-0001 -> 1-sp-1-redhat-1; tokens: [1, [sp, [1, [redhat, [1]]]]]

As you can see, our `sp` release is now ordered after our `final` release 
despite this clear text in the "spec":

    Non-numeric tokens ("qualifiers") have the alphabetical order, except for 
the following tokens which come first in this order: "alpha" < "beta" < 
"milestone" < "rc" = "cr" < "snapshot" < "" = "final" = "ga" < "sp"

It's clear that this tokenization isn't really correct by any reasonable 
measurement, and breaking large amounts of (our) existing artifacts in the wild 
is definitely not OK.



> sp < final
> ----------
>
>                 Key: MNG-7714
>                 URL: https://issues.apache.org/jira/browse/MNG-7714
>             Project: Maven
>          Issue Type: Bug
>            Reporter: Elliotte Rusty Harold
>            Assignee: Elliotte Rusty Harold
>            Priority: Major
>
> Ported from a comment on https://issues.apache.org/jira/browse/MNG-7701
> The claim is that sp < final, which if true is incorrect according to spec. 
> It is easy to demonstrate that this is not fixed and also not in line with 
> the spec, with just this one important example (yes this does break for us):
> $ jbang org.apache.maven:maven-artifact:3.8.6 1.0.final-redhat-0001 
> 1.0.sp1-redhat-0001
> Display parameters as parsed by Maven (in canonical form and as a list of 
> tokens) and comparison result:
> 1. 1.0.final-redhat-0001 -> 1-redhat-1; tokens: [1, [redhat, [1]]]
>    1.0.final-redhat-0001 < 1.0.sp1-redhat-0001
> 2. 1.0.sp1-redhat-0001 -> 1.0.sp-1-redhat-1; tokens: [1, 0, sp, [1, [redhat, 
> [1]]]]
> versus
> $ jbang org.apache.maven:maven-artifact:3.8.7 1.0.final-redhat-0001 
> 1.0.sp1-redhat-0001
> Display parameters as parsed by Maven (in canonical form and as a list of 
> tokens) and comparison result:
> 1. 1.0.final-redhat-0001 -> 1-redhat-1; tokens: [1, [redhat, [1]]]
>    1.0.final-redhat-0001 > 1.0.sp1-redhat-0001
> 2. 1.0.sp1-redhat-0001 -> 1-sp-1-redhat-1; tokens: [1, [sp, [1, [redhat, 
> [1]]]]]
> As you can see, our `sp` release is now ordered after our `final` release 
> despite this clear text in the "spec":
>     Non-numeric tokens ("qualifiers") have the alphabetical order, except for 
> the following tokens which come first in this order: "alpha" < "beta" < 
> "milestone" < "rc" = "cr" < "snapshot" < "" = "final" = "ga" < "sp"
> It's clear that this tokenization isn't really correct by any reasonable 
> measurement, and breaking large amounts of (our) existing artifacts in the 
> wild is definitely not OK.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to