From 1a2dde121f2be7669c6064424d2a1e62dd088669 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Wed, 21 May 2025 19:32:06 +0200 Subject: [PATCH] skip dev- in open-versions command --- .../OpenVersionsComposerProcessor.php | 13 +++++++++++-- .../Fixture/skip-dev.json | 5 +++++ .../OpenVersionsComposerProcessorTest.php | 19 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 tests/ComposerProcessor/OpenVersionsComposerProcessor/Fixture/skip-dev.json 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()); + } }