This provides a plugin for Hatch that automatically creates a Git commit and tag after version bumping.
Ensure hatch-regex-commit
is defined within the build-system.requires
field in your pyproject.toml
file.
[build-system]
requires = ["hatchling", "hatch-regex-commit"]
build-backend = "hatchling.build"
The version source plugin name is regex_commit
.
-
pyproject.toml
[tool.hatch.version] source = "regex_commit" path = "my_library/___about___.py"
-
hatch.toml
[version] source = "regex_commit" path = "my_library/___about___.py"
This plugin inherits from the Hatch builtin Regex version source. It inherits from all its options and add the following ones:
Option | Type | Default | Description |
---|---|---|---|
check_dirty |
bool |
true | Check if the Git repository is dirty, e.g., you have uncommited changes. If you have, the version bumping will abort. |
commit |
bool |
true | Whether to create a Git commit. |
commit_message |
str |
Bump version {current_version} → {new_version} |
Template of the Git commit message. |
commit_extra_args |
list[str] |
[] | List of extra arguments for Git commit command. |
tag |
bool |
true | Whether to create a Git tag. |
tag_name |
str |
v{new_version} |
Template for the Git tag name. |
tag_message |
str |
Bump version {current_version} → {new_version} |
Template of the Git tag message. |
tag_sign |
bool |
true | Whether to sign the Git tag. |
[tool.hatch.version]
source = "regex_commit"
path = "my_library/___about___.py"
[tool.hatch.version]
source = "regex_commit"
path = "my_library/___about___.py"
commit_message = "🚀 Version {new_version}"
[tool.hatch.version]
source = "regex_commit"
path = "my_library/___about___.py"
commit_extra_args = ["-e"]
[tool.hatch.version]
source = "regex_commit"
path = "my_library/___about___.py"
tag = false
hatch-regex-commit
is distributed under the terms of the MIT license.