Contractor
Overview
Contractor is a system for building dependent sets of packages. It
differs from a simple build script in that builds can be stopped,
restarted, adjusted and updated. The packages are installed in a
communal directory ("install"); a setup script ("setup.sh") to add the
relevant subdirectories to the appropriate paths is generated by
Contractor.
Contractor breaks a build into many stages called *nodes*. (Contractor
maintains an internal directed acyclic graph where the build stages and
dependencies are the nodes and edges, respectively.) Some nodes are
convenience entries, such as "clean." Since the build contains many
nodes, most of which are not directly interesting to the end user, only
a subset of nodes most likely to be invoked separately are labeled
*targets*.
Simple Usage
./contract.py --configure
./contract.py
will configure the default options and build the default target.
Getting Help
./contract.py --help
lists the help options.
Configuration
Configuration options are cumulative. If the default value of "foo" is 1 and the default value of "bar" is 2, the initial
./contract.py --configure
will set foo=1 and bar=2. If we then type
./contract.py --configure foo=3
we would have foo=3 and bar=2. If we then wanted to change bar, we could do
./contract.py --configure bar=4
which would leave us with foo=3 and bar=4. A subsequent
./contract.py --configure
still leaves foo=3 and bar=4. In order to return to the defaults, we would have to do
./contract.py --configure-reset
which would return us to foo=1, bar=2.
Source
Most recent (Nov 13, 2006) tarball
n.b. Distribution tarballs created by
contractor include contractor itself. The tarballs below do not
necessarily have the very most recent version of contractor, but the
differences with the current version should be minimal.
Trivial example

distribution tarball
Matplotlib example

distribution tarball
Enthought example

distribution tarball
Synergia2 example
(Diagram only. Distribution available upon request.)
CHEF example

(Diagram only. Distribution available upon request.)
Last update: 11-14-2006