[Distutils] Distribute and zc.buildout + bootstraping file names + release/branches roadmap

Chris Withers chris at simplistix.co.uk
Thu Aug 6 16:29:30 CEST 2009


Tarek Ziadé wrote:
>>> a/ add "distribute" to the required eggs in your buildout cfg file
>> Why is this needed? No one has needed to specify setuptools as a dependency
>> previously, so why should they have to specify distribute now?
> 
> for the scripts created in zc.recipe.egg sections, so distribute is
> included in the sys.path
> since this recipe re-creates it.

Am I right in thinking this wouldn't be needed if zc.buildout and 
zc.recipe.egg both depended on distribute rather than setuptools?

>>> the distribute egg. Last, the setuptools egg is faked and you wil
>>> notice that it's empty. This has to be done so zc.buildout and any
>>> software
>>> out there that has a hardcoded dependency on setuptools thinks it's
>>> present.
>> I think this is a bad idea. It can't be that hard to patch buildout to use
>> distribute instead of setuptools. Running s/setuptools/distribute should do
>> it...
> 
> but as I explained earlier, even if buildout uses distribute, you
> can't prevent an egg
> out there to have an install_requires with setuptools, leading to the
> mentionned problem
> (the install battle)

Would it be possible for distribute to raise an error if a package 
relied on setuptools? I don't see why a third party egg would have 
install_requires contain setuptools if it's already running from 
buildout, but it feels better to me to be explicit and raise an error 
than lie by creating a fake egg. I know fake eggs are popular in the 
plohn community, but I'd prefer not to drag that abomination in the 
wider python world.

To recap: I think it makes sense for distribute to complain if something 
explicitly asks for setuptools since, by definition, both the distribute 
and setuptools distributions can't be made available at the same time.

>>> 2/ bootstraping file names
>>>
>>> To avoid any confusion, I've changed distribute's bootstrap file name.
>>> So we will have:
>>>
>>> - ez_setup.py = setuptools bootstrap file
>>> - bootstraping.py = distribute bootstrap file
>>> - bootstrap.py = zc.buildout bootstrap file
>> Now you've lost me... What is bootstrap[p]ing.py versus the bootstrap.py
>> that comes with distribute?
> 
> bootstraping.py replaces ez_setup.py

Oh Tarek, you really do know how to pick names...

Any chance you could switch this to distribute_setup.py or maybe 
d_setup.py to avoid dumb people like me constantly confusing the two?

Chris

-- 
Simplistix - Content Management, Batch Processing & Python Consulting
            - http://www.simplistix.co.uk


More information about the Distutils-SIG mailing list