[Distutils] post-release revisions (was: recollections of Pycon distutils versioning discussion (part 1))
zooko at zooko.com
Thu Jun 11 15:51:29 CEST 2009
Thank you very much for the summary emails.
On Jun 9, 2009, at 1:58 AM, Trent Mick wrote:
> # Super simple
> # "But I want to do an alpha release!"
> I don't think I'm overstating in saying that most of us (those that
> care to help in defining Python packaging tools) would want to
> allow alpha/beta releases. Certainly this was true at the Pycon
> discussions. This gives us:
> N.N.NaN # e.g. "1.0.0a2"
> N.N.NbN # e.g. "2.6.0b1"
This is where we branch between the two ways that people do it. Some
people count up to a future release, other people count away from
past releases. (Of course probably some people do both.)
In Tahoe (and I think in Twisted, and Nevow, and Foolscap), we
typically don't count up to a release so that $REL-$SOMETHING is a
predecessor to the $REL release. Instead we count away from $REL, so
that $REL-$SOMETHING is a successor to the $REL release.
Here's an example:
There are files in that directory named allmydata-tahoe-1.4.1-
r3904.tar.gz, allmydata-tahoe-1.4.1-r3905.tar.gz, allmydata-
tahoe-1.4.1-r3908.tar.gz, etc. Each of these is newer than the
previous one, and all of them are newer than the v1.4.1 release.
The -r$NUMBER is a count of patches in our revision control
repository (so it is pretty much like the SVN revision numbers that
Twisted and Nevow use in their version numbers, and it is like the
SVN revision numbers that setuptools can append to a version string
When the time comes for the Tahoe v1.5 release (Real Soon Now!), we
will eventually have a release numbered 1.4.1-r3948 (assuming that it
takes us 40 more patches from now to get ready for the next stable
release), and then the next tarball after that will be named
allmydata-tahoe-1.5.0.tar.gz. (Technically, we could also name it
allmydata-tahoe-1.5.0-r3949.tar.gz and everything would work, but we
leave the -r$COUNT component off when this is the first release of a
new version number.)
So, we don't use the "a/b/c" indicators, but we do use what you are
calling "post-release" indicators. Currently that is spelled "-r",
which is how Tahoe, Twisted, and setuptools do it. At PyCon I agreed
that it wouldn't hurt to change the spelling to "-post" for clarity
and for parallelism with "-pre". (I don't have the authority to
agree to anything on behalf of the Twisted or setuptools projects --
I was just agreeing to stop arguing about it. :-))
More information about the Distutils-SIG