David M. Lloyd created MRESOLVER-578:
----------------------------------------

             Summary: Incorrect qualifier handling in `GenericVersionScheme`
                 Key: MRESOLVER-578
                 URL: https://issues.apache.org/jira/browse/MRESOLVER-578
             Project: Maven Resolver
          Issue Type: Bug
    Affects Versions: 2.0.0
            Reporter: David M. Lloyd


Starting with version 2.0.0, the resolver no longer considers the qualifier 
`ga` to be equal to `0` in some circumstances.

In 1.9.6, we have this output:

```
$ jbang --main=org.eclipse.aether.util.version.GenericVersionScheme 
org.apache.maven.resolver:maven-resolver-util:1.9.6 0 ga
Display parameters as parsed by Maven Resolver (in canonical form and as a list 
of tokens) and comparison result:
1. 0 -> 0; tokens: [0]
   0 == ga
2. ga -> ga; tokens: [0]
```

Whereas in 2.0.0 we have this:

```
$ jbang --main=org.eclipse.aether.util.version.GenericVersionScheme 
org.apache.maven.resolver:maven-resolver-util:2.0.0 0 ga
Display parameters as parsed by Maven Resolver 'generic' scheme (in canonical 
form and as a list of tokens) and comparison result:
1. 0 -> 0; tokens: [0]
   0 > ga
2. ga -> ga; tokens: [0]
```

While this is a major version change, and incompatibilities are to be expected, 
I think this should be evaluated as a possible bug. In trailing context, a zero 
segment such as `ga` or `0` is considered equal to any other zero segment. When 
a series of tokens is given, such as `0.0.ga`, it's not entirely clear what is 
leading and what is trailing context. I think it is reasonable to expect that 
`0.0.ga` == `0` == `ga` == the empty string, and thus "trailing context" should 
in this case be defined to include any number of trailing zero segments, even 
if there are no nonzero leading segments.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to