Hatch plugin for ci system versioning
Project description
hatch-ci
This is a hatch-vcs heavily inspired pluging, managing the version information for a python wheel package.
It gets version information from:
- version-file entry in the tool.hatch.version toml entry (eg. 1.0.0) in the master branch
- augments it with a bNNN build number in creating the package foobar-1.0.0bNNNN (this can be sent to PyPi)
- if there's a tag v1.0.0 on the repo, it will build foobar-1.0.0 release (this can be sent to PyPi)
The last two steps are mean to be managed in a CI/CD system (github at the moment), to ensure hands-off releases.
In essence this pluging:
- manages the version information
- allows version replacement in text files using build information
NOTE: this is heavily inspired from hatch-vcs
Table of Contents
Global dependency
Ensure hatch-ci
is defined within the build-system.requires
field in your pyproject.toml
file.
[build-system]
requires = ["hatchling", "hatch-ci"]
build-backend = "hatchling.build"
Version source
The version source plugin name is ci
.
This will enable the hatch-ci pluging:
-
pyproject.toml
[project] .. dynamic = ["version"] # this rerieves the version dynamically ..
Version source options
-
pyproject.toml
[tool.hatch.version] source = "ci" # this pulls the version using the hatch-ci hook # this will put/update __version__ and __hash__ info in version-file version-file = "src/hatch_ci/__init__.py" # these files will be jinja2 processed, the environment will # contains variables as: branch, build, current, ref, runid, # sha, version, workflow etc. paths = [ "README.md" ] # the listed paths will undergo replacement before jinja2 processing and # the strings 'a' & 'b' wil be replaced fixers = [ { 'a': '{ctx.workflows}' }, { 'd': '{ctx.branch}' } ]
Option | Type | Default | Description |
---|---|---|---|
version-file |
str |
None | A file where to write version/hash variables |
paths |
`list[str] | str` | None |
fixers |
list[dict[str,str]] |
None | A list of dict, each key is a string to replace with the value |
License
hatch-ci
is distributed under the terms of the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for hatch_ci-0.1.1b37-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0a2aeb1ea9a2105ffde19f1e0fd55b9e9d4b970204611e530ffa2c8086dc806 |
|
MD5 | 38dddac97c9167b8db586249bda99b65 |
|
BLAKE2b-256 | 7e1c63799e13dda687a16d7eaacdc006ff7e3285648df1b83db1073ac47f20f6 |