diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e32b181..171ed5c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## Unreleased +## 2.0.2 - 2026-09-01 + +- Workflow `2.0.2` reports its stable package identity through the platform + conformance API, allowing published-package verification after the 2.0 launch. + ## 2.0.1 - 2026-09-01 - Workflow `2.0.1` keeps PHP exception traces Avro-portable when argument diff --git a/composer.json b/composer.json index 79d45cdb..4e6f55ed 100644 --- a/composer.json +++ b/composer.json @@ -76,7 +76,7 @@ }, "extra": { "durable-workflow": { - "product-train": "2.0.1", + "product-train": "2.0.2", "laravel-embedded-upgrade-contract": "resources/laravel-embedded-upgrade-contract.json", "laravel-dependency-security-policy": "resources/laravel-dependency-security-policy.json" }, diff --git a/src/V2/Support/PlatformConformanceSuite.php b/src/V2/Support/PlatformConformanceSuite.php index d17730a1..6173c60a 100644 --- a/src/V2/Support/PlatformConformanceSuite.php +++ b/src/V2/Support/PlatformConformanceSuite.php @@ -147,8 +147,8 @@ public static function workflowSourceRelease(): string } $release = is_array($composer) ? ($composer['extra']['durable-workflow']['product-train'] ?? null) : null; - if (! is_string($release) || preg_match('/\A2\.0\.0-rc\.[1-9][0-9]*\z/D', $release) !== 1) { - throw new RuntimeException('Workflow package metadata must declare one exact 2.0 release candidate.'); + if (! is_string($release) || preg_match('/\A2\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\z/D', $release) !== 1) { + throw new RuntimeException('Workflow package metadata must declare one exact stable 2.x release.'); } return $release; diff --git a/tests/Unit/V2/PlatformConformanceSuiteTest.php b/tests/Unit/V2/PlatformConformanceSuiteTest.php index b73339a3..7ea57d71 100644 --- a/tests/Unit/V2/PlatformConformanceSuiteTest.php +++ b/tests/Unit/V2/PlatformConformanceSuiteTest.php @@ -1031,10 +1031,8 @@ public function testWorkflowSourceReleaseAndQualifiedSdkTupleRemainExplicit(): v $contracts = $suiteManifest['fixture_catalog']['signal_query_runtime_contract']['required_scenario_contracts']; $this->assertIsString($workflowSourceRelease); - $this->assertMatchesRegularExpression( - '/^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(?:alpha|beta|rc)\.(?:0|[1-9]\d*))?$/D', - $workflowSourceRelease, - ); + $this->assertMatchesRegularExpression('/^2\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/D', $workflowSourceRelease); + $this->assertSame($workflowSourceRelease, PlatformConformanceSuite::workflowSourceRelease()); foreach ($sdkCompatibility as $sdk) { $this->assertSame('2.0.0-rc.5', $sdk['release_line']);