skillfed

versioneer-518

Just the vendored file

versioneer-518 v0.19 208.2K downloads/30d#9,534 on PyPI1,092
Permissive license public domain Active released

What it is and what it does

versioneer-518 is a tool that automatically manages version strings in Python projects by querying your version-control system at build and import time. Instead of manually updating a version string before each release, you tag your repository and the tool derives the version from that tag, generating version strings that comply with PEP 440 by default. It works by injecting a `_version.py` module into your source tree that dynamically queries the VCS for tag information, and a top-level `versioneer.py` that integrates with setuptools to compute versions during builds.

The tool supports two installation modes: vendored mode (copies the tool into your repository) and build-time dependency mode (treats it as a build requirement). It provides multiple pieces of version information—condensed version string, full revision ID, commit date, and dirty-tree status—allowing projects to embed rich version metadata. It is designed for setuptools-based projects and requires configuration in either `pyproject.toml` or `setup.cfg`. It has no runtime dependencies and installs as a pure Python wheel.

Use it for:

  • Eliminate manual version-string updates in setup.py or pyproject.toml by deriving versions automatically from version-control tags.
  • Generate version strings that reflect both release tags and development commits without manual intervention.
  • Embed version information in module `__version__` attributes and tarball names automatically.
  • Provide developers and bug reporters with full revision IDs and commit dates to reconstruct exact code states.
  • Simplify release workflows by making version management a pure version-control operation—tag, build, release.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Automates version management in setuptools-based Python projects by deriving version strings from version-control tags at build and runtime, eliminating manual version-string updates.

Yes, if you maintain a setuptools-based Python project with version control and want to eliminate manual version-string management. The tool is permissively licensed, has no runtime dependencies, and is actively maintained. However, the latest PyPI release is from 2021-04-01; verify current compatibility with your Python version and build toolchain before adopting.

Install

versioneer-518 on PyPI

pip

pip install versioneer-518

uv

uv add versioneer-518

poetry

poetry add versioneer-518

Installing versioneer-518

Before you install

Low install friction with no runtime dependencies. Actively maintained with recent commits (last commit 2026-06-01) and 1092 repository stars, though the latest PyPI release dates to 2021-04-01.

License in practice

Released under public domain (Unlicense), permissive license treatment with no restrictions on use, modification, or redistribution.

Quickstart

pip install versioneer-518
versioneer install --vendor
# Then in your project's __init__.py:
from ._version import get_versions
__version__ = get_versions()['version']

Requires a setuptools-based project with version control initialized; configuration via pyproject.toml or setup.cfg required.

Verify before relying

  • Whether the package still receives active maintenance on PyPI despite the 2021-04-01 latest release date.
  • Current compatibility with Python versions beyond the stated 3.9+ support.
  • Whether build-time dependency mode is production-ready or still experimental as described.
  • Specific VCS systems supported beyond git.

Package facts

License public domain (permissive)
Python support not specified
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 1,961 days since the last release
Last repo commit
First released
Downloads 208,168/month — #9,534 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: versioneer_518-0.19-py2.py3-none-any.whl

Tags

version management from git tagsautomatic version numberingsetuptools version automationvcs-based versioningrelease version trackingdynamic version stringsbuild-time version injection
version-control-integrationrelease-automationsetuptools-plugin

More Build Tools packages