comm-central is a Mercurial repository of the Thunderbird, SeaMonkey, and Lightning extension code; it's located at: http://hg.mozilla.org/comm-central. This article provides information about this repository and its use.
The relevant Treeherder (to see whether it does build) pages are located at:
Note: The comm-central code only includes a subset of the code required to build Thunderbird, SeaMonkey and Sunbird. See Comm-central source code (Mercurial) for how to get the other required code.
If you're looking for Nightly Builds of comm-central, then see the links for Thunderbird, SeaMonkey (TBD) and Calendar (TBD).
Building comm-central applications
For the comm-central apps, see the following links:
comm-central tree rules
This section summarizes rules for the comm-central source code repository.
- Do not check in until you have appropriate review, including super-review and approval if needed. Special review instructions to specific comm-central applications and code can be found from the links below:
- You should be available for the next hour or so in case something goes wrong with your checkin (This is roughly the time it takes to get unit test results from all platforms.
- Automated unit tests must pass
- Any Leak tests must not regress
Any regressions on tier-1 platforms are cause for immediate backout. Regressions on tier-2 platforms are usually not cause for backout, but you will be expected to help fix them if needed.
Pushing changes to comm-central
- Changes must not introduce multiple heads into comm-central.
- Please try to keep history tidy. A single commit or a few independent changesets are preferable to many "work in progress" changesets which clutter history. Consider using Mercurial queues to manage patches before checkin.
- At least the final changeset being pushed should list the bug number and reviewer for the relevant change.
- Your commit comment must include the bug number and reviewers. It should contain the summary of the bug or a clear explanation of the fix.
- If you are not the author of the code, make that clear, preferably using
commit -u "Patch Author <firstname.lastname@example.org>".
comm-central code layout
These directories are included in the comm-central repository:
- Miscellaneous files used by the build process.
- Lightning extension and Sunbird specific source code.
- Files required for the comm-central build process.
- An XPCOM wrapper for the LDAP c-sdk. Used for communicating with LDAP servers.
- UI for the Compose window (Thunderbird/SeaMonkey) and the Composer part of SeaMonkey.
- Thunderbird specific source code.
- Source code specific to the Mail and Newsgroups part of Thunderbird and SeaMonkey.
- Code that is not under the Mozilla tri-license (e.g. official branding) see http://www.mozilla.org/MPL/ for more info.
- SeaMonkey specific source code.
- These directories are included after
client.pyhas been run:
- The LDAP C SDK code pulled from mozilla mecurial repository.
- The Firefox/xulrunner code base pulled from the mozilla-central repository. See Mozilla_Source_Code_Directory_Structure for more details of its structure.
- Code for the Chatzilla extension, pulled from Mercurial.
- Code for the Venkman extension, pulled from Mercurial.
- Code for the DOM Inspector extension, pulled from Mercurial.
comm-central is branched at various times to provide a stable location for final development of comm-central applications and for security and stability releases. The branches to date are:
|Branch||Gecko Version||Applications||Base Tag||Date Created|
|http://hg.mozilla.org/releases/comm-1.9.2/||1.9.2||Thunderbird 3.1, Lightning 1.0b2||COMM_1_9_2_BASE||Mon Apr 26 10:32:47 2010 -0700|
|http://hg.mozilla.org/releases/comm-1.9.1/||1.9.1||Thunderbird 3.0, SeaMonkey 2.0, Sunbird 1.0b1, Lightning 1.0b1||COMM_1_9_1_BASE||Thu Oct 22 05:41:21 2009 -0700|
The Base Tag is applied to both the comm-central and comm-* repositories and shows where the branch actually took place.
As we cannot take string changes on a stable branch, the built-in extensions that are shipped by SeaMonkey (chatzilla, dom-inspector, venkman) also have a named branch called
COMM_1_9_1_BRANCH based on a
COMM_1_9_1_BASE in their Mercurial repositories, and the client.py script in the comm-1.9.1 repository pulls from that (due to recognizing this somewhat late in this cycle, this was only introduced on December 17, 2009; see bug 534422.