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

Dennis Lundberg commented on MNG-6964:
--------------------------------------

I think that you are missing my point. The version numbers that you have used 
in your console example are very odd, and also they do not conform to the 
semver specification. If I make a guess as to what you want to compare, it 
would look like this, using more usual version numbers:

{noformat}
$ java -jar maven-artifact-3.6.3.jar 1.0-alpha 1
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 1.0-alpha == 1-alpha
   1.0-alpha < 1
2. 1 == 1

$ java -jar maven-artifact-3.6.3.jar 1.0-beta 1
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 1.0-beta == 1-beta
   1.0-beta < 1
2. 1 == 1

$ java -jar maven-artifact-3.6.3.jar 1.0-beta 1.0-alpha
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 1.0-beta == 1-beta
   1.0-beta > 1.0-alpha
2. 1.0-alpha == 1-alpha
{noformat}

As you can see these results are different than yours, and inline with your 
expectations.

> Maven version sorting is internally inconsistent
> ------------------------------------------------
>
>                 Key: MNG-6964
>                 URL: https://issues.apache.org/jira/browse/MNG-6964
>             Project: Maven
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.6.3
>            Reporter: David M. Lloyd
>            Priority: Major
>
> There's a bug where version sorting is inconsistent. This manifests like this:
> {code:java}
> $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.alpha 1
> Display parameters as parsed by Maven (in canonical form) and comparison 
> result:
> 1. 1-0.alpha == 1-0.alpha
>    1-0.alpha == 1
> 2. 1 == 1
> $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.beta 1
> Display parameters as parsed by Maven (in canonical form) and comparison 
> result:
> 1. 1-0.beta == 1-0.beta
>    1-0.beta == 1
> 2. 1 == 1
> $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.beta 
> 1-0.alpha
> Display parameters as parsed by Maven (in canonical form) and comparison 
> result:
> 1. 1-0.beta == 1-0.beta
>    1-0.beta > 1-0.alpha
> 2. 1-0.alpha == 1-0.alpha
> {code}
> Thus there is no correct total order: {{1-0.beta > 1.0.alpha}} even though 
> both {{1-0.beta}} and {{1-0.alpha}} are equal to {{1}}.
> I think this is likely due to a logical bug where any dot-separated segments 
> following a zero or release ({{ga}} or {{final}}) is simply truncated in 
> certain circumstances:
> {code:java}
> $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.x 1-0
> Display parameters as parsed by Maven (in canonical form) and comparison 
> result:
> 1. 1-0.x == 1-0.x
>    1-0.x == 1-0
> 2. 1-0 == 1
> {code}
> but
> {code:java}
> $ java -jar ~/local/apache-maven/lib/maven-artifact-3.6.3.jar 1-0.x-1 1-0-1
> Display parameters as parsed by Maven (in canonical form) and comparison 
> result:
> 1. 1-0.x-1 == 1-0.x-1
>    1-0.x-1 > 1-0-1
> 2. 1-0-1 == 1-1
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to