fix(build): relax the hatchling pin and unbreak the Arch recipe - #103
Conversation
`requires = ["hatchling>=1.27,<1.28"]` made every `--no-isolation` build fail
against a newer backend, which is exactly what distro packaging does:
ERROR Unmet dependencies (checked against /usr/sbin/python):
hatchling<1.28,>=1.27
wanted: <1.28,>=1.27
found: 1.30.1
The upper bound entered in fadcb87 ("release: prepare 1.3.1") with no stated
rationale — it was a bare `hatchling` before — and nothing depends on it.
Relaxed to `<2`, so only the next major is guarded.
The Arch recipe was independently broken: `pkgver` had moved to 1.3.5 while
`source`/`sha256sums` still pointed at the 1.3.3 sdist, so it could not pass
its own integrity check. Both now reference the published 1.3.5 sdist
(verified against pypi.org/pypi/mklang/json).
Released sdists up to 1.3.5 still carry the tight pin, so `prepare()` drops
the upper bound in the extracted tree; it is documented as removable once a
release ships the relaxed pin.
Verified end to end on Arch with python-hatchling 1.30.1: `makepkg -f` builds
mklang 1.3.5-1 and `check()` passes (654 passed, 7 skipped).
`tests/repo/test_brand_assets.py::test_tokens_match_platform` fails on this
branch and on main alike — pre-existing, untouched here.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe project now permits Hatchling versions from 1.27 through below 2. The Arch recipe uses the 1.3.5 source and checksum and patches extracted source distributions during preparation. Documentation and the changelog describe the packaging updates. ChangesPackaging compatibility
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Bug fix · Severity of issue fixed: Medium Suggested reviewers: Merge Risk: ⚪ Minimal · up to The Arch package can apply the Hatchling compatibility workaround to the matching 1.3.5 source, with no unresolved merge-blocking risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
requires = ["hatchling>=1.27,<1.28"]broke every--no-isolationbuild against a newer backend (distro packaging:found: 1.30.1). Relaxed to<2.The Arch recipe pointed
source/sha256sumsat the 1.3.3 sdist whilepkgverwas 1.3.5; both now reference the published 1.3.5 sdist, andprepare()drops the old upper bound from already-published sdists (removable once a release ships the relaxed pin).makepkg -fbuilds 1.3.5-1 with python-hatchling 1.30.1,check()passestests/repo/test_brand_assets.py::test_tokens_match_platformfails on main too — pre-existing, untouched🤖 Generated with Claude Code
Summary by CodeRabbit
Bug Fixes
Documentation