Comments on: zc.buildout, or Jim Fulton strikes again http://blog.amber.org/2008/03/04/zcbuildout-or-jim-fulton-strikes-again/ Thoughts of a minor lunatic Wed, 21 Oct 2009 01:55:36 +0000 http://wordpress.org/?v=2.9.2 hourly 1 By: Jeff Shell http://blog.amber.org/2008/03/04/zcbuildout-or-jim-fulton-strikes-again/comment-page-1/#comment-51708 Jeff Shell Wed, 05 Mar 2008 07:17:52 +0000 http://blog.amber.org/2008/03/04/zcbuildout-or-jim-fulton-strikes-again/#comment-51708 I've used it. I haven't seen the screencast, so I can't comment on it. But I can summarize my experiences. First - for development of small, 'standalone' packages, it's awesome. It makes it very easy to create one or more test environments, standalone interpreters, etc. It's great for trying out Eggs in a controlled environment. It's great for generating scripts from said eggs. Basically it makes it easy to create a package that you can checkout / clone / download and use in a repeatable way immediately. One case that I found interesting was when I was working on a package that had to speak to multiple database back-ends. With buildout and the 'testrunner' recipe, it was very easy to make 'test-sqlite', 'test-mysql', and 'test-postgres' scripts that loaded different eggs to support their respective databases. Having them be separate meant I could still run 'sqlite' tests on boxes where I didn't have the other environments installed. There's not really any scary magic, but it can be a bit frustrating to work with. Most documentation is written in doctest style, which can waste 120 lines of example source and output to show the toggling of a single switch. It can be frustrating to work through. There are some PDFs, screencasts, etc, floating around, but they're not gathered in a cohesive place like a dedicated web site. A lot of the real power comes from the recipes, and the situation there is similar: documentation written in doctest format which doesn't always map to real-world uses. There aren't many documents (easily findable) that show how to work the different recipes together in real-world situations. The few documents that I can find that do that are dedicated to using Buildout with Plone or Grok. But in general, I do think it's a really good tool. Many of my frustrations came from a unique (it seems) situation made worse by severe lack of time and the need to convert our entire code base to be distutils/setuptools based (not easily done piecemeal, particularly during the height of our busy season). I’ve used it. I haven’t seen the screencast, so I can’t comment on it. But I can summarize my experiences.

First – for development of small, ‘standalone’ packages, it’s awesome. It makes it very easy to create one or more test environments, standalone interpreters, etc. It’s great for trying out Eggs in a controlled environment. It’s great for generating scripts from said eggs.

Basically it makes it easy to create a package that you can checkout / clone / download and use in a repeatable way immediately.

One case that I found interesting was when I was working on a package that had to speak to multiple database back-ends. With buildout and the ‘testrunner’ recipe, it was very easy to make ‘test-sqlite’, ‘test-mysql’, and ‘test-postgres’ scripts that loaded different eggs to support their respective databases. Having them be separate meant I could still run ‘sqlite’ tests on boxes where I didn’t have the other environments installed.

There’s not really any scary magic, but it can be a bit frustrating to work with. Most documentation is written in doctest style, which can waste 120 lines of example source and output to show the toggling of a single switch. It can be frustrating to work through. There are some PDFs, screencasts, etc, floating around, but they’re not gathered in a cohesive place like a dedicated web site. A lot of the real power comes from the recipes, and the situation there is similar: documentation written in doctest format which doesn’t always map to real-world uses. There aren’t many documents (easily findable) that show how to work the different recipes together in real-world situations. The few documents that I can find that do that are dedicated to using Buildout with Plone or Grok.

But in general, I do think it’s a really good tool. Many of my frustrations came from a unique (it seems) situation made worse by severe lack of time and the need to convert our entire code base to be distutils/setuptools based (not easily done piecemeal, particularly during the height of our busy season).

]]>