1 poin oleh GN⁺ 2023-09-18 | 1 komentar | Bagikan ke WhatsApp

lodash menyatakan kebangkrutan isu dan menutup semua isu serta PR yang masih terbuka

1 komentar

 
GN⁺ 2023-09-18
Komentar Hacker News
  • Ini benar-benar terasa ambivalen. Di satu sisi, ini sangat bagus. Rasanya hampir tidak ada orang yang belum pernah mengalami rapat pembersihan backlog yang berjalan seperti mengikis dari atas, padahal semua orang tahu tidak akan pernah sampai ke ujung; perasaan itu jelas menyedihkan.
    Di sisi lain, isunya bukan hilang, hanya labelnya yang berubah. Kalau semuanya pada akhirnya soal tag dan penataan, bukankah lebih baik membiarkan arusnya berjalan daripada mencoba mengendalikan utopia semu berupa daftar isu yang benar-benar kosong? Pasti ada manfaatnya juga meninggalkan catatan seperti itu di tempat yang terlihat. Rasanya mirip saat bersih-bersih besar: kita sudah memutuskan membuang sesuatu, tapi alam bawah sadar berkata mungkin nanti akan dibutuhkan dan menyuruh kita mempertahankannya.
    Meski begitu, secara keseluruhan saya cenderung setuju. Setidaknya sepertinya akan ada rasa lega dan efek mengisi ulang energi untuk menghadapi isu baru.

    • Untuk menambahkan sedikit konteks, pembuatnya sedang melakukan penulisan ulang total.
      Sepertinya akan lebih rapi kalau versi hasil penulisan ulang dirilis dulu, lalu isu lama ditutup sebagai deprecated. Isu untuk branch penulisan ulang bisa dipisahkan dengan tag versi. Kalau ditutup saat versi baru belum selesai, kontributor bisa saja membuka isu baru untuk versi lama tanpa tahu bahwa versi itu sudah tidak didukung lagi.
      Meski begitu, ini bukan berarti mereka mengabaikan isu dan membiarkan masalah di codebase; seluruh proyek memang sedang dirapikan ulang.
      https://twitter.com/jdalton/status/1571863497969119238
    • Dari sudut pandang pengguna, kalau “perapihan” semacam ini berarti menutup isu, itu bermasalah. Kalau isu itu masih ada di produk, ia seharusnya tetap terbuka, baik untuk dokumentasi maupun agar pengguna yang mengalami masalah yang sama bisa menemukannya dengan mudah dan menambahkan informasi.
      Menurut saya lebih jujur kalau proyek mengakui keberadaan isu dan membiarkannya terbuka. Dari sisi developer, kalau jumlah isu terasa mengganggu, lebih baik memakai filter untuk menyembunyikan isu lama yang tidak penting.
    • Saya juga ambivalen. Di satu sisi, setiap kali kembali mengerjakan JavaScript, saya selalu mencari lodash. Di sisi lain, menurut saya sedikit kurang dari separuh library ini seharusnya sudah masuk ke standard library.
    • Bukankah pekerjaan seperti ini seharusnya bisa dilakukan dengan baik oleh large language model? Maksud saya, meringkas tiket.
    • Itulah sebabnya Basecamp tidak mempertahankan backlog. Hal-hal yang penting akan muncul kembali.
  • jwz pernah berkata begini:

    Menurut saya ini adalah cara paling umum bug yang saya laporkan ke proyek perangkat lunak open source ditutup. Anda melaporkan bug, lalu tidak dibaca selama satu tahun, kadang dua tahun, kemudian suatu hari modul itu ditulis ulang dari nol. Lalu maintainer baru tidak punya keinginan untuk memeriksa apakah versi baru benar-benar memperbaiki masalah yang diketahui ada di versi lama.

    • Kalau maintainernya sedikit atau proyeknya dikelola satu orang, bukankah lebih masuk akal bila pelapor bug masing-masing meluangkan 10–15 menit untuk memeriksa apakah masalahnya masih ada, daripada maintainer tunggal menghabiskan beberapa hari sampai beberapa minggu untuk memverifikasinya?
      Terutama untuk bug yang sulit atau rumit direproduksi, sejak awal belum tentu maintainer bisa mereproduksinya di lingkungan mereka sendiri, dan pelapor kemungkinan lebih terbiasa mengamati bug tersebut.
      Kalau ada tim yang lebih besar, atau proyek pendamping dari layanan komersial, keseimbangan ini bisa sedikit berbeda.
      Yang terlihat di banyak proyek free/open source adalah sangat sedikit orang yang mau turun tangan, tetapi pada saat yang sama mereka menghabiskan cukup banyak waktu untuk memberi tahu betapa pentingnya proyek itu bagi mereka, menuntut, dan mengajukan banyak saran.
      Mayoritas membuat isu baru untuk menyampaikan wishlist atau meninggalkan laporan bug yang sangat samar. Sebagian di antaranya memang menghasilkan laporan bug yang bagus, tetapi niat berkontribusi biasanya berhenti sampai di situ.
      Secara pribadi, saya tidak punya kemauan untuk menangani sebagian besar komentar yang sering muncul secara diplomatis, jadi saya bukan tipe orang yang cocok memelihara proyek.
      Namun untuk isu yang saya laporkan, saya selalu berusaha melakukan bagian saya dengan menelusuri penyebabnya dan, jika memungkinkan, mengirim PR yang memperbaikinya.
    • Ada juga variasinya. Isu dilaporkan untuk satu versi mayor, lalu ketika versi mayor baru keluar, semua isu rilis sebelumnya ditutup dengan alasan masalah itu mungkin sudah tidak ada lagi, meskipun itu bukan penulisan ulang, hanya perubahan bertahap.
    • Buat saja PR yang berisi test yang seharusnya lulus tetapi saat ini ditandai untuk dilewati. Dengan begitu, saat membangun ulang, ada jalur mudah untuk memeriksa progres dan melihat apakah ada perbaikan.
      Kalau masalahnya benar-benar Anda pedulikan, Anda harus menambahkan test.
    • Temuan keamanan juga kadang diperlakukan seperti itu.
    • Pengalaman saya sama juga di proyek perangkat lunak closed source.
  • John-David Dalton, pembuat lodash, [menulis begini tahun lalu][1]:

    Dalam penulisan ulang lodash, saya menyatakan kebangkrutan technical debt. Mulai dari nol dengan TypeScript dan Rollup. Tidak ada FP wrapper. Tren itu sudah selesai. Saya turut berduka untuk rekan-rekan orang yang membawa kerepotan itu ke codebase. Sama sekali tidak ramah untuk tim maupun manusia.
    Saya tidak tahu apakah akan persis 100% seperti itu, tetapi tampaknya cukup dekat.
    [1]: https://twitter.com/jdalton/status/1571863497969119238

    • “Tren itu sudah selesai. Saya turut berduka untuk rekan-rekan orang yang membawa kerepotan itu ke codebase. Sama sekali tidak ramah untuk tim maupun manusia,” katanya—bukankah penulis aslinya dia sendiri?
      Kedengarannya seperti ada orang lain yang menambahkan kompleksitas yang sedang ia kritik. Kalau memang dia sendiri yang memperkenalkannya, alih-alih terdengar seperti refleksi atau pelajaran, kesannya ia mengembangkan proyek mengikuti tren, lalu sekarang karena tren itu sudah selesai, saatnya pindah ke hal berikutnya.
    • FP wrapper itu apa, dan tren macam apa itu?
    • Saya tidak terlalu paham isu di sisi JavaScript, jadi dalam konteks ini apa masalahnya dengan functional programming?
  • Tindakan yang tepat
    Melihat beberapa PR di bagian atas daftar saja sudah ada hal-hal seperti ini:
    menambahkan satu kata di komentar, menambahkan file konfigurasi untuk promosi layanan pengembang, mengubah var menjadi let, mengubah perilaku fungsi inti yang sudah mapan, menghapus titik koma, dan sebagainya
    Sebagian besar mungkin dibuka dengan niat baik untuk memperbaiki library, tetapi pada titik tertentu bagi maintainer itu hanya menjadi spam, atau lebih buruk lagi, menjadi beban yang menambah rasa bersalah ketika makin tidak sempat diperhatikan
    Seperti selebritas yang mempekerjakan pengawal dan naik kelas satu atau jet pribadi untuk menghindari perhatian tanpa henti dan menjaga kesehatan mental, saya penasaran langkah apa yang bisa dilakukan untuk proyek open source terkenal

    • Secara pribadi, sebagai maintainer open source, saya paling suka PR untuk typo, perbaikan kalimat, dan refactoring otomatis. Hampir tidak butuh usaha untuk ditinjau, jadi hampir selalu saya merge dengan sangat cepat
      Yang paling lama adalah PR yang mengimplementasikan fitur besar. Karena perlu banyak review dan diskusi, saya jadi menunda untuk memeriksanya secara detail
    • Untuk beberapa waktu sempat ada tren membuka PR remeh di proyek-proyek terkenal. Menurut saya itu upaya untuk mengisi CV
    • Ada pengguna GitHub tertentu yang berulang kali mengirim PR ke beberapa proyek JavaScript yang hanya mengubah var menjadi let
      Terasa seperti sekadar mengisi profil GitHub
  • Kabar yang lebih besar adalah Lodash berpindah dari Node.js ke Bun: https://github.com/lodash/lodash/commit/97d4a2fe193a66f5f96d...

    • Wah
      Saya mulai tertarik memindahkan paket saya ke Bun, tetapi masih ragu karena khawatir soal kompatibilitas dan apakah Bun benar-benar akan terus bertahan. Saya juga pernah sedikit kena dampak “Modern Yarn”. Namun melihat lodash pindah, saya jadi ingin mempertimbangkannya lebih serius
    • Ini memang kabar besar. Apalagi mengingat meski baru-baru ini ada rilis v1.0, masih ada masalah performa di Windows
  • Saya berusaha menghindari sikap mengatur-atur developer open source soal cara menjalankan proyek mereka. Saya juga developer open source, dan saya kesal kalau orang lain melakukan itu kepada saya
    Namun jika saya adalah pengguna yang sudah menghabiskan cukup banyak waktu menulis issue dan membantu memecahkan masalah, atau orang yang mengerjakan perbaikan atau fitur baru lalu mengirim PR, saya rasa saat ini saya akan cukup kehilangan motivasi

    • Tapi kebanyakan pengguna hanya menghabiskan sedikit waktu untuk menulis issue. Sebagian besar laporan bug buruk sekali
    • Issue ditutup, bukan hilang. Kalau masih relevan, sepertinya bisa diminta lagi nanti
  • Mereka menutup 363 issue dengan label issue bankruptcy: https://github.com/lodash/lodash/issues?q=is%3Aissue+is%3Acl...
    PR juga 325 ditangani dengan cara yang sama: https://github.com/lodash/lodash/pulls?q=is%3Apr+is%3Aclosed...

  • Kebangkrutan issue itu nyata. Dari pengalaman pribadi, pada titik tertentu pemeliharaan open source menjadi sulit dijalankan bersamaan dengan hidup di dunia nyata
    Pekerjaannya gratis dan sering kali tidak diapresiasi. Tentu tidak selalu begitu. Masalahnya rumit, dan bersaing dengan tanggung jawab nyata seperti pekerjaan, keluarga, dan istirahat. Orang mudah kesal, secara rutin ingin berdebat, atau meminta kita membacakan dokumentasi untuk mereka. Kalau open source menjadi terkenal, tanggung jawab yang sangat besar juga ikut datang
    Saya memperkirakan akan ada keruntuhan besar dalam ekosistem open source ketika orang-orang yang memimpin proyek berkata “cukup” lalu pergi mengerjakan hal yang lebih penting

    • Saya mengerti itu. Belakangan saya bahkan mulai berpikir bahwa proyek pribadi yang tidak sepele lebih mirip kecanduan atau menyakiti diri sendiri daripada proyek sungguhan
      Namun ekosistem open source luar biasa tidak efisien. Ada lodash, underscore, dan begitu banyak library lain, padahal tidak semuanya perlu ada. Banyak juga library yang hanya melakukan satu hal, dan biasanya merupakan subset dari library-library seperti ini
      Sebagian besar hal seperti ini digunakan bersama minifier dan tree shaking, sehingga fitur yang tidak dipakai akan dihapus. Library berat pun mudah dioptimalkan dan sebagian besar tersusun dari bagian-bagian terpisah, jadi tidak perlu bersikeras memakai library ringan, sementara upaya pengembangan umumnya bertambah secara linear
      Kalau bukan karena programmer menyukai elegansi dan kesederhanaan di atas segalanya, dan selalu ingin menulis ulang sesuatu agar sedikit lebih baik, saya rasa open source tetap akan punya cukup tenaga meski semua orang hanya menghabiskan seperempat dari waktu yang mereka gunakan sekarang
  • Lodash adalah pustaka yang sangat bagus. Hampir di setiap proyek yang saya kerjakan, saya akhirnya memakainya sedikit banyak
    Namun seiring JavaScript makin baik, porsi penggunaan Lodash makin berkurang. Setiap kali memakainya, saya mengecek apakah ada fitur bawaan untuk hal yang ingin saya lakukan. Saya juga cukup sering memberi komentar di PR dengan tautan seperti “ini tidak perlu Lodash”
    Meski begitu, saya berharap ini bukan tanda mereka mulai menarik diri dari proyek ini

  • Pelacak isu punya dua kegunaan yang saling tumpang tindih. Yang satu adalah cara maintainer melacak pekerjaan yang harus mereka lakukan, dan yang lain adalah cara komunitas yang lebih luas serta pengguna melacak cacat pada perangkat lunak
    Deklarasi “kebangkrutan isu” masuk akal untuk kegunaan pertama, tetapi untuk kegunaan kedua, itu berarti menghapus informasi berharga tentang isu yang ada pada versi saat ini