[Distutils] recollections of Pycon distutils versioning discussion (part 2)

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

On Jun 11, 2009, at 2:37 AM, Paul Moore wrote:

> 1. From your description of events, and from discussion here, the  
> "post" tag is clearly the least thought through aspect of all this.  
> So a proponent of this should step up to justify why 1.0.5.post3 is  
> required, when is available already.

My motivation is that the leading sequence of numbers is chosen by a  
human to communicate some information such as major rewrite (major),  
feature addition (minor), or bugfix (micro), while the numbers after  
the "-r" or the ".post" are chosen by the version control system to  
simply count patches or give a secure hash of the current tree state  
or whatever.  Another bit of information that we thus encode into the  
version number is whether it is a stable release or a snapshot --  
stable releases don't have a -r$COUNT in their version number.

The current stable release of Tahoe is v1.4.1, as visible on PyPI:  
http://pypi.python.org/pypi/allmydata-tahoe .  The current snapshot  
is v1.4.1-r3908, as visible on our web server: http://allmydata.org/ 
source/tahoe/tarballs/?C=M;O=D .

If the new "rational version number" definition excludes ".post", and  
if I choose to make Tahoe snapshot version numbers be rational  
version numbers, then I could make snapshots be named e.g.  
v1.4.1.3908.  Then I would have v1.4.1.3909, etc. until one day I  
would have v1.4.1.3948 and then v1.5.0.  The next snapshot would be  
numbered v1.5.0.3949.  I would hope that people who are looking for  
stable releases don't find the v1.5.0.3949 tarball (since it isn't on  
PyPI), or if they do find it that they realize from the extra long  
version number that it is a snapshot instead of a stable release.

I'm willing to change my build system to produce $MAJ.$MIN.$MIC.post 
$COUNT instead of $MAJ.$MIN.$MIC-r$COUNT, in order to achieve  
rationality (i.e., in order to make my versions look more like other  
people's versions and in order to be compatible with some  
hypothetical far-future tool which is picky and refuses to use  
software with irrational version numbers).  I'm not yet sure whether  
I'm willing to change it to $MAJ.$MIN.$MIC.$COUNT.



More information about the Distutils-SIG mailing list