Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
609775c
Update shipped APIs by @Evangelink in #10949 (backport to rel/4.4) (#…
nohwnd-bot Sep 2, 2026
a81dff8
Bump CodeCoverage to 18.11.0 by @Evangelink in #10952 (backport to re…
nohwnd-bot Sep 2, 2026
c53b77e
Move analyzer releases to shipped by @Evangelink in #10961 (backport …
nohwnd-bot Sep 2, 2026
a3ae78e
Prepare rel/4.4 for bug fix release (#10959)
Evangelink Sep 2, 2026
c872a02
Localized file check-in by OneLocBuild Task: Build definition ID 1218…
nohwnd-bot Sep 3, 2026
ede50d7
Document experimental API instability by @Evangelink in #10985 (backp…
nohwnd-bot Sep 3, 2026
e773c04
Fix Retry extension warning under Native AOT by @Evangelink in #10981…
nohwnd-bot Sep 3, 2026
61fb285
Prevent .NET Framework telemetry consumer starvation by @Evangelink i…
nohwnd-bot Sep 3, 2026
8efaf65
Localized file check-in by OneLocBuild Task: Build definition ID 1218…
nohwnd-bot Sep 3, 2026
3507901
Respect SatelliteResourceLanguages for adapter resources by @Evangeli…
nohwnd-bot Sep 3, 2026
0ddf59e
Fix source-generated constant emission by @Evangelink in #10996 (back…
nohwnd-bot Sep 3, 2026
d1b3fa1
Narrow source generator DynamicDependency rooting by @Evangelink in #…
nohwnd-bot Sep 3, 2026
20cec20
Remove MSBuildCache integration by @Evangelink in #11007 (backport to…
nohwnd-bot Sep 3, 2026
3d4c953
Persist skipped test visibility for solution runs by @Evangelink in #…
nohwnd-bot Sep 3, 2026
7b7eaea
Backport #10963 and #10997 to rel/4.4 (#11020)
Evangelink Sep 4, 2026
518fb4e
Improve Azure DevOps authentication diagnostics by @Evangelink in #10…
nohwnd-bot Sep 4, 2026
6ce38ce
Backport localization updates to rel/4.4 (#11042)
Evangelink Sep 4, 2026
2bc2b64
Preserve graceful cancellation through test host controller by @Evang…
nohwnd-bot Sep 7, 2026
88f01bd
Fix flaky in-process disposal timing test by @Evangelink in #11074 (b…
nohwnd-bot Sep 7, 2026
eedce60
Backport recent localization updates to rel/4.4 (#11115)
Evangelink Sep 8, 2026
a87474c
Make whitespace string diff markers visible by @Evangelink in #11109 …
nohwnd-bot Sep 8, 2026
0d4b909
Fix timing-sensitive message bus test on rel/4.4 (#11119)
Evangelink Sep 9, 2026
37cfcfc
Backport localization lock metadata to rel/4.4 (#11143)
Evangelink Sep 9, 2026
c14c7bf
Fix flaky TestHostControllerCancellationServer disposal (RST instead …
nohwnd-bot Sep 9, 2026
741a4e8
Localized file check-in by OneLocBuild Task: Build definition ID 1218…
nohwnd-bot Sep 9, 2026
d7ae3a4
Localized file check-in by OneLocBuild Task: Build definition ID 1218…
nohwnd-bot Sep 10, 2026
1c22f3b
Handle test host controller pipe timeouts
Evangelink Sep 9, 2026
1379df6
Improve MTP test host timeout diagnostics
Evangelink Sep 9, 2026
63ce9aa
Add pipe timeout regression coverage
Evangelink Sep 9, 2026
3634578
Polish MTP test host lifecycle logs
Evangelink Sep 9, 2026
625d759
Address test host timeout review feedback
Evangelink Sep 10, 2026
1e21377
Polish MTP timeout diagnostics
Evangelink Sep 10, 2026
ead0eba
Handle ConnectionReset exception in pipe timeout test on Unix platforms
Evangelink Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,9 @@ When making change to resource files, you MUST:
- Public API for MSTest and Microsoft.Testing.Platform MUST NOT use `init` accessors.
- Exception: Existing APIs in Microsoft.Testing.Platform, because changing them right now would be a breaking change. However, we MUST NOT introduce **new** APIs using `init` accessors.
- IMPORTANT: Make sure to apply this rule strictly both during PR review and when working on code changes.
- Every API marked with `[Experimental]` MUST include this sentence in its XML documentation `<remarks>`: `This API is experimental. It may change, break, or be removed at any time without notice.` Documentation tooling does not reliably surface the attribute itself.
- Add the sentence in a `<para>` when `<remarks>` already contains other text; otherwise, add a new `<remarks>` block.
- Apply this rule to experimental members as well as types.

## Testing Guidelines

Expand Down
7 changes: 3 additions & 4 deletions .github/workflows/build-failure-analysis-command.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 3 additions & 4 deletions .github/workflows/build-failure-analysis.lock.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions .github/workflows/shared/build-failure-analysis-fetch.md
Original file line number Diff line number Diff line change
Expand Up @@ -504,11 +504,10 @@ jobs:
# than guessing its artifact name from its display name. Artifact
# naming is configurable per job group and does not necessarily match
# the timeline display name. Name matching reported healthy legs as
# missing on real builds — every macOS failure, and every
# `msbuild_cache_seed` job. Arcade's
# missing on real builds — including every macOS failure. Arcade's
# `Publish logs` task record answers the question directly, so no
# spelling has to be inferred. A failed job carrying no such task
# (the `Detect changed paths` classifier, the cache-seed stage) does
# (the `Detect changed paths` classifier) does
# not publish logs at all and is not treated as a missing leg.
#
# `canceled` and `abandoned` legs count alongside `failed`: they also
Expand Down
35 changes: 0 additions & 35 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,6 @@
<ExtrasEnableEmbeddedResourceCodeGenerator>false</ExtrasEnableEmbeddedResourceCodeGenerator>
</PropertyGroup>

<!-- MSBuildCache only supports clean, Windows graph builds. Keep it opt-in so regular and incremental builds are unchanged. -->
<PropertyGroup>
<MSBuildCacheEnabled Condition="'$(MSBuildCacheEnabled)' == ''">false</MSBuildCacheEnabled>
</PropertyGroup>

<PropertyGroup Condition="'$(MSBuildCacheEnabled)' == 'true'">
<!-- Change this value to invalidate all existing testfx cache entries. -->
<!--
Azure Pipeline cache entries are immutable. Debug and Release are built in parallel in CI, and some
configuration-independent projects otherwise race to publish the same selector/output entries. Keep the
configurations in separate universes so one seed cannot fail the other with PipelineCacheItemAlreadyExists.
-->
<MSBuildCacheCacheUniverse Condition="'$(MSBuildCacheCacheUniverse)' == ''">testfx-v1-$(Configuration)</MSBuildCacheCacheUniverse>
<MSBuildCacheLocalCacheRootPath Condition="'$(MSBuildCacheLocalCacheRootPath)' == ''">$(RepoRoot)artifacts\msbuild-cache</MSBuildCacheLocalCacheRootPath>
<MSBuildCacheLocalCacheSizeInMegabytes Condition="'$(MSBuildCacheLocalCacheSizeInMegabytes)' == ''">20480</MSBuildCacheLocalCacheSizeInMegabytes>
<!--
By default MSBuildCache hardlinks every output into its content-addressable store and marks it read-only,
both when it materializes a cache hit and when it ingests the outputs of a cache miss. That leaves the whole
output tree read-only, so the Arcade restore/sign/pack pass that runs after the cached graph build cannot
rewrite files such as artifacts\bin\**\*.deps.json or the generated src\Package\MSTest.Sdk\Sdk\Sdk.props,
and fails with UnauthorizedAccessException. Clearing the read-only attribute is not a valid workaround: the
output file and the cache entry share an inode, so writing through it corrupts the cache and can silently
rewrite a same-content output belonging to another project.

Matching every output with '\**' switches MSBuildCache to CopyNoVerify, which copies instead of hardlinking
and leaves the outputs writable. It costs extra I/O, and it relaxes duplicate-output detection so that two
projects may write the same path when the content is identical - producing that path with different content
is still an error. The pattern participates in the fingerprint, so changing it invalidates every cache entry
until the next main-branch seed repopulates them.
-->
<MSBuildCacheIdenticalDuplicateOutputPatterns>$(MSBuildCacheIdenticalDuplicateOutputPatterns);\**</MSBuildCacheIdenticalDuplicateOutputPatterns>
<!-- Visual Studio telemetry writes outside the repository after the project that launched it has finished. -->
<MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns>$(MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns);$(WinDir)\**;\**\ApplicationInsights.config;\**\AppData\Local\Microsoft\VSApplicationInsights\**;\**\AppData\Local\Microsoft\Windows\INetCache\**</MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns>
</PropertyGroup>

<!-- Language configuration -->
<PropertyGroup>
<!-- default to allowing all language features -->
Expand Down
9 changes: 0 additions & 9 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,6 @@
<!-- It also needs to be added to nuspec manually (for projects that use nuspec) so that the new version flows to consumers -->
<CentralPackageTransitivePinningEnabled>false</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildCachePackageEnabled)' == 'true'" Label="Build dependencies">
<MSBuildCachePackageName Condition="'$(TF_BUILD)' != ''">Microsoft.MSBuildCache.AzurePipelines</MSBuildCachePackageName>
<MSBuildCachePackageName Condition="'$(MSBuildCachePackageName)' == ''">Microsoft.MSBuildCache.Local</MSBuildCachePackageName>
<MSBuildCachePackageVersion>0.1.328-preview</MSBuildCachePackageVersion>
</PropertyGroup>
<ItemGroup Condition="'$(MSBuildCachePackageEnabled)' == 'true'" Label="Build dependencies">
<GlobalPackageReference Include="$(MSBuildCachePackageName)" Version="$(MSBuildCachePackageVersion)" />
<GlobalPackageReference Include="Microsoft.MSBuildCache.SharedCompilation" Version="$(MSBuildCachePackageVersion)" />
</ItemGroup>
<PropertyGroup Label="Product dependencies">
<!-- AspireHostingTestingVersion is consumed by the build and baked into the shipped MSTest.Sdk
template. It MUST be kept in sync with the literal Aspire.Hosting.Testing PackageVersion
Expand Down
2 changes: 0 additions & 2 deletions NuGet.config
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,6 @@
<package pattern="*" />
</packageSource>
<packageSource key="dotnet-public">
<package pattern="Microsoft.MSBuildCache.Local" />
<package pattern="Microsoft.MSBuildCache.SharedCompilation" />
<package pattern="*" />
</packageSource>
<packageSource key="dotnet-tools">
Expand Down
Loading
Loading