Skip to content

Commit 40d9d49

Browse files
committed
Merge branch '1.x' into 2.x
* 1.x: Fix problem of overwriting envs Fix parsing docker-composer files with no "version"
2 parents dd7dafe + 22c14c5 commit 40d9d49

6 files changed

+18
-14
lines changed

src/Configurator/BundlesConfigurator.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,11 @@ private function configureBundles(array $bundles): array
6969
unset($classes[$fwb]);
7070
}
7171
foreach ($classes as $class => $envs) {
72-
// if the class already existed, clear so we can update the envs
73-
if (isset($registered[$class])) {
74-
$registered[$class] = [];
75-
}
76-
foreach ($envs as $env) {
77-
$registered[$class][$env] = true;
72+
// do not override existing configured envs for a bundle
73+
if (!isset($registered[$class])) {
74+
foreach ($envs as $env) {
75+
$registered[$class][$env] = true;
76+
}
7877
}
7978
}
8079

src/Configurator/DockerComposeConfigurator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ private function configureDockerCompose(Recipe $recipe, array $config, bool $upd
259259
}
260260

261261
// Keep end in memory (check break line on previous line)
262-
$endAt[$node] = '' !== trim($lines[$i - 1]) ? $i : $i - 1;
262+
$endAt[$node] = !$i || '' !== trim($lines[$i - 1]) ? $i : $i - 1;
263263
$node = $matches[1];
264264
if (!isset($nodesLines[$node])) {
265265
$nodesLines[$node] = [];

tests/Configurator/BundlesConfiguratorTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,13 @@ public function testUpdate()
170170
EOF
171171
], $recipeUpdate->getOriginalFiles());
172172

173+
// FooBundle::class => ['dev' => true, 'test' => true]: configured envs should not be overwritten
173174
$this->assertSame(['config/bundles.php' => <<<EOF
174175
<?php
175176
176177
return [
177178
BarBundle::class => ['prod' => false, 'all' => true],
178-
FooBundle::class => ['all' => true],
179+
FooBundle::class => ['dev' => true, 'test' => true],
179180
BazBundle::class => ['all' => true],
180181
NewBundle::class => ['all' => true],
181182
];

tests/Configurator/DockerComposeConfiguratorTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
use Composer\Composer;
1515
use Composer\IO\IOInterface;
16-
use Composer\Package\Package;
16+
use Composer\Package\RootPackage;
1717
use PHPUnit\Framework\TestCase;
1818
use Symfony\Component\Filesystem\Filesystem;
1919
use Symfony\Flex\Configurator\DockerComposeConfigurator;
@@ -114,7 +114,7 @@ class DockerComposeConfiguratorTest extends TestCase
114114
/** @var DockerComposeConfigurator */
115115
private $configurator;
116116

117-
/** @var Package */
117+
/** @var RootPackage */
118118
private $package;
119119

120120
private $originalEnvComposer;
@@ -139,7 +139,7 @@ protected function setUp(): void
139139
$this->lock = $this->getMockBuilder(Lock::class)->disableOriginalConstructor()->getMock();
140140

141141
// Configurator
142-
$this->package = new Package('dummy/dummy', '1.0.0', '1.0.0');
142+
$this->package = new RootPackage('dummy/dummy', '1.0.0', '1.0.0');
143143
$this->package->setExtra(['symfony' => ['docker' => true]]);
144144

145145
$this->composer = $this->getMockBuilder(Composer::class)->getMock();

tests/Configurator/DockerfileConfiguratorTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
use Composer\Composer;
1515
use Composer\IO\IOInterface;
16-
use Composer\Package\Package;
16+
use Composer\Package\RootPackage;
1717
use PHPUnit\Framework\TestCase;
1818
use Symfony\Flex\Lock;
1919
use Symfony\Flex\Options;
@@ -278,7 +278,7 @@ public function testUpdate()
278278

279279
private function createConfigurator(): DockerfileConfigurator
280280
{
281-
$package = new Package('dummy/dummy', '1.0.0', '1.0.0');
281+
$package = new RootPackage('dummy/dummy', '1.0.0', '1.0.0');
282282
$package->setExtra(['symfony' => ['docker' => true]]);
283283

284284
$composer = $this->getMockBuilder(Composer::class)->getMock();

tests/FlexTest.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Composer\Package\Package;
2323
use Composer\Package\RootPackageInterface;
2424
use Composer\Plugin\PluginInterface;
25+
use Composer\Repository\LockArrayRepository;
2526
use Composer\Repository\RepositoryInterface;
2627
use Composer\Repository\RepositoryManager;
2728
use Composer\Repository\WritableRepositoryInterface;
@@ -275,7 +276,10 @@ public function testFetchRecipesWithConflicts()
275276
$downloader->expects($this->once())->method('removeRecipeFromIndex')->with('doctrine/doctrine-bundle', '2.4');
276277

277278
$locker = $this->getMockBuilder(Locker::class)->disableOriginalConstructor()->getMock();
278-
$lockedRepository = $this->getMockBuilder(RepositoryInterface::class)->disableOriginalConstructor()->getMock();
279+
$lockedRepository = $this->getMockBuilder(
280+
// LockArrayRepository does not exist on composer 1.0.2 fallback to RepositoryInterface
281+
class_exists(LockArrayRepository::class) ? LockArrayRepository::class : RepositoryInterface::class
282+
)->disableOriginalConstructor()->getMock();
279283
// make the conflicted package show up
280284
$locker->expects($this->any())
281285
->method('getLockedRepository')

0 commit comments

Comments
 (0)