Skip to content

net10 to net11#20080

Open
T-Gro wants to merge 1 commit into
mainfrom
t-gro-net11-upgrade
Open

net10 to net11#20080
T-Gro wants to merge 1 commit into
mainfrom
t-gro-net11-upgrade

Conversation

@T-Gro

@T-Gro T-Gro commented Jul 22, 2026

Copy link
Copy Markdown
Member

Moves the repo onto .NET 11: builds with the .NET 11 SDK and targets net11.0.

Arcade is moved to 11 using the versions Maestro flows from the .NET 11 channel, so the dependency graph stays coherent rather than a hand-picked one-off bump.

Everything else is what building on SDK/Arcade 11 forces:

  • FSI #r "nuget:" now accounts for Microsoft.Extensions.* living in the shared framework rather than as standalone packages.
  • Test infrastructure that assumed a fixed runtime version, IL assembly versions, or framework-versioned baselines is now version-agnostic.
  • A few build and packaging steps that changed shape under Arcade 11.

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

⚠️ Release notes required, but author opted out

Warning

Author opted out of release notes, check is disabled for this pull request.
cc @dotnet/fsharp-team-msft

@T-Gro
T-Gro force-pushed the t-gro-net11-upgrade branch from 5289759 to 1a8d8bb Compare July 22, 2026 20:32
@github-actions github-actions Bot added the AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed label Jul 22, 2026
@T-Gro
T-Gro force-pushed the t-gro-net11-upgrade branch 2 times, most recently from dfd87d5 to 6c7cc6e Compare July 23, 2026 12:24
@T-Gro
T-Gro requested a review from abonie July 23, 2026 12:33
@T-Gro T-Gro added the NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes label Jul 23, 2026
@T-Gro
T-Gro enabled auto-merge (squash) July 23, 2026 12:33
@T-Gro
T-Gro disabled auto-merge July 23, 2026 14:39
@T-Gro
T-Gro marked this pull request as draft July 23, 2026 16:21
@T-Gro
T-Gro force-pushed the t-gro-net11-upgrade branch from 434b046 to 6c7cc6e Compare July 23, 2026 22:18
@T-Gro
T-Gro marked this pull request as ready for review July 23, 2026 23:44
Upgrade the repo to build on .NET 11 and target net11.0, plus the
adaptations the SDK/Arcade 11 bump forces.

Core version switch:
- global.json: sdk.version 11.0.100-preview.6.26359.118 with
  rollForward=latestMinor + allowPrerelease (newer local 11.x still wins).
  A 2-part "11.0" is not a valid concrete SDK version, so the muxer fell
  back to $host$ and the end-to-end tests built with the machine net10 SDK
  (NETSDK1045); a concrete version resolves .dotnet's net11 SDK.
  Arcade.Sdk 11.0.0-beta.26369.1.
- eng/TargetFrameworks.props: FSharpNetCoreProductTargetFramework net11.0.
- eng/Version.Details.xml + eng/Version.Details.props: Arcade.Sdk
  11.0.0-beta.26369.1 (+Sha) — the value Maestro flows from dotnet/arcade
  onto the net11 channel, not a hand-picked one.
- eng/Versions.props: MicrosoftTestPlatformVersion 18.0.1 (net11 SDK bundles
  vstest 18.x; Microsoft.TestPlatform.ObjectModel must track that generation).
- eng/common: regenerated to Arcade 11 (26369.1).

Arcade-11 / SDK adaptations:
- Microsoft.FSharp.Compiler.fsproj: NuGetRepack property casing, drop the
  obsolete UsingTask, add no-op PackageReleasePackages override (#19557).
- fsi.fsproj: PublishReadyToRun=false (crossgen2 preview crashes on fsi).
- tests/Directory.Build.props: mark .ComponentTests IsTestProject (excludes
  from SymStore PDB conversion that crashes on large test assemblies).
- FSharp.DependencyManager.ProjectFile.fs: resolve framework-provided
  assemblies (Microsoft.Extensions.* now in the shared framework) for
  FSI #r "nuget:"; RestoreEnablePackagePruning=false.
- regression-test-jobs.yml: install the compiler SDK into the TestRepo.

net11 test-behavior:
- EditorTests.fs: RegexOptions.AnyNewLine (2048) under NET11_0_OR_GREATER.
- CompilerAssert.fs: derive runtimeconfig runtime version from
  FrameworkDescription + rollForward LatestMinor (preview is semver-lower).
- ILChecker.fs: normalize System.Linq assembly extern (version-independent).
- DependencyManagerInteractiveTests.fs: on net11 Microsoft.Extensions.* are
  shared-framework, so #r "nuget:" resolves the ref-pack path and one root.
- ilverify.ps1: map versioned netN.0 baselines to generic netcoreapp;
  rename the two FSharp.Compiler.Service baselines accordingly.
- EndToEndBuildTests: MicrosoftTestPlatformVersion 18.0.1.

Validated: ./build.sh -c Release green (0/0); EmittedIL 1413 pass/0 fail;
EditorTests AnyNewLine pass; DependencyManager nuget-roots test pass;
ilverify FCS net11.0 exact-matches baseline.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@T-Gro
T-Gro force-pushed the t-gro-net11-upgrade branch from 6c7cc6e to 4529ecf Compare July 24, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed NO_RELEASE_NOTES Label for pull requests which signals, that user opted-out of providing release notes

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

1 participant