uv 0.12.7 додав cross-platform resolution і захист кешу від підміни архівів
Менеджер Python-проєктів підтримав нові Linux-архітектури, безпечніше перевіряє source archives і тестує кеш із дедуплікацією wheel-пакетів.

uv 0.12.7 став помітнішим оновленням, ніж підказує номер патча. Менеджер Python-проєктів навчився будувати залежності одразу для кількох платформ, підтримав три додаткові Linux-архітектури, посилив перевірку архівів і додав експериментальний кеш із дедуплікацією wheel-пакетів. Для команд, які збирають один lock-файл для різних серверів і контейнерів, це означає менше ручних винятків. Але частина можливостей поки працює лише в preview-режимі, тому без тестування в CI вмикати їх у критичному конвеєрі зарано.

Один розрахунок залежностей для кількох платформ
Головна практична зміна — cross-platform dependency resolution тепер розуміє Linux на s390x, ppc64le і loongarch64. Раніше екзотичніші архітектури часто змушували окремо перевіряти маркери середовища або підтримувати різні набори обмежень. Тепер uv може врахувати ці цілі під час загального розв’язання графа залежностей.
Це не гарантує, що будь-який Python-пакет запрацює на новій архітектурі. Якщо автор не випускає відповідний wheel, збірка все одно перейде до source distribution і вимагатиме компілятора, системних бібліотек та коректного build backend. Тому після оновлення варто не лише перебудувати lock-файл, а й запустити реальну інсталяцію на кожній цільовій платформі.
Кеш стає компактнішим і безпечнішим
Preview-функція content-addressed-cache обчислює хеш каталогу розпакованого wheel і дозволяє кільком однаковим результатам посилатися на одне фізичне представлення. Це має скоротити дублювання, коли той самий пакет потрапляє до різних середовищ або походить із дзеркал. Виграш залежатиме від структури проєктів і файлової системи, а сам режим ще не оголошений стабільним.
Паралельно uv тепер відхиляє source archives із неправильним хешем до того, як збереже розпакований вміст у постійний кеш. Це важливий порядок операцій: пошкоджений або підмінений архів не має залишати слідів, які випадково використає наступний запуск. Перевірка доповнює, але не замінює фіксацію хешів у lock-файлі, контроль приватного індексу та регулярне оновлення залежностей.
Практичний висновок: після переходу на 0.12.7 очистіть тестовий кеш, повторіть інсталяцію з нуля та порівняйте lock-файл. Так легше відокремити реальні зміни резолвера від артефактів попередніх збірок.
Керовані Python-інсталяції оновлюються коректніше
Якщо для тієї самої версії Python доступна новіша збірка, uv тепер замінює керовану інсталяцію під час upgrade. Для користувача номер Python може не змінитися, проте всередині з’являться виправлення пакування або платформи. У корпоративному середовищі це варто врахувати в аудиті: ідентичний рядок версії ще не означає байтово ідентичний runtime.
Ще одне виправлення стосується Azure Storage. Якщо анонімне завантаження з endpoint, визначеного через UV_AZURE_ENDPOINT_URL, відхиляється, клієнт повторює запит із налаштованими обліковими даними. Це полегшує роботу з приватними сховищами, але секрети все одно не повинні потрапляти до командного рядка, логів CI або загального конфігураційного файлу репозиторію.
Що перевірити перед оновленням
- Оновити uv у тестовій гілці й переконатися, що lock-файл не отримав неочікуваних змін.
- Запустити інсталяцію на кожній заявленій архітектурі, а не обмежуватися успішним розрахунком залежностей.
- Вмикати content-addressed cache спочатку в некритичному CI та виміряти місце, швидкість і поведінку очищення.
- Для приватного Azure endpoint перевірити, що credentials надходять зі сховища секретів і не друкуються у verbose-логах.
- Зберігати атестації релізних артефактів як додатковий сигнал походження, а не як заміну власній політиці supply-chain.
У релізі також прибрано спеціальну поведінку для файлів Pyrex/Cython із розширенням .pyx. Проєктам зі старими сценаріями пакування варто перевірити збірку окремо. Загалом 0.12.7 покращує одночасно портативність, цілісність кешу й роботу приватних сховищ, однак найбільш цікава оптимізація кешу залишається експериментальною.
Джерело та права
Матеріал є самостійним українським перекладом-переказом release notes uv 0.12.7, опублікованих 27 серпня 2026 року командою Astral. Текст і код офіційного репозиторію доступні на вибір за MIT License або Apache License 2.0. Перекладено, адаптовано й доповнено редакцією «Бібліотеки програміста». Обкладинка створена редакцією за допомогою AI і не входить до першоджерела.
Матеріал перекладено, переказано та доповнено редакцією українською мовою.
Читайте далі — ми вже розбираємо наступну важливу тему.


