A merged comm-/mozilla-central repository is now available

Joshua Cranmer 🐧 pidgeot18 at gmail.com
Thu Dec 17 01:59:49 UTC 2015

I think all of the principal actors are aware of this, but some 
background first:

The build team has been more or less promising a build system blitz of 
changes in Q1 2016 to finally move to a saner build system, and the 
current c-c/m-c repository directory structure is a difficult roadblock 
to those changes. As someone who has worked on the build system on 
occasion in the past, I can attest to all the ugliness needed to keep 
c-c reworking in this regard. It's pretty clear that our current build 
setup is completely untenable to maintain through the end of Q1 2016, 
and actually it has been rather untenable for the past several months. I 
will point out that it's not feasible for us to not use Mozilla's build 
system, so long as we have substantial C++ code that needs to interact 
with Gecko internals, and anyone who thinks otherwise is misinformed.

The only feasible path forward is for us to merge comm-central and 
mozilla-central into one repository. I (and others) have held out hope 
that Mozilla could be convinced to let mozilla-central be that 
repository, but it is pretty clear at this point that it is not to be, 
and so we must resign ourselves to the fallback option of forking 
mozilla-central and periodically merging new revisions into mozilla-central.

Fortunately, I already have a script that can merge the two repositories 
together into one. The resulting repository is at 
<http://hg.mozilla.org/projects/cypress/>, and it was produced by a 
fully-automated script that pulls comm-central, deletes the build system 
(well, the remnants thereof, most having been gutted by cc-rework quite 
some time ago), rewrites references to the mozilla/ directory to the 
top-level, and then pulls and merges mozilla-central with an automated 
resolution of the two remaining conflicting files (.hgtags and AUTHORS). 
The cypress repository is dedicated to testing release automation for 
the necessary changes that need to be made. Once these changes can be 
identified and we get working builds and tests on all the platform, I 
expect that we will have a day where we perform the merge and push to 
comm-central. I'm using bug 787208 to track this change.

One major important note about the change is that, for the first time 
since 2008, all the code to build Thunderbird will be in a single 
repository. As such, client.py will no longer be necessary to build 
Thunderbird (and indeed, can't be used, since mozilla-central maintains 
a file named that for importing third-party source repos). It sounds 
like the SeaMonkey maintainers are planning on pulling DOM inspector and 
chatzilla into the new repository as well, but I'm not directly involved 
in that decision.

Joshua Cranmer
Thunderbird and DXR developer
Source code archæologist

More information about the tb-planning mailing list