From d00a2c60e22cda7a70787c5de4b3e08ca5eaf18a Mon Sep 17 00:00:00 2001 From: Sebastian Burckhardt Date: Wed, 2 Oct 2024 14:24:57 -0700 Subject: [PATCH] increase major version (2.0.0) and update packages (#425) * update to 2.0.0, remove netcoreapp2.2 target, update all package versions * fix unit test that was broken because of xunit API change * fix API change for blob bindings in PerformanceTests * back out two of the major version changes * revise solution --- README.md | 2 +- .../HelloDF.csproj | 4 ++-- .../TokenCredentialDF.csproj | 2 +- .../TokenCredentialDTFx.csproj | 4 ++-- ...urableTask.Netherite.AzureFunctions.csproj | 19 +++++-------------- .../DurableTask.Netherite.csproj | 15 +++++++-------- ...er.Extensions.DurableTask.Netherite.csproj | 2 +- src/common.props | 6 +++--- ...Task.Netherite.AzureFunctions.Tests.csproj | 8 ++++---- .../DurableTask.Netherite.Tests.csproj | 6 +++--- .../ScenarioTests.cs | 2 +- test/LoadGeneratorApp/LoadGeneratorApp.csproj | 6 +++--- .../Benchmarks/EventHubs/ProducerEntity.cs | 1 - .../Benchmarks/Sequence/BlobSequence.cs | 16 ++++++++-------- .../Benchmarks/Sequence/QueueSequence.cs | 10 +++++----- test/PerformanceTests/PerformanceTests.csproj | 10 +++++----- 16 files changed, 51 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index cae48930..c001a08a 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ For some other considerations about how to choose the engine, see [the documenta ## Status -The current version of Netherite is *1.5.0*. Netherite supports almost all of the DT and DF APIs. +The current version of Netherite is *2.0.0*. Netherite supports almost all of the DT and DF APIs. Some notable differences to the default Azure Table storage provider include: - Instance queries and purge requests are not issued directly against Azure Storage, but are processed by the function app. Thus, the performance (latency and throughput) of queries heavily depends on diff --git a/samples/Hello_Netherite_with_DotNetCore/HelloDF.csproj b/samples/Hello_Netherite_with_DotNetCore/HelloDF.csproj index abe2989c..89f7fd33 100644 --- a/samples/Hello_Netherite_with_DotNetCore/HelloDF.csproj +++ b/samples/Hello_Netherite_with_DotNetCore/HelloDF.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/samples/TokenCredentialDF/TokenCredentialDF.csproj b/samples/TokenCredentialDF/TokenCredentialDF.csproj index 53a6b9f7..c5f3e897 100644 --- a/samples/TokenCredentialDF/TokenCredentialDF.csproj +++ b/samples/TokenCredentialDF/TokenCredentialDF.csproj @@ -4,7 +4,7 @@ v4 - + diff --git a/samples/TokenCredentialDTFx/TokenCredentialDTFx.csproj b/samples/TokenCredentialDTFx/TokenCredentialDTFx.csproj index c001eee2..d7a8aba0 100644 --- a/samples/TokenCredentialDTFx/TokenCredentialDTFx.csproj +++ b/samples/TokenCredentialDTFx/TokenCredentialDTFx.csproj @@ -1,4 +1,4 @@ - + Exe @@ -8,7 +8,7 @@ - + diff --git a/src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj b/src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj index c26ccb96..e2f5b527 100644 --- a/src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj +++ b/src/DurableTask.Netherite.AzureFunctions/DurableTask.Netherite.AzureFunctions.csproj @@ -1,8 +1,7 @@  - - netstandard2.1;netstandard2.0;netcoreapp2.2;netcoreapp3.1 + netstandard2.1;netstandard2.0;netcoreapp3.1 latest true true @@ -33,14 +32,6 @@ - - - - NETSDK1138 - true - @@ -54,12 +45,12 @@ - - + + - - + + diff --git a/src/DurableTask.Netherite/DurableTask.Netherite.csproj b/src/DurableTask.Netherite/DurableTask.Netherite.csproj index 076bb810..b5d79d94 100644 --- a/src/DurableTask.Netherite/DurableTask.Netherite.csproj +++ b/src/DurableTask.Netherite/DurableTask.Netherite.csproj @@ -49,17 +49,16 @@ - - - - + + + + - - + + - - + diff --git a/src/Functions.Worker.Extensions.DurableTask.Netherite/Functions.Worker.Extensions.DurableTask.Netherite.csproj b/src/Functions.Worker.Extensions.DurableTask.Netherite/Functions.Worker.Extensions.DurableTask.Netherite.csproj index 8e6c1957..43a3e76d 100644 --- a/src/Functions.Worker.Extensions.DurableTask.Netherite/Functions.Worker.Extensions.DurableTask.Netherite.csproj +++ b/src/Functions.Worker.Extensions.DurableTask.Netherite/Functions.Worker.Extensions.DurableTask.Netherite.csproj @@ -46,7 +46,7 @@ - + diff --git a/src/common.props b/src/common.props index c597f16e..89c46cf0 100644 --- a/src/common.props +++ b/src/common.props @@ -2,9 +2,9 @@ - 1 - 5 - 4 + 2 + 0 + 0 $(MajorVersion).$(MinorVersion).$(PatchVersion) $(MajorVersion).0.0.0 diff --git a/test/DurableTask.Netherite.AzureFunctions.Tests/DurableTask.Netherite.AzureFunctions.Tests.csproj b/test/DurableTask.Netherite.AzureFunctions.Tests/DurableTask.Netherite.AzureFunctions.Tests.csproj index 6dbd5c95..4b18122c 100644 --- a/test/DurableTask.Netherite.AzureFunctions.Tests/DurableTask.Netherite.AzureFunctions.Tests.csproj +++ b/test/DurableTask.Netherite.AzureFunctions.Tests/DurableTask.Netherite.AzureFunctions.Tests.csproj @@ -9,13 +9,13 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/test/DurableTask.Netherite.Tests/DurableTask.Netherite.Tests.csproj b/test/DurableTask.Netherite.Tests/DurableTask.Netherite.Tests.csproj index 88b5fb3f..9c06deb0 100644 --- a/test/DurableTask.Netherite.Tests/DurableTask.Netherite.Tests.csproj +++ b/test/DurableTask.Netherite.Tests/DurableTask.Netherite.Tests.csproj @@ -9,9 +9,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/test/DurableTask.Netherite.Tests/ScenarioTests.cs b/test/DurableTask.Netherite.Tests/ScenarioTests.cs index 40f1f6b7..d01f18de 100644 --- a/test/DurableTask.Netherite.Tests/ScenarioTests.cs +++ b/test/DurableTask.Netherite.Tests/ScenarioTests.cs @@ -277,7 +277,7 @@ public async Task ActorOrchestration() Assert.Equal(3, JToken.Parse(state?.Output)); // When using ContinueAsNew, the original input is discarded and replaced with the most recent state. - Assert.NotEqual(initialValue, JToken.Parse(state?.Input)); + Assert.NotEqual(initialValue, (int) JToken.Parse(state?.Input)); } /// diff --git a/test/LoadGeneratorApp/LoadGeneratorApp.csproj b/test/LoadGeneratorApp/LoadGeneratorApp.csproj index 31c44042..aa5c075b 100644 --- a/test/LoadGeneratorApp/LoadGeneratorApp.csproj +++ b/test/LoadGeneratorApp/LoadGeneratorApp.csproj @@ -5,9 +5,9 @@ - - - + + + diff --git a/test/PerformanceTests/Benchmarks/EventHubs/ProducerEntity.cs b/test/PerformanceTests/Benchmarks/EventHubs/ProducerEntity.cs index 931dec01..bdd2dc92 100644 --- a/test/PerformanceTests/Benchmarks/EventHubs/ProducerEntity.cs +++ b/test/PerformanceTests/Benchmarks/EventHubs/ProducerEntity.cs @@ -14,7 +14,6 @@ namespace PerformanceTests.EventHubs using System.Threading.Tasks; using Azure.Messaging.EventHubs; using Azure.Messaging.EventHubs.Producer; - using Microsoft.Azure.Documents.SystemFunctions; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.DurableTask; using Microsoft.Extensions.Logging; diff --git a/test/PerformanceTests/Benchmarks/Sequence/BlobSequence.cs b/test/PerformanceTests/Benchmarks/Sequence/BlobSequence.cs index 91900d7c..acabb34e 100644 --- a/test/PerformanceTests/Benchmarks/Sequence/BlobSequence.cs +++ b/test/PerformanceTests/Benchmarks/Sequence/BlobSequence.cs @@ -11,9 +11,9 @@ namespace PerformanceTests.Sequence using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; - using Microsoft.Azure.Storage.Blob; using Microsoft.Azure.WebJobs.Extensions.DurableTask; using Newtonsoft.Json; + using Azure.Storage.Blobs; /// /// An orchestration that runs the sequence using blob triggers. @@ -39,14 +39,14 @@ public static async Task Run( [FunctionName(nameof(SequenceTaskStart))] public static async Task SequenceTaskStart( [ActivityTrigger] IDurableActivityContext context, - [Blob("blobtriggers/blobs")] CloudBlobDirectory directory, + [Blob("blobtriggers/blobs")] BlobContainerClient containerClient, ILogger logger) { Sequence.Input input = context.GetInput(); - await directory.Container.CreateIfNotExistsAsync(); + await containerClient.CreateIfNotExistsAsync(); string content = JsonConvert.SerializeObject(input); - var blob = directory.GetBlockBlobReference(Guid.NewGuid().ToString()); - await blob.UploadTextAsync(content); + var blob = containerClient.GetBlobClient(Guid.NewGuid().ToString()); + await blob.UploadAsync(content); logger.LogWarning($"blob sequence {context.InstanceId} started."); } @@ -54,7 +54,7 @@ public static async Task SequenceTaskStart( [FunctionName(nameof(BlobSequenceTask1))] public static async Task BlobSequenceTask1( [BlobTrigger("blobtriggers/blobs/{blobname}")] Stream inputStream, - [Blob("blobtriggers/blobs")] CloudBlobDirectory directory, + [Blob("blobtriggers/blobs")] BlobContainerClient containerClient, [DurableClient] IDurableClient client, string blobname, ILogger logger) @@ -72,8 +72,8 @@ public static async Task BlobSequenceTask1( { // write the blob to trigger the next task string content = JsonConvert.SerializeObject(input); - var blob = directory.GetBlockBlobReference(Guid.NewGuid().ToString()); - await blob.UploadTextAsync(content); + var blob = containerClient.GetBlobClient(Guid.NewGuid().ToString()); + await blob.UploadAsync(content); } else { diff --git a/test/PerformanceTests/Benchmarks/Sequence/QueueSequence.cs b/test/PerformanceTests/Benchmarks/Sequence/QueueSequence.cs index cc6a66cc..2052c07c 100644 --- a/test/PerformanceTests/Benchmarks/Sequence/QueueSequence.cs +++ b/test/PerformanceTests/Benchmarks/Sequence/QueueSequence.cs @@ -10,7 +10,7 @@ namespace PerformanceTests.Sequence using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Microsoft.Azure.WebJobs.Extensions.DurableTask; - using Microsoft.Azure.Storage.Queue; + using Azure.Storage.Queues; /// /// An orchestration that runs the sequence using queue triggers. @@ -36,13 +36,13 @@ public static async Task Run( [FunctionName(nameof(QueueSequenceTaskStart))] public static async Task QueueSequenceTaskStart( [ActivityTrigger] IDurableActivityContext context, - [Queue("sequence")] CloudQueue queue, + [Queue("sequence")] QueueClient queue, ILogger logger) { Sequence.Input input = context.GetInput(); string content = JsonConvert.SerializeObject(input); await queue.CreateIfNotExistsAsync(); - await queue.AddMessageAsync(new CloudQueueMessage(content)); + await queue.SendMessageAsync(content); logger.LogWarning($"queue sequence {context.InstanceId} started."); } @@ -50,7 +50,7 @@ public static async Task QueueSequenceTaskStart( [FunctionName(nameof(QueueSequenceTask1))] public static async Task QueueSequenceTask1( [QueueTrigger("sequence")] string serialized, - [Queue("sequence")] CloudQueue queue, + [Queue("sequence")] QueueClient queue, [DurableClient] IDurableClient client, ILogger logger) { @@ -64,7 +64,7 @@ public static async Task QueueSequenceTask1( { // write to the queue to trigger the next task string content = JsonConvert.SerializeObject(input); - await queue.AddMessageAsync(new CloudQueueMessage(content)); + await queue.SendMessageAsync(content); } else { diff --git a/test/PerformanceTests/PerformanceTests.csproj b/test/PerformanceTests/PerformanceTests.csproj index 36f935dd..1ccd2e83 100644 --- a/test/PerformanceTests/PerformanceTests.csproj +++ b/test/PerformanceTests/PerformanceTests.csproj @@ -4,11 +4,11 @@ v4 - - - - - + + + + +