Repository navigation
perf(ci): scope feature permutations and build only test targets - #5531
Conversation
a08d776 to
7aee4eb
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
WalkthroughRust CI feature scripts now distinguish regular checks from exhaustive feature combinations. The selector routes feature checks based on changed paths, and the Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed commit: 7aee4eb.
No actionable bugs found. The scope reduction is coherent: direct feature-owner edits, script edits and shared build inputs retain exhaustive checks; transitive edits retain boundary builds, crypto contracts and dependency-absence assertions. Nightly invokes both --all scripts and keeps all-target compilation/linting. The --tests recipes retain Clippy-in-Test while excluding unused benchmark targets, with fixtures for library and binary-only crates wired through Nightly's gh test.
Direction: a reasonable explicit tradeoff, moving isolated permutations and ordinary benchmark/example coverage later rather than deleting them. No library API or wire change.
Verification: static review of selectors, feature scripts, recipes, regression fixtures and workflow wiring. No tests/builds or timing measurements executed; command-count savings do not establish runner-time savings.
Co-Authored-By: GPT-6 <noreply@openai.com>
Co-Authored-By: GPT-6 <noreply@openai.com>
7aee4eb to
597115e
Compare
Landing summary
(Written by Claude Opus 5.5) |
Problem
A transitive change such as kio selects nine isolated Tokio Clippy builds and ten media compile shapes. Nextest also compiles benchmark executables it never runs.
Approach
Use Cargo's
--teststarget selection, which includes library, binary, and integration tests and supports binary-only crates. Keep dependency-only PRs at feature boundaries: Tokio extremes and crypto contracts, media minimal/VPX builds and tests, and every dependency-absence check. Direct feature-owner edits and shared build inputs still run every isolated shape. Nightly explicitly runs both full feature scripts and retains its exhaustive all-target compile. Changes to either feature script now select its own checks. Retire the quest.Impact
rs tokio-featuresandrs media-featuresrun boundary checks by default;--allisolates every existing shape.Validation
just checkpasses: 7,433 default tests plus the capture, play, crypto-contract, minimal-media, and VPX suites, along with lint/docs/workflow/flake checks. Eight orchestration/target-selection regressions pass and remain wired into nightlygh test.The real Cargo fixture fails before the fix because an unexecuted benchmark contains
compile_error!, then passes after the fix for both library and binary-only crates. Command traces measure Tokio isolated Clippy builds at 9 -> 2 and media compile shapes at 10 -> 4 for a transitive diff; crypto refusal/identity tests, both media test invocations, and all ten dependency graphs remain. The workspace has 38 explicit benchmark targets, now excluded from ordinary nextest builds.Alternatives
Dropping feature checks entirely loses boundary and dependency-contract coverage. Running every isolated shape for every transitive change retains the measured redundant builds.
--lib --bins --testsrejects binary-only crates, so the recipe uses Cargo's test target set directly.Rebase over #5536
just rs testkeeps #5536's denied-warnings clippy-driver build, now over--tests. CI Check runslint, so the selection tests now default tolintand cover thenet-featuresrecipe from #5503, whose own nextest also builds--tests. Bench and example targets leave the PR gate: Nightlyfeaturesstill compiles and lints them (clippy --all-targets --all-features), and the bench smokes still run them.Follow-ups
Compare runner-minute savings in ordinary PRs; command counts are measured here, while cache-dependent wall-time savings are not claimed.
(Written by GPT-6, rebased by Claude Opus 5.5)
Need help on this PR? Tag
@codesmith-botwith what you need.