Mozconfig verification tests

It’s important for us to make sure that we build Firefox as similarly as possible between nightly builds and release builds. However, because release builds need to be built with a few special flags (to enable the correct branding, update channel, etc.) we need to maintain separate mozconfigs for them. In the past we’ve sometimes forgotten to carry forward new compiler flags (eg, enabling PGO) from nightly -> release. To alleviate this problem, we built a tool that compared the mozconfigs of nightly and release builds, and complained about any differences that weren’t whitelisted. This tool has worked very well for us for a few years now, but because it runs as part of pre-release checks, it has the downside of catching the problems in the critical path of the release — leaving us scrambling to fix them quickly.

This changes today. Jason Yeo, a RelEng intern, has just landed bug 763903, which moves these checks to run at build-time. This means that problems of this nature will now be caught whenever they land — even on Try. This means that anyone who changes a “nightly” or “release” mozconfig now needs to make a few decisions. The following is intended to help decide what needs to happen when making such a change:

  • Should my change to a nightly mozconfig apply to releases too?
    • If yes, change the “common-opt” mozconfig (eg: https://mxr.mozilla.org/mozilla-central/source/browser/config/mozconfigs/win32/common-opt)
    • If no, add the line to platform’s “nightly” whitelist (https://mxr.mozilla.org/mozilla-central/source/browser/config/mozconfigs/whitelist)
  • Should my change to a release mozconfig apply to nightlies too?
    • If yes, change the “common-opt” mozconfig (eg: https://mxr.mozilla.org/mozilla-central/source/browser/config/mozconfigs/win32/common-opt)
    • If no, add the line to platform’s “release” whitelist (https://mxr.mozilla.org/mozilla-central/source/browser/config/mozconfigs/whitelist)

At the moment, these checks only run for Desktop Firefox. Firefox for Android and Thunderbird will soon run them too (bug 885154).