The Buildbot is a system to automate the compile/test cycle required by most software projects to validate code changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not.
The FEniCS buildbot is available from http://fenicsproject.org:8010. The default Waterfall is quite complex but the Console View provides a good overview of the current status. In addition, the following links might be useful when only some of the components are of interest.
|All components||master / next / maint / all||master / next / maint / all|
|Core components||master / next / maint / all||master / next / maint / all|
|DOLFIN||master / next / maint / all||master / next / maint / all|
|FFC||master / next / maint / all||master / next / maint / all|
|FIAT||master / next / maint / all||master / next / maint / all|
|Instant||master / next / maint / all||master / next / maint / all|
|UFC||master / next / maint / all||master / next / maint / all|
|UFL||master / next / maint / all||master / next / maint / all|
|uflacs||master / next / maint / all||master / next / maint / all|
There are also other alternative renderings of the results:
To be notified about buildbot failures, join the FEniCS Buildbot team on Launchpad.
The Buildbot has a facility called “try server”. This allows you to run a build with your local changes before they are committed. To set up your machine to run try builds, first install a recent version of buildbot. Then go to your git-based working copy that contains changes and run the following command:
git diff | buildbot --connect=pb \ --maint=fenicsproject.org:8031 \ --username=<username> \ --password=<password> \ --who=<your name> \ --builder=<builder-name> \ --diff=-
To save some typing, add a file ~/.buildbot/options with the following contents:
try_connect = 'pb' try_maint = 'fenicsproject.org:8031' try_username = 'username' try_password = 'password' try_who = 'your name'
You can then start a build simply by running:
git diff | buildbot try --builder=<builder-name> --diff=-
To see a list of available options, see buildbot try --help. For instance, using --dryrun will gather info but not submit, while using --get-builder-names will list the names of the available builders that can be used with the --builder option. The builders can also be set in ~/.buildbot/options, for instance:
try_builders = ["dolfin-master-full-lucid-amd64", "dolfin-master-full-osx-10.7"]
For more information on running try builds, see the try section in the Buildbot documentation.
To be able to run try builds, you will need a username and password. This can be obtained by contacting Johannes Ring. For now, the access is limited to currently active developers.
Doing try builds on the FEniCS buildbot is currently experimental and might not always works as expected.