Skip to main content

Hatch plugin for versioning with your preferred VCS

Project description

hatch-vcs

CI/CD CI - Test CD - Build
Package PyPI - Version PyPI - Python Version
Meta Hatch project code style - black types - Mypy License - MIT GitHub Sponsors

This provides a plugin for Hatch that uses your preferred version control system (like Git) to determine project versions.

Table of Contents

Global dependency

Ensure hatch-vcs is defined within the build-system.requires field in your pyproject.toml file.

[build-system]
requires = ["hatchling", "hatch-vcs"]
build-backend = "hatchling.build"

Version source

The version source plugin name is vcs.

  • pyproject.toml

    [tool.hatch.version]
    source = "vcs"
    
  • hatch.toml

    [version]
    source = "vcs"
    

Version source options

Option Type Default Description
tag-pattern str see code A regular expression used to extract the version part from VCS tags. The pattern needs to contain either a single match group, or a group named version, that captures the actual version information.
fallback-version str The version that will be used if no other method for detecting the version is successful. If not specified, unsuccessful version detection will raise an error.
raw-options dict A table of setuptools-scm parameters that will override any of the options listed above. The write_to and write_to_template parameters are ignored.

Version source environment variables

  • SETUPTOOLS_SCM_PRETEND_VERSION: When defined and not empty, it's used as the primary source for the version, in which case it will be an unparsed string.

Build hook

The build hook plugin name is vcs.

  • pyproject.toml

    [tool.hatch.build.hooks.vcs]
    version-file = "_version.py"
    
  • hatch.toml

    [build.hooks.vcs]
    version-file = "_version.py"
    

Building or installing when the latest tag is v1.2.3 will generate the file

  • _version.py

    # coding: utf-8
    # file generated by setuptools_scm
    # don't change, don't track in version control
    __version__ = version = '1.2.3'
    __version_tuple__ = version_tuple = (1, 2, 3)
    

Build hook options

Option Type Default Description
version-file str REQUIRED The relative path to the file that gets updated with the current version.
template str The template used to overwrite the version-file. See the code for the default template for each file extension.

Editable installs

The version file is only updated upon install or build. Thus the version number in an editable install (Hatch's dev mode) will be incorrect if the version changes and the project is not rebuilt. An unsupported workaround for keeping the version number up-to-date can be found at hatch-vcs-footgun-example.

License

hatch-vcs is distributed under the terms of the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hatch_vcs-0.2.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

hatch_vcs-0.2.1-py2.py3-none-any.whl (6.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hatch_vcs-0.2.1.tar.gz.

File metadata

  • Download URL: hatch_vcs-0.2.1.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.15

File hashes

Hashes for hatch_vcs-0.2.1.tar.gz
Algorithm Hash digest
SHA256 854e398586e7a0a9295c9d4365729d1ae6834ef39de33c88080f4eecc6fc5681
MD5 419d4e85922145cf8b2eab803b811f1b
BLAKE2b-256 b2f1cc27eae1a873b75d82cdda78119c2c02fd2c0a2dda7bc716b160a057721e

See more details on using hashes here.

File details

Details for the file hatch_vcs-0.2.1-py2.py3-none-any.whl.

File metadata

  • Download URL: hatch_vcs-0.2.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.15

File hashes

Hashes for hatch_vcs-0.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4ab4c49bee71bfd8af9d61b109c052b50cfdf6d62707ac9167dba4cf2165357e
MD5 e984948701e550af533198e48c8cc184
BLAKE2b-256 7ce6f5aee9802ccc3e6c2e10904f26861dbf88b3139e54d03ee1b84890412ea5

See more details on using hashes here.

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