Skip to content

Commit be45ecb

Browse files
committed
jump symfony packages one minor version at a time
1 parent 6bf16f0 commit be45ecb

File tree

3 files changed

+12
-8
lines changed

3 files changed

+12
-8
lines changed

src/Command/OpenVersionsCommand.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
102102
}
103103

104104
// convert composer version to next version
105-
$nextVersion = $this->nextVersionResolver->resolve($composerVersion);
105+
$nextVersion = $this->nextVersionResolver->resolve($outdatedPackage->getName(), $composerVersion);
106106
$openedVersion = $composerVersion . '|' . $nextVersion;
107107

108108
// replace using regex, to keep original composer.json format

src/Composer/NextVersionResolver.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public function __construct(
2222
) {
2323
}
2424

25-
public function resolve(string $composerVersion): string
25+
public function resolve(string $packageName, string $composerVersion): string
2626
{
2727
$constraint = $this->versionParser->parseConstraints($composerVersion);
2828

@@ -38,7 +38,8 @@ public function resolve(string $composerVersion): string
3838
);
3939
}
4040

41-
if (str_contains($composerVersion, '*')) {
41+
// special case for "symfony/*" packages as version jump is huge there
42+
if (str_contains($composerVersion, '*') || str_starts_with($packageName, 'symfony/')) {
4243
return $matchVersion[self::MAJOR] . '.' . $matchVersion[self::MINOR] . '.*';
4344
}
4445

tests/Composer/NextVersionResolver/NextVersionResolverTest.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ protected function setUp(): void
2020
}
2121

2222
#[DataProvider('provideData')]
23-
public function test(string $composerVersion, string $expectedVersion): void
23+
public function test(string $packageName, string $composerVersion, string $expectedVersion): void
2424
{
25-
$nextVersion = $this->nextVersionResolver->resolve($composerVersion);
25+
$nextVersion = $this->nextVersionResolver->resolve($packageName, $composerVersion);
2626
$this->assertSame($expectedVersion, $nextVersion);
2727
}
2828

@@ -31,8 +31,11 @@ public function test(string $composerVersion, string $expectedVersion): void
3131
*/
3232
public static function provideData(): iterable
3333
{
34-
yield ['^1.0', '^2.0'];
35-
yield ['2.2.*', '2.3.*'];
36-
yield ['4.*', '5.0.*'];
34+
yield ['some/package', '^1.0', '^2.0'];
35+
yield ['some/package', '2.2.*', '2.3.*'];
36+
yield ['some/package', '4.*', '5.0.*'];
37+
38+
// special cases
39+
yield ['symfony/console', '^3.4', '4.0.*'];
3740
}
3841
}

0 commit comments

Comments
 (0)