Skip to content

Commit

Permalink
Merge pull request #259 from lemberg/chore/251-drop-7.3
Browse files Browse the repository at this point in the history
Drop PHP7.3 and Composer 1 support
  • Loading branch information
T2L committed Jul 6, 2022
2 parents 0ece34d + 800aa03 commit 389be55
Show file tree
Hide file tree
Showing 14 changed files with 56 additions and 128 deletions.
5 changes: 2 additions & 3 deletions .github/workflows/Integrate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@ jobs:
fail-fast: false
matrix:
php-version:
- '7.3'
- '7.4'
- '8.0'
- '8.1'
composer-version:
- 1
- 2
include:
- php-version: '7.3'
- php-version: '7.4'
prefer-lowest: --prefer-lowest

steps:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This is Vagrant-based development environment for Drupal projects. This project

## Prerequisites

- PHP (7.3+ or 8.0) and Composer 1/2
- PHP (7.4+) and Composer 2
- Vagrant (2.2.6+)
- VirtualBox (5.2+)
- [mkcert](https://mkcert.dev) (optional)
Expand Down
8 changes: 4 additions & 4 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@
"license": "GPL-2.0-or-later",
"type": "composer-plugin",
"require": {
"php": ">=7.3",
"composer-plugin-api": "^1.1 || ^2.0",
"php": ">=7.4",
"composer-plugin-api": "^2.0",
"nette/finder": "^2.5.2",
"nette/robot-loader": "^3.4.1",
"symfony/filesystem": "^3.4.47 || ^4.4.27 || ^5.3.4 || ^6.0.9",
"symfony/yaml": "^3.4.41 || ^4.4.9 || ^5.3 || ^6.0.10",
"t2l/comments": "^1.1.0"
},
"require-dev": {
"composer/composer": "^1.10.23 || ^2.1.9",
"composer/composer": "^2.1.9",
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.1",
"dg/bypass-finals": "^1.3.1",
"drupal/coder": "^8.3.13",
Expand Down Expand Up @@ -55,7 +55,7 @@
"phpstan/extension-installer": true
},
"platform": {
"php": "7.3"
"php": "7.4"
},
"sort-packages": true
},
Expand Down
2 changes: 1 addition & 1 deletion default.vm-settings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ mysql_replication_user: []

# Role: t2l.php @ 1.5.0

# PHP version to install. Possible values: 5.6, 7.0 - 7.4, and 8.0
# PHP version to install. Possible values: 5.6, 7.0 - 7.4, and 8.0 - 8.1
php_version: '7.4'

# Configure PHP.
Expand Down
8 changes: 4 additions & 4 deletions phpstan.neon.dist
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ parameters:
paths:
- src
- tests
excludePaths:
- tests/Traits/ComposerPackageEventFactoryTrait.php
dynamicConstantNames:
- Composer\Plugin\PluginInterface::PLUGIN_API_VERSION
ergebnis:
classesAllowedToBeExtended:
- Lemberg\Draft\Environment\Config\Manager\AbstractConfigManager
Expand All @@ -24,3 +20,7 @@ parameters:
-
message: '#Method Lemberg\\Draft\\Environment\\Config\\Manager\\AbstractConfigManager::__construct\(\) has parameter \$classLoader with a nullable type declaration.#'
path: src/Config/Manager/AbstractConfigManager.php
-
# See https://github.com/phpstan/phpstan-phpunit/issues/57#issuecomment-575366033
message: '#Return type of call to method PHPUnit\\Framework\\TestCase::createMock\(\) contains unresolvable type.#'
path: tests/Unit/Composer/PluginTest.php
4 changes: 3 additions & 1 deletion src/Config/Install/Step/InitConfig.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ public function install(): void {

// Adjust path to the Draft Environment package if non-standard Composer
// vendor directory is being used.
$vendorDir = trim($this->composer->getConfig()->get('vendor-dir', ComposerConfig::RELATIVE_PATHS), DIRECTORY_SEPARATOR);
/** @var string $vendorDirRaw */
$vendorDirRaw = $this->composer->getConfig()->get('vendor-dir', ComposerConfig::RELATIVE_PATHS);
$vendorDir = trim($vendorDirRaw, DIRECTORY_SEPARATOR);
if ($vendorDir !== 'vendor') {
$vagrantfile = $fs->loadFile('Vagrantfile', $targetVmFilepath);
$fs->dumpFile($targetVmFilepath, str_replace('/vendor/', "/$vendorDir/", $vagrantfile));
Expand Down
1 change: 1 addition & 0 deletions src/Config/Manager/AbstractConfigManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ final protected function getLastAvailableUpdateWeight(): int {
* @link https://github.com/lemberg/draft-environment/issues/232
*/
private function autoloadDependencies(): void {
/** @var string $vendorDir */
$vendorDir = $this->composer->getConfig()->get('vendor-dir');

$shouldRegister = FALSE;
Expand Down
57 changes: 0 additions & 57 deletions tests/Traits/ComposerPackageEventFactoryTrait.php

This file was deleted.

48 changes: 11 additions & 37 deletions tests/Unit/AppTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
use Composer\DependencyResolver\Operation\InstallOperation;
use Composer\DependencyResolver\Operation\UninstallOperation;
use Composer\DependencyResolver\Operation\UpdateOperation;
use Composer\DependencyResolver\PolicyInterface;
use Composer\DependencyResolver\Pool;
use Composer\DependencyResolver\Request;
use Composer\Installer\PackageEvent;
use Composer\Installer\PackageEvents;
use Composer\IO\IOInterface;
use Composer\Package\Package;
Expand All @@ -21,7 +19,6 @@
use Lemberg\Draft\Environment\App;
use Lemberg\Draft\Environment\Config\Manager\InstallManagerInterface;
use Lemberg\Draft\Environment\Config\Manager\UpdateManagerInterface;
use Lemberg\Tests\Traits\Draft\Environment\ComposerPackageEventFactoryTrait;
use PHPUnit\Framework\TestCase;

/**
Expand All @@ -31,8 +28,6 @@
*/
final class AppTest extends TestCase {

use ComposerPackageEventFactoryTrait;

/**
* @var \Composer\Composer
*/
Expand All @@ -58,24 +53,6 @@ final class AppTest extends TestCase {
*/
private $configUpdateManager;

/**
*
* @var \Composer\DependencyResolver\PolicyInterface
*/
private $policy;

/**
*
* @var \Composer\DependencyResolver\Pool
*/
private $pool;

/**
*
* @var \Composer\DependencyResolver\Request
*/
private $request;

/**
*
* @var \Composer\Repository\CompositeRepository
Expand Down Expand Up @@ -108,9 +85,6 @@ protected function setUp(): void {
$this->io = $this->createMock(IOInterface::class);

// Mock required PackageEvent constructor arguments.
$this->policy = $this->createMock(PolicyInterface::class);
$this->pool = $this->createMock(Pool::class);
$this->request = new Request();
$this->installedRepo = $this->createMock(CompositeRepository::class);

$this->configInstallManager = $this->createMock(InstallManagerInterface::class);
Expand All @@ -127,7 +101,7 @@ public function testComposerPrePackageUninstallEventHandlerDoesNotRunWithOtherPa
// "lemberg/draft-environment" is being uninstalled.
$package = new Package('dummy', '1.0.0.0', '^1.0');
$operation = new UninstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::PRE_PACKAGE_UNINSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::PRE_PACKAGE_UNINSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);
$this->configInstallManager
->expects(self::never())
->method('uninstall');
Expand All @@ -142,7 +116,7 @@ public function testComposerPrePackageUninstallEventHandlerDoesNotRunWithOtherEv
// PackageEvents::PRE_PACKAGE_UNINSTALL event is dispatched.
$package = new Package('dummy', '1.0.0.0', '^1.0');
$operation = new InstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::PRE_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::PRE_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);
$this->configInstallManager
->expects(self::never())
->method('uninstall');
Expand All @@ -156,7 +130,7 @@ public function testComposerPrePackageUninstallEventHandlerDoesRun(): void {
// Clean up must run when "lemberg/draft-environment" is being uninstalled.
$package = new Package(App::PACKAGE_NAME, '1.0.0.0', '^1.0');
$operation = new UninstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::PRE_PACKAGE_UNINSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::PRE_PACKAGE_UNINSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);
$this->configInstallManager
->expects(self::once())
->method('uninstall');
Expand All @@ -171,7 +145,7 @@ public function testComposerPostPackageInstallEventHandlerDoesNotRunWithOtherPac
// "lemberg/draft-environment" is being uninstalled.
$package = new Package('dummy', '1.0.0.0', '^1.0');
$operation = new InstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::POST_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::POST_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);
$this->configInstallManager
->expects(self::never())
->method('install');
Expand All @@ -186,7 +160,7 @@ public function testComposerPostPackageInstallEventHandlerDoesNotRunWithOtherEve
// PackageEvents::PRE_PACKAGE_UNINSTALL event is dispatched.
$package = new Package(App::PACKAGE_NAME, '1.0.0.0', '^1.0');
$operation = new InstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::PRE_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::PRE_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);
$this->configInstallManager
->expects(self::never())
->method('install');
Expand All @@ -200,7 +174,7 @@ public function testComposerPostPackageInstallEventHandlerDoesRun(): void {
// Clean up must run when "lemberg/draft-environment" is being uninstalled.
$package = new Package(App::PACKAGE_NAME, '1.0.0.0', '^1.0');
$operation = new InstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::POST_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::POST_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);
$this->configInstallManager
->expects(self::once())
->method('install');
Expand All @@ -216,7 +190,7 @@ public function testComposerPostPackageUpdateEventHandlerDoesNotRunWithOtherPack
$initial = new Package('dummy', '1.0.0.0', '^1.0');
$target = new Package('dummy', '1.2.0.0', '^1.0');
$operation = new UpdateOperation($initial, $target);
$packageEvent = $this->createPackageEvent(PackageEvents::POST_PACKAGE_UPDATE, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$packageEvent = new PackageEvent(PackageEvents::POST_PACKAGE_UPDATE, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);

$this->configUpdateManager
->expects(self::never())
Expand All @@ -233,7 +207,7 @@ public function testComposerPostPackageUpdateEventHandlerDoesNotRunWithOtherEven
// PackageEvents::PRE_PACKAGE_UNINSTALL event is dispatched.
$initial = new Package(App::PACKAGE_NAME, '1.0.0.0', '^1.0');
$operation = new InstallOperation($initial);
$packageEvent = $this->createPackageEvent(PackageEvents::PRE_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$packageEvent = new PackageEvent(PackageEvents::PRE_PACKAGE_INSTALL, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);

$this->configUpdateManager
->expects(self::never())
Expand All @@ -252,7 +226,7 @@ public function testComposerPostPackageUpdateEventHandlerDoesNotRunWhenDowngradi
$target = new Package(App::PACKAGE_NAME, '1.2.0.0', '^1.0');
$target->setReleaseDate(new \DateTime('yesterday'));
$operation = new UpdateOperation($initial, $target);
$packageEvent = $this->createPackageEvent(PackageEvents::POST_PACKAGE_UPDATE, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$packageEvent = new PackageEvent(PackageEvents::POST_PACKAGE_UPDATE, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);

$this->configUpdateManager
->expects(self::never())
Expand All @@ -269,7 +243,7 @@ public function testComposerPostPackageUpdateEventHandlerDoesRun(): void {
$initial = new Package(App::PACKAGE_NAME, '1.0.0.0', '^1.0');
$target = new Package(App::PACKAGE_NAME, '1.2.0.0', '^1.0');
$operation = new UpdateOperation($initial, $target);
$packageEvent = $this->createPackageEvent(PackageEvents::POST_PACKAGE_UPDATE, $this->composer, $this->io, FALSE, $this->policy, $this->pool, $this->installedRepo, $this->request, [$operation], $operation);
$packageEvent = new PackageEvent(PackageEvents::POST_PACKAGE_UPDATE, $this->composer, $this->io, FALSE, $this->installedRepo, [$operation], $operation);

$this->configUpdateManager
->expects(self::once())
Expand Down
11 changes: 2 additions & 9 deletions tests/Unit/Composer/PluginTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,8 @@
use Composer\Composer;
use Composer\Config;
use Composer\DependencyResolver\Operation\UninstallOperation;
use Composer\DependencyResolver\PolicyInterface;
use Composer\DependencyResolver\Pool;
use Composer\DependencyResolver\Request;
use Composer\Installer\InstallationManager;
use Composer\Installer\PackageEvent;
use Composer\Installer\PackageEvents;
use Composer\IO\IOInterface;
use Composer\Package\Package;
Expand All @@ -20,7 +18,6 @@
use Composer\Script\ScriptEvents;
use Lemberg\Draft\Environment\App;
use Lemberg\Draft\Environment\Composer\Plugin;
use Lemberg\Tests\Traits\Draft\Environment\ComposerPackageEventFactoryTrait;
use phpmock\phpunit\PHPMock;
use PHPUnit\Framework\TestCase;

Expand All @@ -31,7 +28,6 @@
*/
final class PluginTest extends TestCase {

use ComposerPackageEventFactoryTrait;
use PHPMock;

/**
Expand Down Expand Up @@ -79,14 +75,11 @@ public function testComposerPlugin(): void {
self::assertSame($expected, Plugin::getSubscribedEvents());

// Ensure that event handlers do not produce any errors.
$policy = $this->createMock(PolicyInterface::class);
$pool = $this->createMock(Pool::class);
$request = new Request();
$installedRepo = $this->createMock(CompositeRepository::class);

$package = new Package('dummy', '1.0.0.0', '^1.0');
$operation = new UninstallOperation($package);
$event = $this->createPackageEvent(PackageEvents::PRE_PACKAGE_UNINSTALL, $this->composer, $this->io, FALSE, $policy, $pool, $installedRepo, $request, [$operation], $operation);
$event = new PackageEvent(PackageEvents::PRE_PACKAGE_UNINSTALL, $this->composer, $this->io, FALSE, $installedRepo, [$operation], $operation);

// Ensure that plugin passes events to the app.
$app = $this->createMock(App::class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
"prefer-stable": true,
"config": {
"platform": {
"php": "7.3.0"
"php": "7.4.0"
},
"allow-plugins": {
"lemberg/draft-environment": true
}
}
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@
"prefer-stable": true,
"config": {
"platform": {
"php": "7.3.0"
"php": "7.4.0"
},
"allow-plugins": {
"lemberg/draft-environment": true
}
}
}

0 comments on commit 389be55

Please sign in to comment.