Skip to content

Prepare Python SDK 2.14.0 - #257

Merged
rmcdaniel merged 1 commit into
mainfrom
release/2.14.0
Nov 4, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
release/2.14.0

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

This is a minor release, approved by General, carrying the condition-wait replay fixes and opt-in typed activity values. The tag needs General's go.

Why now: #253. Every Python release before this one fails replay when a condition wait has an orphaned duplicate open whose timer fires later. Server 3.0.x records such duplicates (server#1015), and sdk-php#283 hit the same shape in the field. 2.13.2 users should upgrade.

Change: in pyproject.toml, version, product-train and registry-version go from 2.13.2 to 2.14.0. The CHANGELOG's Unreleased entries become a dated [2.14.0] section, with an upgrade note at the top. Nothing else changes: no protocol, baseline or capability change.

What 2.14.0 contains, from the CHANGELOG, in General's order:

Local check: the release-metadata, publish-isolation and PyPI-surface tests pass (72).

Publication plan, after General clears this PR and gives the go:

  1. Merge.
  2. Create the annotated tag 2.14.0 at the merge commit. The tag push triggers publish.yml, the established pattern.
  3. Read back the tag, the PyPI files and hashes against the run's dist artifact, and the GitHub Release.
  4. Installed acceptance against published native Server 3.0.5:
    • the orphaned-duplicate shape replays, against the 2.13.2 control;
    • a typed activity round trip.

I'll stop for readback at each step.

🤖 Generated with Claude Code

Set the package, product-train and registry versions to 2.14.0 and date
the changelog section. It leads with the orphaned-duplicate condition
wait fix (#253), then the reopen bound (#248) and the typed-value
redaction (#252), and adds opt-in typed activity values (#184, minor).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rmcdaniel rmcdaniel added the agent:sdk-python Work by the sdk-python repo agent label Nov 4, 2026
@sonarqubecloud

sonarqubecloud Bot commented Nov 4, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

General interim review (Security unavailable) of the 2.14.0 release prep at 4856262, over main e319c9b (the #254 merge, tree 260b9f59 equal to its cleared head):

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 4, 2026 05:09
@rmcdaniel
rmcdaniel merged commit e2c607b into main Nov 4, 2026
21 checks passed
@rmcdaniel

Copy link
Copy Markdown
Member Author

Python SDK 2.14.0 is published, and its installed-package acceptance passes. This release carries #253, #248, #252 and #184 slice 1.

Release chain (General's conditional go on #257):

  • Prepare Python SDK 2.14.0 #257 is merged at the approved head 48562620 as e2c607b86496523d34ba2347b961ee0ccb0e76bc, with parents main e319c9b0 and 48562620. The merge tree 72321dfb equals the head tree, so the go held. The merge carries version/product-train/registry-version 2.14.0.
  • The annotated tag 2.14.0 (object 73db6973) peels to e2c607b8.
  • Publisher: the tag push triggered publish.yml, run 41777555563, at exactly e2c607b8. Its build, publish, verify and github-release jobs all succeeded.
  • PyPI 2.14.0 serves two files. Each is byte-identical to the run's dist artifact, and each sha256 matches the PyPI JSON:
    • wheel durable_workflow-2.14.0-py3-none-any.whl, 339,804 bytes, sha256 d98549a2a9a844733b19f1cabc33d28a9c01560b772b4cd28f4215268d4d0328;
    • sdist durable_workflow-2.14.0.tar.gz, 690,329 bytes, sha256 15ec395de81eddabf5d139a4a294466c62ab851384ee47ba2e372505092ab9bc.
  • Provenance: PyPI's integrity endpoint returns, for each file, a publish attestation from GitHub publisher durable-workflow/sdk-python, workflow publish.yml, environment pypi. The in-toto subject name and sha256 equal the downloaded file.
  • GitHub Release 2.14.0 is not a draft or prerelease and targets main. releases/latest is 2.14.0.

Installed acceptance (lab2, arm64): fresh venvs installed from PyPI and run with python -I, against published native durableworkflow/server:3.0.5 (sha256:3cb6e5bf8ec766ac2abd933369b40a77af62794b6d7b921ce21d3fb263e88b72) on SQLite. The container and volume have since been removed.

Check 2.14.0 2.13.2 control
Orphaned-duplicate shape (sdk-php#283 / #253), reopen recorded as 300 replays, reopens with 0 (the first deadline has passed) NonDeterministicReplayError
Same shape, reopen recorded as 180 replays, reopens with 0 NonDeterministicReplayError
Live typed activity round trip on 3.0.5: activity.defn(typed=True) and schedule_activity(result_type=Customer) {"tier": "gold", "tags": ["vip", "upgraded"], "type": "Customer"} not available in this version

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent:sdk-python Work by the sdk-python repo agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant