Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Remove terminal-exclusive resource keys now served by TerminalResources - #9260

Merged
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources
Jun 19, 2026
Merged

Remove terminal-exclusive resource keys now served by TerminalResources#9260
Amaury Levé (Evangelink) merged 1 commit into
mainfrom
copilot/dedup-platform-terminal-resources

Conversation

@Evangelink

Copy link
Copy Markdown
Member

What

Removes 32 terminal-reporter resource keys from PlatformResources that were left duplicated after the terminal strings were extracted into TerminalResources (#9246 / #9253, shipped as source in the Microsoft.Testing.Platform.Internal.DotnetTest package).

This is the resource-cleanup follow-up tracked alongside the terminal-sharing effort (#9246#9256).

Why these 32 are safe to remove

For each removed key I verified:

  • Zero PlatformResources.<key> references anywhere in src/ or test/ — the terminal code now reads them from TerminalResources.
  • Absent from the hand-maintained !IS_CORE_MTP accessor block in PlatformResources.cs (the block that extension projects and the IS_MTP_UNIT_TESTS path consume), so the cross-assembly surface is unaffected.

The 12 still-referenced duplicates (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are intentionally kept because non-terminal platform code still uses them via PlatformResources.

How

  • Deleted the 32 <data> entries from PlatformResources.resx.
  • Regenerated all 13 PlatformResources.*.xlf via dotnet msbuild .../Microsoft.Testing.Platform.csproj /t:UpdateXlf (pure deletions — no manual xlf edits).

Verification

  • Platform rebuilds clean on net8.0 / net9.0 / netstandard2.0 (0 warnings).
  • Representative extension projects that link PlatformResources.cs (Microsoft.Testing.Platform.MSBuild, Microsoft.Testing.Extensions.TrxReport) build clean.
  • Full Microsoft.Testing.Platform.UnitTests suite green: 1198 total, 0 failed.
  • PlatformResources.resx validated as well-formed XML; UTF-8 BOM preserved; diff is pure deletions across the resx + 13 xlf.

#9246/#9253 extracted the terminal reporter strings into TerminalResources
(shipped with the Internal.DotnetTest source package). 32 of those keys were
left duplicated in PlatformResources purely to avoid churn; they now have zero
PlatformResources.<key> references in src or test and are absent from the
hand-maintained !IS_CORE_MTP accessor block, so the copies are dead.
Remove the 32 keys from PlatformResources.resx and regenerate all 13 xlf via
UpdateXlf (pure deletions). The 12 keys still referenced through PlatformResources
(e.g. Aborted, Failed, ZeroTestsRan, the ActiveTestsRunning_* progress strings)
are intentionally kept.
Verified: platform rebuilds clean on net8.0/net9.0/netstandard2.0 (0 warnings);
representative extensions (MSBuild, TrxReport) build clean; full
Microsoft.Testing.Platform.UnitTests suite green (1198, 0 failed).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopilotAI review requested due to automatic review settings June 19, 2026 16:20

CopilotAI 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

This PR is a localization/resource cleanup in Microsoft.Testing.Platform (MTP) that removes terminal-reporter resource keys from PlatformResources now that those strings are served by TerminalResources (to reduce duplication and keep the platform-wide resource set focused).

Changes:

  • Removed terminal-reporter-specific <data> entries from PlatformResources.resx.
  • Removed the corresponding <trans-unit> entries from the localized PlatformResources.*.xlf files (pure deletions aligned with the .resx).
  • Kept PlatformResources.cs’s cross-assembly accessor surface unchanged (no new keys added there).
Show a summary per file
FileDescription
src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resxRemoves terminal-only resource keys that are now owned by TerminalResources.
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlfDeletes localized trans-units for removed keys (Czech).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlfDeletes localized trans-units for removed keys (German).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlfDeletes localized trans-units for removed keys (Spanish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlfDeletes localized trans-units for removed keys (French).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlfDeletes localized trans-units for removed keys (Italian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlfDeletes localized trans-units for removed keys (Japanese).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlfDeletes localized trans-units for removed keys (Korean).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlfDeletes localized trans-units for removed keys (Polish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlfDeletes localized trans-units for removed keys (Portuguese - Brazil).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlfDeletes localized trans-units for removed keys (Russian).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlfDeletes localized trans-units for removed keys (Turkish).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlfDeletes localized trans-units for removed keys (Chinese - Simplified).
src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlfDeletes localized trans-units for removed keys (Chinese - Traditional).

Copilot's findings

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

@Evangelink
Amaury Levé (Evangelink) merged commit afd62d1 into mainJun 19, 2026
18 of 25 checks passed
@Evangelink
Amaury Levé (Evangelink) deleted the copilot/dedup-platform-terminal-resources branch June 19, 2026 16:30

Copy link
Copy Markdown
MemberAuthor

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.

Review Summary

All claims in the PR description have been independently verified against the live repo. The change is a clean, well-scoped resource deduplication with no issues found.


Verification Findings

Removed key count confirmed:git diff HEAD~1 HEAD shows exactly 32 keys removed from PlatformResources.resx (225 → 193 entries). Each of the 13 xlf files has a uniform 178 lines deleted, consistent with machine-generation via UpdateXlf.

All 32 removed keys exist in TerminalResources.resx: Verified with a per-key grep — every one of the 32 keys scores count=1 in TerminalResources.resx. No key was orphaned.

Zero PlatformResources.* references to removed keys:grep -r "PlatformResources\.(Actual|CancelledLowercase|ConsoleIsAlreadyInBatchingMode|...)" --include="*.cs" src/ test/ returned 0 hits. The only occurrences of those identifier strings in .cs files are in TerminalResources.cs (the new home).

PlatformResources.cs!IS_CORE_MTP accessor block is clean: None of the 32 removed keys appear as properties. The hand-maintained block exposes only the still-present keys (InternalLoopAsyncDidNotExitSuccessfullyErrorMessage and the IS_MTP_UNIT_TESTS sub-block covering Aborted, Failed, Passed, TotalLowercase, FailedLowercase, SucceededLowercase, SkippedLowercase, ZeroTestsRan, ActiveTestsRunning_*, and a set of PlatformCommandLine* keys).

12 "kept duplicate" keys verified correct: All 12 (Aborted, CancellingTestSession, PressCtrlCAgainToForceExit, Failed, FailedLowercase, Passed, SkippedLowercase, TotalLowercase, ZeroTestsRan, ActiveTestsRunning_MoreTestsCount, ActiveTestsRunning_FullTestsCount, SucceededLowercase) are still present in PlatformResources.resx (count=1 each) and are actively referenced via PlatformResources.* in non-terminal platform code and unit tests (e.g. SimplifiedConsoleOutputDeviceBase.cs, TestRunSummaryHelperTests.cs).

XLF format spot-check:PlatformResources.cs.xlf opens with the standard XLIFF 1.2 header, and entries follow the machine-generated <trans-unit id="..."><source>...</source><target state="...">...</target><note /></trans-unit> schema. No sign of manual editing.


22-Dimension Verdict Table

#DimensionStatusNotes
1Algorithmic CorrectnessZero PlatformResources.* refs to any removed key confirmed by grep
2Logic / SemanticsPure deletion — no logic changes
3Naming & ConventionsN/ANo new names introduced
4Code ClarityEliminates dead duplication
5PerformanceN/A
6Memory / Resource ManagementN/A
7Error HandlingN/A
8SecurityN/ANo secrets, no input handling
9Test CoverageFull unit test suite green (1198/0 per commit message); removed keys not referenced in tests
10Localization Done Right13 xlf files regenerated via UpdateXlf; 178 lines deleted per file (consistent); machine-generated format confirmed
11Backward CompatibilityAll resources are internal; !IS_CORE_MTP accessor block unchanged; no public API affected
12Thread SafetyN/A
13Async / AwaitN/A
14Dependency ManagementN/A
15Build / Project ConfigN/A
16DocumentationN/A
17Scope DisciplineExactly 14 files (1 resx + 13 xlf), all pure deletions, single concern
18Kept-Duplicate CorrectnessAll 12 claimed-kept keys present in resx and actively used by non-terminal code
19Cross-Assembly Surface (!IS_CORE_MTP)None of the 32 removed keys appear as properties in the hand-maintained accessor block
20Resource Consistency (resx ↔ TerminalResources)Every removed key confirmed present in TerminalResources.resx (count=1 each)
21Public APIPlatformResources is internal static partial class; no public surface affected
22Commit QualityDetailed commit message with reproduction steps and verification evidence

Overall: ✅ No blocking issues. The PR achieves exactly what it claims.

Sign up for freeto 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

@Evangelink