wiki:EWS

Version 2 (modified by abarth@webkit.org, 9 years ago) (diff)

--

WebKit Early Warning System (EWS)

The WebKit Early Warning System is a designed to help catch build failures/test failures before patches are committed into WebKit. The EWS checks every patch posted for review on bugs.webkit.org using a system of queues, one for each port (Mac, Win, Chromium) as well as queues for Style as well as committer/reviewer flag compliance. Failing an EWS check results in a patch being marked as cq- and a comment being added to the bug. The WatchList support is also implemented as part of the EWS.

Modifying the Early Warning System

The EWS is part of webkitpy. The EWS bots are implemented as hidden webkit-patch commands, the server side is implemented in Google App Engine. All code changes go through the normal review system, and testing of webkitpy (including the EWS) is done by test-webkitpy.

Adding a new EWS Bot

Anyone can start a new EWS bot for an existing queue, but simply running "webkit-patch mac-ews", "win-ews" or whichever queue they would like to run.

The EWS system is designed to handle any number of EWS bots running per queue, and will distribute patches to idle bots accordingly.

We've had the most experience running EWS bots using git working copies (although SVN should also work in theory). It's helpful if you run the EWS bot as a bugs.webkit.org user with the EditBugs privilege so that it can leave comments on bugs. To give the bot some bugs.webkit.org credentials, add the following lines to your .git/config:

[bugzilla]
	username = user@host.com
	password = password123

Normally administrators run EWS bots using the start-queues.sh script found in the EWSTools package.

Adding a new EWS Queue

Adding a new queue to the EWS (for a new port, or some new type of patch validation) requires both adding a new webkit-patch command to earlywarningsystem.py, as well as editing the server-side list of queues.

If you plan to add a new EWS Queue you should CC both abarth and eseidel on your patches.

Attachments (1)

Download all attachments as: .zip