Skip to content

Add the new TerminalTestReporter partials to dotnet/sdk's vendored-files manifest #10390

Description

Context

PR #10387 splits src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalTestReporter.Summary.cs (715 lines) into focused partial files, adding four new paths in that folder:

  • TerminalTestReporter.Coverage.cs
  • TerminalTestReporter.TestDiscovery.cs
  • TerminalTestReporter.FlakyTests.cs
  • TerminalTestReporter.SlowestTests.cs

Nothing needed to change on the testfx side: TerminalReporterContract.props includes the reporter source via a $(MSBuildThisFileDirectory)*.cs glob with a two-entry Exclude, so the new files are picked up automatically. The standalone Microsoft.Testing.Platform.TerminalReporterContract.UnitTests consumer compiles them with 0 warnings.

Problem

As TerminalReporterContract.props documents, this reporter source is hard-forked into dotnet/sdk, which tracks it in eng/vendored-files.json and runs a scheduled workflow that opens an issue whenever the upstream files change.

That manifest enumerates each partial individually rather than globbing the folder. Under the dotnet-test-terminal-reporter entry it currently lists TerminalTestReporter.cs, .ErroredAssemblies.cs, .Formatting.ControlCharacters.cs, .Formatting.cs, .Handshake.cs, .Lifecycle.cs, .Messaging.cs, .Summary.cs and .TestCompletion.cs, each with "scope": "reporter partial".

The four new paths are absent from that list. Until they are added, future edits to the coverage, discovery, flaky-test and slowest-test rendering are invisible to the SDK's drift detector — including bug fixes that the SDK's hard-forked copy would want.

The shrinking of TerminalTestReporter.Summary.cs (−467 lines) will trip the drift workflow, so this should get a human's attention on the next run. This issue exists so it isn't silently closed as "just a move".

Action

Add the four new paths to the dotnet-test-terminal-reporter entry in dotnet/sdk's eng/vendored-files.json, with "scope": "reporter partial" to match the existing entries, and port the split (or fold the moved code into the SDK's single TerminalTestReporter.cs, which is how it already reconciles our partials).

Longer term it may be worth considering whether that manifest entry can track the folder rather than individual files, so a future partial split doesn't need a coordinated change.

Activity

  1. Evangelink commented on Aug 3, 2026

    @Evangelink
    MemberAuthor

    Opened the SDK-side PR: dotnet/sdk#55563 — adds the four new paths (.Coverage.cs, .FlakyTests.cs, .SlowestTests.cs, .TestDiscovery.cs) to the dotnet-test-terminal-reporter entry in eng/vendored-files.json with "scope": "reporter partial", baselined at testfx main f935d2d3. No existing baseline is touched, so the SDK's open drift issues (dotnet/sdk#55472 for .Summary.cs, dotnet/sdk#55473 for .TestCompletion.cs) are unaffected.

    One finding worth recording here, because it makes this issue more important than "a bookkeeping gap":

    The SDK's hard-forked TerminalTestReporter.cs contains no AppendCoverageSummary, AppendFlakyTests, AppendSlowestTests or AppendRetrySummaryLines — that work is unported. And the .Summary.cs drift issue cannot surface it. The drift bot renders a unified diff between two endpoints, and that code was added to Summary.cs after the SDK's baseline (dba319b2) and then moved out into the new partials by #10387. So it is absent from both endpoints and appears nowhere in the diff. Added-then-moved content is structurally invisible to endpoint diffing.

    I did not try to encode that backlog in the baseline SHAs — the manifest schema has no "never synced" state, and inventing one would render a misleading diff. Instead the PR records it in the entry's notes, which the bot already renders into every drift issue for this entry, so it lands in front of whoever picks up dotnet/sdk#55472.

    The "track the folder rather than individual files" idea in the Action section is the real fix and would have prevented this; I left it out of the PR to keep it reviewable, and called it out there instead.

  2. Evangelink commented on Aug 5, 2026

    @Evangelink
    MemberAuthor

    Handled by dotnet/sdk#55564, merged on August 3, 2026. The SDK manifest now tracks all four new TerminalTestReporter partials while preserving the existing source indices. Remaining reporter reconciliation work is tracked separately by dotnet/sdk#55472 and dotnet/sdk#55473.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions