Repository navigation
docs: test dependency floors strictly on the floor Python only (retire CI6) - #142
Merged
Merged
Conversation
This was referenced Oct 24, 2026
Merged
Merged
Merged
Merged
Merged
Merged
Merged
This was referenced Oct 24, 2026
Merged
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.
Summary
CI6 pinned every direct dependency to its declared floor on every matrix entry, wheel-only. On a newer Python the old floor often has no wheel, so repos met CI6 by adding a
python_versionfloor per dependency per new Python. A survey ofmaincounts 69 such lines across 13 repos, and reads 59 of them as existing only for wheel coverage. They change nothing for users: pip and uv pick the newest compatible version, and with builds disableduv pip compile --resolution lowest-directalready picks the version each ladder spells out by hand (checked for asyncpg in db-retry: 0.28, 0.29, 0.30, 0.31 and 0.32 for 3.11 to 3.15 from a singleasyncpg>=0.28).This retires CI6 and replaces it with CI10 and DP1:
_checks.ymlfirst.python_versionfloor only where a version installs on that Python and then fails there.The background, the survey of other projects and the per-repo counts are in a research note that is not part of this PR.
Changes
CI5, sinceCI6is retired.#CI6still land somewhere.floorsjob. Its Why keeps CI6's history (compose2pod#126, docs: drop the em dash from DEPLOYMENT.md #135, docs: add a services page and link it from the home page #139, faststream-outbox#190, lite-bootstrap#245) and adds why the whole tree is resolved without--no-depson the other entries: with it, uv pins pydantic 2.0 on 3.14, whose pydantic-core has no cp314 wheel, and the wheel-only install fails.What follows in the repos
Not in this PR. Each repo with a
floorsjob splits its compile step by matrix entry, then collapses its wheel-coverage ladders to the API floor. 3.15 comes back tofloorswherever only a missing ladder step blocked it, which leaves the upstream gaps in #140 (PyYAML, aiokafka, aiogram). The plan is to pilot on one repo, then sweep. that-depends'_checks.ymlcites CI6 in a comment and moves to CI10 in that sweep.Checklist
uv run pytestpasses (175 tests)uv run mkdocs build --strictpasses--no-depsand 2.12.0 without it; the wheel-only install fails on the first (checked locally, Linux x86_64 target)