[Distutils] buildout removes parts on any change

felix crucialfelix at gmail.com
Thu Sep 2 18:50:07 CEST 2010

does this fairly represent the policy :  buildout removes all files
installed by parts anytime the top parts/develop/egg section changes because
"paranoid is safer".

I can imagine there would be problems, especially when parts depend on other
parts. (checking versions etc)

On Thu, Sep 2, 2010 at 5:48 PM, Jim Fulton <jim at zope.com> wrote:

> Buildout provides a default policy of removing installed files and
> directories *reported by the install method*.  I think this is a
> reasonable default policy.  It also allows a part to be uninstalled
> even if the original recipe code is unavalable for some reason.

Right, and I've run into that.  but actually at that time I had renamed a
develop egg and the buildout failed because the original was missing.

maybe it works for parts but not for develop ?

A recipe author can completely replace this default policy by:
> - Not reporting any installed files in the install method of an
>  install recipe, and by
> - providing an uninstall recipe (entry point) that does whatever
>  uninstall logic seems desireable.

this would work, but it would be a hack and would be a problem when it
does need to get uninstalled.

but I've got a brighter idea:  rather than shutil.copy the whole of django
in each time,
just do a symlink from the download cache.

safe and quick to remove and install

> As an aside, wrt production deployment:
> - We use buildouts to build rpms used to deploy software. Deploying via a
>  binary RPM (or a deb or whatever)


- We use buildouts to install/update configuration files independent of
>  software.
>  The recipes needed by this are installed as part of the software
>  RPM,

nice, I get it now

does the second buildout get run by the RPM's post-install scripts ?

or do you just install it, then run the config-file buildouts ?

I don't know much about rpm

I've had blow ups when something went wrong using just buildout and then
there isn't a safe way to back out.
tried to add lxml the other day and it failed to build.

so this is definitely a solution for that.


> Jim
> --
> Jim Fulton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20100902/40270823/attachment.html>

More information about the Distutils-SIG mailing list