Developing bob.buildout

You can quickly test this package by running the following commands:

$ buildout
$ ./bin/nosetests -sv

Testing is limited to certain internal functionality. If you want to do an extensive test and make sure changes are operating when you use this package to create an environment for another package, please read on.

Cross-developing with another package

This is a chicken-and-egg problem as developing another package with a new version of this package requires a working installation of bob.buildout. In order to break the loop, you’ll need to first buildout with a simplified version of buildout.cfg, to tell buildout bob.buildout is being developed alongside the test package. As an example, we’ll develop bob.buildout in a bob.extension checkout:

$ git clone https://gitlab.idiap.ch/bob/bob.extension
$ cd bob.extension
# create the file first.cfg with the following contents:
$ cat first.cfg
[buildout]
parts =
develop = src/buildout
$ mkdir src
$ git clone https://gitlab.idiap.ch/bob/bob.buildout src/bob.buildout

Setup your base conda-environment as usual and the, run buildout -c first.cfg:

$ buildout -c first.cfg

The previous command should not download anything from PyPI and will create a symbolic egg link in develop-eggs called bob.buildout.egg-link. To make sure your first.cfg bootstrap procedure worked, check there. Now, slightly modify buildout.cfg from bob.extension to include a new line in the buildout.develop entry before ., so the new buildout will also take the bootstrapped buildout into consideration. It should look like this:

$ cat buildout.cfg
[buildout]
parts = scripts
develop = src/bob.buildout
          .
eggs = bob.extension
extensions = bob.buildout
newest = false
verbose = true

[scripts]
recipe = bob.buildout:scripts
dependent-scripts = true

Now run buildout normally, against the modified buildout.cfg:

$ buildout
...

This last step should provide you with a setup as performed by the bleeding-edge version of bob.buildout you have checked-out on the src directory. You can modify it and re-run buildout until everything looks in order.

Releasing bob.buildout

This is a standard Bob package and therefore you must follow the standard releasing procedure using bob_new_version.py or any more recent script available for such purpose.

You may create a bob.extension-based environment for such as per instructions above or start from a pure conda-based install which contains bob.extension and run that script from it.