diff --git a/composer.json b/composer.json index 66b721dc..b65d044b 100644 --- a/composer.json +++ b/composer.json @@ -6,7 +6,7 @@ "require": { "php": "^8.2", "apache/avro": "^1.12", - "durable-workflow/workflow": "2.0.0-rc.53", + "durable-workflow/workflow": "2.0.0-rc.55", "laravel/framework": "^13.0", "laravel/tinker": "^3.0" }, @@ -47,7 +47,7 @@ }, "extra": { "durable-workflow": { - "product-train": "2.0.0-rc.68" + "product-train": "2.0.0-rc.69" }, "laravel": { "dont-discover": [] diff --git a/composer.lock b/composer.lock index 3f384086..2d7c5a27 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "551b26429659df26eab696f6e642d526", + "content-hash": "9911a96331bfbd64323bd75970bc6c0d", "packages": [ { "name": "apache/avro", @@ -504,16 +504,16 @@ }, { "name": "durable-workflow/workflow", - "version": "2.0.0-rc.53", + "version": "2.0.0-rc.55", "source": { "type": "git", "url": "https://github.com/durable-workflow/workflow.git", - "reference": "62d6eabb10021e4ad72a3d813faa8e24b1c945af" + "reference": "720512eefa0a5a97afeb410797cff8803ec76864" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/durable-workflow/workflow/zipball/62d6eabb10021e4ad72a3d813faa8e24b1c945af", - "reference": "62d6eabb10021e4ad72a3d813faa8e24b1c945af", + "url": "https://api.github.com/repos/durable-workflow/workflow/zipball/720512eefa0a5a97afeb410797cff8803ec76864", + "reference": "720512eefa0a5a97afeb410797cff8803ec76864", "shasum": "" }, "require": { @@ -543,7 +543,7 @@ ] }, "durable-workflow": { - "product-train": "2.0.0-rc.53", + "product-train": "2.0.0-rc.55", "laravel-embedded-upgrade-contract": "resources/laravel-embedded-upgrade-contract.json", "laravel-dependency-security-policy": "resources/laravel-dependency-security-policy.json" } @@ -570,9 +570,9 @@ "description": "Embedded durable workflow runtime and orchestration engine for Laravel applications.", "support": { "issues": "https://github.com/durable-workflow/workflow/issues", - "source": "https://github.com/durable-workflow/workflow/tree/2.0.0-rc.53" + "source": "https://github.com/durable-workflow/workflow/tree/2.0.0-rc.55" }, - "time": "2026-08-31T02:21:00+00:00" + "time": "2026-08-31T13:42:11+00:00" }, { "name": "egulias/email-validator", diff --git a/docker-compose.memo-rolling.yml b/docker-compose.memo-rolling.yml index d5c77bb7..2b44b247 100644 --- a/docker-compose.memo-rolling.yml +++ b/docker-compose.memo-rolling.yml @@ -49,14 +49,14 @@ services: command: ["server-bootstrap"] environment: <<: *runtime-environment - APP_VERSION: ${APP_VERSION:-2.0.0-rc.68} + APP_VERSION: ${APP_VERSION:-2.0.0-rc.69} successor: image: ${DW_MEMO_SUCCESSOR_IMAGE:-durable-workflow/server-memo-rolling:local} ports: !override [] environment: <<: *runtime-environment - APP_VERSION: ${APP_VERSION:-2.0.0-rc.68} + APP_VERSION: ${APP_VERSION:-2.0.0-rc.69} DW_SERVER_ID: memo-successor DW_SERVER_TOPOLOGY_SHAPE: standalone_server DW_SERVER_PROCESS_CLASS: server_http_node diff --git a/docker-compose.small-cluster.yml b/docker-compose.small-cluster.yml index cb76515f..76f89e1c 100644 --- a/docker-compose.small-cluster.yml +++ b/docker-compose.small-cluster.yml @@ -12,7 +12,7 @@ x-server-build: &server-build x-server-environment: &server-environment APP_NAME: "Durable Workflow Server" APP_ENV: testing - APP_VERSION: ${APP_VERSION:-2.0.0-rc.68} + APP_VERSION: ${APP_VERSION:-2.0.0-rc.69} APP_DEBUG: "false" DW_SERVER_KEY: ${DW_SERVER_KEY:-base64:5Zt4nUhlCm3DD0nLXZJQdHiwPfb56yGo9gNV/g3jYbY=} DB_CONNECTION: ${DW_SMALL_CLUSTER_DB:-mysql} diff --git a/docker-compose.yml b/docker-compose.yml index d97f3ecf..5b8d7008 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,7 +15,7 @@ services: DW_SERVER_KEY: "${DW_SERVER_KEY:-}" DW_SERVER_TOPOLOGY_SHAPE: standalone_server DW_SERVER_PROCESS_CLASS: server_http_node - APP_VERSION: "${APP_VERSION:-2.0.0-rc.68}" + APP_VERSION: "${APP_VERSION:-2.0.0-rc.69}" APP_DEBUG: "false" DB_CONNECTION: mysql DB_HOST: mysql @@ -54,7 +54,7 @@ services: APP_NAME: "Durable Workflow Server" APP_ENV: local DW_SERVER_KEY: "${DW_SERVER_KEY:-}" - APP_VERSION: "${APP_VERSION:-2.0.0-rc.68}" + APP_VERSION: "${APP_VERSION:-2.0.0-rc.69}" APP_DEBUG: "false" DB_CONNECTION: mysql DB_HOST: mysql @@ -107,7 +107,7 @@ services: DW_SERVER_KEY: "${DW_SERVER_KEY:-}" DW_SERVER_TOPOLOGY_SHAPE: standalone_server DW_SERVER_PROCESS_CLASS: worker_node - APP_VERSION: "${APP_VERSION:-2.0.0-rc.68}" + APP_VERSION: "${APP_VERSION:-2.0.0-rc.69}" DB_CONNECTION: mysql DB_HOST: mysql DB_PORT: 3306 @@ -153,7 +153,7 @@ services: DW_SERVER_KEY: "${DW_SERVER_KEY:-}" DW_SERVER_TOPOLOGY_SHAPE: standalone_server DW_SERVER_PROCESS_CLASS: scheduler_node - APP_VERSION: "${APP_VERSION:-2.0.0-rc.68}" + APP_VERSION: "${APP_VERSION:-2.0.0-rc.69}" DB_CONNECTION: mysql DB_HOST: mysql DB_PORT: 3306 diff --git a/k8s/helm/durable-workflow/Chart.yaml b/k8s/helm/durable-workflow/Chart.yaml index 7c83192f..ec2bbc6e 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/helm-upgrading.md alongside the chart. -version: 0.1.64 +version: 0.1.65 # The immutable Durable Workflow Server identity this chart release packages. # The onboarding default in values.yaml is generated from the separately # qualified compatibility authority; appVersion remains release metadata. -appVersion: "2.0.0-rc.68" +appVersion: "2.0.0-rc.69" kubeVersion: ">=1.27.0-0" home: https://durable-workflow.github.io/docs/2.0/deployment sources: @@ -30,12 +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:2.0.0-rc.68" + dev.durable-workflow.image-reference: "docker.io/durableworkflow/server:2.0.0-rc.69" artifacthub.io/license: MIT artifacthub.io/category: integration-delivery # Free-form changelog used by Artifact Hub. Keep the most recent chart-version # entry first; do not rewrite past entries. artifacthub.io/changes: | + - kind: fixed + description: Ship the durable signal-resume parallel-sequence repair with Workflow 2.0.0-rc.55 in Server 2.0.0-rc.69. - kind: fixed description: Pin the packaged Workflow engine to 2.0.0-rc.53 in Server 2.0.0-rc.68. - kind: fixed diff --git a/k8s/helm/durable-workflow/README.md b/k8s/helm/durable-workflow/README.md index 88c13364..3a16fdbc 100644 --- a/k8s/helm/durable-workflow/README.md +++ b/k8s/helm/durable-workflow/README.md @@ -48,7 +48,7 @@ Redis — that is intentional, not a bug. ```bash helm install durable-workflow \ oci://ghcr.io/durable-workflow/charts/durable-workflow \ - --version 0.1.64 \ + --version 0.1.65 \ --namespace durable-workflow --create-namespace \ -f my-values.yaml ``` @@ -59,7 +59,7 @@ helm install durable-workflow \ helm repo add durable-workflow https://durable-workflow.github.io/charts/ helm repo update helm install durable-workflow durable-workflow/durable-workflow \ - --version 0.1.64 \ + --version 0.1.65 \ --namespace durable-workflow --create-namespace \ -f my-values.yaml ``` diff --git a/k8s/helm/durable-workflow/ci/existing-secrets-values.yaml b/k8s/helm/durable-workflow/ci/existing-secrets-values.yaml index 56912e57..51acaf79 100644 --- a/k8s/helm/durable-workflow/ci/existing-secrets-values.yaml +++ b/k8s/helm/durable-workflow/ci/existing-secrets-values.yaml @@ -1,7 +1,7 @@ # CI fixture: GitOps / externally-managed-secret path. The chart consumes # existing Secrets and renders no Secret resources of its own. image: - tag: "2.0.0-rc.68" + tag: "2.0.0-rc.69" externalDatabase: connection: pgsql diff --git a/k8s/helm/durable-workflow/ci/ingress-and-hpa-values.yaml b/k8s/helm/durable-workflow/ci/ingress-and-hpa-values.yaml index 627973a2..026b0401 100644 --- a/k8s/helm/durable-workflow/ci/ingress-and-hpa-values.yaml +++ b/k8s/helm/durable-workflow/ci/ingress-and-hpa-values.yaml @@ -1,6 +1,6 @@ # CI fixture: ingress + autoscaling enabled. Exercises optional templates. image: - tag: "2.0.0-rc.68" + tag: "2.0.0-rc.69" externalDatabase: connection: mysql diff --git a/k8s/helm/durable-workflow/ci/inline-secrets-values.yaml b/k8s/helm/durable-workflow/ci/inline-secrets-values.yaml index fb4cdc24..cd0c1acd 100644 --- a/k8s/helm/durable-workflow/ci/inline-secrets-values.yaml +++ b/k8s/helm/durable-workflow/ci/inline-secrets-values.yaml @@ -2,7 +2,7 @@ # chart's render path is exercised end-to-end. Real deployments should use # existingSecret instead. image: - tag: "2.0.0-rc.68" + tag: "2.0.0-rc.69" externalDatabase: connection: mysql diff --git a/resources/release/source-release.json b/resources/release/source-release.json index e3466072..9885393b 100644 --- a/resources/release/source-release.json +++ b/resources/release/source-release.json @@ -1,9 +1,9 @@ { "schema": "durable-workflow.server.source-release/v1", "server": { - "version": "2.0.0-rc.68" + "version": "2.0.0-rc.69" }, "helm_chart": { - "version": "0.1.64" + "version": "0.1.65" } } diff --git a/tests/Feature/WorkerProtocolContractTest.php b/tests/Feature/WorkerProtocolContractTest.php index 793ebe08..cbec6a63 100644 --- a/tests/Feature/WorkerProtocolContractTest.php +++ b/tests/Feature/WorkerProtocolContractTest.php @@ -203,9 +203,9 @@ public function test_parallel_group_command_metadata_is_validated_and_persisted_ foreach (range(0, 2) as $index) { $entries[] = [ - 'parallel_group_id' => 'parallel-calls:3:3', + 'parallel_group_id' => 'parallel-calls:1:3', 'parallel_group_kind' => 'mixed', - 'parallel_group_base_sequence' => 3, + 'parallel_group_base_sequence' => 1, 'parallel_group_size' => 3, 'parallel_group_index' => $index, ]; diff --git a/tests/Feature/WorkerProtocolSuccessContractTest.php b/tests/Feature/WorkerProtocolSuccessContractTest.php index 0feaddeb..9262294d 100644 --- a/tests/Feature/WorkerProtocolSuccessContractTest.php +++ b/tests/Feature/WorkerProtocolSuccessContractTest.php @@ -1951,7 +1951,7 @@ public function test_child_workflow_completion_resume_uses_worker_protocol_contr ->assertJsonPath('task.resume_source_kind', 'child_workflow_run') ->assertJsonPath('task.resume_source_id', $childRunId) ->assertJsonPath('task.child_workflow_run_id', $childRunId) - ->assertJsonPath('task.workflow_sequence', 3) + ->assertJsonPath('task.workflow_sequence', 1) ->assertJsonPath('task.workflow_event_type', 'ChildRunCompleted'); $childCallId = $parentResumePoll->json('task.child_call_id'); diff --git a/tests/Unit/ReleaseImagePublishWorkflowContractTest.php b/tests/Unit/ReleaseImagePublishWorkflowContractTest.php index 8f225ca8..09c89b1a 100644 --- a/tests/Unit/ReleaseImagePublishWorkflowContractTest.php +++ b/tests/Unit/ReleaseImagePublishWorkflowContractTest.php @@ -942,8 +942,8 @@ public function test_release_tag_source_guard_rejects_missing_wrong_and_moved_re public function test_composer_metadata_identifies_the_exact_workflow_source(): void { - $expectedVersion = '2.0.0-rc.53'; - $expectedCommit = '62d6eabb10021e4ad72a3d813faa8e24b1c945af'; + $expectedVersion = '2.0.0-rc.55'; + $expectedCommit = '720512eefa0a5a97afeb410797cff8803ec76864'; $composer = json_decode($this->read('composer.json'), true, flags: JSON_THROW_ON_ERROR); $lock = json_decode($this->read('composer.lock'), true, flags: JSON_THROW_ON_ERROR); @@ -3223,11 +3223,11 @@ public function test_workflow_package_resolver_follows_the_composer_authority(): $outputs = file_get_contents($outputFile); $this->assertNotFalse($outputs); $this->assertStringContainsString("source=https://github.com/durable-workflow/workflow.git\n", $outputs); - $this->assertStringContainsString("ref=2.0.0-rc.53\n", $outputs); - $this->assertStringContainsString("tag=2.0.0-rc.53\n", $outputs); - $this->assertStringContainsString("commit=62d6eabb10021e4ad72a3d813faa8e24b1c945af\n", $outputs); + $this->assertStringContainsString("ref=2.0.0-rc.55\n", $outputs); + $this->assertStringContainsString("tag=2.0.0-rc.55\n", $outputs); + $this->assertStringContainsString("commit=720512eefa0a5a97afeb410797cff8803ec76864\n", $outputs); $this->assertStringContainsString( - 'Workflow package authority: 2.0.0-rc.53 at 62d6eabb10021e4ad72a3d813faa8e24b1c945af', + 'Workflow package authority: 2.0.0-rc.55 at 720512eefa0a5a97afeb410797cff8803ec76864', $result['stdout'], ); } finally { @@ -3243,15 +3243,15 @@ public function test_workflow_package_resolver_accepts_only_matching_caller_iden try { $result = $this->runScript('scripts/ci/select-compatible-workflow-package-ref.sh', [ 'WORKFLOW_PACKAGE_SOURCE' => 'https://github.com/durable-workflow/workflow.git', - 'WORKFLOW_PACKAGE_REF' => '2.0.0-rc.53', - 'WORKFLOW_PACKAGE_COMMIT' => '62d6eabb10021e4ad72a3d813faa8e24b1c945af', + 'WORKFLOW_PACKAGE_REF' => '2.0.0-rc.55', + 'WORKFLOW_PACKAGE_COMMIT' => '720512eefa0a5a97afeb410797cff8803ec76864', 'GITHUB_OUTPUT' => $outputFile, ]); $this->assertSame(0, $result['exitCode']); $outputs = file_get_contents($outputFile); $this->assertNotFalse($outputs); - $this->assertStringContainsString("tag=2.0.0-rc.53\n", $outputs); + $this->assertStringContainsString("tag=2.0.0-rc.55\n", $outputs); } finally { @unlink($outputFile); } @@ -3266,7 +3266,7 @@ public function test_workflow_package_resolver_rejects_a_stale_protocol_compatib $this->assertSame(1, $result['exitCode']); $this->assertStringContainsString( - 'disagrees with the Composer Workflow package authority 2.0.0-rc.53', + 'disagrees with the Composer Workflow package authority 2.0.0-rc.55', $result['stderr'], ); }