magento / ece-tools

All Submissions you make to Magento Inc. (“Magento") through GitHub are subject to the following terms and conditions: (1) You grant Magento a perpetual, worldwide, non-exclusive, no charge, royalty free, irrevocable license under your applicable copyrights and patents to reproduce, prepare derivative works of, display, publically perform, sublicense and distribute any feedback, ideas, code, or other information (“Submission") you submit through GitHub. (2) Your Submission is an original work of authorship and you are the owner or are legally entitled to grant the license stated above. (3) You agree to the Contributor License Agreement found here: https://github.com/magento/magento2/blob/master/CONTRIBUTOR_LICENSE_AGREEMENT.html
Open Software License 3.0
117 stars 83 forks source link

Composer errors when installing with Magento OS #815

Open joeshelton-wagento opened 1 year ago

joeshelton-wagento commented 1 year ago

Preconditions

PHP 8.2 Composer 2.5.8

Steps to reproduce

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <install-directory-name> composer require magento/ece-tools

Expected result

Composer installation without warnings or errors

Actual result

Info from https://repo.packagist.org: #StandWithUkraine
./composer.json has been updated
Running composer update magento/ece-tools
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - magento/ece-tools 2002.0 requires monolog/monolog ^1.17 -> found monolog/monolog[1.17.0, ..., 1.27.1] but the package is fixed to 2.9.1 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - magento/ece-tools[2002.0.1, ..., 2002.0.23] require php ^7.0 -> your php version (8.2.8) does not satisfy that requirement.
    - magento/ece-tools[2002.1.0, ..., 2002.1.8] require php ^7.1.3 -> your php version (8.2.8) does not satisfy that requirement.
    - magento/ece-tools[2002.1.9, ..., 2002.1.15] require symfony/config ^4.4 || ^5.1 -> found symfony/config[v4.4.0, ..., v4.4.44, v5.1.0, ..., v5.4.26] but the package is fixed to v6.3.2 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - Root composer.json requires magento/ece-tools * -> satisfiable by magento/ece-tools[2002.0, ..., 2002.1.15].

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
You can also try re-running composer require with an explicit version constraint, e.g. "composer require magento/ece-tools:*" to figure out if any version is installable, or "composer require magento/ece-tools:^2.1" if you know which you need.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.
ssx commented 1 year ago

@joeshelton-wagento why are you installing ece-tools in a community project?

joeshelton-wagento commented 1 year ago

I plan to extend ECE Tools for use with Magento Open Source outside of a Cloud environment. Much of the code in ECE Tools would accommodate this. The original plan was for a more general-purpose tool.

Regardless, it is curious to me that ECE Tools would not have sub-dependancies in alignment with the most recent version of Magento OS. After running composer require magento/ece-tools -W many of Magento OS sub-dependancies were downgraded. Is there a practical reason for needing to downgrade Magento OS dependancies? Or, do the ECE Tools sub-dependancy version constraints need to be updated to reflect a real compatibility with Magento OS?

joeshelton@Joes-MacBook-Pro eceanywhere % composer require magento/ece-tools -W
Info from https://repo.packagist.org: #StandWithUkraine
./composer.json has been updated
Running composer update magento/ece-tools --with-all-dependencies
Loading composer repositories with package information
Updating dependencies
Lock file operations: 17 installs, 5 updates, 1 removal
  - Removing symfony/var-exporter (v6.3.4)
  - Locking friendsofphp/proxy-manager-lts (v1.0.16)
  - Locking graylog2/gelf-php (1.7.1)
  - Locking illuminate/collections (v8.83.27)
  - Locking illuminate/config (v8.83.27)
  - Locking illuminate/contracts (v8.83.27)
  - Locking illuminate/macroable (v8.83.27)
  - Locking magento/ece-tools (2002.1.15)
  - Locking magento/magento-cloud-components (1.0.13)
  - Locking magento/magento-cloud-docker (1.3.6)
  - Locking magento/magento-cloud-patches (1.0.24)
  - Locking magento/quality-patches (1.1.38)
  - Locking nesbot/carbon (2.70.0)
  - Locking psr/simple-cache (1.0.1)
  - Downgrading symfony/config (v6.3.2 => v5.4.26)
  - Downgrading symfony/dependency-injection (v6.3.4 => v5.4.28)
  - Downgrading symfony/http-kernel (v6.2.14 => v6.0.20)
  - Downgrading symfony/mime (v5.4.26 => v5.4.13)
  - Locking symfony/proxy-manager-bridge (v6.1.11)
  - Locking symfony/serializer (v4.4.47)
  - Locking symfony/translation (v6.3.3)
  - Locking symfony/translation-contracts (v2.5.2)
  - Downgrading symfony/yaml (v6.3.3 => v5.4.23)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 17 installs, 5 updates, 1 removal
  - Downloading symfony/dependency-injection (v5.4.28)
  - Downloading nesbot/carbon (2.70.0)
  - Downloading magento/quality-patches (1.1.38)
  - Downloading magento/magento-cloud-patches (1.0.24)
  - Removing symfony/var-exporter (v6.3.4)
  - Downgrading symfony/yaml (v6.3.3 => v5.4.23): Extracting archive
  - Installing illuminate/macroable (v8.83.27): Extracting archive
  - Installing psr/simple-cache (1.0.1): Extracting archive
  - Installing illuminate/contracts (v8.83.27): Extracting archive
  - Installing illuminate/collections (v8.83.27): Extracting archive
  - Installing symfony/serializer (v4.4.47): Extracting archive
  - Downgrading symfony/dependency-injection (v6.3.4 => v5.4.28): Extracting archive
  - Downgrading symfony/config (v6.3.2 => v5.4.26): Extracting archive
  - Installing symfony/translation-contracts (v2.5.2): Extracting archive
  - Installing symfony/translation (v6.3.3): Extracting archive
  - Installing nesbot/carbon (2.70.0): Extracting archive
  - Installing friendsofphp/proxy-manager-lts (v1.0.16): Extracting archive
  - Installing symfony/proxy-manager-bridge (v6.1.11): Extracting archive
  - Installing magento/quality-patches (1.1.38): Extracting archive
  - Installing magento/magento-cloud-patches (1.0.24): Extracting archive
  - Installing illuminate/config (v8.83.27): Extracting archive
  - Installing magento/magento-cloud-docker (1.3.6): Extracting archive
  - Installing magento/magento-cloud-components (1.0.13): Extracting archive
  - Installing graylog2/gelf-php (1.7.1): Extracting archive
  - Installing magento/ece-tools (2002.1.15): Extracting archive
  - Downgrading symfony/mime (v5.4.26 => v5.4.13): Extracting archive
  - Downgrading symfony/http-kernel (v6.2.14 => v6.0.20): Extracting archive
Removing Symfony/VarExporter
3 package suggestions were added by new dependencies, use `composer suggest` to see details.
Package sebastian/phpcpd is abandoned, you should avoid using it. No replacement was suggested.
Generating autoload files
137 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
Using version ^2002.1 for magento/ece-tools