Adam R. B. Jack wrote:
Not necesserly the fact that version number is not parsable by machines determines that fact that versions are uncomparable.Why do you want to parse strings which describe versions?
So one can look at a repository of artefacts and select the "best" for the user automatically. Each user has a different view of "best", some want latest (nightly/snapshot), some want latest "release" only.
Having a repository with automated tools that require humans to understand the contents kinda breaks the automation...
In Maven world in POM we can have tags like::
<versions> <version> <id>b1</id> <name>1.0-b1</name> <tag>MAVEN_1_0_B1</tag> </version> <version> <id>b2</id> <name>1.0-b2</name> <tag>MAVEN_1_0_B2</tag> </version> <version> <id>b3</id> <name>build-455</name> <tag>MAVEN_1_0_B2</tag> </version> ... </versions>
We also have a place for branches there.
Using such meta data you can theoretically tell that version 1.0-b1 was released before 1.0-b2 and 1.0-b2 was out before build-445.
Any tool can inject such helper artifacts to repository and use them.
I am not saying that what we did in Maven in this field is a world championship, but there are some ideas which can be explored
and this shows that some things are probably possible.
Simply metdata atached to artifacts (which can be denoted as URL) is not sufficient for making smart tools and never be.
Artifact versioning is horribly complicated topic and I am simply afraid that attempts to e.g. guess version precedence from version strings
are not relaiable in the best case.