Buildout 2.0 is out! What to do in case of an error.

Tags: python, buildout

zc.buildout 2.0.0 is out, hurray! Quite some nice things in there which I’ll write down in another post.

Something breaks?

I saw some bug reports on a mailinglist and on stack overflow (example 1, example 2) about buildouts suddenly breaking since buildout 2.0 is out.

Most extensions and buildout recipes work just fine with the latest buildout, but some break due to some internal buildout classes and imports being changed or moved around.

Solution: take a newer bootstrap

Buildout 1.5/1.6/1.7 really changed something compared to buildout 1.4. More isolation from the system python was added, but this didn’t work everywhere. There was a special bootstrap that kept you on buildout 1.4.4. If you used that one, you can probably switch to buildout 2.0.

Take the 2.0 bootstrap:

If you want to stay on 1.5/1.6/1.7, you really want to stick to 1.7. That includes a build-in version restriction for zc.buildout to be less than 2.0.

The 1.x bootstrap will keep you in 1.x land:

For most “help” questions, the quickest answer has been to pick this bootstrap and run it and by happy.

Upgrading? Real quick instructions.

Well, use the 2.0 bootstrap:

If somewhere you’ve pinned buildout and if that interferes, add these two pins to your [versions] part, otherwise you don’t need to:

zc.buildout = 2.0.0
zc.recipe.egg = 2.0.0a3

Many buildouts use “buildout-versions” or “buildout.dumppickedversions”. Those two extentions won’t work anymore, so remove them from your “extensions” list. The good thing: the functionality is included in buildout itself. But you have to enable show-picked-versions for that:

show-picked-versions = true
... logo

About me

My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.

Weblog feeds

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):