Skip to content

Commit

Permalink
increase major version (2.0.0) and update packages (#425)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
sebastianburckhardt authored Oct 2, 2024
1 parent 55045a2 commit d00a2c6
Show file tree
Hide file tree
Showing 16 changed files with 51 additions and 62 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 2 additions & 2 deletions samples/Hello_Netherite_with_DotNetCore/HelloDF.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.DurableTask.Netherite.AzureFunctions" Version="1.4.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.2" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.3.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.6" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.4.1" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
Expand Down
2 changes: 1 addition & 1 deletion samples/TokenCredentialDF/TokenCredentialDF.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.3.0" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.4.1" />
<PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.DurableTask.Netherite.AzureFunctions" Version="1.4.2" />
</ItemGroup>
Expand Down
4 changes: 2 additions & 2 deletions samples/TokenCredentialDTFx/TokenCredentialDTFx.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
Expand All @@ -8,7 +8,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Azure.Identity" Version="1.11.4" />
<PackageReference Include="Azure.Identity" Version="1.12.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="6.0.0" />
<PackageReference Include="Microsoft.Azure.DurableTask.Netherite" Version="1.4.2" />
</ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<!--The target netcoreapp2.2 is not functional, but just generates runtime error when used.-->
<TargetFrameworks>netstandard2.1;netstandard2.0;netcoreapp2.2;netcoreapp3.1</TargetFrameworks>
<TargetFrameworks>netstandard2.1;netstandard2.0;netcoreapp3.1</TargetFrameworks>
<LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<IncludeSymbols>true</IncludeSymbols>
Expand Down Expand Up @@ -33,14 +32,6 @@

<!-- Version can be edited in common.props -->
<Import Project=".\..\common.props" />

<!-- Our netcoreapp2.2 target is a non-functional dummy target. It does not contain any runnable code
but we needed to have it at some point to keep the functions environment happy. Since the generated
dll does not contain runnable code we can ignore deprecation warnings. -->
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.2' ">
<NoWarn>NETSDK1138</NoWarn>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
</PropertyGroup>

<ItemGroup>
<None Include="icon.png" Pack="true" PackagePath="\" />
Expand All @@ -54,12 +45,12 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.16.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.2" />
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.17.1" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.6" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' != 'netcoreapp2.2' ">
<ProjectReference Include="..\DurableTask.Netherite\DurableTask.Netherite.csproj" />
<ItemGroup>
<ProjectReference Include="..\DurableTask.Netherite\DurableTask.Netherite.csproj" />
</ItemGroup>

</Project>
15 changes: 7 additions & 8 deletions src/DurableTask.Netherite/DurableTask.Netherite.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -49,17 +49,16 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Azure.Core" Version="1.38.0" />
<PackageReference Include="Azure.Data.Tables" Version="12.8.0" />
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.11.2" />
<PackageReference Include="Azure.Messaging.EventHubs.Processor" Version="5.11.2" />
<PackageReference Include="Azure.Core" Version="1.43.0" />
<PackageReference Include="Azure.Data.Tables" Version="12.9.1" />
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.11.5" />
<PackageReference Include="Azure.Messaging.EventHubs.Processor" Version="5.11.5" />
<PackageReference Include="Microsoft.Azure.Storage.Blob" Version="11.2.3" />
<PackageReference Include="Azure.Storage.Blobs" Version="12.16.0" />
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.16.2" />
<PackageReference Include="Azure.Storage.Blobs" Version="12.22.1" />
<PackageReference Include="Microsoft.Azure.DurableTask.Core" Version="2.17.1" />
<PackageReference Include="Microsoft.FASTER.Core" Version="2.6.5" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="System.Threading.Channels" Version="4.7.1" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" PrivateAssets="All" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Abstractions" Version="1.1.0" />
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Abstractions" Version="1.3.0" />
</ItemGroup>

<!-- This tells the .NET Isolated Worker SDK which WebJobs extension this package depends on -->
Expand Down
6 changes: 3 additions & 3 deletions src/common.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- Version settings: https://andrewlock.net/version-vs-versionsuffix-vs-packageversion-what-do-they-all-mean/ -->
<PropertyGroup>
<MajorVersion>1</MajorVersion>
<MinorVersion>5</MinorVersion>
<PatchVersion>4</PatchVersion>
<MajorVersion>2</MajorVersion>
<MinorVersion>0</MinorVersion>
<PatchVersion>0</PatchVersion>
<VersionPrefix>$(MajorVersion).$(MinorVersion).$(PatchVersion)</VersionPrefix>
<VersionSuffix></VersionSuffix>
<AssemblyVersion>$(MajorVersion).0.0.0</AssemblyVersion>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.1.2">
<PackageReference Include="coverlet.collector" Version="6.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
2 changes: 1 addition & 1 deletion test/DurableTask.Netherite.Tests/ScenarioTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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));
}

/// <summary>
Expand Down
6 changes: 3 additions & 3 deletions test/LoadGeneratorApp/LoadGeneratorApp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Azure.DurableTask.Netherite.AzureFunctions" Version="1.1.1" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.2" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="2.13.6" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.4.1" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
<ItemGroup>
<None Update="host.json">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
16 changes: 8 additions & 8 deletions test/PerformanceTests/Benchmarks/Sequence/BlobSequence.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/// <summary>
/// An orchestration that runs the sequence using blob triggers.
Expand All @@ -39,22 +39,22 @@ public static async Task<string> 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<Sequence.Input>();
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.");
}

[Disable]
[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)
Expand All @@ -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
{
Expand Down
10 changes: 5 additions & 5 deletions test/PerformanceTests/Benchmarks/Sequence/QueueSequence.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;

/// <summary>
/// An orchestration that runs the sequence using queue triggers.
Expand All @@ -36,21 +36,21 @@ public static async Task<string> 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<Sequence.Input>();
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.");
}

[Disable]
[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)
{
Expand All @@ -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
{
Expand Down
10 changes: 5 additions & 5 deletions test/PerformanceTests/PerformanceTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.11.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="4.0.1" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="5.1.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="4.0.4" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.1.3" />
<PackageReference Include="Azure.Messaging.EventHubs" Version="5.11.5" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions" Version="5.0.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.EventHubs" Version="6.3.5" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.3.2" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.4.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\DurableTask.Netherite.AzureFunctions\DurableTask.Netherite.AzureFunctions.csproj" />
Expand Down

0 comments on commit d00a2c6

Please sign in to comment.