Skip to content

docs(standard): pin the floors with builds allowed, then install them wheel-only - #115

Merged
lesnik512 merged 1 commit into
mainfrom
docs/floors-exact-pins
Sep 27, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
docs/floors-exact-pins

Conversation

@lesnik512

Copy link
Copy Markdown
Member

CI6 now prescribes how the floors job installs: two uv commands, the first pinning each declared floor with builds allowed and the second installing those pins with builds disabled.

Why

Wheel-only on its own doesn't fail on a floor that has no wheel. --no-build or --only-binary makes that version ineligible, and --resolution lowest-direct then climbs to the lowest version that has a wheel, so the job passes on a version the repo never declared. compose2pod's PyYAML>=6 resolved 6.0.1 and 6.0.2 on 3.12 and 3.13 while its gate stayed green (compose2pod#135). uv treats this as intended (astral-sh/uv#16186) and has no option that turns the climb into an error.

Resolving first with builds allowed pins the declared floor itself, and the wheel-only install then fails on it. compose2pod#139 piloted this. A throwaway PR that planted PyYAML>=6 on 3.12 failed only its floors (3.12) leg, at the install step.

Consequences for the repos

  • -r pyproject.toml installs the dependencies but not the project, so --no-install-project and the carve-out for building the project both go away. The tests import the project from the checkout, as before.
  • The dev group installs at newest (--group dev). Only the project's own dependencies are pinned, so dev dependencies no longer need floors to get a usable test harness.
  • Larger projects work the same way: sunpy, jwst, napari, scikit-image and scikit-learn test exact minimum pins rather than a lowest resolution.

The sweep that applies this to the 20 repos installing with uv sync --no-install-project follows. lite-bootstrap installs per-target extras and needs its own change.

This was referenced Sep 27, 2026
@lesnik512
lesnik512 merged commit 35f3830 into main Sep 27, 2026
3 checks passed
@lesnik512
lesnik512 deleted the docs/floors-exact-pins branch September 27, 2026 14:59
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