[ https://issues.apache.org/jira/browse/MNG-6964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17161996#comment-17161996 ]
David M. Lloyd edited comment on MNG-6964 at 7/21/20, 12:23 PM: ---------------------------------------------------------------- That was just a typo. You can see that the result is as I've said up above. Also it should be highly evident that I understand how version sorting is intended to work. But I'll fix the typo just to be clear. was (Author: dmlloyd): That was just a typo. You can see that the result is as I've said up above. But I'll fix the typo just to be clear. > 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)