Skip to content

ci(rq): Pin fakeredis<2.36.0 in tests#6454

Merged
alexander-alderman-webb merged 3 commits into
masterfrom
webb/rq/pin-fakeredis
Jun 1, 2026
Merged

ci(rq): Pin fakeredis<2.36.0 in tests#6454
alexander-alderman-webb merged 3 commits into
masterfrom
webb/rq/pin-fakeredis

Conversation

@alexander-alderman-webb
Copy link
Copy Markdown
Contributor

@alexander-alderman-webb alexander-alderman-webb commented Jun 1, 2026

Description

See description in config.py.

Issues

Reminders

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 1, 2026

Codecov Results 📊

2312 passed | ⏭️ 261 skipped | Total: 2573 | Pass Rate: 89.86% | Execution Time: 7m 14s

📊 Comparison with Base Branch

Metric Change
Total Tests
Passed Tests
Failed Tests
Skipped Tests

✨ No test changes detected

All tests are passing successfully.

✅ Patch coverage is 100.00%. Project has 13672 uncovered lines.
✅ Project coverage is 40.31%. Comparing base (base) to head (head).

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        -2

Generated by Codecov Action

Copy link
Copy Markdown
Contributor

@sentry-warden sentry-warden Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.jsonl contains rq 2.8.0, but tox.ini shows only rq-v0.6.0, rq-v0.13.0, rq-v1.16.2, rq-v2.9.0, and rq-latest — confirmed by grep returning no results for rq-v2.8.
  • populate_tox.py pick_releases_to_test uses has_majors=True for 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_dependencies in populate_tox.py only emits the >=2.8,<2.9 constraint when a selected release satisfies it; none of [0.6.0, 0.13.0, 1.16.2, 2.9.0] do.
  • tox.ini lines 758–762 confirm no fakeredis<2.36.0 constraint was rendered for rq.
  • config.py still retains the now-orphaned "==2.0.0b3": ["pydantic<2.14"] rule for pydantic_ai (b3 is also no longer tested), showing a pattern of version-specific dep rules surviving after version bumps.

Identified by Warden find-bugs

Copy link
Copy Markdown
Contributor

@sentry-warden sentry-warden Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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) with has_majors=True keeps only max_version per 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 contain Version("2.9.0") because packaging treats 2.9 == 2.9.0, making < 2.9 exclusive of 2.9.0.
  • _render_dependencies and _render_latest_dependencies (populate_tox.py) only emit a dep line when a selected release is in restriction; since no selected release satisfies the constraint, no fakeredis<2.36.0 line is emitted for any rq env.
  • The current tox.ini (lines 759–760, 765) still carries rq-v1.16.2, rq-v2.9.0, and rq-latest with fakeredis<2.36.0 from the pre-PR config; these will silently disappear on the next script run.

Identified by Warden find-bugs

@alexander-alderman-webb alexander-alderman-webb changed the title ci(rq): Pin fakeredis for rq 2.8.x in tests ci(rq): Pin fakeredis<2.36.0 in tests Jun 1, 2026
@alexander-alderman-webb alexander-alderman-webb marked this pull request as ready for review June 1, 2026 06:49
@alexander-alderman-webb alexander-alderman-webb requested a review from a team as a code owner June 1, 2026 06:49
@alexander-alderman-webb alexander-alderman-webb merged commit 504cbe9 into master Jun 1, 2026
166 of 168 checks passed
@alexander-alderman-webb alexander-alderman-webb deleted the webb/rq/pin-fakeredis branch June 1, 2026 07:00
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.

2 participants