Skip to content

Instantly share code, notes, and snippets.

@shengslogar
Last active January 6, 2022 18:36
Show Gist options
  • Save shengslogar/3666384d008e53f41768b0262c58d6fa to your computer and use it in GitHub Desktop.
Save shengslogar/3666384d008e53f41768b0262c58d6fa to your computer and use it in GitHub Desktop.
01/06/2022 – Laravel/Symfony Build on Composer 2 on Heroku

Heroku Not Using Composer 2 with Laravel

January 6, 2022

Sample Error Log

-----> Building on the Heroku-20 stack
-----> Using buildpacks:
       1. heroku/php
       2. https://github.com/heroku/heroku-buildpack-cli
-----> PHP app detected
-----> Bootstrapping...
-----> Installing platform packages...
 !     ERROR: Failed to install system packages!
 !     
 !     Your platform requirements (for runtimes and extensions) could
 !     not be resolved to an installable set of dependencies, or a
 !     platform package repository was unreachable.
 !     
 !     This usually means that you (or packages you are using) depend
 !     on a combination of PHP versions and/or extensions that are
 !     currently not available on Heroku.
 !     
 !     The following is the full output from the installation attempt:
 !     
 !     > You are using Composer 1 which is deprecated. You should upgrade to Composer 2, see https://blog.packagist.com/deprecating-composer-1-support/
 !     > Loading repositories with available runtimes and extensions
 !     > Updating dependencies
 !     > Your requirements could not be resolved to an installable set of packages.
 !     > 
 !     >   Problem 1
 !     >     - symfony/polyfill-iconv v1.24.0 requires php >=7.1 -> satisfiable by php[7.3.24, 7.3.25, 7.3.26, 7.3.27, 7.3.28, 7.3.29, 7.3.30, 7.3.31, 7.3.32, 7.3.33, 7.4.12, 7.4.13, 7.4.14, 7.4.15, 7.4.16, 7.4.19, 7.4.20, 7.4.21, 7.4.22, 7.4.23, 7.4.24, 7.4.25, 7.4.26, 7.4.27, 8.0.0, 8.0.0RC4, 8.0.1, 8.0.10, 8.0.11, 8.0.12, 8.0.13, 8.0.14, 8.0.2, 8.0.3, 8.0.6, 8.0.7, 8.0.8, 8.0.9, 8.1.0, 8.1.1].

Problem

Symfony polyfills updated to v1.24 include a new provide section in composer.json that screws up Heroku's build process.

Solution

Manually lock polyfills to previous version. For example:

"symfony/polyfill-ctype": "~v1.23.0",
"symfony/polyfill-iconv": "~v1.23.0",
"symfony/polyfill-mbstring": "~v1.23.0",
"symfony/polyfill-uuid": "~v1.23.0"

Thanks to David Zuelke at Heroku. This is is supposed to be fixed in the coming weeks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment