On Wednesday, 22 January 2014 at 08:25:05 UTC, Jordi Sayol wrote:
El 22/01/14 02:06, Andrew Edwards ha escrit:
On 1/21/14, 6:02 PM, Jordi Sayol wrote:
El 21/01/14 23:29, Brad Anderson ha escrit:
#.###.~b# ==> 2.065.b1 // beta
#.###.~rc# ==> 2.065.rc1 // release candidate
#.###.0 ==> 2.065.0 // initial release
#.###.# ==> 2.065.1 // hotfix
On Debian, "2.065.rc1" is bigger than "2.065.0", so if
"dmd_2.065.rc1-0_amd64.deb" is installed and you try to
upgrade to "dmd_2.065.0-0_amd64.deb", system will answer
something like "You have installed a newer version".
No problem if these deb packages are for internal use and
test, but not for a public download.
$ dpkg --compare-versions "2.065.0" gt "2.065.rc1" && echo
"Bigger" || echo "Not bigger"
Apparently the same problem exists on FreeBSD. The first
solution that comes to mind is to prefix the qualifiers for
betas and release candidates with a tilde. As such:
2.065~b1
2.065~rc1
or:
2.065.~b1
2.065.~rc1
This solution works on both Ubuntu and FreeBSD but I'm not
sure it is the right one. Suggestions are welcomed.
I prefer:
2.65~b1
2.65~rc1
because "2.65.0" and "2.65" are bigger than "2.65~rc1",
regardless if "qualifier" number is present or not in final
release version.
I think that, as much as possible, we should use exactly the
same version string for all installers, zip, deb, rpm, dmg, etc.
So if there is no problem on OSX, Windows, etc. I propose this
versioning scheme:
#.#~b# ==> 2.65~b1 // beta
#.#~rc# ==> 2.65~rc1 // release candidate
#.#.# ==> 2.65.0 // initial release
#.#.# ==> 2.65.1 // hotfix
I do not like the tilda scheme above. Because it does not conform
to the major.minor.micro-qualifier scheme.
Before I propose another scheme, let me list some assumptions:
1) We will never have more than 3 release candidates.
2) Same goes for betas. You rarely see more than two beta
releases for certain upcoming release of a product.
Therefore I propose the following (if it is "compatible" with
FreeBSD and Debian) simple solution. We simply move beta and rc
into the "qualifier".
So, we have:
2.065.0 (release)
2.065.0-rc2 (release candidate)
2.065.0-b1 (beta one)
This makes more sense IMHO.
Kind regards