[Distutils] zc.buildout usage in the real world

Alex Rades alerades at gmail.com
Thu Nov 26 22:58:35 CET 2009


Hi,

I'm currently working on a project based on django, together with a
dozen of external libraries. Often I am in one of these scenarios:

- I discover bugs in an external libraries, and i fix them, but the
upstream author is busy and I need to deploy the fix ASAP. So I
produce a patch.
- I have to install a particular revision of an external library from git/svn/hg

The approach I've used so far has been setting up a private
pypi-compatible repository, and recreate packages which fit my needs.
But it really feels like killing an ant with a sledgehammer. I don't
understand if there is a better way to:

- Patch packages before installing
- Fetch packages via git/svn/hg or via direct http link

I'm currently using the *great* minitage.recipe.scripts recipe to do
all of this, and infact i can do something like:
----------------------------
[complex-deps]
interpreter = python
recipe = minitage.recipe.scripts
urls =
  http://media.djangoproject.com/releases/1.1.1/Django-1.1.1.tar.gz
  http://github.com/robhudson/django-debug-toolbar/commit/f36b72655349cf3b8e9105bed3be5cd065162476

Django-1.1.1-patches = ${buildout:directory}/patches/django-admin-fixes.diff
debug_toolbar-patches =
${buildout:directory}/patches/debug_toolbar_sqlpanel.diff
-----------------------------

Which is very very handy, it handles all my use case in a compact and
nice way. The minitage.recipe.scripts is nice but is not widely used,
so I'm a bit worried about its future and possible breakages. You know
- when you work on a large project you have to think hard about your
dependencies. It's like getting married.

So the question is: Are there alternative solutions? Am I the only one
with such needs?

Thank you


More information about the Distutils-SIG mailing list