diff --git a/src/SelfManage/Update/ReleaseIsNewer.php b/src/SelfManage/Update/ReleaseIsNewer.php index bc76692f..6c1b9b20 100644 --- a/src/SelfManage/Update/ReleaseIsNewer.php +++ b/src/SelfManage/Update/ReleaseIsNewer.php @@ -32,7 +32,7 @@ public static function forChannel( string $currentPieVersion, ReleaseMetadata $newRelease, ): bool { - if (preg_match('#([0-9]+\.[0-9]+\.[0-9]+)@([a-f0-9]{7})#', $currentPieVersion, $matches)) { + if (preg_match('#(.*)@([a-f0-9]{7})$#', $currentPieVersion, $matches)) { $currentPieVersion = 'dev-main#' . $matches[2]; } diff --git a/test/unit/SelfManage/Update/ReleaseIsNewerTest.php b/test/unit/SelfManage/Update/ReleaseIsNewerTest.php index 063f5a86..ca44fea8 100644 --- a/test/unit/SelfManage/Update/ReleaseIsNewerTest.php +++ b/test/unit/SelfManage/Update/ReleaseIsNewerTest.php @@ -34,6 +34,9 @@ public function provider(): array 'stable-nightly2-to-nightly' => [Channel::Stable, '1.2.1@86e1b52', 'dev-main', false], 'stable-nightly2-to-stable' => [Channel::Stable, '1.2.1@86e1b52', '1.0.0', true], 'stable-nightly2-to-preview' => [Channel::Stable, '1.2.1@86e1b52', '1.0.1-rc1', false], + 'stable-nightly3-to-nightly' => [Channel::Stable, '1.2.1-alpha.2@86e1b52', 'dev-main', false], + 'stable-nightly3-to-stable' => [Channel::Stable, '1.2.1-alpha.2@86e1b52', '1.0.0', true], + 'stable-nightly3-to-preview' => [Channel::Stable, '1.2.1-alpha.2@86e1b52', '1.0.1-rc1', false], 'preview-oldstable-to-newstable' => [Channel::Preview, '1.0.0', '1.0.1', true], 'preview-newstable-to-oldstable' => [Channel::Preview, '1.0.1', '1.0.0', false], @@ -51,6 +54,9 @@ public function provider(): array 'preview-nightly2-to-nightly' => [Channel::Preview, '1.2.1@86e1b52', 'dev-main', false], 'preview-nightly2-to-stable' => [Channel::Preview, '1.2.1@86e1b52', '1.0.0', true], 'preview-nightly2-to-preview' => [Channel::Preview, '1.2.1@86e1b52', '1.0.1-rc1', true], + 'preview-nightly3-to-nightly' => [Channel::Preview, '1.2.1-alpha.2@86e1b52', 'dev-main', false], + 'preview-nightly3-to-stable' => [Channel::Preview, '1.2.1-alpha.2@86e1b52', '1.0.0', true], + 'preview-nightly3-to-preview' => [Channel::Preview, '1.2.1-alpha.2@86e1b52', '1.0.1-rc1', true], 'nightly-oldstable-to-newstable' => [Channel::Nightly, '1.0.0', '1.0.1', true], 'nightly-newstable-to-oldstable' => [Channel::Nightly, '1.0.1', '1.0.0', false], @@ -68,6 +74,9 @@ public function provider(): array 'nightly-nightly2-to-nightly' => [Channel::Nightly, '1.2.1@86e1b52', 'dev-main', true], 'nightly-nightly2-to-stable' => [Channel::Nightly, '1.2.1@86e1b52', '1.0.0', false], 'nightly-nightly2-to-preview' => [Channel::Nightly, '1.2.1@86e1b52', '1.0.1-rc1', false], + 'nightly-nightly3-to-nightly' => [Channel::Nightly, '1.2.1-alpha.2@86e1b52', 'dev-main', true], + 'nightly-nightly3-to-stable' => [Channel::Nightly, '1.2.1-alpha.2@86e1b52', '1.0.0', false], + 'nightly-nightly3-to-preview' => [Channel::Nightly, '1.2.1-alpha.2@86e1b52', '1.0.1-rc1', false], ]; }