Skip to content

Avoid restoring SDK dependency anchors in CI - #10741

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/optimize-pipeline-restore
Aug 26, 2026
Merged

Amaury Levé (Evangelink) merged 1 commit into
mainfrom
dev/amauryleve/optimize-pipeline-restore

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Summary

  • move the Dependabot-only Microsoft.Playwright.MSTest.v4 and Aspire.Hosting.Testing references into a dedicated non-building project
  • omit those references when restoring TestFx.slnx, while preserving them for Dependabot's direct project discovery
  • remove the anchors from the MSTest acceptance-test restore graph

This avoids downloading Playwright's roughly 772 MB payload on every solution restore without disabling its dependency updates.

Validation

  • generated solution and direct-project restore graphs: TestFx.slnx has zero anchor dependencies, while the Dependabot project has both
  • completed a cold full-solution restore into an isolated package directory: 216 packages / 6.17 GB extracted, with zero Microsoft.Playwright* packages

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 907e12cd-3058-464a-9f99-2b917a33a11a
Copilot AI balanced review requested due to automatic review settings August 25, 2026 15:46
@Evangelink
Amaury Levé (Evangelink) enabled auto-merge (squash) August 25, 2026 15:48
@Evangelink Amaury Levé (Evangelink) added the state/needs-review Awaiting review from the team. label Aug 25, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Note

🤖 Automated review by GitHub Copilot. Generated by the Expert Code Review workflow. To request a follow-up action, reply by tagging @copilot directly.

Review Summary

Clean PR — moves Dependabot anchor PackageReferences from the acceptance test project into a dedicated eng/Dependabot.Dependencies/Dependabot.Dependencies.csproj, eliminating unwanted transitive restore of heavy packages (Playwright) during test builds.

# Dimension Verdict
1 Algorithmic Correctness ✅ N/A — no logic changes
2 Edge-Case Robustness ✅ N/A
3 Concurrency & Thread Safety ✅ N/A
4 Performance & Allocation ✅ N/A
5 Security ✅ N/A
6 Public API Surface ✅ No public API change
7 Backward Compatibility ✅ No behavioral change
8 Error Handling & Observability ✅ N/A
9 Cross-TFM Correctness ✅ Single net8.0 TFM; only used as a restore anchor
10 Localization ✅ N/A
11 Test Coverage ✅ N/A — infrastructure-only
12 Test Quality ✅ N/A
13 Code Style & Conventions ✅ Follows repo conventions
14 Naming ✅ Clear project name
15 Documentation & Comments ✅ Thorough XML comments explaining the SolutionPath gating and why PackageDownload doesn't work
16 MSBuild Correctness ✅ Build="false" in slnx + SolutionPath condition correctly isolates anchors from solution builds
17 IPC & Protocol ✅ N/A
18 Dependency Management ✅ Anchors use ExcludeAssets="all" and are CPM-managed
19 Configuration ✅ N/A
20 Scope Discipline ✅ Single concern — relocate Dependabot anchors
21 Licensing & Copyright ✅ N/A
22 TODO Policy ✅ No TODOs

Overall: No issues found. The SolutionPath condition is a nice touch — it ensures the anchors are only restored when Dependabot runs project discovery (where SolutionPath is unset), preventing the large Playwright transitive closure from being downloaded during normal solution restores. The Build="false" marker in TestFx.slnx and the absence from .slnf filters are both correct.

@github-actions

Copy link
Copy Markdown
Contributor

🧵 Parallel-safety audit — PR #10741

Nothing audited here touches process-global state, shared filesystem paths, or [ResourceLock] / [DoNotParallelize] declarations. Nothing to flag for parallel-safety.

This PR changes only Directory.Packages.props, TestFx.slnx, a new eng/Dependabot.Dependencies/Dependabot.Dependencies.csproj, and removes a PackageReference anchor block from test/IntegrationTests/MSTest.Acceptance.IntegrationTests/MSTest.Acceptance.IntegrationTests.csproj. That .csproj under test/ matched the config-file filter (it is a .csproj), but its diff only removes two Dependabot-anchor PackageReference items (Aspire.Hosting.Testing, Microsoft.Playwright.MSTest.v4, both ExcludeAssets="all") — no MSTestParallelizeScope/MSTestParallelizeWorkers property, <Parallelize> runsettings node, testconfig.json setting, or [assembly: Parallelize]/[assembly: DoNotParallelize] attribute is touched. No .cs test files changed at all.

Audited test/IntegrationTests/MSTest.Acceptance.IntegrationTests (config file touched, no parallelization-relevant change found).

Re-run with /parallel-audit.

🤖 Automated content by GitHub Copilot. Generated by the Parallel-safety audit on PR (on open / sync) workflow. · auto · 45.3 AIC · ⌖ 2.18 AIC · ⊞ 24.8K · [◷]( · ◷)

@github-actions

Copy link
Copy Markdown
Contributor

🧪 Expert test review — PR #10741

No new or modified test methods were identified in the changed regions of this PR. Nothing to review.

Re-run with /review-tests.

🤖 Automated content by GitHub Copilot. Generated by the Test Reviewer on PR (on open / sync) workflow. · auto · 29.8 AIC · ⌖ 0.887 AIC · ⊞ 16.9K · [◷]( · ◷)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Moves Dependabot-only dependency anchors out of the acceptance-test restore graph to reduce CI restore size.

Changes:

  • Adds a non-building Dependabot dependency project.
  • Excludes anchor packages from solution restores.
  • Updates related dependency documentation.
Show a summary per file
File Description
TestFx.slnx Registers the anchor project without building it.
eng/Dependabot.Dependencies/Dependabot.Dependencies.csproj Hosts restore-isolated package anchors.
MSTest.Acceptance.IntegrationTests.csproj Removes anchors from acceptance tests.
Directory.Packages.props Updates anchor-location documentation.

Review details

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

  • Files reviewed: 4/4 changed files
  • Comments generated: 1
  • Review effort level: Balanced

Comment thread eng/Dependabot.Dependencies/Dependabot.Dependencies.csproj
@Evangelink
Amaury Levé (Evangelink) merged commit 79d6cfd into main Aug 26, 2026
40 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the dev/amauryleve/optimize-pipeline-restore branch August 26, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state/needs-review Awaiting review from the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants