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

David Cournapeau david at ar.media.kyoto-u.ac.jp
Thu Sep 25 14:31:45 CEST 2008

zooko wrote:
> On Sep 24, 2008, at 0:27 AM, David Cournapeau wrote:
> How about this:
> http://peak.telecommunity.com/DevCenter/EggFormats

I guess we don't have the same meaning when speaking about
specification. A reference which states at the beginning

"Note, however, that these are all internal implementation details and
are therefore subject to change; stick to the published API if you don't
want to be responsible for keeping your code from breaking when
setuptools changes. You have been warned."

Is not a specification in my mind. This is pervasive in the
distutils/setuptools world BTW: everything is defined by implementation,
you don't know what is implementation detail and what is the API (My
first contact with distutils was to plug a scons command to use scons
within distutils for the numpy project, and I was horrified by the code
of distutils. The only way to understand what's going on is to run it; I
can't say setuptools is much better in that departement, but since a
setuptools requirement was to extend distutils, I don't blame setuptools
for this)

> 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:
> http://mail.python.org/pipermail/python-dev/2006-April/064145.html
> 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.  ;-)

I hope that with the fork, we will be able to deal better with the
situation. To me, the biggest problem of setuptools is that it is a big
mud of code, with things which are vastly different in purpose. There
should be a submodule for building eggs, a submodule to deal with
dependencies, a submodule for the distutils extensions, etc... I want to
be able to import setuptools "build an egg" module without using
setuptools at all otherwise, so that I can build an egg in e.g. scons. I
want to be able to use setuptools capabilities for dependencies to get a
list of all the dependencies without using setuptools at all otherwise.



More information about the Distutils-SIG mailing list