From 50290571365add4a439306c249c338c474520c2b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 15 May 2026 17:48:26 -0600 Subject: [PATCH 01/15] Update Microsoft Testing Platform to 2.2.3 (517) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 398de486..15b07759 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,7 +4,7 @@ true true - 2.2.2 + 2.2.3 From f24b9f116bf073eac8ffbf94a5cf3377ff893665 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 13:39:23 -0600 Subject: [PATCH 02/15] Update dependency Microsoft.Testing.Extensions.CodeCoverage to 18.7.0 (519) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 15b07759..45a63a64 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,7 +10,7 @@ - + From 1de022c1dedcd670f196ab5e930628e96dd656fe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 18 May 2026 13:39:35 -0600 Subject: [PATCH 03/15] Update dependency dotnet-coverage to v18.7.0 (518) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .config/dotnet-tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 777e86bf..9769f1b4 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -10,7 +10,7 @@ "rollForward": false }, "dotnet-coverage": { - "version": "18.6.2", + "version": "18.7.0", "commands": [ "dotnet-coverage" ], From caa057e4738bcb1a2fc57db1ffa2774964862584 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 06:56:28 -0600 Subject: [PATCH 04/15] Update mcr.microsoft.com/dotnet/sdk:10.0.300 Docker digest to c079063 (520) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 1b6732ac..810a6ed6 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # Refer to https://hub.docker.com/_/microsoft-dotnet-sdk for available versions -FROM mcr.microsoft.com/dotnet/sdk:10.0.300@sha256:dc8430e6024d454edadad1e160e1973be3cabbb7125998ef190d9e5c6adf7dbb +FROM mcr.microsoft.com/dotnet/sdk:10.0.300@sha256:c0790639332692a0d56cdd81ed581cfd24d040d9839764c138994866df89a3b6 # Installing mono makes `dotnet test` work without errors even for net472. # But installing it takes a long time, so it's excluded by default. From e7468d63c0882b20043187b8a80845a516d4d4b7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 20:46:25 +0000 Subject: [PATCH 05/15] Update dependency powershell to v7.6.2 (#521) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .config/dotnet-tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 9769f1b4..a5037f9e 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "powershell": { - "version": "7.6.1", + "version": "7.6.2", "commands": [ "pwsh" ], From 08ad1ded6d1bd8cf617e85be9d00747e69433a42 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 20:56:48 -0600 Subject: [PATCH 06/15] Update dependency PolySharp to 1.16.0 (#522) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 45a63a64..a10e3549 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -24,7 +24,7 @@ - + From 3bdfd03e728296005215aaa052ccab20f14a086b Mon Sep 17 00:00:00 2001 From: Artur Spychaj Date: Tue, 26 May 2026 04:57:11 +0200 Subject: [PATCH 07/15] Fix Install-DotNetSdk.ps1 hang from recursive Directory.Build.props search (#513) * Fix Install-DotNetSdk.ps1 hang from recursive Directory.Build.props search The Get-ChildItem call applied -Recurse to all three path arguments, including Directory.Build.props. PowerShell splits this into container + leaf filter, so -Recurse causes it to search the entire repo root for every file named Directory.Build.props, crawling into large directories (bin, obj, tmp, etc.) and causing the script to hang. Split the call so -Recurse only applies to the src/ and test/ project file globs. Directory.Build.props is fetched with Get-Item -LiteralPath (single file, no recursion, no wildcard interpretation). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Recursively search src/ and test/ for Directory.Build.props Address review feedback: keep recursive Directory.Build.props discovery under src/ and test/, while still picking up the repo-root file. Avoids crawling top-level bin/obj/tmp directories. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: drognanar <3418274+drognanar@users.noreply.github.com> --- tools/Install-DotNetSdk.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/Install-DotNetSdk.ps1 b/tools/Install-DotNetSdk.ps1 index 590581e2..d9d35bb1 100644 --- a/tools/Install-DotNetSdk.ps1 +++ b/tools/Install-DotNetSdk.ps1 @@ -59,7 +59,10 @@ $runtimeVersions = @() $windowsDesktopRuntimeVersions = @() $aspnetRuntimeVersions = @() if (!$SdkOnly) { - Get-ChildItem "$PSScriptRoot\..\src\*.*proj", "$PSScriptRoot\..\test\*.*proj", "$PSScriptRoot\..\Directory.Build.props" -Recurse | % { + $projFiles = Get-ChildItem "$PSScriptRoot\..\src\*.*proj", "$PSScriptRoot\..\test\*.*proj" -Recurse + $projFiles += Get-ChildItem "$PSScriptRoot\..\src\Directory.Build.props", "$PSScriptRoot\..\test\Directory.Build.props" -Recurse + $projFiles += Get-Item -LiteralPath "$PSScriptRoot\..\Directory.Build.props" + $projFiles | % { $projXml = [xml](Get-Content -LiteralPath $_) $pg = $projXml.Project.PropertyGroup if ($pg) { From 14a7d275d59780ea380bfbb9992baaefeb918c83 Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Tue, 2 Jun 2026 08:55:44 -0600 Subject: [PATCH 08/15] Call out `dotnet-test-cloud.ps1` script --- CONTRIBUTING.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d4322a7b..05e4d16b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -39,7 +39,11 @@ This repository can be built on Windows, Linux, and OSX. Building, testing, and packing this repository can be done by using the standard dotnet CLI commands (e.g. `dotnet build`, `dotnet test`, `dotnet pack`, etc.). -[pwsh]: https://learn.microsoft.com/powershell/scripting/install/installing-powershell +## Testing + +You can use `dotnet test` to build and/or test the repo. + +There may be tests that are known to be unstable or have special requirements. These can be avoided by running tests using the [dotnet-test-cloud.ps1](tools/dotnet-test-cloud.ps1) script *after* running `dotnet build`. ## Releases @@ -96,3 +100,5 @@ git checkout origin/main # resolve any conflicts, then commit the merge commit. git push origin -u HEAD ``` + +[pwsh]: https://learn.microsoft.com/powershell/scripting/install/installing-powershell From 8be6654ffab1359c69821619911bda4f072e165d Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Tue, 2 Jun 2026 11:24:36 -0600 Subject: [PATCH 09/15] Add Copilot skill for bundling dependency update PRs --- .github/skills/bundle-dependency-prs/SKILL.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 .github/skills/bundle-dependency-prs/SKILL.md diff --git a/.github/skills/bundle-dependency-prs/SKILL.md b/.github/skills/bundle-dependency-prs/SKILL.md new file mode 100644 index 00000000..50f8b557 --- /dev/null +++ b/.github/skills/bundle-dependency-prs/SKILL.md @@ -0,0 +1,42 @@ +--- +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. + +## 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. +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. From e6bb7a16e9aeb35b4e6af6fae116e7051ee96263 Mon Sep 17 00:00:00 2001 From: Andrew Arnott Date: Tue, 2 Jun 2026 11:49:47 -0600 Subject: [PATCH 10/15] Call out docfx checks when bundling dependency update PRs --- .github/skills/bundle-dependency-prs/SKILL.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/skills/bundle-dependency-prs/SKILL.md b/.github/skills/bundle-dependency-prs/SKILL.md index 50f8b557..a147e81e 100644 --- a/.github/skills/bundle-dependency-prs/SKILL.md +++ b/.github/skills/bundle-dependency-prs/SKILL.md @@ -18,6 +18,9 @@ Always validate your changes locally before pushing them to the remote repositor 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. From 81b34965726bf8bea093822bde1528e9aad32af5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 14:55:04 -0600 Subject: [PATCH 11/15] Update actions/checkout action to v6.0.3 (523) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build.yml | 4 ++-- .github/workflows/copilot-setup-steps.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/libtemplate-update.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26bc9eb4..69e7ae4f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: - windows-2025 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: ⚙ Install prerequisites @@ -75,7 +75,7 @@ jobs: name: 📃 Docs runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: 🔗 Markup Link Checker (mlc) uses: becheran/mlc@7ec24825cefe0c9c8c6bac48430e1f69e3ec356e # v1.2.0 with: diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index 3c032fae..d933871a 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -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@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: ⚙ Install prerequisites diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fbfcd144..99b3c058 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -24,7 +24,7 @@ jobs: url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. - name: ⚙ Install prerequisites diff --git a/.github/workflows/libtemplate-update.yml b/.github/workflows/libtemplate-update.yml index 62a6417d..fc8a631f 100644 --- a/.github/workflows/libtemplate-update.yml +++ b/.github/workflows/libtemplate-update.yml @@ -17,7 +17,7 @@ jobs: contents: write pull-requests: write steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: fetch-depth: 0 # avoid shallow clone so nbgv can do its work. From 2816e2020f300f27f1abf943f6db0e49ed7badb9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 07:06:04 -0600 Subject: [PATCH 12/15] Update dependency nerdbank.dotnetrepotools to v1.5.6 (524) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .config/dotnet-tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index a5037f9e..d0e7d7ff 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -31,7 +31,7 @@ "rollForward": false }, "nerdbank.dotnetrepotools": { - "version": "1.4.1", + "version": "1.5.6", "commands": [ "repo" ], From dba613e0d4a1a94250ea4224450e3cea68c89f60 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 4 Jun 2026 14:30:25 -0600 Subject: [PATCH 13/15] Update dependency nerdbank.dotnetrepotools to v1.5.15 (525) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .config/dotnet-tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index d0e7d7ff..e11e39cb 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -31,7 +31,7 @@ "rollForward": false }, "nerdbank.dotnetrepotools": { - "version": "1.5.6", + "version": "1.5.15", "commands": [ "repo" ], From cd79894c0736662230511b03853e4ceff353f5ef Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2026 15:56:58 -0600 Subject: [PATCH 14/15] Update dependency dotnet-coverage to v18.8.0 (526) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .config/dotnet-tools.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index e11e39cb..f88bae60 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -10,7 +10,7 @@ "rollForward": false }, "dotnet-coverage": { - "version": "18.7.0", + "version": "18.8.0", "commands": [ "dotnet-coverage" ], From 03a29b92ffecc6951c3379a3b737db47ae7dfbde Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 03:55:42 +0000 Subject: [PATCH 15/15] Update Dockerfile and global.json updates to v10.0.301 (527) * Update Dockerfile and global.json updates to v10.0.301 * Bump global.json too --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Andrew Arnott --- .devcontainer/Dockerfile | 2 +- global.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 810a6ed6..08c01850 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # Refer to https://hub.docker.com/_/microsoft-dotnet-sdk for available versions -FROM mcr.microsoft.com/dotnet/sdk:10.0.300@sha256:c0790639332692a0d56cdd81ed581cfd24d040d9839764c138994866df89a3b6 +FROM mcr.microsoft.com/dotnet/sdk:10.0.301@sha256:548d93f8a18a1acbe6cc127bc4f47281430d34a9e35c18afa80a8d6741c2adc3 # Installing mono makes `dotnet test` work without errors even for net472. # But installing it takes a long time, so it's excluded by default. diff --git a/global.json b/global.json index bc8f3b85..4c9fb87c 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.300", + "version": "10.0.301", "rollForward": "patch", "allowPrerelease": false },