2 puan yazan GN⁺ 2024-08-23 | 1 yorum | WhatsApp'ta paylaş

Armin Ronacher’in düşünceleri ve yazısı

Python paketleme için Rye ve uv: Ağustos hasat mevsimi

  • Birkaç ay önce, Rye paketleme aracının yönetimi Astral’a devredildi
  • Astral ekibi son birkaç ayda Python paketleme için birçok araç geliştiriyordu
  • Son sürümlerde uv; pyproject.toml dosyası düzenleme, workspace desteği, yerel paket referansları ve script kurulumu gibi özellikler ekledi
  • uv, Python kurulumlarını da yönetebildiği için Rye’a çok benzemeye başladı
  • Rye kullananların uv’yi yakından takip etmesi ve geri bildirim vermesi gerekiyor

EuroPython’daki sunum

  • Kısa süre önce Prag’da düzenlenen EuroPython’da Python paketleme hakkındaki görüşlerini ve Rye’ı geliştirirken öğrendiği dersleri anlattı
  • Paketleme araçlarının hedefi, herkesin kullandığı en iyi araç haline gelmek
  • Python, yapay zeka ve ML’ye yönelik yatırım ve ilgi sayesinde son derece popüler bir platform haline geldi
  • Python öğrenenlerin harika bir geliştirici deneyimini hatırlamasını istiyor
  • Şu anda çok fazla araç ve tutarsızlık nedeniyle işler zorlaşıyor

Araçların hâkimiyeti

  • Hâkimiyet, yatırımların büyük bölümünün tek bir yığına yönelmesi anlamına geliyor
  • Rye gibi araçlar, baskın bir araç yerleştiğinde ortadan kalkmalı
  • uv’nin o araç olma ihtimali yüksek
  • Sonunda Rye, uv ile değiştirilecek

Paketleme ekosisteminin gelişimi

  • Birçok paketleme aracı, Python ekosistemindeki gelişmelerin üzerine inşa edildi
  • setup.py dosyalarından eggs ve wheels’a geçiş, metadata standartlarının devreye girmesi gibi pek çok ilerleme yaşandı
  • Rust crates ile Python kütüphanelerinin gelişimi bu araçları mümkün kıldı

Topluluğun sonraki adımı

  • Topluluk daha az sayıda araç önermeli
  • Bir zamanlar ez_setup.py ve easy_install önerilen dönemler vardı
  • Bugün ise pip, pip-tools, poetry, PDM ve benzerleri öneriliyor
  • Önemli Python projelerini sürdürenlerin uv’yi denemesi ve önerip önermeyeceklerini değerlendirmesi gerekiyor

Astral’ın VC fonu

  • Astral’ın VC fonu almasının gelecekte ne anlama gelebileceği düşünülmeli
  • Koda ve uv’nin sunduğu işlevlere bakıldığında, en kötü senaryoda bile topluluk uv ortaya çıkmadan öncekinden daha iyi durumda olacak

GN⁺ özeti

  • Bu yazı, Python paketleme araçlarının gelişimini ve topluluğun rolünü ele alıyor
  • uv çok sayıda özellik sunuyor ve Rye’ın yerini alma ihtimali yüksek
  • Topluluk daha az araç önermeli ve uv’yi denemeyi düşünmeli
  • Astral’ın VC fonunun gelecekte yaratacağı etkiler dikkate alınmalı
  • Benzer işlevler sunan araçlar arasında pip, poetry, PDM ve diğerleri bulunuyor

1 yorum

 
GN⁺ 2024-08-23
Hacker News yorumu
  • uv'nin son sürümü, Home Assistant'ın sürüm yayımlama sürecini büyük ölçüde kısalttı

    • Sürüm süresi yaklaşık 2,5 saatten yaklaşık 20 dakikaya düştü
    • Daha fazla ayrıntı Home Assistant geliştirici blogunda bulunabilir
  • Başta yeni bir aracın Python "packaging" sorununu çözeceği umuluyordu, ancak aslında mesele paket yönetimiyle ilgili

    • Kişisel olarak Python paket yönetiminde büyük bir sorun yaşamadım
    • pip genelde iyi çalışıyor
  • Python'da uygulamaları yürütülebilir dosya olarak kolayca paketleyememek rahatsız edici

    • Prodüksiyon ortamında sık sık git clone ve virtualenv oluşturulduğunu görüyorum
    • Bu güvenlik açısından iyi değil
  • Python packaging'de sorunlar var, ama temel pip ile de işler epey iyi yürüdü

    • Asıl büyük değişim, virtualenv'den yerleşik venv modülüne geçişti
    • Bağımlılık yönetimini ciddiye alacaksanız, FAANG gibi bir monorepo kurmak iyi olur
  • npm VC dolandırıcılığı ve Microsoft satın alması, ayrıca OpenAI'ın hukuki kâr amacı gütmeyen statüsü nedeniyle, ana dil altyapısını bu tür kuruluşlara emanet etmek konusunda isteksizlik var

    • Bireysel katkıcılar harika, ancak sorun kuruluş düzeyindeki finansal hizalanma
    • Hızlı lint, type check, kod tarama ve PR asistanları her zaman değiştirilebilir, ama kurulum akışı ve paket depoları öyle değil
  • Bu araçların sorunu otorite

    • pypa onayı almadığı için cargo'dan farklı
    • pypa kapsamlı bir çözüm sunamadı
    • Daha 3-4 yıl önce poetry ve pipenv'in sorunu çözeceği düşünülüyordu
    • pypa'nın astral.sh'ye katılması gerekiyor, ama bunu kontrol olmadan yapabilir mi şüpheli
  • Armin, 'uv'nin bu alana hakim olması gerektiğini savunuyor, ancak VC desteği nedeniyle sorun çıkabileceğini de kabul ediyor

    • Onun çözümü, 'uv'nin çok kolay fork edilebilir olması
    • Ancak fork'lar daha fazla parçalanmaya yol açıyor
  • Şirkette poetry'nin yavaşlığı nedeniyle yazılımı uv'ye taşımaya çalışıyoruz

    • Çok sayıda doküman okudum, ama pratikte pek bir şey yapmadım
    • Daha önce poetry'ye geçiş çok daha basitti
    • uv hâlâ Python paketlerinin birçok sorununu koruyor
  • İnsanların bu turu atlayıp 2026'daki "Python paket yöneticileri: bu kez gerçekten çözdük!" sürümünü beklemesini de anlamak mümkün

    • Nix kullanıcıları ise hâlâ memnun
  • Paket yöneticisi geliştirmeye tutkuyla bağlı insanlar var

    • Bu durum sürerse her yıl yeni bir paket yöneticisi çıkacak