Bump a Python package version in a uv-managed project, update or create CHANGELOG.md, create a release commit, and create a matching git tag like v1.2.3. Use when a user asks to cut a release, bump patch/minor/major, prepare a versioned changelog entry, or create release commits and tags for a pyproject.toml project.
Use this skill for small Python package releases where the version source of truth is pyproject.toml and the project is managed with uv. The bundled script wraps the standard flow: compute the next version with uv version, update CHANGELOG.md, create a scoped git commit, and create an annotated vX.Y.Z tag.
pyproject.toml.uv version, for example:
rg -n "__version__|version\\s*=\\s*\\\"" .python "<path-to-skill>/scripts/bump_release.py" --project-dir . --version 0.2.0 --dry-runpython "<path-to-skill>/scripts/bump_release.py" --project-dir . --bump minor --dry-run--change.python "<path-to-skill>/scripts/bump_release.py" --project-dir . --bump minor --change "Add OAuth client." --change "Document rate-limit handling." --commit --tagpython "<path-to-skill>/scripts/bump_release.py" --project-dir . --version 0.2.0 --change "Initial public release." --commit --taguv version --shortgit show --stat --oneline HEADgit tag --list "v*" --sort=-version:refname | headuv version <target> --no-sync so pyproject.toml and uv.lock are updated without syncing .venv.CHANGELOG.md is missing, the script creates a simple changelog with the new release entry.Unreleased section, the new release entry is inserted after it. Otherwise the new release is inserted before the first existing version entry.bump version from {old} to {new}. Override it with --commit-message when the project uses a different convention.v{new} and it is created as an annotated tag.uv version because it needs access to the uv cache under the home directory, rerun the command with escalated permissions.Run the full release bump for a uv-managed project.
Common invocations:
python "<path-to-skill>/scripts/bump_release.py" --project-dir . --bump patch --dry-runpython "<path-to-skill>/scripts/bump_release.py" --project-dir . --version 1.0.0 --change "Stabilize the public API." --commit --tagpython "<path-to-skill>/scripts/bump_release.py" --project-dir . --bump minor --allow-dirty --commit --tag