On Oct 1, 2008, at 6:34 AM, Tarek Ziadé wrote:

Hello

I know it is a bad practice for a recipe to return some paths that
contains important data in the install() method,
because zc.buildout might remove them.

Nevertheless, it happens from time to time that a developer lose some
content because of a misconfiguration,
or a zealous recipe. That is his responsability, and backups are done for that.

I don't think backups are the right approach. It's a mistake to have recipes manage precious data. If you really really really think that's a good idea, then the recipe should at least manage uninstall and move precious data aside, rather than remove it.

I don't think it is really the user's problem is a recipe misbehaves by allowing precious data to be removed.


But I think we can improve zc.buildout a bit for that:

what about introducing a safe-mode where the developer get prompted
everytime zc.buildout.rmtree is about to call
shutil.rmtree ?

The option could be set in [buildout] like this:

[buildout]
...
safe-mode = true
...

and challenge the user when a tree is about to be delete. (it might be
overkill for single files,
and they are most of the time unimportant configuration files)

This is a small change, and it would avoid running a backup everytime
the .cfg are changed. because
it happens all day long when you are developing.


I suspect this would be so annoying to use that no one would use it. I think it's probably easier to fix the broken recipes. I also think calling this "safe" mode is misleading. I could live with an option named something like "prompt-before-removing-files-or-directories".

A better option might be something like "move-aside-on-uninstall", which would move files or directories aside rather than deleting them.

I still think it would be better to just fix the broken recipes.

Jim

--
Jim Fulton
Zope Corporation


_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to