Skip to content

Prepare Workflow 2.10.0 activity lease release metadata - #885

Merged
rmcdaniel merged 2 commits into
mainfrom
release/2.10.0-activity-lease
Oct 21, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
release/2.10.0-activity-lease

Conversation

@rmcdaniel

@rmcdaniel rmcdaniel commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Prepare compatible Workflow 2.10.0

Based on merged #879 and its #886 watchdog coverage follow-through, exact source main 3e3add8693c624195ff6818985c7bb10cc4920fa / tree a84d4f29d6c4491828782f30119c30e3b5e0264e. The implementation adds an optional runtime lease-renewal contract without changing existing custom ActivityTaskBridge implementations, plus recorded lease-loss/departure recovery and original workflow-deadline fences. A compatible minor release makes that contract available to the coordinated Server and SDK delivery for #878.

This PR changes only the product-train metadata to 2.10.0 and the changelog. Dependencies, package references, runtime, schemas and native/shared/frozen files are unchanged. The library tracks no composer.lock. The changelog also corrects the prior tracing entry's stale 2.8.0/Unreleased heading to actual published 2.9.0 (October 21), and records actual 2.8.0 (October 20); both dates/features were read from immutable release records.

Updated ancestry-only candidate is 54269101ce546c092320fbd74edd79ba8dc7893a, tree 3de4f2a76e315709d592b0d2f4270bd8a520a91b. Strict Composer validation passed for the unchanged metadata on predecessor 3fd8bcad; its short-lived UID-1000/network-disabled PHP container is removed. Diff review confirms this candidate still differs from source main only in composer.json and CHANGELOG.md. Production source/resource bytes match the new merged main exactly. New whole-head normal gates are required; no predecessor pass is borrowed.

Tagging is held on fresh-main and updated candidate qualification. Original source-main build 39563295508 failed the same old watchdog fixture on MySQL shard 2 and PostgreSQL shard 3. Those failed originals remain failed. Follow-through #886 94589cf0 adds actual original-claim retry/history/idempotency coverage and refusal to invent a missing attempt, with no production change. Local complete PostgreSQL file passes 128 tests / 1,736 assertions, and fresh MySQL watchdog selection passes 12 / 175; its broader OOM-failed MySQL original is not rescued. Every normal #886 gate and Sonar passed before protected merge at 3e3add86, preserving exact reviewed tree a84d4f29. Independent full fresh-main checks and this updated metadata head must now qualify.

The old metadata candidate's passing normal gates do not override the new whole-head requirement. Normal immutable package/registry verification and installed consumers remain required after tagging. No earlier tree's pass is transferred. No release or complete #878 acceptance is claimed now.

Automatic maintenance for PHP/embedded inline callbacks and the genuine installed six-minute/killed-worker cohort remain tracked in #878. This release preparation does not close that P1.

@rmcdaniel

Copy link
Copy Markdown
Member Author

Fresh main failure; hold 2.10.0 tagging

Exact merged main 39413974 / tree c8175dc7, build 39563295508, is terminal FAILURE. MySQL shard 2 (119101647645: 764 tests / 7,616 assertions / one error) and PostgreSQL shard 3 (119101647716: 652 / 6,810 / one error) both fail the same testTaskWatchdogReclaimsExpiredActivityTaskLease, at V2WorkflowTest.php:6988, with missing ActivityAttempt. Other candidate successes do not qualify this full main.

The exact retained logs were read using the existing host-interface path. The old fixture manually creates a running execution and leased task without an attempt row/current-attempt identity. The new lease-loss settlement requires the original generation. Before changing any expectation, qualify a genuinely claimed attempt through the watchdog and a complementary incomplete-projection refusal control. This is not yet proof of a production regression or a passing corrected fixture. No rerun, timeout relaxation or rescued original is claimed.

Draft release-metadata #885 (3fd8bcad / tree 958f8891) passes its own normal gates, but tagging remains held for this source follow-through and fresh complete main qualification. No Core 2.10.0 is published. The published Core 2.9.0 / Server 2.10 tuple remains separate.

@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel
rmcdaniel marked this pull request as ready for review October 21, 2026 11:40
@rmcdaniel
rmcdaniel merged commit cafcd20 into main Oct 21, 2026
20 checks passed
@rmcdaniel
rmcdaniel deleted the release/2.10.0-activity-lease branch October 21, 2026 11:40
@rmcdaniel

Copy link
Copy Markdown
Member Author

Workflow 2.10.0 published component

Release PR #885 is merged at cafcd20519877ed640733481ecbc6b97cd2b56ce, identical qualified release tree 3de4f2a76e315709d592b0d2f4270bd8a520a91b. Required candidate checks and independent full main build 39576379949 pass before tagging. The completed release branch is deleted and its remote absence is verified.

Immutable release 2.10.0 is published. Packagist resolves exact cafcd205...; a fresh normal Composer install of durable-workflow/workflow:2.10.0 independently loads the optional ActivityLeaseRenewal interface and verifies that installed source reference. The one-shot consumer and temporary dependencies are removed after exit 0.

This releases original activity claim authority/recovery and the optional bridge role. #878 remains open for embedded automatic inline maintenance, final PHP/Rust SDK publication, Server adoption and actual published long-activity/worker-loss acceptance. It is not a claim that callbacks now maintain themselves, or that an abandoned callback physically stopped.

Server #585's urgent select-cancellation patch deliberately keeps its qualified Core 2.9.0 pin. The separately prepared activity-lease Server source will adopt published 2.10.0 in its own qualified dependency/consumer window. No native/shared/frozen reference or catalog adoption follows from this package release.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants