fix(packaging): point package readmes inside their project directories - #2088
Conversation
hatchling 1.27.0 (released upstream, installed unpinned in build envs) rejects readme paths outside the project directory. clients/python and bindings/python both declared readme = "../../README.md", so every e2e job now dies in 'Install wheel and test dependencies' when pip source-installs smg_client: ValueError: Readme path must be within the project directory: ../../README.md The metadata was always out-of-spec - a wheel embeds its readme, so referencing outside the sdist boundary never round-tripped - older hatchling merely tolerated it. Give smg_client its own README and point both packages at their local files (bindings/python already had one that the pyproject was pointing past). Verified by building the smg_client sdist against hatchling==1.27.0 exactly. Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
|
Warning Review limit reached
Next review available in: 24 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
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 |
Description
Problem
Every e2e job dies in Install wheel and test dependencies since hatchling 1.27.0 released upstream (unpinned in pip's build env):
clients/python(hatchling backend, source-installed byci_install_e2e_deps.shin every e2e lane) andbindings/python(maturin, tolerant today but same latent defect) both declaredreadme = "../../README.md". First hit: #2087's run 31460158272 (20+ jobs down); main's post-#2060 run hits the same wall as its e2e installs proceed. Same failure class as #2086 — unpinned build tooling moved underneath us.Solution
The metadata was always out-of-spec — a wheel embeds its readme, so a path outside the sdist boundary never round-tripped; older hatchling merely tolerated it. Point both packages at local readmes rather than pinning hatchling back:
bindings/pythonalready had a real README its pyproject was pointing past, andsmg_clientgets a short one describing the package.Changes
clients/python/README.md: new package readme;pyproject.tomlpoints at it.bindings/python/pyproject.toml: point at the existing localREADME.md.Test Plan
smg_clientsdist againsthatchling==1.27.0exactly (the version that broke CI): succeeds; fails identically to CI before the fix.Checklist
cargo +nightly fmtpasses (no Rust changes)cargo clippy --all-targets --all-features -- -D warningspasses (no Rust changes)