Skip to content

Support .NET SDK 10 #326

@Arash-Sabet

Description

@Arash-Sabet

Plan and Actions:

To fully upgrade to .NET SDK 10 (dropping backward compatibility):

  1. Update all .csproj files to target net10.0 only
    • Remove any references to previous TargetFrameworks/TFMs (net8.0, net6.0, etc.)
    • Ensure all projects and test projects target ONLY net10.0
    • Increment the version number to 10.0.0 in Xunit.Microsoft.DependencyInjection.csproj found in here: <Version Condition="'$(Version)' == ''">9.2.2</Version>
  2. Upgrade NuGet package dependencies
    • Use dotnet list package --outdated to identify packages requiring updates
    • Upgrade each package to the latest compatible version for .NET 10 using NuGet
    • Fix code as needed for any breaking changes introduced by new dependencies
    • Validate all code builds and runs with updated dependencies
  3. Update build pipelines (GitHub Actions if any)
    • Modify workflow files to use actions/setup-dotnet with SDK 10 (10.x)
    • Remove matrix entries for older SDK versions
    • Validate pipeline, both PR and release, builds and tests with SDK 10 only
    • The build pipelines are the following yml files only:
      • azure-pipeline-PR.yml
      • azure-pipelines.yml - Increment the major number to 10, minor and revision to both 0 in this yml file
  4. Run and fix all tests
    • Ensure the entire test suite passes on net10.0
    • Address any failures due to upgraded dependencies or SDK changes
  5. Documentation and release
    • Update README, changelog, and documentation to specify .NET 10 minimum requirement
    • Set appropriate version bump (major if public APIs or support dropped)
    • Do not publish to NuGet as it will be a manual process

Deliverables:

  • Branch: support/net10 with all changes
  • PR: "Support .NET SDK 10 (net10.0 only, no backward compatibility)"
  • Changelog entries, CI status, publishing info
  • Do not run azure-pipelines.yml as that will be a manual process. Run azure-pipeline-PR.yml only to validate.

Decision:

  • Targeting net10.0 only. All compatibility with previous .NET SDKs is removed.
  • No multi-targeting; this is a breaking change for consumers relying on older SDKs.

Next steps:

  • Execute the above in sequence and open a PR for review once ready.

Draft for your approval before implementation.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions