Skip to content

Move the template to .NET 11 once it reaches general availability #599

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Evidence

  • The template's toolchain policy (AGENTS.md, Toolchain-floor policy) says to track the latest released (GA) .NET. It moves the target framework and the global.json SDK floor together, only when a new GA ships, and never to a preview or release candidate.
  • Today the template targets net10.0 with an SDK floor of 10.0.300.
  • Microsoft's public release index, read on 3 November 2026, lists .NET 11.0 as go-live (latest 11.0.0-rc.3, 25 October 2026). No GA build exists yet. .NET 10 is the current LTS (end of support 14 November 2028).

Who it affects and why

People who start a new .NET library from this template. Once .NET 11 is GA, a new project should start on the current release rather than one release behind. That is what the template's own policy promises.

Hypothesis

If the template moves to .NET 11 within a week of GA, a project created from it builds and tests on the newest GA toolchain on all three CI platforms, with no extra setup by the person starting it.

Success signal

  • The three required .NET template tests checks pass on the bumped template.
  • dotnet build and dotnet test work on a fresh copy made from the template.
  • No net10.0 copy is left in either project file or in the docs.
  • Window: within 7 days of the .NET 11 GA release appearing in Microsoft's release index.

Smallest useful change

In one PR:

  • set <TargetFramework>net11.0</TargetFramework> in src/Example/Example.csproj and tests/Example.Tests/Example.Tests.csproj;
  • raise the global.json SDK floor to the first .NET 11 GA SDK feature band;
  • update the net10.0 mentions in AGENTS.md and README;
  • check that the test packages (xUnit v3 on Microsoft.Testing.Platform, coverlet, code coverage) support net11.0;
  • record the GA release as the trigger in the PR body.

Acceptance criteria

  • The .NET 11 GA release is published in Microsoft's release index. Until then, this issue is time-gated and not started.
  • Both project files and global.json move together, with no straggler.
  • Required CI passes on Ubuntu, Windows and macOS.
  • The docs name the new framework.

Open question for the PR

.NET 11 is a standard-term release (about 18 months of support), and .NET 10 is long-term. The current policy says "latest GA" with no LTS exception, so this issue follows the policy. If an LTS-only floor turns out to be better for people using the template, the PR should change the policy text explicitly rather than quietly skip the bump.

Rough size

Small: two project files, global.json and two docs, plus CI.

The upstream packaging and shared SDK blockers are resolved. Draft #627 now adopts the released .NET 11 test action and dotnet-releaser 0.25.0 at signed d6c97b9a92826544d25de3a71f27358c54dfaab3. Hosted scaffold/package validation, all three required platform tests, a current-head review and user-path acceptance remain outstanding; this issue stays open. See the release applicability and validation record.

Activity

  1. added theissue type on Nov 3, 2026
  2. moved this to 📥 Backlog in 🌊 Project Boardon Nov 3, 2026
  3. moved this from 📥 Backlog to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Nov 11, 2026
  4. devantler commented on Nov 11, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer (interactive Claude Code session)

    .NET 11 is out, the change is ready, and it is blocked by the packaging tool

    .NET 11 became generally available on 10 November 2026, so the first acceptance criterion is met. The change is in draft #627. Two things stood in its way:

    1. The shared test action installed only the .NET 9 and 10 SDKs. That is ours to fix, in feat(run-dotnet-tests)!: provision .NET 11 and retire the end-of-life .NET 9 SDK .github#895.
    2. dotnet-releaser does not work with the .NET 11 SDK. The scaffold check packs the example with it, and it aborts while loading the project: its build-log reader rejects a record the new SDK writes ("unsupported type: 36"). I tried both published versions that matter, 0.24.0 and 0.24.1 (the newest), and I tried running the tool on the .NET 11 runtime; that only changes the error. The job logs are on feat: move the template to .NET 11 #627.

    Why this needs an upstream report. The fault is inside the tool, which is built against the .NET 10 build libraries. Nothing in this repository or in the organisation can make it read the new SDK's build log. The only alternative here would be to replace the packaging tool in the template's release path, which is a much larger decision than this issue and would change what the template teaches. So the next step is a short, factual report to the tool's maintainer, and this issue waits for a fixed release.

    🤖 Generated with Claude Code

  5. added 2 commits that reference this issue on Nov 11, 2026
  6. moved this from 🏃🏻‍♂️ In Progress to ✅ Done in 🌊 Project Boardon Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions