2 poin oleh GN⁺ 2024-08-23 | 1 komentar | Bagikan ke WhatsApp

Pemikiran dan tulisan Armin Ronacher

Rye dan uv untuk Python packaging: Agustus adalah musim panen

  • Beberapa bulan lalu, pengelolaan alat packaging Rye diserahkan kepada Astral
  • Dalam beberapa bulan terakhir, tim Astral telah mengembangkan banyak alat untuk Python packaging
  • Pada rilis terbaru, uv menambahkan fitur seperti manipulasi file pyproject.toml, dukungan workspace, referensi paket lokal, dan instalasi skrip
  • uv juga dapat mengelola instalasi Python sehingga menjadi sangat mirip dengan Rye
  • Pengguna Rye perlu memperhatikan uv dan memberikan umpan balik

Presentasi di EuroPython

  • Baru-baru ini di EuroPython yang diadakan di Praha, ia mempresentasikan pandangannya tentang Python packaging dan pelajaran yang didapat saat membuat Rye
  • Tujuan alat packaging adalah menjadi alat terbaik yang digunakan semua orang
  • Python telah menjadi platform yang sangat populer berkat investasi dan perhatian pada AI dan ML
  • Ia ingin orang-orang yang belajar Python mengingat pengalaman pengembang yang hebat
  • Saat ini hal itu sulit karena terlalu banyak alat dan ketidakkonsistenan

Dominasi alat

  • Dominasi berarti sebagian besar investasi masuk ke satu stack
  • Alat seperti Rye seharusnya menghilang ketika alat yang dominan sudah mapan
  • uv kemungkinan besar akan menjadi alat tersebut
  • Pada akhirnya, Rye akan digantikan oleh uv

Perkembangan ekosistem packaging

  • Banyak alat packaging dibangun di atas perkembangan ekosistem Python
  • Telah ada banyak kemajuan seperti peralihan dari file setup.py ke eggs dan wheels, serta pengenalan standar metadata
  • Perkembangan Rust crates dan library Python telah memungkinkan hadirnya alat-alat ini

Langkah berikutnya bagi komunitas

  • Komunitas sebaiknya merekomendasikan lebih sedikit alat
  • Ada masa ketika ez_setup.py dan easy_install direkomendasikan
  • Saat ini yang direkomendasikan antara lain pip, pip-tools, poetry, dan PDM
  • Orang-orang yang memelihara proyek Python penting perlu mencoba uv dan mempertimbangkan apakah layak direkomendasikan

Pendanaan VC Astral

  • Perlu dipikirkan dampak pendanaan VC yang diterima Astral terhadap masa depan
  • Melihat kode dan kemampuan uv, bahkan dalam skenario terburuk sekalipun komunitas akan tetap lebih baik dibanding sebelum uv ada

Ringkasan GN⁺

  • Tulisan ini membahas perkembangan alat Python packaging dan peran komunitas
  • uv menawarkan banyak fitur dan kemungkinan besar akan menggantikan Rye
  • Komunitas perlu merekomendasikan lebih sedikit alat dan mencoba uv
  • Dampak pendanaan VC Astral terhadap masa depan perlu dipertimbangkan
  • Alat dengan fungsi serupa antara lain pip, poetry, dan PDM

1 komentar

 
GN⁺ 2024-08-23
Komentar Hacker News
  • Rilis terbaru uv sangat mempercepat proses rilis Home Assistant

    • Waktu rilis berkurang dari sekitar 2,5 jam menjadi sekitar 20 menit
    • Detail lebih lanjut bisa dilihat di blog pengembang Home Assistant
  • Awalnya berharap alat baru akan menyelesaikan masalah "packaging" Python, tetapi ternyata ini lebih tentang manajemen paket

    • Secara pribadi tidak pernah merasa ada masalah besar dengan manajemen paket Python
    • pip umumnya berfungsi dengan baik
  • Yang merepotkan adalah Python tidak mudah membungkus aplikasi menjadi file eksekusi

    • Di lingkungan produksi, sering terlihat git clone dan pembuatan virtualenv
    • Ini kurang baik dari sudut pandang keamanan
  • Memang ada masalah dalam packaging Python, tetapi sejauh ini dengan pip bawaan pun semuanya cukup berjalan baik

    • Perubahan besar sebelumnya adalah beralih dari virtualenv ke modul venv bawaan
    • Jika ingin serius mengelola dependensi, membangun monorepo seperti FAANG adalah pilihan yang baik
  • Karena penipuan VC di npm, akuisisi oleh Microsoft, dan status hukum nirlaba OpenAI, jadi enggan mempercayakan infrastruktur utama bahasa pemrograman kepada organisasi seperti itu

    • Kontributor individual luar biasa, tetapi masalahnya ada pada keselarasan finansial di tingkat organisasi
    • Lint cepat, pemeriksaan tipe, pemindaian kode, dan asisten PR bisa diganti kapan saja, tetapi alur instalasi dan repositori paket tidak demikian
  • Masalah alat-alat ini adalah otoritas

    • Karena tidak mendapat persetujuan dari pypa, situasinya berbeda dengan cargo
    • pypa gagal menyediakan solusi yang komprehensif
    • Bahkan 3-4 tahun lalu, poetry dan pipenv sempat terlihat akan menyelesaikan masalah
    • pypa seharusnya ikut terlibat dengan astral.sh, tetapi diragukan bisa melakukannya tanpa ingin mengendalikan
  • Armin berpendapat bahwa uv seharusnya mendominasi bidang ini, tetapi mengakui bahwa dukungan VC bisa menimbulkan masalah

    • Solusinya menurut dia adalah bahwa uv sangat mudah untuk di-fork
    • Namun fork justru menyebabkan lebih banyak fragmentasi
  • Di perusahaan, sedang mencoba memigrasikan software ke uv karena poetry terlalu lambat

    • Sudah membaca banyak dokumentasi, tetapi belum benar-benar melakukan banyak hal
    • Dulu migrasi ke poetry jauh lebih sederhana
    • uv masih mempertahankan banyak masalah paket Python yang sama
  • Bisa dimengerti jika orang-orang melewati putaran ini dan menunggu "manajer paket Python: kali ini benar-benar beres!" versi 2026

    • Para pengguna Nix tampaknya tetap puas
  • Ada orang-orang yang memang sangat bersemangat mengembangkan manajer paket

    • Jika situasi seperti ini terus berlanjut, setiap tahun akan muncul manajer paket baru