Skip to main content

A version source for Hatchling that reads the version from a given environment variable, but also allows for a fallback if the variable is not populated.

Project description

Hatchling Environment Variable Version Source

A Hatchling version source plugin that reads the version from an environment variable with a configurable fallback value, since the built-in env version source does not allow to define a fallback.

Installation

Add the package as a build dependency to your pyproject.toml:

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

Configuration

Configure a dynamic version source in the project section of pyproject.toml:

[project]
dynamic = ["version"]

Make sure you don't specify the version directly in the project section, or the dynamic version source may not be picked up.

Then, configure the version source:

[tool.hatch.version]
source = "env-plus"
variable = "PACKAGE_VERSION"  # optional, default shown
fallback = "0.0.0dev0"  # optional, default shown

Use the variable field to set the environment variable to use, and set fallback to the desired fallback version.

Note: An empty string, whether from the configured environment variable or from the fallback, is an undefined version.

If you explicitly set the configured environment variable to the empty string, your build will fail as no valid version is set. If you explicitly set fallback to an empty string, your build will fail when the configured environment variable is not set. This is the default behavior of Hatchling's built-in enviroment variable version source env.

Usage

Build your project with the desired version by setting the environment variable:

PACKAGE_VERSION=2.0.0 uv build
# Builds package version "2.0.0".

Leave the environment variable empty to use the default:

uv build
# Builds package version 0.0.0dev0 (or configured fallback).

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_env_plus-1.0.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hatch_env_plus-1.0.1-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file hatch_env_plus-1.0.1.tar.gz.

File metadata

  • Download URL: hatch_env_plus-1.0.1.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hatch_env_plus-1.0.1.tar.gz
Algorithm Hash digest
SHA256 3f8aa5437746b9557384df264a0335d5fa0975661f84272780272fc5bc64da8d
MD5 65f1a91b25b310613a32c6986c147d24
BLAKE2b-256 0a6b070354f08443b23970eea07f3b0a4107690c990c8ee8b3a8f7d96d7b9918

See more details on using hashes here.

Provenance

The following attestation bundles were made for hatch_env_plus-1.0.1.tar.gz:

Publisher: publish.yml on jenskeiner/hatch-env-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hatch_env_plus-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: hatch_env_plus-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hatch_env_plus-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b7bfb376a8574c5c64b39ef75cd6698c6db7d16b34f785828cddbd99e7da2fd3
MD5 e9f66101c88adaf197d19e4e38ef3c82
BLAKE2b-256 7b9fad46e83914b2b0c006f57cdaba4af642e030845660915957ed60026b8d46

See more details on using hashes here.

Provenance

The following attestation bundles were made for hatch_env_plus-1.0.1-py3-none-any.whl:

Publisher: publish.yml on jenskeiner/hatch-env-plus

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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