Skip to content

ci: Pin transitive dependencies for tests on Python>=3.8#6437

Merged
alexander-alderman-webb merged 30 commits into
masterfrom
webb/populate-tox/transitive-dependencies
Jun 2, 2026
Merged

ci: Pin transitive dependencies for tests on Python>=3.8#6437
alexander-alderman-webb merged 30 commits into
masterfrom
webb/populate-tox/transitive-dependencies

unpin fakeredis

3457293
Select commit
Loading
Failed to load commit list.
@sentry/warden / warden: code-review completed May 29, 2026 in 8m 7s

2 issues

code-review: Found 2 issues (1 medium, 1 low)

Medium

Constraints are not part of the on-disk cache key, causing stale dependency pins after config changes - `scripts/populate_tox/populate_tox.py:266-279`

The file cache in package_dependencies.jsonl is keyed on (name, version, python_version) only; if deps constraints for an integration change in TEST_SUITE_CONFIG, a subsequent run will return the previously-cached (now incorrect) resolved dependencies without re-running the pip dry-run, silently producing wrong transitive dependency pins.

Low

DryRunFailed silently skips transitive dependency pins for a Python version without marking the generated tox env - `scripts/populate_tox/populate_tox.py:1215-1219`

When _render_transitive_dependencies raises DryRunFailed for a particular (release, python_version), the loop continues without appending to release.transitive_dependencies, but the release stays in test_releases and gets rendered into tox.ini with pins from whichever Python versions succeeded. The failure is only surfaced via a print() during generation, so the generated tox.ini carries no marker that pinning is partially missing for one Python version. Since this is a developer-run CI tooling script with visible stdout output (not runtime/production code), severity is low — consider either failing the run, or emitting a comment into the generated env so the gap is auditable after the fact.


⏱ 7m 34s · 707.4k in / 28.5k out · $1.77

Annotations

Check warning on line 279 in scripts/populate_tox/populate_tox.py

See this annotation in the file changed.

@sentry-warden sentry-warden / warden: code-review

Constraints are not part of the on-disk cache key, causing stale dependency pins after config changes

The file cache in `package_dependencies.jsonl` is keyed on `(name, version, python_version)` only; if `deps` constraints for an integration change in `TEST_SUITE_CONFIG`, a subsequent run will return the previously-cached (now incorrect) resolved dependencies without re-running the pip dry-run, silently producing wrong transitive dependency pins.