I've been looking at Maven 's version comparison algorithm: what it does, what it's documented to do, and what it should do. I ran a quick poll on my twitter feed to see what developers expect how version strings such as 2.1.q and 2.1 are compared. That is, what's the higher version? 2.1.q or 2.1?
https://twitter.com/elharo/status/1213457533358223361 2.1.q won in a landslide. This is, unfortunately, the opposite of what Maven currently assumes. See https://issues.apache.org/jira/browse/MNG-6420?focusedCommentId=17008025&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17008025 to understand how. This has real world consequences. xpp3:xpp3 for example uses letters with the expectation that 1.4.1.c comes after 1.4.1. There are probably other artifacts that use letters with these semantics too. I'm about 90% convinced this is something we should fix. It's a breaking change but I expect the high majority of devs who encounter this would classify the existing behavior as a bug. My main question is what version of Maven should we fix this in? 3.6.5? 3.7? 4.0? Thoughts? -- Elliotte Rusty Harold [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
