[webkit-dev] First Early Warning System (EWS) bot online

Adam Barth abarth at webkit.org
Wed Dec 16 01:06:58 PST 2009

In the wee hours of the morning, I turned on a new bot, which is the
first part of the Early Warning System (EWS) that Eric and I have been
building.  The EWS bots are very much like the style-queue, except
they test compilation instead of style.

== Executive Summary ==

When a patch is posted for review, each EWS bot applies the patch
locally and runs build-webkit.  If build-webkit succeeds, the bot does
nothing.  If build-webkit fails, the bot adds a comment to the bug
indicating the failure and posts a link to the build log.

== Goals ==

The goal of the EWS is to help us not break the build by providing an
early warning for patches that break the build.  By posting the build
output, the EWS should give contributors some idea how to fix the
build even if they can't compile the broken port themselves.

If you're especially interested in a particular port, you can
subscribe to EWS notifications about that port.  When the EWS detects
that a patch will break the build for that port, the EWS will
automatically CC you on the bug.  Currently, I'm the only person
subscribed to EWS notifications.  If you'd like to subscribe to a
particular port, let me know.

== Social Contract ==

Like the style-queue, the EWS is purely advisory.  Contributors and
reviewers are free to ignore the warnings if they believe the warnings
are erroneous or they decide (for whatever reason) to break the build
in question.

== Frequently Asked Questions ==

Q) What ports does the EWS support?
A) The first EWS bot is for the Chromium port.  I have a bot for the
Qt port working too, but the build time for the Chromium port was much
shorter, so I'm starting with it.  My goal is to eventually have a bot
for every port (although I haven't worked out the operational issues
for non-Linux ports).

Q) I wish the EWS supported the foobar port.  Can I run an EWS bot myself?
A) Yes!  The EWS is fully distributed.  Anyone can run a EWS bot for
whatever platform they're interested in.  The bots coordinate via a
web service.  If you're serious about running an EWS bot for your
port, let me know and we can make that happen.

Q) Why doesn't the EWS post a success message?  I like positive re-enforcement.
A) I'm worried about spamming bugs with too many happy status
messages.  If we have N ports with EWS bots, we don't want to have N
happy status messages.  Eric and I have some ideas for a more passive
success indicator.  Once things are running smoothly, we can share
some mocks with the list.

Q) Why doesn't the bot run the LayoutTests?  I'd like to know when I
break the LayoutTests on other platforms.
A) We'd eventually like to run the LayoutTests, but we're starting
with compilation because it's faster and easier.

Q) How does the EWS differ from a try server?
A) The EWS is similar to a try server farm, but the goal is different.
 Developers frequently send experimental patches to try servers to see
what happens.  When you post a patch for review, the expectation is
that the patch has some chance of getting r+ed and landed.  That means
EWS failures should be unusual and worth notifying the subscribers

Q) How does the EWS deal with patches that don't apply cleanly to TOT?
A) The EWS ignores them.  It's unclear whether a non-applying patch is
good or bad.  It might just be dependent on another patch that hasn't
been landed yet.  Our experience with the style-queue is that most
patches apply to TOT when they're posted, so I don't think this is a
big limitation.

Let me know if you have any questions.  You can follow everything the
bots do by subscribing to webkit-bot-watchers at googlegroups.com, but
you'll mostly see a bunch of style-queue traffic because the
style-queue is much noisier than the EWS.  We'll eventually turn
<http://webkit-commit-queue.appspot.com/> into an awesome dashboard
where you can see all the exciting things the bots are up to.

Happy hacking!

More information about the webkit-dev mailing list