Skip to content

Commit f9d5212

Browse files
GitHub #169: SDK-Python Phase 4: Production readiness and 1.0 (#35)
1 parent b006e0a commit f9d5212

3 files changed

Lines changed: 53 additions & 16 deletions

File tree

CHANGELOG.md

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,57 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77
## [Unreleased]
88

99
### Notes
10-
- Current release line is 0.4.x (Alpha). The package covers workflow and
11-
activity authoring, schedules, signals, timers, child workflows,
12-
continue-as-new, side effects, version markers, worker-applied accepted
13-
updates, the in-process `WorkflowEnvironment` test harness, control-plane
14-
parity for workflow / task-queue / worker / namespace / schedule
15-
operations (including the per-schedule audit history stream), external
16-
payload storage with policy and retention helpers, and golden replay
17-
fixtures.
18-
- Targeting continued alignment with the Durable Workflow v2 protocol
19-
surface advertised by `/api/cluster/info`
20-
(`control_plane.version: "2"`, request-contract version `1`,
21-
`worker_protocol.version: "1.1"`). Remaining v2 follow-ups tracked for
22-
this line: server-routed Python query execution and pre-accept update
23-
validator routing.
10+
- Production-readiness validation is in progress for the first
11+
`1.0.0` release candidate. The 0.4.x line is feature-complete for
12+
the documented Durable Workflow v2 surface and is being exercised
13+
end-to-end by external-user walkthroughs against the published
14+
Python SDK guide and the `examples/order_processing` Docker Compose
15+
sample.
16+
- Remaining v2 follow-ups tracked for this line: server-routed Python
17+
query execution and pre-accept update validator routing. These are
18+
server-side capabilities; the SDK already records the receiver
19+
metadata required to participate when the server advertises support.
20+
21+
## [0.4.18] — 2026-05-08
22+
23+
### Added
24+
- `durable-workflow-replay-verify` and `durable-workflow-history-bundle-verify`
25+
console scripts plus matching Python APIs (`verify_replay`,
26+
`verify_golden_history`, `simulate_bundles`,
27+
`verify_history_bundle`, `aggregate_verdicts`,
28+
`promotion_decision_for*`). These produce verdicts and
29+
`promotion_decision` values that match the platform replay
30+
contract, replay cross-runtime golden histories against registered
31+
workflow classes, and integrity-check exported history bundles for
32+
promotion gates.
33+
- `InvocableActivityHandler`, `handle_invocable_http_request`,
34+
`handle_invocable_lambda_event`, and
35+
`lambda_invocable_activity_handler` for activity-grade external
36+
execution from HTTP servers and serverless runtimes. The carrier
37+
shares the external-task input/result envelope with first-party
38+
workers and rejects workflow-task inputs.
39+
- `CONFORMANCE.md` — per-repo platform conformance claim listing the
40+
fixtures this SDK serves, the targets it claims (`official_sdk`,
41+
`worker_protocol_implementation`), and the release gate that blocks
42+
PyPI publication when conformance regresses.
43+
- `docs/reference/invocable.md` covering the invocable adapter for
44+
the generated API reference site.
45+
46+
### Changed
47+
- Worker registration enforces the `worker_protocol.version: "1.1"`
48+
feature floor advertised by `/api/cluster/info` and fails closed
49+
with a clear error when the server's advertised feature set is
50+
missing capabilities the SDK relies on.
51+
- Workers and the serializer reject unsupported payload codecs at
52+
encode and decode time instead of silently passing the raw bytes
53+
through; misconfigured deployments surface a typed error instead
54+
of a downstream decode failure.
55+
- Built-package smoke (`scripts/smoke-built-package.py`) now verifies
56+
installed wheel and source distribution metadata, the PEP 561
57+
`py.typed` marker, every name in `__all__`, that reference modules
58+
resolve from `site-packages` rather than the source checkout, and
59+
that the README quickstart still replays. The PyPI/TestPyPI publish
60+
workflow runs the smoke before uploading artifacts.
2461

2562
## [0.4.3] — 2026-04-24
2663

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
A Python SDK for the [Durable Workflow server](https://github.com/durable-workflow/server). Speaks the server's language-neutral HTTP/JSON worker protocol — no PHP runtime required.
44

5-
Status: **Alpha**. Core features implemented: workflows, activities, schedules, signals, timers, child workflows, continue-as-new, side effects, version markers, and worker-applied accepted updates. Client calls for queries and updates exist; Python workflow-side query receiver metadata is available, while server-routed Python query execution and pre-accept update validator routing are still in progress. Full language-neutral protocol support for cross-PHP/Python orchestration is the release goal.
5+
Status: **Beta** — production-readiness validation in progress for the first `1.0.0` release candidate. Core features implemented: workflows, activities, schedules, signals, timers, child workflows, continue-as-new, side effects, version markers, worker-applied accepted updates, replay-verify and history-bundle-verify CLIs, the in-process `WorkflowEnvironment` test harness, and invocable activity carriers for HTTP and serverless runtimes. Client calls for queries and updates exist; Python workflow-side query receiver metadata is available, while server-routed Python query execution and pre-accept update validator routing are still in progress on the server side. Full language-neutral protocol support for cross-PHP/Python orchestration is the release goal.
66

77
## Install
88

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ keywords = [
2121
"saga",
2222
]
2323
classifiers = [
24-
"Development Status :: 3 - Alpha",
24+
"Development Status :: 4 - Beta",
2525
"Intended Audience :: Developers",
2626
"Programming Language :: Python :: 3",
2727
"Programming Language :: Python :: 3.10",

0 commit comments

Comments
 (0)