Skip to main content

Add a packaging extra with pinned dependencies from a lock file

Project description

hatch-pinned-extra

License GitHub last commit PyPI - Downloads uv

Hatch plugin that adds a packaging extra to the wheel metadata with pinned dependencies from uv.lock.

Usage

# pyproject.toml
[build-system]
requires = [
    "hatchling",
    "hatch-pinned-extra>=0.0.1,<0.1.0",
]
build-backend = "hatchling.build"

[tool.hatch.metadata.hooks.pinned_extra]
name = "pinned"

If your package doesn't have any optional dependencies already, you will need to mark them as dynamic:

# pyproject.toml
[project]
dynamic = [
    "optional-dependencies",
]

Enabling the Plugin

The plugin requires the HATCH_PINNED_EXTRA_ENABLE environment variable to be set to a truthy value to activate (e.g. 1, true, yes, on). This design allows you to control when pinned dependencies are included:

# Build with pinned dependencies
HATCH_PINNED_EXTRA_ENABLE=1 uv build

# Update lockfile without constraints from pinned dependencies
uv lock --upgrade

This approach solves the circular dependency issue where pinned dependencies become constraints during uv lock --upgrade, preventing actual upgrades.

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_pinned_extra-0.1.1.tar.gz (196.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_pinned_extra-0.1.1-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file hatch_pinned_extra-0.1.1.tar.gz.

File metadata

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

File hashes

Hashes for hatch_pinned_extra-0.1.1.tar.gz
Algorithm Hash digest
SHA256 37359a20dc073652ffca978815c1df4e4e332080a86a0e35d3ea425d3f206e4c
MD5 4df224041f02d5fd9328f829cf4ecba9
BLAKE2b-256 6fcff12ae6f1633036922cda1a3f44572d56f0514107a8dcfaaeeff9141728fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for hatch_pinned_extra-0.1.1.tar.gz:

Publisher: build.yaml on edgarrmondragon/hatch-pinned-extra

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_pinned_extra-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hatch_pinned_extra-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dbabd0214f3840e962127c455ad8024bf3cd2b79cc0ba5155c99a7f21b06350f
MD5 789d04b19c449364fe69d846f9c270a3
BLAKE2b-256 4be4319ad1d518207006e357107f8dbd2b4fe195502a977468cfbb8ace198468

See more details on using hashes here.

Provenance

The following attestation bundles were made for hatch_pinned_extra-0.1.1-py3-none-any.whl:

Publisher: build.yaml on edgarrmondragon/hatch-pinned-extra

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