Repository navigation
Conversation
The release verifier compared the packaged Server compatibility record only when pyproject.toml declared supported-server-release-baselines. Dropping the map while leaving src/durable_workflow/server_compatibility.json would ship a stale record that nothing checked, and artifacts from legacy source were not refused when they carried one. - Bind the record's presence at the exact source commit to the map: a record without the map, or the map without a record, is refused. - Refuse a wheel or sdist that carries a record its legacy source lacks. - Add loader controls for legacy, exact, dropped, missing, contradictory, malformed and legacy-omitting declarations, plus missing-record wheel and sdist controls. - Make the installed-package smoke read the record through importlib.resources and require it to match the source checkout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
Full local unit suite at exact |
|
Hosted CI at exact head |
|
Attribution disclosure: review commit |
|
Security bounded source review at exact The eight-file delta prepares 2.12.4 and is limited to release metadata/docs, compatibility validation and tests, installed-package smoke, and the new packaged JSON record. No runtime The validator checks the complete nonempty map before selection, requires canonical positive major keys and stable exact releases of the matching major, and binds the legacy-major entry to the unchanged scalar. The source record must be the exact canonical JSON derived from The malformed/contradictory map controls, missing/stray/tampered record controls, exact wheel/sdist checks, and unlisted-major control are present. Publication must still preserve the exact source/artifact provenance, and normally installed published 2.12.4 must be qualified against the immutable native 3.0.1 tuple under .github#279. This source clearance implies neither Cloud admission nor any held-feature claim. |
|
Source integration is verified at protected main The PR endpoint still reports OPEN/BEHIND despite that integration. I am closing this PR as already integrated, without rewriting either branch or retrying the merge. Normal CI was run once on the exact protected-main SHA through run 41508685701 and passed. This closes source review only; 2.12.4 publication, package provenance and normally installed native 3.0.1 acceptance remain tracked in the compatibility issue. |



Python slice of durable-workflow/.github#279: publish per-major Server compatibility baselines in package metadata, so release tools can accept native Server 3.x without changing the legacy 2.x declaration.
Changes
General's
95d04df:supported-server-versions = "2.8.0"and worker protocol1.20unchanged.supported-server-release-baselines = { "2" = "2.8.0", "3" = "3.0.0" }.durable_workflow/server_compatibility.jsonin the wheel and sdist..pyfiles change.sdk-python review follow-up
c4eb94a:src/would ship a stale, unverified record. Wheels and sdists built from legacy source were also never refused for carrying a record.95d04dfverifier.scripts/smoke-built-package.pynow reads the installed record throughimportlib.resources. It requires the record to match the checkout and to agree with its legacy baseline.Evidence (macOS, Python 3.12.4, local)
tests/test_release_metadata.py: 42 passed (25 at95d04df). Withtest_pypi_project_surface.pyandtest_ci_checkout.py: 77 passed.ruff check src/ tests/plus the touched scripts: pass.mypy src/durable_workflow/and the release scripts: pass.python -m buildof 2.12.4 (wheel built from sdist): both contain the record.check_release_metadata.py --source-ref HEAD --dist: pass.importlib.resourcesreturns the record. It is byte-identical to source (sha25616b5c2a474c7419bc46633d15e2262d1826d79dd7f7894bc89657fb43a2984a9) and listed in RECORD.smoke-built-package.py: wheel and sdist installs both pass. A tampered source record makes it fail withinstalled Server compatibility record differs from the source checkout.c67353c(2.12.3) accepts the published PyPI 2.12.3 wheelf509643c…and sdistf8b4c3c1…. It refuses the 2.12.4 artifacts against that legacy source:wheel Server compatibility record is absent from exact source.Not run here: connected/container lifecycle. Merge, PyPI publication, installed native 3.0.1 lifecycle and Waterline stay with General.
🤖 Generated with Claude Code