Release#

Releases come from main. Build the change log from the news fragments, commit, and push a tag; after all tests passed, the workflow publishes the Docker image as stable, 1.2.3 and 1.2.

uv run --extra docs towncrier build --yes --version 1.2.0
git commit -am "release 1.2.0"
git tag v1.2.0
git push origin main v1.2.0

The tag is the version: hatch-vcs reads it from git when the package is built, and docker/set-version.sh writes it into the image. Between releases, the version counts the commits since the last tag, such as 1.2.1.dev3+g3f7dc48. Without git, such as in an archive of the code, the version is 0.0.0. Show the version of a checkout with:

uvx --from hatchling==1.27.0 --with hatch-vcs==0.5.0 hatchling version

Last updated on 2026-10-28.