Alex Rades wrote:
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
What I do is check out the offending package, tweak the version in their setup.py to include the identifier of the revision I checked out, then do "python setup.py sdist" and put that sdist into my "egg server". If I needed to apply patches that the packager won't accept (hasn't happened yet!), I'd do an export of the upstream package into my source control system, apply the patches and then do the process I've already described. My "egg server" is just an authentication-required folder on an https web server, I use lovely.buildouthttp and a find-links to make this work. This is actually even quicker and simpler than it looks.
[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/f36b72655349cf3b8e91...
Django-1.1.1-patches = ${buildout:directory}/patches/django-admin-fixes.diff debug_toolbar-patches = ${buildout:directory}/patches/debug_toolbar_sqlpanel.diff
This kind of patching makes me nervous...
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,
...but then minitage as a whole makes me nervous, I just don't trust it, but I'm afraid I couldn't tell you why. Gut feeling... Chris -- Simplistix - Content Management, Batch Processing & Python Consulting - http://www.simplistix.co.uk