[Buildbot-devel] buildbot-0.7.2 released

Brian Warner warner-buildbot at lothar.com
Fri Feb 17 08:43:24 UTC 2006

Hi all, I've finally pushed 0.7.2 out the door. This one doesn't add a lot of
new code, but I figured it was better to get the couple of small things
released than to sit on it for another few weeks while I work on larger
features. "Release early, release often" as the saying goes.

The code can be retrieved from the sf.net download site:


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

 md5: fda77c1d6d781a49b2ce3a2f2c180c64  buildbot-0.7.2.tar.gz
sha1: 7c62034f762746b73a32f15ca7d47a8711a9e02f  buildbot-0.7.2.tar.gz

The main bug that was fixed was the unfortunate one in which all Schedulers
stopped working if you used the "reload config file" control (either through
the debug panel or by sending SIGHUP to the buildmaster process). The two
features that were added are the ability to restrict listening ports to
specific interfaces (such as the 'loopback' interface), and the
ability to set the umask on the buildslave.

A couple of other minor changes were made. See the attached NEWS file for

Have a well-laundered day,

* Release 0.7.2 (17 Feb 2006)

** new features

*** all TCP port numbers in config file now accept a strports string

Sometimes it is useful to restrict certain TCP ports that the buildmaster
listens on to use specific network interfaces. In particular, if the
buildmaster and SVN repository live on the same machine, you may want to
restrict the PBChangeSource to only listen on the loopback interface,
insuring that no external entities can inject Changes into the buildbot.
Likewise, if you are using something like Apache's reverse-proxy feature to
provide access to the buildmaster's HTML status page, you might want to hide
the real Waterfall port by having it only bind to the loopback interface.

To accomplish this, use a string like "tcp:12345:interface=" instead
of a number like 12345. These strings are called "strports specification
strings", and are documented in twisted's twisted.application.strports module
(you can probably type 'pydoc twisted.application.strports' to see this
documentation). Pretty much everywhere the buildbot takes a port number will
now accept a strports spec, and any bare numbers are translated into TCP port
numbers (listening on all network interfaces) for compatibility.

*** buildslave --umask control

Twisted's daemonization utility (/usr/bin/twistd) automatically sets the
umask to 077, which means that all files generated by both the buildmaster
and the buildslave will only be readable by the account under which the
respective daemon is running. This makes it unnecessarily difficult to share
build products (e.g. by symlinking ~/public_html/current_docs/ to a directory
within the slave's build directory where each build puts the results of a
"make docs" step).

The 'buildbot slave <PARAMS>' command now accepts a --umask argument, which
can be used to override the umask set by twistd. If you create the buildslave
with '--umask=022', then all build products will be world-readable, making it
easier for other processes (run under other accounts) to access them.

** bug fixes

The 0.7.1 release had a bug whereby reloading the config file could break all
configured Schedulers, causing them to raise an exception when new changes
arrived but not actually schedule a new build. This has been fixed.

Fixed a bug which caused the AnyBranchScheduler to explode when branch==None.
Thanks to Kevin Turner for the catch. I also think I fixed a bug whereby the
TryScheduler would explode when it was given a Change (which it is supposed
to simply ignore).

The Waterfall display now does more quoting of names (including Builder
names, BuildStep names, etc), so it is more likely that these names can
contain unusual characters like spaces, quotes, and slashes. There may still
be some problems with these kinds of names, however.. please report any bugs
to the mailing list.

More information about the devel mailing list