diff --git a/CHANGELOG.md b/CHANGELOG.md index 60f7789c..bf07dbab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,18 @@ ## Unreleased +## v1.27.0 + - Add `Microsoft.DurableTask.LargePayloadPurge.Abstractions` with shared fetch/report and service-setting interfaces, and expose the existing blob purge tasks for host integration ([#805](https://github.com/microsoft/durabletask-dotnet/pull/805)). -- Preserve the original orchestration version when restarting through the orchestration-service client shim ([#463](https://github.com/microsoft/durabletask-dotnet/issues/463)). +- Isolate in-process test-host work-item completion by delivery token ([#815](https://github.com/microsoft/durabletask-dotnet/pull/815)). +- Await backend operations for in-process test-host task-hub lifecycle changes ([#813](https://github.com/microsoft/durabletask-dotnet/pull/813)). +- Release streamed history snapshots after in-process test-host work items complete ([#811](https://github.com/microsoft/durabletask-dotnet/pull/811)). +- Treat omitted purge start times as unbounded in the in-process test host ([#810](https://github.com/microsoft/durabletask-dotnet/pull/810)). +- Fix orchestration history retrieval in the in-process test host ([#809](https://github.com/microsoft/durabletask-dotnet/pull/809)). +- Preserve the original orchestration version when restarting through the orchestration-service client shim ([#808](https://github.com/microsoft/durabletask-dotnet/pull/808), [#463](https://github.com/microsoft/durabletask-dotnet/issues/463)). - Support configurable scheduler token audiences and government defaults ([#806](https://github.com/microsoft/durabletask-dotnet/pull/806)) +- Add opt-in large-payload blob auto-purge with a persistent orchestration and shared Client purge models ([#758](https://github.com/microsoft/durabletask-dotnet/pull/758)). +- Update `Microsoft.Azure.DurableTask.Core` from `3.9.0` to the published `3.11.1` release. ## v1.26.0 - Adding rewind to the sidecar by sophiatev ([#802](https://github.com/microsoft/durabletask-dotnet/pull/802)) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7b634b8f..b45a4435 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -39,7 +39,7 @@ - + diff --git a/eng/targets/Release.props b/eng/targets/Release.props index 6c5d6ae4..9912064e 100644 --- a/eng/targets/Release.props +++ b/eng/targets/Release.props @@ -18,7 +18,7 @@ - 1.26.0 + 1.27.0 diff --git a/test/Grpc.IntegrationTests/OrchestrationPatterns.cs b/test/Grpc.IntegrationTests/OrchestrationPatterns.cs index 6ae19097..f2815e5b 100644 --- a/test/Grpc.IntegrationTests/OrchestrationPatterns.cs +++ b/test/Grpc.IntegrationTests/OrchestrationPatterns.cs @@ -98,7 +98,7 @@ public async Task ScheduleSubOrchestrationWithTags() }); - await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1); + string parentInstanceId = await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1); OrchestrationMetadata metadata = await server.Client.WaitForInstanceCompletionAsync( subOrchestrationOptions.InstanceId, this.TimeoutToken); @@ -109,6 +109,12 @@ public async Task ScheduleSubOrchestrationWithTags() Assert.Equal(2, metadata.Tags.Count); Assert.Equal("value1", metadata.Tags["tag1"]); Assert.Equal("value2", metadata.Tags["tag2"]); + + // The shared sidecar still needs this worker to process the child's result in its parent. + OrchestrationMetadata parentMetadata = await server.Client.WaitForInstanceCompletionAsync( + parentInstanceId, this.TimeoutToken); + Assert.NotNull(parentMetadata); + Assert.Equal(OrchestrationRuntimeStatus.Completed, parentMetadata.RuntimeStatus); } [Fact] @@ -155,7 +161,7 @@ public async Task ScheduleSubOrchestrationWithTagsAndRetryPolicy() })); }); - await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1); + string parentInstanceId = await server.Client.ScheduleNewOrchestrationInstanceAsync(orchestratorName, input: 1); // Confirm the orchestration eventually succeeded after some delay for the retry to complete await Task.Delay(TimeSpan.FromSeconds(3)); @@ -169,6 +175,11 @@ public async Task ScheduleSubOrchestrationWithTagsAndRetryPolicy() Assert.Equal("value2", metadata.Tags["tag2"]); // 3 invocations - one for the parent orchestration, one for the first suborchestration attempt, one for the final suborchestration attempt Assert.Equal(3, invocationCounter); + + OrchestrationMetadata parentMetadata = await server.Client.WaitForInstanceCompletionAsync( + parentInstanceId, this.TimeoutToken); + Assert.NotNull(parentMetadata); + Assert.Equal(OrchestrationRuntimeStatus.Completed, parentMetadata.RuntimeStatus); } [Fact]