
Gentoo-nun tərtibatçısı Python layihələrinə uv-build istifadəsini dayandırmağı tələb edir
Gentoo-nun tərtibatçısı Python paketlərini qoruyanlara, uv-build-i qurma arxa planı kimi istifadə etməkdən imtina etməyi tələb edir. Səbəb kimi Rust-ə böyük asılılığı, tez-tez yeni buraxılışları və portativlik problemlərini göstərir.
Çağırış
Mixail Qurny, Gentoo-nun tərtibatçısı, Python paketlərini qoruyanlardan uv-build-i qurma backend-i kimi istifadə etməmələrini tələb edən bir çağırış dərc etdi. O, tənqidin özünü uv-i və ya Astral-ın, xeyirxah və məsuliyyətli upstream ilə təsvir etdiyi digər alətləri qovmadığını vurğulayır. Onun sözünə görə, problem xüsusilə uv-build backend-inin Gentoo kimi downstream distributivlər üçün faydası çatışmazlıqlarından az olmadığındadır. O, hələ bir çox Gentoo paketinin keywords itirdiyini qeyd edir, çünki əsas asılılıqlardan biri artıq uv-build ilə bağlıdır.
Ölçü və qurma yükü
Əsas problem ondan ibarətdir ki, uv-build böyükdür və Rust ilə yazılıb. 0.13.0 versiyası üçün onun wheel-ləri platformaya görə 1,2 MiB-dən 1,5 MiB-dək dəyişir, halbuki kiçik təmiz Python backend-i olan flit-core-in göstəricisi təxminən 45 KiB-dır. Gentoo paketləri qaydan qurduğu üçün hər istifadəçi uv-build-i yenidən qurmalıdır, layihə isə kifayət qədər tez-tez yeni versiyalar yerə salır: məqalənın yazılmasına qədər 30 gün ərzində 12 buraxılış olub. Qurny qiymətləşdirir ki, paketin bir buraxılışının qurulması üçün uv-build-in işə salınmasına hər 100 ms-dən Gentoo istifadəçiləri ümumiliklə bir çox saat yeni uv-build versiyalarının yenidən qurulmasına sərf edirlər.
Portativlik problemləri
Qurny bildirir ki, qurma vaxtı ən böyük problem deyil, əsas problem portativlikdir. Python işlək C kompilyatoru olan demək olar ki, hər yerdə işləyə bilər, halbuki Rust-in dəstəklədiyi platformalar siyahısı yavaş genişlənir. Rust kompilyatoru mövcud olsa belə, uv müxtəlif problemlərə görə işləməyə bilər: asılılıqlardakı qusurlardan, məsələn rustix::fs və onun asılılıqlarının SPARC-ı buraxmasından, toolchain-in çatmayacaq qədər böyük icra fayllarına qədər. Gentoo-nun uv ebuild-i artıq iki hack-e malikdir ki, uv 32-bit platformalarında qurulsun. Ümumiyyətlə dəstəklənməyən platformalar üçün yeni platformanın əlavə edilməsi və saxlanması tamamilə ayrı bir bölmə sayılır və o, kod dəyişikliklərinə görə bir çox problemə səbəb ola bilər.
Alternativlər üçün arqumentlər
Qurny qəbul edir ki, uv-build istifadəsinə qarşı iki arqument var. Birincisi layihədə uv ilə ardıcıllıqla bağlıdır ki, onu rədd edir, çünki PEP 517 deməkdir ki, istənilən backend hər hansı frontend ilə işləyir, buna görə flit-core və ya hatchling problemə olmadan uv və ya başqa hər hansı alətlə işləyə bilər. İkincisi isə səmərəlilikdir ki, onun sözünə görə təxminən 100 ms təşkil edir və 1,5 MiB wheel-in endirilməsi üçün lazım olan vaxtı yenidən əvəz edə bilər. O, bildirir ki, backend-i yalnız layihə tərtibatçıları, köməkçilər, CI/CD axınları, downstream paketləri yaradıcıları və qaynaq distributivlərinin istifadəçiləri istifadə edir, bütün adi istifadəçilər isə wheel-lərdən istifadə edir. Bu qruplardan qaynaq distributivlərinin istifadəçiləri ən böyük və ən çox zərər çəkən qrupdur və istənilən səmərəlilik qazancı uv-build-in qurulmasına sərf olunan vaxtda itirilir.
Mənbələr: Lobsters
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.