[Distutils] Specifying eggs and build manifest ?

David Cournapeau cournape at gmail.com
Tue Dec 22 02:24:07 CET 2009


I wonder if there is any interest in the current distribute effort to
specify some low-level commonalities outside the distutils code for
interoperation. In particular, I had two things in mind:
 1 Formally specifying the egg format (and versioning it !) - or is
egg format outside distribute goal ?
 2 Formally specifying something like a build manifest which would be
used for installation.

I think the first point is self-explanatory. Concerning the second
point, the current way of installing things in distutils is a bit too
ad-hoc to my taste, and could be fixed inside distutils to make it
easier to interoperate with other methods (be it native OS methods or
other python-related tools). Right now, distutils install things from
a list of files, but this only contains the target location for some
kind of files. What about the following kind of format instead (or in
complement for backward-compatibility):

 - split the flat list into a list of "typed" sections, where type
would be e.g. data, python files, extensions, scripts, etc...
 - for each section, specify both the source and target directory.
 - the format should be easy to parse/produce, and versioned.

The rationale is that such a format would enable the following:
 - it becomes easier to post-process files at install time, with
different methods for each type
 - such a format could form a basis to produce "conventional" install,
eggs and other kind of installers, including convertion between them.

Assuming this idea fits into what people involved in distribute are
doing, I would be willing to propose a more formal description - I
already have the implementation in my own project toydist, where I use
build manifest to do explicit install and eggs/wininst conversion.



More information about the Distutils-SIG mailing list