Track the four new TerminalTestReporter partials in the vendored-files manifest - #55563
Track the four new TerminalTestReporter partials in the vendored-files manifest#55563Evangelink wants to merge 1 commit into
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 2 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
This PR updates the eng/vendored-files.json manifest so the vendored-sync drift detector also tracks the four newly-introduced upstream TerminalTestReporter partial files from microsoft/testfx, ensuring upstream edits to those files surface as drift issues in dotnet/sdk.
Changes:
- Adds four new
sourcesentries underdotnet-test-terminal-reporterfor the new upstream partials (Coverage,FlakyTests,SlowestTests,TestDiscovery). - Extends the entry’s
notesto document known unported upstream functionality that won’t be surfaced by the existing.Summary.csdrift endpoint diff.
Show a summary per file
| File | Description |
|---|---|
| eng/vendored-files.json | Adds the four new upstream partial paths to the dotnet-test-terminal-reporter vendored entry and updates its notes. |
Copilot's findings
- Files reviewed: 1/1 changed files
- Comments generated: 1
| @@ -52,6 +60,14 @@ | |||
| "baseline_blob_sha": "9e805c0271f30b6ddf1c729dd286aab5956b52f4", | |||
| "scope": "reporter partial" | |||
| }, | |||
| { | |||
| "repo": "microsoft/testfx", | |||
| "ref": "main", | |||
| "path": "src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalTestReporter.FlakyTests.cs", | |||
| "baseline_ref_sha": "f935d2d3f9ce1ab831a361041b0ceaf92ff73363", | |||
| "baseline_blob_sha": "b61b9512cd73c34ecbd86c45abccaeaa5cc9765c", | |||
| "scope": "reporter partial" | |||
| }, | |||
…s manifest testfx split TerminalTestReporter.Summary.cs into focused partials (microsoft/testfx#10387), adding four upstream paths that the dotnet-test-terminal-reporter entry does not list. Until they are tracked, edits to the coverage, discovery, flaky-test and slowest-test rendering are invisible to the drift detector. The new sources are appended rather than sorted into the list: the drift bot keys issue identity on the positional source index, so inserting would orphan the open issues for .Summary.cs (dotnet#7) and .TestCompletion.cs (dotnet#8) and file duplicates at the shifted positions. Document that sources is append-only. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: b8858a93-4a8d-4028-b0db-c221ef158206
12373e7 to
bd1db3a
Compare
Folded in from the parallel PR #55563: the coverage, flaky-test and slowest-test sections landed upstream after the .Summary.cs baseline and were then moved into their own partials, so neither the .Summary.cs drift diff nor the newly tracked (split-baselined) partials will surface them. Name the backlog in the notes so it is not lost. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3328d629-8443-45a7-8ee2-97d3ce23dee5
|
Closing in favour of #55564, which lands the same four partials plus the fix this PR is missing. Inserting the sources alphabetically shifts #55564 appends the sources instead, so every existing index is preserved. The one thing this PR had that #55564 did not -- naming the unported coverage/flaky-test/slowest-test backlog in the entry |
Adds the four
TerminalTestReporterpartials that testfx introduced in microsoft/testfx#10387 to thedotnet-test-terminal-reporterentry, so upstream edits to them are visible to the drift detector. Tracked upstream as microsoft/testfx#10390.Background
testfx split
TerminalTestReporter.Summary.cs(715 lines) into focused partial files. The manifest enumerates each upstream partial individually rather than globbing the folder, so the four new paths were silently untracked:TerminalTestReporter.Coverage.csTerminalTestReporter.FlakyTests.csTerminalTestReporter.SlowestTests.csTerminalTestReporter.TestDiscovery.csNothing changed on the testfx side: its
TerminalReporterContract.propsincludes the reporter via a*.csglob, so the split needed no manifest edit there. Ours is the manifest that enumerates.What this PR does
Adds the four sources with
"scope": "reporter partial", baselined at testfxmainf935d2d3f9ce1ab831a361041b0ceaf92ff73363with blob SHAs read from the contents API. No existing baseline is touched — this PR is about the missing paths, not about reconciling the outstanding drift.Why they're appended instead of sorted alphabetically
I originally inserted them in alphabetical order, then caught this with a local
check --dry-run: the bot's idempotency marker is<!-- vendored-sync:id={id}:{source-index} -->, i.e. issue identity is the positional index. Inserting.Coverage.csand.FlakyTests.csahead of.Summary.csshifted it from index 7 to 10, which would have orphaned the open #55472 ((#7)) and #55473 ((#8)) and filed duplicates at the new positions.So the four are appended, and
eng/vendored-files.mdnow documents thatsourcesis append-only. That felt worth writing down — the trap is invisible unless you happen to run the checker before and after.One thing worth flagging
While checking what our fork already has, I found that
src/Cli/dotnet/Commands/Test/MTP/Terminal/TerminalTestReporter.cscontains noAppendCoverageSummary,AppendFlakyTests,AppendSlowestTestsorAppendRetrySummaryLines. That upstream work is not ported.More importantly, the
.Summary.csdrift issue can never surface it. That code was added toSummary.csupstream after our baseline (dba319b2) and then moved out into the new partials. A unified diff only compares two endpoints, so:Summary.cshad no coverage/flaky/slowest code (not written yet),main,Summary.cshas no coverage/flaky/slowest code (moved out),and the rendered diff therefore shows none of it. Added-then-moved content is invisible to endpoint diffing.
I did not try to encode that backlog in the baseline SHAs — the schema has no way to say "never synced", and faking one would produce a misleading diff. Instead I recorded it in the entry's
notes, which the bot already renders into every drift issue for this entry, so it will be in front of whoever picks up #55472. Happy to take a different approach if you'd rather express it structurally.Validation
validateis clean:And
check --dry-runagainst live upstream confirms the four new sources resolve, and that every pre-existing index is unchanged:Unrelated, noticed while running the above:
checkcrashes locally on Windows withUnicodeEncodeError: 'charmap' codec can't encode character '\ufeff'when it prints a dry-run body, because testfx's C# files are UTF-8 with BOM. Harmless in CI (UTF-8 default) and I left it alone, butPYTHONIOENCODING=utf-8is needed to run it locally on Windows.