From 44ec4df8b015aacaea16d5e6a86da06a8dcc7466 Mon Sep 17 00:00:00 2001 From: Durable Workflow Date: Wed, 7 Oct 2026 23:30:33 +0000 Subject: [PATCH] Link live SDK updates and clarify Python surface fixture scope --- conformance/README.md | 2 +- conformance/sdk-coverage.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/conformance/README.md b/conformance/README.md index cfaa969..57dc7b2 100644 --- a/conformance/README.md +++ b/conformance/README.md @@ -37,7 +37,7 @@ each public experiment. | Timers | `durable-workflow/server`: `scripts/conformance/timers-published-artifacts.sh` (embedded PHP); `durable-workflow/sample-app`: `scripts/sdk-timers.sh` (PHP/Python/Rust SDK workers) | | Worker versioning | `durable-workflow/server`: `scripts/conformance/worker-versioning-published-artifacts.sh` | | Workflow lifecycle | `durable-workflow/server`: `scripts/conformance/workflow-lifecycle-published-artifacts.sh` | -| Workflow updates | `durable-workflow/server`: `scripts/conformance/workflow-updates-published-artifacts.sh` | +| Workflow updates | `durable-workflow/server`: `scripts/conformance/workflow-updates-published-artifacts.sh`; `durable-workflow/sample-app`: [`scripts/sdk-updates.sh`](https://github.com/durable-workflow/sample-app/blob/main/polyglot/updates/README.md) (nine live SDK client/handler directions) | Each runner documents its required exact-version environment variables and result filename in `--help`. Use a unique result directory and isolated Docker diff --git a/conformance/sdk-coverage.md b/conformance/sdk-coverage.md index c009dc6..d2ecfe5 100644 --- a/conformance/sdk-coverage.md +++ b/conformance/sdk-coverage.md @@ -47,7 +47,7 @@ Their SDK installation lists do not widen that scope. | Sagas: Server `sagas-published-artifacts.sh`; Sample App `polyglot/sagas/` | Server's PHP/Python workflow-compensation directions; Sample App's five Rust-involving directions, typed compensation failure and restart before compensation. | Process loss during an external compensation side effect, duplicate delivery and external-effect recovery require explicit side-effect fixtures. Restart before compensation does not establish them. | | Schedules: Server `schedules-published-artifacts.sh`; Sample App `polyglot/schedules/` | PHP/Python creators and workers in Server; PHP and Python creators targeting Rust in Sample App. | The Rust examples check one automatic interval fire. Run cadence, restart, overlap/backfill and failure recovery for those directions. Calendar folds/gaps are temporal cases, not extra creator languages. | | Signals and queries: Server `signals-queries-published-artifacts.sh` | PHP/Python/Rust clients and workers, including cross-language calls, Rust query immutability and cold-restarted instance state. | Read the direction-specific scenarios and histories. The crate pin alone proves none of them. | -| Workflow updates: Server `workflow-updates-published-artifacts.sh` | Embedded probe, actual PHP and Python SDK worker/client shards, CLI and Waterline diagnostics. | Rust exposes update handlers and clients but has no execution shard in this runner. Add Rust handler/client directions, duplicate request, failure and replacement. Rust refuses synchronous pre-accept validators. Test that refusal explicitly and retain PHP/Python validation cells. | +| Workflow updates: Server `workflow-updates-published-artifacts.sh`; Sample App `scripts/sdk-updates.sh` | Server's embedded probe, PHP SDK client/worker process boundary, Python installed-package surface fixtures, CLI and Waterline diagnostics. The Python fixture uses simulated HTTP responses. Sample App separately executes all nine PHP/Python/Rust client-to-handler directions against a live published Server, plus Rust replacement, duplicate acceptance/completion, handler failure and validator refusal. | The nine result directions do not establish stateful update mutation, every command-ordering race or process loss during a handler's external effect. Rust refuses synchronous pre-accept validators. Retain the supported PHP/Python validation cells. | | Deterministic replay: Server `replay-published-artifacts.sh` | Separate installed PHP, Python and Rust replay shards, command/history matching and codec behavior. | Corpus replay does not prove worker process recovery or migration. Pair affected histories with their runtime restart and upgrade cases. | | Workflow lifecycle: Server `workflow-lifecycle-host-published-artifacts.sh` | Docker host wrapper builds the exact published Rust probe and starts the published Server; inner runner includes PHP/Python/Rust lifecycle surfaces. | Select real continuation, retry/timeout, cancellation and termination scenarios. Terminal cancellation and cooperative cleanup are separate contracts. | | Worker versioning: Server `worker-versioning-published-artifacts.sh` | Actual PHP/Python build cohorts and mixed pinning, plus Python no-compatible-worker, replay and adversarial shards. | Rust build pinning, promotion, incompatible refusal, replacement and cold replay need an execution shard. |