Composer & PHP versions?
akgerber opened this issue · 0 comments
I'm trying to follow the README on MacOS 11.2.2.
The default PHP version installed appears to be 7.3.4
:
➜ php --version
WARNING: PHP is not recommended
PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not include PHP.
PHP 7.3.24-(to be removed in future macOS) (cli) (built: Dec 21 2020 21:33:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.24, Copyright (c) 1998-2018 Zend Technologies
When installing composer
with Homebrew, it appears the latest version is 2.0.11
which appears to break some interfaces.
(base) ➜ vanilla git:(master) ✗ composer --version
Composer version 2.0.11 2021-02-24 14:57:23
Attempting to use these versions causes issues with step 11 in the README, namely that it appears the composer.json
is not compatible with Composer 2.x:
(base) ➜ vanilla git:(master) ✗ composer install
The "metasyntactical/composer-plugin-license-check" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
The "wikimedia/composer-merge-plugin" plugin was skipped because it requires a Plugin API version ("^1.0") that does not match your Composer installation ("2.0.0"). You may need to run composer update with the "--no-plugins" option.
> Vanilla\Setup\ComposerHelper::preUpdate
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- metasyntactical/composer-plugin-license-check is locked to version v0.5.0 and an update of this package was not requested.
- metasyntactical/composer-plugin-license-check v0.5.0 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
Problem 2
- wikimedia/composer-merge-plugin is locked to version v1.4.1 and an update of this package was not requested.
- wikimedia/composer-merge-plugin v1.4.1 requires composer-plugin-api ^1.0 -> found composer-plugin-api[2.0.0] but it does not match the constraint.
Problem 3
- vanilla/garden-jsont is locked to version v1.2 and an update of this package was not requested.
- You can only install one version of a package, so only one of these can be installed: vanilla/garden-jsont[v1.2].
You are using Composer 2, which some of your plugins seem to be incompatible with. Make sure you update your plugins or report a plugin-issue to ask them to support Composer 2.
Attempting to work around this issue by running the latest Composer 1.x installed via php composer-setup.php --version 1.10.20
runs into this issue with default MacOS PHP:
(base) ➜ vanilla git:(master) ✗ /usr/bin/php composer.phar install
> Vanilla\Setup\ComposerHelper::preUpdate
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run `composer update` or `composer update <package name>`.
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested PHP extension ext-intl * is missing from your system. Install or enable PHP's intl extension.
I was able to resolve this issue by installing PHP7.4 via brew install php@7.4
and brew link php@7.4
and starting a new terminal to use the newer PHP:
php composer.phar install
This also fails, but pretty deep into the install process so I will fail a separate issue for the problem encountered.
Can specific versions of PHP & Composer be suggested in the README to avoid these issues?