Skip to content

Fix vendored-files manifest paths for relocated source-gen helpers#9336

Merged
Evangelink merged 2 commits into
mainfrom
fix/vendored-files-manifest-paths
Jun 22, 2026
Merged

Fix vendored-files manifest paths for relocated source-gen helpers#9336
Evangelink merged 2 commits into
mainfrom
fix/vendored-files-manifest-paths

Conversation

@Evangelink

Copy link
Copy Markdown
Member

Problem

The scheduled Check vendored source files workflow (run 27944937795) failed in the Validate vendored-files.json step. Three manifest entries in eng/vendored-files.json pointed at src/Analyzers/MSTest.SourceGeneration/Helpers/ files that no longer exist — they were moved/removed by earlier refactoring PRs (#8586, #9118):

  • SystemPolyfills.cs
  • SymbolVisibility.cs
  • EquatableArray{T}.cs

Fix

  • source-gen-equatable-array → repointed to src/Analyzers/Shared/EquatableArray.cs (vendored ComputeSharp struct, now shared across generators per Share single EquatableArray<T> across source generators #9118).
  • source-gen-symbol-visibility → repointed to the surviving copy of the same upstream file at src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/SymbolVisibility.cs; id renamed to analyzers-symbol-visibility.
  • source-gen-system-polyfillsremoved. Its vendored NotNullWhenAttribute content was dropped entirely (only a locally-authored IsExternalInit shim remains), and the same upstream NullableAttributes.cs is already tracked by the existing polyfill-nullable-attributes entry.

Verification

python .github/scripts/check_vendored_files.py validate now reports Manifest OK: 19 entries, 20 sources.

The scheduled vendored-source check failed because three manifest entries pointed at MSTest.SourceGeneration/Helpers files removed by refactoring (#8586, #9118):

- Repoint source-gen-equatable-array to src/Analyzers/Shared/EquatableArray.cs.
- Repoint symbol-visibility to the surviving analyzers copy and rename id to analyzers-symbol-visibility.
- Remove redundant source-gen-system-polyfills (NotNullWhenAttribute vendored content was dropped; same upstream NullableAttributes.cs is already tracked by polyfill-nullable-attributes).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 22, 2026 11:16

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

Note

Copilot couldn't run its full agentic review because no GitHub Actions runner was available. Make sure your repository has a runner available to run Copilot's review, or add a copilot-setup-steps.yml file specifying one with the runs-on attribute. See the docs for more details.

Fixes eng/vendored-files.json entries that referenced source-gen helper files that were relocated/removed, unblocking the “Check vendored source files” workflow.

Changes:

  • Removed the obsolete source-gen-system-polyfills vendored entry.
  • Repointed SymbolVisibility tracking to the remaining analyzers copy and renamed its manifest id.
  • Repointed the EquatableArray entry to the new shared location.
Show a summary per file
File Description
eng/vendored-files.json Updates/removes vendored manifest entries to match current source layout for generator/analyzer helpers.

Copilot's findings

  • Files reviewed: 1/1 changed files
  • Comments generated: 1

Comment thread eng/vendored-files.json Outdated
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@Evangelink Evangelink left a comment

Copy link
Copy Markdown
Member Author

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. Posted via a maintainer's GitHub token, so it appears under their account — the account owner did not write or approve this content personally. Generated by the Expert Code Review workflow. To request a follow-up action, reply by tagging @copilot directly.

✅ 22/22 dimensions clean — no findings.


Scope: single file changed (eng/vendored-files.json) — a JSON metadata manifest with no C# code. Dimensions 1–12 (correctness, threading, security, API compat, performance, cross-TFM, resource management, defensive coding, localization, test isolation, assertion quality, flakiness) and 14–19 (data-driven tests, code structure, naming of source identifiers, documentation of source methods, analyzer quality, IPC wire compat) are N/A for a manifest-only change. Dimensions 20 (build infrastructure) and 21 (scope discipline) are the actionable ones; both are clean.

Verification performed:

Check Result
python .github/scripts/check_vendored_files.py validate Manifest OK: 19 entries, 20 sources. (exit 0)
src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/SymbolVisibility.cs exists
src/Analyzers/Shared/EquatableArray.cs exists
Old paths (MSTest.SourceGeneration/Helpers/{SystemPolyfills,SymbolVisibility,EquatableArray{T}}.cs) absent from repo
No remaining references to old IDs (source-gen-*) in any JSON/YAML/MD
New IDs follow <component>-<description> convention used by all other entries

Rationale quality: The notes fields are accurate and informative. The source-gen-system-polyfills removal is well-justified — the same upstream NullableAttributes.cs is already tracked by the pre-existing polyfill-nullable-attributes entry; removing the duplicate avoids split-tracking of a single upstream file. Both remaining renames are correctly cross-referenced to their originating PRs (#8586, #9118).

@Evangelink

Copy link
Copy Markdown
Member Author

🔴 Build Failure Analysis

The build fails with 4 errors (all the same root cause), but this PR did not introduce the failure.


Root Cause — Stale XLF translation file

'OutputDevice/Terminal/xlf/TerminalResources.cs.xlf' is out-of-date
with 'OutputDevice/Terminal/TerminalResources.resx'

Failing project: src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj
Target: _UpdateXlf
Task: UpdateXlf (from microsoft.dotnet.xlifftasks)

The XliffTasks CI check detects that TerminalResources.cs.xlf is out of sync with TerminalResources.resx and fails the build to prevent untracked resource changes from silently shipping. The error fires 3 times (once per project evaluation for multiple target frameworks) plus a final Build failed..


Origin — not this PR

Both TerminalResources.resx (55 string resources) and all xlf/TerminalResources.*.xlf files were newly added in the base-branch commit ed7797b ("Add orchestrator TestInProgress/TestDiscovered overloads for SDK parity #9294"). The XLF was hand-authored or generated by a different tool, and its content does not byte-for-byte match what XliffTasks /t:UpdateXlf would produce — causing this CI check to fail.

This PR only modifies eng/vendored-files.json and does not touch any of the Terminal resource or XLF files:

eng/vendored-files.json   ← only file changed by this PR

Fix (must be applied to the base branch, not this PR)

Run UpdateXlf on the owning project to regenerate all XLF files from the RESX:

dotnet msbuild src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj /t:UpdateXlf

Then commit the regenerated xlf/TerminalResources.*.xlf files (all 13 language variants live under src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/). Once that fix lands on the base branch and this PR is rebased/updated on top of it, the build will pass.

Note: Per repo guidelines, XLF files must never be hand-edited — always regenerate them via /t:UpdateXlf.

🤖 Automated content by GitHub Copilot. Posted via a maintainer's GitHub token, so it appears under their account — the account owner did not write or approve this content personally. Generated by the Build Failure Analysis workflow. · 465.3 AIC · ⌖ 12.7 AIC · ⊞ 46.9K · [◷]( · )

@Evangelink Evangelink merged commit 8c3e689 into main Jun 22, 2026
34 of 41 checks passed
@Evangelink Evangelink deleted the fix/vendored-files-manifest-paths branch June 22, 2026 12:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants