vcver
provide package versions with version control data.
What it is and what it does
vcver is a setup tool that automatically generates version strings for Python packages by reading version control metadata. It produces two types of versions: development versions (e.g., 1.1.dev10+master.abc123) that include commit count, branch, and change ID for debugging, and release versions (e.g., 1.1) taken directly from git tags. The tool is designed to work with setuptools during the build process and writes a VERSION file that can be included in source distributions.
The package solves the problem of keeping package versions in sync with version control without manual version bumping in setup.py. It distinguishes between release branches (where versions come from tags) and development branches (where versions are zeroed out to prevent accidental installation of development builds). All generated versions comply with PEP440.
Use it for:
- Automatically version Python packages from git tags without manually updating setup.py for each release
- Generate development version strings that encode branch and commit information for debugging build artifacts
- Prevent accidental installation of development branch versions by zeroing out non-release branch versions
- Include version metadata in source distributions via a generated VERSION file for offline builds
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
vcver generates version strings for Python packages by extracting version information from version control systems, producing development versions with commit metadata and release versions from tags.
No. The package is abandoned (last release 2021-08-10, no commits since) and targets legacy setuptools workflows. Only install if you have an existing project already using vcver and cannot migrate to actively maintained alternatives.
Install
vcver on PyPI
pip
pip install vcveruv
uv add vcverpoetry
poetry add vcverInstalling vcver
Before you install
Low install friction with a single lightweight dependency (packaging). However, the package is abandoned—last release was 2021-08-10 with no commits since then. Use only if your project's versioning approach aligns with its design and you can maintain it yourself if needed.
License in practice
Licensed under MIT (permissive), so there are no restrictions on commercial or proprietary use. You may use, modify, and distribute the package freely as long as you retain the license notice.
Quickstart
# In setup.py
import vcver
setup(
name='mypackage',
setup_requires=['vcver'],
vcver={'is_release': False, 'path': os.path.dirname(__file__)}
)
# vcver generates a VERSION file with the computed version string
Requires a version control repository (git, hg, etc.) or a VERSION file in the package directory; vcver will not work in a bare source tree without SCM metadata.
Verify before relying
- Whether vcver works correctly with Python versions released after 2021-08-10, given the last release date and abandoned status
- Current compatibility with modern setuptools build workflows versus the legacy setup.py-only approach documented
Package facts
| License | not declared (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — packaging |
| Maintenance | abandoned — 1,830 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 498,868/month — #6,328 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: vcver-0.2.12-py2.py3-none-any.whl
Tags
More Software Distribution packages
Pexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
setuptools-scmAutomatically extracts and manages Python…
permissive · top 1,000 on PyPI
pkginfoExtracts and queries package metadata from…
permissive · top 1,000 on PyPI
invokeInvoke is a Python library for defining and…
permissive · top 1,000 on PyPI
cyclonedx-python-libProvides data models, validators, and…
permissive · top 1,000 on PyPI
requirements-parserParses pip requirement files into structured…
permissive · top 5,000 on PyPI
autosemverAutomatically generates semantic versions for…
copyleft · top 15,000 on PyPI
vcs-versioningManages Python package versions automatically…
permissive · top 1,000 on PyPI
setuptools-scm-git-archiveA setuptools_scm plugin that extracts version…
permissive · top 5,000 on PyPI
parverparver parses and manipulates PEP 440 version…
permissive · top 5,000 on PyPI
release-tagAutomatically creates and optionally pushes…
permissive · top 15,000 on PyPI
semverParse, compare, and manipulate semantic version…
permissive · top 1,000 on PyPI
python-semantic-releaseAutomates semantic versioning and release…
permissive · top 5,000 on PyPI
bumpverBumpVer is a CLI tool that searches for and…
permissive · top 15,000 on PyPI
setuptools-git-versioningAutomatically generates PEP 440-compliant…
permissive · top 5,000 on PyPI