Mozilla telah secara rasmi memindahkan repositori kod sumber Firefox daripada Mercurial kepada GitHub, menandakan perubahan penting dalam infrastruktur pembangunan pelayar tersebut. Peralihan ini merupakan kemuncak proses yang bermula pada November 2023, apabila Mozilla pertama kali mengumumkan rancangan untuk berpindah daripada aliran kerja berasaskan Mercurial yang telah lama digunakan kepada Git.
Kod sumber Firefox kini boleh didapati di github.com/mozilla-firefox/firefox, walaupun perlu diambil perhatian bahawa perubahan ini terutamanya memberi kesan kepada repositori kod itu sendiri. Mozilla akan terus menggunakan Bugzilla untuk pengesanan isu, Phabricator untuk semakan kod, dan sistem Taskcluster mereka untuk integrasi berterusan.
Mengapa Beralih kepada Git dan GitHub?
Keputusan Mozilla untuk beralih kepada Git dan GitHub menangani beberapa cabaran yang telah lama wujud. Selama bertahun-tahun, penyumbang menghadapi kesukaran ketara apabila bekerja dengan repositori Mercurial Mozilla. Proses pengklonan Mercurial terkenal dengan kelambatannya, sering mengambil masa berjam-jam untuk diselesaikan, manakala alternatif Git boleh diselesaikan dalam beberapa minit sahaja. Perbezaan prestasi ini mewujudkan halangan yang ketara untuk penyumbang baharu.
Saya cuba menyumbang beberapa tahun yang lalu. Pengklonan Mercurial mengambil masa berjam-jam. Mereka sudah mempunyai Git tidak rasmi, yang hanya mengambil masa 15 minit untuk diklon.
Selain itu, Mozilla menghadapi cabaran yang semakin meningkat dalam mengekalkan infrastruktur kawalan versi mereka pada skala besar. Pelayan VCS perlu mengendalikan penyumbang dari seluruh dunia sambil mengekalkan ketersediaan tinggi dan keselamatan. Masalah prestasi adalah sangat bermasalah, dengan penyumbang kadangkala menunggu puluhan minit untuk kunci semasa menolak ke repositori seperti try (yang digunakan untuk menjalankan tampalan melalui CI).
Apakah Perubahan untuk Penyumbang?
Bagi penyumbang, faedah paling segera adalah keupayaan untuk menggunakan aliran kerja Git standard tanpa memerlukan sambungan seperti git-cinnabar, yang sebelum ini diperlukan untuk bekerja dengan repositori Mozilla. Ini mengurangkan halangan untuk penyertaan pembangun yang sudah biasa dengan Git, yang mewakili majoriti komuniti pembangunan pada hari ini.
Struktur repositori juga telah dikemas kini untuk selaras dengan konvensyen Git standard. Cabang mozilla-central yang terdahulu telah dipetakan kepada main, dan autoland (di mana commit mendarat terlebih dahulu dan akan dikeluarkan jika menyebabkan kegagalan ujian) kekal sebagai cabang berasingan. Cabang autoland digabungkan ke dalam main kira-kira dua kali sehari apabila ujian integrasi berterusan berjaya.
Perubahan Utama dalam Struktur Repositori
- Dahulunya "mozilla-central" → Kini cabang "main"
- Cabang "autoland" dikekalkan (di mana commit mendarat dahulu)
- Autoland bergabung dengan main ~dua kali sehari apabila CI lulus
- Permintaan tarik dimatikan (ditutup secara automatik)
- Isu-isu kekal di Bugzilla
- Semakan kod kekal di Phabricator
- CI/CD kekal di Taskcluster Mozilla
Apa yang Tidak Berubah?
Walaupun beralih ke GitHub, Mozilla tidak menggunakan keseluruhan ciri-ciri GitHub. Pull request secara efektif dilumpuhkan melalui tindakan GitHub yang secara automatik menutupnya dengan mesej yang mengarahkan penyumbang untuk menggunakan saluran sumbangan Mozilla yang telah ditetapkan. Isu-isu kekal di Bugzilla, dan semakan kod diteruskan melalui Phabricator.
Pendekatan ini membolehkan Mozilla mendapat manfaat daripada keupayaan pengehosan kod GitHub yang mantap sambil mengekalkan aliran kerja dan alat pembangunan mereka yang telah ditetapkan. Keputusan untuk memisahkan sistem-sistem ini berkemungkinan mencerminkan skala proses pembangunan Mozilla dan keperluan khusus pembangunan pelayar.
Butiran Repositori Firefox
- Lokasi baharu: github.com/mozilla-firefox/firefox
- Bintang: 1.6k
- Fork: 93
- Penyumbang: 6,073+
- Pecahan bahasa utama:
- JavaScript: 28.1%
- HTML: 22.0%
- C++: 10.5%
- Python: 2.9%
- Kotlin: 2.5%
- Lain-lain: 5.5%
Reaksi Komuniti
Respons komuniti sebahagian besarnya positif, dengan ramai pembangun mengalu-alukan pengurangan kesukaran untuk menyumbang. Walau bagaimanapun, sesetengah telah menyuarakan kebimbangan tentang pemusatan projek sumber terbuka di GitHub, platform yang dimiliki oleh Microsoft. Yang lain pula mempersoalkan mengapa Mozilla mencipta organisasi baharu (mozilla-firefox) dan bukannya menggunakan kehadiran GitHub sedia ada mereka (github.com/mozilla).
Pilihan Mozilla terhadap GitHub berbanding alternatif yang dihoskan sendiri seperti Forgejo atau Codeberg telah mencetuskan beberapa perbahasan tentang pertukaran antara kemudahan dan kawalan. Walaupun pengehosan sendiri akan memberikan autonomi yang lebih besar, GitHub menawarkan keterlihatan dan kebiasaan yang tiada tandingan untuk bakal penyumbang.
Peralihan ke GitHub mewakili keputusan pragmatik untuk mengurangkan halangan kepada sumbangan sambil mengekalkan proses pembangunan Mozilla yang telah ditetapkan. Ketika Firefox terus menghadapi cabaran dalam pasaran pelayar, memudahkan proses sumbangan boleh membantu menyemarakkan semula penglibatan komuniti dan memastikan kelestarian projek jangka panjang.
Rujukan: mozilla-firefox/firefox