Merge pull request #6419 from marc1706/ticket/17048-master

[ticket/17048] Update composer dependencies -- master version
This commit is contained in:
Marc Alexander 2022-10-20 17:17:54 +02:00
commit e2e8a7f30b
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
3 changed files with 483 additions and 378 deletions

815
phpBB/composer.lock generated

File diff suppressed because it is too large Load diff

View file

@ -20,8 +20,10 @@ use Composer\Filter\PlatformRequirementFilter\PlatformRequirementFilterFactory;
use Composer\IO\IOInterface; use Composer\IO\IOInterface;
use Composer\IO\NullIO; use Composer\IO\NullIO;
use Composer\Json\JsonFile; use Composer\Json\JsonFile;
use Composer\Json\JsonValidationException;
use Composer\Package\BasePackage; use Composer\Package\BasePackage;
use Composer\Package\CompletePackage; use Composer\Package\CompletePackage;
use Composer\PartialComposer;
use Composer\Repository\ComposerRepository; use Composer\Repository\ComposerRepository;
use Composer\Semver\Constraint\ConstraintInterface; use Composer\Semver\Constraint\ConstraintInterface;
use Composer\Util\HttpDownloader; use Composer\Util\HttpDownloader;
@ -160,7 +162,8 @@ class installer
$this->generate_ext_json_file($packages); $this->generate_ext_json_file($packages);
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false); $composer = $this->get_composer($this->get_composer_ext_json_filename());
$install = \Composer\Installer::create($io, $composer); $install = \Composer\Installer::create($io, $composer);
$composer->getInstallationManager()->setOutputProgress(false); $composer->getInstallationManager()->setOutputProgress(false);
@ -217,6 +220,32 @@ class installer
}); });
} }
/**
* Create instance of composer for supplied config file
*
* @param string|null $config_file Path to config file relative to phpBB root dir or null
*
* @return Composer|PartialComposer
* @throws JsonValidationException
*/
protected function get_composer(?string $config_file): PartialComposer
{
static $composer_factory;
if (!$composer_factory)
{
$composer_factory = new Factory();
}
$io = new NullIO();
return $composer_factory->createComposer(
$io,
$config_file,
false,
filesystem_helper::realpath('')
);
}
/** /**
* Returns the list of currently installed packages * Returns the list of currently installed packages
* *
@ -232,8 +261,7 @@ class installer
try try
{ {
$io = new NullIO(); $composer = $this->get_composer($this->get_composer_ext_json_filename());
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false);
$installed = []; $installed = [];
@ -291,7 +319,7 @@ class installer
$this->generate_ext_json_file($this->do_get_installed_packages(explode(',', self::PHPBB_TYPES))); $this->generate_ext_json_file($this->do_get_installed_packages(explode(',', self::PHPBB_TYPES)));
$io = new NullIO(); $io = new NullIO();
$composer = Factory::create($io, $this->get_composer_ext_json_filename(), false); $composer = $this->get_composer($this->get_composer_ext_json_filename());
/** @var ConstraintInterface $core_constraint */ /** @var ConstraintInterface $core_constraint */
$core_constraint = $composer->getPackage()->getRequires()['phpbb/phpbb']->getConstraint(); $core_constraint = $composer->getPackage()->getRequires()['phpbb/phpbb']->getConstraint();
@ -478,7 +506,7 @@ class installer
{ {
$io = new NullIO(); $io = new NullIO();
$composer = Factory::create($io, null, false); $composer = $this->get_composer(null);
$core_packages = $this->get_core_packages($composer); $core_packages = $this->get_core_packages($composer);

View file

@ -312,13 +312,13 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case
$crawler = self::$client->click($scrollpage_install_link); $crawler = self::$client->click($scrollpage_install_link);
$this->assertContainsLang('EXTENSIONS_INSTALLED', $crawler->filter('.successbox > p')->text()); $this->assertContainsLang('EXTENSIONS_INSTALLED', $crawler->filter('.successbox > p')->text());
// Assert there's console log output // Assert there's console log output
$this->assertStringContainsString('Installing vse/scrollpage', $crawler->filter('.console-output > pre')->text()); $this->assertStringContainsString('Locking vse/scrollpage', $crawler->filter('.console-output > pre')->text());
// Attempt to install vse/scrolltotop extension // Attempt to install vse/scrolltotop extension
$crawler = self::$client->click($scrolltotop_install_link); $crawler = self::$client->click($scrolltotop_install_link);
$this->assertContainsLang('EXTENSIONS_INSTALLED', $crawler->filter('.successbox > p')->text()); $this->assertContainsLang('EXTENSIONS_INSTALLED', $crawler->filter('.successbox > p')->text());
// Assert there's console log output // Assert there's console log output
$this->assertStringContainsString('Installing vse/scrolltotop', $crawler->filter('.console-output > pre')->text()); $this->assertStringContainsString('Locking vse/scrolltotop', $crawler->filter('.console-output > pre')->text());
// Ensure installed extension appears in available extensions list // Ensure installed extension appears in available extensions list
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid);
@ -383,13 +383,13 @@ class phpbb_functional_extension_acp_test extends phpbb_functional_test_case
$crawler = self::$client->click($scrollpage_remove_link); $crawler = self::$client->click($scrollpage_remove_link);
$this->assertContainsLang('EXTENSIONS_REMOVED', $crawler->filter('.successbox > p')->text()); $this->assertContainsLang('EXTENSIONS_REMOVED', $crawler->filter('.successbox > p')->text());
// Assert there's console log output // Assert there's console log output
$this->assertStringContainsString('Deleting ext/vse/scrollpage', $crawler->filter('.console-output > pre')->text()); $this->assertStringContainsString('Removing vse/scrollpage', $crawler->filter('.console-output > pre')->text());
// Remove 'Scroll To Top' disabled extension // Remove 'Scroll To Top' disabled extension
$crawler = self::$client->click($scrolltotop_remove_link); $crawler = self::$client->click($scrolltotop_remove_link);
$this->assertContainsLang('EXTENSIONS_REMOVED', $crawler->filter('.successbox > p')->text()); $this->assertContainsLang('EXTENSIONS_REMOVED', $crawler->filter('.successbox > p')->text());
// Assert there's console log output // Assert there's console log output
$this->assertStringContainsString('Deleting ext/vse/scrolltotop', $crawler->filter('.console-output > pre')->text()); $this->assertStringContainsString('Removing vse/scrolltotop', $crawler->filter('.console-output > pre')->text());
// Ensure removed extensions do not appear in available extensions list // Ensure removed extensions do not appear in available extensions list
$crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid); $crawler = self::request('GET', 'adm/index.php?i=acp_extensions&mode=main&sid=' . $this->sid);