Satu tahun setelah Guix pindah ke Codeberg
(guix.gnu.org)- Pada 2025, Guix memindahkan cara kolaborasinya yang selama lebih dari 10 tahun berjalan di Savannah dan Debbugs berbasis email ke Codeberg, sehingga titik masuk kontribusi untuk proyek dengan lebih dari 400 peserta per tahun berubah besar
- Transisi ini menjadi kasus penerapan pertama dari prosedur Guix Consensus Document yang diperkenalkan pada Desember 2024, dan GCD 002 mulai berlaku pada awal Mei 2025 setelah dua bulan diskusi
- Alur kerja email yang lama efisien bagi kontributor berpengalaman berkat alat seperti Emacs, mumi, dan qa.guix.gnu.org, tetapi dalam survei dengan 900 responden, hal ini sering disebut sebagai hambatan bagi kontributor
- Setelah pindah ke Codeberg, jumlah penulis dan penulis baru meningkat, tetapi selain lonjakan sementara pada Juni 2025, sulit memastikan adanya efek Codeberg yang jelas
- Lebih dari 500 pull request dibuka setiap bulan dan backlog terus membesar, sehingga mengurangi kekosongan CI, persyaratan tanda tangan, dan beban review menjadi tugas praktis Guix berikutnya
Berpindah dari kolaborasi berbasis email ke Codeberg
- Pada 2025, Guix memindahkan hosting kode sumber, pelacakan isu, dan pull request ke Codeberg
- Sebelumnya, kode di-hosting di Savannah selama lebih dari 10 tahun
- Laporan bug dan patch diproses lewat email dan dilacak dengan instans Debbugs
- Karena ini adalah proyek dengan lebih dari 400 kontributor kode setiap tahun, perpindahan itu sendiri merupakan perubahan besar
- Kontributor inti lama sudah terbiasa dengan alur kerja email dan bekerja efisien memakai paket Debbugs untuk Emacs atau klien email tingkat lanjut
- Debbugs mengandalkan beberapa ratus baris kode Perl serta standar email dan struktur federatif, sedangkan web forge seperti Forgejo adalah sistem yang lebih besar dengan banyak dependensi Go
- Di sekitar alur email yang ada, sudah tersedia juga alat pendukung
- mumi menyediakan antarmuka web untuk Debbugs
- Quality Assurance service otomatis menerapkan rangkaian patch email ke branch Git dan membangun paket dari branch tersebut
- Dalam survei pertama untuk pengguna dan kontributor yang dipublikasikan pada Januari 2025, lebih dari 900 orang merespons, dan para kontributor sering menyebut alur kerja email sebagai hambatan untuk berkontribusi
Keputusan berbasis konsensus lewat GCD 002
- Guix tidak memiliki “benevolent dictator” untuk mengambil keputusan, dan pada Desember 2024 memperkenalkan proses Guix Consensus Document
- Prosedur GCD bertujuan membentuk konsensus alih-alih sekadar voting
- Penulis proposal harus menyesuaikan proposal bersama para peserta
- Peserta harus mengusulkan kebutuhan mereka dan perubahan konkret untuk mencerminkannya, bukan sekadar menolak
- Dalam rancangan akhir, posisi dinyatakan dengan
support,accept, ataudisapprove
- GCD 002 diajukan pada Februari 2025 sebagai usulan migrasi ke Codeberg
- Diskusi berlangsung selama dua bulan, yaitu durasi maksimum dalam prosedur
- Dua pertiga anggota tim Guix ikut dalam musyawarah
- Dari para peserta, 72% memilih
supportdan 28% sisanya memilihaccept - Tidak ada
disapprove, dan proposal mulai berlaku pada awal Mei 2025
- Sejumlah anggota yang sudah lama berkontribusi merasa alur kerja yang tampak web-first lebih tidak efisien daripada email, dan juga enggan melepaskan sebagian infrastruktur berbasis email
- Kemungkinan terbukanya titik kontak dengan komunitas yang lebih luas dan perbaikan pengalaman pengembang mendukung transisi ini
- Preferensi terhadap forge berbasis perangkat lunak bebas dan forge yang di-host oleh organisasi nirlaba Codeberg e.V. tidak memicu perdebatan besar, dan selaras dengan arah Guix
Transisi bertahap dan kekosongan CI yang lebih besar dari perkiraan
- Transisi ke Codeberg dilakukan secara bertahap sesuai konsensus GCD
- Repositori utama dipindahkan pada 25 Mei 2025
- Repositori lama masih dipertahankan sebagai mirror
- Pelacak isu dan patch lama akan dipertahankan sampai 1 Januari 2026
- Setelah itu, isu dan pull request di Codeberg menjadi satu-satunya mekanisme yang didukung
- Laporan bug dan patch lama tetap dapat diakses secara online
- Berkat rencana yang dibuat selama diskusi konsensus, saat transisi terjadi hanya ada sedikit masalah besar atau situasi tak terduga
- Kualitas layanan dari staf dan relawan Codeberg e.V. dinilai baik, dan downtime sesekali biasanya singkat serta diumumkan dengan jelas
- Bagi kontributor yang lebih menyukai alur kerja di luar browser, peningkatan antarmuka Emacs membantu
fj.eldan Emacs-Forgejo berkembang- Kemampuan membuat pull request lewat AGit workflow juga mengurangi beban adaptasi
- Masalah yang tidak cukup terprediksi adalah continuous integration untuk pull request
- Fitur build patch email di qa.guix.gnu.org tidak dipindahkan ke Codeberg
- Selama beberapa bulan, reviewer harus memeriksa sendiri apakah pull request menimbulkan masalah, dan ini bukan kondisi yang berkelanjutan
- Pada September 2025, sebuah instans Cuirass dibangun di pulls.ci.guix.gnu.org dan mulai membangun pull request
- Pada awalnya, ini dianggap sebagai solusi sementara karena lebih terbatas dibanding qa.guix.gnu.org
- Saat ini paket dibangun untuk satu arsitektur saja
- Kontributor baru dapat langsung melihat hasil sukses atau gagal yang ditinggalkan
guix-cuirass-botpada pull request
Arus kontribusi meningkat, tetapi backlog juga membesar
- Jika dilihat dari jumlah commit ke branch utama dari Mei 2024 sampai Mei 2026, laju commit Guix terus berada di antara “tinggi” dan “sangat tinggi”
- Karena laju commit saja tidak cukup menunjukkan perubahan, jumlah penulis commit bulanan, committer, dan penulis commit baru per bulan menjadi metrik yang lebih berguna
- Jumlah penulis bulanan dan penulis baru terus meningkat
- Tepat setelah migrasi ke Codeberg, pada Juni 2025 ada puncak baik pada jumlah penulis maupun penulis baru
- Selain itu, pertumbuhan pada periode 2025–2026 mirip dengan periode 2024–2025
- Guix terus menarik kontributor baru, tetapi efek Codeberg yang jelas tidak terlalu besar
- Kenaikan jumlah committer bulanan lebih landai daripada kenaikan jumlah penulis, yang dapat mengindikasikan bahwa para committer menangani lebih banyak kontribusi
- Data pull request dikumpulkan lewat Forgejo API milik Codeberg
- Lebih dari 500 pull request dibuka setiap bulan dan laju merge juga tinggi, tetapi sedikit lebih rendah daripada arus masuk sehingga backlog terus bertambah
- Saat ini, sekitar 639 dari total 6.459 pull request masih terbuka, atau sekitar 10%
- Sebagai pembanding, Nixpkgs memiliki 12k pull request terbuka dari total 473k, atau sekitar 2,5%
- Backlog Guix mungkin disebabkan oleh friksi yang berlebihan atau umpan balik CI yang belum memadai
- Guix mensyaratkan setiap commit menerima tanda tangan dari committer yang disetujui
- Ini bukan model seperti banyak proyek lain termasuk Nixpkgs yang cukup menekan tombol
Merge - Orang yang melakukan merge bertanggung jawab untuk menerapkan perubahan dan menandatanganinya
- Guix memilih keamanan rantai pasok perangkat lunak di antara kenyamanan pengembang dan keamanan pengguna
- Apakah biaya ini bisa dikurangi masih perlu dipastikan
- Ini bukan model seperti banyak proyek lain termasuk Nixpkgs yang cukup menekan tombol
Kolaborasi yang lebih terlihat di Codeberg
- Setelah pindah ke Codeberg, aktivitas proyek menjadi lebih terlihat
- Hasil CI muncul langsung di dalam pull request sehingga kontributor bisa segera memeriksanya
- Tim Guix diimplementasikan sebagai tim Codeberg
- Cakupan tim dinyatakan dalam file
CODEOWNERS - Penanggung jawab untuk cakupan tersebut dipanggil otomatis
- Bot menambahkan label seperti
team-python, sehingga isu dan pull request bisa difilter berdasarkan label
- Cakupan tim dinyatakan dalam file
- Masalah bahwa tim tidak menerima notifikasi dari isu yang diberi label tersebut masih menjadi ketidaknyamanan
- Fitur seperti referensi silang antara isu dan pull request, serta milestone, juga tampak membantu kolaborasi
Tugas infrastruktur yang tersisa dan hubungan dengan Codeberg
- Infrastruktur Guix membutuhkan lebih banyak bantuan
- Kinerja build di pulls.ci.guix.gnu.org perlu ditingkatkan
- Akan lebih baik jika build untuk arsitektur non-x86 juga bisa dilakukan
- Cuirass punya berbagai keterbatasan, dan sebagian sedang diperbaiki dalam seri 1.4.x
- pulls.ci.guix.gnu.org masih berfokus pada paket, dan akan bagus jika juga bisa menjalankan pengujian sistem saat sesuai
- Alur kerja packager juga masih bisa ditingkatkan
- Topic branch dan world rebuild scheduling masih banyak terikat pada pelacak bug yang sudah dipensiunkan
- Guix perlu memastikan tidak memberi beban berlebihan pada server Codeberg dan juga memantau penggunaan repositori
- Pernah ada kasus yang memberi beban berlebihan pada server Codeberg
- Satu fork Guix bisa melampaui kuota baru 750MiB per pengguna di Codeberg
- Sebagai solusi, ada usulan untuk mewajibkan kontributor baru membuat pull request dengan AGit workflow
- AGit sudah populer di kalangan kontributor Guix
- Namun, bagi sebagian orang ini terasa kurang familier dibanding alur kerja pull request umum yang sudah dikenal, sehingga dianggap sebagai “penurunan”
- Seperti contoh di Gentoo, menambahkan ikon “AGit fork” bisa meningkatkan kemudahan ditemukan
- Guix Foundation memutuskan lewat voting untuk menjadi anggota pendukung Codeberg e.V. sebagai bentuk apresiasi dan dukungan
- Sebuah pull request untuk menambahkan Forgejo dan layanan untuk mengaturnya di Guix telah diajukan
- Ini mengarah pada kemungkinan konfigurasi deklaratif dan deployment forge yang dapat direproduksi di dalam Guix
1 komentar
Pendapat di Lobste.rs
Melihat metrik proyek nyata terkait migrasi ke Codeberg sangat menarik. Secara pribadi, ada terlalu banyak alasan untuk meninggalkan GitHub, jadi saya berharap Codeberg bisa menjadi GitHub yang baru, tetapi saya sendiri pindah ke server Forgejo yang di-host sendiri dan sekarang menggunakan Codeberg sebagai target cadangan untuk semua repositori
Kita tidak perlu satu hub baru yang lagi-lagi berpusat pada open source
Sejauh ini sangat bagus, dan saya jelas lebih menyukainya daripada
git. Memang ambang masuknya tidak rendah menurut standar masa kini, tetapi juga tidak terlalu tinggiHal yang benar-benar membuat saya kesal setelah mulai memakai Codeberg adalah hampir tidak ada alat yang benar-benar mendukung integrasi git, dan kebanyakan pada praktiknya hanya ditujukan untuk GitHub / GitLab
magit forge, saya sampai menangisSaya tidak paham bagian tentang mempertahankan pelacak isu·patch lama sampai 1 Januari 2026 lalu setelah itu hanya mendukung isu dan pull request Codeberg
Jika cukup banyak kontributor tidak menyukai alur baru itu, saya tidak mengerti mengapa harus dipaksakan, dan saya juga penasaran apakah ada biaya tersembunyi untuk mengizinkan beberapa alur kerja sekaligus. Saya mempertanyakan mengapa satu cara yang sama harus dipaksakan kepada semua orang
Sedikit koreksi kecil, tetapi sepertinya Codeberg tidak memiliki beberapa pegawai bergaji; setahu saya hanya satu orang. Ralat: pada Desember tahun lalu mereka menambah pegawai kedua