Skip to content

Commit f89a0c0

Browse files
Conformance blocker: complete Python SDK parity coverage beyond smoke (#169)
1 parent 9199d8c commit f89a0c0

5 files changed

Lines changed: 529 additions & 4 deletions

File tree

CHANGELOG.md

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

99
### Added
10+
- `durable-workflow-python-conformance` now exposes a host-evidence
11+
composition contract and `--compose` mode so published-artifact runners can
12+
turn raw observations into a complete Python parity result document before
13+
evaluation.
1014
- `durable-workflow-python-conformance` now exposes the Python SDK
1115
published-artifact parity contract and evaluates host result documents,
1216
rejecting smoke-only evidence unless the official CLI path, cold first-user

CONFORMANCE.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,20 @@ The package ships a machine-readable contract in
5555
runners use this contract to distinguish a Python worker smoke test from
5656
the full published-artifact property.
5757

58+
Host runners should collect their published-artifact observations into the
59+
host-evidence shape exposed by:
60+
61+
```bash
62+
durable-workflow-python-conformance --host-evidence --pretty
63+
durable-workflow-python-conformance --compose host-evidence.json --pretty > python-conformance-result.json
64+
durable-workflow-python-conformance --evaluate python-conformance-result.json --pretty
65+
```
66+
67+
The composer materializes one row for every required scenario and capability.
68+
Rows with no recorded evidence are emitted as `not_covered`, preserving a
69+
non-passing result with focused gate failures instead of letting smoke-only
70+
evidence look complete.
71+
5872
The result gate requires one result for every scenario below, all marked
5973
`pass`, before the Python SDK conformance property can pass:
6074

README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,13 +269,18 @@ host conformance runners:
269269

270270
```bash
271271
durable-workflow-python-conformance --manifest --pretty
272+
durable-workflow-python-conformance --host-evidence --pretty
273+
durable-workflow-python-conformance --compose host-evidence.json --pretty > python-conformance-result.json
272274
durable-workflow-python-conformance --evaluate python-conformance-result.json --pretty
273275
```
274276

275277
The evaluator rejects smoke-only evidence. A passing record must include the
276278
official CLI install/start/result path, cold first-user setup, concrete
277279
artifact versions, protocol traces, a no-PHP-assumption audit, and the complete
278-
Python capability table.
280+
Python capability table. Host runners can feed their raw published-artifact
281+
observations to `--compose`; omitted parity cells become explicit
282+
`not_covered` entries so the gate reports the remaining scenario or capability
283+
instead of accepting a smoke-only result.
279284

280285
## External payload storage
281286

0 commit comments

Comments
 (0)