CLI to audit uv-managed dependency pins across a workspace
Project description
uvbump (distribution: uvbump-cli)
CLI helper that inspects a uv-managed project (or workspace) and reports which
dependencies can be bumped based on what is pinned in pyproject.toml, what is
installed in your lockfile environment, and what is currently available on
PyPI.
Quick start
- Install uv: https://docs.astral.sh/uv/.
- Install uvbump once published:
pip install uvbump-cli(oruv tool install uvbump-cli). - From a uv project root, run
uvbumpto print two tables:- Packages out of date: your pins lag behind the newest versions on PyPI.
- Packages can be bumped: installed versions differ from the versions pinned in
pyproject.toml.
$ uvbump --root .
Packages out of date:
Package Name Installed Version Project Version Newest Version Suggested Action
requests 2.32.3 2.31.0 2.32.3 Update package version
Packages can be bumped:
Package Name Installed Version Project Version Newest Version Suggested Action
requests 2.32.3 2.31.0 2.32.3 Bump package version in project specification
Usage
uvbump --root /path/to/project
Install and run as a uv tool
uv tool install uvbump-cli
uvbump --root /path/to/project
Examples:
# uv workspace (default)
uvbump --root .
# npm project
uvbump --kind npm --root path/to/frontend
# upgrade all dependencies (uv)
uvbump --root . --upgrade
# interactively choose upgrades (npm)
uvbump --kind npm --root path/to/frontend --upgrade --interactive --group-by package
# preview upgrade changes without writing files
uvbump --root . --upgrade --dry-run
Common flags:
--root(optional): path to the directory that containspyproject.tomlorpackage.json. Defaults to the current working directory.--kind(optional):uvornpm(default:uv).--timeout(optional): subprocess timeout in seconds for uv/uvx/npm calls.--upgrade: rewrite dependency versions to the newest available versions.--interactive: pick which dependencies to upgrade.--group-by(interactive only):workspaceorpackage(default:workspace).--dry-run: preview upgrade changes without writing files.--show-up-to-date: include dependencies that already match the newest version in upgrade selection.--version: print the current uvbump version.
The command uses uv export and uvx pip index versions under the hood for uv projects, so make sure uv is on your PATH.
Development
- Run locally with
uv run python -m uvbump --root examplesto exercise the sample workspace inexamples/. - Formatting/linting is handled by ruff; run
ruff checkandruff formatas needed.
Docker test harness
- Build an image that prepares custom mismatched environments:
docker build -t uvbump-tests . - Version scenarios are driven by Jinja templates:
- Edit
examples/version.envfor the pin you want inpyproject.toml.jinjafiles and the install versions you want in the environment. - On container start the entrypoint sources that env file, renders each
*.jinjaunderexamples/intopyproject.toml, and installs the requested runtime packages.
- Edit
- Run a sample check:
docker run --rm -e VERSION_ENV=/app/examples/version.env uvbump-tests python -m uvbump --root examples - Opt out of installs with
SKIP_INSTALL=1, skip template rendering withSKIP_TEMPLATE_RENDER=1, or skip the whole version step withSKIP_VERSION_CONFIG=1.
Building & publishing to PyPI
- Build artifacts:
uv build(uses Hatchling under the hood). - Verify contents: inspect
dist/for the wheel and sdist. - Publish (after configuring credentials):
uv publish --token <pypi-token>orpython -m twine upload dist/*.
The project metadata lives in pyproject.toml; update the version there before each release.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file uvbump_cli-1.5.0.tar.gz.
File metadata
- Download URL: uvbump_cli-1.5.0.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e09aeb1c11dfc4ed49259a8af6469771f25fc5afe1725ecf395b68e08c992d3
|
|
| MD5 |
31f734e9bc1fe869641b20158665ec57
|
|
| BLAKE2b-256 |
252b5afce07e6f42e2aac34a1a93e2a20bfa7899cb4e2c647dfb3d4684743b3e
|
File details
Details for the file uvbump_cli-1.5.0-py3-none-any.whl.
File metadata
- Download URL: uvbump_cli-1.5.0-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a55e35a1a66178856f9960611bb3af493e26709993b772ffa5b9fbb9bc2b25e7
|
|
| MD5 |
18e36495c34cd13c3659acc06716c558
|
|
| BLAKE2b-256 |
416e77f66515d19f5c1b1a390f7f4160ba881f9655d82ac74f787fcf6090932d
|