Revert "Avoid loading plugins that do not match the current plugin api even during installation"
This reverts commitpull/4784/head21f5933e01
. Commit21f5933e
breaks fresh installations of cakephp applications, or any project where a dependency uses a different composer plugin installer than the upstream project. Closes auraphp/Aura.Intl#20
parent
21f5933e01
commit
0118d69603
|
@ -106,26 +106,6 @@ class PluginManager
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$requiresComposer = null;
|
|
||||||
foreach ($package->getRequires() as $link) { /** @var Link $link */
|
|
||||||
if ('composer-plugin-api' === $link->getTarget()) {
|
|
||||||
$requiresComposer = $link->getConstraint();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$requiresComposer) {
|
|
||||||
throw new \RuntimeException("Plugin ".$package->getName()." is missing a require statement for a version of the composer-plugin-api package.");
|
|
||||||
}
|
|
||||||
|
|
||||||
$currentPluginApiVersion = $this->getPluginApiVersion();
|
|
||||||
$currentPluginApiConstraint = new Constraint('==', $this->versionParser->normalize($currentPluginApiVersion));
|
|
||||||
|
|
||||||
if (!$requiresComposer->matches($currentPluginApiConstraint)) {
|
|
||||||
$this->io->writeError('<warning>The "' . $package->getName() . '" plugin was skipped because it requires a Plugin API version ("' . $requiresComposer->getPrettyString() . '") that does not match your Composer installation ("' . $currentPluginApiVersion . '"). You may need to run composer update with the "--no-plugins" option.</warning>');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$oldInstallerPlugin = ($package->getType() === 'composer-installer');
|
$oldInstallerPlugin = ($package->getType() === 'composer-installer');
|
||||||
|
|
||||||
if (in_array($package->getName(), $this->registeredPlugins)) {
|
if (in_array($package->getName(), $this->registeredPlugins)) {
|
||||||
|
@ -229,7 +209,28 @@ class PluginManager
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ('composer-plugin' === $package->getType()) {
|
if ('composer-plugin' === $package->getType()) {
|
||||||
|
$requiresComposer = null;
|
||||||
|
foreach ($package->getRequires() as $link) { /** @var Link $link */
|
||||||
|
if ('composer-plugin-api' === $link->getTarget()) {
|
||||||
|
$requiresComposer = $link->getConstraint();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$requiresComposer) {
|
||||||
|
throw new \RuntimeException("Plugin ".$package->getName()." is missing a require statement for a version of the composer-plugin-api package.");
|
||||||
|
}
|
||||||
|
|
||||||
|
$currentPluginApiVersion = $this->getPluginApiVersion();
|
||||||
|
$currentPluginApiConstraint = new Constraint('==', $this->versionParser->normalize($currentPluginApiVersion));
|
||||||
|
|
||||||
|
if (!$requiresComposer->matches($currentPluginApiConstraint)) {
|
||||||
|
$this->io->writeError('<warning>The "' . $package->getName() . '" plugin was skipped because it requires a Plugin API version ("' . $requiresComposer->getPrettyString() . '") that does not match your Composer installation ("' . $currentPluginApiVersion . '"). You may need to run composer update with the "--no-plugins" option.</warning>');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$this->registerPackage($package);
|
$this->registerPackage($package);
|
||||||
|
|
||||||
// Backward compatibility
|
// Backward compatibility
|
||||||
} elseif ('composer-installer' === $package->getType()) {
|
} elseif ('composer-installer' === $package->getType()) {
|
||||||
$this->registerPackage($package);
|
$this->registerPackage($package);
|
||||||
|
|
Loading…
Reference in New Issue