|
| 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`. |
0 commit comments