Skip to content

Prepare native 3.3.0 Compose default and release notes - #1100

Merged
rmcdaniel merged 2 commits into
mainfrom
release/server-3.3.0
Nov 8, 2026
Merged

rmcdaniel merged 2 commits into
mainfrom
release/server-3.3.0

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Native 3.3.0 release-source change. It is source only: no tag, image, alias, GitHub Release or runtime effect is selected.

  • docker-compose.published.yml: the default image moves from durableworkflow/server:3.2.0 to durableworkflow/server:3.3.0. File SHA-256 3adb37b14ceb796909e1d30bb170682a70760757316933a2f3157f521395ef28.
  • docs/releases/3.3.0.md: new, 6,573 B, SHA-256 01a280515783c580b8fce3af446585eb20d942cd261764343fff6909a9ba90a0. This is the exact text General reviewed in #325/6718188608. It states:
    • the MySQL/MariaDB/PostgreSQL schema moves from 10 to 11, and SQLite stays at 10;
    • the stopped-node backup and schema-upgrade procedure;
    • rolling back to 3.2.x requires restoring a backup;
    • the PostgreSQL index build blocks writes to workflow_tasks.

Identity:

  • Head 5b22228d018b2e6413cec40a4661ba4d9c0724ab, tree 3118c1f36369b45c71f919b278a9bef68849d5e6, sole parent accepted main 6f279f9b797f9718be1c90d64bcda3c9482c44b8.
  • git diff --binary: 7,438 B / a17575898870c75e0ac817236e8a96161cb6ed2769a0bda775e0a75aa6dc8e39.
  • Two files; every other byte is unchanged. The secret-boundary scan is clean.

About the Published Compose check on this PR: the 3.3.0 image is not published yet. The selector therefore smokes durableworkflow/server:latest (currently 3.1.0's digest) under an explicit "not published yet" notice. That run proves only the Compose file's mechanics; it is not 3.3.0 artifact evidence. That check does not run on main or in the merge queue.

Release order (see #325/6718103799):

  1. This PR, then source and main custody of merge commit M.
  2. The 3.3.0 tag binds M.
  3. native-release.yml.
  4. Corpus and four-cell exact-digest Compose qualification.
  5. One no-input published-compose.yml dispatch at M. It must smoke the 3.3.0 default; a 404 or refusal is a NONPASS.

Each step needs its own selection. PR #1099 is excluded from this cut.

🤖 Generated with Claude Code

Point the published Compose file's default at durableworkflow/server:3.3.0
and add the 3.3.0 release notes. They state the MySQL/MariaDB/PostgreSQL
schema move from 10 to 11, that rolling back to 3.2.x needs a backup
restore, and that the PostgreSQL index build blocks task writes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rmcdaniel

Copy link
Copy Markdown
Member Author

Exact-head source train for 5b22228d018b2e6413cec40a4661ba4d9c0724ab (tree 3118c1f3, parent 6f279f9b): terminal green at 06:41:07Z. 20 pass, 8 skipping, 0 fail.

  • Passed:
    • Repository contracts and the PHPUnit feature suite;
    • Feature source qualification;
    • Native SBOM source components;
    • both public-boundary scans and the central action policy preflight;
    • CodeQL, all four Analyze jobs, SonarQube and SonarCloud;
    • Shared Server fixture inputs, plus the Shared Server fixtures result (aggregate);
    • the four Published Compose cells.
  • Skipped (path-gated, because only docs/ and docker-compose.published.yml changed): execution-and-codec, codec-native-build, codec-deadline-health, native-debug-build, published-sdk-adapters, the postgres-storage and mysql-execution matrix templates, and Candidate cancellation/prepared-local.
  • Published Compose (run 42454672583, pull_request): 4/4 success (amd64 and arm64, local and production). Every cell logged ::notice::durableworkflow/server:3.3.0 is not published yet; smoking the Compose file with durableworkflow/server:latest, with DW_SERVER_IMAGE: durableworkflow/server:latest, which is currently 3.1.0's digest 651253bd…. This is evidence of the Compose file's mechanics against latest only, not 3.3.0 artifact evidence, as stated in the plan.

This PR stays a draft. No queue, merge, tag, build, alias, release or runtime action is selected.

3.2.x can open a version 10 SQLite database but silently drops the
occurrence deadline fields, so a reopen there mixes an anchored chain that
sdk-php and 3.3.0 then refuse, and upgrading again does not repair it.
Require the pre-upgrade backup for such rollbacks, and record that the
sdk-php release carrying the policy must fail closed on capability loss.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rmcdaniel

Copy link
Copy Markdown
Member Author

SOURCE PASS on the rollback-note successor; one fresh source qualification selected.

I read the complete docs-only successor 5b22228d → d0c1930bbf8e3ac5726c67b05a002194a220edd4, tree a1eb63f648aa78ed2f4cd3a344b682f8548fb2bd. Delta: 2,077 bytes / SHA 0533f57f01740aa94f2fd161a5bc90422339abae959d1b5cbc98191c9ef2ddfe, one file +15/−2. Full delta against 6f279f9b: 8,321 bytes / SHA 6d6aa820cde32814e55e5044da1c3facaacdd6bc42e459f513bea04fd8ccb323. Exactly two files remain; Compose is unchanged at 3adb37b1. Notes are 7,443 bytes / SHA ee8702da63efd2459ab0dda703eed6683841e8cbeba85dc39aeed7b4006fe0ed.

The new text resolves the concrete rollback finding: frozen 3.2.0 strips the new fields from an anchored reopen, creating mixed history that later SDK replay and Native 3.3 reopen both refuse. SQLite schema compatibility does not make that rollback safe. Restore the pre-upgrade backup if any workflow has used the policy; re-upgrading does not repair a mixed chain. The notes also require the SDK capability-loss guard before a release containing #364. Published sdk-php 3.10.0 does not emit the policy. This changes documentation only; the separately selected SDK guard has its own source and qualification gates.

The first release-source head remains terminal green (20 successes, 8 path skips), with Compose fallback explicitly attributed to latest/3.1.0 file mechanics. General selects one push of this exact docs successor on the existing draft, with the lease pinned to 5b22228, same base/current main 6f279f9, clean worktree and boundary/secret checks. Run one fresh normal exact-head source CI, with no old-job rerun. Return exact identities and terminal evidence; keep the earlier result and rollback finding recorded.

No queue, merge, tag, build, acquisition, alias, GitHub Release or runtime is selected. Core's full source qualification is still active. Product cut remains 6f279f9 plus the eventual release-only merge; #1099 stays excluded.

@sonarqubecloud

sonarqubecloud Bot commented Nov 8, 2026

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Release-source qualification accepted; one guarded ordinary queue entry selected.

Subject: draft #1100 head d0c1930bbf8e3ac5726c67b05a002194a220edd4, tree a1eb63f648aa78ed2f4cd3a344b682f8548fb2bd, base/actual main 6f279f9b797f9718be1c90d64bcda3c9482c44b8. Full delta is 8,321 bytes / SHA 6d6aa820cde32814e55e5044da1c3facaacdd6bc42e459f513bea04fd8ccb323, exactly Compose plus the 3.3.0 notes. Notes ee8702da include the reviewed SQLite anchored-history rollback restriction and the future SDK capability-loss guard requirement. The product implementation and worker protocol are unchanged by this PR.

General independently re-read exact head/base/main, tree and the complete terminal set: 20 successful checks, 8 path-gated skips, zero bad/pending/neutral states, empty commit-status list. CLEAN/MERGEABLE. The published-Compose PR cells still exercise fallback latest/3.1.0 file mechanics; they are not 3.3.0 artifact qualification. The workflow does not run on main or merge_group. Core's full source prerequisite is met: 1067/6718493628, followed by the exact reviewed-tree merge 6718504346. Core actual-main observation remains separate.

Selected owner: Server. Immediately before effect, re-read this raw carry, exact head/base/actual main, tree, full binary delta, CLEAN/MERGEABLE, no existing auto-merge/queue entry and the full terminal check/status set. Require the ordinary queue empty and the three required checks green. Refuse drift or unknown/bad state. Mark ready once and enter the ordinary queue once with head protection; no bypass, force, rerun or re-entry.

Entry by 07:30 UTC. Watch for at most 45 minutes from actual entry. If the exact entry is still live at the ceiling, perform one ordinary exact-entry dequeue after verifying identity, with no retry/re-entry; report terminal/status by five minutes later. After a merge M, verify signed merge, ordered parents [6f279f9, d0c1930] and exact reviewed tree a1eb63f6. Own actual-main checks through terminal, the ancestor check and deletion of only the merged topic. Return raw custody and any limitation; a main failure is NONPASS with no automatic rerun.

The product cut is M and these release-only files; #1099 stays excluded, draft and out of the queue. This carry selects source integration only. Tag 3.3.0 at M, native-release, runner refresh, artifact acquisition, corpus, exact-digest Compose, the default-reading Compose dispatch, aliases and GitHub Release each remain separate unselected effects. No runtime, PHP Server release or installed #269 acceptance is granted.

@rmcdaniel
rmcdaniel marked this pull request as ready for review November 8, 2026 07:11
@rmcdaniel
rmcdaniel added this pull request to the merge queue Nov 8, 2026
Merged via the queue into main with commit 2a15179 Nov 8, 2026
28 checks passed
@rmcdaniel
rmcdaniel deleted the release/server-3.3.0 branch November 8, 2026 07:30
@rmcdaniel

Copy link
Copy Markdown
Member Author

Actual-main custody for #1100: terminal green at 07:45:32Z.

  • Merge: queued once at 07:11:40Z under carry 6718591838 (raw 2,738 B / fc3380f1…). Merged at 07:29:39Z as M = 2a15179f29801eec9f2a2d4e6a9c5f93233f104e, inside the 45-minute ceiling, with no dequeue or re-entry. GitHub verification: signed, valid. M is still current main.
  • Parents and tree: ordered parents 6f279f9b797f9718be1c90d64bcda3c9482c44b8 (accepted main), then d0c1930bbf8e3ac5726c67b05a002194a220edd4 (the carried head). Tree a1eb63f648aa78ed2f4cd3a344b682f8548fb2bd equals the reviewed head's tree, so the merged delta is the reviewed 8,321 B / 6d6aa820…. At M, docs/releases/3.3.0.md is ee8702da… and the Compose default is durableworkflow/server:3.3.0.
  • Check runs on M (31): 21 success, 10 skipped, 0 failure, cancelled or timed out. There are no commit statuses. Every skip is path-gated or a template, as expected for a docs-and-Compose-only change: SonarQube merge queue analysis, Candidate cancellation/prepared-local ×2, the postgres-storage and mysql-execution matrix templates, codec-native-build, codec-deadline-health, execution-and-codec, published-sdk-adapters and native-debug-build. The Published Compose workflow does not run on push.
  • Topic: release/server-3.3.0 deleted after the ancestor check.

M is the 3.3.0 product cut: accepted main 6f279f9b plus these release-only files. #1099 is excluded. Tagging 3.3.0 at M, native-release, the runner refresh, acquisition, the corpus run, the exact-digest and default-reading Compose runs, aliases and the GitHub Release each remain separate, unselected effects. This makes no runtime or installed-acceptance claim.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant