Thursday, February 18, 2010

Doing a Firefox release (3.5.8)

I started two weeks ago to do the 3.5.8 release for Firefox and this is the first official release that I have done.
It has been a great experience and the work that my coworkers have done has made it possible to be this smooth (there is room for improvements).

The process that I had to go through (simplified) is the following:
  • Week 1
    1. Prepare some patches to bump the version and be ready for the official "go"
    2. Trigger the builds. check that every builder that was triggered it completed
    3. Start signing the windows builds and verify signatures
    4. Add product to Socorro/Crash-stats
  • Week 2
    1. Create major update
    2. Push the updates to the beta channel
  • Week 3
    1. Add bouncer entries
    2. Request virus check
    3. Push the builds to the mirrors
    4. Create xulrunner builds
    5. Push the updates live
    6. Add final release symlink
Obviously this is a much simplified view of what it is involved but it gives a good idea and a time breakdown. Important to note that this is when a release does not require re-spins and it is not a fire-drill release.

I am glad it all worked out well and next time I will expect to commit less mistakes.

For more information read the build notes or bug 543761.

Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.


  1. Why was there a 3.0 update when updates were supposed to stop last month? And why wasn't there a 3.6 update? Thanks!

  2. @Daniel:

    The January deadline for updates to the 3.0 branch wasn't set in stone. We still have users there so we continue to support them. Sometime very soon though, the only updates those users will get will be so-called Major update offers to the latest supported version (3.6).

    As to updates from the 3.5 branch to 3.6, those updates exist but are currently unprompted, meaning we don't pop up an update notice for 3.6 unless you actively check for updates from the menu.

  3. Congrats on doing your first start-to-finish release Armen. It just gets better from here!

  4. Chris: Thanks, but when I asked about 3.6 I meant why were there simultaneous releases for the 3.0 and 3.5 branches but not for 3.6? Are none of the bugs fixed in 3.0.18 and 3.5.8 present in 3.6.0?

  5. Thanks Lukas! I hope to get many more done.

    Hi Daniel,
    Best place to ask the question should be at dev.planning but le me give it a shot.

    I assume that the fixes included in 3.0 and 3.5 were not major security fixes but minors fixes. We don't do minor releases *only* to fix major security fixes.
    At some point later on, 3.5 and 3.6 will be synced (it will for sure be synced upon the appearance of major security bug).

    We have minor releases around every 6 to 8 weeks (where we include minor fixes) or when we determine that a new discovered vulnerability can be serious enough.

    This answer comes from not being a release driver. For a more accurate answer you might want to visit the dev.planning newsgroup.