[Distutils] PEP 376 -- support for release versions?

Sridhar Ratnakumar sridharr at activestate.com
Thu Nov 5 23:39:24 CET 2009

On Thu, 05 Nov 2009 14:14:19 -0800, Tarek Ziadé <ziade.tarek at gmail.com>  

>> I actually now think that storing the release number inside the  
>> .egg-info/
>> directory may be a better idea. Like:
>> $ cat python_ldap-2.3.10.egg-info/pypm.txt
>> release: 2
>> $
>> What do you think?
> In that case, an arbitrary file that gets installed in the .egg-info/
> directory, that you can read back when needed through the PEP 376
> pkgutil new API, seem to be a good idea.
> This implies that Python+distutils itself will not be able to
> distinguish two different releases that have the same version, but a
> different build version.

I assume that the user is not supposed to have two copies of  
python-ldap-2.3.10 (but with different release versions) anyway. The  
purpose of multiple release version is to provide upgrades to a package  
within a single package version.

The *value* of the release version itself is specific to PyPM, of course.  
Other binary installers will not have a need for it (they will use their  
own format -- see below).

> e.g. that just Active State's package manager is able to manage this
> extra number.

Yes. And package manager FooBar may use different release number formats,  
say, timestamps.

$ foobar install python-ldap
Getting python-ldap_2.3.10_linux_20091023.fbar

FooBar should not read PyPM's release number.

> The other option, if this extra binary version number is a generic
> need, would be to add a new metadata field in PEP 345. (like in RPMs
> IIRC) and build an egg info folder name that contains this extra info
> when present.

Since release numbers are specific to the installer (and repository), how  
about having it in the .egg-info/INSTALLER file?

$ cat .egg-info/INSTALLER
name: PyPM

release: 2
url: http://pypm.activestate.com/..../python-ldap....pypm
pinned: True

This will also enable adding extra metadata (specific to installer) like  
version pinning.


More information about the Distutils-SIG mailing list