Flex: Compatibility with Composer 1.7 (`getRemoteContents` signature changed)

Created on 3 Aug 2018  路  8Comments  路  Source: symfony/flex

Hi there! :)

Composer 1.7 just released - and one method signature has changed by Composer, which is used by Symfony Flex!

```composer install --no-progress --no-interaction
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 111 installs, 0 updates, 0 removals

  • Installing ocramius/package-versions (1.3.0): Loading from cache
  • Installing symfony/flex (v1.0.80): Loading from cache
    Plugin installation failed, rolling back
  • Removing symfony/flex (v1.0.80)

[ErrorException]
Declaration of Symfony\Flex\ParallelDownloader::getRemoteContents($originUrl, $fileUrl, $context) should be compatible with Composer\Util\RemoteFilesystem::getRemoteContents($originUrl, $fileUrl, $context, ?array &$responseHeaders = NULL)
```

I don't know if it's a real bug - or just a random thing by our GitLab CI server. Otherwise: close it, please.

Regards,
Timon

Most helpful comment

composer update symfony/flex --no-plugins

All 8 comments

This is fixed already, please upgrade to latest version.

composer update symfony/flex --no-plugins

Thanks for your fast answer, Nicolas! :)

@nicolas-grekas I know Symfony 4.0 is in security only fixes but right now it is impossible to create a project using composer 1.7.

$ composer create-project "symfony/skeleton=4.0.*" symfony40
Installing symfony/skeleton (v4.0.13.1)
  - Installing symfony/skeleton (v4.0.13.1): Downloading (100%)
Created project in symfony40
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 21 installs, 0 updates, 0 removals
  - Installing symfony/flex (v1.0.84): Downloading (100%)
Plugin installation failed, rolling back
  - Removing symfony/flex (v1.0.84)


  [ErrorException]
  Declaration of Symfony\Flex\ParallelDownloader::getRemoteContents($originUrl, $fileUrl, $context) should be compatible with Composer\Util\RemoteFilesystem::getRemoteContents($originUrl, $fileUrl, $context, ?array &$responseHeaders =
  NULL)


create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-reqs] [--] [<package>] [<directory>] [<version>]

You can also use the --no-plugins option but it defeats all the create-project thing because you end up with no files in your directory, except the vendor stuff.

4.0 is not maintained anymore, so creating new projects is not supported anymore.

@pylebecq you can run composer symfony:fix-recipes after you install without plugins (and you update Flex) to run all non-applied recipes.

@fabpot Makes sense. I'm just working on something and for testing purpose we want to ensure every standard symfony project works (from 2.1 to 4.1) with it that's why I'm to create one.

@stof I always forget about this command ! Thank you.

@pylebecq I would suggest you to test with maintained versions only. For others, we provide no guarantee that the skeleton still works.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

fabpot picture fabpot  路  7Comments

ro0NL picture ro0NL  路  4Comments

tsantos84 picture tsantos84  路  7Comments

emulienfou picture emulienfou  路  4Comments

kolibri picture kolibri  路  3Comments