Mozilla Firefoxのコードリポジトリ、MercurialからGitHubへ移行
(github.com/mozilla-firefox)- Firefoxは最近、メインリポジトリをMercurialからGitHubへ移行した
- バグ追跡はBugzilla、コードレビューはPhabricator、CIはTaskclusterを引き続き使用している
- 現在はGitHubが中心リポジトリだが、MercurialサーバーもGitHubから同期されて維持されており、既存の自動化システムも段階的にGitへ移行する予定
- CIテスト用の
tryリポジトリは依然としてMercurialベースだが、徐々に抽象化レイヤーの背後に隠されつつあり、今後Gitへ移される予定 - Gitを標準で使えるようになったことで、新しいコントリビューターはMercurialを別途学ぶ必要がなく、Gitだけ習得すればよいという利点が生まれた
- 以前は
git cinnabarという拡張機能をインストールする必要があったが、今では標準のGitだけで十分
- 以前は
- 既存のMercurialの
mozilla-centralはGitでは**mainブランチ**に変更され、autolandブランチはGitでもそのままautoland - GitHubのPRベースのワークフローは現時点では導入されておらず、今回の変更には含まれていない。将来的な可能性はあるが、公式な計画はない
- MozillaはGitHubへの移行を通じて、自前のVCSインフラ運用負担を減らせる
- 大規模プロジェクトに求められる性能、安定性、可用性を自前で提供するためのコストと複雑さを減らすことが主な目標
git-cinnabarの作者Glandiumによる詳細な経緯と説明: How I (kind of) killed Mercurial at Mozilla
> Mozilla、FirefoxコードリポジトリをGitHubへ移行しMercurial時代に幕
- MozillaはFirefox開発の中心VCSをMercurialからGitへ移行し、GitHubを公式リポジトリとすることを決定した
- この決定の背景には、
git-cinnabarという拡張ツールの長期的な開発と普及があり、これによりGitユーザーもMercurialリポジトリへスムーズにアクセスできていた - Mercurialのブランチ構造の問題、リポジトリ規模の拡大、自前サーバー運用の負担などが複合的に作用し、自前インフラ維持の難しさが積み重なっていた
- GitHubの選択には議論もあるが、Mozilla内部の数千のリポジトリがすでにGitHub上に存在するなど、コントリビューターの使いやすさと実用性の面で避けがたい選択だった
git-cinnabarはMozilla内部の必要性から始まった個人的なサイドプロジェクトだったが、今後の移行期においても重要なツールとして引き続き維持される可能性が高い
> 「私が火をつけたわけではないが、その火に油を注いだのは事実だ。」
1件のコメント
Hacker Newsの意見
git cinnabarという拡張のインストールが必要でした。hgを学ぶか、git+拡張を使うかの選択は新規コントリビューターにとって参入障壁になっており、多くの場合はgitは知っていてもMercurialは知らない状態でした。今ではもう悩む必要はありません。git cinnabarの作者であるglandiumが、移行発表時に詳細な文脈と理由をブログに書いています。短期的にはコントリビューターの立場から見ると、ほとんど変化はありません。通常のgit利用がデフォルトのワークフローになり、それ以外は変わっていません。将来的にはGitHub PRベースのワークフローのサポートが入るかもしれませんが、この変更には含まれていません。バックエンドでは、移行が終わればMozillaは自前のVCSインフラを運用するための時間と労力を減らせますし、この規模のプロジェクトに必要な性能と可用性を満たすのはかなりの挑戦ですmozilla-centralリポジトリへ移行しました。今ではデスクトップ版とモバイル版の両方がGitHub上にあり、issueはBugzillaに残っています。GitHubの優れた検索、ソースブラウジング、gitの親しみやすさを活用できます。元FirefoxおよびThunderbirdのコントリビューターとして、私はmozilla-centralサイトで検索するより、ローカル検索をはるかに多く使っていました。開発中はIDEで検索しますが、サイト上で簡単に検索できることは新しいコントリビューターにとって歓迎すべき要素です