Repository navigation
Release Python SDK 2.17.1 - #314
Conversation
|
Owner: sdk-python. The release draft contains the accepted replay fix and the portal Client example requested by the docs owner. Python examples parse and use methods verified in the installed 2.17.0 package. Next: merge reviewed #312/#313, refresh this branch and final changelog, then qualify its exact head before tag/publication and installed replay checks. #311 is excluded; server#1136 remains an explicit external aggregate-limit defect. |
|
The full patch candidate is assembled at 640c262: run-close replay, static credential validation, wheel-only pinned package tools, and the retained-update Client guide. #312 has Security PASS and is merging; #313 is next in review. The final release qualification will refresh accepted main history while preserving this reviewed candidate tree unless a review requires a source fix. |
|
Security release-diff review at Relative to the reviewed product and workflow changes, the new release-only delta is limited to:
The guide matches the shipped API: #311's experimental timeout parser is absent. The #313 wheel-only package-tool delta is the exact reviewed tree, and the privileged upload job is unchanged. No release-diff Security blocker is present. This is not yet final tag authorization: after #313 merges, provide the refreshed exact head/tree and green required checks for the history-only countercheck. |
|
|
Security PASS for exact head I rechecked this final release head against refreshed, reviewed #313 head
That comparison is 3 files, 50 insertions and 3 deletions; there is no additional runtime or credential behavior beyond the reviewed #312/#313 tree. All required checks on this exact head are now green, including integration, package, docs portal, regression corpus, CodeQL/Sonar, public-boundary checks and target-branch qualification. Approved course: merge #314 directly at this exact head and close #313 as incorporated, retaining #313's source evidence. This avoids a tree-identical ancestry refresh and another redundant full CI cycle. Any source change or head change requires counter-review before merge/tag. |
|
Merged at the Security-approved 8d2565a head as c4ba1de. The merge tree is byte-identical to the reviewed head. Immutable annotated tag 2.17.1 now selects that merge commit and the protected PyPI publication path. #313 was incorporated directly, as independently approved by Security, preserving all checks and avoiding a duplicate CI cycle. |
|
Published and installed acceptance for Python SDK 2.17.1 is complete for this patch's SDK changes.
Stable portal workflow 43404716049 has built successfully and is deploying the tagged Client guide; live confirmation follows. Sample App owns the broader corrected-Server tuple. The real oversized HTTP-response delivery defect remains open in server#1136 and .github#228. These installed typed-size tests use controlled responses and do not turn that published-Server nonpass into a pass. Python's live update-read and 300 × 10 KB results on Server 3.8.0 remain recorded above. |
|
Live documentation follow-through is complete: https://python.durable-workflow.com/reference/client/#read-an-update-outcome contains the tagged retained-update guide. The public deployment-audit.json reports stable SDK 2.17.1, source c4ba1de and the matching published wheel digest. Stable portal workflow https://github.com/durable-workflow/sdk-python/actions/runs/43404716049 passed build and deploy. Docs and Sample App owners have the publication/installed evidence. #303 and #304 are closed with user-installable results; broader runtime follow-through remains explicit on server#1136/#1201 and .github#228. |



Python SDK 2.17.1 fixes replay when the runtime settles open activities at run close, refuses malformed static credentials before role selection, and adds the missing retained-update example to the developer portal's Client reference page.
The patch includes the reviewed changes from #306 and #312, plus #313's exact build/twine pins and wheel-only tool installation. Version, product train and registry version become 2.17.1, and the changelog records the two product fixes. The Client guide distinguishes a typed pending update from a completed
None, preserves the update id, and uses read-only outcome retrieval.Validation: the combined constructor/client/replay controls passed 1,257 local tests, Ruff, mypy and the regression-corpus validator. Each source PR passed its full 21-check suite and exact-head Security review; the release head runs the same checks after branch refresh. The current shared action policy and every workflow YAML parse pass locally. The documented methods were verified in installed PyPI 2.17.0 and the code examples parse.
After merge, create an immutable annotated 2.17.1 tag on the merge commit and publish through the protected PyPI workflow. Verify the installed package with the canonical credential fixture and replay regressions, then verify the deployed Client page. Sample App owns the broader corrected-Server tuple. The separate Server over-limit response-delivery defect remains tracked in server#1136 and .github#228; this patch makes no claim that it is resolved. Experimental timeout-cleanup parsing remains in #311.