Skip to content

Update documentation for git migration#240

Open
coreycb wants to merge 1 commit into
thunderbird:masterfrom
coreycb:git-migration
Open

Update documentation for git migration#240
coreycb wants to merge 1 commit into
thunderbird:masterfrom
coreycb:git-migration

Conversation

@coreycb

@coreycb coreycb commented Jan 9, 2026

Copy link
Copy Markdown
Contributor

This change updates the documentation to account for the source code moving from Mercurial to Git.

The following sections still need updating:

  • The try build steps need updating once we switch to ./mach try thunderbird-development/fixing-a-bug/try-server.md
  • Landing a patch thunderbird-development/fixing-a-bug/landing-a-patch.md

Closes #239

@coreycb

coreycb commented May 19, 2026

Copy link
Copy Markdown
Contributor Author

@hellsworth What would be the best way to handle review/landing of these changes?
With the current changes, we'll want to hold off on landing until we make the switch to git.

Would it be easier, for all pages that are updated, to create a new page for git and keep the old one for mercurial? For example, we could have a page named "Hello World Example (Mercurial)" followed by a page named "Hello World Example (Git)".

A bit more work on my end, but that would allow us to review/land this earlier rather than having to time it with the day/week we switch over to Git.

Another thought, I've made several updates to switch searchfox URLs to GitHub URLs. I could remove those changes, or split them into a different commit. I'm not sure how desirable those changes will be. Having a separate commit would allow them to be reverted more easily if need be.

@hellsworth

hellsworth commented May 21, 2026

Copy link
Copy Markdown
Contributor

@coreycb I don't know if having a separate commit for replacing the searchfox is really worth the effort, because it is unlikely that we would want to revert all of those link replacements.

Instead of having two sets of pages (one for mercurial and one for git), we could modify the pages to perhaps contain two sets of links. For example, in the first link change I see in this PR, it is currently changing

it may be helpful to read the documentation blocks within [ExtensionCommon.sys.mjs](https://searchfox.org/mozilla-central/source/toolkit/components/extensions/ExtensionCommon.sys.mjs) and possibly other modules in the same source code folder.

to

it may be helpful to read the documentation blocks within [ExtensionCommon.sys.mjs](https://github.com/mozilla-firefox/firefox/blob/main/toolkit/components/extensions/ExtensionCommon.sys.mjs) and possibly other modules in the same source code folder.

But instead of replacing one link with another we could change it to something like

it may be helpful to read the documentation blocks within ExtensionCommon.sys.mjs([git link](https://github.com/mozilla-firefox/firefox/blob/main/toolkit/components/extensions/ExtensionCommon.sys.mjs), [mercurial link](https://searchfox.org/mozilla-central/source/toolkit/components/extensions/ExtensionCommon.sys.mjs)) and possibly other modules in the same source code folder.

The downside of this approach is two-fold:

  1. We would need a cleanup commit once git is landed to go and remove the mercurial links. But we would need this anyways if we had two sets of pages anyways.
  2. The amount of text that is currently has a hyperlink becomes lost unless we put it in italics or quotes or something.

What do you think about this hybrid link approach?

@coreycb

coreycb commented May 21, 2026

Copy link
Copy Markdown
Contributor Author

Yes, that's a good idea. I'll make the updates so that we can retain the old link and the new one together.

The other concern I have is that we'll want to land these changes the week of the git migration, which (hopefully) will be in mid-later June. We could get it reviewed early once I make the above changes, and then I can keep it rebased weekly. My concern is mostly that something major lands ahead of it and I need to rebase on the busy week when we migrate to git.

Do all reviews go through you? Maybe once we get two weeks out from git migration we could hold off on landing other changes until this lands?

@hellsworth

hellsworth commented May 22, 2026

Copy link
Copy Markdown
Contributor

Well yes all reviews of this repo go through mostly me but also there aren't a ton of changes going in frequently. There is a large change set that I'm managing from the gitbook front end for the Contributor Journey overhaul but that won't come until after your changes so nbd there. So weekly rebases are the most you would need. Don't expect something major to land ahead of this.

Are there similar changes that you're making to source-docs, because other teams (like design) are working on major changes there that might need to be coordinated.

This change updates the documentation to account for the source code
moving from Mercurial to Git.

Closes thunderbird#239
@coreycb coreycb changed the title [WIP] Update documentation for git migration Update documentation for git migration Jun 5, 2026
@coreycb

coreycb commented Jun 5, 2026

Copy link
Copy Markdown
Contributor Author

Sorry for the delay. These are the only changes that I'm planning.

These changes are ready for review now.

They can't land yet, but a review would be great. We're getting close to setting a date for the github migration.

@hellsworth hellsworth left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Corey! Just a few minor nits.

Comment thread releases/cadence.md
| Thunderbird 136.0a1 soft code freeze | Jan 27–Feb 3 |
| Thunderbird 136.0a1 pre-merge review | Jan 30 |
| Thunderbird merge 136.0a1 central → beta | Feb 3 |
| Thunderbird merge 136.0a1 main → beta | Feb 3 |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since this particular merge was done before our move to git, should it remain indicative of the mercurial branch comm-central?

### Git

As noted in the [Setting up a build environment page](../setting-up-a-build-environment.md), both `mozilla-central` and `comm-central` are repositories using the Mercurial version control system. This means you will need to install Mercurial. Here are the quick commands to use for common Linux based operating systems but for a more complete list of instructions (if neither of these works for your use case), please see [Mercurial's download page on their wiki](https://www.mercurial-scm.org/wiki/Download).
As noted in the [Setting up a build environment page](../setting-up-a-build-environment.md), both Firefox and Thunderbird source are stored in Git repositories. This means you will need to install Git if it is not already available. Here are some quick commands to install on common distributions:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change "both Firefox and Thunderbird source" to "both Firefox and Thunderbird sources"

### Git

As noted in the [Setting up a build environment page](../setting-up-a-build-environment.md), both `mozilla-central` and `comm-central` are version controlled with Mercurial. This means you will need to install Mercurial. Here is a quick command to install it with mercurial but for a more complete list of instructions, please see [Mercurial's download page on their wiki](https://www.mercurial-scm.org/wiki/Download).
As noted in the [Setting up a build environment page](../setting-up-a-build-environment.md), both Firefox and Thunderbird source are stored in Git repositories. This means you will need to install Git if it is not already available. Here is a quick command to install it:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change "both Firefox and Thunderbird source" to "both Firefox and Thunderbird sources"


{% hint style="warning" %}
Before you start, make sure that the version you checked out is not busted. For `hg` tip, you should see green Bs on [https://treeherder.mozilla.org/#/jobs?repo=comm-central](https://treeherder.mozilla.org/#/jobs?repo=comm-central)
Before you start, make sure that the version you checked out is not busted. For `git` tip, you should see green Bs on [https://treeherder.mozilla.org/#/jobs?repo=comm-central](https://treeherder.mozilla.org/#/jobs?repo=comm-central)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is "tip" still a thing with our move to git? If not, maybe we want to say "For the top of the git main branch"

## Update and Build Again

To pull down the latest changes, in the mozilla directory run the following commands:
To pull down the latest changes, in the firefox directory run the following commands:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change "firefox" to "Firefox"

## Accounts

Accounts are simple containers for incoming servers and identities. They are defined by [`nsIMsgAccount`](https://searchfox.org/comm-central/source/mailnews/base/public/nsIMsgAccount.idl) and implemented by [`nsMsgAccount`](https://searchfox.org/comm-central/source/mailnews/base/src/nsMsgAccount.cpp). If you're looking to use something in a mail account, you'll probably first get a reference to an `nsIMsgAccount`.
Accounts are simple containers for incoming servers and identities. The are defined by `nsIMsgAccount`([git link](https://github.com/thunderbird/thunderbird-desktop/blob/main/mailnews/base/public/nsIMsgAccount.idl), [searchfox link](https://searchfox.org/comm-central/source/mailnews/base/public/nsIMsgAccount.idl)) and implemented by `nsMsgAccount`([git link](https://github.com/thunderbird/thunderbird-desktop/blob/main/mailnews/base/src/nsMsgAccount.cpp), [searchfox link](https://searchfox.org/comm-central/source/mailnews/base/src/nsMsgAccount.cpp)). If you're looking to use something in a mail account, you'll probably first get a reference to an `nsIMsgAccount`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change "The are defined by.." to "They are defined by.."

Firefox main mirrors to mozilla-central, and Thunderbird main mirrors to comm-central. CI/CD is run against mozilla-central and comm-central.
{% endhint %}

Sheriffs aim to merge changes to Firefox main at (very roughly) 0400, 1000, 1600 and 2200 UTC. After a merge, something should land on Thunderbird main to start a new build. Land something of your own or check for bugs flagged [checkin-needed](https://bugzilla.mozilla.org/buglist.cgi?keywords=checkin-needed-tb).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change [checkin-needed] to [checkin-needed-tb]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update documentation to use git

2 participants