[ https://issues.apache.org/jira/browse/MNG-6964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17162013#comment-17162013 ]
David M. Lloyd commented on MNG-6964: ------------------------------------- I don't understand what you're trying to explain to me. Yes, there are version numbers that have a valid total order. But I opened this bug because there are also version numbers that do *not* have a valid total order. The _social_ question of whether one uses semver or not is completely irrelevant to the problem. The version comparison is _objectively incorrect_ for the cases I've given above. That's the beginning, middle, and end of the problem. I didn't file a bug asking for help, I filed a bug because _there is a bug in the code_. I hope you can appreciate the difference. > 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)