4 poin oleh GN⁺ 2025-05-14 | 1 komentar | Bagikan ke WhatsApp
  • Firefox baru-baru ini memindahkan repositori utama dari Mercurial ke GitHub
  • Pelacakan bug tetap menggunakan Bugzilla, code review tetap menggunakan Phabricator, dan CI tetap menggunakan Taskcluster
  • Saat ini GitHub menjadi repositori pusat, tetapi server Mercurial tetap dipertahankan dengan sinkronisasi dari GitHub, dan sistem otomasi yang ada juga akan bertahap beralih ke Git
  • Repositori try untuk pengujian CI masih berbasis Mercurial, tetapi semakin disembunyikan di balik lapisan abstraksi dan nantinya akan dipindahkan ke Git
  • Dengan Git yang kini bisa digunakan sebagai default, ada keuntungan bahwa kontributor baru tidak perlu lagi mempelajari Mercurial secara terpisah dan cukup memahami Git
    • Sebelumnya perlu memasang ekstensi git cinnabar, tetapi sekarang Git bawaan saja sudah cukup
  • mozilla-central milik Mercurial yang lama di Git diubah menjadi branch main, sementara branch autoland tetap autoland juga di Git
  • Workflow berbasis PR di GitHub saat ini belum diadopsi dan tidak termasuk dalam perubahan ini. Kemungkinan ke depan tetap terbuka, tetapi belum ada rencana resmi
  • Melalui transisi ke GitHub, Mozilla dapat mengurangi beban operasional infrastruktur VCS miliknya sendiri
  • Tujuan utamanya adalah mengurangi biaya dan kompleksitas untuk menyediakan sendiri performa, stabilitas, dan ketersediaan yang dibutuhkan proyek berskala besar

Riwayat dan penjelasan detail yang ditulis oleh Glandium, pembuat git-cinnabar: How I (kind of) killed Mercurial at Mozilla

> Mozilla menutup era Mercurial dengan memindahkan repositori kode Firefox ke GitHub

  • Mozilla memutuskan mengalihkan VCS utama pengembangan Firefox dari Mercurial ke Git dan menjadikan GitHub sebagai repositori resmi
  • Dasar keputusan ini adalah pengembangan dan adopsi jangka panjang alat ekstensi bernama git-cinnabar, yang memungkinkan pengguna Git tetap dapat mengakses repositori Mercurial dengan lancar
  • Masalah struktur branch di Mercurial, membesarnya skala repositori, dan beban pengelolaan server sendiri saling berpadu sehingga kesulitan mempertahankan infrastruktur internal terus menumpuk
  • Meski pilihan GitHub memicu perdebatan, dari sisi keramahan bagi kontributor dan kepraktisan hal itu merupakan pilihan yang sulit dihindari, mengingat ribuan repositori internal Mozilla sudah ada di GitHub
  • git-cinnabar bermula sebagai side project pribadi yang lahir dari kebutuhan internal Mozilla, tetapi kemungkinan besar akan tetap dipertahankan sebagai alat penting selama masa transisi mendatang
    > “Bukan saya yang menyalakan apinya, tetapi memang benar saya menuangkan minyak ke atasnya.”

1 komentar

 
GN⁺ 2025-05-14
Komentar Hacker News
  • Saya bekerja di Mozilla, tetapi tidak terlibat dalam tooling VCS atau transisi kali ini; ini hanya untuk memberi konteks tambahan. Repositori resmi kode Firefox baru-baru ini dipindahkan dari mercurial di hg.mozilla.org ke GitHub. Ini hanya berdampak pada kode; pelacakan isu masih tetap menggunakan bugzilla, review kode dan landing masih menggunakan phabricator, dan CI juga masih memakai sistem taskcluster. Dalam jangka pendek, server mercurial tetap disinkronkan dari GitHub agar sistem otomatisasi bisa perlahan berpindah ke backend git. mercurial masih dipakai untuk repositori “try” (tempat menjalankan CI untuk patch WIP), tetapi semakin disembunyikan di balik lapisan abstraksi dan nantinya juga akan dimigrasikan. Untuk orang yang terbiasa dengan repositori lama, “mozilla-central” dipetakan ke nama branch standar git “main”, dan “autoland” ke branch “autoland”. Sebenarnya kontribusi ke Firefox sebelumnya juga bisa dilakukan hanya dengan git, tetapi perlu memasang ekstensi bernama git cinnabar. Bagi kontributor baru, harus memilih antara belajar hg atau memakai git+ekstensi menjadi hambatan masuk, dan kebanyakan orang sudah mengenal git tetapi tidak mengenal mercurial. Sekarang itu bukan lagi masalah. Penulis git cinnabar, glandium, menulis penjelasan rinci tentang konteks dan alasannya di blog saat migrasi diumumkan. Dalam jangka pendek, dari sudut pandang kontributor hampir tidak ada perubahan. Penggunaan git biasa kini menjadi alur kerja default, dan selain itu tidak banyak yang berubah. Ke depan mungkin akan ada dukungan untuk alur kerja berbasis GitHub PR, tetapi itu tidak termasuk dalam perubahan ini. Di sisi backend, setelah migrasi selesai Mozilla bisa mengurangi waktu dan upaya yang dibutuhkan untuk mengoperasikan infrastruktur VCS sendiri, dan memenuhi performa serta ketersediaan yang dibutuhkan proyek sebesar ini adalah tantangan yang cukup besar
    • Secara pribadi saya tidak menganggap keputusan Mozilla pindah ke platform tertutup milik Microsoft sebagai keputusan yang tepat
    • Karena Phabricator sudah dihentikan, saya penasaran apakah ada rencana penggantinya, misalnya mempertimbangkan sesuatu seperti Phorge
    • Terima kasih untuk konteks tambahannya. Saya penasaran, apa masalah skala utama yang dihadapi dengan solusi self-hosted mereka
    • Saya juga ingin tahu apakah GeckoView dan Mozilla Android Components akan dipindahkan ke GitHub
    • Saya menyesalkan bahwa hanya kodenya yang dipindahkan ke GitHub, sementara pelacakan isu tetap tinggal di bugzilla. Salah satu keuntungan utama memakai GitHub adalah banyak pengguna sudah punya akun dan akrab dengan platformnya, tetapi karena isu hanya diterima di bugzilla, melaporkan bug tetap punya hambatan tersendiri. Saya pernah mengakses bugzilla dan Firefox untuk melaporkan bug aksesibilitas di macOS, dan itu cukup merepotkan karena saya harus mencari situsnya, mendaftar, dan mempelajarinya. Pada akhirnya bug itu memang dikonfirmasi, tetapi tidak diperbaiki
  • Dari sudut pandang strategis Mozilla, ini tampak seperti keputusan yang bisa dipahami. Pemasukan dari Google berkurang dan mungkin mereka juga harus mengurangi staf, tetapi untuk terus mengembangkan Firefox mereka butuh lebih banyak partisipasi komunitas, dan GitHub adalah platform pengembang yang paling dikenal sehingga hambatan masuk menjadi lebih rendah. Orang bisa saja tidak senang karena mereka tidak memakai GitHub alternatif seperti GitLab, tetapi semua orang diuntungkan jika pengembangan Firefox terus berlanjut dan ada engine pesaing di pasar
    • Saya rasa orang yang memilih menyerah berkontribusi hanya karena tidak bisa memakai GitHub, dalam kebanyakan kasus, bukanlah kontributor yang terlalu berharga. Mungkin ada pengecualian, tetapi saya belum pernah melihatnya dalam proyek open source non-sepele yang saya ikuti langsung. Bahkan saya pikir sedikit menaikkan hambatan masuk punya efek positif karena bisa menyaring kontributor sekali lewat dengan kualitas rendah
    • Saya benar-benar menyerah mencoba berkontribusi patch ke Firefox karena saya tidak memahami kombinasi gh dan phabricator. Saya tidak mengerti bagaimana keduanya saling terhubung, dan juga tidak tahu bagaimana harus memperbarui branch/PR, jadi akhirnya saya berhenti mencoba sama sekali
    • Dari pengalaman pribadi saya dengan GitLab, beberapa tahun lalu GitLab cukup jelas menunjukkan bahwa mereka tidak terlalu tertarik menjadi host proyek open source besar, dan dukungan untuk FOSS hanya bisa dilakukan melalui program open source mereka. Proses ini rumit dan punya banyak persyaratan tambahan, sehingga kemungkinan sulit diterima Mozilla. Misalnya, untuk memakai GitLab, proyek open source tersebut harus melepaskan hak untuk memodifikasi/mem-fork versi GitLab FOSS, dan itu masalah serius bagi proyek mana pun. Mungkin itu hanya klausul standar yang dimasukkan pengacara, tetapi justru itu sendiri menunjukkan betapa besarnya masalahnya. Jadi GitLab tersingkir. Masih ada pilihan seperti Codeberg, tetapi jika tujuannya menurunkan hambatan masuk bagi kontributor baru, GitHub cocok karena kebanyakan orang sudah terdaftar di sana
    • Peralihan ke GitHub memang perubahan teknis, tetapi inti sebenarnya adalah perpindahan dari mercurial ke git, dan saya menduga pertimbangan sosial ikut memengaruhi keputusan teknis itu
    • Saya beranggapan bahwa orang yang tidak bisa melewati hambatan masuk bahkan untuk melaporkan bug, apalagi melakukan perubahan kode, seharusnya memang tidak melakukannya
  • Senang melihat kontribusi ke Firefox akhirnya mengatasi utang teknis besar ini. Ketika saya mencoba beberapa tahun lalu, mercurial butuh berjam-jam hanya untuk meng-clone repositori, dan karena tidak ada dukungan git resmi, saya harus memakai dukungan git tidak resmi agar bisa bekerja dengan layak. Dokumentasinya saat itu juga berantakan, sampai membuat saya membangun ulang semuanya tanpa perlu
  • Saya penasaran mengapa mereka memilih org mozilla-firefox, bukan org mozilla yang sudah ada
    • Mungkin karena aturan aksesnya berbeda, atau mereka ingin memisahkannya dari org yang sudah ada agar otomatisasi tidak berdampak ke area lain
    • Menurut saya itu pertanyaan yang sangat bagus
  • Saya penasaran apa sumber untuk “Firefox Moves to GitHub”. Bisa saja ini hanya mirror. Linux juga punya mirror di GitHub. (Suntingan kemudian: sumber ditambahkan)
    • Saya juga berpikir begitu. Faktanya, workflow yang disetel di GitHub saat ini hanya menutup PR dengan balasan default
  • Firefox Mobile (Fenix) dulu memakai GitHub lalu belum lama ini dimigrasikan ke repositori mercurial mozilla-central milik Mozilla, dan sekarang versi desktop maupun mobile keduanya ada di GitHub, sementara isu tetap berada di bugzilla. Ini memungkinkan pemanfaatan pencarian GitHub yang bagus, penelusuran source, dan keakraban dengan git. Sebagai mantan kontributor Firefox dan Thunderbird, saya jauh lebih sering memakai pencarian lokal daripada mencari di situs mozilla-central. Saat pengembangan saya memakai pencarian di IDE, tetapi pencarian yang mudah di situs adalah hal yang akan disambut baik oleh kontributor baru
    • Sebaliknya, saya menganggap searchfox adalah alat navigasi kode terbaik yang pernah saya gunakan. Ia punya banyak fitur seperti navigasi lintas bahasa, blame yang selalu aktif, dan jauh lebih cepat serta ringan daripada GitHub. Saya harap alat seperti ini bisa dipakai lebih banyak proyek, dan akan disayangkan jika sampai hilang
    • Saya merasa kualitas penelusuran source di GitHub menurun tajam belakangan ini. Pemuatan asinkron (butuh js), mudah rusak saat jaringan tidak stabil, dan pencarian dalam halaman juga rusak. Saya juga menganggap pembaruan tampilan issue/PR baru-baru ini sebagai kemunduran, dan dengan uBlock Origin pencarian PR bahkan tidak bisa dipakai
  • Saya pikir ini perubahan yang bagus, tetapi saya penasaran mengapa mereka membuat org baru alih-alih memakai org github.com/mozilla yang sudah ada
    • Saya tidak tahu alasan rinci pastinya, tetapi dalam banyak hal memang perlu pemisahan per org; misalnya SSO hanya bisa diterapkan untuk seluruh org, sehingga repo Firefox bisa saja membutuhkan konfigurasi autentikasi/pengguna yang sepenuhnya berbeda dari repo utama Mozilla
    • Mozilla punya beberapa org
    • Saya menduga ini karena Conway’s Law
    • GitHub hanya punya level org atau repo, tidak ada level di atas itu. Banyak pengaturan (SSO, hak akses, pengaturan bersama, dll.) diterapkan per org, sehingga membuat org baru biasanya menjadi solusi paling rapi, meski juga cukup merepotkan (di GitLab, misalnya, Anda bisa membuat namespace untuk Firefox dan hal lainnya dalam satu instance atau satu org)
  • Rasanya aneh melihat organisasi seperti Mozilla memakai hosting eksternal seperti GitHub. Untuk proyek kecil satu orang saya paham, tetapi memaksa kontributor punya akun layanan eksternal terasa tidak ramah
    • Kalau itu proyek open source, saya pikir justru positif karena memberi visibilitas serta lingkungan yang terbuka bagi semua orang dan mudah untuk berkontribusi
  • Kalau saya ingat benar, branch “master” dulu adalah mozilla-central. Sekarang ada “main” dan “autoland”; saya penasaran itu apa, dan branch mana yang setara dengan mozilla-central lama
    • Saya bukan pengembang Firefox, tetapi “main” tampaknya setara dengan mozilla-central, dan “autoland” adalah branch yang dulu juga sudah ada di sampingnya, tempat commit masuk lebih dulu
  • Saya berharap bugzilla tetap ada meski hanya baca-saja. Web dibangun sebagai platform yang bertumpuk secara “ad-hoc”, jadi banyak alasan di masa lalu hanya tersisa di bugzilla. Alasan mengapa situs web atau browser yang sudah hilang dulu berperilaku dengan cara tertentu sering kali hanya bisa ditemukan di sana
    • bugzilla masih menjadi pelacak bug Firefox. Tidak ada rencana untuk mengubahnya. (GitHub Issues tidak digunakan)
    • bugzilla itu hebat, dan merupakan produk yang melampaui zamannya. Bahkan sekarang pun saya rasa belum ada bug tracker self-hosted lain yang sebanding dengannya