Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
6a4e43c
Split the VS PR stage separately from the upload steps
pieandcakes Oct 13, 2025
9ca01b2
Split into jobs instead of stages
AArnott Oct 16, 2025
e302f54
Merge pull request 424 from pieandcakes/users/piel/stageinsertion
AArnott Oct 16, 2025
14a7d27
Call out `dotnet-test-cloud.ps1` script
AArnott Jun 2, 2026
8be6654
Add Copilot skill for bundling dependency update PRs
AArnott Jun 2, 2026
e6bb7a1
Call out docfx checks when bundling dependency update PRs
AArnott Jun 2, 2026
5f59179
Merge branch 'main' into microbuild
AArnott Jun 2, 2026
81b3496
Update actions/checkout action to v6.0.3 (523)
renovate[bot] Jun 2, 2026
2816e20
Update dependency nerdbank.dotnetrepotools to v1.5.6 (524)
renovate[bot] Jun 3, 2026
dba613e
Update dependency nerdbank.dotnetrepotools to v1.5.15 (525)
renovate[bot] Jun 4, 2026
cd79894
Update dependency dotnet-coverage to v18.8.0 (526)
renovate[bot] Jun 8, 2026
03a29b9
Update Dockerfile and global.json updates to v10.0.301 (527)
renovate[bot] Jun 10, 2026
6c56573
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jun 10, 2026
d48cdf8
Fix GitHub Actions env file writes (528)
AArnott Jun 10, 2026
910fad8
Update actions/checkout action to v6.0.3
AArnott Jun 10, 2026
72ac8a9
Improve PR checks after fixing dependency PRs
AArnott Jun 10, 2026
937aeb0
Update Microsoft Testing Platform to 18.8.0
AArnott Jun 11, 2026
a8d7f71
Merge branch 'main' into microbuild
AArnott Jun 11, 2026
8ce74d4
Support multi-line env var values properly
AArnott Jun 15, 2026
22ebcf5
Centralize the github env var function
AArnott Jun 15, 2026
2de1d1f
Merge pull request #529 from AArnott/betterGitHubEnvVars
AArnott Jun 15, 2026
1600fb8
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jun 15, 2026
4a5b860
Update dependency powershell to v7.6.3 (#530)
renovate[bot] Jun 17, 2026
e57033f
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jun 17, 2026
3fcf71e
Update actions/checkout action to v7
AArnott Jun 18, 2026
697a943
Merge branch 'main' into microbuild
AArnott Jun 18, 2026
24026df
Merge remote-tracking branch 'origin/microbuild_staging' into microbuild
AArnott Jun 18, 2026
9319738
Update nbgv and nerdbank.gitversioning updates to 3.10.85 (531)
renovate[bot] Jun 19, 2026
3f53cb6
Revert unintended whitespace changes
AArnott Jun 20, 2026
277d401
Merge branch 'main' into microbuild
AArnott Jun 20, 2026
8a8921a
Update jobs to ubuntu 24
AArnott Jun 22, 2026
d7904f8
Update Dockerfile and global.json updates (532)
renovate[bot] Jun 25, 2026
a1ba569
Update Microsoft Testing Platform to 2.3.0
renovate[bot] Jul 7, 2026
35daa41
Pin Microsoft.Testing.Extensions.Telemetry to the common MTP version
AArnott Jul 7, 2026
3291087
Merge pull request 533 from AArnott/renovate/microsoft-testing-platform
AArnott Jul 7, 2026
e11a693
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 7, 2026
eba6257
Revert "Use default configuration for Network Isolation" (#534)
AArnott Jul 7, 2026
4299650
Fix typo
AArnott Jul 7, 2026
90ac1ee
Use preferred pattern for appending to PATH in GitHub Actions
AArnott Jul 7, 2026
6320f43
Merge pull request #535 from AArnott/update-path-handling
AArnott Jul 7, 2026
e1c8aa4
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 7, 2026
5a0a13f
Avoid loading GitHubActions.ps1 on Azure Pipelines
AArnott Jul 7, 2026
def42bc
Merge branch 'main' into microbuild
AArnott Jul 7, 2026
097060a
Validate Path parameter in Add-GitHubActionsEnvVariable
AArnott Jul 7, 2026
b182ee0
Merge branch 'main' into microbuild
AArnott Jul 7, 2026
5cd226a
Fix 1ES PT nuget push
AArnott Jul 8, 2026
b5153f6
Update dependency dotnet-coverage to v18.9.0 (536)
renovate[bot] Jul 8, 2026
42c5cea
Update dependency Microsoft.Testing.Extensions.CodeCoverage to 18.9.0…
renovate[bot] Jul 8, 2026
3749d32
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 8, 2026
e6e3c19
Revert "Update dependency dotnet-coverage to v18.9.0 (536)"
AArnott Jul 8, 2026
c43fba6
Prevent empty paths from being added to the PATH
AArnott Jul 8, 2026
65a9b52
Merge branch 'main' into microbuild
AArnott Jul 8, 2026
a4d4554
Fix up error messages
AArnott Jul 8, 2026
8201f77
Avoid importing GitHubActions.ps1 outside GitHub Actions
AArnott Jul 8, 2026
6ab1b59
Merge branch 'main' into microbuild
AArnott Jul 8, 2026
3ee5eeb
Clarify yml comment
AArnott Jul 8, 2026
3948cdc
Update script synopsis
AArnott Jul 8, 2026
bd12df8
Merge branch 'main' into microbuild
AArnott Jul 8, 2026
6a14f76
Clarify what looks like bad wording
AArnott Jul 8, 2026
c456c94
Update nbgv and nerdbank.gitversioning updates to 3.10.91 (538)
renovate[bot] Jul 8, 2026
036db57
Cache the dotnet-install scripts locally
AArnott Jul 9, 2026
4f85ae7
Merge pull request 540 from AArnott:local-dotnet-install
AArnott Jul 9, 2026
bac6223
Restore missing VSInsertion artifact download task
AArnott Jul 9, 2026
6b93b0d
Update Microsoft Testing Platform to 2.3.1 (539)
renovate[bot] Jul 9, 2026
1573a0b
Fix vs-validation pipeline's artifact download task
AArnott Jul 9, 2026
c98e75f
Reapply update to dotnet-coverage 18.9.0 (536)
AArnott Jul 10, 2026
327eaa2
Move AI files to a more generic place
AArnott Jul 11, 2026
1adc880
Update Microsoft Testing Platform to 2.3.2 (#541)
renovate[bot] Jul 13, 2026
ac1e521
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 13, 2026
c3b5b12
Bump .NET SDK to v10.0.302 (#542)
renovate[bot] Jul 14, 2026
b4607e8
Merge branch 'main' into microbuild
AArnott Jul 14, 2026
ce33bc6
Update actions/checkout action to v7.0.1 (543)
renovate[bot] Jul 21, 2026
5b59b42
Merge branch 'main' into microbuild
AArnott Jul 21, 2026
bf268cb
Update dependency powershell to v7.6.4 (544)
renovate[bot] Jul 21, 2026
2b55315
Update dependency dotnet-symbol to v10.0.737001
AArnott Jul 21, 2026
32b4175
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 22, 2026
e3787d5
Downgrade dotnet-symbol back to 9.0.661903
AArnott Jul 23, 2026
fa8b3ed
Avoid duplicate test dump artifacts
AArnott Jul 24, 2026
6dc5571
Apply `-NoNuGetCredProvider` consistently
AArnott Jul 27, 2026
5a09e7a
Merge branch 'main' into microbuild
AArnott Jul 27, 2026
77c904f
Update Microsoft Testing Platform to 2.3.3 (545)
renovate[bot] Jul 28, 2026
5afbcaf
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Jul 29, 2026
abe5a3b
Fix non-Windows path matching
AArnott Jul 29, 2026
91b1441
Merge branch 'main' into microbuild
AArnott Jul 29, 2026
50d20e2
Update mcr.microsoft.com/dotnet/sdk:10.0.302 Docker digest to 72dd743…
renovate[bot] Aug 2, 2026
37b392f
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Aug 5, 2026
e302561
Fix Codecov CLI publishing
AArnott Aug 7, 2026
79bb7f0
Merge pull request #547 from AArnott/aarnott-fix-codecov-publishing
AArnott Aug 7, 2026
652e601
Add -NoCoverage switch and improve crash diagnostics
AArnott Aug 10, 2026
f174c91
Merge pull request #548 from AArnott/aarnott-test-diagnostics
AArnott Aug 10, 2026
75156e6
Update Dockerfile and global.json updates to v10.0.400 (549)
renovate[bot] Aug 12, 2026
c97c168
Fix .NET SDK installer script to not fail from a cached releases.json…
AArnott Aug 12, 2026
2d53806
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Aug 12, 2026
7d49764
Use ps1 splatting and exit instead of return
AArnott Aug 12, 2026
aed7260
Improve test and code coverage scripts
AArnott Aug 12, 2026
231501c
Merge pull request #551 from AArnott/refine-scripts
AArnott Aug 12, 2026
663bdc9
Update dependency dotnet-coverage to v18.10.0 (#552)
renovate[bot] Aug 12, 2026
1264e44
Update dependency Microsoft.Testing.Extensions.CodeCoverage to 18.10.…
renovate[bot] Aug 12, 2026
ed6df17
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Aug 13, 2026
a853c38
Revert "Update dependency dotnet-coverage to v18.10.0 (552)"
AArnott Aug 13, 2026
13a168e
Update dependency powershell to v7.6.5 (554)
renovate[bot] Aug 14, 2026
aff6973
Update dependency xunit.v3.mtp-v2 to v4 (555)
renovate[bot] Aug 16, 2026
f5d9436
Update dependency nerdbank.dotnetrepotools to v1.5.42 (556)
renovate[bot] Aug 16, 2026
d966345
Update mcr.microsoft.com/dotnet/sdk:10.0.400 Docker digest to e1ffd2a…
renovate[bot] Aug 17, 2026
38e8ff9
Update notes about how the release workflow works
AArnott Aug 20, 2026
60fd229
Document the requirement for a repo secret
AArnott Aug 20, 2026
910d33c
Add better error and corner case handling to release workflow
AArnott Aug 20, 2026
f700f34
Bump CSharpIsNullAnalyzer to 0.2.12
AArnott Aug 20, 2026
dff5d6e
Bump CSharpIsNullAnalyzer to 0.2.19
AArnott Aug 20, 2026
549ad15
Update network isolation policy
AArnott Aug 24, 2026
cf76312
Bump MicroBuild to 2.0.257
AArnott Aug 24, 2026
ca0cdd4
Merge main to microbuild
AArnott Aug 24, 2026
f1c1a2d
Drop GitHub Actions section
AArnott Aug 24, 2026
511e4ab
Reapply "Update dependency dotnet-coverage to v18.10.0 (552)"
AArnott Aug 25, 2026
1b194f8
Merge branch 'main' into microbuild
AArnott Aug 27, 2026
d15a649
Update nbgv and nerdbank.gitversioning updates to 3.10.94 (558)
renovate[bot] Aug 29, 2026
ca21dec
Update actions/deploy-pages action to v5.0.1 (559)
renovate[bot] Sep 2, 2026
5bfa11b
Update dependency dotnet-coverage to v18.11.0 (560)
renovate[bot] Sep 2, 2026
d660776
Update dependency Microsoft.Testing.Extensions.CodeCoverage to 18.11.…
renovate[bot] Sep 3, 2026
b8a8b51
Update dependency dotnet-symbol to v10 (562)
renovate[bot] Sep 3, 2026
916a180
Update mcr.microsoft.com/dotnet/sdk:10.0.400 Docker digest to 4beef5b…
renovate[bot] Sep 7, 2026
44631b0
Update dependency powershell to v7.6.6
AArnott Sep 8, 2026
7e6372f
Bump .NET SDK to 10.0.401
AArnott Sep 8, 2026
efc103e
Update mcr.microsoft.com/dotnet/sdk:10.0.401 Docker digest to 4ea6fe7…
renovate[bot] Sep 9, 2026
ef2baee
Merge remote-tracking branch 'origin/main' into microbuild
AArnott Sep 9, 2026
75371f2
Update dependency dotnet-symbol to v10.0.745401 (565)
renovate[bot] Sep 11, 2026
0fe44f9
Update dependency dotnet-coverage to v18.11.2 (566)
renovate[bot] Sep 14, 2026
a66bb7e
Update dependency Microsoft.Testing.Extensions.CodeCoverage to 18.11.…
renovate[bot] Sep 14, 2026
30e9ed6
Update mcr.microsoft.com/dotnet/sdk:10.0.401 Docker digest to 2fa828c…
renovate[bot] Sep 14, 2026
05c10db
Update dependency xunit.v3.mtp-v2 to 4.0.1 (569)
renovate[bot] Sep 14, 2026
c8e1622
Migrate from `VSEngSS-MicroBuild2022-1ES` to `VSEng-MicroBuildVSStable`
AArnott Sep 15, 2026
19257c2
Merge main to microbuild
AArnott Sep 15, 2026
334f592
Pin Microsoft.Testing.Platform
AArnott Sep 16, 2026
4a3a46f
Update Microsoft Testing Platform to 2.4.1 (571)
renovate[bot] Sep 16, 2026
d691bea
Pin Microsoft.Testing.Platform
AArnott Sep 16, 2026
6d1fa22
Update Microsoft Testing Platform to 2.4.1 (571)
renovate[bot] Sep 16, 2026
8a940a2
Downgrade `dotnet-symbol` to meet CFS quarantine requirements
AArnott Sep 16, 2026
0868d93
Update dependency docfx to v2.78.6 (#572)
renovate[bot] Sep 18, 2026
f27557c
Update dependency ubuntu to v26 (574)
renovate[bot] Sep 18, 2026
7b5f5bf
Update dependency docfx to v2.80.1 (573)
renovate[bot] Sep 18, 2026
8637b88
Update mcr.microsoft.com/dotnet/sdk:10.0.401 Docker digest to 35d4030…
renovate[bot] Sep 22, 2026
d59c238
Avoid re-installing .NET SDK or runtimes
AArnott Sep 22, 2026
086eeab
Merge pull request #576 from AArnott/Install-Sdk-Enhancements
AArnott Sep 22, 2026
13d25ee
Update dependency docfx to v2.81.0 (577)
renovate[bot] Sep 25, 2026
fc7087e
Revert "Downgrade `dotnet-symbol` to meet CFS quarantine requirements"
AArnott Sep 28, 2026
95cd29e
Merge main into microbuild
AArnott Sep 28, 2026
f878985
Update becheran/mlc action to v1.2.2
AArnott Sep 28, 2026
95dd30b
Update becheran/mlc action to v1.2.2 (578)
renovate[bot] Sep 29, 2026
d477832
Make docs workflow recoverable via re-run or manual dispatch
AArnott Sep 30, 2026
57fc2b2
Pin Ubuntu workflows to 26.04
AArnott Oct 1, 2026
52ff92c
Merge pull request #581 from AArnott/agents/pin-ubuntu-26-04
AArnott Oct 1, 2026
3f29bf7
Migrate from xUnit to TUnit
AArnott Sep 30, 2026
302ccbe
Build and test NativeAOT-safe libraries
AArnott Oct 1, 2026
a3c19c0
Add opt-out instructions for the NativeAOT support
AArnott Oct 2, 2026
5e9fca2
Improve release notes further
AArnott Oct 2, 2026
3eebddd
Build and publish in one step in Azure Pipelines
AArnott Oct 2, 2026
bab81d0
Merge pull request #580 from AArnott/nativeaot
AArnott Oct 2, 2026
f3de231
Merge latest Library.Template
invalid-email-address Oct 2, 2026
a9920cc
Merge latest Library.Template
invalid-email-address Oct 2, 2026
1e39aea
Merge the microbuild branch from https://github.com/aarnott/Library.T…
invalid-email-address Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .agents/skills/bundle-dependency-prs/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
---
name: bundle-dependency-prs
description: Fix broken dependency update PRs and aggregate the ones that work into one PR.
disable-model-invocation: true
---

# Instructions

You have two goals:

1. Get all dependency PRs to a state where their PR checks pass.
2. Aggregate dependency PRs with passing checks into just one PR.

You can identify dependency update PRs by those authored by `dependabot` or `renovate`.

You'll find instructions for building and validating the repo in the [CONTRIBUTING.md](../../../CONTRIBUTING.md) doc.
Always validate your changes locally before pushing them to the remote repository.

When writing PR bodies or comments, avoid unmatched markdown code fences. Keep markdown well-formed.

For purposes of assessing PR readiness by its PR checks, consider docfx related checks to be irrelevant.
If a docfx check fails but all other checks succeed, then that is a 'successful' dependency update PR.

## Fix up dependency PRs with failing checks

Before aggregating PRs, first try to fix any individual dependency update PRs with failing build/test checks.

1. For the dependency PRs with failing build or test PR checks, check out their source branch and fix any issues.
2. Push your fixes as fresh commits to the individual dependency PRs.
If pushing to a repo in the `microsoft` org when the PR is authored by `renovate`, follow-up the push with a PR comment that says exactly this: "/azp run" which triggers PR checks to re-run.
3. If you can't fix a particular PR, add a comment to the PR describing your attempt and outcome.

## Group dependency PRs that are ready to go

Your next goal is to collect all the dependency updates that are ready to go into a single PR.

1. Prepare a local branch called `bulkDepUpdates`.
1. Consider that a remote branch by the same name may already exist. If it does, base your local branch on it.
2. Merge `origin/main` into this branch.
3. Resolve any conflicts.
2. For the dependency PRs whose build and test PR checks already pass, merge them into the `bulkDepUpdates` branch.
Consider that your local branch may have already merged an equivalent PR in the past (from a past run). If so, you should skip merging that PR.
Resolve any conflicts.
Build and run tests to validate your branch.
3. Push the branch.
4. Create a PR, if one does not already exist.
84 changes: 84 additions & 0 deletions .agents/skills/update-library-template/template-release-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Template release notes

This file will describe significant changes in Library.Template as they are introduced, especially if they require special consideration when merging updates into existing repos.
This file is referenced by update-library-template.prompt.md and should remain in place to facilitate future merges, whether done manually or by AI.

## Solution rename

Never leave a Library.slnx file in the repository.
You might even see one there even though this particular merge didn't bring it in.
This can be an artifact of having renamed Library.sln to Library.slnx in the template repo, but ultimately the receiving repo should have only one .sln or .slnx file, with a better name than `Library`.
Delete any `Library.slnx` that you see.
Migrate an `.sln` in the repo root to `.slnx` using this command:

```ps1
dotnet solution EXISTING.sln migrate
```

This will create an EXISTING.slnx file. `git add` that file, then `git rm` the old `.sln` file.
Sometimes a repo will reference the sln filename in a script or doc somewhere.
Search the repo for such references and update them to the slnx file.

## Migrating from xUnit to TUnit

The template now uses TUnit with Microsoft.Testing.Platform instead of the xUnit test runner.
When merging this update into an existing repository, migrate all test projects and repo-specific test automation.
Follow the [TUnit xUnit migration guide](https://tunit.dev/docs/migration/xunit), including its automated migration code fixes.

* Replace xUnit runner/framework package references with `TUnit.Engine` and set `<OutputType>Exe</OutputType>` in each test project.
Remove obsolete runner dependencies such as `xunit.runner.visualstudio`, `Microsoft.NET.Test.Sdk`, and `coverlet.collector`, along with `xunit.runner.json`.
Reconcile central package versions with the template's `Directory.Packages.props`.
* Existing xUnit assertions can remain: the template retains `xunit.v3.assert`, using `xunit.v3.assert.aot` for .NET 9 and later.
Keep `Xunit` imports for assertions, but use TUnit for test attributes and lifecycle APIs.
* Convert `[Fact]` and `[Theory]` to `[Test]`, and `[InlineData]` to `[Arguments]`.
Migrate member/class data sources, traits, fixtures, collection behavior, setup/teardown, and test output according to the migration guide.
Review tests that depend on xUnit's execution ordering or parallelization rules; do not assume those rules carry over.
* Merge the `global.json` Microsoft.Testing.Platform runner setting, test directory build files, traversal projects, and updated PowerShell/YAML automation.
Keep every test project in the repository's solution for managed test runs.
The traversals discover `.csproj` files under `src` and `test`; adjust discovery if your projects live elsewhere or use another project language.
* Update custom test commands and filters.
VSTest `--filter` expressions do not work with this runner; pass TUnit filters after `--`, for example `-- --treenode-filter "/*/*/ClassName/MethodName"`.
Replace any xUnit-specific CI result or coverage handling with the template's Microsoft.Testing.Platform integration.
* Validate managed tests and coverage, then run `dotnet publish tools\dirs.proj -c Release` and `.\tools\dotnet-test-cloud.ps1 -Configuration Release -IncludeNativeAOT`.
Test projects targeting .NET 8 or later are eligible for NativeAOT publication by default.
If a project cannot support NativeAOT, set `<PublishNativeAOTTests>false</PublishNativeAOTTests>` in its project file; it will still run as managed tests.

## NativeAOT compatibility validation

Shipping projects now set `IsAotCompatible` for target frameworks compatible with .NET 8.
Apply the same conditional property to each shipping project that is intended to support NativeAOT, then resolve all trim and AOT analyzer warnings rather than suppressing them broadly.

The new `test/AotCompatibilityTest` project catches NativeAOT compiler warnings that library analyzers may not report.
Keep it in the solution, add every NativeAOT-compatible shipping assembly as a `TrimmerRootAssembly`, and retain its publishable entry in `test/dirs.proj`.
CI validates this project through the existing traversal publish on Windows, Linux, and macOS; it is intentionally marked `IsTestProject=false` because publishing successfully is the test.

## NativeAOT opt-out and AI merge guidance

Not every repo wants to take on NativeAOT readiness or NativeAOT-published test validation.
If a receiving repo does not intend to support NativeAOT, opt out explicitly instead of inheriting the template's defaults.

For test projects that should remain managed-only:

* Set `<PublishNativeAOTTests>false</PublishNativeAOTTests>` in the project file or in a repo-level `Directory.Build.props`.
* Leave the managed test project in the solution so usual IL-based testing continues to work.
* Keep `dotnet test` and the managed coverage flow unchanged; only the NativeAOT publish step is disabled.

For shipping libraries that do not want NativeAOT compatibility analysis:

* Remove `IsAotCompatible` from the project, or set it only for specific target frameworks that truly support NativeAOT.
* Do not add new AOT compatibility warnings to the build if the library is not intended to be AOT-compatible.
* If the repo does not target .NET 8 or later, the property should be omitted entirely rather than applied unconditionally.

For the compatibility project itself:

* Remove the `test/AotCompatibilityTest` project from the solution if NativeAOT validation is out of scope.
* Remove its entry from `test/dirs.proj` so the traversal publish no longer publishes it.
* Keep the project only when the repo intends to validate shipping assemblies under NativeAOT in CI.

When merging this template into a downstream repo, the AI assistant should ask whether NativeAOT is a relevant target for that repo before applying these changes if `IsAotCompatible` is not already set by any of the projects.
If the answer is no, it should apply the opt-out steps above instead of blindly keeping the NativeAOT defaults.
This is especially important for repos that are not shipping a NativeAOT-ready library or that cannot support the extra publish-time validation in CI.
If the repo owner is unsure about NativeAOT support, you might offer to test the repo for NativeAOT readiness by attempting a NativeAOT publish of the relevant projects and observing whether any compatibility warnings or errors are produced.

In the event the user elects for NativeAOT targeting, make efforts to get tests to work under NativeAOT as well so the shipping code can confidently advertise its NativeAOT compatibility.
If aspects of the library or tests make successful builds, publish or test runs problematic, discuss this with the repo owner before making significant changes or giving up on NativeAOT support.
12 changes: 6 additions & 6 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,42 @@
"isRoot": true,
"tools": {
"powershell": {
"version": "7.6.2",
"version": "7.6.6",
"commands": [
"pwsh"
],
"rollForward": false
},
"dotnet-coverage": {
"version": "18.7.0",
"version": "18.11.2",
"commands": [
"dotnet-coverage"
],
"rollForward": false
},
"nbgv": {
"version": "3.9.50",
"version": "3.10.94",
"commands": [
"nbgv"
],
"rollForward": false
},
"docfx": {
"version": "2.78.5",
"version": "2.81.0",
"commands": [
"docfx"
],
"rollForward": false
},
"nerdbank.dotnetrepotools": {
"version": "1.4.1",
"version": "1.5.42",
"commands": [
"repo"
],
"rollForward": false
},
"dotnet-symbol": {
"version": "9.0.661903",
"version": "10.0.745401",
"commands": [
"dotnet-symbol"
],
Expand Down
30 changes: 29 additions & 1 deletion .github/renovate.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,33 @@
"github>microsoft/vs-renovate-presets:microbuild",
"github>microsoft/vs-renovate-presets:vs_main_dependencies"
],
"packageRules": []
"labels": ["dependencies"],
"packageRules": [
{
"matchPackageNames": ["nbgv", "nerdbank.gitversioning"],
"groupName": "nbgv and nerdbank.gitversioning updates"
},
{
"matchPackageNames": ["xunit*"],
"groupName": "xunit"
},
{
"matchPackageNames": ["tunit*"],
"groupName": "tunit",
"schedule": ["on the first day of the month"]
},
{
"matchPackageNames": ["Microsoft.Testing.Extensions.*"],
"groupName": "Microsoft Testing Platform"
},
{
"matchDatasources": ["dotnet-version", "docker"],
"matchDepNames": ["dotnet-sdk", "mcr.microsoft.com/dotnet/sdk"],
"groupName": "Dockerfile and global.json updates"
},
{
"matchPackageNames": ["*"],
"allowedVersions": "!/-g[a-f0-9]+$/"
}
]
}
20 changes: 0 additions & 20 deletions .github/skills/update-library-template/template-release-notes.md

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ on:
jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
# Set the permissions to the lowest permissions possible needed for your steps.
# Copilot will be given its own token for its operations.
permissions:
Expand All @@ -26,7 +26,7 @@ jobs:
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.
- name: ⚙ Install prerequisites
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/libtemplate-update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ on:

jobs:
merge:
runs-on: ubuntu-latest
runs-on: ubuntu-26.04
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0 # avoid shallow clone so nbgv can do its work.

Expand Down
15 changes: 6 additions & 9 deletions .github/copilot-instructions.md → AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,10 @@

## Testing

**IMPORTANT**: This repository uses Microsoft.Testing.Platform (MTP v2) with xunit v3. Traditional `--filter` syntax does NOT work. Use the options below instead.
**IMPORTANT**: This repository uses TUnit with Microsoft.Testing.Platform (MTP v2). Traditional `--filter` syntax does NOT work. Use the options below instead.

* There should generally be one test project (under the `test` directory) per shipping project (under the `src` directory). Test projects are named after the project being tested with a `.Tests` suffix.
* Tests use xunit v3 with Microsoft.Testing.Platform (MTP v2). Traditional VSTest `--filter` syntax does NOT work.
* Some tests are known to be unstable. When running tests, you should skip the unstable ones by using `-- --filter-not-trait "FailsInCloudTest=true"`.
* Tests use TUnit with Microsoft.Testing.Platform (MTP v2), while retaining xUnit assertions. Traditional VSTest `--filter` syntax does NOT work.

### Running Tests

Expand Down Expand Up @@ -46,7 +45,7 @@ dotnet test --project test/Microsoft.VisualStudio.SolutionPersistence.Tests/Micr
dotnet test --project test/Microsoft.VisualStudio.SolutionPersistence.Tests/Microsoft.VisualStudio.SolutionPersistence.Tests.csproj --no-build -c Release -- --filter-method "*Pattern*"
```

**Run tests with a specific trait** (equivalent to category filtering):
**Run tests with a specific property**:
```bash
dotnet test --project test/Microsoft.VisualStudio.SolutionPersistence.Tests/Microsoft.VisualStudio.SolutionPersistence.Tests.csproj --no-build -c Release -- --filter-trait "TraitName=value"
```
Expand All @@ -67,13 +66,11 @@ cd test/Microsoft.VisualStudio.SolutionPersistence.Tests
dotnet run --no-build -c Release --framework net8.0 -- --list-tests
```

**Key points about test filtering with MTP v2 / xunit v3**:
**Key points about test filtering with TUnit / MTP v2**:
- Options after `--` are passed to the test runner, not to `dotnet test`
- Use `--filter-method`, `--filter-class`, `--filter-namespace` for simple filtering
- Use `--filter-trait` and `--filter-not-trait` for trait-based filtering (replaces `--filter "TestCategory=..."`)
- Use `--treenode-filter` to select tests by assembly, namespace, class, method, or property
- Traditional VSTest `--filter` expressions do NOT work
- Wildcards `*` are supported at the beginning and/or end of filter values
- Multiple simple filters of the same type use OR logic, different types combine with AND
- Wildcards `*` are supported in tree node segments
- See `--help` for query filter language for advanced scenarios

## Coding style
Expand Down
Loading
Loading