[Distutils] environment variables in buildout config files?

Barry Warsaw barry at python.org
Thu Jan 8 22:37:05 CET 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Jan 8, 2009, at 4:28 PM, Marius Gedminas wrote:

> After Jim's explanation (thanks!) I don't see a reason why develop- 
> eggs
> couldn't also be shared... no, wait, perhaps I see one.
>
> Imagine project A using a develop-egg of a *branch* of zope.frobozz,
> while project B uses a develop-egg of the *trunk* of zope.frobozz.  In
> that case /path/to/project-A/develop-eggs/zope.frobozz.egg-link will
> contain a link to ~/src/zope.frobozz/random-feature-branch, while
> /path/to/project-B/develop-eggs/zope.frobozz.egg-link would containt a
> link to ~/src/zope.frobozz/trunk.  Same filename, different content --
> ergo, develop-eggs cannot be shared between projects.
>
> I have a couple of source trees in my home directory that contain an
> actual example of this.

That makes sense.  I don't do this, but it definitely makes sense.

>>>> I kind of dislike having artifacts like these live in my version
>>>> controlled source directory (well, there's bin  too, but I can kind
>>>> of live with that).  What's the best way of doing  that?
>>>
>>> echo 'bin parts develop-eggs' > .csvignore
>>> svn propedit svn:ignore .
>>> bzr ignore bin parts develop-eggs
>>> or the equivalent for the VCS of your choice.
>>
>> Actually, it's not so much 'bzr stat' that I care about since that's
>> easily ignored.
>
> (in which case your wording misled me ;)

Sorry ;)

>> It's 'ls' that I care about since that's tougher to
>> ignore.  I guess I could use dot-prefixes. ;)
>
> Personally, I'm more bothered by the '*.egg-info' directories  
> created by
> setuptools.  Also, but to a somewhat lesser extent, the 'build' and  
> 'dist'
> ones created by distutils.

Yeah, I hate all of those too!

> 'bin' and 'parts' are something I need to deal with rather often.   
> I've
> grown to like bin/$randomscript, and while 'parts/$whatever/$somefile'
> is a bit too deep and nested, I appreciate the namespacing and
> explicitness ("this is a directory managed by buildout; it may be  
> wiped
> out at any moment; don't touch it").  'develop-eggs' is something that
> I'm not personally interested in and wouldn't mind hiding with a
> dot-prefix, but since I can't do that with 'build' and 'dist', I don't
> see much point.  As long as it doesn't interfere with my tab- 
> completion,
> I'm fine.

bin is a tough one.  I love its convenience.  parts I've never used.

setup_requires dependencies also show up here (I always see the bzr  
egg because I setup-depend on setuptools_bzr).

One other thing that bugs me about these is that it's not obvious from  
an ls what you can actually delete because it's an artifact of  
setuptools/buildout/etc and what is part of your package.  I mean, you  
have to know that it's safe to delete bin, dist, and build  right?

setup.py has a 'clean' command but it's not enough.  Maybe if buildout  
added a --clean option or something that would be better.  What I  
really want is a simple way to revert a tree back to its pristine  
version-controlled layout, without all the build, develop, test  
artifacts.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iQCVAwUBSWZyAXEjvBPtnXfVAQKOYwP/Y3f/KD+/xXRzIP3TyRFUgtVywAfdnytU
+H58rajSCt/WrYhwkLlFxBga/+/FQ7HqtpBQYZ7WEidh6FM2qjMmVGkVgVtOE3kQ
umBgYc25lLytwj2nS05ZRANHDLYhWNbq8XMxrNnWLMPxxlT48ldrziBRv8MrKAX7
cBxHuKzJOAY=
=21nV
-----END PGP SIGNATURE-----


More information about the Distutils-SIG mailing list