Current thinking on versioning takes into account three things:
- we want to be able to trace artefacts (so no more anonymous snapshots)
- we still want the effect of a snapshot, i.e. you can depend on 1.9
milestone 2 and get the latest published build of that on a regular
basis without having to manually update version numbers
- whatever we do needs to work primarily with Maven
That leads to a scheme like this: <major>.<minor>.<patch>-<milestone/
release candidate token>_<build number>
Major, minor and patch are potentially multi-digit integers, so yes
Aseem, robustness is needed ;) The last bit,
"<milestone>_<build_number>" is sorted alphabetically, so we need to
pad numbers:
- M01_0099 < M01_0117 => 4 digits for build number gives up to 9999 builds
- M09_42 < M10_87 => 2 digits for milestone version or RC version
gives up to 99 of those
Examples in ascending order:
1.2.3-M01_42
1.2.3-M01_43
1.2.3-M01_44
1.2.3-M01
1.2.3-M02_48
1.2.3-M02_49
1.2.3-M02
1.2.3-RC01_51
1.2.3-RC01_52
1.2.3-RC01
1.2.3-RC02_54
1.2.3-RC02
1.2.3
1.2.4-M01_65
This supports Maven version ranges, for the effect of a snapshot:
http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution#DependencyMediationandConflictResolution-DependencyVersionRanges
Now, this has NOT been agreed, finalised or indeed implemented, so
watch this space.
- Lasse
> --
>
>