RC RANDOM CHAOS

uv's speed wins Python, but its upgrade and outdated-package UX lags pnpm and Poetry

· via Hacker News

Original source

Uv is fantastic, but its package management UX is a mess

Hacker News →

Astral’s uv has displaced a stack of Python tooling on the strength of raw speed, but a Loopwerk post argues the maintenance-phase ergonomics fall well short of pnpm and Poetry. There’s no first-class uv outdated command; users reach for uv tree --outdated --depth 1, which dumps the whole top-level tree rather than just stale packages. Bulk upgrades go through uv lock --upgrade, and targeted upgrades require repeating --upgrade-package for each name instead of accepting a list.

The sharper complaint is the default version constraint. uv add writes lower bounds only (pydantic>=2.13.4), so a blanket upgrade can silently pull in every breaking major release across the transitive graph. pnpm and Poetry write caret-style constraints that keep updates inside the current major by default, which the author considers the safer baseline for application projects.

An appended correction softens the piece: uv pip list --outdated already filters to stale packages (it just lives under the pip-compat namespace), and add-bounds = "major" can be set once in pyproject.toml to make safer constraints the default. The author also concedes the no-upper-bound default is correct for libraries published to PyPI and that the critique applies to applications, where pinning costs nothing and avoids surprise major bumps.

Read the full article

Continue reading at Hacker News →

This is an AI-generated summary. Read the original for the full story.