Skip to content

Commit ae30734

Browse files
[cross-repo from workflow#392] server + workflow + cli + sdk-python + waterline: publish a public platform conformance suite (#8)
1 parent e3e0a36 commit ae30734

2 files changed

Lines changed: 69 additions & 1 deletion

File tree

CONFORMANCE.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Platform Conformance — Python SDK Claim
2+
3+
The `durable_workflow` Python SDK participates in the platform
4+
conformance suite specified in
5+
[`workflow/docs/architecture/platform-conformance-suite.md`](https://github.com/durable-workflow/workflow/blob/v2/docs/architecture/platform-conformance-suite.md)
6+
and mirrored by `Workflow\V2\Support\PlatformConformanceSuite`. This
7+
document is the per-repo claim: it lists the conformance targets the
8+
SDK claims, the fixtures it serves, and the release gate that blocks
9+
publication when conformance is broken.
10+
11+
## Claimed targets
12+
13+
The Python SDK claims two targets from the suite's matrix:
14+
15+
- `official_sdk` — first-party SDK distributed by the project. Implements
16+
`worker_protocol` (worker side), `history_event_wire_formats`
17+
(replay), and `official_sdks` (own row in the surface stability
18+
contract).
19+
- `worker_protocol_implementation` — worker plane and frozen history
20+
event replay.
21+
22+
## Fixture sources served by this repo
23+
24+
| Category | Source path | Status |
25+
| --- | --- | --- |
26+
| `control_plane_request_response` | `tests/fixtures/control-plane/` | stable, parity-shared with `cli` |
27+
| `worker_task_lifecycle` | `tests/fixtures/external-task-input/`, `tests/fixtures/external-task-result/` | stable |
28+
| `history_replay_bundles` | `tests/fixtures/golden_history/` | stable, parity-shared with `workflow` golden bundles |
29+
30+
The fixtures in this repo are exercised today by:
31+
32+
- `tests/test_control_plane_parity_fixtures.py`
33+
- `tests/test_history_event_contract.py`
34+
- `scripts/check-cli-parity.py`
35+
- the `cli-parity` job in `.github/workflows/ci.yml`
36+
37+
These are the per-repo gates that already enforce the contract; the
38+
public conformance harness, when it lands, will read the same fixtures
39+
from this repo's declared paths.
40+
41+
## Release gate
42+
43+
A release of `durable_workflow` (PyPI) must produce a passing harness
44+
result document before tag, with the conformance level at `full` or
45+
`provisional` (provisional categories enumerated in release notes).
46+
47+
| Field | Value |
48+
| --- | --- |
49+
| Required claimed targets | `official_sdk`, `worker_protocol_implementation` |
50+
| Required suite version | `PlatformConformanceSuite::VERSION` (currently `1`) |
51+
| CI job | `platform-conformance` (lands when the harness reference implementation publishes; until then `cli-parity` and `test_history_event_contract.py` cover the same ground) |
52+
| Block on `nonconforming` | yes |
53+
| Artifact attached to release | harness result document, schema `durable-workflow.v2.platform-conformance.result` |
54+
55+
A `nonconforming` result blocks the release. A failure in a provisional
56+
category emits a warning and does not block.
57+
58+
## Cross-references
59+
60+
- Authority spec: `workflow/docs/architecture/platform-conformance-suite.md`
61+
- Authority manifest class: `Workflow\V2\Support\PlatformConformanceSuite`
62+
(PHP, mirrored in `static/platform-conformance-contract.json` on the
63+
docs site for language-neutral access)
64+
- Public docs page: <https://durable-workflow.github.io/docs/2.0/compatibility>
65+
- Polyglot parity doc:
66+
<https://durable-workflow.github.io/docs/polyglot/cli-python-parity>
67+
- Existing per-repo gates: `tests/test_control_plane_parity_fixtures.py`,
68+
`tests/test_history_event_contract.py`, `scripts/check-cli-parity.py`.

pyproject.toml

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

55
[project]
66
name = "durable-workflow"
7-
version = "0.4.6"
7+
version = "0.4.7"
88
description = "Python SDK for the Durable Workflow server (language-neutral HTTP protocol)"
99
readme = "README.md"
1010
requires-python = ">=3.10"

0 commit comments

Comments
 (0)