Skip to content

Merge latest Library.Template - #413

Merged
Andrew Arnott (AArnott) merged 61 commits into
mainfrom
dev/andarno/libtemplateUpdate
Oct 7, 2026
Merged

Andrew Arnott (AArnott) merged 61 commits into
mainfrom
dev/andarno/libtemplateUpdate

Conversation

@AArnott

Copy link
Copy Markdown
Member

No description provided.

renovate Bot and others added 30 commits September 10, 2026 20:27
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…2 (567)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… (568)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This is so that if xunit.v3.mtp-v2 wants an older version of it, we use the later version that's consistent with the MTP extension packages
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
This is so that if xunit.v3.mtp-v2 wants an older version of it, we use the later version that's consistent with the MTP extension packages
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
… (575)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Avoid re-installing .NET SDK or runtimes
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Re-running a failed docs deployment failed because the prior attempt's
github-pages artifact remained, making deploy-pages find two artifacts.
Use a per-attempt artifact name, and allow workflow_dispatch.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Andrew Arnott (AArnott) and others added 11 commits October 6, 2026 09:49
…#584)

* docs(skill): keep framework-specific docs/scripts when consumer is not on TUnit

Library.Template AGENTS.md and test scripts assume TUnit. Tell mergers to retain
xunit/VSTest docs, FailsInCloudTest filters, bespoke dotnet-test-cloud.ps1 behavior,
unused-package hygiene, and repo-specific pipeline steps when those are not equivalent
to the template.

* docs(skill): traversal coverage, non-test projects under test/, placeholders, bespoke NativeAOT flows

Lessons from Copilot review of the 2026-10 template merge wave
(Nerdbank.Json#37, ShapeShift#17, Nerdbank.JsonRpc#114, Nerdbank.MessagePack#1091).

* docs(skill): never re-add GitVersionBaseDirectory in repos with nested version.json

* Avoid the literal placeholder token in the update-library-template skill

Expand-Template.ps1 fails if any remaining file contains the placeholder token, so describe it instead of quoting it.

* Fix expansion check

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Resolve conflicts by preserving repository-specific solution structure, keeping the current README, and removing template-only files. Apply the incoming TUnit migration to the existing test projects and update their docs and runner behavior. Adapt NativeAOT compatibility validation to Microsoft.VisualStudio.Validation, while leaving dynamic test assemblies managed-only.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Authenticate docs validation to Azure Artifacts with GitHub OIDC

Add immutable-subject federation setup with additive branch trust and readable credential names.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Match Azure Artifacts credentials to configured NuGet source names

Derive environment credential keys from nuget.config so downstream feeds such as msft_consumption_public authenticate during tool restore.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Skip docs feed authentication outside the Microsoft organization

Preserve anonymous restore for the template and other owners while retaining fork and Dependabot restrictions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

* Authenticate same-repository Dependabot documentation checks

Remove the actor exclusion while preserving organization and fork restrictions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@AArnott
Andrew Arnott (AArnott) force-pushed the dev/andarno/libtemplateUpdate branch from b9098e6 to 5e4f6fb Compare October 6, 2026 22:21
@AArnott
Andrew Arnott (AArnott) marked this pull request as ready for review October 6, 2026 22:23
Copilot AI balanced review requested due to automatic review settings October 6, 2026 22:23
@codecov-commenter

Codecov Comments Bot (codecov-commenter) commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.88%. Comparing base (b2eef98) to head (83368d8).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #413   +/-   ##
=======================================
  Coverage   77.88%   77.88%           
=======================================
  Files          14       14           
  Lines         859      859           
  Branches      224      224           
=======================================
  Hits          669      669           
  Misses        126      126           
  Partials       64       64           
Flag Coverage Δ
Linux 79.18% <ø> (ø)
Windows 77.88% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The new operational documentation contains incorrect repository subjects, feed names, and an unsupported command-line switch.

Review effort: Balanced
Findings: 4 Low severity

Open (4)
What changed in this PR

Synchronizes the repository with Library.Template, modernizing test execution, NativeAOT validation, dependency restoration, and CI workflows.

Changes:

  • Migrates tests from xUnit runner to TUnit/MTP while retaining xUnit assertions.
  • Adds traversal projects and NativeAOT compatibility validation.
  • Updates runners, documentation publishing, OIDC feed authentication, and dependencies.
File Description
version.json Updates the version schema URL.
tools/​tests/​DocsFeedCredentials.Tests.ps1 Adds feed credential tests.
tools/​tests/​Configure-GitHubOidc.Tests.ps1 Adds OIDC configuration tests.
tools/​Install-DotNetSdk.ps1 Skips already-installed SDKs and runtimes.
tools/​dotnet-test-cloud.ps1 Removes the obsolete xUnit trait filter.
tools/​dirs.proj Adds the root traversal project.
tools/​Configure-GitHubOidc.ps1 Adds immutable OIDC trust configuration.
test/​Microsoft.VisualStudio.Validation.Tests/​xunit.runner.json Removes obsolete xUnit configuration.
test/​Microsoft.VisualStudio.Validation.Tests/​VerifyTests.cs Migrates tests to TUnit attributes.
test/​Microsoft.VisualStudio.Validation.Tests/​RequiresTests.cs Migrates tests and output handling.
test/​Microsoft.VisualStudio.Validation.Tests/​ReportTests.Release.cs Migrates release tests to TUnit.
test/​Microsoft.VisualStudio.Validation.Tests/​ReportTests.Debug.cs Migrates debug tests and listener cleanup.
test/​Microsoft.VisualStudio.Validation.Tests/​Microsoft.VisualStudio.Validation.Tests.csproj Replaces the xUnit runner with TUnit.
test/​Microsoft.VisualStudio.Validation.Tests/​ExceptionExtensionsTests.cs Migrates tests to TUnit.
test/​Microsoft.VisualStudio.Validation.Tests/​EventHandlerExtensionsTests.cs Migrates tests to TUnit.
test/​Microsoft.VisualStudio.Validation.Tests/​AssumesTests.cs Migrates tests to TUnit.
test/​Microsoft.VisualStudio.Validation.Tests/​AssertDialogSuppression.cs Generalizes trace-listener cleanup.
test/​Microsoft.VisualStudio.Validation.Tests/​AssemblyInfo.cs Disables TUnit parallel execution.
test/​Microsoft.VisualStudio.Validation.Analyzers.Tests/​UseRequiresGuardsTests.cs Migrates analyzer tests to TUnit.
test/​Microsoft.VisualStudio.Validation.Analyzers.Tests/​Microsoft.VisualStudio.Validation.Analyzers.Tests.csproj Configures TUnit and managed-only testing.
test/​Microsoft.VisualStudio.Validation.Analyzers.Tests/​Helpers/​CSharpCodeFixVerifier\2+Test.cs` Resolves the validation assembly from output.
test/​dirs.proj Adds test traversal and AOT publishing.
test/​Directory.Build.targets Configures test extensions and AOT imports.
test/​Directory.Build.props Adds shared MTP and AOT properties.
test/​AotCompatibilityTest/​Program.cs Adds the AOT validation entry point.
test/​AotCompatibilityTest/​AotCompatibilityTest.csproj Adds the NativeAOT compatibility project.
test/​AOT.props Defines shared NativeAOT publish settings.
src/​Microsoft.VisualStudio.Validation/​Microsoft.VisualStudio.Validation.csproj Declares .NET 8 AOT compatibility.
src/​dirs.proj Adds shipping-project traversal.
Microsoft.VisualStudio.Validation.slnx Includes the AOT compatibility project.
init.ps1 Restores through the traversal project.
global.json Adds the traversal SDK.
Directory.Packages.props Updates MTP and TUnit dependencies.
Directory.Build.props Adds RID and traversal-reference defaults.
CONTRIBUTING.md Documents AOT and OIDC workflows.
azure-pipelines/​vs-validation.yml Updates the insertion pool.
azure-pipelines/​vs-insertion.yml Updates the insertion pool.
azure-pipelines/​dotnet.yml Builds and publishes via traversal.
azure-pipelines/​build.yml Moves Linux builds to Ubuntu 26.04.
AGENTS.md Documents TUnit testing commands.
.github/​workflows/​libtemplate-update.yml Updates the hosted runner.
.github/​workflows/​docs.yml Adds dispatch and unique Pages artifacts.
.github/​workflows/​docs_validate.yml Adds OIDC feed authentication.
.github/​workflows/​copilot-setup-steps.yml Updates the hosted runner.
.github/​renovate.json Adds dependency grouping rules.
.config/​dotnet-tools.json Updates DocFX.
.agents/​skills/​update-library-template/​template-release-notes.md Documents template migration guidance.
.agents/​skills/​update-library-template/​SKILL.md Expands template merge safeguards.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .agents/skills/update-library-template/template-release-notes.md
Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md Outdated
Comment thread CONTRIBUTING.md Outdated
The template merge removed the NativeAOT test discovery, publish, and execution path. Restore it while retaining project opt-outs and without reintroducing broad warning suppressions.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings October 6, 2026 22:49

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

The combined test-runner, NativeAOT, CI, and cloud-authentication changes warrant final human validation.

Review effort: Balanced
Findings: None

Resolved since last review (4)
Previously missed (1)

In code that hasn't changed since last review

Low severity Correct comment to describe non-test project condition

test/​Directory.Build.targets:6

This comment describes test projects, but the condition below applies only when IsTestProject is not true; both actual test projects explicitly keep UseAppHost=true. Update the wording to describe non-test projects so future changes do not invert the condition based on stale guidance.

Copilot AI balanced review requested due to automatic review settings October 6, 2026 23:00

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

Windows CI currently skips NativeAOT dump configuration because it evaluates a PowerShell Core-only variable.

Review effort: Balanced
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Medium severity Windows PowerShell skips NativeAOT hang/crash dump switches

tools/​dotnet-test-cloud.ps1:124

Windows CI invokes this script through the powershell: task (azure-pipelines/dotnet.yml:25), which runs Windows PowerShell 5.1. $IsWindows is only defined in PowerShell Core, so this condition is false there and NativeAOT runs silently lose the requested hang/crash dump switches. Use the same $env:OS check already used elsewhere in the repository.

@AArnott
Andrew Arnott (AArnott) merged commit 4679e8a into main Oct 7, 2026
11 checks passed
@AArnott
Andrew Arnott (AArnott) deleted the dev/andarno/libtemplateUpdate branch October 7, 2026 18:12
Sign up for free to 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.

4 participants