Skip to main content

Show uv outdated packages in a nicer way

Project description

uv-outdated

Show outdated packages in your uv projects with better formatting and dependency context.

While uv pip list --outdated shows which packages have newer versions available, uv-outdated adds useful context like dependency relationships, constraint information, and organizes output by dependency groups.

Usage

Run in any directory with a uv.lock file:

uvx uv-outdated [OPTIONS]

Options

  • --show-headers/--no-headers: Include table headers (default: no headers)
  • --why/--no-why: Show constraint and dependents columns (default: show)
  • --direct/--all: Only show direct dependencies (default: all)
  • --transitive/--all: Only show transitive dependencies (default: all)
  • --group-by-ancestor: Group transitive dependencies under their direct ancestors

Example Output

Package         Current  Latest   Constraint  Dependents      Description
requests        2.28.0   2.31.0   >=2.25.0    mypy, pytest   HTTP library for Python
urllib3         1.26.0   2.0.7    <2.0.0      requests        HTTP library with thread-safe connection pooling

[group:dev]
pytest          7.0.0    8.0.0    ^7.0.0      pytest-cov     Simple and scalable testing
pytest-cov      4.0.0    5.0.0                               Coverage plugin for pytest

What it shows you

Dependency groups: Packages are organized by their groups from pyproject.toml (main dependencies, optional dependencies, development groups).

Why packages can't upgrade:

  • Yellow versions indicate the package is constrained by version specifiers
  • Red versions show packages that can be freely upgraded
  • The Constraint column shows the limiting specifier

Dependency relationships: The Dependents column shows which other packages require each outdated package.

Hierarchical view: With --group-by-ancestor, transitive dependencies are grouped under their direct dependency parents.

How it works

The tool combines information from:

  • uv.lock for exact versions and dependency relationships
  • pyproject.toml for dependency groups and constraints
  • uv pip list --outdated for available updates
  • Site-packages metadata for descriptions (when available)

It works even when your virtual environment isn't activated or available.

Requirements

  • Python 3.12+
  • A project with uv.lock
  • Optional: pyproject.toml for dependency group information

Why this exists

uv pip list --outdated gives you the basics, but when you're managing a project with many dependencies across different groups, it helps to see:

  • Which outdated packages are your direct dependencies vs. transitive
  • Why certain packages can't be upgraded (version constraints)
  • How dependencies relate to each other
  • Packages organized by their purpose (dev, test, optional features, etc.)

This is particularly useful for larger projects where understanding the dependency tree matters for upgrade decisions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uv_outdated-1.0.3.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uv_outdated-1.0.3-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file uv_outdated-1.0.3.tar.gz.

File metadata

  • Download URL: uv_outdated-1.0.3.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uv_outdated-1.0.3.tar.gz
Algorithm Hash digest
SHA256 c9e8ec1a38f22af1e25480e0d53c45aeff31b6204ff7c98bcc9f6bbe83a180be
MD5 1531bd2b60b1dd58d717493474f4d9e4
BLAKE2b-256 badfe5e059542026c26ff8632753184698b3575d5f15f5480f7452d226b71eb1

See more details on using hashes here.

File details

Details for the file uv_outdated-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: uv_outdated-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.16 {"installer":{"name":"uv","version":"0.9.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uv_outdated-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a1635ece3e69658b24eedbdd7e0bef8efbb6c129d1285211099e53ea2f4eec5b
MD5 3be1b461a9d505c772d79cf64cf4f361
BLAKE2b-256 3093bcee90145f2fa27cc5d69363c04488b129b8d342014c4a5b75fb3a5763eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page