Recently Zope 3 has been "exploded" into individual projects. Each of these projects has its own trunk, tags and branches. Moreover these packages follow their own release cycle. This document describes how to use buildout to setup a development environment using buildout.
Buildout helps to setup an isolated working environment for packages. Using Buildout you can control dependencies and its version used. Buildout provides a single command (buildout) with few sub-commands and options to manage a project buildout. You can install Buildout using easy_install:
easy_install zc.buildout
All packages in Zope 3 has buildout support. Having buildout support for a package practically means a buildout.cfg configuration file in the root of package.
The minimum configuration required for a package is:
[buildout] develop = .
This tell buildout that the package to be developed is the current one. You can extend this with parts option.
Here is a typical buildout.cfg for a Zope 3 package:
[buildout] parts = test develop = . [test] recipe = zc.recipe.testrunner eggs = zope.deferredimport
In the above configuration, the test section use a Buildout recipe. This recipe setup a testrunner script under bin directory.
All the packages in Zope repository is residing in svn://svn.zope.org/repos/main/ . To develop a package you have to checkout the package from subversion. You can checkout a package like this (replace USERID with your user Id):
svn co svn+ssh://USERID@svn.zope.org/repos/main/zope.deferredimport/trunk zope.deferredimport
After checkout you can run buildout command without any arguments inside that directory:
buildout
Most of the Zope 3 packages use testrunner recipe to run tests, so you can run tests like this:
./bin/test
After changing code, you can run tests again. If everything goes well, you may commit your changes. Remember, you cannot simply commit anything. Please refer developer documentations for more details.
For more documentation visit: http:///www.buildout.org