Re: [vassalengine-devel] stable and unstable releases
Brought to you by:
rodneykinney,
uckelman
From: Joel U. <uck...@no...> - 2007-12-18 14:33:30
|
Thus spake Joel Uckelman: > Thus spake "Rodney Kinney": > > > > > Just to be clear: The requirement is that version v0 of VASSAL be able > > > to correctly order any two versions v1, v2 where at most one of v1 and v2 > > > are after v0, yes? Or do we need it to be the case that, say, VASSAL 2.8. > 3 > > > , > > > can tell which of 3.4.9-rc10 and 7.6.4.2-svn7650 is earlier? > > > > > > The requirement is that for any version vN after version v0, that v0 be abl > e > > to tell that vN is > v0. > > > > rk > > > > Ok, then we have a lot more flexibility than I thought. > > Info.compareVersions("3.0.13", X) will return -1 so long as the leading > part of the version is 3.0.14 or greater. That means past practice doesn't > constrain us beyond having major.minor.micro-style numbers for the leading > part, since the first three parts will always be decisive w/r/t any verison > 3.0.13 or before. All we have to do is make sure that compareVersions() > knows how to order anything new we introduce. > > So, here's what I propose: > > X.Y.Z-svnRRRR for current builds from the trunk > > X.Y.Z-bN for betas > > X.Y.Z for stable releases > > where the ordering is > > svn < beta < stable > > for the same X.Y.Z, and within svn and beta, higher numbers are later. > > This is pretty close to what we have now. (Maybe we don't even need > a designation for betas? They could just be regular releases that don't > move from testing to stable.) > Follow-up: Here's what I implemented in 3.1.0-svn2708: The version string has two parts: The version number, and the (optional) version tag. The version number is a series of period-seperated nonnegative integers. The version tag is of the form '-(svn|beta|rc)\d+'. The higher-order parts of the version string are on the left. Version numbers are ordered how you'd expect. E.g. 3.0.1 < 3.0.10 < 3.1.0. Tags are significant only if two version strings have the same version number. Translate a tag into ingeters as folows: - --> -1 svn --> 0 beta --> 1 rc --> 2 \d+ --> itself This ensures the following order: If two version have the same version number, but one has a tag and the other doesn't, the tagless one is later; and svn < beta < rc. E.g.: 3.0.15 < 3.1.0-svn2708 < 3.1.0-beta1 < 3.1.0-rc3 < 3.1.0 Comments? -- J. -- J. |