October: Issues with installing composer dependencies for PHP7.1+

Created on 22 Aug 2018  路  5Comments  路  Source: octobercms/october

Expected behavior

October is running on PHP7.2 and allows pulling plugin's composer dependencies that require PHP7.1+

Actual behavior

October breaks with

Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

 Problem 1
   - hashids/hashids 3.0.x-dev requires php ^7.1.3 -> your PHP version (7.2.5) overridden by "config.platform.php" version (7.0) does not satisfy that requirement.
   - hashids/hashids 3.0.0 requires php ^7.1.3 -> your PHP version (7.2.5) overridden by "config.platform.php" version (7.0) does not satisfy that requirement.
   - Installation request for hashids/hashids ^3.0 -> satisfiable by hashids/hashids[3.0.0, 3.0.x-dev].
Reproduce steps

Require for example hashids/hashids 3.0 in plugin's composer json and do composer update from october's root directory.

October build

437/dev-master, installed with composer create-project

Details

BC Introduced here:
https://github.com/octobercms/october/commit/f12f3af37f491f26fe101c3a01458fa467455df0

We can't really accept

If problems are encountered by this change, simply customise your composer.json file to remove it.

as we have automated deployments and we are building HA Octobers cluster, is adding preinstall script with somesed the only possible solution here?

Can someone link to the issue that this commit above solved, is it reported?

wontfix

Most helpful comment

While I don't agree with the BC (since Laravel 5.5 has >=7.0)

@viamage @jonpxpx you could use the "--ignore-platform-reqs" flag while executing composer install / update, see https://getcomposer.org/doc/03-cli.md#install-i (don't think it's the "best" thing to do, but it's something to consider)

All 5 comments

Affected us here too, new install, auto deployment and boom!

@viamage @jonpxpx I had a discussion with @daftspunk about this before he implemented it and he's not going to budge on changing it unfortunately. I don't agree with him on this but your best bet for autodeployments is probably to remove the default composer.json and replace it with your own prior to running composer install.

While I don't agree with the BC (since Laravel 5.5 has >=7.0)

@viamage @jonpxpx you could use the "--ignore-platform-reqs" flag while executing composer install / update, see https://getcomposer.org/doc/03-cli.md#install-i (don't think it's the "best" thing to do, but it's something to consider)

There is an important reason for this change, altho it would appear the flag gods have sent us --ignore-platform-reqs anyway. @LukeTowers should we document it?

@daftspunk probably, where do you think is best?

Was this page helpful?
0 / 5 - 0 ratings

Related issues

jvanremoortere picture jvanremoortere  路  3Comments

sozonovalexey picture sozonovalexey  路  3Comments

mittultechnobrave picture mittultechnobrave  路  3Comments

d3monfiend picture d3monfiend  路  3Comments

mittultechnobrave picture mittultechnobrave  路  3Comments