Add seld/signal-handler dependency
parent
26e01abfae
commit
1a4f2174e4
|
@ -40,7 +40,8 @@
|
||||||
"react/promise": "^2.8",
|
"react/promise": "^2.8",
|
||||||
"composer/pcre": "^2 || ^3",
|
"composer/pcre": "^2 || ^3",
|
||||||
"symfony/polyfill-php73": "^1.24",
|
"symfony/polyfill-php73": "^1.24",
|
||||||
"symfony/polyfill-php80": "^1.24"
|
"symfony/polyfill-php80": "^1.24",
|
||||||
|
"seld/signal-handler": "^2.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"symfony/phpunit-bridge": "^6.0",
|
"symfony/phpunit-bridge": "^6.0",
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "0d8cb08c58ec6422f5894ce04cff0d41",
|
"content-hash": "9ee8eb32dddfba816d9eb589ade6f4e4",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "composer/ca-bundle",
|
"name": "composer/ca-bundle",
|
||||||
|
@ -878,6 +878,67 @@
|
||||||
},
|
},
|
||||||
"time": "2021-12-10T11:20:11+00:00"
|
"time": "2021-12-10T11:20:11+00:00"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "seld/signal-handler",
|
||||||
|
"version": "2.0.1",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Seldaek/signal-handler.git",
|
||||||
|
"reference": "f69d119511dc0360440cdbdaa71829c149b7be75"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Seldaek/signal-handler/zipball/f69d119511dc0360440cdbdaa71829c149b7be75",
|
||||||
|
"reference": "f69d119511dc0360440cdbdaa71829c149b7be75",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"php": ">=7.2.0"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpstan/phpstan": "^1",
|
||||||
|
"phpstan/phpstan-deprecation-rules": "^1.0",
|
||||||
|
"phpstan/phpstan-phpunit": "^1",
|
||||||
|
"phpstan/phpstan-strict-rules": "^1.3",
|
||||||
|
"phpunit/phpunit": "^7.5.20 || ^8.5.23",
|
||||||
|
"psr/log": "^1 || ^2 || ^3"
|
||||||
|
},
|
||||||
|
"type": "library",
|
||||||
|
"extra": {
|
||||||
|
"branch-alias": {
|
||||||
|
"dev-main": "2.x-dev"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-4": {
|
||||||
|
"Seld\\Signal\\": "src/"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Jordi Boggiano",
|
||||||
|
"email": "j.boggiano@seld.be",
|
||||||
|
"homepage": "http://seld.be"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Simple unix signal handler that silently fails where signals are not supported for easy cross-platform development",
|
||||||
|
"keywords": [
|
||||||
|
"posix",
|
||||||
|
"sigint",
|
||||||
|
"signal",
|
||||||
|
"sigterm",
|
||||||
|
"unix"
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/Seldaek/signal-handler/issues",
|
||||||
|
"source": "https://github.com/Seldaek/signal-handler/tree/2.0.1"
|
||||||
|
},
|
||||||
|
"time": "2022-07-20T18:31:45+00:00"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "symfony/console",
|
"name": "symfony/console",
|
||||||
"version": "v5.4.10",
|
"version": "v5.4.10",
|
||||||
|
|
|
@ -35,6 +35,7 @@ use Composer\Repository\RepositorySet;
|
||||||
use Composer\Script\ScriptEvents;
|
use Composer\Script\ScriptEvents;
|
||||||
use Composer\Util\Silencer;
|
use Composer\Util\Silencer;
|
||||||
use Composer\Console\Input\InputArgument;
|
use Composer\Console\Input\InputArgument;
|
||||||
|
use Seld\Signal\SignalHandler;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Composer\Console\Input\InputOption;
|
use Composer\Console\Input\InputOption;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
|
@ -452,29 +453,16 @@ EOT
|
||||||
throw new \InvalidArgumentException($errorMessage .'.');
|
throw new \InvalidArgumentException($errorMessage .'.');
|
||||||
}
|
}
|
||||||
|
|
||||||
// handler Ctrl+C for unix-like systems
|
// handler Ctrl+C aborts gracefully
|
||||||
if (function_exists('pcntl_async_signals') && function_exists('pcntl_signal')) {
|
|
||||||
@mkdir($directory, 0777, true);
|
@mkdir($directory, 0777, true);
|
||||||
if ($realDir = realpath($directory)) {
|
if (false !== ($realDir = realpath($directory))) {
|
||||||
pcntl_async_signals(true);
|
$signalHandler = SignalHandler::create([SignalHandler::SIGINT, SignalHandler::SIGTERM, SignalHandler::SIGHUP], function (string $signal, SignalHandler $handler) use ($realDir) {
|
||||||
pcntl_signal(SIGINT, static function () use ($realDir): void {
|
$this->getIO()->writeError('Received '.$signal.', aborting', true, IOInterface::DEBUG);
|
||||||
$fs = new Filesystem();
|
$fs = new Filesystem();
|
||||||
$fs->removeDirectory($realDir);
|
$fs->removeDirectory($realDir);
|
||||||
exit(130);
|
$handler->exitWithLastSignal();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// handler Ctrl+C for Windows on PHP 7.4+
|
|
||||||
if (function_exists('sapi_windows_set_ctrl_handler') && PHP_SAPI === 'cli') {
|
|
||||||
@mkdir($directory, 0777, true);
|
|
||||||
if ($realDir = realpath($directory)) {
|
|
||||||
sapi_windows_set_ctrl_handler(static function () use ($realDir): void {
|
|
||||||
$fs = new Filesystem();
|
|
||||||
$fs->removeDirectory($realDir);
|
|
||||||
exit(130);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// avoid displaying 9999999-dev as version if default-branch was selected
|
// avoid displaying 9999999-dev as version if default-branch was selected
|
||||||
if ($package instanceof AliasPackage && $package->getPrettyVersion() === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
if ($package instanceof AliasPackage && $package->getPrettyVersion() === VersionParser::DEFAULT_BRANCH_ALIAS) {
|
||||||
|
@ -512,6 +500,11 @@ EOT
|
||||||
|
|
||||||
Platform::putEnv('COMPOSER_ROOT_VERSION', $package->getPrettyVersion());
|
Platform::putEnv('COMPOSER_ROOT_VERSION', $package->getPrettyVersion());
|
||||||
|
|
||||||
|
// once the root project is fully initialized, we do not need to wipe everything on user abort anymore even if it happens during deps install
|
||||||
|
if (isset($signalHandler)) {
|
||||||
|
$signalHandler->unregister();
|
||||||
|
}
|
||||||
|
|
||||||
return $installedFromVcs;
|
return $installedFromVcs;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ namespace Composer\Command;
|
||||||
|
|
||||||
use Composer\DependencyResolver\Request;
|
use Composer\DependencyResolver\Request;
|
||||||
use Composer\Util\Filesystem;
|
use Composer\Util\Filesystem;
|
||||||
|
use Seld\Signal\SignalHandler;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Composer\Console\Input\InputArgument;
|
use Composer\Console\Input\InputArgument;
|
||||||
use Composer\Console\Input\InputOption;
|
use Composer\Console\Input\InputOption;
|
||||||
|
@ -148,12 +149,11 @@ EOT
|
||||||
$this->composerBackup = file_get_contents($this->json->getPath());
|
$this->composerBackup = file_get_contents($this->json->getPath());
|
||||||
$this->lockBackup = file_exists($this->lock) ? file_get_contents($this->lock) : null;
|
$this->lockBackup = file_exists($this->lock) ? file_get_contents($this->lock) : null;
|
||||||
|
|
||||||
if (function_exists('pcntl_async_signals') && function_exists('pcntl_signal')) {
|
$signalHandler = SignalHandler::create([SignalHandler::SIGINT, SignalHandler::SIGTERM, SignalHandler::SIGHUP], function (string $signal, SignalHandler $handler) {
|
||||||
pcntl_async_signals(true);
|
$this->getIO()->writeError('Received '.$signal.', aborting', true, IOInterface::DEBUG);
|
||||||
pcntl_signal(SIGINT, function () { $this->revertComposerFile(); });
|
$this->revertComposerFile();
|
||||||
pcntl_signal(SIGTERM, function () { $this->revertComposerFile(); });
|
$handler->exitWithLastSignal();
|
||||||
pcntl_signal(SIGHUP, function () { $this->revertComposerFile(); });
|
});
|
||||||
}
|
|
||||||
|
|
||||||
// check for writability by writing to the file as is_writable can not be trusted on network-mounts
|
// check for writability by writing to the file as is_writable can not be trusted on network-mounts
|
||||||
// see https://github.com/composer/composer/issues/8231 and https://bugs.php.net/bug.php?id=68926
|
// see https://github.com/composer/composer/issues/8231 and https://bugs.php.net/bug.php?id=68926
|
||||||
|
@ -210,7 +210,7 @@ EOT
|
||||||
);
|
);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
if ($this->newlyCreated) {
|
if ($this->newlyCreated) {
|
||||||
$this->revertComposerFile(false);
|
$this->revertComposerFile();
|
||||||
|
|
||||||
throw new \RuntimeException('No composer.json present in the current directory ('.$this->file.'), this may be the cause of the following exception.', 0, $e);
|
throw new \RuntimeException('No composer.json present in the current directory ('.$this->file.'), this may be the cause of the following exception.', 0, $e);
|
||||||
}
|
}
|
||||||
|
@ -293,9 +293,11 @@ EOT
|
||||||
return $this->doUpdate($input, $output, $io, $requirements, $requireKey, $removeKey);
|
return $this->doUpdate($input, $output, $io, $requirements, $requireKey, $removeKey);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
if (!$this->dependencyResolutionCompleted) {
|
if (!$this->dependencyResolutionCompleted) {
|
||||||
$this->revertComposerFile(false);
|
$this->revertComposerFile();
|
||||||
}
|
}
|
||||||
throw $e;
|
throw $e;
|
||||||
|
} finally {
|
||||||
|
$signalHandler->unregister();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -439,7 +441,7 @@ EOT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->revertComposerFile(false);
|
$this->revertComposerFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
return $status;
|
return $status;
|
||||||
|
@ -479,11 +481,7 @@ EOT
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
private function revertComposerFile(): void
|
||||||
* @param bool $hardExit
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function revertComposerFile(bool $hardExit = true): void
|
|
||||||
{
|
{
|
||||||
$io = $this->getIO();
|
$io = $this->getIO();
|
||||||
|
|
||||||
|
@ -504,9 +502,5 @@ EOT
|
||||||
file_put_contents($this->lock, $this->lockBackup);
|
file_put_contents($this->lock, $this->lockBackup);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($hardExit) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -94,13 +94,6 @@ class Application extends BaseApplication
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$shutdownRegistered) {
|
if (!$shutdownRegistered) {
|
||||||
if (function_exists('pcntl_async_signals') && function_exists('pcntl_signal')) {
|
|
||||||
pcntl_async_signals(true);
|
|
||||||
pcntl_signal(SIGINT, static function ($sig): void {
|
|
||||||
exit(130);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$shutdownRegistered = true;
|
$shutdownRegistered = true;
|
||||||
|
|
||||||
register_shutdown_function(static function (): void {
|
register_shutdown_function(static function (): void {
|
||||||
|
|
|
@ -28,6 +28,7 @@ use Composer\EventDispatcher\EventDispatcher;
|
||||||
use Composer\Util\Loop;
|
use Composer\Util\Loop;
|
||||||
use Composer\Util\Platform;
|
use Composer\Util\Platform;
|
||||||
use React\Promise\PromiseInterface;
|
use React\Promise\PromiseInterface;
|
||||||
|
use Seld\Signal\SignalHandler;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Package operation manager.
|
* Package operation manager.
|
||||||
|
@ -222,36 +223,11 @@ class InstallationManager
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
$handleInterruptsUnix = function_exists('pcntl_async_signals') && function_exists('pcntl_signal');
|
$signalHandler = SignalHandler::create([SignalHandler::SIGINT, SignalHandler::SIGTERM, SignalHandler::SIGHUP], static function (string $signal, SignalHandler $handler) use ($io, $runCleanup) {
|
||||||
$handleInterruptsWindows = PHP_VERSION_ID >= 70400 && function_exists('sapi_windows_set_ctrl_handler') && PHP_SAPI === 'cli';
|
$io->writeError('Received '.$signal.', aborting', true, IOInterface::DEBUG);
|
||||||
$prevHandler = null;
|
|
||||||
$windowsHandler = null;
|
|
||||||
if ($handleInterruptsUnix) {
|
|
||||||
pcntl_async_signals(true);
|
|
||||||
$prevHandler = pcntl_signal_get_handler(SIGINT);
|
|
||||||
pcntl_signal(SIGINT, static function ($sig) use ($runCleanup, $prevHandler, $io): void {
|
|
||||||
$io->writeError('Received SIGINT, aborting', true, IOInterface::DEBUG);
|
|
||||||
$runCleanup();
|
$runCleanup();
|
||||||
|
$handler->exitWithLastSignal();
|
||||||
if (!in_array($prevHandler, array(SIG_DFL, SIG_IGN), true)) {
|
|
||||||
call_user_func($prevHandler, $sig);
|
|
||||||
}
|
|
||||||
|
|
||||||
exit(130);
|
|
||||||
});
|
});
|
||||||
}
|
|
||||||
if ($handleInterruptsWindows) {
|
|
||||||
$windowsHandler = static function ($event) use ($runCleanup, $io): void {
|
|
||||||
if ($event !== PHP_WINDOWS_EVENT_CTRL_C) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
$io->writeError('Received CTRL+C, aborting', true, IOInterface::DEBUG);
|
|
||||||
$runCleanup();
|
|
||||||
|
|
||||||
exit(130);
|
|
||||||
};
|
|
||||||
sapi_windows_set_ctrl_handler($windowsHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// execute operations in batches to make sure download-modifying-plugins are installed
|
// execute operations in batches to make sure download-modifying-plugins are installed
|
||||||
|
@ -284,21 +260,9 @@ class InstallationManager
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$runCleanup();
|
$runCleanup();
|
||||||
|
|
||||||
if ($handleInterruptsUnix) {
|
|
||||||
pcntl_signal(SIGINT, $prevHandler);
|
|
||||||
}
|
|
||||||
if ($handleInterruptsWindows) {
|
|
||||||
sapi_windows_set_ctrl_handler($windowsHandler, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
throw $e;
|
throw $e;
|
||||||
}
|
} finally {
|
||||||
|
$signalHandler->unregister();
|
||||||
if ($handleInterruptsUnix) {
|
|
||||||
pcntl_signal(SIGINT, $prevHandler);
|
|
||||||
}
|
|
||||||
if ($handleInterruptsWindows) {
|
|
||||||
sapi_windows_set_ctrl_handler($windowsHandler, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// do a last write so that we write the repository even if nothing changed
|
// do a last write so that we write the repository even if nothing changed
|
||||||
|
|
|
@ -8,7 +8,7 @@ Checks that package versions in InstalledVersions are correct on initial install
|
||||||
update
|
update
|
||||||
--EXPECT--
|
--EXPECT--
|
||||||
> Hooks::preUpdate
|
> Hooks::preUpdate
|
||||||
!!PreUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string"]
|
!!PreUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string"]
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
Loading composer repositories with package information
|
Loading composer repositories with package information
|
||||||
%((Info|Warning) from .*\n)?%Updating dependencies
|
%((Info|Warning) from .*\n)?%Updating dependencies
|
||||||
|
@ -26,12 +26,12 @@ Package operations: 6 installs, 0 updates, 0 removals%(\nAs there is no 'unzip'
|
||||||
- Downloading symfony/filesystem (%v?[2-8]\.\d+\.\d+%)
|
- Downloading symfony/filesystem (%v?[2-8]\.\d+\.\d+%)
|
||||||
- Installing symfony/console (99999.1.2): Symlinking from symfony-console
|
- Installing symfony/console (99999.1.2): Symlinking from symfony-console
|
||||||
- Installing plugin/a (1.1.1): Symlinking from plugin-a
|
- Installing plugin/a (1.1.1): Symlinking from plugin-a
|
||||||
!!PluginAInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","root/pkg"]
|
!!PluginAInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","root/pkg"]
|
||||||
!!PluginA:null
|
!!PluginA:null
|
||||||
!!PluginB:null
|
!!PluginB:null
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
- Installing plugin/b (2.2.2): Symlinking from plugin-b
|
- Installing plugin/b (2.2.2): Symlinking from plugin-b
|
||||||
!!PluginBInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","root/pkg"]
|
!!PluginBInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","root/pkg"]
|
||||||
!!PluginA:1.1.1.0
|
!!PluginA:1.1.1.0
|
||||||
!!PluginB:null
|
!!PluginB:null
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
|
@ -42,7 +42,7 @@ Generating autoload files
|
||||||
2 packages you are using are looking for funding.
|
2 packages you are using are looking for funding.
|
||||||
Use the `composer fund` command to find out more!
|
Use the `composer fund` command to find out more!
|
||||||
> Hooks::postUpdate
|
> Hooks::postUpdate
|
||||||
!!PostUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PostUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
|
|
||||||
--EXPECT-EXIT-CODE--
|
--EXPECT-EXIT-CODE--
|
||||||
|
|
|
@ -7,14 +7,14 @@ Checks that package versions in InstalledVersions are correct during an upgrade.
|
||||||
--RUN--
|
--RUN--
|
||||||
update plugin/* symfony/console symfony/filesystem symfony/process
|
update plugin/* symfony/console symfony/filesystem symfony/process
|
||||||
--EXPECT--
|
--EXPECT--
|
||||||
!!PluginA:1.1.1.0["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PluginA:1.1.1.0["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!PluginB:2.2.2.0
|
!!PluginB:2.2.2.0
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
!!PluginB:2.2.2.0["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PluginB:2.2.2.0["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!PluginA:1.1.1.0
|
!!PluginA:1.1.1.0
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
> Hooks::preUpdate
|
> Hooks::preUpdate
|
||||||
!!PreUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PreUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
Loading composer repositories with package information
|
Loading composer repositories with package information
|
||||||
%((Info|Warning) from .*\n)?%Updating dependencies
|
%((Info|Warning) from .*\n)?%Updating dependencies
|
||||||
|
@ -30,12 +30,12 @@ Package operations: 0 installs, 5 updates, 0 removals%(\nAs there is no 'unzip'
|
||||||
- Downloading symfony/filesystem (%v?[2-8]\.\d+\.\d+%)
|
- Downloading symfony/filesystem (%v?[2-8]\.\d+\.\d+%)
|
||||||
- Upgrading symfony/console (99999.1.2 => 99999.1.3): Mirroring from symfony-console
|
- Upgrading symfony/console (99999.1.2 => 99999.1.3): Mirroring from symfony-console
|
||||||
- Upgrading plugin/a (1.1.1 => 1.1.2): Mirroring from plugin-a
|
- Upgrading plugin/a (1.1.1 => 1.1.2): Mirroring from plugin-a
|
||||||
!!PluginAInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PluginAInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!PluginA:1.1.1.0
|
!!PluginA:1.1.1.0
|
||||||
!!PluginB:2.2.2.0
|
!!PluginB:2.2.2.0
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
- Upgrading plugin/b (2.2.2 => 2.2.3): Mirroring from plugin-b
|
- Upgrading plugin/b (2.2.2 => 2.2.3): Mirroring from plugin-b
|
||||||
!!PluginBInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PluginBInit["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!PluginA:1.1.2.0
|
!!PluginA:1.1.2.0
|
||||||
!!PluginB:2.2.2.0
|
!!PluginB:2.2.2.0
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
|
@ -45,7 +45,7 @@ Generating autoload files
|
||||||
2 packages you are using are looking for funding.
|
2 packages you are using are looking for funding.
|
||||||
Use the `composer fund` command to find out more!
|
Use the `composer fund` command to find out more!
|
||||||
> Hooks::postUpdate
|
> Hooks::postUpdate
|
||||||
!!PostUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
!!PostUpdate:["composer/ca-bundle","composer/class-map-generator","composer/composer","composer/metadata-minifier","composer/pcre","composer/semver","composer/spdx-licenses","composer/xdebug-handler","justinrainbow/json-schema","psr/container","psr/log","psr/log-implementation","react/promise","seld/jsonlint","seld/phar-utils","seld/signal-handler","symfony/console","symfony/deprecation-contracts","symfony/filesystem","symfony/finder","symfony/polyfill-ctype","symfony/polyfill-intl-grapheme","symfony/polyfill-intl-normalizer","symfony/polyfill-mbstring","symfony/polyfill-php73","symfony/polyfill-php80","symfony/process","symfony/service-contracts","symfony/string","plugin/a","plugin/b","root/pkg"]
|
||||||
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
!!Versions:console:%[2-8]\.\d+\.\d+.0%;process:%[2-8]\.\d+\.\d+.0%;filesystem:%[2-8]\.\d+\.\d+.0%
|
||||||
!!PluginA:1.1.2.0
|
!!PluginA:1.1.2.0
|
||||||
!!PluginB:2.2.3.0
|
!!PluginB:2.2.3.0
|
||||||
|
|
Loading…
Reference in New Issue