Skip to content

Target .NET 8 and .NET 10 across the repo - #322

Merged
andystaples merged 4 commits into
mainfrom
andystaples-modernize-dotnet-targets
Jul 31, 2026
Merged

Target .NET 8 and .NET 10 across the repo#322
andystaples merged 4 commits into
mainfrom
andystaples-modernize-dotnet-targets

Conversation

@andystaples

Copy link
Copy Markdown
Contributor

Summary

  • target production Functions, tests, performance samples, and tooling on both net8.0 and net10.0
  • add net8.0 and net10.0 assets to the two netstandard2.0 compatibility packages, matching the Azure Durable Functions extension convention
  • pin the repository to the .NET 10 SDK, provision .NET 8/10 in GitHub Actions and Azure Pipelines, and serialize target-framework test runs that share SQL state
  • remove the redundant System.Text.Json package pin from the modern-only database generator

Validation

  • dotnet build DurableTask.SqlServer.sln --configuration Release --no-incremental
  • package inspection confirms the expected netstandard2.0, net8.0, and net10.0 assets
  • Azure Functions tests pass on both targets (34/34 each)
  • non-stress SQL integration runs completed 112 passed and 1 skipped on each target; one environment-sensitive Docker Desktop test timed out per target (SuspendAndResumeInstance on .NET 8 and PurgesMoreThanOneThousandInstances on .NET 10)

Reference: Azure/azure-functions-durable-extension#3333

Modernize production, test, sample, and tooling projects using the durable extension repository's multi-targeting convention. Update CI SDK provisioning and serialize shared-database test runs across target frameworks.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4a998a9-4194-49f7-b180-7400759b38aa
@andystaples
andystaples requested review from bachuv and cgillum and removed request for cgillum July 31, 2026 15:55
The 1,100-instance regression test can exceed one minute under the new net10.0 CI pass. Keep its behavioral assertions intact while allowing enough time for all orchestrations to complete.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4a998a9-4194-49f7-b180-7400759b38aa
SqlClient can surface a canceled command as SqlException on modern runtimes. Translate that provider-specific result to OperationCanceledException when the operation token is canceled so callers observe stable cancellation semantics.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4a998a9-4194-49f7-b180-7400759b38aa
cgillum
cgillum previously approved these changes Jul 31, 2026

@cgillum cgillum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm good with these changes once the merge conflicts are resolved.

…-dotnet-targets

# Conflicts:
#	.github/workflows/build-and-test.yml
#	.github/workflows/publish-release.yml
@andystaples
andystaples merged commit add434b into main Jul 31, 2026
5 checks passed
@andystaples
andystaples deleted the andystaples-modernize-dotnet-targets branch July 31, 2026 19:50
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