Skip to content

Commit 1b5f10e

Browse files
authored
Adds durabletask fork (#1544)
Supports integrating our fork at dapr/durabletask-dotnet from microsoft/durabletask-dotnet with the cancellation token patch
1 parent 6b49bed commit 1b5f10e

File tree

80 files changed

+144
-231
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+144
-231
lines changed

.github/workflows/itests.yml

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,8 @@ jobs:
2020
strategy:
2121
fail-fast: false
2222
matrix:
23-
dotnet-version: ['6.0', '7.0', '8.0', '9.0']
23+
dotnet-version: ['8.0', '9.0']
2424
include:
25-
- dotnet-version: '6.0'
26-
display-name: '.NET 6.0'
27-
framework: 'net6'
28-
prefix: 'net6'
29-
install-version: '6.0.x'
30-
- dotnet-version: '7.0'
31-
display-name: '.NET 7.0'
32-
framework: 'net7'
33-
prefix: 'net7'
34-
install-version: '7.0.x'
3525
- dotnet-version: '8.0'
3626
display-name: '.NET 8.0'
3727
framework: 'net8'
@@ -50,7 +40,7 @@ jobs:
5040
GOPROXY: https://proxy.golang.org
5141
DAPR_CLI_VER: 1.15.0
5242
DAPR_RUNTIME_VER: 1.15.3
53-
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/release-1.14/install/install.sh
43+
DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/release-1.15/install/install.sh
5444
DAPR_CLI_REF: ''
5545
steps:
5646
- name: Set up Dapr CLI
@@ -124,9 +114,11 @@ jobs:
124114
with:
125115
dotnet-version: '9.0.x'
126116
dotnet-quality: 'ga'
117+
- name: Restore dependencies
118+
run: dotnet restore
127119
- name: Build
128120
# disable deterministic builds, just for test run. Deterministic builds break coverage for some reason
129-
run: dotnet build --configuration release /p:GITHUB_ACTIONS=false
121+
run: dotnet build --configuration release --no-restore /p:GITHUB_ACTIONS=false
130122
- name: Run General Tests
131123
id: tests
132124
continue-on-error: true # proceed if tests fail, the report step will report the failure with more details.

.github/workflows/sdk_build.yml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ on:
55
branches:
66
- master
77
- release-*
8+
- durabletask-fork
89
tags:
910
- v*
1011

1112
pull_request:
1213
branches:
1314
- master
1415
- release-*
16+
- durabletask-fork
1517

1618
jobs:
1719
build:
@@ -28,8 +30,10 @@ jobs:
2830
with:
2931
dotnet-version: 9.0.x
3032
dotnet-quality: 'ga'
33+
- name: Restore dependencies
34+
run: dotnet restore
3135
- name: Build
32-
run: dotnet build --configuration release
36+
run: dotnet build --configuration release --no-restore
3337
- name: Generate Packages
3438
run: dotnet pack --configuration release
3539
- name: Upload packages
@@ -44,18 +48,8 @@ jobs:
4448
strategy:
4549
fail-fast: false
4650
matrix:
47-
dotnet-version: ['6.0', '7.0', '8.0', '9.0']
51+
dotnet-version: ['8.0', '9.0']
4852
include:
49-
- dotnet-version: '6.0'
50-
display-name: '.NET 6.0'
51-
framework: 'net6'
52-
prefix: 'net6'
53-
install-version: '6.0.x'
54-
- dotnet-version: '7.0'
55-
display-name: '.NET 7.0'
56-
framework: 'net7'
57-
prefix: 'net7'
58-
install-version: '7.0.x'
5953
- dotnet-version: '8.0'
6054
display-name: '.NET 8.0'
6155
framework: 'net8'

CONTRIBUTING.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ This section describes the guidelines for contributing code / docs to Dapr.
5454
All contributions come through pull requests. To submit a proposed change, we recommend following this workflow:
5555

5656
1. Make sure there's an issue (bug or proposal) raised, which sets the expectations for the contribution you are about to make.
57-
1. Fork the relevant repo and create a new branch
58-
1. Create your change
57+
2. Fork the relevant repo and create a new branch
58+
3. Create your change
5959
- Code changes require tests
60-
1. Update relevant documentation for the change
61-
1. Commit and open a PR
62-
1. Wait for the CI process to finish and make sure all checks are green
63-
1. A maintainer of the project will be assigned, and you can expect a review within a few days
60+
4. Update relevant documentation for the change
61+
5. Commit and open a PR
62+
6. Wait for the CI process to finish and make sure all checks are green
63+
7. A maintainer of the project will be assigned, and you can expect a review within a few days
6464

6565
#### Use work-in-progress PRs for early feedback
6666

Directory.Packages.props

Lines changed: 51 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,48 +5,66 @@
55
</PropertyGroup>
66
<ItemGroup>
77
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
8-
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
9-
<PackageVersion Include="coverlet.msbuild" Version="6.0.2" />
10-
<PackageVersion Include="GitHubActionsTestLogger" Version="1.1.2" />
11-
<PackageVersion Include="Google.Api.CommonProtos" Version="2.2.0" />
12-
<PackageVersion Include="Google.Protobuf" Version="3.30.2" />
8+
<PackageVersion Include="coverlet.collector" Version="6.0.4">
9+
<PrivateAssets>all</PrivateAssets>
10+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
11+
</PackageVersion>
12+
<PackageVersion Include="coverlet.msbuild" Version="6.0.4">
13+
<PrivateAssets>all</PrivateAssets>
14+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
15+
</PackageVersion>
16+
<PackageVersion Include="Dapr.DurableTask.Client.Grpc" Version="1.15.5" />
17+
<PackageVersion Include="Dapr.DurableTask.Worker.Grpc" Version="1.15.5" />
18+
<PackageVersion Include="GitHubActionsTestLogger" Version="2.4.1">
19+
<PrivateAssets>all</PrivateAssets>
20+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
21+
</PackageVersion>
22+
<PackageVersion Include="Google.Api.CommonProtos" Version="2.16.0" />
23+
<PackageVersion Include="Google.Protobuf" Version="3.31.0" />
1324
<PackageVersion Include="Grpc.AspNetCore" Version="2.71.0" />
1425
<PackageVersion Include="Grpc.Core.Testing" Version="2.46.6" />
1526
<PackageVersion Include="Grpc.Net.Client" Version="2.71.0" />
1627
<PackageVersion Include="Grpc.Net.ClientFactory" Version="2.71.0" />
17-
<PackageVersion Include="Grpc.Tools" Version="2.71.0" />
18-
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.35" />
19-
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="6.0.35" />
20-
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" />
21-
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.8.0" />
22-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
28+
<PackageVersion Include="Grpc.Tools" Version="2.72.0" />
29+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="8.0.16" Condition="'$(TargetFramework)' == 'net8'" />
30+
<PackageVersion Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.5" Condition="'$(TargetFramework)' == 'net9'" />
31+
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="8.0.16" Condition="'$(TargetFramework)' == 'net8'" />
32+
<PackageVersion Include="Microsoft.AspNetCore.TestHost" Version="9.0.5" Condition="'$(TargetFramework)' == 'net9'" />
33+
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="4.14.0" />
34+
<PackageVersion Include="Microsoft.CodeAnalysis.Common" Version="4.14.0" />
35+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp" Version="4.14.0" />
2336
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing" Version="1.1.2" />
2437
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.SourceGenerators.Testing.XUnit" Version="1.1.2" />
25-
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.8.0" />
26-
<PackageVersion Include="Microsoft.DurableTask.Client.Grpc" Version="1.10.0" />
27-
<PackageVersion Include="Microsoft.DurableTask.Worker.Grpc" Version="1.10.0" />
28-
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="6.0.1" />
29-
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="6.0.0" />
30-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
31-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
32-
<PackageVersion Include="Microsoft.Extensions.Logging" Version="6.0.0" />
33-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="6.0.4" />
34-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="6.0.1" />
35-
<PackageVersion Include="Microsoft.Extensions.Http" Version="6.0.0" />
36-
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
37-
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="1.1.1" />
38-
<PackageVersion Include="MinVer" Version="2.3.0" />
38+
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.14.0" />
39+
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="9.0.5" />
40+
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="9.0.5" />
41+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="9.0.5" />
42+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="9.0.5" />
43+
<PackageVersion Include="Microsoft.Extensions.Logging" Version="9.0.5" />
44+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.5" />
45+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="9.0.5" />
46+
<PackageVersion Include="Microsoft.Extensions.Http" Version="9.0.5" />
47+
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.0" />
48+
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
49+
<PackageVersion Include="MinVer" Version="6.0.0">
50+
<PrivateAssets>all</PrivateAssets>
51+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
52+
</PackageVersion>
3953
<PackageVersion Include="Moq" Version="4.20.72" />
4054
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
4155
<PackageVersion Include="protobuf-net.Grpc.AspNetCore" Version="1.2.2" />
42-
<PackageVersion Include="Serilog.AspNetCore" Version="6.1.0" />
43-
<PackageVersion Include="Serilog.Sinks.Console" Version="4.1.0" />
44-
<PackageVersion Include="Serilog.Sinks.File" Version="5.0.0" />
45-
<PackageVersion Include="Shouldly" Version="4.2.1" />
56+
<PackageVersion Include="Serilog.AspNetCore" Version="9.0.0" />
57+
<PackageVersion Include="Serilog.Sinks.Console" Version="6.0.0" />
58+
<PackageVersion Include="Serilog.Sinks.File" Version="7.0.0" />
59+
<PackageVersion Include="Shouldly" Version="4.3.0" />
4660
<PackageVersion Include="System.Formats.Asn1" Version="6.0.1" />
47-
<PackageVersion Include="System.Text.Json" Version="6.0.10" />
48-
<PackageVersion Include="xunit" Version="2.9.2" />
49-
<PackageVersion Include="xunit.extensibility.core" Version="2.9.2" />
50-
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
61+
<PackageVersion Include="System.Text.Encodings.Web" Version="9.0.5" />
62+
<PackageVersion Include="System.Text.Json" Version="9.0.5" />
63+
<PackageVersion Include="xunit" Version="2.9.3" />
64+
<PackageVersion Include="xunit.extensibility.core" Version="2.9.3" />
65+
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.0">
66+
<PrivateAssets>all</PrivateAssets>
67+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
68+
</PackageVersion>
5169
</ItemGroup>
5270
</Project>

README.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,21 @@ This repo builds the following packages:
4444
- Dapr.AspNetCore
4545
- Dapr.Actors
4646
- Dapr.Actors.AspNetCore
47+
- Dapr.Actors.Generators
48+
- Dapr.AI
49+
- Dapr.Jobs
50+
- Dapr.Messaging
4751
- Dapr.Extensions.Configuration
4852
- Dapr.Workflow
4953

54+
It also builds the following packages which are not intended for public use and contain common types used in the packages above:
55+
- Dapr.Common
56+
- Dapr.Protos
57+
58+
5059
### Prerequisites
5160

52-
Each project is a normal C# project. At minimum, you need [.NET 6.0 SDK](https://dotnet.microsoft.com/download/dotnet/6.0) to build, test, and generate NuGet packages.
61+
Each project is a normal C# project. At minimum, you need [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) to build, test, and generate NuGet packages.
5362

5463
Also make sure to reference the [.NET SDK contribution guide](https://docs.dapr.io/contributing/sdk-contrib/dotnet-contributing/)
5564

@@ -59,7 +68,7 @@ On macOS or Linux we recommend [Visual Studio Code](https://code.visualstudio.co
5968

6069
**Windows:**
6170

62-
On Windows, we recommend installing [the latest Visual Studio 2019](https://www.visualstudio.com/vs/) which will set you up with all the .NET build tools and allow you to open the solution files. Community Edition is free and can be used to build everything here.
71+
On Windows, we recommend installing [the latest Visual Studio 2022](https://www.visualstudio.com/vs/) which will set you up with all the .NET build tools and allow you to open the solution files. Community Edition is free and can be used to build everything here.
6372

6473
Make sure you [update Visual Studio to the most recent release](https://docs.microsoft.com/visualstudio/install/update-visual-studio).
6574

daprdocs/content/en/dotnet-sdk-contributing/dotnet-contributing.md

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -101,17 +101,8 @@ squashing the PR locally and resubmitting to ensure that the sign-off statement
101101

102102
# Languages, Tools and Processes
103103
All source code in the Dapr .NET SDK is written in C# and targets the latest language version available to the earliest
104-
supported .NET SDK. As of v1.15, this means that because .NET 6 is still supported, the latest language version available
105-
is [C# version 10](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-10).
106-
107-
As of v1.15, the following versions of .NET are supported:
108-
109-
| Version | Notes |
110-
| --- |-----------------------------------------------------------------|
111-
| .NET 6 | Will be discontinued in v1.16 |
112-
| .NET 7 | Only supported in Dapr.Workflows, will be discontinued in v1.16 |
113-
| .NET 8 | Will continue to be supported in v1.16 |
114-
| .NET 9 | Will continue to be supported in v1.16 |
104+
supported .NET SDK. As of v1.16, this means that both .NET 8 and .NET 9 are supported. The latest language version available
105+
is [C# version 12](https://learn.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history#c-version-12)
115106

116107
Contributors are welcome to use whatever IDE they're most comfortable developing in, but please do not submit
117108
IDE-specific preference files along with your contributions as these will be rejected.

daprdocs/content/en/dotnet-sdk-docs/_index.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,7 @@ Dapr offers a variety of packages to help with the development of .NET applicati
1818

1919
- [Dapr CLI]({{< ref install-dapr-cli.md >}}) installed
2020
- Initialized [Dapr environment]({{< ref install-dapr-selfhost.md >}})
21-
- [.NET 6](https://dotnet.microsoft.com/download), [.NET 8](https://dotnet.microsoft.com/download) or [.NET 9](https://dotnet.microsoft.com/download) installed
22-
23-
{{% alert title="Note" color="primary" %}}
24-
25-
Note that while .NET 6 is generally supported as the minimum .NET requirement across the Dapr .NET SDK packages
26-
and .NET 7 is the minimally supported version of .NET by Dapr.Workflows in Dapr v1.15, only .NET 8 and .NET 9 will
27-
continue to be supported by Dapr in v1.16 and later.
28-
29-
{{% /alert %}}
21+
- [.NET 8](https://dotnet.microsoft.com/download) or [.NET 9](https://dotnet.microsoft.com/download) installed
3022

3123
## Installation
3224

daprdocs/content/en/dotnet-sdk-docs/dotnet-actors/dotnet-actors-howto.md

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,7 @@ This project contains the implementation of the actor client which calls MyActor
4545

4646
- [Dapr CLI]({{< ref install-dapr-cli.md >}}) installed.
4747
- Initialized [Dapr environment]({{< ref install-dapr-selfhost.md >}}).
48-
- [.NET 6](https://dotnet.microsoft.com/download), [.NET 8](https://dotnet.microsoft.com/download) or [.NET 9](https://dotnet.microsoft.com/download) installed
49-
50-
{{% alert title="Note" color="primary" %}}
51-
52-
Note that while .NET 6 is generally supported as the minimum .NET requirement across the Dapr .NET SDK packages
53-
and .NET 7 is the minimally supported version of .NET by Dapr.Workflows in Dapr v1.15, only .NET 8 and .NET 9 will
54-
continue to be supported by Dapr in v1.16 and later.
55-
56-
{{% /alert %}}
48+
- [.NET 8](https://dotnet.microsoft.com/download) or [.NET 9](https://dotnet.microsoft.com/download) installed
5749

5850
## Step 0: Prepare
5951

daprdocs/content/en/dotnet-sdk-docs/dotnet-ai/dotnet-ai-conversation-howto.md

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,10 @@ description: Learn how to create and use the Dapr Conversational AI client using
77
---
88

99
## Prerequisites
10-
- [.NET 6](https://dotnet.microsoft.com/download/dotnet/6.0), [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0), or [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) installed
10+
- [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0), or [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0) installed
1111
- [Dapr CLI](https://docs.dapr.io/getting-started/install-dapr-cli/)
1212
- [Initialized Dapr environment](https://docs.dapr.io/getting-started/install-dapr-selfhost)
1313

14-
{{% alert title="Note" color="primary" %}}
15-
16-
.NET 6 is supported as the minimum required for the Dapr .NET SDK packages in this release. Only .NET 8 and .NET 9
17-
will be supported in Dapr v1.16 and later releases.
18-
19-
{{% /alert %}}
20-
2114
## Installation
2215

2316
To get started with the Dapr AI .NET SDK client, install the [Dapr.AI package](https://www.nuget.org/packages/Dapr.AI) from NuGet:

daprdocs/content/en/dotnet-sdk-docs/dotnet-development/dotnet-development-dapr-aspire.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,11 @@ Amazon AWS, deployment is currently outside the scope of this guide. More inform
2424
documentation [here](https://learn.microsoft.com/en-us/dotnet/aspire/deployment/overview).
2525

2626
## Prerequisites
27-
- While the Dapr .NET SDK is compatible with [.NET 6](https://dotnet.microsoft.com/download/dotnet/6.0),
28-
[.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0) or [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0),
29-
.NET Aspire is only compatible with [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0) or
30-
[.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0).
27+
- Both the Dapr .NET SDK and .NET Aspire are compatible with [.NET 8](https://dotnet.microsoft.com/download/dotnet/8.0)
28+
or [.NET 9](https://dotnet.microsoft.com/download/dotnet/9.0)
3129
- An OCI compliant container runtime such as [Docker Desktop](https://www.docker.com/products/docker-desktop) or
3230
[Podman](https://podman.io/)
33-
- Install and initialize Dapr v1.13 or later
31+
- Install and initialize Dapr v1.16 or later
3432

3533
## Using .NET Aspire via CLI
3634

0 commit comments

Comments
 (0)