Skip to content

ci: resolve the declared dependency floors on every matrix entry - #26

Open
lesnik512 wants to merge 1 commit into
mainfrom
ci/floors-gate
Open

lesnik512 wants to merge 1 commit into
mainfrom
ci/floors-gate

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Adds the floors job the org standard requires (standard.md §7), following the shape merged in modern-di-fastapi#56.

Why

pytest resolves every dependency at its newest, so the bottom of each declared range ships unexercised. Nothing in this repo installs what dependencies actually claims is supported. This job resolves direct dependencies at their floors, wheel-only, on every entry of the same matrix pytest uses, and runs the suite against them.

The two flags

--no-build: a floor reachable only by compiling an sdist is not a floor a user installing a wheel can reach. Without it the resolver builds one and the job reports success. --no-install-project is mandatory alongside it — --no-build would otherwise refuse to build this project too, and the tests import it from the checkout.

The dev-group floors

uv sync --resolution lowest-direct treats an unbounded name in [dependency-groups] as "any version", and resolves it to that project's first-ever release. Before this change the job resolved a harness from 2012 and never reached the assertions. The floors added there are lower bounds on the test harness only; the resolved-newest path is unchanged.

Choices inherited from the pilot

  • Raw uv, not a just recipe. §2 fixes which recipe names exist and what they mean; it does not require a job to go through one, and this job needs flags no existing recipe carries.
  • No coverage on this leg. The 100% gate rides test-ci on the resolved-newest leg; a coverage failure here would only obscure whether the floors install.

Verification

Run locally on every matrix interpreter: the suite passes at the floors on all of them. The resolved-newest path re-checked with just install && just lint-ci && just test-ci. Local runs are macOS/arm64; CI is the verdict on manylinux wheel coverage.

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