← На главную

uv от Astral: нет uv outdated, обновление зависимостей небезопасно

21.05.2026 20:56 · hackernews

uv от Astral — штука быстрая и удобная для старта, но поддержка проектов в нём превращается в головную боль. Всё упирается в UX. Начать новый проект с uv легко, а вот рутинное обновление зависимоций превращается в квест.

Первая проблема — нет команды uv outdated. В JavaScript я просто запускаю pnpm outdated и вижу чистый список устаревших пакетов. В uv приходится запоминать громоздкое uv tree --outdated --depth 1. И оно выводит всё дерево, а не только устаревшее. Если у тебя 50 зависимостей и только две устарели, ты всё равно пролистываешь 50 строк. У Poetry команда poetry show --outdated хотя бы показывает только то, что нужно.

Вторая и главная претензия — опасные версионные ограничения по умолчанию. pnpm и Poetry ставят безопасные рамки (например, ^1.23.4 или >=1.23.4,<2.0.0), защищая от мажорных изменений. uv же при добавлении пакета пишет pydantic>=2.13.4 вообще без верхней границы. В глазах uv версии 2, 3 и 100 одинаково хороши. Это значит, что обновления по умолчанию небезопасны — ты подписываешься на все ломающие изменения сразу.

А команда для обновления — uv lock --upgrade. Почему не uv update? Дизайн CLI выглядит так, будто его писали для машин, а не для людей. И uv lock --upgrade — это ядерная опция: обновит всё до последних версий, включая глубокие вложенные зависимости, наплевав на SemVer. Когда ты понимаешь риск и хочешь обновить только конкретные пакеты, начинается ад. В pnpm просто pnpm update pydantic httpx uvicorn. В uv — повторяй --upgrade-package для каждого пакета: uv lock --upgrade-package pydantic --upgrade-package httpx --upgrade-package uvicorn. Утомительно.

Хорошая новость — недавно появился флаг --bounds major для uv add. Он ставит защитное ограничение <3.0.0. Но это пока опциональная preview-фича, про которую надо помнить каждый раз. Пока это не станет поведением по умолчанию, пользователям остаётся либо вручную править pyproject.toml, либо жить в страхе перед uv lock --upgrade. Автору не хватает нормальной команды uv outdated, эргономичного update без повторяющихся флагов и безопасных ограничений по умолчанию.

Читать оригинал →