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.