Repository navigation
Fix dependencies on deferred enumeration tests - #7471
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the
Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
|
@codex review |
Review: PR 7471 (deferred placeholder dependency resolution)The approach is sound. Sharing one Suggestions, none of them blockers:
Overall this is a clear improvement and correctly targeted. Approving in spirit, pending CI on |
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. |
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
[Medium impact] The PR appears safe to merge; the previous parallel lookup issue is fixed and no new actionable issues were found. SummaryThe PR replaces deferred placeholders with concrete cases before scheduling, rebuilds dependency lists, and keeps completed empty or failed expansions as dependency outcomes.
|
|
Reviewed every review surface for dd9ebe8. Claude and Codex both returned positive verdicts; no blocking findings remain. Claude's nonblocking suggestions: batching and allocation measurements are tracked in #7474, together with Greptile's scan concern. Retaining zero-child placeholders is intentional so completed outcomes remain dependency targets; expansion and re-resolution finish before scheduling, which makes clearing and rebuilding edges safe here. The internal flag naming/comment suggestions can accompany that follow-up without changing this correctness patch. The restored argument-injection failure regression exercises the failure dependency outcome; the empty-source discrepancy remains tracked on #7442. Engine integration coverage will run in CI after promotion, as documented in the PR. Promoting this reviewed head to ready to start CI. Auto-merge must wait for the new ready-for-review Claude run to complete and its comment to be checked. |
ReviewThe fix is sound. Dependencies on expanded placeholders are invalidated and then re-resolved against all concrete children before scheduling. The shared resolver instance is wired correctly in Suggestions
Overall this is a good fix with a clear root cause. I would address item 1 before merging. |
|
The earlier wait for run 41610303471 has ended: that run succeeded. Addressed the subsequent review findings in a956b53 while other checks were running.
Validation: dependency chain 8/8 in each mode; resolver tests 2/2; existing runner tests 9/9; #7391 exactly 2 passes and 3 expected failures in each mode; both new regressions fail with their respective fixes removed; diff check clean. Engine integration tests remain for CI per repository instructions. New-head CI/reviews are pending, so auto-merge is not armed. Fresh Claude review on this head is positive with four explicitly nonblocking polish suggestions. Disposition: the failed placeholder is intentionally retained as an outcome (covered by the new test); flag centralization and a context-reset helper can remain optional cleanup; reverse-edge indexing is unnecessary for this single-pass fix and would need separate graph benchmarks. No further correctness changes are required by that review. |
Review of #7471The approach is sound. The placeholder is replaced by its concrete cases in the shared resolver as one batch. Affected dependency edges are invalidated once and re-resolved against all cases. Context dependency lists are then rebuilt before scheduling. Sharing a single I did not build or run anything; this is from reading the diff. Observations, none blocking:
The change is correct in the cases I traced. Approving in spirit; the items above are polish. |
|
The earlier wait for run 41610303471 is complete (success), and current-head Claude/Codex reviews are positive with all review threads dispositioned. The remaining failure is Ubuntu net8.0 Worked that blocker under its own lock rather than rerunning the unchanged failure or deferring it: #7492 fixes capture isolation and closes #7435. Its new regression fails with the old helper and all five targeted disposal-span tests pass with the fix on net10.0. Once #7492 merges, refresh this PR onto main for fresh Ubuntu net8.0 CI. No on-hold label is needed. |
a956b53 to
54d38f7
Compare
|
The earlier blocker has cleared: #7492 is merged as 8112ade, and run 41626176380 completed successfully. Rebased this PR onto current origin/main to include the disposal-span isolation fix and replace the stale Ubuntu failure with fresh CI. Pushed 54d38f7. The rebase was conflict-free; range-diff confirms both patches are unchanged. Validation: DeferredDependencyTests net10.0 passed 8/8 in source-generated mode and 8/8 with --reflection; git diff --check passed. Engine integration tests remain for CI per repository instructions. All prior review surfaces were checked and findings have dispositions. Fresh-head CI and reviews are now required; auto-merge remains disabled until those gates pass. |
Review of #7471Overall this fixes the root cause correctly. Dependency edges that pointed at expanded placeholders are now invalidated in one batch, then re-resolved against the concrete children. Context dependency lists are rebuilt before scheduling. I only read the diff and did not build or run the tests. Good
Suggestions (non-blocking)
None of these block merging. The |
Deferred test expansion removed placeholders from the scheduled test list but left dependency resolution pointing at them. A dependent test could therefore execute the placeholder directly and report an extra failure.
Share the discovery resolver with the session coordinator, replace expanded placeholders as a batch and invalidate affected dependency edges, then resolve against all concrete cases and rebuild context dependency lists before scheduling. Already-completed empty or failed expansions remain dependency outcomes without re-resolving or entering placeholder execution. Regression counters are scoped to the test session. Add a deferred dependency chain regression and restore
DependsOn(..., ProceedOnFailure = true)in the original argument-registration failure regression.Closes #7409
Validation:
DeferredDependencyTestson net10.0: 8 passed in source-generated mode and 8 passed with--reflection.Bugs._7391on net10.0 in both modes: exactly 5 results, 2 passed and 3 expected failures; no extra placeholder failure.TUnit.Engine.Testslocally, per repository instructions.TestDependencyResolverTests: 2 passed. ExistingTestRunnerTests: 9 passed.git diff --checkpassed.An additional empty-source mode discrepancy reproduced against unchanged main is recorded on #7442: #7442 (comment).
Summary by CodeRabbit