[Distutils] let's standardize dependency declaration without trying to agree on how to implement it

zooko zooko at zooko.com
Wed Sep 24 19:21:32 CEST 2008

On Sep 24, 2008, at 0:27 AM, David Cournapeau wrote:

> If you look at the ruby gem page, you have one link for a  
> specification;
> I have not done it, and maybe I would realize I were wrong by  
> trying it,
> but I got the impression I could generate gems myself from the
> specification. Can I do that with eggs ?

How about this:


> There is also the problem that by making some things easy but
> effectively "magic", when it breaks, you don't know how to fix.

I agree that this is a problem.  People interested in improving it  
should read Philip J. Eby's post "setuptools: past, present, future"  
from 2006:


Since then we've made a great step forward by having the distutils in  
Python 2.5 and newer automatically produce .egg-info files.

Then, we made another step forward when we persuaded Linux  
distributions like Debian and Red Hat to stop deleting those .egg- 
info files.  ;-)

In my opinion the next step forward at this layer of basic  
compatibility is to formalize setuptools's "requirements" syntax  
(mainly install_requires, but also setup_requires, test_requires, and  
extras_require) as a standard part of Python.

Note that I am not saying anything about the implementation of how  
requirements get satisfied, which we've already failed to agree on  
for a Python standard, only that if developers want to write down "My  
package depends on package XYZ" in their package's meta-data, that  
they can do so in a single, standard syntax so that all of the new  
crop of packaging tools can read what they wrote.

Of course, this standard syntax should be compatible with the most  
widely-used current implementation -- setuptools/easy_install.  This  
is an opportunity to standardize some basic metadata, not to innovate  
and not to standardize anything harder and more implementation- 
specific than simple dependency declaration.


http://allmydata.org -- Tahoe, the Least-Authority Filesystem
http://allmydata.com -- back up all your files for $5/month

More information about the Distutils-SIG mailing list