Skip to content

Commit 44252eb

Browse files
authored
Merge branch 'main' into wangbill/exportfinal
2 parents ffa3219 + e0ee326 commit 44252eb

File tree

145 files changed

+7712
-917
lines changed

Some content is hidden

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

145 files changed

+7712
-917
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Summary
2+
## What changed?
3+
-
4+
5+
## Why is this change needed?
6+
-
7+
8+
## Issues / work items
9+
- Resolves #
10+
- Related #
11+
12+
---
13+
14+
# Project checklist
15+
- [ ] Release notes are not required for the next release
16+
- [ ] Otherwise: Notes added to `release_notes.md`
17+
- [ ] Backport is not required
18+
- [ ] Otherwise: Backport tracked by issue/PR #issue_or_pr
19+
- [ ] All required tests have been added/updated (unit tests, E2E tests)
20+
- [ ] Breaking change?
21+
- [ ] If yes:
22+
- Impact:
23+
- Migration guidance:
24+
---
25+
26+
# AI-assisted code disclosure (required)
27+
## Was an AI tool used? (select one)
28+
- [ ] No
29+
- [ ] Yes, AI helped write parts of this PR (e.g., GitHub Copilot)
30+
- [ ] Yes, an AI agent generated most of this PR
31+
32+
If AI was used:
33+
- Tool(s):
34+
- AI-assisted areas/files:
35+
- What you changed after AI output:
36+
37+
AI verification (required if AI was used):
38+
- [ ] I understand the code and can explain it
39+
- [ ] I verified referenced APIs/types exist and are correct
40+
- [ ] I reviewed edge cases/failure paths (timeouts, retries, cancellation, exceptions)
41+
- [ ] I reviewed concurrency/async behavior
42+
- [ ] I checked for unintended breaking or behavior changes
43+
44+
---
45+
46+
# Testing
47+
## Automated tests
48+
- Result: Passed / Failed (link logs if failed)
49+
50+
## Manual validation (only if runtime/behavior changed)
51+
- Environment (OS, .NET version, components):
52+
- Steps + observed results:
53+
1.
54+
2.
55+
3.
56+
- Evidence (optional):
57+
58+
---
59+
60+
# Notes for reviewers
61+
- N/A

.github/copilot-instructions.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,12 @@ Unit tests should follow these guidelines:
6565
- Use the Moq library for mocking objects where possible.
6666
- Validate that each test actually tests the target behavior, e.g. we should not have tests that create a mock, call the mock and then verify that the mock was called, without the target code being involved. We also shouldn't have tests that test language features, e.g. something that the compiler would catch anyway.
6767
- Avoid adding excessive comments to tests. Instead favor clear easy to understand code.
68-
- Follow the patterns in the unit tests in the same project or classes to which new tests are being added.
68+
- Follow the patterns in the unit tests in the same project or classes to which new tests are being added.
69+
70+
## Code Review Guidelines
71+
72+
When reviewing code, follow these guidelines:
73+
74+
- Provide all review comments in a single review pass. Avoid scattering feedback across multiple partial reviews; consolidate findings into one coherent review round.
75+
- Do not generate false-positive or already-resolved comments when new commits are pushed. Only surface issues that still apply after the latest changes, and avoid re-posting comments that have been addressed or are no longer relevant.
76+
- Do not re-post a review comment if a user has directly responded to it with justification for why the code exists as written. Respect user explanations and avoid redundant feedback on justified code decisions.

.github/dependabot.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "nuget"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
day: "tuesday"
8+
ignore:
9+
- dependency-name: "*"
10+
update-types:
11+
- "version-update:semver-major"
12+
13+
- package-ecosystem: "dotnet-sdk"
14+
directory: "/"
15+
schedule:
16+
interval: "weekly"
17+
day: "tuesday"
18+
ignore:
19+
- dependency-name: "*"
20+
update-types:
21+
- "version-update:semver-major"
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Azure Functions Smoke Tests
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- 'feature/**'
8+
paths-ignore: [ '**.md' ]
9+
pull_request:
10+
paths-ignore: [ '**.md' ]
11+
workflow_dispatch:
12+
13+
jobs:
14+
smoke-tests:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- name: Checkout code
19+
uses: actions/checkout@v3
20+
21+
- name: Setup .NET
22+
uses: actions/setup-dotnet@v3
23+
with:
24+
dotnet-version: '8.0.x'
25+
26+
- name: Setup .NET from global.json
27+
uses: actions/setup-dotnet@v3
28+
with:
29+
global-json-file: global.json
30+
31+
- name: Restore dependencies
32+
run: dotnet restore test/AzureFunctionsSmokeTests/AzureFunctionsSmokeTests.csproj
33+
34+
- name: Run smoke tests
35+
run: |
36+
cd test/AzureFunctionsSmokeTests
37+
pwsh -File run-smoketests.ps1
38+
39+
- name: Upload smoke test logs on failure
40+
if: failure()
41+
uses: actions/upload-artifact@v4
42+
with:
43+
name: smoke-test-logs
44+
path: test/AzureFunctionsSmokeTests/logs/
45+
if-no-files-found: ignore

CHANGELOG.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,49 @@
1-
# Changelog
1+
# Changelog
2+
3+
## v1.18.2
4+
- Add copy constructors to TaskOptions and sub-classes by halspang ([#587](https://github.com/microsoft/durabletask-dotnet/pull/587))
5+
- Change FunctionNotFound analyzer severity to Info for cross-assembly scenarios by Copilot ([#584](https://github.com/microsoft/durabletask-dotnet/pull/584))
6+
- Add Roslyn analyzer for non-contextual logger usage in orchestrations (DURABLE0010) by Copilot ([#553](https://github.com/microsoft/durabletask-dotnet/pull/553))
7+
- Add specific logging categories for Worker.Grpc and orchestration logs with backward-compatible opt-in by Copilot ([#583](https://github.com/microsoft/durabletask-dotnet/pull/583))
8+
- Fix flaky integration test race condition in dedup status check by Copilot ([#579](https://github.com/microsoft/durabletask-dotnet/pull/579))
9+
- Add analyzer to suggest input parameter binding over GetInput() by Copilot ([#550](https://github.com/microsoft/durabletask-dotnet/pull/550))
10+
- Add strongly-typed external events with DurableEventAttribute by Copilot ([#549](https://github.com/microsoft/durabletask-dotnet/pull/549))
11+
- Fix orchestration analyzer to detect non-function orchestrations correctly by Copilot ([#572](https://github.com/microsoft/durabletask-dotnet/pull/572))
12+
- Fix race condition in WaitForInstanceAsync causing intermittent test failures by Copilot ([#574](https://github.com/microsoft/durabletask-dotnet/pull/574))
13+
- Add HelpLinkUri to Roslyn analyzer diagnostics by Copilot ([#548](https://github.com/microsoft/durabletask-dotnet/pull/548))
14+
- Add DateTimeOffset.Now and DateTimeOffset.UtcNow detection to Roslyn analyzer by Copilot ([#547](https://github.com/microsoft/durabletask-dotnet/pull/547))
15+
- Bump Google.Protobuf from 3.33.1 to 3.33.2 by dependabot[bot] ([#569](https://github.com/microsoft/durabletask-dotnet/pull/569))
16+
- Add integration test coverage for Suspend/Resume operations by Copilot ([#546](https://github.com/microsoft/durabletask-dotnet/pull/546))
17+
- Bump coverlet.collector from 6.0.2 to 6.0.4 by dependabot[bot] ([#527](https://github.com/microsoft/durabletask-dotnet/pull/527))
18+
- Bump FluentAssertions from 6.12.1 to 6.12.2 by dependabot[bot] ([#528](https://github.com/microsoft/durabletask-dotnet/pull/528))
19+
- Add Azure Functions smoke tests with Docker CI automation by Copilot ([#545](https://github.com/microsoft/durabletask-dotnet/pull/545))
20+
- Bump dotnet-sdk from 10.0.100 to 10.0.101 by dependabot[bot] ([#568](https://github.com/microsoft/durabletask-dotnet/pull/568))
21+
- Add scheduled auto-closure for stale "Needs Author Feedback" issues by Copilot ([#566](https://github.com/microsoft/durabletask-dotnet/pull/566))
22+
23+
## v1.18.1
24+
- Support dedup status when starting orchestration by wangbill ([#542](https://github.com/microsoft/durabletask-dotnet/pull/542))
25+
- Add 404 exception handling in blobpayloadstore.downloadasync by Copilot ([#534](https://github.com/microsoft/durabletask-dotnet/pull/534))
26+
- Bump analyzers version to 0.2.0 by Copilot ([#552](https://github.com/microsoft/durabletask-dotnet/pull/552))
27+
- Add integration tests for exception type handling by Copilot ([#544](https://github.com/microsoft/durabletask-dotnet/pull/544))
28+
- Add roslyn analyzer to detect calls to non-existent functions (name mismatch) by Copilot ([#530](https://github.com/microsoft/durabletask-dotnet/pull/530))
29+
- Remove preview suffix by Copilot ([#541](https://github.com/microsoft/durabletask-dotnet/pull/541))
30+
- Add xml documentation with see cref links to generated code for better ide navigation by Copilot ([#535](https://github.com/microsoft/durabletask-dotnet/pull/535))
31+
- Add entity source generation support for durable functions by Copilot ([#533](https://github.com/microsoft/durabletask-dotnet/pull/533))
32+
33+
## v1.18.0
34+
- Add taskentity support to durabletasksourcegenerator by Copilot ([#517](https://github.com/microsoft/durabletask-dotnet/pull/517))
35+
- Bump azure.identity by dependabot[bot] ([#525](https://github.com/microsoft/durabletask-dotnet/pull/525))
36+
- Bump google.protobuf by dependabot[bot] ([#529](https://github.com/microsoft/durabletask-dotnet/pull/529))
37+
- Configure dependabot for dotnet-sdk updates by Tomer Rosenthal ([#524](https://github.com/microsoft/durabletask-dotnet/pull/524))
38+
- Add code review guidelines to copilot-instructions.md by Copilot ([#522](https://github.com/microsoft/durabletask-dotnet/pull/522))
39+
- Remove webapi sample by sophiatev ([#520](https://github.com/microsoft/durabletask-dotnet/pull/520))
40+
- Fix functioncontext check and polymorphic type conversions in activity analyzer by Naiyuan Tian ([#506](https://github.com/microsoft/durabletask-dotnet/pull/506))
41+
- Align waitforexternalevent waiter picking order to lifo by wangbill ([#509](https://github.com/microsoft/durabletask-dotnet/pull/509))
42+
- Update project to support .net 6.0 alongside .net 8.0 and .net 10 by Tomer Rosenthal ([#512](https://github.com/microsoft/durabletask-dotnet/pull/512))
43+
- Update project to target .net 8.0 and .net 10 and upgrade dependencies by Tomer Rosenthal ([#510](https://github.com/microsoft/durabletask-dotnet/pull/510))
44+
- Support worker features announcement by wangbill ([#502](https://github.com/microsoft/durabletask-dotnet/pull/502))
45+
- Introduce custom copilot review instructions by halspang ([#503](https://github.com/microsoft/durabletask-dotnet/pull/503))
46+
- Add API to get orchestration history ([#516](https://github.com/microsoft/durabletask-dotnet/pull/516))
247

348
## v1.17.1
449
- Fix Worker Registry and Add Documentation Notes by nytian in [#462](https://github.com/microsoft/durabletask-dotnet/pull/495)

Directory.Build.props

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77
<ImplicitUsings>enable</ImplicitUsings>
88
</PropertyGroup>
99

10+
<PropertyGroup Condition="'$(TargetFramework)' == 'net6.0'">
11+
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
12+
<CheckEolTargetFramework>false</CheckEolTargetFramework>
13+
</PropertyGroup>
14+
1015
<!-- Assembly name and namespace -->
1116
<PropertyGroup Condition="!$(MSBuildProjectName.StartsWith('Microsoft.DurableTask'))">
1217
<TopLevelNamespace Condition="'$(TopLevelNamespace)' == ''">Microsoft.DurableTask</TopLevelNamespace>

Directory.Packages.props

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,30 @@
99

1010
<!-- Microsoft.Extensions.* Packages -->
1111
<ItemGroup>
12-
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
13-
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
14-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
15-
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
16-
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.1" />
17-
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="8.0.1" />
18-
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
19-
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
20-
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="8.0.0" />
12+
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="10.0.0" />
13+
<PackageVersion Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.0" />
14+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="10.0.0" />
15+
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0" />
16+
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.0" />
17+
<PackageVersion Include="Microsoft.Extensions.Hosting.Abstractions" Version="10.0.0" />
18+
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.0" />
19+
<PackageVersion Include="Microsoft.Extensions.Options" Version="10.0.0" />
20+
<PackageVersion Include="Microsoft.Extensions.Options.DataAnnotations" Version="10.0.0" />
2121
</ItemGroup>
2222

2323
<!-- Azure.* Packages -->
2424
<ItemGroup>
25-
<PackageVersion Include="Azure.Identity" Version="1.17.0" />
25+
<PackageVersion Include="Azure.Identity" Version="1.17.1" />
2626
<PackageVersion Include="Azure.Storage.Blobs" Version="12.26.0" />
27-
<PackageVersion Include="Microsoft.Azure.Functions.Worker" Version="2.2.0" />
27+
<PackageVersion Include="Microsoft.Azure.Functions.Worker" Version="2.51.0" />
28+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.3.0" />
29+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Sdk" Version="2.0.7" />
2830
</ItemGroup>
2931

3032
<!-- DurableTask Packages -->
3133
<ItemGroup>
3234
<PackageVersion Include="Microsoft.Azure.DurableTask.Core" Version="3.6.0" />
33-
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.2.2" />
35+
<PackageVersion Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.12.1" />
3436
</ItemGroup>
3537

3638
<!-- Grpc / Protobuf Packages -->
@@ -40,7 +42,7 @@
4042
<PackageVersion Include="System.ComponentModel.Annotations" Version="5.0.0" />
4143
</ItemGroup>
4244
<ItemGroup>
43-
<PackageVersion Include="Google.Protobuf" Version="3.29.0" />
45+
<PackageVersion Include="Google.Protobuf" Version="3.33.2" />
4446
<PackageVersion Include="Grpc.Core" Version="2.46.6" />
4547
<PackageVersion Include="Grpc.Net.Client" Version="2.67.0" />
4648
<PackageVersion Include="Grpc.Tools" Version="2.76.0" />
@@ -63,12 +65,12 @@
6365
<!-- Testing Frameworks & Analysis Packages -->
6466
<ItemGroup>
6567
<PackageVersion Include="BenchmarkDotNet" Version="0.14.0" />
66-
<PackageVersion Include="FluentAssertions" Version="6.12.1" />
68+
<PackageVersion Include="FluentAssertions" Version="6.12.2" />
6769
<PackageVersion Include="FluentAssertions.Analyzers" Version="0.34.1"/>
6870
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
6971
<PackageVersion Include="Moq" Version="4.20.72" />
7072
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
71-
<PackageVersion Include="coverlet.collector" Version="6.0.2" />
73+
<PackageVersion Include="coverlet.collector" Version="6.0.4" />
7274
<PackageVersion Include="xunit" Version="2.9.2" />
7375
<PackageVersion Include="xunit.abstractions" Version="2.0.3" />
7476
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2"/>
@@ -80,10 +82,10 @@
8082
<PackageVersion Include="DotNext" Version="4.13.1" Condition="'$(TargetFramework)' != 'net8.0' AND '$(TargetFramework)' != 'net10.0'" />
8183
<PackageVersion Include="DotNext" Version="5.19.0" Condition="'$(TargetFramework)' == 'net8.0' OR '$(TargetFramework)' == 'net10.0'" />
8284
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
83-
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="8.0.0" />
85+
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.0" />
8486
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
85-
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
87+
<PackageVersion Include="System.Text.Json" Version="10.0.0" />
8688
<PackageVersion Include="System.Collections.Immutable" Version="8.0.0" />
8789
</ItemGroup>
8890

89-
</Project>
91+
</Project>

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ To get started, add the [Microsoft.Azure.Functions.Worker.Extensions.DurableTask
3535
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.DurableTask" Version="1.2.2" />
3636
<PackageReference Include="Microsoft.Azure.Functions.Worker.Extensions.Http" Version="3.0.13" />
3737
<PackageReference Include="Microsoft.Azure.Functions.Worker.Sdk" Version="1.7.0" OutputItemType="Analyzer" />
38-
<PackageReference Include="Microsoft.DurableTask.Generators" Version="1.0.0-preview.1" OutputItemType="Analyzer" />
38+
<PackageReference Include="Microsoft.DurableTask.Generators" Version="1.0.0" OutputItemType="Analyzer" />
3939
</ItemGroup>
4040
```
4141

eng/targets/Release.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</PropertyGroup>
1818

1919
<PropertyGroup>
20-
<VersionPrefix>1.17.1</VersionPrefix>
20+
<VersionPrefix>1.18.2</VersionPrefix>
2121
<VersionSuffix></VersionSuffix>
2222
</PropertyGroup>
2323

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
3-
"version": "10.0.100",
3+
"version": "10.0.101",
44
"rollForward": "latestFeature"
55
},
66
"msbuild-sdks": {

0 commit comments

Comments
 (0)