[Distutils] post-release revisions (was: recollections of Pycon distutils versioning discussion (part 1))

Zooko Wilcox-O'Hearn zooko at zooko.com
Thu Jun 11 15:51:29 CEST 2009

Trent Mick:

Thank you very much for the summary emails.

On Jun 9, 2009, at 1:58 AM, Trent Mick wrote:

> # Super simple
>     major.minor.patch
> # "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  
for you).

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 mailing list