Conversation
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.
Adds the
floorsjob the org standard requires (standard.md §7), following modern-di-fastapi#56. This repo needed three changes before the job could tell the truth.1.
grpcio-toolswas hiding the floorgrpcio-toolspinsgrpcioto its own version, so any bound on it in[dependency-groups]silently drags the runtime floor up with it and the job reports a version it never tested. It is also not a test dependency — nothing undertests/imports it. Its only user is theprotorecipe, which now pulls it on demand:Verified by running
just proto: it regenerates the stubs as before.2. The declared floor was unreachable
With
grpcio-toolsout of the way, the floor installed and the suite failed on every interpreter:The committed stubs under
tests/protoscarryGRPC_GENERATED_VERSION = '1.82.1'and refuse to import below it.grpcio>=1.48was not a claim this repo could stand behind — nothing here has ever run against it, and thepytestmatrix could not notice because it resolves newest.grpcio 1.82.1 ships
cp310throughcp314wheels, so the floor is now flat and the per-interpreter markers are gone:"grpcio>=1.82.1,<2",Worth knowing for later: running
just protoraises this floor as a side effect. The regenerated stubs come out at whatevergrpcio-toolsis current — 1.84.0 today — and the floor has to move with them.Wheel coverage would have forced markers anyway if the stubs had allowed a lower floor: grpcio's first wheel is 1.41.0 for
cp310, 1.49.0 forcp311, 1.59.0 forcp312, 1.66.2 forcp313, 1.75.1 forcp314. The old two-line marker covered only the last of those.3.
protobufis floored at the gencode versionThe committed gencode is Protobuf Python 7.35.0 and validates the runtime's major and minor at import, so
protobuf>=7.35.Why the job exists
pytestresolves every dependency at its newest, so the bottom of each declared range ships unexercised. This job resolves direct dependencies at their floors, wheel-only, on every entry of the same matrixpytestuses, and runs the suite against them.--no-build: a floor reachable only by compiling an sdist is not a floor a user installing a wheel can reach — which matters more than usual here, since grpcio has no pure-python fallback and its sdist needs a C toolchain.--no-install-projectis mandatory alongside it —--no-buildwould otherwise refuse to build this project too, and the tests import it from the checkout.The matrix is the repo's own five entries; 3.14t stays out, per the exemption already recorded in the standard.
Verification
Run locally on all five interpreters at the floors:
grpcio==1.82.1,protobuf==7.35.0, 37 passed on each. Resolved-newest path re-checked withjust install && just lint-ci && just test-ci, andjust protore-run to confirm the recipe still works. Local runs are macOS/arm64; CI is the verdict on manylinux wheel coverage.