[ https://issues.apache.org/jira/browse/MNG-7644?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17650687#comment-17650687 ]
ASF GitHub Bot commented on MNG-7644: ------------------------------------- michael-o commented on code in PR #930: URL: https://github.com/apache/maven/pull/930#discussion_r1054191144 ########## maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java: ########## @@ -337,4 +337,20 @@ public void testReuse() assertEquals( "reused instance should be equivalent to new instance", c1, c2 ); } + + /** + * Test <a href="https://issues.apache.org/jira/browse/MNG-7644">MNG-7644</a> edge cases + * 1.0.0.RC1 < 1.0.0-RC2 + */ + public void testMng7644() + { + for ( String x : new String[]{ "alpha", "a", "beta", "b", "milestone", "m", "RC" } ) { Review Comment: You should add at least two arbitrary one as well. ########## maven-artifact/src/main/java/org/apache/maven/artifact/versioning/ComparableVersion.java: ########## @@ -53,7 +53,8 @@ * </ul> * Unknown qualifiers are considered after known qualifiers, with lexical order (always case insensitive), * </li> - * <li>a hyphen usually precedes a qualifier, and is always less important than something preceded with a dot.</li> + * <li>a hyphen usually precedes a qualifier, and is always less important than digits/number, for example + * 1.0.RC2 < 1.0-RC3 < 1.0.1 ; but prefer '1.0.0-RC1' over '1.0.0.RC1' </li> Review Comment: This needs to be generalized as well. ########## maven-artifact/src/test/java/org/apache/maven/artifact/versioning/ComparableVersionTest.java: ########## @@ -337,4 +337,20 @@ public void testReuse() assertEquals( "reused instance should be equivalent to new instance", c1, c2 ); } + + /** + * Test <a href="https://issues.apache.org/jira/browse/MNG-7644">MNG-7644</a> edge cases + * 1.0.0.RC1 < 1.0.0-RC2 Review Comment: This needs to be generalized as well. > Fix version comparison ( .X1 < -X2 for any string qualifier X) > -------------------------------------------------------------- > > Key: MNG-7644 > URL: https://issues.apache.org/jira/browse/MNG-7644 > Project: Maven > Issue Type: Bug > Affects Versions: 3.8.6, 4.0.0-alpha-3 > Reporter: Gwénaël Ruelland > Assignee: Michael Osipov > Priority: Major > Fix For: 3.8.x-candidate, 3.9.0-candidate, 4.0.x-candidate > > > The current version parser does not treat .RC and -RC correctly: > actual : 1.0.0.RC1 > 1.0.0-RC2 > expected : 1.0.0.RC1 < 1.0.0-RC2 > because RC1 < RC2 > how to fix : place a list item before qualifier > the intention is to have this same result with all qualifier x: > actual : 1.0.0.X1 > 1.0.0-X2 > actual : 1.0.X < 1.0.0.X > expected : 1.0.0.X1 < 1.0.0-X2 > expected : 1.0.X == 1-X == 1.0.0.X -- This message was sent by Atlassian Jira (v8.20.10#820010)