Mozilla quietly makes Microsoft’s GitHub the authoritative home for Firefox code

Mozilla quietly makes Microsoft’s GitHub the authoritative home for Firefox code
Firefox sign outside the Mozilla offices in San Francisco

The non-profit Mozilla Corporation has made Microsoft-owned GitHub the “canonical home” for the source code of the Firefox web browser, completing a move first announced in late 2023. It continues to use Bugzilla for issue tracking as well as other existing DevOps tools.

The Firefox Git Migration status page declared that the “source of truth for Firefox” was migrated from Mercurial to Git on 30th April 2025, and this was also noted on the Firefox developer mailing list.

Despite the delay, this is only the first phase of the migration project. Phase two is to decommission Mercurial, but this will take “at least another year.”

Mozilla’s Mike Hommey, more often known as glandium, has posted an unofficial guide to the change for Firefox contributors. Gladium also gives himself credit (or blame) for killing Mercurial at Mozilla, by creating an extension called git-cinnabar which enables the use of git with Mercurial repositories. This pleased developers who were more familiar with Git as well as allowing CI (Continuous Integration) scripts to use Git, smoothing the transition.

The move is not as far-reaching as it first appears. Mozilla will not be using GitHub pull requests for code submissions, for example. Instead, patches should be submitted to Mozilla Phabricator for review – even though the Phabricator project has not been maintained since June 2021 (there is an active community fork called Phorge). Mozilla also uses a utility called Lando which applies revisions to repositories. For now, Mercurial will still be used for automated systems, with code synchronized from GitHub. There is also a Mercurial “try” repository which remains in use for testing patches.

Migration is hard because of the complexity of the systems in use. Firefox “has a large CI system and ends up running thousands of jobs on each push to main (formerly mozilla-central), covering builds, linting, multiple testsuites, performance testing, etc. all across multiple platforms and configurations. In addition there are “try” pushes for work in progress patches, and various other kinds of non-CI tasks (e.g. fuzzing). That is all run on our taskcluster system and I don’t believe there are any plans to change that,” said a Mozilla employee.

GitHub is both closed-source and owned by a competitor, causing some to question whether it is an appropriate home for Firefox code. Why not use Berlin-based non-profit Codeberg, which hosts the open source Forgejo as a self-hosted alternative to GitHub? “I hadn’t even heard of it before it was mentioned in response to Mozilla’s announcement,” wrote Glandium. Mozilla was already using GitHub, he added, and it was the pragmatic choice. The distributed nature of Git means the risk from lock-in is small, particularly if GitHub is used mainly as a source-code repository and not for its other DevOps tools.

Open source developers may still be uncomfortable that this significant project is now reinforcing GitHub’s dominance.

Another less prominent open-source project recently took an opposite decision. Guix, a package manager for GNU/Linux, is migrating all its repositories as well as bug tracking and patch tracking to Codeberg. The team stated that “the software behind the forge has to be free software that is plausibly self-hosted on Guix System – this probably rules out GitLab Community Edition and makes Forgejo the main contender”. Even using Codeberg, the team said, comes with risks as it puts critical infrastructure in the hands of an external organization; and developers will have to agree Codeberg’s terms of use which “can be seen as a step back compared to the email-based workflow.”

GitHub’s terms of use are likely even more burdensome; but Mozilla’s choice, as Glandium noted, is primarily a pragmatic one.