Version 6 (modified by zooko, at 2009-12-02T19:03:11Z) (diff)


There are two classes of builder for the Tahoe Buildbot: Supported and Unsupported. The buildbot policy has two parts:

  1. Packages are produced for any platform only when all of the supported platforms pass tests. This means that if, for example, the Windows platform starts failing unit tests, then we stop producing new .deb packages for Debian or Ubuntu. Also vice versa: if one of the Supported debian platforms fails its unit tests, then we won't produce a new Windows package from that version of the source code.
  1. If a supported builder goes red then we fix it right away.

Here is the procedure that we follow to implement this policy:

  1. It could be we just committed a patch that breaks Tahoe in a way that makes a test fail on that builder. In this case we either:
    1. Revert that patch.
    2. Commit a new patch that fixes the previous patch (careful ...)
  1. It could be that the new patch doesn't break Tahoe, but that the unit tests incorrectly think it does, in which case we either:
    1. Commit a new patch that fixes the unit tests.
    2. Commit a new patch that marks that test as "skip" on that builder.
  1. It could be that something in the configuration of the build machine has changed which breaks Tahoe and/or Tahoe's unit tests. In that case we either:
    1. Commit a new patch which makes Tahoe work on that new configuration.
    2. Get the administrator of that build machine to change the configuration so that Tahoe works again.

In any of these cases, we might be unable to resolve the redness in a timely manner. In that case we demote that builder from the Supported Builders page to the Unsupported Builders page, as linked from the Buildbot button at the top of every page on this site.

The fact that packages (.deb's, tarballs/zipfiles/etc., .egg's) are produced only when all supported builders are green means that you know when you download one of those packages that you are getting a package produced from a version of the source code that passed all tests on all supported platforms.

(It might be nice if we did build packages even for versions of the software that didn't pass all tests, but segregated those packages somehow, such as put them in a separate download directory or a separate apt repository. I don't know exactly how to program buildbot to do that, though. --Zooko 2009-03-08)