[automated] Merge branch 'main' => 'release/dnup'#55104
Open
github-actions[bot] wants to merge 101 commits into
Open
[automated] Merge branch 'main' => 'release/dnup'#55104github-actions[bot] wants to merge 101 commits into
github-actions[bot] wants to merge 101 commits into
Conversation
Agent-Logs-Url: https://github.com/dotnet/sdk/sessions/0b21415a-9197-4077-9d78-23ba7e038f99 Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com>
Agent-Logs-Url: https://github.com/dotnet/sdk/sessions/6e25408c-7367-4663-bbd0-5a52d3b6fddb Co-authored-by: marcpopMSFT <12663534+marcpopMSFT@users.noreply.github.com>
… package Replace the hand-copied 'dotnet test' <-> Microsoft.Testing.Platform wire contract (IPC/ObjectFieldIds.cs) and terminal reporter (Commands/Test/MTP/ Terminal/*) with the source-only NuGet package from microsoft/testfx, so the shared source has a single source of truth instead of being duplicated by hand. This is a DRAFT to surface the remaining plumbing/reconciliation gaps; it does not build yet (see PR description). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rsion) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Terminal reporter: Microsoft.DotNet.Cli.Commands.Test.Terminal -> Microsoft.Testing.Platform.OutputDevice.Terminal (4 consumers) - IPC wire contract: add using Microsoft.Testing.Platform.IPC to the 8 serializers that reference the shared *FieldsId classes (previously resolved same-namespace via the now-deleted ObjectFieldIds.cs) - TerminalTestReporterOptions: ShowPassedTests/ShowProgress are Func<> in the shared source; wrap the bool values in lambdas - Terminal.FlatException -> FlatException Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- SystemConsole -> using Microsoft.Testing.Platform.Helpers - TargetFrameworkParser -> using Microsoft.Testing.Platform.OutputDevice dotnet.csproj now builds clean (0 warnings, 0 errors) against the Microsoft.Testing.Platform.Internal.DotnetTest package. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Delete the hand-copied TestStates, SessionEventTypes, HandshakeMessagePropertyNames, HandshakeMessageExecutionModes and ProtocolConstants from CliConstants.cs and consume the shared copies the package ships in Microsoft.Testing.Platform.IPC (via Constants.cs). The package's versions are supersets (TestStates.InProgress, HandshakeMessagePropertyNames.OrchestratorFeature) and wire-compatible. CliConstants and ProjectProperties stay - they are CLI-specific. Builds clean (0/0). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… version) - Add the Microsoft.Testing.Platform.Internal.DotnetTest dependency to eng/Version.Details.xml (next to Microsoft.Testing.Platform) and a darc-tracked $(MicrosoftTestingPlatformInternalDotnetTestVersion) property in eng/Versions.props. - Reference that property from Directory.Packages.props. - Pin to 2.3.0-preview.26325.4 (the older 2.3.0-preview.26321.1 predates the package). A real darc update will bump the testfx deps together to a coherent build/Sha. Restores from the public test-tools feed and builds clean (0 warnings, 0 errors). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move Microsoft.Testing.Platform, MSTest and Microsoft.Testing.Platform.Internal.DotnetTest together to the same coherent testfx build 2.3.0-preview.26325.4 / 4.3.0-preview.26325.4 (Sha d0f05558aa93a3b757ab579e63b80fbccdec81c6), verified identical across all three package nuspecs on the test-tools feed. This replaces the temporary mixed state where MTP/MSTest were pinned to an older build (.26321) that predated the Internal.DotnetTest package. Builds clean (0 warnings, 0 errors) restoring from the public test-tools feed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ettest-source-package # Conflicts: # Directory.Packages.props
Extend NuGetTransientErrorDetector to detect transport-level network errors (e.g. 'Connection reset by peer') without requiring 'NuGet.targets' in the output. This fixes intermittent failures in TemplateDiscoveryTests where 'dotnet tool install' fails with transient network errors that were not being retried because the error output doesn't reference NuGet.targets. Also check StdErr (not just StdOut) for transient errors in TestCommand's retry logic, since dotnet tool install may emit network errors to stderr. Fixes #51154 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…260626.13 On relative base path root Microsoft.Testing.Platform From Version 2.3.0-preview.26321.1 -> To Version 2.3.0-preview.26326.13 MSTest From Version 4.3.0-preview.26321.1 -> To Version 4.3.0-preview.26326.13
The Microsoft.Testing.Platform.Internal.DotnetTest source-only package's contentFiles are restored under the repo-local .packages/ folder and compiled into dotnet.csproj. The root .editorconfig enforces the file-header rule (IDE0073) and TreatWarningsAsErrors turns it into a build break across every CI leg. Exempt the restored package source from IDE0073, mirroring the existing artifacts/** exemption. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…y.Build.targets Replace the per-project <Using Include="Microsoft.NET.TestFramework.*" /> blocks (repeated across ~34 test projects, plus three GlobalUsings.cs files) with a single ProjectReference-driven ItemGroup in test/Directory.Build.targets that applies the five framework namespaces to any project referencing the SDK test framework (the legacy Microsoft.NET.TestFramework or its MSTest counterpart). The two framework projects themselves reference neither and keep their own local usings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…MSTest projects out of Arcade's xUnit Migrate Microsoft.DotNet.HotReload.Test.Utilities (the last SDK-owned xUnit v3 test helper) to MSTest: map Xunit.Assert/XunitException/NotEqualException to MSTest Assert/AssertFailedException, bind ITestOutputHelper to Microsoft.NET.TestFramework, delete the unused WatchSdkTest, and reference Microsoft.NET.TestFramework.MSTest instead of the legacy framework (dropping xunit.v3.extensibility.core + Xunit.Combinatorial). dotnet-watch.Tests, its only consumer, then drops its xunit.v3 package references and its DualOutputHelper no longer needs to bridge Xunit.ITestOutputHelper. With the legacy framework no longer leaking in transitively, the Microsoft.NET.TestFramework.MSTest reference is exposed as global,MSTestFramework so the previously-aliased types resolve. Separately, set UsingToolXUnit=false for MSTest.Sdk projects so Arcade stops injecting the unused xUnit v2 package set (xunit.core/assert/runner.console/runner.visualstudio) into every MSTest test output; MSTest projects run on Microsoft.Testing.Platform. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ComponentMocks and Msbuild.Tests.Utilities use no xUnit and no framework types directly, so repoint them from the legacy (xUnit v3) Microsoft.NET.TestFramework to the MSTest counterpart. With ComponentMocks no longer compiled against the legacy framework, dotnet.Tests and Microsoft.DotNet.PackageInstall.Tests can drop their legacy framework ProjectReference and the RemoveConflictingTestFrameworkReference (CS0433) workaround. This removes the legacy framework / xUnit v3 from all of these projects. The legacy framework now remains referenced only by the vendored NetAnalyzers tests and the dotnet/templating-owned Microsoft.TemplateEngine.Cli.UnitTests, both out of scope here. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The PR re-pointed production consumers to the package namespaces but left the unit tests on the deleted Microsoft.DotNet.Cli.Commands.Test.Terminal/.IPC types, so dotnet.Tests no longer compiled. Re-point the 8 affected test files to the package namespaces (Microsoft.Testing.Platform.Helpers / .OutputDevice.Terminal / .IPC) and adapt TerminalTestReporterOptions.ShowProgress to its Func<bool?> shape. TestNodeResultsStateTests and the two DiscoverTest cases in TestProgressStateTests still target SDK-local reporter enhancements (issue 51608 instanceId stale-add race fix; discovered-test source locations) that the published package does not yet contain; those require an upstream microsoft/testfx change + package bump and are intentionally left asserting the richer contract. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e types The package ships ALL of its types ([Embedded] attribute) - both the terminal reporter (TerminalTestReporter, TestProgressState, TestNodeResultsState, TerminalTestReporterOptions, TestOutcome) and the IPC protocol types (ObjectFieldIds, Constants). [Embedded] types are invisible to any OTHER assembly by design (InternalsVisibleTo does not override this), so the dotnet.Tests assembly cannot reference them at all - the prior namespace re-point made them resolve to the package but they remain unreferenceable across the assembly boundary. Salvaged (kept; these test SDK-owned logic and only referenced an [Embedded] CONSTANT incidentally, now inlined as a documented literal): TestApplicationProtocolVersionTests, DiscoveredTestMessagesSerializerTests. Removed (these directly construct/inspect [Embedded] package-owned types and cannot compile from a separate assembly; TestApplicationHandler's ctor takes the [Embedded] TerminalTestReporter so even a second compiled copy in the test assembly would mismatch by type identity): TerminalTestReporterTests, TestApplicationHandlerTests, TestNodeResultsStateTests, TestProgressStateTests, and the CapturingConsole helper they used. REGRESSIONS to upstream into microsoft/testfx (behavior already dropped by this PR's production-side deletion; coverage removed here): (1) issue #51608 instanceId stale-add race fix (TestNodeResultsState (instanceId, uid) keying); (2) discovered-test source locations (TestProgressState.DiscoverTest filePath/lineNumber + DiscoveredTestNames); (3) SDK TestApplicationHandler routing/recap coverage. These should be re-added as tests in testfx, or restored if the package stops marking these types [Embedded] and adds InternalsVisibleTo. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The vendored Microsoft.CodeAnalysis.NetAnalyzers.UnitTests imports test/Directory.Build.targets and is an xUnit (non-MSTest) test project that relied on the global Xunit using the centralization commit dropped, breaking compilation with CS0246 (Fact/Theory not found). Re-add the Xunit using under the IsTestProject and non-MSTest condition (MSTest projects must not get it, as it clashes with MSTest's Assert). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The microsoft/testfx dependency bump adds a --zero-tests-policy option to the Microsoft.Testing.Platform help output, which broke the MTPHelpSnapshotTests.VerifyMTPHelpOutput snapshot test across all platforms. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Switch Test.Utilities and TestReferenceAssembly off xUnit: - Test.Utilities -> MSTest.Sdk (IsTestApplication=false), drop xunit.v3.assert/Xunit.Combinatorial - Verifier wrappers: remove using Xunit; TestContext.Current.CancellationToken -> CancellationToken.None - Add MSTest-friendly TheoryData shim replacing xUnit's TheoryData - CodeMetricsTestsBase: Assert.* -> MSTest equivalents (Assert.Fail/IsEmpty) - TestReferenceAssembly: add Xunit.Sdk.NamespaceCollisionMarker so CA1724 tests no longer need the real xunit assembly Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Mechanical xUnit -> MSTest conversion across ~380 test files: - [Fact]/[Theory] -> [TestMethod]; [InlineData] -> [DataRow]; [MemberData]/[ClassData] -> [DynamicData] - [Trait] -> [TestProperty]; [Fact/Theory(Skip)] -> [TestMethod]+[Ignore]; [WindowsOnlyFact] -> [TestMethod]+[OSCondition(Windows)] - Assert.* -> MSTest equivalents (Assert.ThrowsExactly etc.); TestContext.Current.CancellationToken -> CancellationToken.None - Add [TestClass] to every test class (incl. inherited-test derived classes); make static/internal test methods instance/public - Project -> MSTest.Sdk; drop Microsoft.NET.TestFramework ref; add Combinatorial.MSTest; alias WorkItemAttribute to Test.Utilities' Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the xUnit IMessageSink-based diagnostic plumbing in the TestHelper library with a non-xUnit Action<string> write callback: - XunitLoggerProvider -> TestLoggerProvider (logs via Action<string>) - Delete SharedTestOutputHelper (xUnit ITestOutputHelper wrapper) - EnvironmentSettingsHelper / TestLoggerFactory ctors take Action<string>? - Drop the xunit.v3.extensibility.core PackageReference and update PublicAPI Remove the IXunitSerializable implementations from the Mocks library (MockCreationEffects, MockFileChange, MockTemplateInfo); MSTest data sources do not require xUnit serialization. Drop the xunit.v3.extensibility.core PackageReference. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Delete the 7 per-project NullMessageSink.cs no-op xUnit IMessageSink implementations and update the ~53 EnvironmentSettingsHelper call sites to use the new parameterless (Action<string>?) constructor. - Remove the IMessageSink/IMessageSinkMessage xUnit global-using aliases from Cli.UnitTests, TemplateSearch.Common.UnitTests and Utils.UnitTests. - Remove the now-dead 'ITestOutputHelper = Xunit.ITestOutputHelper' global-using aliases from projects that do not compile the shared CommandUtils sources (Orchestrator.RunnableProjects, IDE, Authoring.CLI unit/integration, TemplateSearch.TemplateDiscovery, Authoring.Templates). - Authoring.Tasks.IntegrationTests does compile the shared CommandUtils sources (src/TemplateEngine/Tools/Shared) which reference ITestOutputHelper by short name; repoint its alias to the runner-agnostic Microsoft.NET.TestFramework.ITestOutputHelper and reference Microsoft.NET.TestFramework.MSTest so it compiles without any xUnit dependency. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e string The migration's 'add using Test.Utilities;' helper was line-based and inserted the using after the last top-level using directive in the file. In DoNotCallToImmutableCollectionOnAnImmutableCollectionValueTests.Fixer.cs that last match was a 'using' line INSIDE the interpolated verbatim 'expected' fixed-code baseline string, corrupting the expected output and failing CA2009_Arity2_CSharpAsync for ImmutableDictionary/ImmutableSortedDictionary. Removed the stray line so expected matches the analyzer's actual fix output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…names Renames the runner-agnostic Helix work-item infrastructure from xUnit-specific names to runner-neutral ones after the xUnit -> MSTest/MTP migration. No functional change. - test/xunit-runner/ -> test/test-runner/ - XUnitRunner.targets/XUnitPublish.targets -> TestRunner.targets/TestPublish.targets - SDKCustomCreateXUnitWorkItemsWithTestExclusion -> SDKCustomCreateTestWorkItemsWithTestExclusion (class, file, and UsingTask declaration kept in sync) - SDKCustomXUnitProject item -> SDKCustomTestProject; XUnitWorkItemTimeout -> TestWorkItemTimeout and related targets/properties/task parameters - Updated xunit comment references in AssemblyScheduler.cs and AwaitableProcess.cs Fixes #55094 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
- Reword AssemblyScheduler XML doc to be runner-neutral (drop xUnit 'Fact' reference) and fix 'inherrited' typo - Fix 'inheritting' typo and tighten grammar in the zero-method class comment - Correct UnitTests.proj breadcrumb to the repo-relative 'test/UnitTests.proj' path Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…erge flow release/dnup has no darc/Maestro subscription, so the automated main -> release/dnup merge is its ONLY path to dependency + toolset updates; resetting the dep/toolset files froze dnup on stale Arcade (and eng/common) and blocked signed get-dotnetup publishing. Since dnup is the same 11.0.1xx band as main, track main's versions instead of resetting. Context: the reset list was copied verbatim from the standard release-band template (commit 7cd2064 "Add flow from main to release/dnup"); only ";CODEOWNERS" was later appended deliberately (commit 1d0f687 "Desync CodeOwners for dnup merge flow"). The template exists to serve an invariant that does NOT hold for dnup: normal release branches (8.0.1xx -> 8.0.4xx -> ... -> main) are each independently version-managed by their own darc subscriptions, so a code-merge must reset those files to avoid (a) fighting darc and (b) cross-band contamination (e.g. flowing 9.0 versions into an 8.0 branch). release/dnup has NO subscription and is the SAME band as main, so both justifications collapse and the reset only serves to freeze dnup. Per-file analysis: | File | Who normally owns it | Standard reason to reset | Applies to dnup? | Verdict | |---|---|---|---|---| | eng/Version.Details.xml | darc | Don't let a code-merge fight the target's darc subscription | No (no subscription) | Un-reset | | global.json | darc/arcade | Band-specific arcade + bootstrap SDK | No (same band) | Un-reset | | eng/common/* | arcade toolset | Must stay coherent with the branch's Arcade.Sdk pin | No (frozen => stale) | Un-reset | | eng/Versions.props | mixed | Holds both darc pkg versions and repo-owned version band | Partly | Un-reset (accept main's versions) | | NuGet.config | repo | Band-specific internal feeds (dotnet8 vs dotnet11) | Marginal (currently identical) | Neutral - safe to un-reset | | CODEOWNERS | repo (dnup-specific) | Avoid review-ping spam on auto-merge PRs | Yes - deliberate | Keep resetting | Additional per-file detail: - eng/Version.Details.xml -- the darc ledger (<Source Sha> + every <Dependency><Sha>). On a subscribed branch, resetting stops code-merges from fighting darc. dnup has no darc, so this auto-merge is the only thing that can advance it; resetting = permanent freeze. It was pinned at VMR 50e862b8 (Arcade 26311.113, ~June 11) -- literally why the signed get-dotnetup aka.ms link could not be created (the arcade link-pattern regex for get-dotnetup.{ps1,sh} had not arrived). - global.json -- arcade + bootstrap SDK. Standard branches pin a band-specific arcade and bootstrap dotnet. dnup's arcade (11.0.0-beta.26311.113) is the same band as main, so no cross-band risk. Must move together with Version.Details.xml (see coherence note). - eng/common/* -- the Arcade SDK's shipped script folder, NOT a darc dependency. When darc updates Microsoft.DotNet.Arcade.Sdk it overwrites eng/common/* from the new arcade package in the same operation, so eng/common is coupled 1:1 to the Arcade.Sdk pin. Resetting it in a code-merge (on a subscribed branch) prevents a foreign arcade's eng/common from desyncing from the branch pin. For dnup, since arcade itself was frozen, eng/common was frozen at the matching (stale) point -- the likely source of old CI plumbing (e.g. Linux images). Must be un-reset only in lockstep with global.json + Version.Details.xml. - eng/Versions.props -- the genuinely mixed file: it holds both darc-managed <XyzPackageVersion> props AND the repo-owned version band (VersionMajor/Minor/SDKMinor, PreReleaseVersionLabel, PreReleaseVersionIteration). ResetToTargetPaths is path-level, not property-level, so you cannot flow the package versions while freezing the band. Today it is moot -- dnup and main are both 11.0.1 / preview.6 (identical). The only reason to keep resetting would be an independent dnup version band/cadence, which we do not want; if ever needed it should live in a dnup-specific override file, not rely on this reset. - NuGet.config -- currently byte-identical between dnup and main (22 feeds, 0 diff). The template resets it because feed lists can be band-specific (a dotnet12 feed appears in main before a release branch wants it). Low-stakes for dnup; un-reset for consistency. - CODEOWNERS -- the one deliberate entry. Prevents main's full area-ownership rules from overwriting dnup's minimal CODEOWNERS and spamming reviewers on every auto-merge PR. Rationale is dnup-specific and sound; keep resetting. Coherence note: eng/Version.Details.xml + global.json + eng/Versions.props + eng/common/* are a single atomic unit and are un-reset together here. Un-resetting only some of them would desync the <Dependency> SHAs from the <PackageVersion> props, or run a new Arcade.Sdk against old eng/common scripts -- both worse than the status quo.
Reset patterns: - global.json - NuGet.config - eng/Version.Details.xml - eng/Versions.props - eng/common/* - CODEOWNERS
…55089) Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Marek Fišera <mara@neptuo.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
https://github.com/dotnet/sdk/blob/main/.merge_file_JsDg5L This doesn't seem to be a file that should exist, yet it's been on the SDK repo root for 5 months and was likely added by mistake in #52941
The merge of main into release/dnup brings in the repo-wide xUnit->MSTest migration and removes the shared xUnit test infrastructure. dotnetup.Tests lives only in release/dnup and was still xUnit, so the merged tree failed to build (e.g. CS0433: FactAttribute exists in both xunit.core and xunit.v3.core). Convert dotnetup.Tests to MSTest.Sdk to match the rest of the repo: - csproj -> MSTest.Sdk, reference Microsoft.NET.TestFramework.MSTest - [Fact]/[Theory] -> [TestMethod], InlineData -> DataRow, MemberData -> DynamicData - assertions mapped to MSTest (HasCount/IsGreaterThan/IsEmpty/Contains/ThrowsExactly) - PlatformSpecificFact and OperatingSystem method-entry guards -> [OSCondition] - ITestOutputHelper -> TestContext; Record.Exception shim; [assembly: DiscoverInternals] - remove xunit.runner.json, DnupCollections.cs, [assembly: CollectionBehavior] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Conflicts: # test/dotnetup.Tests/ReleaseManifestFilterTests.cs
…53957) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Jan Provazník <janprovaznik@microsoft.com> Co-authored-by: Jan Provazník <janpro@janpro.dev> Co-authored-by: Aleš Prokop <ales.prokop.dev@gmail.com>
…ondition (#55109) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Viktor Hofer <7412651+ViktorHofer@users.noreply.github.com>
…nner-neutral name (#55099)
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Rainer Sigwald <raines@microsoft.com>
After migrating dotnetup.Tests to MSTest.Sdk, the test assembly runs on Microsoft.Testing.Platform (MTP), which does not accept the xUnit v3 console runner options the pipeline passed: Unknown option '--noLogo' Unknown option '--result-trx' Replace `-noLogo -result-trx <path>` with the MTP equivalents on both the Windows and Unix legs: --report-trx --report-trx-filename dotnetup-tests.trx --results-directory <dir> Verified empirically: the Release-built dotnetup.Tests.dll runs with these args and produces dotnetup-tests.trx (VSTest format for PublishTestResults@2); full suite passes 1076/1094 with 18 skipped, exit code 0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…tnetTest package The source-only Microsoft.Testing.Platform.Internal.DotnetTest package (#54959) breaks source-build / the VMR (dotnet/dotnet#7529). Revert to hand-copying the shared "dotnet test" <-> Microsoft.Testing.Platform source (named-pipe wire contract + terminal reporter) and add a vendored-files drift-tracking mechanism ported from microsoft/testfx so we get notified when the upstream files change. - Revert PR #54959: restore the vendored Terminal reporter + ObjectFieldIds.cs + the wire constants in CliConstants.cs and their namespaces; drop the package reference, CPM version, darc wiring and NoWarn;CS0436. - Add eng/vendored-files.json (manifest of the testfx-sourced files), eng/vendored-files.md (docs), .github/scripts/check_vendored_files.py (drift detector) and .github/workflows/check-vendored-files.yml (weekly + PR checks). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… docs - AnsiTerminalTestProgressFrame: increment the frame index `i` per rendered line and enable the same-item duration-only optimization (drop the `&& false` and compare ProgressVersion), matching the correct microsoft/testfx source. Without `i++` every line compared against RenderedLines[0] and the trailing clear was always taken, breaking incremental rendering. - Rename the two TestProgressState tests + docs to say UnreachableException (what they actually assert) instead of InvalidOperationException. - Fix a stale xUnit reference in an MSTest test class comment. The two rendering bugs are SDK-only fork divergences; testfx upstream already has the correct logic, so no testfx port is needed. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
…DotnetTest package (#55130)
…#55097) PublishNetSdks in GenerateLayout.targets collects the per-SDK layout content via wildcard globs that are evaluated when the target runs. The Microsoft.NET.Sdk.WebAssembly folder is populated by CopyAdditionalFilesToLayout (AfterTargets="Build") on src/WasmSdk/Tasks/Microsoft.NET.Sdk.WebAssembly.Tasks.csproj. If that project has not finished building when the glob runs, the glob resolves to an empty folder and the entire Microsoft.NET.Sdk.WebAssembly SDK is silently dropped from the layout. This is the same class of ordering race that #15651 worked around for src/WebSdk by force-building those projects up front, but that workaround never covered the sibling src/WasmSdk directory (added later). Extend the force-build to include src/WasmSdk/**/*.csproj so the WebAssembly layout source folder is guaranteed to be populated before the glob runs. Diagnosed from the reproducibility pipeline (build-twice-and-diff): one build contained the 9 WebAssembly SDK files and the other did not; the binlogs showed PublishNetSdks copied 0 WebAssembly files in the failing build while CopyAdditionalFilesToLayout still ran completely, confirming an ordering race rather than an incremental/timestamp skip.
# Conflicts: # .github/copilot-instructions.md # eng/Version.Details.xml # github-merge-flow.jsonc # src/TemplateEngine/Tools/Microsoft.TemplateEngine.Authoring.TemplateVerifier/VerificationEngine.cs # test/UnitTests.proj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I detected changes in the main branch which have not been merged yet to release/dnup. I'm a robot and am configured to help you automatically keep release/dnup up to date, so I've opened this PR.
This PR merges commits made on main by the following committers:
Instructions for merging from UI
This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, not a squash or rebase commit.
If this repo does not allow creating merge commits from the GitHub UI, use command line instructions.
Instructions for merging via command line
Run these commands to merge this pull request from the command line.
or if you are using SSH
After PR checks are complete push the branch
Instructions for resolving conflicts
Instructions for updating this pull request
Contributors to this repo have permission update this pull request by pushing to the branch 'merge/main-to-release/dnup'. This can be done to resolve conflicts or make other changes to this pull request before it is merged.
The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote.
or if you are using SSH
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues.
Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1.