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

No fields configured for Feature.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions