Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation fails with Composer 2 in some cases #108

Open
emodric opened this issue Dec 18, 2020 · 0 comments
Open

Installation fails with Composer 2 in some cases #108

emodric opened this issue Dec 18, 2020 · 0 comments

Comments

@emodric
Copy link
Contributor

emodric commented Dec 18, 2020

Hi,

here are a couple of cases where install fails with Composer 2, while install Composer 1 works fine (doesn't matter if Studio symlinks the repo or not). To test, you can use this repo as a reproducer:

https://github.com/emodric/studio-composer2

To get it up and running:

git clone https://github.com/emodric/studio-composer2
cd studio-composer2
mv case1/repos/polyfill/..git case1/repos/polyfill/.git
mv case2/repos/polyfill/..git case2/repos/polyfill/.git
mv case3/repos/polyfill/..git case3/repos/polyfill/.git

Case 1: Version in composer.json (~1.20.0) and local version (1.21.0) missmatch. Composer 1 would just install 1.20.0 from Packagist and be done with it. Composer 2 fails the install.

~/www/studio/case1 $ composer install

[Studio] Loading path repos/*
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 9 installs, 0 updates, 0 removals
  - Installing symfony/polyfill (v1.20.0): Downloading (100%)         
  - Installing symfony/process (v5.2.1): Loading from cache
  - Installing symfony/filesystem (v5.2.1): Loading from cache
  - Installing symfony/string (v5.2.1): Loading from cache
  - Installing psr/container (1.0.0): Loading from cache
  - Installing symfony/service-contracts (v2.2.0): Loading from cache
  - Installing symfony/console (v5.2.1): Loading from cache
  - Installing franzl/studio (0.15.0): Loading from cache
  - Installing symfony/intl (v5.2.1): Loading from cache
Writing lock file
Generating autoload files
8 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Symfony recipes are disabled: "symfony/flex" not found in the root composer.json
~/www/studio/case1 $ composer2 install

No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
[Studio] Loading path repos/*
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires symfony/polyfill ~1.20.0, it is satisfiable by symfony/polyfill[v1.20.0] from composer repo (https://repo.packagist.org) but symfony/polyfill[dev-main, 1.21.x-dev (alias of dev-main)] from path repo (repos/*) has higher repository priority. The packages with higher priority do not match your constraint and are therefore not installable. See https://getcomposer.org/repoprio for details and assistance.

Case 2: Version in composer.json (~1.21.0) and local version (1.21.0) match. This is using a stable requirement. Composer 1 would just install 1.21.0 from Packagist and be done with it. Composer 2 fails the install.

~/www/studio/case2 $ composer install

[Studio] Loading path repos/*
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 8 installs, 0 updates, 0 removals
  - Installing symfony/polyfill (v1.21.0): Downloading (100%)         
  - Installing symfony/process (v5.2.1): Loading from cache
  - Installing symfony/filesystem (v5.2.1): Loading from cache
  - Installing symfony/string (v5.2.1): Loading from cache
  - Installing psr/container (1.0.0): Loading from cache
  - Installing symfony/service-contracts (v2.2.0): Loading from cache
  - Installing symfony/console (v5.2.1): Loading from cache
  - Installing franzl/studio (0.15.0): Loading from cache
Writing lock file
Generating autoload files
7 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Symfony recipes are disabled: "symfony/flex" not found in the root composer.json
~/www/studio/case2 $ composer2 install

No lock file found. Updating dependencies instead of installing from lock file. Use composer update over composer install if you do not have a lock file.
[Studio] Loading path repos/*
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires symfony/polyfill ~1.21.0, it is satisfiable by symfony/polyfill[v1.21.0] from composer repo (https://repo.packagist.org) but symfony/polyfill[dev-main, 1.21.x-dev (alias of dev-main)] from path repo (repos/*) has higher repository priority. The packages with higher priority do not match your minimum-stability and are therefore not installable. See https://getcomposer.org/repoprio for details and assistance.

Case 3: Version in composer.json (~1.21.0@dev) and local version (1.21.0) match. This is using a dev requirement. Composer 1 and Composer 2 work OK and symlink the package, so no need for example output.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant