1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • 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, atau disapprove
  • 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 support dan 28% sisanya memilih accept
    • 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
  • 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-bot pada 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

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
  • 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
  • Guix perlu memastikan tidak memberi beban berlebihan pada server Codeberg dan juga memantau penggunaan repositori
  • 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

 
GN⁺ 3 jam lalu
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

    • Saya tahu maksudnya baik, tetapi daripada semuanya terkonsentrasi di Codeberg, saya rasa akan lebih baik jika beberapa forge independen saling berkomunikasi lewat ForgeFed
      Kita tidak perlu satu hub baru yang lagi-lagi berpusat pada open source
    • Saat ini saya tidak melihat Forgejo cukup matang untuk menangani peran seperti itu. Pihak Codeberg melakukan semampu mereka dan saya berharap akan membaik, tetapi tampaknya butuh waktu
    • Pada akhirnya, semua pekerjaan pribadi saya pindah ke Fossil, dan untuk hal-hal yang ingin saya buka ke orang lain saya menyiapkan server Fossil sendiri
      Sejauh ini sangat bagus, dan saya jelas lebih menyukainya daripada git. Memang ambang masuknya tidak rendah menurut standar masa kini, tetapi juga tidak terlalu tinggi
  • Hal 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

    • Sebagai pengguna magit forge, saya sampai menangis
  • Saya 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