Last week, I tried out distribute inside one of my buildouts. I ran into some corner-case problems and started to grumble a bit. After a bit of prodding by Tarek (you’ve never seen a maintainer that reacts quicker and friendlier) and Hanno, I’m now a committer to the distribute project :-) And Tarek fixed all of my issues within two hours! Wow.
Packaging and distribution is essential for how we manage our software at The Health Agency. So: setuptools, pypi and buildout. Those need to be reliable, of course.
Buildout is run as a community project and in very good shape. Reliable. Happy with it.
Pypi, the python package index, has had some downtime issues. So we put an in-house proxy in front of it. There are multiple other proxies, so pypi works out ok.
Setuptools works fine when it works fine. The idea is great. When it doesn’t (a colleague upgraded subversion to 1.6 a month ago, which setuptools doesn’t work with), you’re at the mercy of the one and only maintainer: there’s no community process or backup. Ready-made patches sit idle for half a year. For such an essential piece of infrastructure, this is too high-risk if you earn your money with python. Solution: replace setuptools with distribute, which is setuptools + patches + community process + multiple committers. I’ve happily spend three days of private and company time on testing, trying and improving.
And distribute is now also available for buildout!
To make it explicit: grabing this bootstrap and using it is safe for every project. And it is the only change you need to make! (Note that this “dev” bootstrap grabs the 0.6.5dev distribute tgz: once 0.6.5 is released, take the non-dev bootstrap.py at http://python-distribute.org/). (UPDATE: 0.6.6 is out)
No need for a specific patched buildout release or so.
No need to mention distribute anywhere in your dependencies.
No worries about other buildouts: distribute doesn’t touch the setuptools egg in your (shared) buildout eggs directory. The other buildouts continue working just fine.
It just transparently works like a charm :-)
When you want the advantages (svn 1.6 support and other bugfixes) of distribute outside of buildout: do the normal “sudo easy_install distribute”.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):