[Distutils] Splitting large packages into multiple eggs
Bob Ippolito
bob at redivi.com
Mon Dec 12 05:23:30 CET 2005
On Dec 11, 2005, at 7:55 PM, Robert Kern wrote:
> Bob Ippolito wrote:
>
>> The issue at hand is how to structure the setup.py to support
>> creation of multiple eggs, with an egg for installation purposes that
>> depends on everything. PyObjC can be broken up into about 30 eggs,
>> one for each package, one for the Xcode support (which depends on
>> py2app and altgraph), one for all of the tests (or maybe separate
>> eggs for each test suite). Obviously I'm not looking to create 30+
>> setup.py files, so what do I do?
>
> You may want to look at how the new scipy.distutils scheme works.
> We have a
> utility class Configuration which encapsulates everything about the
> setup.
> Eventually, it creates the **kwds for setup() from that
> information. The
> important bits of our main setup.py looks something like this:
That's interesting, but it's not relevant... The point is that there
needs to be separate setup.py files because we're making separate
eggs. I'm making separate eggs for packaging reasons. Basically:
- there's 3.4M of tests for the core
- a handful of the packages aren't compatible with some supported
platforms
- the Xcode support depends on a whole slew of other packages you
don't otherwise want.
This was traditionally not a problem because there was no dependency
management, plus py2app simply included whatever it detected was used
on a per-module level. For the next release of py2app I'm going to
make it wholly include any egg that is used, which would be very bad
for PyObjC if it were a single egg.
-bob
More information about the Distutils-SIG
mailing list