Skip to content
Snippets Groups Projects
Commit 03831e0e authored by Adam G-H's avatar Adam G-H
Browse files

Issue #3238846 by phenaproxima: Update Composer Stager to 0.2.3

parent a15542ca
No related branches found
No related tags found
1 merge request!51Issue #3238846: Update Composer Stager to 0.2.2
......@@ -12,7 +12,7 @@
},
"require": {
"ext-json": "*",
"php-tuf/composer-stager": "0.2.1",
"php-tuf/composer-stager": "0.2.3",
"composer/composer": "^2"
},
"config": {
......
......@@ -31,7 +31,8 @@ build:
# Add our words to the dictionary
- sed -i "s/abiword/updater's/" core/misc/cspell/dictionary.txt
- sed -i "s/absolutezero/stager's/" core/misc/cspell/dictionary.txt
- sed -i "s/adamson/STACKLIMIT/" core/misc/cspell/dictionary.txt
- sed -i "s/bangpow/syncer/" core/misc/cspell/dictionary.txt
- sed -i "s/bakeware/syncers/" core/misc/cspell/dictionary.txt
# After all of the shenanigans above, we're finally ready to run core's `commit-code-check.sh`! :)
- "modules/contrib/automatic_updates/commit-code-check.sh --drupalci"
# Restore the original permissions.
......
file_syncer: php
......@@ -2,6 +2,6 @@ package_manager.settings:
type: config_object
label: 'Package Manager settings'
mapping:
file_copier:
file_syncer:
type: string
label: 'Which file copier to use, or NULL to auto-detect'
label: 'Which file syncer to use, or NULL to auto-detect'
......@@ -34,34 +34,34 @@ services:
- '@package_manager.executable_finder'
- '@package_manager.process_factory'
# File copiers.
package_manager.file_copier.rsync:
class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\RsyncFileCopier
# File syncers.
package_manager.file_syncer.rsync:
class: PhpTuf\ComposerStager\Infrastructure\FileSyncer\RsyncFileSyncer
arguments:
- '@package_manager.file_system'
- '@package_manager.rsync_runner'
package_manager.file_copier.php:
class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\PhpFileCopier
package_manager.file_syncer.php:
class: PhpTuf\ComposerStager\Infrastructure\FileSyncer\PhpFileSyncer
arguments:
- '@package_manager.file_system'
- '@package_manager.symfony_finder'
- '@package_manager.symfony_finder'
package_manager.file_copier.factory:
class: Drupal\package_manager\FileCopierFactory
package_manager.file_syncer.factory:
class: Drupal\package_manager\FileSyncerFactory
arguments:
- '@package_manager.symfony_executable_finder'
- '@package_manager.file_copier.php'
- '@package_manager.file_copier.rsync'
- '@package_manager.file_syncer.php'
- '@package_manager.file_syncer.rsync'
- '@config.factory'
package_manager.file_copier:
class: PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierInterface
factory: ['@package_manager.file_copier.factory', 'create']
package_manager.file_syncer:
class: PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerInterface
factory: ['@package_manager.file_syncer.factory', 'create']
# Domain services.
package_manager.beginner:
class: PhpTuf\ComposerStager\Domain\Beginner
arguments:
- '@package_manager.file_copier'
- '@package_manager.file_syncer'
- '@package_manager.file_system'
package_manager.stager:
class: PhpTuf\ComposerStager\Domain\Stager
......@@ -71,7 +71,7 @@ services:
package_manager.committer:
class: PhpTuf\ComposerStager\Domain\Committer
arguments:
- '@package_manager.file_copier'
- '@package_manager.file_syncer'
- '@package_manager.file_system'
package_manager.cleaner:
class: PhpTuf\ComposerStager\Domain\Cleaner
......
......@@ -3,38 +3,36 @@
namespace Drupal\package_manager;
use Drupal\Core\Config\ConfigFactoryInterface;
use PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierFactory as StagerFileCopierFactory;
use PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierFactoryInterface;
use PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierInterface;
use PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\PhpFileCopierInterface;
use PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\RsyncFileCopierInterface;
use PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerFactoryInterface;
use PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerFactory as StagerFileSyncerFactory;
use PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerInterface;
use Symfony\Component\Process\ExecutableFinder;
/**
* A file copier factory which returns file copiers according to configuration.
* A file syncer factory which returns file syncers according to configuration.
*/
class FileCopierFactory implements FileCopierFactoryInterface {
class FileSyncerFactory implements FileSyncerFactoryInterface {
/**
* The decorated file copier factory.
* The decorated file syncer factory.
*
* @var \PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\FileCopierFactoryInterface
* @var \PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerFactoryInterface
*/
protected $decorated;
/**
* The PHP file copier service.
* The PHP file syncer service.
*
* @var \PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\PhpFileCopierInterface
* @var \PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerInterface
*/
protected $phpFileCopier;
protected $phpFileSyncer;
/**
* The rsync file copier service.
* The rsync file syncer service.
*
* @var \PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\RsyncFileCopierInterface
* @var \PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerInterface
*/
protected $rsyncFileCopier;
protected $rsyncFileSyncer;
/**
* The config factory service.
......@@ -48,33 +46,33 @@ class FileCopierFactory implements FileCopierFactoryInterface {
*
* @param \Symfony\Component\Process\ExecutableFinder $executable_finder
* The Symfony executable finder.
* @param \PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\PhpFileCopierInterface $php_file_copier
* The PHP file copier service.
* @param \PhpTuf\ComposerStager\Infrastructure\Process\FileCopier\RsyncFileCopierInterface $rsync_file_copier
* The rsync file copier service.
* @param \PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerInterface $php_file_syncer
* The PHP file syncer service.
* @param \PhpTuf\ComposerStager\Infrastructure\FileSyncer\FileSyncerInterface $rsync_file_syncer
* The rsync file syncer service.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory service.
*/
public function __construct(ExecutableFinder $executable_finder, PhpFileCopierInterface $php_file_copier, RsyncFileCopierInterface $rsync_file_copier, ConfigFactoryInterface $config_factory) {
$this->decorated = new StagerFileCopierFactory($executable_finder, $php_file_copier, $rsync_file_copier);
$this->phpFileCopier = $php_file_copier;
$this->rsyncFileCopier = $rsync_file_copier;
public function __construct(ExecutableFinder $executable_finder, FileSyncerInterface $php_file_syncer, FileSyncerInterface $rsync_file_syncer, ConfigFactoryInterface $config_factory) {
$this->decorated = new StagerFileSyncerFactory($executable_finder, $php_file_syncer, $rsync_file_syncer);
$this->phpFileSyncer = $php_file_syncer;
$this->rsyncFileSyncer = $rsync_file_syncer;
$this->configFactory = $config_factory;
}
/**
* {@inheritdoc}
*/
public function create(): FileCopierInterface {
$copier = $this->configFactory->get('package_manager.settings')
->get('file_copier');
public function create(): FileSyncerInterface {
$syncer = $this->configFactory->get('package_manager.settings')
->get('file_syncer');
switch ($copier) {
switch ($syncer) {
case 'rsync':
return $this->rsyncFileCopier;
return $this->rsyncFileSyncer;
case 'php':
return $this->phpFileCopier;
return $this->phpFileSyncer;
default:
return $this->decorated->create();
......
......@@ -5,11 +5,11 @@ namespace Drupal\Tests\package_manager\Kernel;
use Drupal\KernelTests\KernelTestBase;
/**
* @covers \Drupal\package_manager\FileCopierFactory
* @covers \Drupal\package_manager\FileSyncerFactory
*
* @group package_manager
*/
class FileCopierFactoryTest extends KernelTestBase {
class FileSyncerFactoryTest extends KernelTestBase {
/**
* {@inheritdoc}
......@@ -31,36 +31,36 @@ class FileCopierFactoryTest extends KernelTestBase {
}
/**
* Tests creating a file copier using our specialized factory class.
* Tests creating a file syncer using our specialized factory class.
*
* @param string|null $configured_copier
* The copier to use, as configured in automatic_updates.settings. Can be
* @param string|null $configured_syncer
* The syncer to use, as configured in automatic_updates.settings. Can be
* 'rsync', 'php', or NULL.
*
* @dataProvider providerFactory
*/
public function testFactory(?string $configured_copier): void {
$factory = $this->container->get('package_manager.file_copier.factory');
public function testFactory(?string $configured_syncer): void {
$factory = $this->container->get('package_manager.file_syncer.factory');
switch ($configured_copier) {
switch ($configured_syncer) {
case 'rsync':
$expected_copier = $this->container->get('package_manager.file_copier.rsync');
$expected_syncer = $this->container->get('package_manager.file_syncer.rsync');
break;
case 'php':
$expected_copier = $this->container->get('package_manager.file_copier.php');
$expected_syncer = $this->container->get('package_manager.file_syncer.php');
break;
default:
$expected_copier = $factory->create();
$expected_syncer = $factory->create();
break;
}
$this->config('package_manager.settings')
->set('file_copier', $configured_copier)
->set('file_syncer', $configured_syncer)
->save();
$this->assertSame($expected_copier, $factory->create());
$this->assertSame($expected_syncer, $factory->create());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment