Firefox が GitHub に移行:Mozilla が Mercurial から Git へ切り替え

BigGo Editorial Team
Firefox が GitHub に移行:Mozilla が Mercurial から Git へ切り替え

Mozilla は Firefox のソースコードリポジトリを正式に Mercurial から GitHub に移行し、ブラウザの開発インフラに重要な変化をもたらしました。この移行は、Mozilla が 2023年11月に Mercurial ベースのワークフローから Git への移行計画を最初に発表してから進められてきたプロセスの集大成です。

Firefox のコードベースは現在 github.com/mozilla-firefox/firefox で見つけることができますが、この変更は主にコードリポジトリ自体に影響することに注意が必要です。Mozilla は引き続き、問題追跡には Bugzilla を、コードレビューには Phabricator を、継続的インテグレーションには Taskcluster システムを使用します。

なぜ Git と GitHub への切り替えなのか?

Mozilla の Git と GitHub への移行決定は、長年の課題に対処するものです。何年もの間、貢献者たちは Mozilla の Mercurial リポジトリを使用する際に大きな障壁に直面していました。Mercurial のクローンプロセスは非常に遅いことで知られており、完了までに何時間もかかることがありましたが、Git の代替手段では数分で完了できました。このパフォーマンスの違いは、新しい貢献者にとって大きな参入障壁となっていました。

「数年前に貢献しようとしました。Mercurial のクローンは数時間かかっていました。彼らはすでに非公式の Git を持っていて、それはクローンするのに15分しかかかりませんでした。」

さらに、Mozilla はスケールでのバージョン管理インフラストラクチャの維持に増大する課題に直面していました。VCS サーバーは世界中の貢献者からのアクセスを処理しながら、高い可用性とセキュリティを維持する必要がありました。パフォーマンスの問題は特に問題で、貢献者が try(CI を通じてパッチを実行するために使用される)などのリポジトリにプッシュする際に、ロックのために数十分待つこともありました。

貢献者にとって何が変わるのか?

貢献者にとって最も即時的な利点は、以前は Mozilla のリポジトリを操作するために必要だった git-cinnabar のような拡張機能を必要とせずに、標準的な Git ワークフローを使用できることです。これにより、すでに Git に精通している開発者(現在の開発コミュニティの大多数を占める)にとって参入障壁が低くなります。

リポジトリ構造も標準的な Git の慣例に合わせて更新されました。以前の mozilla-central ブランチは main にマッピングされ、autoland(コミットが最初に着地し、テスト失敗を引き起こす場合はバックアウトされる)は別のブランチとして残っています。autoland ブランチは継続的インテグレーションテストが成功した時に、約1日2回 main にマージされます。

リポジトリ構造の主な変更点

  • 以前の「mozilla-central」→ 現在は「main」ブランチ
  • 「autoland」ブランチは維持(コミットが最初に行われる場所)
  • Autolandは CI が通過すると1日約2回 main にマージされる
  • プルリクエストは無効(自動的にクローズされる)
  • 課題は Bugzilla に残る
  • コードレビューは Phabricator に残る
  • CI/CDは Mozilla の Taskcluster に残る

何が変わらないのか?

GitHub への移行にもかかわらず、Mozilla は GitHub の機能スイート全体を採用しているわけではありません。プルリクエストは、Mozilla の確立された貢献チャネルを使用するよう貢献者に指示するメッセージと共に自動的に閉じる GitHub アクションによって効果的に無効化されています。問題は Bugzilla に残り、コードレビューは引き続き Phabricator を通じて行われます。

このアプローチにより、Mozilla は GitHub の堅牢なコードホスティング機能を活用しながら、確立された開発ワークフローとツールを維持することができます。これらのシステムを分離しておく決定は、Mozilla の開発プロセスの規模とブラウザ開発の特殊な要件の両方を反映している可能性が高いです。

Firefox リポジトリの詳細

  • 新しい場所: github.com/mozilla-firefox/firefox
  • スター数:1.6k
  • フォーク数:93
  • 貢献者数:6,073人以上
  • 主要言語の内訳:
    • JavaScript:28.1%
    • HTML:22.0%
    • C++:10.5%
    • Python:2.9%
    • Kotlin:2.5%
    • その他:5.5%

コミュニティの反応

コミュニティの反応は概ね肯定的で、多くの開発者が貢献の障壁が減ったことを歓迎しています。しかし、一部の人々は Microsoft が所有するプラットフォームである GitHub へのオープンソースプロジェクトの集中化について懸念を表明しています。また、Mozilla が既存の GitHub プレゼンス(github.com/mozilla)を使用するのではなく、新しい組織(mozilla-firefox)を作成した理由について疑問を投げかける人もいます。

Mozilla が Forgejo や Codeberg などの自己ホスト型の代替手段ではなく GitHub を選択したことで、利便性と制御のトレードオフについていくつかの議論が起きています。自己ホスティングはより大きな自律性を提供する一方で、GitHub は潜在的な貢献者にとって比類のない可視性と親しみやすさを提供します。

GitHub への移行は、Mozilla の確立された開発プロセスを維持しながら、貢献の障壁を減らすという実用的な決断を表しています。Firefox がブラウザ市場で課題に直面し続ける中、貢献プロセスの合理化はコミュニティの関与を活性化し、プロジェクトの長期的な持続可能性を確保するのに役立つ可能性があります。

参考:mozilla-firefox/firefox