Magento – magento 2.2.6 to 2.3 upgrade fails with composer

composermagento2.1.16magento2.2.6magento2.3upgrade

I tried to upgrade my 2.2.6 Magento install with composer following the tutorial on Magento Website, but "composer update" fails with these errors :

Your requirements could not be resolved to an installable set of packages.

Problem 1
    - magento/inventory-composer-installer 1.0.3 requires composer-plugin-api ^1.1 -> no matching package found.
    - magento/product-community-edition 2.3.0 requires magento/inventory-composer-metapackage ^1.0.3 -> satisfiable by magento/inventory-composer-metapackage[1.0.3].
    - magento/inventory-composer-metapackage 1.0.3 requires magento/inventory-composer-installer ^1.0.3 -> satisfiable by magento/inventory-composer-installer[1.0.3].
    - Installation request for magento/product-community-edition 2.3.0 -> satisfiable by magento/product-community-edition[2.3.0].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.

Anyone experiencing this issue ?
Thank you, Magento gurus 🙂

Best Answer

Did you follow the 2.3.0 upgrade documentation? The process is a little more involved for 2.3.0 than previous versions.

Due to new dependency versions (primarily related to 2.3.0 adding support for PHP 7.2 and dropping support for PHP 7.0), there are some changes that need to be made to your composer.json file before running composer update. To ease this process, there is a script that will make the changes for you, just be careful if you've made any customizations to the relevant values as the script will overwrite them; if you have, use and adjust the steps in the Upgrade using the command line section instead.


If you did follow the documentation to update your composer.json file and you get that error, it looks like you may have an incompatible version of Composer (composer-plugin-api is provided natively by Composer itself). Can you run composer --version, composer show composer/composer | grep versions, and composer depends composer/composer in your Magento root directory and provide those results here? I just installed Magento 2.2.6 locally and followed the documented upgrade instructions to 2.3.0 and this is the output of those commands I have:

Composer executable version (composer.phar):

$ composer --version
Composer version 1.7.2 2018-08-16 16:57:12

Magento 2.2.6:

  • Installed composer/composer package version:

    $ composer show composer/composer | grep versions
    versions : * 1.4.1
    
  • Dependencies which have composer/composer requirements and their constraints:

    $ composer depends composer/composer
    magento/composer                   1.2.0    requires  composer/composer (1.4.1)   
    magento/framework                  101.0.6  requires  composer/composer (^1.4)    
    magento/magento2-base              2.2.6    requires  composer/composer (1.4.1)   
    magento/product-community-edition  2.2.6    requires  composer/composer (1.4.1)   
    magento/project-community-edition  2.2.6    requires  composer/composer (@alpha)  
    

After the Magento 2.3.0 upgrade:

  • Installed composer/composer package version:

    $ composer show composer/composer | grep versions
    versions : * 1.7.3
    
  • Dependencies which have composer/composer requirements and their constraints:

    $ composer depends composer/composer
    magento/composer                   1.4.0    requires  composer/composer (^1.6)    
    magento/framework                  102.0.0  requires  composer/composer (^1.6)    
    magento/magento2-base              2.3.0    requires  composer/composer (^1.6)    
    magento/product-community-edition  2.3.0    requires  composer/composer (^1.6)    
    magento/project-community-edition  2.3.0    requires  composer/composer (@alpha)
    
Related Topic