Incremental
A CalVer version manager that supports the future.
What it is and what it does
Incremental is a version management tool designed for projects using CalVer (Calendar Versioning) in the YY.MM.PATCH format. It integrates with setuptools and Hatchling as a build plugin to automatically manage version numbers stored in a _version.py file within your package, eliminating the need to manually edit version strings in multiple places.
The tool provides a command-line interface to bump versions (release candidates, patches, development releases, and post-releases) and automatically updates indeterminate version markers like "NEXT" throughout your codebase to concrete version numbers. It supports both build-time version injection and runtime version access through the incremental.Version class, making it useful for projects that need to expose version information to users or documentation.
Use it for:
- Automate version bumping in CI/CD pipelines without manually editing version files or configuration.
- Manage release candidates and development versions alongside stable releases in a structured CalVer scheme.
- Keep documentation and code comments synchronized with the current version by updating indeterminate version markers automatically.
- Integrate version management into setuptools or Hatchling-based build workflows without external version files.
- Expose the current package version at runtime through the incremental.Version API for version-aware application logic.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Incremental is a CalVer version manager that automates version numbering in the YY.MM.PATCH format and updates version references in your codebase through a command-line tool.
Yes, if you use setuptools or Hatchling and want to adopt CalVer versioning with automated version management. The low install friction, active maintenance, permissive license, and lack of known vulnerabilities make it a safe choice. Not necessary if you prefer manual version management or use a different versioning scheme (semantic versioning, etc.).
Install
incremental on PyPI
pip
pip install incrementaluv
uv add incrementalpoetry
poetry add incrementalInstalling Incremental
Before you install
Low install friction with a pure-Python wheel and only two lightweight runtime dependencies (packaging and tomli). The project is actively maintained with recent commits and has been stable since its 2015 inception.
License in practice
Licensed under the MIT License (permissive), which allows free use, modification, and distribution with minimal restrictions.
Quickstart
# Install
pip install incremental
# In your pyproject.toml, add to build-system requires and mark version dynamic:
[build-system]
requires = ["setuptools", "incremental>=24.7.2"]
[project]
dynamic = ["version"]
# Then initialize:
incremental update --create
# In your package's _version.py:
from incremental import Version
__version__ = Version("mypackage", 24, 11, 0)
Requires Python 3.8 or later; integration with setuptools or Hatchling build systems is the primary use case.
Verify before relying
- Whether the click dependency mentioned in the description is actually required at runtime or only for the CLI tool.
- Performance characteristics when managing versions in very large codebases with many version references.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — packaging, tomli |
| Maintenance | actively maintained — 259 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 17,767,401/month — #1,104 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: incremental-24.11.0-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
bump-my-versionAutomates version number management in projects…
permissive · top 5,000 on PyPI
setuptools-git-versioningAutomatically generates PEP 440-compliant…
permissive · top 5,000 on PyPI
hatch-vcsA Hatch plugin that automatically determines…
permissive · top 1,000 on PyPI
bumpversionA command-line tool that automates version…
permissive · top 5,000 on PyPI
bumpverBumpVer is a CLI tool that searches for and…
permissive · top 15,000 on PyPI
bump2versionA command-line tool that automates version…
permissive · top 5,000 on PyPI
bumpAutomatically increments version numbers in…
permissive · top 15,000 on PyPI
hatch-regex-commitA Hatch plugin that automatically creates Git…
permissive · top 15,000 on PyPI
setuptools-scmAutomatically extracts and manages Python…
permissive · top 1,000 on PyPI