Skip to main content

Hatch plugin for ci system versioning

Project description

hatch-ci

PyPI version Python versions License - MIT

Build codecov

Black Mypy Ruff

This provides a plugin to Hatch leveraging a CI/CD system (github at the moment) to deliver packages to PyPi.

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.

  • pyproject.toml

    [tool.hatch.version]
    source = "ci"
    

Version source options

  • pyproject.toml

    [tool.hatch.version]
    source = "ci"
    
    # this will be updated with __version__ and __hash__ info
    version-file = "src/hatch_ci/__init__.py"
    
    # the files here will be jinja2 processed dynamicaly at build time
    paths = [ "README.md" ]
    
    # the paths will have the strings 'a' & 'b' replaced before
    # jinja2 processing
    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

hatch_ci-0.0.8b31.tar.gz (99.6 kB view hashes)

Uploaded Source

Built Distribution

hatch_ci-0.0.8b31-py3-none-any.whl (14.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page