From 11c091808e59979197c024cb2d7f690cc6c2de3d Mon Sep 17 00:00:00 2001 From: Richard McDaniel <1130888+rmcdaniel@users.noreply.github.com> Date: Fri, 13 Nov 2026 18:14:41 +0000 Subject: [PATCH 1/2] Release Helm 1.8.0 for native Server 3.10.0 --- k8s/helm/durable-workflow/Chart.yaml | 16 ++++---- k8s/helm/durable-workflow/README.md | 2 +- k8s/helm/durable-workflow/docs/UPGRADING.md | 43 +++++++++++++++++++++ k8s/helm/durable-workflow/values.yaml | 2 +- resources/release/source-release.json | 4 +- 5 files changed, 54 insertions(+), 13 deletions(-) diff --git a/k8s/helm/durable-workflow/Chart.yaml b/k8s/helm/durable-workflow/Chart.yaml index 230a7eccf..a9c52ee2f 100644 --- a/k8s/helm/durable-workflow/Chart.yaml +++ b/k8s/helm/durable-workflow/Chart.yaml @@ -5,11 +5,11 @@ type: application # The chart's own semver version. Bumped on every chart release; treated as # independent of the server image version (appVersion). Breaking-change rules # for this version live in docs/UPGRADING.md alongside the chart. -version: 1.7.1 +version: 1.8.0 # The immutable native Durable Workflow Server this chart release packages. # The onboarding default in values.yaml and appVersion are generated from the # checked-in source release record (helm_chart.app_version). -appVersion: "3.9.2" +appVersion: "3.10.0" kubeVersion: ">=1.27.0-0" home: https://durable-workflow.github.io/docs/2.0/deployment sources: @@ -30,16 +30,14 @@ annotations: # exact commit that most recently changed the packaged chart. org.opencontainers.image.source: https://github.com/durable-workflow/server dev.durable-workflow.source-revision: "unreleased" - dev.durable-workflow.image-reference: "docker.io/durableworkflow/server:3.9.2" + dev.durable-workflow.image-reference: "docker.io/durableworkflow/server:3.10.0" artifacthub.io/license: MIT artifacthub.io/category: integration-delivery # Free-form changelog for the current chart release shown by Artifact Hub. artifacthub.io/changes: | - kind: changed - description: "Default image advances from native Server 3.9.1 to 3.9.2. No schema step from 3.9.0 or 3.9.1; upgrades from 3.8.x or earlier keep the explicit 3.9 schema/backup/restore procedure in docs/UPGRADING.md." - - kind: fixed - description: "Server 3.9.2 accepts 255-code-point multibyte command keys and echoes literal keys with explicit fresh/retained intent metadata. Installed client acceptance remains separately qualified. https://github.com/durable-workflow/server/releases/tag/3.9.2" + description: "Default image advances to native Server 3.10.0. Every backend needs an explicit additive schema upgrade from 3.9.x with all replicas stopped; rollback requires restoring the pre-upgrade backup. See docs/UPGRADING.md." + - kind: added + description: "Schedule list and describe responses carry bounded durable dispatch summaries. Last dispatch outcome, current buffer count and latest workflow execution status remain distinct. Existing schedules have unavailable authority until an owning transition records it." - kind: changed - description: "Storage-admission observation ownership is checked on the opened descriptor against root or the effective Server UID. Trusted ancestors remain operator-required; draining uploads and Cloud adoption remain separate (server#951)." - - kind: fixed - description: "Legacy command-key readback identifies unverified intent and refuses ambiguous identities. Oversized completion responses use a bounded drain, and discovery advertises the actual completion wire cap; installed SDK acceptance is tracked in shared#228." + description: "Worker protocol 1.20 and control plane 2 remain unchanged. Client, Waterline and Cloud acceptance remain separate; this release adds no draining-upload authority or pool-timeout fix. https://github.com/durable-workflow/server/releases/tag/3.10.0" diff --git a/k8s/helm/durable-workflow/README.md b/k8s/helm/durable-workflow/README.md index 72079aa79..7a0348131 100644 --- a/k8s/helm/durable-workflow/README.md +++ b/k8s/helm/durable-workflow/README.md @@ -77,7 +77,7 @@ helm install durable-workflow ./k8s/helm/durable-workflow \ ```yaml image: - tag: "3.9.2" + tag: "3.10.0" # Pin a digest in production: # digest: "sha256:abc123..." diff --git a/k8s/helm/durable-workflow/docs/UPGRADING.md b/k8s/helm/durable-workflow/docs/UPGRADING.md index 18f4d2860..f7fcacbf5 100644 --- a/k8s/helm/durable-workflow/docs/UPGRADING.md +++ b/k8s/helm/durable-workflow/docs/UPGRADING.md @@ -69,6 +69,49 @@ chart MINOR bump and an entry below. ## Per-version migration notes +### Chart 1.8.0 / Server 3.10.0 (native) + +**Every backend needs an explicit native schema upgrade from 3.9.x.** Chart +1.8.0 selects native Server 3.10.0 and retains the existing values and resource +contract. An explicit `image.tag` or `image.digest` override must select the +intended qualified image too. The PHP Server remains 2.11.8. + +| Backend | Schema step | +| --- | --- | +| SQLite | 13 to 14 | +| PostgreSQL | 14 to 15 | +| MariaDB | 14 to 15 | +| MySQL | 15 to 16 | + +1. Stop every Server replica sharing the database, including replicas outside + this Helm release. Keep the database running. +2. Back up the database and external payload storage. +3. Run the new image's `schema-upgrade` once through the opt-in upgrade hook or + manual Job in [Native schema upgrades](../README.md#native-schema-upgrades). + The hook requires live proof that all Server replicas are stopped. +4. Restart every replica on the same new image and verify readiness, reported + version 3.10.0 and worker registration. + +Startup does not upgrade an older schema automatically. Earlier releases also +apply the intervening steps. MySQL and MariaDB can resume an interrupted +upgrade; SQLite and PostgreSQL apply their step transactionally. Rolling back +to an older image requires restoring the pre-upgrade database and storage +backup. Do not start an older binary against the upgraded database. + +The new nullable schedule column is not backfilled from legacy action arrays. +Existing schedules return unavailable dispatch authority until an owning +transition records a valid summary. A known last dispatch outcome, current +buffered-action count and latest workflow execution status are separate facts. +A Started dispatch can point to a workflow that later Failed. Summary support +requires a complete valid v1 field; a version string or empty list is not proof. + +Worker protocol 1.20, control plane version 2, command-key receipts and encoded +completion limits remain unchanged. Installed client and Waterline acceptance +are separate. This release grants no new upload or Cloud adoption authority; +MariaDB held-poll reliability work in #1204 remains open. + +See [Server 3.10.0 release notes](../../../../docs/releases/3.10.0.md). + ### Chart 1.7.1 / Server 3.9.2 (native) Chart 1.7.1 selects the native Server 3.9.2 corrective image. From Server diff --git a/k8s/helm/durable-workflow/values.yaml b/k8s/helm/durable-workflow/values.yaml index 715f47bc4..00d38b7aa 100644 --- a/k8s/helm/durable-workflow/values.yaml +++ b/k8s/helm/durable-workflow/values.yaml @@ -42,7 +42,7 @@ image: # scripts/ci/sync-source-release.mjs. Do not edit this default. # A tag must match the runtime: 3.x (or latest) for native, 2.x for php. # The chart refuses a mismatch at render time. - tag: "3.9.2" + tag: "3.10.0" # Optional digest pin. When set, takes precedence over tag for change control. # Example: "sha256:abc123..." # The chart cannot see which runtime a digest names. Pin a native digest diff --git a/resources/release/source-release.json b/resources/release/source-release.json index da7f1a0b9..20e2ec47e 100644 --- a/resources/release/source-release.json +++ b/resources/release/source-release.json @@ -4,7 +4,7 @@ "version": "2.11.8" }, "helm_chart": { - "version": "1.7.1", - "app_version": "3.9.2" + "version": "1.8.0", + "app_version": "3.10.0" } } From ac22629c078e8f1b240ead07b1561c99077753ac Mon Sep 17 00:00:00 2001 From: Richard McDaniel <1130888+rmcdaniel@users.noreply.github.com> Date: Fri, 13 Nov 2026 18:29:41 +0000 Subject: [PATCH 2/2] Use chart major for the required operator schema upgrade --- k8s/helm/durable-workflow/Chart.yaml | 2 +- k8s/helm/durable-workflow/docs/UPGRADING.md | 8 +++++--- resources/release/source-release.json | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/k8s/helm/durable-workflow/Chart.yaml b/k8s/helm/durable-workflow/Chart.yaml index a9c52ee2f..24f52da1f 100644 --- a/k8s/helm/durable-workflow/Chart.yaml +++ b/k8s/helm/durable-workflow/Chart.yaml @@ -5,7 +5,7 @@ type: application # The chart's own semver version. Bumped on every chart release; treated as # independent of the server image version (appVersion). Breaking-change rules # for this version live in docs/UPGRADING.md alongside the chart. -version: 1.8.0 +version: 2.0.0 # The immutable native Durable Workflow Server this chart release packages. # The onboarding default in values.yaml and appVersion are generated from the # checked-in source release record (helm_chart.app_version). diff --git a/k8s/helm/durable-workflow/docs/UPGRADING.md b/k8s/helm/durable-workflow/docs/UPGRADING.md index f7fcacbf5..c97e77fb5 100644 --- a/k8s/helm/durable-workflow/docs/UPGRADING.md +++ b/k8s/helm/durable-workflow/docs/UPGRADING.md @@ -69,11 +69,13 @@ chart MINOR bump and an entry below. ## Per-version migration notes -### Chart 1.8.0 / Server 3.10.0 (native) +### Chart 2.0.0 / Server 3.10.0 (native) **Every backend needs an explicit native schema upgrade from 3.9.x.** Chart -1.8.0 selects native Server 3.10.0 and retains the existing values and resource -contract. An explicit `image.tag` or `image.digest` override must select the +2.0.0 selects native Server 3.10.0 and retains the existing values and resource +contract. The chart major advances because changing its default image requires +operator action on every backend under this guide's existing semver rule. +An explicit `image.tag` or `image.digest` override must select the intended qualified image too. The PHP Server remains 2.11.8. | Backend | Schema step | diff --git a/resources/release/source-release.json b/resources/release/source-release.json index 20e2ec47e..5b630de05 100644 --- a/resources/release/source-release.json +++ b/resources/release/source-release.json @@ -4,7 +4,7 @@ "version": "2.11.8" }, "helm_chart": { - "version": "1.8.0", + "version": "2.0.0", "app_version": "3.10.0" } }