[Distutils] Bug in setuptools version parsing when appending '.dev'?

Phillip J. Eby pje at telecommunity.com
Sun Aug 3 19:51:11 CEST 2008

At 07:05 PM 7/30/2008 -0500, Dave Peterson wrote:
>Am I missing something or is the following a bug whereby adding the 
>'.dev' tag is doing something weird?
> >>> from pkg_resources import parse_requirement as pv
> >>> pv('1.0a1.dev') < pv('1.0a1')
> >>> pv('1.0a1') < pv('1.0')
> >>> pv('1.0a1.dev') < pv('1.0.dev')
> >>> pv('1.0a1') < pv('1.0.dev')
> >>> import setuptools
> >>> setuptools.__version__
>This is mainly causing us problems when projects try to track alpha 
>and beta level bumps in dependencies, such as when project Foo 
>requires project Bar version 3.0b1 via a requirement like 'Bar >= 
>3.0b1' (which means we don't want the development prereleases of 
>Bar's first beta release, but anything after that should be 
>okay.)   But then when we actually want to release Bar 3.0 and 
>change the version number to just '3.0', suddenly installs fail 
>while we try to run the last set of tests because '3.0.dev' is older 
>than '3.0b1'.
>If it is not a bug, how do you handle situations where you want to 
>run that last round of testing prior to tagging and building 
>releases?  I'd rather do that AFTER making all source changes, and 
>not have to change the version number after the testing.

This is what 'rc' tags are for, actually.  You can put your version 
in the source, and use the -b option to egg_info while doing builds 
and testing to tack on an 'rc' tag, possibly with a subversion number as well.

More information about the Distutils-SIG mailing list