Repository navigation
feat(run-dotnet-tests)!: provision .NET 11 and retire the end-of-life .NET 9 SDK - #895
Conversation
… .NET 9 SDK .NET 11 is generally available since 2026-11-10 and .NET 9 reached end of support the same day. Install 10.0.402 (LTS) and 11.0.100 (current) instead of 9.0.319 and 10.0.402, move the Microsoft.Testing.Platform fixture to net11.0, and update the pin test, the version-pin ledger and the README to the new pair. BREAKING CHANGE: the .NET 9 SDK and runtime are no longer installed. No caller in the organisation targets net9.0. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Code coverage overviewLanguages: Go, C# Go / code-coverage/test
C# / code-coverage/dotnet
Go / code-coverage/go
View coverage of the 1 most impacted file.
ℹ️ Calculations represent line coverage. Results may change as calculations are updated. Updated |
Temporary: runs the template's tests with the unreleased action that installs the .NET 11 SDK, to prove the move end to end. Reverted after the run. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
" This reverts commit 9420b54.
User trial at As the action's only outside caller.
In this repository. The fixture moved to The pin test still bites. Not proven here: a caller that targets 🤖 Generated with Claude Code |
@coderabbitai review |
Action performed
|
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
* feat: move the template to .NET 11
.NET 11 became generally available on 2026-11-10 (SDK 11.0.100). Move
both project files to net11.0 and the global.json SDK floor to 11.0.100
in one change, as the toolchain policy requires, and update the docs and
the package-upload job to match.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
* fix: run the packaging tool on the newest installed .NET runtime
dotnet-releaser 0.24 is built for .NET 10. On that runtime it reads the
build log with the .NET 10 MSBuild and aborts on a record the .NET 11
SDK writes ("unsupported type: 36"). DOTNET_ROLL_FORWARD=LatestMajor
runs it on the .NET 11 runtime, where it loads the MSBuild of the SDK
that global.json selects.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
* ci: probe dotnet-releaser 0.24.1 on the .NET 11 SDK
Temporary: checks whether the newest release of the packaging tool reads
the .NET 11 SDK's build log. Reverted or kept depending on the result.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
* Revert "fix: run the packaging tool on the newest installed .NET runtime"
This reverts commit 23c0baf.
* Revert "ci: probe dotnet-releaser 0.24.1 on the .NET 11 SDK"
This reverts commit b98d554.
* ci: probe the shared test action from devantler-tech/.github#895
Temporary: runs the template's tests with the unreleased action that
installs the .NET 11 SDK, to prove the move end to end. Reverted after
the run.
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
* Revert "ci: probe the shared test action from devantler-tech/.github#895"
This reverts commit 9420b54.
* fix(ci): use released .NET 11 tooling
Install the released shared test action and dotnet-releaser 0.25.0 together so .NET 11 validation and package preparation use supported tooling.
Refs: #599
---------
Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
Why
.NET 11 became generally available on 10 November 2026, and .NET 9 reached end of support the same day (Microsoft's release index: 11.0
active, SDK 11.0.100; 9.0eol).run-dotnet-testsinstalls exactly two pinned SDKs, 9.0.319 and 10.0.402. A caller whoseglobal.jsonasks for .NET 11 therefore fails at restore with "A compatible .NET SDK was not found". That is what blocks devantler-tech/dotnet-template#627, which moves the template to .NET 11 as its toolchain policy requires (devantler-tech/dotnet-template#599).What
net11.0, so one fixture job proves the new SDK end to end. The other fixtures stay onnet10.0.Breaking change
The .NET 9 SDK and runtime are no longer installed, so a caller that targets
net9.0would stop working. No such caller exists:consumer-census.sh) and an organisation-wide code search findrun-dotnet-testscalled only bydotnet-templateand by this repository's own CI.net9.0target in the organisation is the fixture under.github/fixtures/dotnet-test-action, which no workflow or test uses. It is left as it is here.dotnet-templatetargetsnet10.0today and keeps working: itsglobal.jsonfloor of 10.0.300 is met by 10.0.402.Checked locally
test-dotnet-native-fixtures.sh(the pair and 18 + 26 refusal controls),test-version-pin-census.sh,test-dotnet-tool-pins.sh,test-catalogue-tool-pin-parity.shandtest-dotnet-helper-checkout.shpass. The fixture jobs in this pull request's CI are the proof that the new SDK installs and tests on the runners.Part of devantler-tech/dotnet-template#599
🤖 Generated with Claude Code