Skip to content

feat(runtime)!: Target dotnet 10#3571

Open
rouke-broersma wants to merge 8 commits into
masterfrom
dotnet-10
Open

feat(runtime)!: Target dotnet 10#3571
rouke-broersma wants to merge 8 commits into
masterfrom
dotnet-10

Conversation

@rouke-broersma

@rouke-broersma rouke-broersma commented May 8, 2026

Copy link
Copy Markdown
Member

Update target framework to dotnet 10 and remove some example projects we realistically haven't used in several years.

BREAKING CHANGE: Stryker now requires the .NET 10 runtime

@rouke-broersma rouke-broersma added this to the v5 milestone May 8, 2026
Copilot AI review requested due to automatic review settings May 8, 2026 14:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades Stryker.NET’s build target to .NET 10 (breaking change), updates NuGet lock files accordingly, and aligns documentation/integration test assets with the new runtime baseline.

Changes:

  • Retarget src/* projects to net10.0 via src/Directory.Build.props and regenerate packages.lock.json files.
  • Update “Getting started” docs and the validation integration-test project to net10.0.
  • Remove legacy example projects that target older/unsupported frameworks (Xamarin.Forms and older F# examples).

Reviewed changes

Copilot reviewed 68 out of 82 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/Directory.Build.props Switch default TFM to net10.0
docs/getting-started.md Document .NET 10 runtime requirement
integrationtest/Validation/ValidationProject/Validation.csproj Retarget validation project to net10.0
src/Stryker.Abstractions/packages.lock.json Lock file updated for net10.0
src/Stryker.Utilities/packages.lock.json Lock file updated for net10.0
src/Stryker.Configuration/packages.lock.json Lock file updated for net10.0
src/Stryker.Core/Stryker.Core/packages.lock.json Lock file updated for net10.0
src/Stryker.CLI/Stryker.CLI/packages.lock.json Lock file updated for net10.0
src/Stryker.CLI/Stryker.CLI.UnitTest/packages.lock.json Lock file updated for net10.0
src/Stryker.RegexMutators/Stryker.RegexMutators/packages.lock.json Lock file updated for net10.0
src/Stryker.RegexMutators/Stryker.RegexMutators.UnitTest/packages.lock.json Lock file updated for net10.0
src/Stryker.Solutions/packages.lock.json Lock file updated for net10.0
src/Stryker.Solutions.Test/packages.lock.json Lock file updated for net10.0
src/Stryker.TestRunner/packages.lock.json Lock file updated for net10.0
src/Stryker.TestRunner.VsTest/packages.lock.json Lock file updated for net10.0
src/Stryker.TestRunner.MicrosoftTestPlatform/packages.lock.json Lock file updated for net10.0
src/Stryker.TestRunner.MicrosoftTestPlatform.UnitTest/packages.lock.json Lock file updated for net10.0
src/Stryker.TestRunner.MicrosoftTestPlatform.UnitTest/SingleMicrosoftTestPlatformRunnerTests.cs Minor test variable rename for clarity
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Xamarin.Forms.Common.csproj Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/NewItemPage.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/NewItemPage.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/LoginPage.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/LoginPage.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/ItemsPage.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/ItemsPage.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/ItemDetailPage.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/ItemDetailPage.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/AboutPage.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Views/AboutPage.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/ViewModels/NewItemViewModel.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/ViewModels/LoginViewModel.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/ViewModels/ItemsViewModel.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/ViewModels/ItemDetailViewModel.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/ViewModels/BaseViewModel.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/ViewModels/AboutViewModel.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Services/MockDataStore.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Services/IDataStore.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/Models/Item.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/GettingStarted.txt Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/AssemblyInfo.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/AppShell.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/AppShell.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/App.xaml.cs Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms/App.xaml Remove legacy Xamarin.Forms example
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Tests/Xamarin.Forms.Tests.csproj Remove legacy Xamarin.Forms example tests
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Tests/UnitTest1.cs Remove legacy Xamarin.Forms example tests
ExampleProjects/Xamarin.Forms/Xamarin.Forms.sln Remove legacy Xamarin.Forms solution
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Xamarin.Forms.Android.csproj Remove legacy Xamarin.Android example
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Resources/values/styles.xml Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Resources/values/colors.xml Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Resources/mipmap-anydpi-v26/icon.xml Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Resources/mipmap-anydpi-v26/icon_round.xml Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Resources/AboutResources.txt Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Properties/AssemblyInfo.cs Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Properties/AndroidManifest.xml Remove legacy Xamarin.Android example asset
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/MainActivity.cs Remove legacy Xamarin.Android example
ExampleProjects/Xamarin.Forms/Xamarin.Forms.Android/Assets/AboutAssets.txt Remove legacy Xamarin.Android example asset
ExampleProjects/fsharpsyntaxtrees/fsharpsyntaxtrees/Program.cs Remove legacy F# syntax tree example
ExampleProjects/fsharpsyntaxtrees/fsharpsyntaxtrees/fsharpsyntaxtrees.csproj Remove legacy F# syntax tree example
ExampleProjects/fsharpsyntaxtrees/fsharpsyntaxtrees.sln Remove legacy F# syntax tree solution
ExampleProjects/FsharpMutateTestApp/boolMutateTestApp/Program.fs Remove legacy F# mutate test app
ExampleProjects/FsharpMutateTestApp/boolMutateTestApp/boolMutateTestApp.fsproj Remove legacy F# mutate test app
ExampleProjects/FsharpMutateTestApp/boolMutateTestApp.Test/Tests.fs Remove legacy F# mutate test app tests
ExampleProjects/FsharpMutateTestApp/boolMutateTestApp.Test/Program.fs Remove legacy F# mutate test app tests
ExampleProjects/FsharpMutateTestApp/boolMutateTestApp.Test/boolMutateTestApp.Test.fsproj Remove legacy F# mutate test app tests
ExampleProjects/FsharpMutateTestApp/boolMutateTestApp.sln Remove legacy F# mutate test app solution

Comment thread src/Directory.Build.props
Copilot AI review requested due to automatic review settings June 5, 2026 08:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 68 out of 82 changed files in this pull request and generated 7 comments.

Comments suppressed due to low confidence (4)

src/Stryker.TestRunner.MicrosoftTestPlatform/packages.lock.json:27

  • This lock file pins StreamJsonRpc to 2.24.84, but the centrally managed version is 2.25.25 (src/Directory.Packages.props). With lock files/locked mode enabled, this mismatch is likely to break restore reproducibility. Please regenerate the lock file after aligning central package versions so requested/resolved match.
    src/Stryker.Solutions.Test/packages.lock.json:15
  • This lock file pins Microsoft.NET.Test.Sdk to 18.5.1, but the centrally managed version is 18.6.0 (src/Directory.Packages.props). With lock files enabled, this mismatch is likely to break locked restores. Please regenerate the lock file after aligning central package versions so requested/resolved match.
    src/Stryker.RegexMutators/Stryker.RegexMutators.UnitTest/packages.lock.json:15
  • This lock file pins Microsoft.NET.Test.Sdk to 18.5.1, but src/Directory.Packages.props centrally manages it as 18.6.0. With RestorePackagesWithLockFile/locked mode enabled, this mismatch can break restore reproducibility. Regenerate the lock file after aligning central package versions so requested/resolved match.
    src/Stryker.Core/Stryker.Core/packages.lock.json:97
  • This lock file pins Microsoft.Extensions.DependencyInjection to 10.0.7, but src/Directory.Packages.props centrally manages it as 10.0.8. With lock files/locked mode enabled, the mismatch is likely to break restore reproducibility. Please regenerate the lock file after aligning the central package versions so requested/resolved match.

Comment thread src/Stryker.Utilities/packages.lock.json
Comment thread src/Stryker.TestRunner/packages.lock.json
Comment thread src/Stryker.TestRunner.VsTest/packages.lock.json
Comment thread src/Stryker.Abstractions/packages.lock.json
Comment thread src/Stryker.Configuration/packages.lock.json
Comment thread docs/getting-started.md
@sonarqubecloud

sonarqubecloud Bot commented Jun 5, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants