ci(rq): Pin fakeredis<2.36.0 in tests#6454
Conversation
Codecov Results 📊✅ 2312 passed | ⏭️ 261 skipped | Total: 2573 | Pass Rate: 89.86% | Execution Time: 7m 14s 📊 Comparison with Base Branch
✨ No test changes detected All tests are passing successfully. ✅ Patch coverage is 100.00%. Project has 13672 uncovered lines. Coverage diff@@ Coverage Diff @@
## main #PR +/-##
==========================================
+ Coverage 40.28% 40.31% +0.03%
==========================================
Files 190 190 —
Lines 22905 22905 —
Branches 7856 7856 —
==========================================
+ Hits 9227 9233 +6
- Misses 13678 13672 -6
- Partials 509 507 -2Generated by Codecov Action |
There was a problem hiding this comment.
fakeredis<2.36.0 pin for rq 2.8.x is never applied — no rq 2.8.x test environment is generated
The ">=2.8,<2.9": ["fakeredis<2.36.0"] constraint added to config.py is dead code because pick_releases_to_test (using the has_majors path) selects only the highest version per major, which for major 2 is 2.9.0, so no rq 2.8.x environment is ever generated in tox.ini and the fakeredis pin has no effect. To actually test rq 2.8.x with the pin, a dedicated rq-v2.8.0 environment must also be added to the test matrix.
Evidence
releases.jsonlcontains rq 2.8.0, buttox.inishows onlyrq-v0.6.0,rq-v0.13.0,rq-v1.16.2,rq-v2.9.0, andrq-latest— confirmed by grep returning no results forrq-v2.8.populate_tox.pypick_releases_to_testuseshas_majors=Truefor rq (spans majors 0, 1, 2) and adds the max per major: major 2 → 2.9.0, so 2.8.0 is never selected._render_dependenciesinpopulate_tox.pyonly emits the>=2.8,<2.9constraint when a selected release satisfies it; none of [0.6.0, 0.13.0, 1.16.2, 2.9.0] do.tox.inilines 758–762 confirm nofakeredis<2.36.0constraint was rendered for rq.config.pystill retains the now-orphaned"==2.0.0b3": ["pydantic<2.14"]rule forpydantic_ai(b3 is also no longer tested), showing a pattern of version-specific dep rules surviving after version bumps.
Identified by Warden find-bugs
There was a problem hiding this comment.
fakeredis pin for rq 2.8.x never applies — constraint matches no selected test release
The ">=2.8,<2.9": ["fakeredis<2.36.0"] constraint in config.py is dead code: pick_releases_to_test selects the max version per major (rq 2.9.0 for the 2.x series), so rq 2.8.0 is never a test environment, and >=2.8,<2.9 never matches any selected release. As a side-effect, the next tox.ini regeneration will remove the existing rq-v2.9.0: fakeredis<2.36.0 and rq-latest: fakeredis<2.36.0 lines (generated by the old, broader constraint) because they no longer match the new narrower spec, potentially breaking rq 2.9.0 and latest tests.
Evidence
releases.jsonl(lines 215–216) confirms both rq 2.8.0 and 2.9.0 are in cache.pick_releases_to_test(populate_tox.py:386–401) withhas_majors=Truekeeps onlymax_versionper major; for 2.x the max is 2.9.0, so rq 2.8.0 is never added to the test set.SpecifierSet(">=2.8,<2.9", prereleases=True)does not containVersion("2.9.0")because packaging treats2.9 == 2.9.0, making< 2.9exclusive of 2.9.0._render_dependenciesand_render_latest_dependencies(populate_tox.py) only emit a dep line when a selected release isin restriction; since no selected release satisfies the constraint, nofakeredis<2.36.0line is emitted for any rq env.- The current
tox.ini(lines 759–760, 765) still carriesrq-v1.16.2,rq-v2.9.0, andrq-latestwithfakeredis<2.36.0from the pre-PR config; these will silently disappear on the next script run.
Identified by Warden find-bugs
fakeredis<2.36.0 in tests
Description
See description in
config.py.Issues
Reminders
uv run ruff.feat:,fix:,ref:,meta:)