Skip to content

"Box requirements" check does not respect version constraint of "conflict" #30

@donquixote

Description

@donquixote

(This might be a problem from phpro/grumphp, but we are using the phar so I am reporting it here.)

Symptoms

We are working with a container with redis 6.3.0 extension.
(this is what I get from php --re redis | head -1)

In our project we require phpro/grumphp-shim.
Until recently we had version 2.17.*, now we have version 2.18.0.

Now we get this report when we run grumphp:

> Checking Box requirements:
  ✔ This application requires a PHP version matching "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0".
  ✔ The package "amphp/dns" requires the extension "filter".
  ✔ The package "league/uri-interfaces" requires the extension "filter".
  ✔ The package "symfony/polyfill-mbstring" requires the extension "iconv".
  ✔ This application requires the extension "json".
  ✔ The package "amphp/dns" requires the extension "json".
  ✔ The package "nikic/php-parser" requires the extension "json".
  ✔ The package "amphp/socket" requires the extension "openssl".
  ✔ The package "kelunik/certificate" requires the extension "openssl".
  ✔ The package "gitonomy/gitlib" requires the extension "pcre".
  ✔ The package "nikic/php-parser" requires the extension "tokenizer".
  ✔ The package "symfony/dependency-injection" conflicts with the extension "psr".
  ✔ The package "symfony/service-contracts" conflicts with the extension "psr".
  ✘ The package "symfony/cache" conflicts with the extension "redis".
  ✔ The package "symfony/cache" conflicts with the extension "relay".
  
                                                                                                                                                                   
 [ERROR] Your system is not ready to run the application.                                                                                                          
                                                                                                                                                                   

Fix the following mandatory requirements:
=========================================

 * The package "symfony/cache" conflicts with the extension "redis". You need to disable it in order to run this application.

When I look into vendor/phpro/grumphp-shim/phar.composer.lock, I see that symfony/cache has "conflict": {.."ext-redis": "<6.1",..}.
The older version of symfony/cache did not have this line, this is why the problem only occurs with phpro/grumphp-shim 2.18.0.

Given that our redis is at 6.3.0, there should not be a conflict.

Problem

It seems to me that the box requirements check does not consider the version constraint of a line in "conflict".

(I would like to know where the check is implemented)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions