For Firefox and Thunderbird, we assign one build/release engineer per
release (as part of the "release team" for that version). I've been the
release engineer for 3 of the Firefox/Thunderbird 1.5.0.x cycles and 2
of the BonEcho alphas, so (I hope!) that I am starting to get the hang
of it now. While we have a well-specified procedure (thanks to Paul
Reed's incredible diligence) and we work hard to keep our docs up to
date, one thing we've been missing is a system to automate the tagging,
building, repacking, update generation, etc. process that we have to go
through for every release candidate. The idea is not just to make the
whole release team's lives easier, but also to make the process more
reliable and transparent (the plan is to have a release automation
project in the public tree, so changes need to go through the usual
patch/review/commit process).
I'll be giving this project some love over the next few months, tracking
it in bug 354603. Other important areas such as verification,
performance testing and general infrastructure improvement have
interdependencies with this work as well, and I should be able to get a
better understanding of (and get some fixes in for) these areas too.
Another project I've been helping out with lately is mozilla/buildbot
integration at Seneca College. Ben Hearsum (a student at Seneca) has
been doing some awesome work on 1) building triggered on changes from
bonsai and 2) publishing results to tinderbox server. Brian Warner (the
buildbot maintainer) recently landed Ben's patches in the buildbot
trunk. This means that you can build Mozilla products using the buildbot
client/server setup, and still publish to tinderbox.mozilla.org and pull
changes from bonsai.mozilla.org. If you want to try it out, here is the
master.cfg I use on my test server, plus some mozilla-specific steps:
http://people.mozilla.com/~rhelmer/buildbot/
There is a bonsai patch in there that needs to land (to parse revisions
as strings and display one revision per file) so you'll need to apply
that if you want to play around with this. Hopefully everything will be
landed by the next buildbot release, for the more patient :)
With TR Fullhart's recommendation and assistance, I've been using SVK
to do distributed development against the buildbot CVS tree. In a
nutshell, I can do a pull from buildbot CVS, and then sync that to my
local repository (SVK uses a modified Subversion backend). This means
that I can check my changes in as I go, and still easily merge my
changes with buildbot and generate patches which apply to their CVS. It
also means that I have the full project history on my laptop, which is
really great when working offline.
I'd like to start working against the Mozilla CVS tree in the same way;
I need to spend some time figuring out what kind of partial history
pulls I can do with SVK, since it'll take hours to pull down the whole
history to my laptop, and I am mostly interested in working against the
trunk and a few specific branches.