Skip to content

Upgrade dependencies for .NET 8 - #1385

Open
Bernd Verst (berndverst) wants to merge 1 commit into
mainfrom
berndverst-upgrade-dependencies
Open

Upgrade dependencies for .NET 8#1385
Bernd Verst (berndverst) wants to merge 1 commit into
mainfrom
berndverst-upgrade-dependencies

Conversation

@berndverst

Copy link
Copy Markdown
Member

Summary

  • Modernize product, test, sample, and Service Fabric dependencies while retaining netstandard2.0, net472, and net48 support.
  • Migrate breaking APIs for MSTest 4, CommandLineParser 2.9, System.Linq.Async, and consolidated System.Reactive packaging.
  • Pin patched legacy Service Bus and storage transitives, and update distributed-tracing prerequisites to the .NET 8 SDK.

Compatibility notes

  • Application Insights remains on 2.23 because 3.x removes telemetry-module APIs exposed by this repository.
  • System.Reactive remains on 6.1 because 7.0.0's analyzer requires Roslyn 4.12 and breaks builds with the .NET 8 SDK.
  • Legacy Service Bus transitives remain within compatible major versions while taking patched releases.

Validation

  • Debug solution and Release product matrix build with the .NET 8 SDK across netstandard2.0, net8.0, net472, and net48 surfaces.
  • Core, Emulator, Service Fabric, and local Service Bus test coverage passes on the retained frameworks.
  • PackageReference projects have no known vulnerable package findings.
  • The existing .NET Framework tracing failures reproduce on the unchanged baseline; one Azure Storage scheduled-start timing assertion remains timing-sensitive.

Preserve netstandard2.0 and .NET Framework 4.7.2+ compatibility while modernizing packages and related APIs.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: cc0975a2-b849-4657-a61b-0166df132157
Copilot AI lite review requested due to automatic review settings August 11, 2026 19:20
Assert.AreEqual(message, JToken.Parse(status?.Output));
Assert.AreEqual(message, JToken.Parse(status.Input));
Assert.AreEqual(message, JToken.Parse(status?.Output).Value<string>());
Assert.AreEqual(message, JToken.Parse(status.Input).Value<string>());

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

Upgrades and modernizes dependency versions across the product, tests, samples, and Service Fabric assets to support building and running with the .NET 8 SDK while retaining netstandard2.0, net472, and net48 compatibility.

Changes:

  • Updated centrally managed package versions (Azure SDKs, MSTest 4.x, System.* libraries, OpenTelemetry) and adjusted projects to match.
  • Migrated breaking API usages (MSTest “ThrowsExactly*”, CommandLineParser 2.9 parsing/help patterns, System.Linq.Async overload changes, consolidated System.Reactive package).
  • Updated Service Fabric build tooling and pinned patched legacy transitives for Service Bus/storage scenarios.

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/TestFabricApplication/TestApplication/TestApplication.sfproj Update Service Fabric MSBuild package import/version references.
test/TestFabricApplication/TestApplication/packages.config Bump Service Fabric MSBuild NuGet package version.
test/DurableTask.Stress.Tests/Program.cs Migrate CLI parsing to CommandLineParser 2.9 API pattern.
test/DurableTask.Stress.Tests/Options.cs Consolidate options to CommandLineParser 2.9 attributes/help generation.
test/DurableTask.ServiceBus.Tests/ServiceBusOrchestrationServiceTests.cs Adjust JSON assertions for stricter MSTest/runtime behavior.
test/DurableTask.ServiceBus.Tests/SampleScenarioTests.cs Switch to MSTest ThrowsExactlyAsync for precise exception assertions.
test/DurableTask.ServiceBus.Tests/OrchestrationHubTableClientTests.cs Normalize assert argument ordering and null assertions.
test/DurableTask.ServiceBus.Tests/InstanceStoreQueryTests.cs Replace Assert.IsTrue(false) with Assert.Fail().
test/DurableTask.ServiceBus.Tests/ErrorHandlingTests.cs Re-enable [TestMethod] while keeping test ignored.
test/DurableTask.ServiceBus.Tests/DurableTask.ServiceBus.Tests.csproj Add net8-only package needed after dependency upgrades.
test/DurableTask.Emulator.Tests/EmulatorFunctionalTests.cs Use MSTest ThrowsExactlyAsync for conflict checks.
test/DurableTask.Core.Tests/WorkItemDispatcherTests.cs Align ILogger.BeginScope signature with newer logging abstractions.
test/DurableTask.Core.Tests/TraceContextBaseTest.cs Use ThrowsExactly for strict exception matching.
test/DurableTask.Core.Tests/RetryInterceptorTests.cs Update exception assertions and test method attributes for MSTest 4.
test/DurableTask.Core.Tests/ExceptionHandlingIntegrationTests.cs Update test attributes for MSTest 4 behavior.
test/DurableTask.Core.Tests/DispatcherMiddlewareTests.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.Core.Tests/ContinueAsNewTraceBehaviorTests.cs Replace ExpectedException with Assert.ThrowsExactly lambdas.
test/DurableTask.AzureStorage.Tests/TestTablePartitionManager.cs Normalize assertions; minor test reliability/readability tweaks.
test/DurableTask.AzureStorage.Tests/StressTests.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/Storage/TableDeleteBatchParallelTests.cs Use ThrowsExactlyAsync for cancellation assertions.
Test/DurableTask.AzureStorage.Tests/Storage/DurableTaskStorageExceptionTests.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/Net/UriPathTests.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/MessageManagerTests.cs Update data-driven test attributes and strict exception assertions.
test/DurableTask.AzureStorage.Tests/KeySanitationTests.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/DurableTask.AzureStorage.Tests.csproj Adjust package pins/groups to align with updated dependency graph.
test/DurableTask.AzureStorage.Tests/Correlation/StringExtensionsTest.cs Use ThrowsExactly for strict exception matching.
test/DurableTask.AzureStorage.Tests/Correlation/CorrelationScenarioTest.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/AzureTableQueryFilterTests.cs Update data-driven test attributes for MSTest 4 behavior.
test/DurableTask.AzureStorage.Tests/AzureStorageScenarioTests.cs Update data-driven test attributes and JSON assertions.
test/DurableTask.AzureStorage.Tests/AzureStorageScaleTests.cs Update data-driven test attributes and strict exception assertions.
test/DurableTask.AzureStorage.Tests/AsyncAutoResetEventTests.cs Update data-driven test attributes and assertion ordering.
test/DurableTask.AzureServiceFabric.Tests/DurableTask.AzureServiceFabric.Tests.csproj Remove version overrides; rely on central package management.
test/DurableTask.AzureServiceFabric.Tests/App.config Remove outdated binding redirects after dependency updates.
Test/DurableTask.AzureServiceFabric.Tests/AllowedTypesSerializationBinderTests.cs Use ThrowsExactly* for strict exception matching.
test/DurableTask.AzureServiceFabric.Integration.Tests/FunctionalTests.cs Replace ExpectedException with explicit ThrowsExactlyAsync patterns.
test/DurableTask.AzureServiceFabric.Integration.Tests/DurableTask.AzureServiceFabric.Integration.Tests.csproj Remove package version overrides; rely on central package management.
test/DurableTask.AzureServiceFabric.Integration.Tests/DeploymentUtil/DeploymentHelper.cs Update Service Fabric client call to new overload requiring options.
test/DurableTask.AzureServiceFabric.Integration.Tests/App.config Remove outdated binding redirects after dependency updates.
src/DurableTask.ServiceBus/DurableTask.ServiceBus.csproj Pin patched legacy transitives and add net48-only dependencies.
src/DurableTask.Core/DurableTask.Core.csproj Consolidate reactive dependencies to System.Reactive.
src/DurableTask.AzureStorage/OrchestrationSessionManager.cs Adjust LINQ-async ToDictionaryAsync call for updated overloads.
samples/DurableTask.Samples/Program.cs Migrate CLI parsing to CommandLineParser 2.9 API pattern.
samples/DurableTask.Samples/Options.cs Update option attributes and help generation for CommandLineParser 2.9.
samples/DistributedTraceSample/README.md Update prerequisites to .NET 8 SDK and markdown formatting.
samples/DistributedTraceSample/ApplicationInsights/README.md Update prerequisites to .NET 8 SDK and markdown formatting.
Directory.Packages.props Central package version upgrades and framework-scoped dependency reshaping.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@@ -476,7 +476,7 @@ public async Task ForceTerminate_Already_Finished_Orchestration()

var reason = "Testing terminatiom of already finished orchestration";
@@ -716,8 +716,8 @@ await WaitForConditionAsync(
// guarantee table is corrrectly updated
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