comm-central

  • Revision slug: comm-central
  • Revision title: comm-central
  • Revision id: 112999
  • Created:
  • Creator: Standard8
  • Is current revision? No
  • Comment /* Pushing changes to comm-central */

Revision Content

comm-central is a Mercurial repository of the Thunderbird and SeaMonkey code: http://hg.mozilla.org/comm-central. In future, it is expected that the Lightning extension/Sunbird code will also join the repository.

The relevant Tinderbox pages are located at:

  • http://tinderbox.mozilla.org/showbuilds.cgi?tree=Thunderbird
  • http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey

{{template.Note("The comm-central code only includes a subset of the code required to build Thunderbird and SeaMonkey. See <a href=\"en/Comm-central_source_code_(Mercurial)\">Comm-central_source_code_(Mercurial)</a> for how to get the other required code")}}

comm-central tree rules

The comm-central codebase should be stable on the tier-1 platforms at all times:

  • Automated unit tests must pass
  • Any Automated performance and leak tests must not regress
  • Any regressions are cause for immediate backout of the offending patch.
  • Developers should where possible not do test-landings into comm-central to check whether a patch regresses performance or unit tests. We have enough developers and platform coverage to test patches - try asking in irc://irc.mozilla.org/maildev The {{mediawiki.internal('wikimo:Build:TryServer|Try server', "en")}} should be used instead.

Pushing changes to comm-central

All developers who have CVS checkin access should have received an email with LDAP login details for pushing to hg.mozilla.org. If you believe you should have access to comm-central but don't know your login details, file a bug. You can use the <tt>hg push</tt> command to push changesets to the server.

  • 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.
  • Changes must be pushed to ssh://hg.mozilla.org/comm-central/, check Mercurial FAQ#How do I check stuff in? for details of how to set up your configuration.

comm-central code layout

These directories are included in the comm-central repository:

  • build/ - Miscellaneous files used by the build process.
  • config/ - Files required for the comm-central build process.
  • directory/xpcom - An XPCOM wrapper for the LDAP c-sdk. Used for communicating with LDAP servers.
  • mail/ - Thunderbird specific source code.
  • mailnews/ - Source code specific to the Mail and Newsgroups part of Thunderbird and SeaMonkey. Some code is shared between the two apps, some is specific just to SeaMonkey.
  • other-licenses/ - Code that is not under the Mozilla tri-license (e.g. official branding) see http://www.mozilla.org/MPL/ for more info.
  • suite/ - SeaMonkey specific source code.

{{template.Note("It is planned to move SeaMonkey specific code in mailnews/ to suite/, the timescale is currently undetermined")}}

These directories are included after client.py has been run:

{{template.Note("For the directories currently pulled from cvs, it is expected that some of these will be made obsolete and some will be migrated to Mercurial.")}}

See also

Revision Source

<p><b><code>comm-central</code></b> is a <a href="en/Mercurial">Mercurial</a> repository of the Thunderbird and SeaMonkey code: http://hg.mozilla.org/comm-central. In future, it is expected that the Lightning extension/Sunbird code will also join the repository.
</p><p>The relevant <a href="en/Tinderbox">Tinderbox</a> pages are located at:
</p>
<ul><li> http://tinderbox.mozilla.org/showbuilds.cgi?tree=Thunderbird
</li><li> http://tinderbox.mozilla.org/showbuilds.cgi?tree=SeaMonkey
</li></ul>
<p>{{template.Note("The comm-central code only includes a subset of the code required to build Thunderbird and SeaMonkey. See &lt;a href=\"en/Comm-central_source_code_(Mercurial)\"&gt;Comm-central_source_code_(Mercurial)&lt;/a&gt; for how to get the other required code")}}
</p>
<h3 name="comm-central_tree_rules"> comm-central tree rules </h3>
<p>The comm-central codebase should be stable on the <a href="en/Supported_build_configurations">tier-1 platforms</a> at all times:
</p>
<ul><li> Automated unit tests must pass
</li><li> Any Automated performance and leak tests must not regress
</li><li> Any regressions are cause for immediate backout of the offending patch.
</li><li> Developers should where possible not do test-landings into comm-central to check whether a patch regresses performance or unit tests. We have enough developers and platform coverage to test patches - try asking in irc://irc.mozilla.org/maildev <span class="comment">The {{mediawiki.internal('wikimo:Build:TryServer|Try server', "en")}} should be used instead.</span>
</li></ul>
<h3 name="Pushing_changes_to_comm-central"> Pushing changes to comm-central </h3>
<p>All developers who have CVS checkin access should have received an email with LDAP login details for pushing to hg.mozilla.org. If you believe you should have access to comm-central but don't know your login details, <a class="external" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=mozilla.org&amp;component=Server+Operations:+Account+Requests">file a bug</a>. You can use the <tt>hg push</tt> command to push changesets to the server.
</p>
<ul><li> Changes must not introduce multiple heads into comm-central
</li><li> 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 <a href="en/Mercurial_queues">Mercurial queues</a> to manage patches before checkin.
</li><li> At least the final changeset being pushed should list the bug number and reviewer for the relevant change.
</li><li> Changes must be pushed to <code>ssh://hg.mozilla.org/comm-central/</code>, check <a href="en/Mercurial_FAQ#How_do_I_check_stuff_in.3F">Mercurial FAQ#How do I check stuff in?</a> for details of how to set up your configuration.
</li></ul>
<h3 name="comm-central_code_layout"> comm-central code layout </h3>
<p>These directories are included in the comm-central repository:
</p>
<ul><li> build/ - Miscellaneous files used by the build process.
</li><li> config/ - Files required for the comm-central build process.
</li><li> directory/xpcom - An XPCOM wrapper for the LDAP c-sdk. Used for communicating with LDAP servers.
</li><li> <a class="external" href="http://wiki.mozilla.org/Thunderbird:Code_Layout">mail/</a> - Thunderbird specific source code.
</li><li> <a class="external" href="http://wiki.mozilla.org/MailNews:Code_Layout">mailnews/</a> - Source code specific to the Mail and Newsgroups part of Thunderbird and SeaMonkey. Some code is shared between the two apps, some is specific just to SeaMonkey.
</li><li> other-licenses/ - Code that is not under the Mozilla tri-license (e.g. official branding) see http://www.mozilla.org/MPL/ for more info.
</li><li> <a class="external" href="http://wiki.mozilla.org/SeaMonkey:Suite_Directory_Layout">suite/</a> - SeaMonkey specific source code.
</li></ul>
<p>{{template.Note("It is planned to move SeaMonkey specific code in mailnews/ to suite/, the timescale is currently undetermined")}}
</p><p>These directories are included after <a href="en/Comm-central_source_code_(Mercurial)#Checking_out_a_source_tree">client.py</a> has been run:
</p>
<ul><li> <a href="en/Mozilla-central">mozilla/</a> - The Firefox/xulrunner code base pulled from the <a href="en/Mozilla-central">mozilla-central</a> repository. See <a href="en/Mozilla_Source_Code_Directory_Structure">Mozilla_Source_Code_Directory_Structure</a> for more details of its structure.
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/calendar/">calendar/</a> - The Sunbird and Lightning source code, pulled from  cvs using HEAD.
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/extensions/typeaheadfind">mozilla/extensions/typeaheadfind</a> - "Type ahead and find" code, currently only used by SeaMonkey. Pulled from cvs using HEAD.
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/extensions/wallet">mozilla/extensions/wallet</a> - The older password manager pulled from cvs using HEAD.
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/extensions/webdav">mozilla/extensions/webdav</a> - webdav code for Sunbird/Lightning, pulled from cvs using HEAD.
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/directory/c-sdk">directory/c-sdk</a> - The <a href="en/LDAP_C_SDK">LDAP C SDK</a> code pulled from cvs using a branch tag (soon to be a static tag).
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/extensions/irc">mozilla/extensions/irc</a> - Code for the Chatzilla extension, pulled from cvs using HEAD.
</li><li> <a class="external" href="http://mxr.mozilla.org/seamonkey/source/extensions/venkamn">mozilla/extensions/venkman</a> - Code for the Venkman extension, pulled from cvs using HEAD.
</li></ul>
<p>{{template.Note("For the directories currently pulled from cvs, it is expected that some of these will be made obsolete and some will be migrated to Mercurial.")}}
</p>
<h3 name="See_also"> See also </h3>
<ul><li> <a href="en/How_comm-central's_build_system_works">How comm-central's build system works</a>
</li><li> <a href="en/Mercurial_FAQ">Mercurial FAQ</a>
</li><li> <a href="en/Mozilla-central">mozilla-central</a>
</li><li> <a class="external" href="https://bugzilla.mozilla.org/showdependencytree.cgi?id=433384&amp;hide_resolved=1">Tracking: issues making development difficult on mozilla-central</a>
</li></ul>
Revert to this revision