[Buildbot-devel] buildbot-0.5.0 released

Brian Warner warner at lothar.com
Fri Jul 23 18:56:19 UTC 2004

Buildbot: http://buildbot.sf.net

I've just released buildbot-0.5.0 . This release adds a few small features
and fixes a few small bugs: there are both some large features and large bugs
still at the top of my TODO list, but it's been a while since we had a
release and I wanted to get this one out quickly.

The biggest change is that FreshCVSSource now defaults to using the "newcred"
interface offered by CVSToys-1.0.10 (the latest release, which has been
available for ages but didn't get announced on the web page until a few weeks
ago). If you need to connect to an older CVSToys server (1.0.9 or before),
use the FreshCVSSourceOldcred class instead.

The second big change is in master.cfg, where Builders are now configured
with a dictionary. This makes it a good bit easier to read. As a side-effect,
you can now set builder['periodicBuildTime']=N to run a build every N
seconds. This functionality is used by several installations who do not have
a convenient way of getting Change information to the buildmaster, but until
now they had to enable it by hacking the source.

Bugs fixed include a race condition with Interlocks, and a prefix= argument
to FreshCVSSource that didn't work the way it was supposed to. Note that the
prefix= argument must now end with a slash: it is stripped off with a simple
string-match. The "config file is not documented" bug has been fixed too, see
docs/config.xhtml .

Also note that the upgrade-in-place process I described earlier should work
with this release. If you experience problems restarting your -shutdown.tap
file with the new code (watch twistd.log as it starts for any error
messages), please report it as a bug (and please make a copy of your original
-shutdown.tap file so I can try to reproduce it). I will endeavor to maintain
this property with future releases, at least between minor revisions. (I have
some large-scale changes in mind that might make it difficult to attain this

Full details are listed in the release notes, attached below. Many thanks to
Cory Dodt and Christopher Armstrong who have joined us as developers, and the
many users who submit patches and bug reports.

The release is available from the sourceforge download page, at:


It is signed with my GPG key as always, available from
http://www.lothar.com/warner-gpg.html . (This is the second release signed
with my new GPG key 0x1514A7BD). The md5sum of the tarball is:

 a486e8635b8a20800cd66265c4e2f063  buildbot-0.5.0.tar.gz

Complete NEWS is attached below. Please send all questions to the
buildbot-devel list, as usual.

Have a recursive day,

* Release 0.5.0 (22 Jul 2004)

** new features

*** web.distrib servers via TCP

The 'webPathname' config option, which specifies a UNIX socket on which to
publish the waterfall HTML page (for use by 'mktap web -u' or equivalent),
now accepts a numeric port number. This publishes the same thing via TCP,
allowing the parent web server to live on a separate machine.

This config option could be named better, but it will go away altogether in
a few releases, when status delivery is unified. It will be replaced with a
WebStatusTarget object, and the config file will simply contain a list of
various kinds of status targets.

*** 'master.cfg' filename is configurable

The buildmaster can use a config file named something other than
"master.cfg". Use the --config=foo.cfg option to mktap to control this.

*** FreshCVSSource now uses newcred (CVSToys >= 1.0.10)

The FreshCVSSource class now defaults to speaking to freshcvs daemons from
modern CVSToys releases. If you need to use the buildbot with a daemon from
CVSToys-1.0.9 or earlier, use FreshCVSSourceOldcred instead. Note that the
new form only requires host/port/username/passwd: the "serviceName"
parameter is no longer meaningful.

*** Builders are now configured with a dictionary, not a tuple

The preferred way to set up a Builder in master.cfg is to provide a
dictionary with various keys, rather than a (non-extensible) 4-tuple. See
docs/config.xhtml for details. The old tuple-way is still supported for now,
it will probably be deprecated in the next release and removed altogether in
the following one.

*** .periodicBuildTime is now exposed to the config file

To set a builder to run at periodic intervals, simply add a
'periodicBuildTime' key to its master.cfg dictionary. Again, see
docs/config.xhtml for details.

*** svn_buildbot.py adds --include, --exclude

The commit trigger script now gives you more control over which files are
sent to the buildmaster and which are not.

*** usePTY is controllable at slave mktap time

The buildslaves usually run their child processes in a pty, which creates a
process group for all the children, which makes it much easier to kill them
all at once (i.e. if a test hangs). However this causes problems on some
systems. Rather than hacking slavecommand.py to disable the use of these
ptys, you can now create the slave's .tap file with --usepty=0 at mktap

** Twisted changes

A summary of warnings (e.g. DeprecationWarnings) is provided as part of the
test-case summarizer. The summarizer also counts Skips, expectedFailures,
and unexpectedSuccesses, displaying the counts on the test step's event box.

The RunUnitTests step now uses "trial -R twisted" instead of "trial
twisted.test", which is a bit cleaner. All .pyc files are deleted before
starting trial, to avoid getting tripped up by deleted .py files.

** documentation

docs/config.xhtml now describes the syntax and allowed contents of the
'master.cfg' configuration file.

** bugfixes

Interlocks had a race condition that could cause the lock to get stuck

FreshCVSSource has a prefix= argument that was moderately broken (it used to
only work if the prefix was a single directory component). It now works with

The buildmaster used to complain when it saw the "info" directory in a
slave's workspace. This directory is used to publish information about the
slave host and its administrator, and is not a leftover build directory as
the complaint suggested. This complain has been silenced.

More information about the devel mailing list