You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Elliotte Rusty Harold (Jira)" <ji...@apache.org> on 2023/03/25 22:02:00 UTC

[jira] [Comment Edited] (MNG-7714) sp < final

    [ https://issues.apache.org/jira/browse/MNG-7714?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17704989#comment-17704989 ] 

Elliotte Rusty Harold edited comment on MNG-7714 at 3/25/23 10:01 PM:
----------------------------------------------------------------------

Failing test:

{{@Test}}
{{public void testMng7714() { }}

{{  ComparableVersion lesser = new   ComparableVersion("1.0.final-redhat");}}

{{  ComparableVersion greater = new ComparableVersion("1.0.sp1-redhat");}}

{{  assertTrue(greater.compareTo( lesser ) > 0); }}
{{}}}


was (Author: elharo):

Failing test: 

{{    @Test
    public void testMng7714() {
        ComparableVersion lesser = new ComparableVersion("1.0.final-redhat");
        ComparableVersion greater = new ComparableVersion("1.0.sp1-redhat");

        assertTrue(greater.compareTo( lesser ) > 0);
    }}}

> 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)