[Buildbot-devel] buildbot-0.7.4 released

Brian Warner warner-buildbot at lothar.com
Wed Aug 23 09:00:58 UTC 2006

I've just finished releasing buildbot-0.7.4, which is now available on the
sf.net download site:


As always, the release is signed with my GPG key (0x1514a7bd), and the
tarball checksums are as follows:

 md5: a311b9c9b283acc8e6fa8770d099bae7  buildbot-0.7.4.tar.gz
sha1: d661b0058188ed92cc7ae8e8b0a76704d7581ca5  buildbot-0.7.4.tar.gz

The biggest new feature in this release is full support for Perforce,
contributed by Scott Lamb. There are also a number of smaller features,
including the ability to watch multiple logfiles at the same time (rather
than having to use 'cat' to dump the contents of secondary logfiles after the
step has completed). The addition of "BuildStep URLs" makes it possible for
BuildSteps to add a URL that is presented on the waterfall display in the
same place as logs are shown: this is intended to provide an easy way to link
to externally-hosted HTML content, such as that produced by a code-coverage
tool or the like. There are the usual collection of smaller features and
bugfixes too.. please see the release notes (below) for a list.

Also, the "Architecture" section of the User's Manual has been overhauled,
with half a dozen shiny diagrams showing how all the pieces fit together.
Hopefully this will help the explanations given therein make much more sense
to the newcomer. The User's Manual is available online at
http://buildbot.sf.net/manual-0.7.4.html , and it is also now included in the
distribution tarball (unfortunately this inflated the tarball from 600kb to
860kb, but I think it's probably worth it).

The release notes are attached below and have more details. Please at least
look at the first section: "What You Need To Know", because several
interfaces have changed slightly and may require you to update your
master.cfg files. For complete details of what has been changed, please check
out the full ChangeLog in the top of the distribution tree.

Have a yuzzamatuzz-ish day,

* Release 0.7.4 (23 Aug 2006)

** Things You Need To Know

The PBChangeSource's prefix= argument has changed, you probably need to add a
slash now. This is mostly used by sites which use Subversion and

The subcommands that are used to create a buildmaster or a buildslave have
changed. They used to be called 'buildbot master' and 'buildbot slave'. Now
they are called 'buildbot create-master' and 'buildbot create-slave'. Zipf's
Law suggests that these are more appropriate names for these
infrequently-used commands.

The syntax for the c['manhole'] feature has changed.

** new features

*** full Perforce support

SF#1473939: large patch from Scott Lamb, with docs and unit tests! This
includes both the step.P4 source-checkout BuildStep, and the changes.p4poller
ChangeSource you'll want to feed it. P4 is now supported just as well as all
the other VC systems. Thanks Scott!

*** SSH-based Manhole

The 'manhole' feature allows buildbot developers to get access to a python
read/eval/print loop (REPL) inside the buildmaster through a network
connection. Previously, this ran over unencrypted telnet, using a simple
username/password for access control. The new release defaults to encrypted
SSH access, using either username/password or an authorized_keys file (just
like sshd). There also exists an unencrypted telnet form, but its use is
discouraged. The syntax for setting up a manhole has changed, so master.cfg
files that use them must be updated. The "Debug options" section in the
user's manual provides a complete description.

*** Multiple Logfiles

BuildSteps can watch multiple log files in realtime, not just stdout/stderr.
This works in a similar fashion to 'tail -f': the file is polled once per
second, and any new data is sent to the buildmaster.

This requires a buildslave running 0.7.4 or later, and a warning message is
produced if used against an old buildslave (which will otherwise produce no
data). Use "logfiles={'name': 'filename'}" to take advantage of this feature
from master.cfg, and see the "ShellCommand" section of the user's manual for
full documentation.

The 'Trial' buildstep has been updated to use this, to display
_trial_temp/test.log in realtime. It also knows to fall back to the previous
"cat" command if the buildslave is too old.

*** BuildStep URLs

BuildSteps can now add arbitrary URLs which will be displayed on the
Waterfall page in the same place that Logs are presented. This is intended to
provide a link to generated HTML pages, such as the output of a code coverage
tool. The step is responsible for somehow uploading the HTML to a web server:
this feature merely provides an easy way to present the HREF link to the
user. See the "BuildStep URLs" section of the user's manual for details and

*** LogObservers

BuildSteps can now attach LogObservers to various logfiles, allowing them to
get real-time log output. They can use this to watch for progress-indicating
events (like counting the number of files compiled, or the number of tests
which have run), and update both ETA/progress-tracking and step text. This
allows for more accurate ETA information, and more information passed to the
user about how much of the process has completed.

The 'Trial' buildstep has been updated to use this for progress tracking, by
counting how many test cases have run.

** new documentation

What classes are useful in your master.cfg file? A table of them has been
added to the user's manual, in a section called "Index of Useful Classes".

Want a list of all the keys in master.cfg? Look in the "Index of master.cfg
keys" section.

A number of pretty diagrams have been added to the "System Architecture"
portion of the manual, explaining how all the buildbot pieces fit together.

An HTML form of the user's manual is now shipped in the source tarball. This
makes it a bit bigger: sorry about that. The old PyCon-2003 paper has been
removed from the distribution, as it is mostly supplanted by the user's
manual by this point.

** bugfixes

SF#1217699 + SF#1381867: The prefix= argument to PBChangeSource has been
changed: now it does just a simple string-prefix match and strip. The
previous behavior was buggy and unhelpful. NOTE: if you were using prefix=
before, you probably need to add a slash to the end of it.

SF#1398174: ignore SVN property changes better, fixed by Olivier Bonnet

SF#1452801: don't double-escape the build URL, fixed by Olivier Bonnet

SF#1401121: add support for running py2exe on windows, by Mark Hammond

reloading unchanged config files with WithProperties shouldn't change anything.

All svn commands now include --non-interactive so they won't ask for
passwords. Instead, the command will fail if it cannot be performed without
user input.

Deprecation warnings with newer versions of Twisted have been hushed.

** compatibility

I haven't actually removed support for Twisted-1.3.0 yet, but I'd like to.

The step_twisted default value for --reporter matches modern Twisteds,
though, and won't work under 1.3.0.

ShellCommand.flunkOnFailure now defaults to True, so any shell command which
fails counts as a build failure. Set this to False if you don't want this

** minor features

contrib/darcs_buildbot.py contains a new script suitable for use in a darcs

Hovering a cursor over the yellow "Build #123" box in the Waterfall display
will pop up an HTML tooltip to show the reason for the build. Thanks to Zandr
Milewski for the suggestion.

contrib/CSS/*.css now contains several contributed stylesheets to make the
Waterfall display a bit less ugly. Thanks to John O'Duinn for gathering them.

ShellCommand and its derivatives can now accept either a string or a list of
strings in the description= and descriptionDone= arguments. Thanks to Paul
Winkler for the catch.

More information about the devel mailing list