Skip to main content

PVM — Project Version Manager

PVM is a CLI tool for managing Python project versions using Semantic Versioning 2.0.0. It automates version bumps, changelog generation, and Git tagging, all driven by your pyproject.toml.

Content

Features

  • Semantic Versioning: Bump major, minor, patch, prerelease, and build versions.
  • Git Integration: Commit and tag version changes, with optional push.
  • Changelog Generation: Automated changelog creation and updating.
  • Flexible CLI: Powered by Typer, with rich options.
  • Preserves Formatting: Updates pyproject.toml without breaking formatting.

Installation

pip install pvm
# or, with uv
uv pip install pvm

Usage

Show the Current Version

pvm show current

Predict the Next Version

pvm show next

Bump the Version

# Bump patch version (e.g., 1.2.3 → 1.2.4)
pvm bump patch

# Bump minor version and add prerelease
pvm bump minor --prerelease --prerelease-token rc

# Bump to a specific version
pvm bump 2.0.0

# Add build metadata
pvm bump patch --build --build-token build.5

# Bump and tag in Git (with prefix)
pvm bump patch --tag --tag-prefix v

# Bump and generate changelog
pvm bump patch --changelog --changelog-file CHANGELOG.md

Generate a Changelog

pvm changelog --file CHANGELOG.md

CLI Reference

Command Description
pvm --version Show PVM CLI version
pvm show current Show current project version
pvm show next Predict next version
pvm bump [target] Bump version (target: major, minor, patch, etc.)
pvm changelog Generate or update changelog

Common Options for bump:

  • --final : Force a final version (no prerelease/build)
  • --prerelease, -p : Add a prerelease (e.g., alpha, beta, rc)
  • --prerelease-token : Set prerelease token (e.g., rc, alpha)
  • --build, -b : Add build metadata
  • --build-token : Set build metadata token
  • --tag, -t : Create a Git tag for the new version
  • --tag-prefix : Prefix for tag (default: v)
  • --changelog, -c : Generate changelog after bump
  • --changelog-file : Path to changelog file

Example Workflows

Bump patch, tag, and update changelog:

pvm bump patch --tag --changelog --changelog-file CHANGELOG.md

Show next prerelease version:

pvm show next --prerelease

Development

Install Dev & Test Dependencies

uv sync --group dev --group test

Run Tests

pytest
# or, for all environments:
tox

Format, Lint, and Type-Check

uv run ruff format .
uv run ruff check --fix --exit-zero
uv run pre-commit run --all-files
uv run mypy .

Configuration

PVM reads and writes the version from your pyproject.toml. You can configure changelog file location and other options in your pyproject.toml.

Links

License

MIT License © Malvin Ndip

Release files for project-version-manager 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for project-version-manager 0.1.1
File Size Uploaded
project_version_manager-0.1.1.tar.gz 18.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for project-version-manager 0.1.1
File Interpreter ABI Platform
project_version_manager-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 41.1 kB

Release files / project_version_manager-0.1.1.tar.gz

Download URL project_version_manager-0.1.1.tar.gz
Size 18.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2d58a09f6ba58dc1ea8abd47aa17dfa0c3accf6619fe87f05fcd5bdbd79d6a5b
BLAKE2b-256 checksum
How to use checksums
ce4442eae6953214e71982dbdbaac2da7153c030f4dee3898c433f7442b6bf49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.5

Release files / project_version_manager-0.1.1-py3-none-any.whl

Download URL project_version_manager-0.1.1-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e3ee3b82e19a6af70db374e80b8a364d0335b7f2ab294c5d701e134ea1a216c
BLAKE2b-256 checksum
How to use checksums
3350f5f146e0230ef7830c433d625485f497e1cee9171a9f5da176f4a6df45b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.5

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page