diff --git a/src/ComposerProcessor/OpenVersionsComposerProcessor.php b/src/ComposerProcessor/OpenVersionsComposerProcessor.php index ba09441..ab7356e 100644 --- a/src/ComposerProcessor/OpenVersionsComposerProcessor.php +++ b/src/ComposerProcessor/OpenVersionsComposerProcessor.php @@ -34,8 +34,7 @@ public function process( foreach ($outdatedPackages as $outdatedPackage) { $composerVersion = $outdatedPackage->getComposerVersion(); - // already filled with open version - if (str_contains($composerVersion, '|')) { + if ($this->skipExistingVersion($composerVersion)) { continue; } @@ -64,4 +63,14 @@ public function process( return new ChangedPackageVersionsResult($composerJsonContents, $openedPackages); } + + private function skipExistingVersion(string $composerVersion): bool + { + // already filled with open version + if (str_contains($composerVersion, '|')) { + return true; + } + + return str_contains($composerVersion, 'dev-'); + } } diff --git a/tests/ComposerProcessor/OpenVersionsComposerProcessor/Fixture/skip-dev.json b/tests/ComposerProcessor/OpenVersionsComposerProcessor/Fixture/skip-dev.json new file mode 100644 index 0000000..5886836 --- /dev/null +++ b/tests/ComposerProcessor/OpenVersionsComposerProcessor/Fixture/skip-dev.json @@ -0,0 +1,5 @@ +{ + "require": { + "symfony/console": "dev-test" + } +} diff --git a/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php b/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php index 05cf381..0363d5e 100644 --- a/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php +++ b/tests/ComposerProcessor/OpenVersionsComposerProcessor/OpenVersionsComposerProcessorTest.php @@ -49,4 +49,23 @@ public function test(): void $changedPackageVersionsResult->getComposerJsonContents() ); } + + public function testSkipDev(): void + { + $composerJsonContents = FileSystem::read(__DIR__ . '/Fixture/skip-dev.json'); + + $outdatedComposer = new OutdatedComposer([ + new OutdatedPackage('symfony/console', '5.4.0', 'dev-main', true, '6.4.0', '1 year'), + ]); + + $changedPackageVersionsResult = $this->openVersionsComposerProcessor->process( + $composerJsonContents, + $outdatedComposer, + 10, + false, + null + ); + + $this->assertEmpty($changedPackageVersionsResult->getChangedPackageVersions()); + } }