apache / apache/maven-mvnd

Consistent Version Numbering Scheme

Open
#845 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.5k
Forks
250
Avg merge
16h 22m
Merged PRs (30d)
36

Description

Just a suggestion that it might be nice to stick to a consistent version numbering scheme. May I suggest [Semantic Versioning 2.0.0](https://semver.org/)

So far there have been releases with version numbers like:

1. `{major}.{minor}.{hotfix}`
e.g. version `0.0.1` through `0.9.0`.
This is nice, and is inline with Semver.
2. `{major}.{minor}.{hotfix}-{pre-release}`.
e.g. versions `1.0.0-m1` and `1.0.0-m4`.
This is nice, and is also inline with Semver.
3. `{major}.{minor}-{pre-release}`.
e.g. version `1.0-m6`.
This is not so nice, as it is not clear if this is a continuation of the previous 1.0.0 pre-releases or not.
This is *NOT* inline with Semver.
Additionally the filenames for the downloads of `1.0-m6` seem to encode a second pre-release version label, e.g. `1.0-m6-m39` and `1.0-m6-m40`.
There is nothing necessarily wrong with the `m39` aspect, and that can also be accommodated by Semver if you wished, e.g. use instead `1.0.0-m6-m39`.

The 3rd scheme documented above adds additional difficulties for scripts that are trying to work out the latest version and/or download a specific version. Whereas for all previous versions such a script could set a `VERSION=0.9.0` and access a URL like:
```
https://archive.apache.org/dist/maven/mvnd/$VERSION/maven-mvnd-${VERSION}-linux-amd64.zip
```

That is not possible with `1.0-m6` as you would instead need something like:
```
https://archive.apache.org/dist/maven/mvnd/${VERSION}/maven-mvnd-${VERSION}-${SECONDVERSION}-linux-amd64.zip
```
and of course such a URL would not in a script be backwards compatible.

It would be great if you could settle on a consistent version numbering scheme :-)

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the release history and the version and download-URL examples listed in this issue, then inspect how releases and artifact names are published. A complete change would define one consistent versioning scheme and make the resulting URLs usable for scripts without the ambiguity described here.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.