ci: run lock downgrade gate on pull requests - #11032
proggeramlug wants to merge 2 commits into
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (2)
Included review availability: Your plan provides up to 8 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe lint workflow now runs global sink isolation directly, keeps the lockfile detector self-test separate, and compares pull-request lockfiles with the base commit. A changelog entry documents the new pull-request downgrade gate. ChangesLockfile CI validation
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~12 minutes Change: Bug fix · Severity of issue fixed: Medium Sequence Diagram(s)sequenceDiagram
participant GitHubActionsLintJob
participant GitRepository
participant lock_no_downgrade.py
GitHubActionsLintJob->>GitRepository: Fetch BASE_SHA when absent
GitHubActionsLintJob->>lock_no_downgrade.py: Run --vs BASE_SHA
lock_no_downgrade.py-->>GitHubActionsLintJob: Report lockfile downgrade result
Merge Risk: ⚪ Minimal · up to No actionable merge-blocking risk remains in the reviewed changes. 🚥 Pre-merge checks | ✅ 6 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (6 passed)
Full details: Out of Scope Changes checkExplanation The workflow also changes the
✨ Finishing Touches 💡 1🧪 Generate unit tests (beta)
🛠️ Fix failing CI checks 💡
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Landed on main in merge train 257 (#11039, v0.5.1640), main Carried at head This train was split by blast radius after an earlier 35-PR assembly hit five gap regressions: it carries only PRs touching no lowering path. Trains rebase-merge, so commits get new SHAs and GitHub cannot mark this merged. Closed as landed. |
Summary
Run the existing resolved-dependency downgrade detector on every pull request against the pull request base. GitHub checks out the synthetic merge commit, so the comparison evaluates the lockfile that would actually land while allowing an old branch to inherit newer base pins normally.
Changes
lock_no_downgrade.py --vsagainst the checked-out merge result.lintjob and report its result even when an earlier independent lint step fails.Related issue
Fixes #11025
Test plan
python3 scripts/lock_no_downgrade.py --self-testpython3 scripts/lock_no_downgrade.py --vs HEAD(3,327 dependency edges compared)tempfile 3.27.0fixture: changed only its resolved edge fromgetrandom 0.4.2to0.3.4; gate exited 1 and named the consumer and downgradeperrymastergit diff --checkscripts/check_file_size.shcargo build --releaseclean — workflow-only change; no Rust build neededcargo test --workspace --exclude perry-ui-ios --exclude perry-ui-tvos --exclude perry-ui-watchos --exclude perry-ui-gtk4 --exclude perry-ui-android --exclude perry-ui-windowspasses — workflow-only changetest-files/or a#[test]in the affected crate — not user-facingdocs/src/— no API change-p perry-ui-<backend>locally on that platform — no UI changeScreenshots / output
Checklist
feat:/fix:/docs:/chore:prefix convention used in the logSummary by CodeRabbit
Bug Fixes
Cargo.lock, helping prevent newer dependency resolutions from being unintentionally replaced.Documentation
CI note
The live pull request run executed both new steps successfully:
Lockfile downgrade detector self-testandCargo.lock may not downgrade vs. pull request base. The aggregatelintjob is red only atPublic benchmark evidence freshness;python3 benchmarks/ci_public_baseline_check.pyalso fails on the unchanged base because the committed benchmark artifact is already stale, tracked by #10799.