[Buildbot-devel] buildbot-0.7.3 released

Brian Warner warner-buildbot at lothar.com
Tue May 23 21:31:58 UTC 2006


I've just released buildbot-0.7.3, which is now available on the sf.net
download site:

 http://buildbot.sourceforge.net/

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

 md5: 7be16fe13f173e46df711ed51648e750  buildbot-0.7.3.tar.gz
sha1: 01c3028b498d5a55510df91593c572069a6b0f0c  buildbot-0.7.3.tar.gz

This release has a few new features and a number of minor bug fixes. A lot of
the fixes are intended to improve the unit test suite under windows, and I'm
grateful to Niklaus Giger for putting so much effort into making these tests
pass. Unfortunately I've been unable to make everything work properly yet, so
many of these tests do *not* pass under windows. I hope to fix this soon, and
I encourage everyone who uses buildbot on windows to take a look at the test
suite and see if you can figure out where the problems are coming from. I'm
not a windows guy, I can make this stuff work under linux, but I'll need help
if you want it to work under windows.

The biggest new feature is support for Mercurial[1], an exciting version
control system that offers distributed operation and speed. step.Mercurial is
a BuildStep which will checkout or update a tree, and contrib/hg_mercurial.py
is a commit-hook script that can be placed in a repository to send changes to
the buildmaster.

The other new feature is support for "Build Properties", which are bits of
data attached to each build that describe things like what revision is being
built and which buildslave the build is running on. The most immediate use of
these is to interpolate them into a ShellCommand, allowing you to do things
like create numbered snapshot tarballs (like "snapshot-r1234.tar.bz") as part
of your build process. Other properties can be set by custom BuildSteps, and
be read as part of the build status. More details are in the user's manual.

There are also new contrib/ scripts for change notification, it is now easier
to configure branches in svn_buildbot.py, and BuildFactory now has an
.addStep method which should make it easier to write config files.

Also note:

 This is probably the last release to support Twisted-1.3.0 . The next
 release will require Twisted-2.0.x or newer. There are a lot of deprecation
 warnings and some compatibility code that I'd like to clean up, and to do
 that I probably have to drop support for 1.3.0.

 I hope this won't cause anyone too many problems. The biggest issue that
 comes to mind is that debian's current stable release ("sarge") ships with
 1.3.0, although Ubuntu's current stable ("Breezy") ships with 2.0.1, and it
 is pretty easy to drop newer .debs onto a sarge system.

The release notes are attached below and have a more detailed description of
the new features. For complete details of what's changed, please take a look
at the ChangeLog at the top of the distribution.

Have a hydrargyrus day,
 -Brian

[1]: http://selenic.com/mercurial




* Release 0.7.3 (23 May 2006)

** compatibility

This release is compatible with Twisted-1.3.0, but the next one will not be.
Please upgrade to at least Twisted-2.0.x soon, as the next buildbot release
will require it.

** new features

*** Mercurial support

Support for Mercurial version control system (http://selenic.com/mercurial)
has been added. This adds a buildbot.process.step.Mercurial BuildStep. A
suitable hook script to deliver changes to the buildmaster is still missing.

*** 'buildbot restart' command

The 'buildbot restart BASEDIR' command will perform a 'buildbot stop' and
'buildbot start', and will attempt to wait for the buildbot process to shut
down in between. This is useful when you need to upgrade the code on your
buildmaster or buildslave and want to take it down for a minimum amount of
time.

*** build properties

Each build now has a set of named "Build Properties", which can be set by
steps and interpolated into ShellCommands. The 'revision' and 'got_revision'
properties are the most interesting ones available at this point, and can be
used e.g. to get the VC revision number into the filename of a generated
tarball. See the user's manual section entited "Build Properties" for more
details.

** minor features

*** IRC now takes password= argument

Useful for letting your bot claim a persistent identity.

*** svn_buildbot.py is easier to modify to understand branches
*** BuildFactory has a new .addStep method
*** p4poller has new arguments
*** new contrib scripts: viewcvspoll, svnpoller, svn_watcher

These poll an external VC repository to watch for changes, as opposed to
adding a hook script to the repository that pushes changes into the
buildmaster. This means higher latency but may be easier to configure,
especially if you do not have authority on the repository host.

*** VC build property 'got_revision'

The 'got_revision' property reports what revision a VC step actually
acquired, which may be useful to know when building from HEAD.

*** improved CSS in Waterfall

The Waterfall display has a few new class= tags, which may make it easier to
write custom CSS to make it look prettier.

*** robots_txt= argument in Waterfall

You can now pass a filename to the robots_txt= argument, which will be served
as the "robots.txt" file. This can be used to discourage search engine
spiders from crawling through the numerous build-status pages.

** bugfixes

*** tests more likely to pass on non-English systems

The unit test suite now sets $LANG='C' to make subcommands emit error
messages in english instead of whatever native language is in use on the
host. This improves the chances that the unit tests will pass on such
systems. This affects certain VC-related subcommands too.

test_vc was assuming that the system time was expressed with a numeric
timezone, which is not always the case, especially under windows. This
probably works better now than it did before. This only affects the CVS
tests.

'buildbot try' (for CVS) now uses UTC instead of the local timezone. The
'got_revision' property is also expressed in UTC. Both should help deal with
buggy versions of CVS that don't parse numeric timezones properly.






More information about the devel mailing list