bumpuv
English | 日本語
A CLI tool similar to npm version and uv version --bump written in Python.
uv version --bump with added git processing.
Reference: npm-version
Performs npm version-like operations on pyproject.toml files for Astral uv (and poetry, etc. PEP 621 compliant tools). Primarily used for triggering GitHub Actions.
Installation and Usage
# Using uv
uv add bumpuv --dev
uv run bumpuv <options>
# Or
uvx bumpuv <options>
# Or
uv tool install bumpuv
bumpuv <options>
# Using pip
pip install bumpuv
bumpuv <options>
# Using poetry
poetry add --group dev bumpuv
poetry run bumpuv <options>
Usage
bumpuv [<newversion> | major | minor | patch | bump] [-n|--dry-run] [-V|--version] [-h|--help]
Arguments
<newversion>: Explicit version specification (e.g., 1.2.3, 2.0.0a1, 1.0.0rc1)major | minor | patch | bump: Version bump type
Version Update Types
major: Increment major version by 1 (1.2.3 → 2.0.0)minor: Increment minor version by 1 (1.2.3 → 1.3.0)patch: Increment patch version by 1 (1.2.3 → 1.2.4)bump: Default. Same as patch for normal versions, increment number by 1 for pre-release versions (1.2.3a1 → 1.2.3a2)<newversion>: Explicit version specification (converted to PEP 440 compliant format)
Options
-n, --dry-run: Show what would be done without making changes. No prior commit required-V, --version: Show version information-h, --help: Show help message
Examples
Basic Usage
# Increment patch version (1.0.0 → 1.0.1)
bumpuv patch
# Increment minor version (1.0.1 → 1.1.0)
bumpuv minor
# Increment major version (1.1.0 → 2.0.0)
bumpuv major
# Default behavior (same as bump)
bumpuv
Explicit Version Specification
# Set to specific version
bumpuv 1.5.0
# Set to pre-release version
bumpuv 2.0.0a1
# Release candidate
bumpuv 1.0.0rc1
Pre-release Version Management
# Increment pre-release number (1.0.0a1 → 1.0.0a2)
bumpuv bump
# From pre-release to stable (explicit specification)
bumpuv 1.0.0
Dry-run Mode
# Check changes (no actual changes made)
bumpuv patch -n
bumpuv minor --dry-run
Output Examples
$ bumpuv patch
Updated: /path/to/project/pyproject.toml
Version: 1.0.0 → 1.0.1
Commit: 1.0.1
Tag: v1.0.1
$ bumpuv 2.0.0a1
Updated: /path/to/project/pyproject.toml
Version: 1.0.1 → 2.0.0a1
Commit: 2.0.0a1
Tag: test-2.0.0a1
Specification
Basic Behavior
- Default is equivalent to
bumpuv bump - PEP 440 compliant version management
- Same version and downgrades are not allowed
- Downgrade example:
1.0.0>1.0.0a1
- Downgrade example:
- Switching between pre-release and normal versions requires explicit version specification
- Example:
1.0.0→1.1.0a1requiresbumpuv 1.1.0a1 - Example:
1.0.0a1→1.0.0requiresbumpuv 1.0.0
- Example:
Git Integration
- Important: All changes must be committed beforehand
- After updating pyproject.toml in current directory, automatically commits and creates tags
- Commit message: New version number
- Tag:
v{version}for normal versions,test-{version}for pre-release versions
- Does not perform
git push. You must manually rungit pushandgit push --tags
Error Conditions
- pyproject.toml does not exist in current directory
- project.version does not exist or is not PEP 440 compliant
- Not a git repository
- Uncommitted changes exist (warning only in dry-run mode)
Limitations
- Configuration files not supported
- Monorepo support not implemented
Similar Tools
- npm-version
- uv version
--bumpoption - pybump
- bump2version
- bump-my-version
- bumpver
Development
Setup
uv sync
Task Execution
# Run tests
poe test
# Lint
poe check
# Type check
poe mypy
# Run all checks & build & smoke test
poe build
Development Requirements
- uv
- Python == 3.12, 3.10 (for test)
License
MIT
Release files for bumpuv 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bumpuv-0.0.9.tar.gz | 6.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bumpuv-0.0.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.4 kB
Release files / bumpuv-0.0.9.tar.gz
| Download URL | bumpuv-0.0.9.tar.gz |
|---|---|
| Size | 6.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2dd54e7cfe5e92471161be93c38b963e0cb5738e0a84352ea570af0eaa64d279
|
|
BLAKE2b-256 checksum How to use checksums |
b4f14154a46f99b4fc42ea73bcef31a45aec3995b136ad964ed5a2bbb492268b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency logRelease files / bumpuv-0.0.9-py3-none-any.whl
| Download URL | bumpuv-0.0.9-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2103c2fd3d9a9961d953d979e3131afb376ef804c4b7de8d0238dd37bdf7eb87
|
|
BLAKE2b-256 checksum How to use checksums |
b1cbe2f5f234160f1158ce2c536dd6ffcc6bd24ba0ef1edb525b985e08d84c3f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 19, 2026.
Transparency log