Skip to content

Commit 3a4a883

Browse files
committed
Prep for 1.4.0
1 parent 7c82f24 commit 3a4a883

File tree

7 files changed

+179
-17
lines changed

7 files changed

+179
-17
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# azuremanaged-v1.4.0
2+
3+
## What's Changed
4+
5+
- Update durabletask dependency to v1.4.0
6+
- Includes restart support, batch actions, work item filtering, timer improvements,
7+
distributed tracing improvements, updated protobuf definitions, and entity bug fixes
8+
- Add AsyncDurableTaskSchedulerClient for async/await usage with grpc.aio by @andystaples in #115
9+
- Add payload store support for large payload Azure Blob externalization by @andystaples in #124
10+
- Improve timer handling in worker to align with durabletask updates by @andystaples in #122
11+
12+
## External Links
13+
14+
PyPi: [https://pypi.org/project/durabletask.azuremanaged/1.4.0/](https://pypi.org/project/durabletask.azuremanaged/1.4.0/)
15+
16+
Full Changelog: [azuremanaged-v1.3.0...azuremanaged-v1.4.0](https://github.com/microsoft/durabletask-python/compare/azuremanaged-v1.3.0...azuremanaged-v1.4.0)
17+
18+
### Contributors
19+
20+
- @andystaples

.github/releases/v1.4.0.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# v1.4.0
2+
3+
## What's Changed
4+
5+
- Address various entity-related bugs by @andystaples in #109
6+
- Add restart instance support by @andystaples in #110
7+
- Add batch actions (purge, query orchestrations/entities) by @andystaples in #111
8+
- Add in-process backend for E2E testing by @andystaples in #113
9+
- Add async client support by @andystaples in #115
10+
- Fix compute_next_delay returning None when max_retry_interval is not set by @andystaples in #116
11+
- Add distributed tracing using OpenTelemetry by @andystaples in #119
12+
- Add large payload Azure Blob externalization support by @andystaples in #124
13+
- Improve TimerTask behavior by @andystaples in #122
14+
- Implement work item filtering by @andystaples in #128
15+
- Update protos to latest by @andystaples in #126
16+
- Fix flaky tests by @andystaples in #125
17+
18+
## External Links
19+
20+
PyPi: [https://pypi.org/project/durabletask/1.4.0/](https://pypi.org/project/durabletask/1.4.0/)
21+
22+
Full Changelog: [v1.3.0...v1.4.0](https://github.com/microsoft/durabletask-python/compare/v1.3.0...v1.4.0)
23+
24+
### Contributors
25+
26+
- @andystaples
27+
- @gggwang1993
28+
- @cgillum
29+
- @Copilot
30+
- @nytian
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
name: release-prep
3+
description: >-
4+
Prepare a release for durabletask and durabletask.azuremanaged. Use when the
5+
user asks for release prep, version bumping, changelog updates, or release
6+
body drafting. Trigger phrases include: release prep, prepare vX.Y.Z,
7+
changelog for release, and draft GitHub release notes.
8+
---
9+
10+
# Release Prep
11+
12+
This skill prepares a coordinated release for both packages in this repository:
13+
14+
- `durabletask`
15+
- `durabletask.azuremanaged`
16+
17+
The skill accepts a target version (for example `1.4.0`) and performs the
18+
required changes consistently.
19+
20+
## Inputs
21+
22+
- `version`: Target semantic version (for example `1.4.0`)
23+
- Optional: `baseTag` overrides for comparison if tags are non-standard
24+
25+
If `version` is not provided, ask the user before continuing.
26+
27+
## Steps
28+
29+
### 1. Determine source range and collect commits
30+
31+
- Root package range: `v<previousVersion>..HEAD`
32+
- Azure managed package range: `azuremanaged-v<previousVersion>..HEAD`
33+
- Use commit subjects and touched files to classify each change as:
34+
- `durabletask` only
35+
- `durabletask.azuremanaged` only
36+
- shared/infra/docs changes
37+
38+
### 2. Update package versions
39+
40+
Update both project versions:
41+
42+
- `pyproject.toml` -> `version = "<version>"`
43+
- `durabletask-azuremanaged/pyproject.toml` -> `version = "<version>"`
44+
45+
Update azuremanaged dependency floors:
46+
47+
- `durabletask>=<version>`
48+
- `durabletask[azure-blob-payloads]>=<version>`
49+
50+
### 3. Update changelogs
51+
52+
- Add a new `## v<version>` section directly under `## Unreleased` in:
53+
- `CHANGELOG.md`
54+
- `durabletask-azuremanaged/CHANGELOG.md`
55+
- Ensure all commits since the previous release tags are represented.
56+
- Keep entries concise and grouped by type (`ADDED`, `CHANGED`, `FIXED`, `REMOVED`) where
57+
applicable.
58+
59+
### 4. Draft GitHub release bodies
60+
61+
Create draft release body markdown files in `.github/releases/`:
62+
63+
- `.github/releases/v<version>.md`
64+
- `.github/releases/azuremanaged-v<version>.md`
65+
66+
Match existing release structure:
67+
68+
- Title (`# v<version>` or `# azuremanaged-v<version>`)
69+
- `## What's Changed`
70+
- `## External Links`
71+
- `### Contributors`
72+
73+
Include:
74+
75+
- PyPI link for the exact release version
76+
- Full changelog compare link
77+
- Contributor handles from the commit range
78+
79+
### 5. Validate
80+
81+
- Run diagnostics on changed markdown and TOML files.
82+
- Fix formatting or heading issues introduced by release prep changes.
83+
- Verify the final diff only contains release-prep updates.
84+
85+
## Output
86+
87+
Return a short summary with:
88+
89+
- Updated files
90+
- Commit coverage confirmation
91+
- Any manual follow-ups (for example, tag creation or publishing)

CHANGELOG.md

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10+
## v1.4.0
11+
1012
ADDED
1113

1214
- Added large payload externalization support for automatically
@@ -22,16 +24,28 @@ ADDED
2224
- Added `AsyncTaskHubGrpcClient` for asyncio-based applications using `grpc.aio`
2325
- Added `DefaultAsyncClientInterceptorImpl` for async gRPC metadata interceptors
2426
- Added `get_async_grpc_channel` helper for creating async gRPC channels
27+
- Added orchestration restart client support
28+
- Added batch client actions for purge and query operations across orchestrations and entities
29+
- Added worker work item filtering support
30+
- Added new `work_item_filtering` sample
2531
- Improved distributed tracing support with full span coverage for orchestrations, activities, sub-orchestrations, timers, and events
2632

2733
CHANGED
2834

2935
- Refactored `TaskHubGrpcClient` to share request-building and validation logic
3036
with `AsyncTaskHubGrpcClient` via module-level helper functions
37+
- Updated generated protobuf definitions to the latest durabletask-protobuf commit
38+
- Improved timer scheduling behavior for orchestrator timers
39+
- Updated GitHub workflow permissions for release and test pipelines
40+
- Added GitHub Copilot agent workflows for PR verification, daily code review, and issue triage
41+
- Updated examples and docs across orchestration, entity, fan-out/fan-in, and versioning samples
3142

3243
FIXED:
3344

3445
- Fix unbound variable in entity V1 processing
46+
- Fixed `compute_next_delay` returning `None` when `max_retry_interval` is not set
47+
- Fixed multiple entity-related bugs across ID parsing and failure handling
48+
- Fixed flaky in-memory backend tests
3549

3650
## v1.3.0
3751

@@ -103,72 +117,72 @@ FIXED:
103117

104118
## v0.3.0
105119

106-
### New
120+
### New (v0.3.0)
107121

108122
- Added `ConcurrencyOptions` class for fine-grained concurrency control with separate limits for activities and orchestrations. The thread pool worker count can also be configured.
109123

110-
### Fixed
124+
### Fixed (v0.3.0)
111125

112126
- Fixed an issue where a worker could not recover after its connection was interrupted or severed
113127

114128
## v0.2.1
115129

116-
### New
130+
### New (v0.2.1)
117131

118132
- Added `set_custom_status` orchestrator API ([#31](https://github.com/microsoft/durabletask-python/pull/31)) - contributed by [@famarting](https://github.com/famarting)
119133
- Added `purge_orchestration` client API ([#34](https://github.com/microsoft/durabletask-python/pull/34)) - contributed by [@famarting](https://github.com/famarting)
120134
- Added new `durabletask-azuremanaged` package for use with the [Durable Task Scheduler](https://learn.microsoft.com/azure/azure-functions/durable/durable-task-scheduler/durable-task-scheduler) - by [@RyanLettieri](https://github.com/RyanLettieri)
121135

122-
### Changes
136+
### Changes (v0.2.1)
123137

124138
- Protos are compiled with gRPC 1.62.3 / protobuf 3.25.X instead of the latest release. This ensures compatibility with a wider range of grpcio versions for better compatibility with other packages / libraries ([#36](https://github.com/microsoft/durabletask-python/pull/36)) - by [@berndverst](https://github.com/berndverst)
125139
- Http and grpc protocols and their secure variants are stripped from the host name parameter if provided. Secure mode is enabled if the protocol provided is https or grpcs ([#38](https://github.com/microsoft/durabletask-python/pull/38) - by [@berndverst)(https://github.com/berndverst)
126140
- Improve ProtoGen by downloading proto file directly instead of using submodule ([#39](https://github.com/microsoft/durabletask-python/pull/39) - by [@berndverst](https://github.com/berndverst)
127141

128-
### Updates
142+
### Updates (v0.2.1)
129143

130144
- Updated `durabletask-protobuf` submodule reference to latest
131145

132146
## v0.1.1a1
133147

134-
### New
148+
### New (v0.1.1a1)
135149

136150
- Add recursive flag in terminate_orchestration to support cascade terminate ([#27](https://github.com/microsoft/durabletask-python/pull/27)) - contributed by [@shivamkm07](https://github.com/shivamkm07)
137151

138152
## v0.1.0
139153

140-
### New
154+
### New (v0.1.0)
141155

142156
- Retry policies for activities and sub-orchestrations ([#11](https://github.com/microsoft/durabletask-python/pull/11)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
143157

144-
### Fixed
158+
### Fixed (v0.1.0)
145159

146160
- Fix try/except in orchestrator functions not being handled correctly ([#21](https://github.com/microsoft/durabletask-python/pull/21)) - by [@cgillum](https://github.com/cgillum)
147161
- Updated `durabletask-protobuf` submodule reference to latest distributed tracing commit - by [@cgillum](https://github.com/cgillum)
148162

149163
## v0.1.0a5
150164

151-
### New
165+
### New (v0.1.0a5)
152166

153167
- Adds support for secure channels ([#18](https://github.com/microsoft/durabletask-python/pull/18)) - contributed by [@elena-kolevska](https://github.com/elena-kolevska)
154168

155-
### Fixed
169+
### Fixed (v0.1.0a5)
156170

157171
- Fix zero argument values sent to activities as None ([#13](https://github.com/microsoft/durabletask-python/pull/13)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
158172

159173
## v0.1.0a3
160174

161-
### New
175+
### New (v0.1.0a3)
162176

163177
- Add gRPC metadata option ([#16](https://github.com/microsoft/durabletask-python/pull/16)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)
164178

165-
### Changes
179+
### Changes (v0.1.0a3)
166180

167181
- Removed Python 3.7 support due to EOL ([#14](https://github.com/microsoft/durabletask-python/pull/14)) - contributed by [@berndverst](https://github.com/berndverst)
168182

169183
## v0.1.0a2
170184

171-
### New
185+
### New (v0.1.0a2)
172186

173187
- Continue-as-new ([#9](https://github.com/microsoft/durabletask-python/pull/9))
174188
- Support for Python 3.7+ ([#10](https://github.com/microsoft/durabletask-python/pull/10)) - contributed by [@DeepanshuA](https://github.com/DeepanshuA)

durabletask-azuremanaged/CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## Unreleased
99

10+
## v1.4.0
11+
12+
- Updates base dependency to durabletask v1.4.0
13+
- Includes restart support, batch actions, work item filtering, timer improvements,
14+
distributed tracing improvements, updated protobuf definitions, and entity bug fixes
1015
- Added `AsyncDurableTaskSchedulerClient` for async/await usage with `grpc.aio`
1116
- Added `DTSAsyncDefaultClientInterceptorImpl` async gRPC interceptor for DTS authentication
1217
- Added `payload_store` parameter to `DurableTaskSchedulerWorker`,
@@ -15,6 +20,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1520
- Added `azure-blob-payloads` optional dependency that installs
1621
`durabletask[azure-blob-payloads]` — install with
1722
`pip install durabletask.azuremanaged[azure-blob-payloads]`
23+
- Improved worker timer handling to align with durabletask timer updates
24+
- Updated workflow permissions for azuremanaged CI/release pipelines
1825

1926
## v1.3.0
2027

durabletask-azuremanaged/pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
99

1010
[project]
1111
name = "durabletask.azuremanaged"
12-
version = "1.3.0"
12+
version = "1.4.0"
1313
description = "Durable Task Python SDK provider implementation for the Azure Durable Task Scheduler"
1414
keywords = [
1515
"durable",
@@ -26,13 +26,13 @@ requires-python = ">=3.10"
2626
license = {file = "LICENSE"}
2727
readme = "README.md"
2828
dependencies = [
29-
"durabletask>=1.3.0",
29+
"durabletask>=1.4.0",
3030
"azure-identity>=1.19.0"
3131
]
3232

3333
[project.optional-dependencies]
3434
azure-blob-payloads = [
35-
"durabletask[azure-blob-payloads]>=1.3.0"
35+
"durabletask[azure-blob-payloads]>=1.4.0"
3636
]
3737

3838
[project.urls]

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
99

1010
[project]
1111
name = "durabletask"
12-
version = "1.3.0"
12+
version = "1.4.0"
1313
description = "A Durable Task Client SDK for Python"
1414
keywords = [
1515
"durable",

0 commit comments

Comments
 (0)