2 poin oleh GN⁺ 12 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Pada 2008, Emacs meninjau Git dan Bazaar sebagai kandidat penerus CVS, dan dalam benchmark Git terbukti jauh lebih cepat
  • Richard Stallman menetapkan pilihan pada Bazaar karena merupakan paket GNU, dan diskusi teknis tidak mengubah keputusan itu
  • Selama GitHub tumbuh pada 2008–2012, para kontributor Emacs harus mempelajari Bazaar, dan Canonical memecat tim pengembangnya pada 2012
  • Pada 2013, mandeknya pemeliharaan Bazaar dan bug cabang ELPA memicu pembahasan ulang, dan ELPA akhirnya dipindahkan ke Git
  • Pada 2014, setelah pekerjaan migrasi oleh Eric S. Raymond, Emacs berpindah ke Git, tetapi segera terlihat bahwa para kontributor inti pun masih harus belajar Git

2008: Git lebih cepat, tetapi Bazaar yang dipilih

  • Pada Maret 2008, Emacs ingin berpindah dari CVS ke alat kontrol versi yang lebih modern, dan kandidatnya dipersempit menjadi Git dan Bazaar
    • Git adalah alat yang dibuat Linus Torvalds untuk kernel Linux
    • Bazaar adalah proyek GNU yang dipelihara Canonical
  • Di emacs-devel, berlangsung diskusi sepanjang 236 pesan, dan beberapa pengembang melakukan benchmark pada kedua alat itu
    • Andreas Schwab menilai bzr log membutuhkan lebih dari satu menit untuk mulai berjalan dan “sangat lambat sampai benar-benar tak bisa dipakai”
    • David Kastrup melihat bahwa sementara git log berjalan hampir seketika, Bazaar tampak seharusnya lebih cepat karena menerima informasi salin/pindah/ganti nama file secara eksplisit
  • Dalam angka nyata pun, Git jelas unggul
    • git log | head -1 memerlukan 0,012 detik, sedangkan eksekusi Bazaar untuk tugas yang sama memerlukan 21,5 detik
    • Commit perubahan satu file memerlukan 0,08 detik di Git, dan 17 detik di Bazaar
  • Stefan Monnier, yang saat itu menjadi maintainer utama, mengatakan bahwa apakah Bazaar lebih cepat atau lebih lambat dari Git bukan inti persoalannya, tetapi agar Emacs bisa bermigrasi, alat itu harus “cukup cepat”, dan setidaknya bzr diff tidak boleh memakan waktu lebih dari beberapa detik
  • Pengembang Bazaar dari Canonical, Jonathan Lange, mengusulkan prosedur yang menggabungkan wget, tar, bzr init-repo, bzr branch, bzr pull --remember untuk checkout awal
    • Prosedur ini panjang dan manual, sangat kontras dengan git clone

Keputusan bahwa yang harus dipakai adalah alat GNU

  • Seseorang bertanya kepada para maintainer dan pengambil keputusan Emacs, “informasi tambahan apa yang dibutuhkan untuk meyakinkan bahwa pada saat ini bzr bukan alat yang tepat?”
  • Richard Stallman menjawab bahwa pilihan ini bukan keputusan untuk momen saat ini, melainkan keputusan jangka panjang, dan lebih baik menunggu beberapa bulan sampai pengembang Bazaar melakukan perbaikan daripada mengambil keputusan sementara yang sulit dibalikkan
  • Dalam pesan terpisah, Stallman menegaskan, “Pertanyaan ini sudah selesai dan sudah diputuskan. Kita akan memakai GNU Bzr. Karena itu adalah paket GNU.”
  • Menanggapi keberatan bahwa argumen teknis sedang dihapus oleh keputusan politik, Stallman menjawab bahwa aturan agar paket-paket GNU saling mendukung membuat keseluruhan sistem GNU bekerja lebih baik
  • Ketika ditanya “mengapa Git tidak dijadikan bagian dari sistem GNU?”, ia mengatakan Git memang bisa dimasukkan ke dalam sistem GNU, tetapi kecil kemungkinan para pengembang Git ingin menjadikannya paket GNU
  • Benchmark 2008, 236 pesan, dan prosedur berbelit dari pegawai Canonical tidak mengubah hasil; Emacs memilih Bazaar karena ia adalah paket GNU

2008–2012: Git menyebar, beban memakai Bazaar tetap ada

  • Saat GitHub lahir dan tumbuh pesat mulai 2008, para kontributor Emacs harus mempelajari Bazaar—alat yang tidak mereka pakai di tempat lain—untuk mengirim patch
  • Di emacs-devel, thread tentang masalah Bazaar terus bermunculan berulang kali
    • “Help me unstick my bzr, please”
    • “Can NOT bzr the emacs repos (may be bzr has a memory leak)”
  • Pada 2012, Canonical memecat tim pengembang Bazaar
  • Setelah itu, kondisi pemeliharaan Bazaar menjadi beban yang lebih besar dalam proses pengembangan Emacs

2013: Pemeliharaan mandek dan Git dibahas ulang

  • Pada Maret 2013, setahun setelah pengembangan Bazaar praktis berhenti, John Wiegley kembali menanyakan apakah Emacs bisa beralih ke Git
    • Pengembangan Bazaar pada praktiknya berada dalam keadaan mandek
    • Bug besar yang memengaruhi pengembangan Emacs, seperti pada repositori ELPA, telah bertahun-tahun tetap ada di pelacak bug tanpa terselesaikan
  • Dalam pembahasan ini juga terkumpul sekitar 200 pesan
  • Reaksi pertama Stallman adalah bahwa maintainer Bazaar sedang memperbaiki beberapa bug, dan karena ia sendiri baru sehari sebelumnya meminta perbaikan bug cabang ELPA, ia ingin memberi waktu yang wajar
  • Dmitry Gutov bertanya apakah itu tidak terlalu terlambat, mengingat bug tersebut sudah berumur 1,5 tahun
  • Stallman mengatakan ia sedang mencoba menilai apakah Bazaar masih dipelihara secara efektif, dan ia ingin mendapat jawaban “Ya”
  • Joakim Verona menilai komunitas Bazaar sangat membantu, tetapi ada banyak bug dan patch yang sudah lama dikenal, beberapa bahkan diberikan oleh pengembang Emacs, namun selama bertahun-tahun tidak masuk ke upstream
  • Stallman menjawab bahwa ia tidak punya waktu membaca mailing list Bazaar, dan satu-satunya mailing list pengembangan yang ia baca adalah emacs-devel
  • Ketika ditanya apakah pengguna Bazaar seharusnya punya suara dalam menilai kecukupan pemeliharaan Bazaar, ia menjawab bahwa informasi terkait akan dipertimbangkan, tetapi memberi “hak suara” kepada pengguna adalah hal yang tidak tepat

Kritik Karl Fogel dan masalah delegasi

  • Producing Open Source Software, penulisnya Karl Fogel yang juga salah satu pengembang awal Subversion, mengkritik cara Stallman menilai situasi dan tidak adanya pendelegasian
  • Fogel berpendapat bahwa jika Stallman tidak punya waktu untuk mencermati keadaan pengembangan Bazaar, maka ia juga sulit menilai dengan kompeten apakah Bazaar masih merupakan pilihan yang baik untuk Emacs
  • Ia berargumen bahwa jika tidak punya waktu dan kapasitas mental untuk melakukan penilaian seperti itu, maka Stallman harus mendelegasikannya kepada maintainer Emacs
  • Menurut Fogel, menanyakan satu bug kepada satu orang tidak bisa menjadi indikator pengganti untuk kesehatan proyek, dan orang-orang lain di thread itu sudah melakukan penyelidikan yang lebih menyeluruh
  • Stallman menjawab, “karena ada lebih banyak yang dipertaruhkan daripada Emacs”
    • Isu utamanya adalah sinyal apa yang dikirim kepada paket GNU lain jika proyek representatif GNU meninggalkan alat GNU
  • Fogel kembali menuntut agar Stallman meluangkan waktu yang cukup untuk menilai kondisi pemeliharaan Bazaar hingga layak dipercaya, atau mendelegasikannya kepada orang yang bisa
  • Stallman hanya menjawab bahwa ia sudah punya rencana dan sedang menjalankannya, tanpa memberikan rincian, jadwal, atau pendelegasian

ELPA lebih dulu pindah ke Git

  • Dalam diskusi 2013 itu, Stefan Monnier menyatakan bahwa ia tidak terlalu peduli apakah tetap memakai Bazaar atau beralih ke Git, Monotone, Darcs, Mercurial, OpenCM, Fossil, dan sebagainya
  • Hal yang paling mendesak bagi Stefan saat itu adalah mengeluarkan cabang ELPA dari Bazaar
    • Penyebabnya adalah Bazaar tidak mampu menangani cabang ELPA dengan benar
  • Leo Liu menunjukkan bahwa sebagian besar proyek GNU tidak menggunakan Bazaar
  • Ia berpendapat bahwa memperbaiki bug Bazaar mungkin menguntungkan Bazaar, tetapi bisa merugikan GNU secara keseluruhan
    • Logikanya, jika 20% waktu luang para relawan habis untuk bergulat dengan Bazaar, biayanya cukup besar untuk membuat orang enggan berpartisipasi dalam proyek GNU
  • Pada akhir tahun itu, Stefan Monnier memindahkan cabang ELPA yang rusak di Bazaar ke Git
    • Cabang ELPA memiliki bug yang menyebabkan konflik saat checkout, dan tidak ada lagi orang yang tersisa untuk memperbaikinya
    • Stefan menilai sistem dua alat—Git untuk ELPA, Bzr untuk trunk—memang tidak ideal, tetapi tidak ada jalan keluar lain
    • Ia menegaskan agar perubahan ini tidak diperluas menjadi perdebatan kelebihan dan kekurangan Git vs Bazaar, atau pembahasan migrasi trunk ke Git
  • Setelah ELPA pindah ke Git, terbentuk landasan untuk diskusi berikutnya: jika Git cukup baik untuk ELPA, mengapa tidak cukup baik juga untuk trunk?

2014: Pekerjaan migrasi Eric S. Raymond dan perpindahan yang sebenarnya

  • Pada Agustus 2014, Eric S. Raymond sudah menyiapkan skrip konversi repositori Emacs
  • Ia mengatakan semua pekerjaan sulit sudah selesai, dan sebelum menekan tombol hanya diperlukan pemberitahuan sekitar 8 jam
  • Perpindahan yang sebenarnya terjadi pada November 2014
  • Pada 13 November, ESR mengirim pesan enam kata: “Commits are open. Have at it.”
  • Transisi ini digambarkan sebagai heroic oleh sebagian orang
  • Setelah 236 pesan pada 2008, 200 pesan pada 2013, pemeliharaan oleh Stefan, masalah Bazaar yang berulang, dan melewati sistem kontrol versi yang sudah mati, Emacs akhirnya beralih ke Git

Setelah migrasi: para kontributor inti pun harus belajar Git dari nol

  • Dalam beberapa hari pertama setelah migrasi, terlihat bahwa banyak kontributor inti sama sekali belum pernah memakai Git
  • Di emacs-devel, thread yang menanyakan cara memakai Git bermunculan beruntun
    • This Is The Git Help Mailing List
    • “git pull fails with merge conflicts. How can this possibly happen?”
    • “A simple git workflow for the rest of us”
    • “need help adjusting workflow to git”
    • “Good book on Git”
    • “Obscure error/warning/information message from git pull” berlanjut sampai 124 pesan
  • Di balik kenyataan bahwa orang-orang yang sudah lama mengembangkan editor teks penting ini sampai harus mengajukan pertanyaan Git yang sangat dasar, ada masa ketika Emacs tetap bertahan di Bazaar sementara dunia lain sudah bergerak ke Git

1 komentar

 
GN⁺ 12 jam lalu
Opini Lobste.rs
  • bekerja di proyek yang dipimpin rms benar-benar terasa seperti bisa bikin waras hilang

    • ah, sekarang jadi flashback ke why-cooperation-with-rms-is-impossible.au
  • Ini benar-benar sejarah yang luar biasa. Dulu sekali aku pernah melihat presentasi di sebuah universitas saat Mark Shuttleworth menjelaskan Bazaar yang asli, dan ide tentang sistem kontrol versi terdistribusi terasa sangat menarik
    Setelah itu versi penulisan ulang bzr muncul dan aku langsung sangat menyukainya. Rasanya jauh lebih masuk akal daripada Git, dan selama beberapa tahun aku menumpahkan banyak waktu ke proyek itu: aktif di mailing list, membuat plugin, dan bahkan mencoba menulis ulang algoritme perbandingan diff kode dalam C agar lebih cepat
    Pada akhirnya menjadi jelas bahwa Git adalah pemenangnya, tetapi butuh waktu cukup lama untuk menerimanya

  • Menurut ringkasan ini, Richard Stallman masih melarang proyek Emacs berpindah ke Git sampai 2013. Setelah itu disebutkan bahwa pada akhir 2013 dan akhir 2014 Emacs berpindah ke Git dalam dua tahap, tetapi setelah awal 2013 nama Stallman tidak disebut lagi
    Dia sudah mendukung Bazaar selama bertahun-tahun, jadi apakah setelah itu dia benar-benar tidak menulis lagi posting penolakan di thread mailing list? Atau apakah di tengah jalan dia kehilangan kewenangan atas proyek Emacs?
    Di thread 2014 yang ditautkan, aku tidak melihat email atas namanya, tetapi mungkin ada thread lain yang tidak ditautkan. Aku sempat mengira itu masa ketika Stallman mundur dari sesuatu karena kontroversi, tetapi ternyata bukan, aku hanya sedang mengingat hal lain. Menurut Wikipedia, Stallman meninggalkan Free Software Foundation pada 2019, dan bahkan tidak meninggalkan GNU Project

  • Aku tidak benar-benar tahu apa yang membuat sebuah proyek resmi menjadi proyek GNU. Apakah karena lisensinya? Git dan Linux sama-sama GPLv2-only, sedangkan Bazaar adalah GPLv2+. Apakah karena pengalihan hak cipta? Karena hosting untuk repositori, pelacak isu, mailing list, dan semacamnya? Karena nama berawalan “GNU” yang berfungsi seperti dukungan?
    Jelas tampaknya ada satu pembedaan penting di suatu tempat, tetapi aku tidak tahu apa itu dan mengapa itu penting
    Dan ada juga kesalahan selisih satu yang berulang:

    On November 13th, ESR posted a seven-word message:

    Commits are open. Have at it.

    [...]

    Six years of debate, [...] and it ended with seven words.
    ah, kesempatan emas untuk simetri jadi terlewat

  • Sekitar 2014 aku pernah ingin mengerjakan sesuatu di mysql, tetapi setelah gagal seharian hanya untuk mengkloning repositori dan checkout branch rilis, aku menyerah. Sekarang rasanya jadi jauh tidak terlalu memalukan
    Sebelumnya aku sudah memakai CVS, Subversion, dan Mercurial masing-masing selama bertahun-tahun, jadi kupikir masalahnya ada di jaringan atau komputerkulah. Sebelum membaca artikel ini, aku tidak tahu benchmark bzr yang sebenarnya ternyata seburuk itu, atau bahwa meski Canonical memakai bzr begitu banyak, mereka sudah memecat tim bzr
    Beberapa tahun kemudian ketika aku datang untuk mengerjakan hal lain di mysql, mereka sudah pindah ke Git, dan karena aku tidak lagi terhambat bahkan sebelum mulai, aku jadi bisa menyelesaikan pekerjaan yang menarik

    Since I had no interesting books to read today, nor interesting films to watch, I decided to scavenge for the most intriguing content one can find online. I ended up reading the Linux kernel mailing lists, but those discussions seemed to be 18+, so I settled for the comparatively civil emacs-devel.
    Ini disclaimer “tidak, tulisan ini tidak ditulis oleh AI” terbaik yang pernah kulihat

  • Tulisan yang keren. Aku selalu ingin melihat bagaimana drama mailing list seperti ini berkembang, tetapi tidak pernah punya nyali untuk benar-benar terjun langsung. Penyusunan cerita dan kutipannya sangat bagus

  • Sejarah yang membingungkan ini dirangkum dengan menyenangkan. Tapi kurasa judulnya lebih tepat “The Most Bzr Emacs Saga” daripada “The Most Emacs Bzr Saga”
    Memakai “Emacs” seperti kata sifat memang bukan sesuatu yang sama sekali tidak pernah ada, tapi tetap terasa agak janggal

  • Bazaar adalah sistem kontrol versi pertama yang pernah kupakai. Waktu itu aku sedang mulai mengenal Linux lewat Ubuntu, dan Canonical memakai Launchpad yang bisa digunakan untuk meng-host source code
    Sebelumnya aku tidak pernah mengunggah kode ke mana pun, tetapi memakai Launchpad dan Bazaar terasa cukup keren. Tentu saja proyek-proyekku sangat kecil jadi aku sama sekali tidak merasakan masalah performa