uv is praised for its speed and Python toolchain management, but its package management UX has notable shortcomings compared to tools like pnpm and Poetry. Key issues include: no dedicated `uv outdated` command (requiring the verbose `uv tree --outdated --depth 1` instead), unsafe version constraints by default (no upper bounds, unlike pnpm's caret or Poetry's range syntax), and an ergonomically poor upgrade command that requires repeating `--upgrade-package` for each package. A new `--bounds` flag offers safer constraints but is opt-in and still in preview. The author calls for a dedicated outdated command, a more ergonomic update command, and safe-by-default version constraints.

5m read timeFrom loopwerk.io
Post cover image
Table of contents
Finding outdated packagesUnsafe version constraints by defaultThe bad UX of the upgrade commandThere is hope: the bounds flagWhat I’d like to see
1.1K Impressions