NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #4023 most downloaded on PyPI
Use git repo data for building a version number according to PEP-440
Last release 4 months ago
15 May 2026
Release timing varies
gaps range from 8 days to 12 months
Nearly every release is documented
notes for 60 of 60 stable releases
1 version withdrawn
withdrawn after publishing
6 years old
61 releases · first in 2020
One column per quarter.
Added a dynamic-metadata provider compatible with scikit-build-core.
Added a dynamic-metadata provider compatible with scikit-build-core. (#130)
Thanks to @ktbarrett.
Add support for git archive builds via a tracked .git_archival.txt file. (#131)
When the file is present and its $Format:...$ placeholders have been substituted, the version is derived from its contents instead of running git. See Supporting git archive builds.
Thanks to @ktbarrett.
Fix OSErrorr exception raised if using setuptools-git-versioning in system without git installed (#126). Thanks to @jeffawang.
Fix OSErrorr exception raised if using setuptools-git-versioning in system without git installed (#126).
Thanks to @jeffawang.
Make most of args in version_from_git keyword-only.
version_from_git keyword-only.version_from_git and infer_version from str to packaging.version.Version.setuptools_git_versioning.py into smaller set of files.Popen(shell=True) anymore.setup.py to pyproject.toml.pip to uv, use lock files.black + isort + pyupgrade to ruff format.flake8 to ruff.pre-commit to prek.get_version(root=...) in combination with version-file strategy -
relative file version was resolved against os.cwd, not explicitly passed root.0!2025.12.3 were wrongly converted to 0.2025.12.3 (#122).1.2.3.postNone, now it is 1.2.3.post0 (#104).[feature] Test Python 3.13 compatibility
[bugfix] Replace outdated toml package with modern tomli. Thanks to @graingert
References: #108
[breaking] Drop get_branch_tags function which was deprecated since 1.8.0 .
[breaking] Drop get_branch_tags function which was deprecated since 1.8.0.
[breaking] version_file option now have precedence over any tags in the current branch.
[breaking] Drop version_config keyword from setup.py, which was deprecated since 1.8.0.
[breaking] Does not allow passing setuptools_git_versioning=False and setuptools_git_versioning=True to config.
Always use setuptools_git_versioning={"enabled": True}.
[feature] Test Python 3.12 compatibility
[feature] Test Python 3.12 compatibility
[feature] Remove useless warning if tag_filter, tag_formatter or branch_formatter is a regexp instead of function reference.
References: #93
[bugfix] Import setuptools before importing distutils . Thanks to @tjni
[feature] Test PyPy 3.10 support
[feature] Update documentation to mention shallow clone issues.
References: #83
Trusted publishers feature of PyPI.org[bugfix] Move zip-safe option to tool.setuptools section of pyproject.toml .
[feature] Recommend users to use file-based schema instead of tag-based due some cases.
[feature] Recommend users to use file-based schema instead of tag-based due some cases.
[feature] Add small example of .gitignore file to common issues section. Thanks to @aram-eskandari
References: #17
[feature] Improve examples of fetching package version in runtime.
References: #55
[dependency] [bugfix] Get rid of deprecated package dependency
[general] [feature] Build and publish sdist package again
References: #49, #72
[general] [bugfix] Allow to install package from .tar.gz without --no-build-isolation flag
References: #49, #72
[dependency] [bugfix] Get rid of deprecated package dependency
References: #72
[ci] [feature] Publish development releases to Test PyPI
[ci] [feature] Use pypa/gh-action-pypi-publish Github action to publish releases to PyPI
[ci] [bugfix] Remove local part of version because it is not allowed in PyPI
[core] [breaking] Make all internal functions private
[core] [breaking] Make all internal functions private
[core] [feature] Add tag_filter option. Special thanks to @vortechs2000
References: #68, #69
tomllib instead of toml package[docs] [feature] Add documentation about fetching package version in runtime
References: #55
[docs] [feature] Add description for some functions
[core] [bug] Make version sanitization less strict, allow to automatically convert some cases, e.g. 1.0.0+feature/abc to 1.0.0+feature.abc
[core] [bug] Make version sanitization less strict, allow to automatically convert some cases, e.g.
1.0.0+feature/abc to 1.0.0+feature.abc
References: #67
[core] [breaking] Sanitize starting_version according PEP 440
[core] [breaking] Sanitize starting_version according PEP 440
[core] [breaking] Do not remove leading non-numeric symbols from version number (except v)
[core] [breaking] Raise error if pyproject.toml exists, but is not a file
[core] [breaking] Raise error if pyproject.toml exists, but is not a file
[core] [feature] Allow setuptools-git-versioning script to infer version from setup.py if pyproject.toml is missing
References: #58
[core] [feature] Add cwd argument to most of functions, allowing to get versions of a specific repo without changing current directory
[docs] [feature] Add documentation for setuptools-git-versioning script
References: #58
tests/lib/util.py,
use modern annotations syntax (type | None instead of Optional[type])[core] [feature] Add setuptools-git-versioning script to infer version from pyproject.toml config
[core] [feature] Add setuptools-git-versioning script to infer version from pyproject.toml config
References: #58
[core] [feature] Check Python 3.11 support
[core] [breaking] version-callback-option option is used even if there are some tags in the current branch
[core] [breaking] version-callback-option option is used even if there are some tags in the current branch
References: #56
[core] [feature] Remove all non-numeric symbols from version prefix, not just v
version-callback-option and version-file-option options are set[general] Add setup_requires item to setup.py
[general] Add setup_requires item to setup.py
References: #49
[general] Remove pyproject.toml file from .tag.gz package
[general] Remove pyproject.toml file from .tag.gz package
References: #49
[general] [breaking] Drop Python 2.7, 3.5 and 3.6 support. Minimal supported Python version is now 3.7
[core] [feature] Do not fail on toml and packaging modules import while installing setuptools-git-versioning from tag.gz file
References: #49
[core] [bug] Fix issue with empty pyproject.toml
[core] [bug] Fix issue with empty pyproject.toml
References: #35
[general] [deprecated] Python 2.7, 3.5 and 3.6 support is deprecated due to their end of life.
[general] [breaking] Drop Python 3.3 and 3.4 support
References: pull request 37
[general] [deprecated] Python 2.7, 3.5 and 3.6 support is deprecated due to their end of life.
[core] [deprecated] get_branch_tags function is renamed to get_tags.
It will be removed in 2.0.0 release. A warning message is added
[core] [feature] Add support of reading config from pyproject.toml.
Thanks to @Bloodmallet.
References: #35, pull request 37
[core] [feature] Allow to pass regexp to branch_formatter option
[core] [feature] Add tag_formatter option
References: #31
[core] [feature] Allow nested default values to be passed to env substitution
[config] [deprecated] version_config keyword in setup.py is renamed to setuptools_git_versioning.
It will be removed in 2.0.0 release. A warning message is added
[config] [deprecated] Prefer using "enabled": True / "enabled": False option
instead of pure boolean values (True, False) for config.
Old behavior is deprecated and will be removed in 2.0 version. A warning message is added
[docs] [feature] Major docs improvement
[docs] [feature] Added CHANGELOG.rst
[docs] Add miniver and versioningit to comparison table
[ci] [feature] Check test coverage and fail if it has been decreased
[ci] [feature] Build docs using ReadTheDocs project
[ci] [feature] Change release workflow action from actions/create-release@v1 to softprops/action-gh-release@v1
[ci] [feature] Change release workflow action from actions/create-release@v1
to softprops/action-gh-release@v1
References: rac47f210
[ci] [feature] Change release workflow action from actions/create-release@v1 to softprops/action-gh-release@v1
[ci] [feature] Change release workflow action from actions/create-release@v1
to softprops/action-gh-release@v1
References: ra7af368f
[core] [feature] String leading 'v' symbol from tag name
[core] [feature] String leading 'v' symbol from tag name
References: #29
[core] [feature] String leading 'v' symbol from tag name
[core] [feature] String leading 'v' symbol from tag name
References: #29
[core] [feature] Add support of env variables substitution
[core] [feature] Add support of env variables substitution
[core] [feature] Add support of timestamp substitution
[core] [bug] Fix sorting for annotated tags
[core] [bug] Fix sorting for annotated tags
References: #23
[core] [bug] Sort tags by commit date instead of name
[core] [bug] Sort tags by commit date instead of name
References: #22
[ci] [feature] Add automerge action for precommit-ci bot
[ci] [bug] Fix skipping duplicated runs
[ci] [bug] Fix tests workflow
[ci] [bug] Fix release pipeline
[docs] [feature] Add resolution for issue when all versions produced by CI pipeline are dirty
[docs] [feature] Add resolution for issue when all versions produced by CI pipeline are dirty
References: #17, pull request 16
[docs] Add setuptools-scm and versioneer to comparison table
References: #15
pre-commit hooks and commit changes made by it[core] [feature] Add branch_formatter option.
[core] [feature] Add branch_formatter option.
Thanks to @LeComptoirDesPharmacies.
References: pull request 14
setup.py[dev] [bug] Add JetBrains config files to .gitignore.
Thanks to @LeComptoirDesPharmacies.
References: pull request 13
[general] [bug] Update package short description
[general] [bug] Update package short description
[general] Set license in setup.py file
[docs] [feature] Add license column into comparison table
[docs] [feature] Add license column into comparison table
[docs] [bug] Fix comparison table typo
[docs] [feature] Add list of supported substitutions into comparison table
[docs] [feature] Add list of supported substitutions into comparison table
[docs] Add bad-setuptools-git-version and another-setuptools-git-version
to comparison table
[core] [bug] Replace forbidden chars in local version label.
[core] [bug] Replace forbidden chars in local version label.
Thanks to @ajasmin.
References: pull request 11
[docs] [bug] Fix minor typos in documentation
[core] [bug] Replace default suffix for dev and dirty versions from dev to post
[core] [feature] Add full_sha substitution support
[core] [feature] Add full_sha substitution support
References: #9
[core] [bug] Fix Windows compatibility
[core] [bug] Fix Windows compatibility
References: #8
[ci] [feature] Add some issue and PR automatization
References: pull request 7
[ci] [bug] Fix release workflow
References: pull request 7
[ci] [feature] Use Github Actions instead of TravisCI
[ci] [feature] Use Github Actions instead of TravisCI
References: pull request 7
[docs] [bug] Fixed typo in code examples.
[docs] [bug] Fixed typo in code examples.
Thanks to @Stedders.
References: pull request 6
[core] [bug] Fix python error if no tag is found.
[core] [bug] Fix python error if no tag is found.
Thanks to @bmiklautz.
References: pull request 5
[core] [bug] Fix version detection in case of missing .git folder
[dependency] [bug] Fix Python 2.7 dependencies
[dependency] [bug] Fix Python 2.7 dependencies
[core] [feature] Add get_all_tags function
[core] [feature] Add get_all_tags function
[core] [feature] Add get_branch_tags function
[core] [bug] Fix building version from VERSION file
[core] [feature] Add count_commits_from_version_file option
count_commits_from_version_file option[core] [feature] Add version_file option
version_file option[core] [feature] Add version_callback option
version_callback option[ci] [bug] Use six module for accessing collections.abc
[ci] [bug] Use six module for accessing collections.abc
References: #4
[ci] [bug] Fix package name misspell
[ci] [bug] Fix package name misspell
References: #4
[dependency] [bug] Remove flake8 from requirements.txt
flake8 from requirements.txt[dependency] [bug] Make setuptools version check less strict
setuptools version check less strict[general] [feature] Test Python 3.9 support
[ci] [bug] Include requirements.txt into .tar.gz file
References: #3
[general] [feature] Add Python 3.3 and 3.4 support
## ci - [ci] [bug] Fix TravisCI deploy
[core] [bug] Fix runtime error on Python 3.3 and 3.4.
[core] [bug] Fix runtime error on Python 3.3 and 3.4.
Thanks to @WildCard65.
References: pull request 1
[core] [feature] Add branch substitution support
branch substitution support[core] [feature] Add starting_version option
starting_version optionYour coding agent can read these notes before it upgrades. Set up the MCP server →