dotnet / dotnet/sdk

Main branch net12.0 transition status tracking

Open
#55,851 1 comment 0 reactions 1 assignee Claimed by @marcpopMSFT View on GitHub
untriaged
Dominant language
C#
Stars
3.2k
Forks
1.3k
PR merge metrics
PR metrics pending

Description

`11.0.1xx` branch has been created so `main` has become the .NET 12 development branch. This issue tracks the coordinated work needed for that transition.

The reusable background checklist is in [UpdateToNewTargetFramework.md](https://github.com/dotnet/sdk/blob/main/documentation/general/UpdateToNewTargetFramework.md). The net12 work should also incorporate the lessons from the [net11 transition tracker](https://github.com/dotnet/sdk/issues/50295), especially keeping `N-1` known-framework versions and RID lists isolated from the new current TFM.

## Current state

Planning; waiting for the .NET 11 branch split and net12 branding.

## Branching and product setup

- [ ] Update the download/build table for the .NET 11 RC branches and net12 `main`.
- [ ] Update branding so the .NET 11 servicing/release branches have the intended RC branding and `main` is `12.0.1xx-alpha`.
- [ ] Create the `11.0.2xx` branch for live work.
- [ ] Add the required inter-branch flow between `11.0.1xx` and `11.0.2xx`.
- [ ] Move localization to `11.0.2xx` after the appropriate RC snap.

## Target framework enablement

These steps should be completed roughly in order:

- [x] Add `net12.0` known framework references in `GenerateBundledVersions.targets`.
- [x] Freeze net11 package versions instead of leaving net11 bound to live current-product properties.
- [x] Add explicit net12 RID inheritance layers and keep net11 on `Net110*` RID snapshots so later net12 RID additions do not leak backward.
- [ ] Generate and inspect `Microsoft.NETCoreSdk.BundledVersions.props`; verify net12 completeness plus net11/net10 isolation.
- [ ] Flow net12 runtime, WindowsDesktop, and ASP.NET Core dependencies.
- [ ] Update `global.json` to a bootstrap SDK build that supports targeting net12.
- [ ] Retarget the SDK itself to net12.
- [ ] Update shared test framework constants and tests to target net12.
- [ ] Use `PreviousTargetFramework` for tests that must temporarily remain on net11.
- [ ] Mark temporary transition changes with `NetTFMUpdate` so they can be found and unwound.
- [ ] Retarget the default templates to net12.
- [ ] Update any build-time analyzer/package-generation commands that explicitly select the current TFM.

## Transition cleanup

- [ ] Pin out-of-repo templates, WindowsDesktop templates, and affected end-to-end tests to net11 until their upstream net12 artifacts are available.
- [ ] Update restore-toolset inputs for the net11 runtime where required.
- [ ] After net11 GA, replace temporary exact net11 framework-pack pins with `11.0.$(VersionFeature110)` and remove temporary comments.
- [ ] Re-enable or unpin tests and templates disabled during branding/runtime flow.
- [ ] Search for and remove all temporary `NetTFMUpdate` changes.
- [ ] Update [UpdateToNewTargetFramework.md](https://github.com/dotnet/sdk/blob/main/documentation/general/UpdateToNewTargetFramework.md) with the final net12 sequence, known-framework-reference invariants, and representative PR links for the next rollover.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.