skillfed

Incremental

A CalVer version manager that supports the future.

incremental v24.11.0 17.8M downloads/30d#1,104 on PyPI144
Permissive license Active released

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 incremental

uv

uv add incremental

poetry

poetry add incremental

Installing 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

Framework :: HatchFramework :: Setuptools PluginIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9

Tags

calver version managementautomated version bumpingsetuptools version pluginhatchling version integrationversion number automationrelease candidate managementdevelopment version tracking
version-managementcalverbuild-plugin

More Build Tools packages