[Distutils] post-release tags and RationalVersion (Was: PEP 345, PEP 376, PEP 386)

P.J. Eby pje at telecommunity.com
Thu Jun 4 20:33:36 CEST 2009

At 10:44 AM 6/4/2009 -0700, Trent Mick wrote:
>Back to a "dev version of a post release", given the only examples I've seen:
>- "2.4-r1263": given that the post-release is using the Subversion
>revision number here, how can a "dev version" if this be meaningful?
>- "2.4-20051127": A potential alternative to this would be to just
>call it "2.4.20051127" (i.e. not a "post-release of 20051127" but a
>"patch-level version of 20051127".

In setuptools' case, the original intent was to be compatible with 
projects that do have things like '2.4-1' - e.g., because they're a 
wrapper of a library whose version is 2.4, and the wrapper is the 
first version of that.  If the library then releases a '2.4.1', the 
wrapper for that is then '2.4.1-1'.  However, some projects (see 
Jean-Paul Calderone's recent questions here) have things like '2.4+1' 
as a patch level.

Anyway, the point is that you can have a development of a patch 
level, and patch levels are considered distinct from dotted levels.

>I guess where I'm going is: given that RationalVersion requires
>post-release values to be numeric, it seems that a valid solution is
>to just have an additional version element. So instead of "2.4-r123"
>you use "2.4.123". Instead of "1.0c1-r456" you use "1.0c1.456".
>Is there any usage of a post-release that doesn't fit in this scheme?
>Is there a potential practical problem with getting users to switch to
>that? E.g. Perhaps something with the setup.cfg config variables that
>setuptools' versioning supports (I'm not that familiar with them)?

I think we're going to have to stage the implementation on the 
setuptools side, first by switching tagging functions to a 
plugin-based operation, and second to provide optional version 

I personally don't think it will ever make sense to *require* version 
rationalization, since Python is certainly used for private projects 
and companies may have their own numbering schemes.  At most, we can 
warn about versions being potentially not-parseable or being not 
suitable for PyPI distribution if at some point PyPI can reasonably 
become strict about the matter.

More information about the Distutils-SIG mailing list