Skip to content

Commit 94b3797

Browse files
minor #1068 Leverage COMPOSER_PREFER_DEV_OVER_PRERELEASE when possible (nicolas-grekas)
This PR was merged into the 2.x branch. Discussion ---------- Leverage COMPOSER_PREFER_DEV_OVER_PRERELEASE when possible This leverages composer/composer#12585 The code added in #1066 remains as a fallback. Commits ------- cc37c66 Leverage COMPOSER_PREFER_DEV_OVER_PRERELEASE when possible
2 parents 556ab3b + cc37c66 commit 94b3797

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

src/Flex.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
namespace Symfony\Flex;
1313

14+
use Composer\Command\BaseConfigCommand;
1415
use Composer\Command\GlobalCommand;
1516
use Composer\Composer;
1617
use Composer\Console\Application;
@@ -76,7 +77,7 @@ class Flex implements PluginInterface, EventSubscriberInterface
7677
private $operations = [];
7778
private $lock;
7879
private $displayThanksReminder = 0;
79-
private $ignoreUnstableReleases = false;
80+
private $ignorePreleases = false;
8081
private $reinstall;
8182
private static $activated = true;
8283
private static $aliasResolveCommands = [
@@ -182,7 +183,12 @@ class_exists(__NAMESPACE__.str_replace('/', '\\', substr($file, \strlen(__DIR__)
182183
}
183184
}
184185

185-
$this->ignoreUnstableReleases = $input->hasParameterOption('--prefer-lowest', true) && $input->hasParameterOption('--prefer-stable', true);
186+
if (class_exists(BaseConfigCommand::class)) {
187+
// composer 2.9+
188+
$_SERVER['COMPOSER_PREFER_DEV_OVER_PRERELEASE'] = '1';
189+
} else {
190+
$this->ignorePreleases = $input->hasParameterOption('--prefer-lowest', true) && $input->hasParameterOption('--prefer-stable', true);
191+
}
186192

187193
$addCommand = 'add'.(method_exists($app, 'addCommand') ? 'Command' : '');
188194
$app->$addCommand(new Command\RecipesCommand($this, $this->lock, $rfs));
@@ -195,8 +201,8 @@ class_exists(__NAMESPACE__.str_replace('/', '\\', substr($file, \strlen(__DIR__)
195201

196202
$symfonyRequire = preg_replace('/\.x$/', '.x-dev', getenv('SYMFONY_REQUIRE') ?: ($composer->getPackage()->getExtra()['symfony']['require'] ?? ''));
197203

198-
if ($symfonyRequire || $this->ignoreUnstableReleases) {
199-
$this->filter = new PackageFilter($io, $symfonyRequire, $this->downloader, $this->ignoreUnstableReleases);
204+
if ($symfonyRequire || $this->ignorePreleases) {
205+
$this->filter = new PackageFilter($io, $symfonyRequire, $this->downloader, $this->ignorePreleases);
200206
}
201207
}
202208

src/PackageFilter.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,16 @@ class PackageFilter
3030
private $symfonyConstraints;
3131
private $downloader;
3232
private $io;
33-
private $ignoreUnstableReleases;
33+
private $ignorePreleases;
3434

35-
public function __construct(IOInterface $io, string $symfonyRequire, Downloader $downloader, bool $ignoreUnstableReleases = false)
35+
public function __construct(IOInterface $io, string $symfonyRequire, Downloader $downloader, bool $ignorePreleases = false)
3636
{
3737
$this->versionParser = new VersionParser();
3838
$this->symfonyRequire = $symfonyRequire;
3939
$this->symfonyConstraints = '' !== $symfonyRequire ? $this->versionParser->parseConstraints($symfonyRequire) : null;
4040
$this->downloader = $downloader;
4141
$this->io = $io;
42-
$this->ignoreUnstableReleases = $ignoreUnstableReleases;
42+
$this->ignorePreleases = $ignorePreleases;
4343
}
4444

4545
/**
@@ -50,7 +50,7 @@ public function __construct(IOInterface $io, string $symfonyRequire, Downloader
5050
*/
5151
public function removeLegacyPackages(array $data, RootPackageInterface $rootPackage, array $lockedPackages): array
5252
{
53-
if ($this->ignoreUnstableReleases) {
53+
if ($this->ignorePreleases) {
5454
$filteredPackages = [];
5555
foreach ($data as $package) {
5656
if (\in_array($package->getStability(), ['stable', 'dev'], true)) {

tests/PackageFilterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public function provideRemoveLegacyPackages()
210210
]]];
211211
}
212212

213-
public function testIgnoreUnstableReleasesFiltersPreReleases()
213+
public function testIgnorePreleases()
214214
{
215215
$io = new NullIO();
216216
$downloader = $this->getMockBuilder(Downloader::class)->disableOriginalConstructor()->getMock();
@@ -229,7 +229,7 @@ public function testIgnoreUnstableReleasesFiltersPreReleases()
229229
$this->assertSame([$stablePkg, $devPkg], $result);
230230
}
231231

232-
public function testWithoutIgnoreUnstableReleasesKeepsAll()
232+
public function testWithoutIgnorePreleases()
233233
{
234234
$io = new NullIO();
235235
$downloader = $this->getMockBuilder(Downloader::class)->disableOriginalConstructor()->getMock();

0 commit comments

Comments
 (0)