Skip to content

fix: pin hatchling below 1.32 so the wheel stays publishable - #33

Merged
igor-ctrl merged 1 commit into
mainfrom
fix/pin-build-backend
Aug 11, 2026
Merged

fix: pin hatchling below 1.32 so the wheel stays publishable#33
igor-ctrl merged 1 commit into
mainfrom
fix/pin-build-backend

Conversation

@igor-ctrl

Copy link
Copy Markdown
Owner

fix(build): pin hatchling below 1.32 so the wheel stays publishable

The v0.8.1 upload failed with:

InvalidDistribution: Invalid distribution metadata: '2.5' is not a valid
metadata version

hatchling 1.32.0 started emitting Metadata-Version 2.5; the twine inside our
pinned gh-action-pypi-publish (v1.14.0) only accepts up to 2.4, so it rejected
the wheel before it ever reached the approval gate. Nothing in this repo
changed to cause it — requires = ["hatchling"] was unpinned, so CI silently
picked up a new backend. v0.8.0 published fine yesterday for that reason alone.

Verified locally by building against each version: 1.30.1 -> 2.4, 1.31.0 -> 2.4,
1.32.0 -> 2.5. With the pin the wheel builds as 2.4 again.

Pinning also restores build reproducibility, which an unpinned build backend
cost us regardless of this failure. The forward-looking fix is to bump the
publish action to a release whose twine accepts 2.5 (v1.14.2 is the candidate)
and then widen this pin — that needs verifying against the real action, so it
is deliberately not bundled here.

The v0.8.1 upload failed with:

  InvalidDistribution: Invalid distribution metadata: '2.5' is not a valid
  metadata version

hatchling 1.32.0 started emitting Metadata-Version 2.5; the twine inside our
pinned gh-action-pypi-publish (v1.14.0) only accepts up to 2.4, so it rejected
the wheel before it ever reached the approval gate. Nothing in this repo
changed to cause it — `requires = ["hatchling"]` was unpinned, so CI silently
picked up a new backend. v0.8.0 published fine yesterday for that reason alone.

Verified locally by building against each version: 1.30.1 -> 2.4, 1.31.0 -> 2.4,
1.32.0 -> 2.5. With the pin the wheel builds as 2.4 again.

Pinning also restores build reproducibility, which an unpinned build backend
cost us regardless of this failure. The forward-looking fix is to bump the
publish action to a release whose twine accepts 2.5 (v1.14.2 is the candidate)
and then widen this pin — that needs verifying against the real action, so it
is deliberately not bundled here.
@igor-ctrl
igor-ctrl merged commit 7f661ae into main Aug 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant