[Distutils] pre-release versioning problems with sdist, bdist_rpm, bdist_debian

Gerry Reno greno at verizon.net
Fri Jan 9 20:57:23 CET 2009


Tarek Ziadé wrote:
> On Fri, Jan 9, 2009 at 4:42 PM, Gerry Reno <greno at verizon.net> wrote:
>   
>> Thanks Tarek.  I think if it would do the same thing as bdist_rpm that it
>> would be ok.  bdist_rpm looks like it does VERSION-RELEASE (hyphen
>> separator).    So then doing this for 'sdist' I guess would produce a
>> tarball name of foo-VERSION-RELEASE.tar.gz  and an extracted directory of
>> foo-VERSION-RELEASE.   What this would allow then is for the 'version'
>> string to stay at '5.0.0' and then the 'release' string to contain any
>> pre-release information such as '0_rc1' and then the final release would
>> contain '1' which is lexically superior to the '0_rc1'.  I'm not sure though
>> what other targets in distutils also use 'version' so I don't know if this
>> would affect anything else.
>>
>> Updating my comment:   Yes, and all the 'bdist' targets would have to do the
>> same type of thing as 'bdist_rpm'.  That is use the combination of
>> VERSION-RELEASE.
>>
>> Also, I'm hoping this can be implemented as some kind of extension so that
>> it can be made to work for existing installations as well.
>>     
>
> In other words, introduce it globally. That is a big change,
>   
Yes, but it solves a big problem.  I've seen this issue brought up on 
the fedora-devel mailing list several times.  And Toshio has commented 
about it.  The RPM-based distros appear to ignore 'bdist_rpm' and the 
distro packagers go about creating their own way of building python 
RPMS.  And when I inquired about this, the pre-release versioning issue 
was the first thing that was mentioned.  I think this was the 
showstopper that caused them to abandon 'bdist_rpm' because they 
couldn't find sanity between 'sdist' and 'bdist' command treatment of 
'version' and 'release' strings.  If this gets fixed now, I think they 
could be persuaded to consider using 'bdist_rpm' for building python 
packages which would bring a lot of consistency to the process between 
distros.  (yes, I know distros all want to store things in different 
areas, but that's just a config/preference thing).

> I think this could stay compatible with the previous installations as long as :
>
> - if the release string is not specified, then it is not used at all,
>   (unlike version which becomes 0.0 when not specified)
>
> - the "Package-Version-Release" string is OK with the tools out there
>   (I have to double-check on how setuptools and zc.buildout works on
> fragments to extract version numbers  for instance)
>   
That sounds like it will work.

I'm looking forward to any prototype you could generate for this and 
I'll be glad to help test it.


Regards,
Gerry

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20090109/111e59b2/attachment.htm>


More information about the Distutils-SIG mailing list