Voydevich
uv

Що нового в uv 0.13

Реліз uv 0.13 робить Python 3.15 стандартною стабільною версією, переходить на нативні інтерпретатори на Windows ARM64 та впроваджує низку ламаючих змін.

Реліз від 9 жовтня 2026 · оновлено 8 листопада 2026

Головне

  • Python 3.15 став стандартною стабільною версією для автоматичних завантажень
  • На Windows ARM64 тепер надається перевага нативним інтерпретаторам замість x86_64
  • Враховується директива --require-hashes у підключених constraints-файлах
  • Заборонено editable-залежності в підключених файлах обмежень
  • Стабілізовано використання tar-codec для обробки tar-архівів за замовчуванням

Коротко

У релізі uv 0.13 стандартною стабільною версією Python стає 3.15, яка тепер обирається за замовчуванням під час завантаження інтерпретаторів без фіксованої версії. Оновлення містить кілька ламаючих змін, спрямованих на коректність обробки залежностей, сумісність із pip та оптимізацію роботи на платформі Windows ARM64. Також оновлено внутрішній формат кешу для прискорення подальшої роботи та додано нові preview-можливості.

Нові можливості

Підтримка версій Python та архітектур

  • Python 3.15 за замовчуванням: версію за замовчуванням змінено з 3.14 на 3.15. Команди на зразок uv python install, uv venv або uvx python завантажують Python 3.15, якщо у системі немає відповідного інтерпретатора і не вказана інша версія. Доступні CPython 3.15.0, а в наступних мінорних патчах додано версії аж до 3.15.2, CPython 3.16.0a1, оновлення гілок 3.11–3.14 та релізи PyPy 3.11.17 і 3.12.15.
  • Підтримка Linux SPARC: додано сумісність із платформою Linux SPARC через механізм фолбеку за відсутності клонування файлової системи та детального обліку кешу.

Керування залежностями та проектами

  • Хеші для build-залежностей у preview: прапорець --require-build-hashes дозволяє вимагати перевірку хешів для залежностей збірки, включно з транзитивними.
  • Підтримка PEP 825 (wheel variants) у preview: за наявності експериментальної опції wheel-variants додано розбір міток варіантів у назвах коліс, читання метаданих індексу, ранжування варіантів згідно зі статичними провайдерами PEP 850 та детекцію можливостей GPU NVIDIA.
  • Оновлення робочих просторів: утиліта uv workspace metadata отримала параметр --output-version для вибору версії схеми, а також тепер звітує про всі встановлені пакунки, включно з тими, що залишилися поза активним резолвом.
  • Дедуплікація в uv audit: у preview-режимі утиліта uv audit відображає аліаси записів з бази OSV як одну вразливість.

Ламаючі зміни

  • Зміна стандартної версії Python: перехід з 3.14 на 3.15 впливає на завантаження, коли версія не зафіксована. Щоб зберегти попередню версію, необхідно явно передавати --python 3.14 (наприклад, у uv venv --python 3.14) або зафіксувати її у проєкті через uv python pin 3.14.
  • Врахування --require-hashes у constraints-файлах: директива --require-hashes у файлах обмежень, підключених через -c із файлу requirements, більше не ігнорується. Тепер uv вимагає наявності хешів для всіх залежностей у такому середовищі інсталяції, що може призвести до помилок збірки за їх відсутності.
  • Пріоритет нативного Python на Windows ARM64: білди uv для ARM64 на Windows тепер віддають перевагу нативним інтерпретаторам ARM64 (aarch64) замість емульованого x86_64. Повернутися до попередньої поведінки можна за допомогою змінної UV_PYTHON_ARCH=x86_64, явної назви інтерпретатора (наприклад, cpython-3.14-windows-x86_64) або конфігурації python-arch: x86_64 в setup-uv.
  • Відхилення editable-залежностей у файлах обмежень: рядки з -e у підключених через -c файлах constraints тепер завершуються помилкою, як у pip, замість безшумного ігнорування. Такі залежності слід переносити до файлів вимог із -r або передавати через --editable.
  • Відмова від патчу distutils для Python 3.10+: файли _virtualenv.py та _virtualenv.pth більше не записуються у нові віртуальні середовища для Python 3.10 і новіших версій, що зменшує накладні витрати на старті. Для Python 3.9 і старіших патч зберігається. Зміна стабілізує попередній preview-прапорець no-distutils-patch.
  • Обробка параметрів файлів залежностей як єдиного шляху: значення параметрів --constraint, --override, --exclude та --build-constraint більше не розбиваються пробілами при передачі списку в лапках, а сприймаються як один шлях (що дозволяє пробіли у назвах файлів). Для кількох файлів параметр слід повторювати (наприклад, -c a.txt -c b.txt). Змінні середовища UV_CONSTRAINT, UV_OVERRIDE, UV_EXCLUDE та UV_BUILD_CONSTRAINT продовжують приймати розділені пробілами значення.
  • Використання tar-codec за замовчуванням: замість бібліотеки astral-tokio-tar uv тепер використовує tar-codec для розпакування архівів, створення source distributions через uv_build та читання метаданих для uv publish. Новий бекенд застосовує суворішу валідацію і може відхиляти архіви з непідтримуваними розширеннями. Повернути попередню поведінку можна встановленням змінної UV_LEGACY_TAR_BACKEND=1.
  • Захист від перезапису в uv build --clear: заборонено вказувати вихідні каталоги, що містять джерела збірки чи ведуть до них через symlink. Раніше це могло призводити до випадкового видалення проєкту або вихідного коду перед збіркою.

Виправлення та покращення

  • Оновлення сертифікатів: оновлено вбудовані кореневі сертифікати через webpki-root-certs 1.0.10 та rustls-webpki 0.103.16 із блокуванням скомпрометованих проміжних ключів eMudhra.
  • Оптимізація кешу та пам'яті: оновлено внутрішній формат кешу uv. Зменшено використання оперативної пам'яті під час резолву великих робочих просторів, складних дерев залежностей із маркерами та при блокуванні великих проєктів.
  • Зменшення розміру бінарників: оптимізовано розмір виконуваних файлів uv та коліс uv-build.
  • Прискорення парсингу та експорту: прискорено експорт через uv export для графів із додатковими екстра-залежностями (extras), оптимізовано парсинг Simple API, метаданих PyPI та файлів конфігурації TOML.
  • Коректне очищення та конкурентність: усунуто можливість збою створення оточень і синхронізації при паралельному виконанні uv cache clean, а також додано захист від видалення сторонніх файлів поруч із каталогами сховища при деінсталяції інструментів і керованого Python.
  • Безпека облікових даних: попереджено потрапляння логінів та паролів із URL до діагностичних повідомлень чи збережених метаданих.
  • Сумісність uv pip: параметри uv pip check та uv pip install --strict тепер ігнорують верхні обмеження Requires-Python аналогічно до процесу резолву.

Огляд підготовлено автоматично за офіційними release notes за допомогою ШІ та перевірено на відповідність джерелу. Точні формулювання дивіться в оригіналі. Як ми працюємо