[Buildbot-devel] Buildbot 1.0: The Shimmering Vision

Dan Kegel dank at kegel.com
Thu Aug 14 15:34:24 UTC 2008


Howdy!  I work on the Wine project, and we have a largish
amount of custom build and test infrastructure.
It's tempting to consider migrating some of our custom stuff
to fit under the Buildbot hat.

The short story:

Looking at my favorite use case, it seems that Buildbot is missing:

- load balancing: once we add valgrind to our tests, we'll need
lots of build slaves, and some simple load balancing will be
needed

- a mailing list watcher / try --diff combination  which:

a) is adapted to watching a -patches (as opposed to -commits) mailing list

b) supports patch series (e.g. patch 2/2 should be tested in the
context of patch 1/2 already applied)

c) supports baseline build caching, i.e. support for
prebuilding trees fetched from a slowly changing git/svn/p4
as a baseline for building many proposed patches from a
busy -patches mailing list

d) supports a patch-centric report (in addition to buildbot's
existing build-centric reports)

The long story:

The part I'm most interested in at the moment is having a
patchwatcher bot try out every patch sent to the wine-patches
mailing list, and provide email, irc, and web feedback.

We have this prototyped outside of Buildbot already.
The patches are always applied and tested in a prebuilt tree
which is up to date with respect to git.
Some tests fail on trunk (Yeah, bad, but hard to fix), so for now,
patches are said to fail tests only if they introduce new failures.
Prebuilding and pretesting the reference tree saves 30-60 min
per iteration; we would need lots of extra build slaves if we
didn't do that.

Every time a patch is built and found lacking (e.g. doesn't
apply, doesn't build, or fails tests), a brief email
is sent, with a link to a web page with details.

The summary web page for the patchwatcher is online at
http://kegel.com/wine/patchwatcher/results/
and has one line per patch, with columns
'date', 'author', 'subject', and 'status/results'.
Clicking on 'subject' takes you to the patch.
Clicking on 'status/results' takes you to the build/test log.

- Dan




More information about the devel mailing list