Зараз читаютьПрактичні новини про код, AI та технології — без інформаційного шуму

uv 0.12.11 перевіряє архіви до збірки та прискорює встановлення Python-пакетів

Новий uv звіряє source archive з uv.lock ще до читання metadata та запуску build backend, а також прискорює локальні wheel і оновлення середовищ.

uv 0.12.11 перевіряє архіви до збірки та прискорює встановлення Python-пакетів

uv 0.12.11 посилює перевірку ланцюга постачання Python-пакетів і прискорює встановлення wheel у вже створені середовища. Source archive тепер звіряється з хешем у uv.lock до того, як інструмент читає metadata або запускає build backend. Це важливий порядок: потенційно підмінений архів не отримує шанс виконати код збірки до виявлення невідповідності.

Редакційна AI-ілюстрація перевірених Python-пакетів, що встановлюються у захищене середовище; не входить до першоджерела.
Редакційна AI-ілюстрація перевірки залежностей. Вона не входить до першоджерела і не містить логотипів.

Хеш перевіряється до виконання коду

Source distribution часто потребує запуску backend, щоб згенерувати metadata або wheel. Якщо перевіряти цілісність після цього, захист спрацьовує запізно. У 0.12.11 uv спочатку порівнює архів з даними lock-файлу, а вже потім дозволяє подальшу обробку. Реліз також коректно застосовує supplied hashes до registry requirements, зафіксованих через ===, у режимах --verify-hashes і --require-hashes.

Для версій із local suffix інструмент може використати хеш публічної версії, якщо окремого exact hash немає. Команді все одно варто розуміти походження локальної збірки: рівність базової версії не гарантує однаковий вміст.

PEP 751 і pylock.toml

Експорт у pylock.toml тепер генерує відсутні хеші артефактів, щоб файл відповідав PEP 751. Якщо таблиця artifact hash порожня, uv показує попередження; у майбутньому така структура буде відхилена. Це дає командам час виправити pipeline без раптового падіння після наступного оновлення.

Lock-файл приносить користь лише тоді, коли він описує не тільки назви й версії, а точні артефакти. Інакше registry може повернути інший файл із тим самим номером версії, а повторювана збірка перетвориться на припущення.

Чому встановлення стало швидшим

Під час перезапису існуючих файлів uv прибрав створення тимчасової директорії для кожного atomic hard-link, symlink або reflink. При злитті скопійованих wheel з готовим environment замість окремих директорій використовуються сусідні тимчасові файли. Локальні wheel читаються позиційно без спільного lock на ZIP cursor, а ZIP readers і буфери повторно використовуються.

Команда uv pip install --no-deps більше не запускає зайвий resolution та перевірку транзитивних залежностей, якщо запитані пакети вже встановлені. На великих CI-образах дрібні оптимізації складаються у помітне скорочення часу.

Виправлення для Windows і робочих середовищ

  • PowerShell-активація virtual environment працює з UNC та WSL paths.
  • Пробіли навколо записів у .python-version і .python-versions обрізаються.
  • Команди uv add/remove --no-sync та uv add --frozen не показують недоречне попередження про VIRTUAL_ENV.
  • uv python list попереджає й продовжує роботу, якщо один interpreter не вдалося опитати.

Як оновлюватися безпечно

Спочатку слід перевірити CI з наявним uv.lock та експортованим pylock.toml. Попередження про порожні hash tables варто виправити одразу. Для приватних source archive потрібно переконатися, що lock-файл містить актуальні хеші, а збірка не покладається на перевипущений файл під тією самою версією.

Практичний висновок: головна зміна uv 0.12.11 — не швидкість, а правильна межа довіри: архів перевіряється до запуску backend. Продуктивні оптимізації роблять цей захист дешевшим для щоденного CI.

Джерело та права

Матеріал є самостійним українським перекладом-переказом офіційних release notes uv 0.12.11, опублікованих 8 вересня 2026 року. Проєкт доступний за подвійною ліцензією MIT або Apache-2.0. Перекладено й адаптовано редакцією «Бібліотеки програміста». Обкладинка створена редакцією за допомогою AI та не входить до першоджерела.

Першоджерело:Astral uv ↗
Автор:Astral та учасники uv
Ліцензія:MIT OR Apache-2.0 ↗

Матеріал перекладено, переказано та доповнено редакцією українською мовою.

</>

Читайте далі — ми вже розбираємо наступну важливу тему.

Далі за темою

Схожі матеріали