⏪ build: drop hatchling <1.30 cap now that 1.30 is yanked#592
Merged
Conversation
The cap added in tox-dev#591 worked around hatchling 1.30 emitting Metadata-Version 2.5, which released twine and PyPI do not accept yet. hatchling 1.30.0 has since been yanked from PyPI for that exact reason, so pip and uv skip it during resolution and the build lands on 1.29.0 (Metadata-Version 2.4) on its own. Drop the upper bound and rely on the yank. A relaxed floor keeps us forward compatible: once twine ships pypa/twine#1317, pypa/gh-action-pypi-publish cuts a release, and dependabot bumps the pinned publish action, a future unyanked hatchling emitting 2.5 can be adopted without another pyproject change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #591. That PR capped
hatchling<1.30because 1.30 emitted Metadata-Version 2.5 (PEP 794), which no released twine and PyPI accept yet.hatchling 1.30.0 has since been yanked from PyPI, with the yank reason: "the default core metadata version was increased to 2.5 and some major projects like twine do not yet support it." pip and uv skip yanked releases during resolution, so the build now lands on 1.29.0 (Metadata-Version 2.4) without any upper bound. ⏪ The explicit cap is therefore redundant.
Dropping it back to
hatchling>=1.27keeps us forward compatible: the full chain to publishing 2.5 needs a twine release (pypa/twine#1317), then a pypa/gh-action-pypi-publish release, then dependabot bumping the pinned publish action — once that lands, a future unyanked hatchling can emit 2.5 without another pyproject edit.Verified locally: with no cap the build resolves to hatchling 1.29.0, emits Metadata-Version 2.4, and
tox -e pkg_metapasses (uv build + twine check + check-wheel-contents).Refs:
Import-Name,Import-Namespace) pypi/warehouse#19083 — PyPI support for Metadata 2.5 (open)