skip to Main Content

I am using phpunit 6.5.14 togehter with php-code-coverage 5.3.2

I would like to update phpunit and php-code-coverage. However, when i try to update one of them, it fails because they require each other.

For example. calling

composer require --dev phpunit/phpunit ^7

fails with:

    1/1:    http://repo.packagist.org/p/provider-latest$f1c1ff74699130b4d82cd11e43a57fffc27fdcc5f268000782f585b13d1c5d4c.json
    Finished: success: 1, skipped: 0, failure: 0, total: 1
./composer.json has been updated
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
    - Conclusion: don't install phpunit/phpunit 7.5.17
    - Conclusion: don't install phpunit/phpunit 7.5.16
    - Conclusion: don't install phpunit/phpunit 7.5.15
    - Conclusion: don't install phpunit/phpunit 7.5.14
    - Conclusion: don't install phpunit/phpunit 7.5.13
    - Conclusion: don't install phpunit/phpunit 7.5.12
    - Conclusion: don't install phpunit/phpunit 7.5.11
    - Conclusion: don't install phpunit/phpunit 7.5.10
    - Conclusion: don't install phpunit/phpunit 7.5.9
    - Conclusion: don't install phpunit/phpunit 7.5.8
    - Conclusion: don't install phpunit/phpunit 7.5.7
    - Conclusion: don't install phpunit/phpunit 7.5.6
    - Conclusion: don't install phpunit/phpunit 7.5.5
    - Conclusion: don't install phpunit/phpunit 7.5.4
    - Conclusion: don't install phpunit/phpunit 7.5.3
    - Conclusion: don't install phpunit/phpunit 7.5.2
    - Conclusion: don't install phpunit/phpunit 7.5.1
    - Conclusion: don't install phpunit/phpunit 7.5.0
    - Conclusion: don't install phpunit/phpunit 7.4.5
    - Conclusion: don't install phpunit/phpunit 7.4.4
    - Conclusion: don't install phpunit/phpunit 7.4.3
    - Conclusion: don't install phpunit/phpunit 7.4.2
    - Conclusion: don't install phpunit/phpunit 7.4.1
    - Conclusion: don't install phpunit/phpunit 7.4.0
    - Conclusion: don't install phpunit/phpunit 7.3.5
    - Conclusion: don't install phpunit/phpunit 7.3.4
    - Conclusion: don't install phpunit/phpunit 7.3.3
    - Conclusion: don't install phpunit/phpunit 7.3.2
    - Conclusion: don't install phpunit/phpunit 7.3.1
    - Conclusion: don't install phpunit/phpunit 7.3.0
    - Conclusion: don't install phpunit/phpunit 7.2.7
    - Conclusion: don't install phpunit/phpunit 7.2.6
    - Conclusion: don't install phpunit/phpunit 7.2.5
    - Conclusion: don't install phpunit/phpunit 7.2.4
    - Conclusion: don't install phpunit/phpunit 7.2.3
    - Conclusion: don't install phpunit/phpunit 7.2.2
    - Conclusion: don't install phpunit/phpunit 7.2.1
    - Conclusion: don't install phpunit/phpunit 7.2.0
    - Conclusion: don't install phpunit/phpunit 7.1.5
    - Conclusion: don't install phpunit/phpunit 7.1.4
    - Conclusion: don't install phpunit/phpunit 7.1.3
    - Conclusion: don't install phpunit/phpunit 7.1.2
    - Conclusion: don't install phpunit/phpunit 7.1.1
    - Conclusion: don't install phpunit/phpunit 7.1.0
    - Conclusion: don't install phpunit/phpunit 7.0.3
    - Conclusion: don't install phpunit/phpunit 7.0.2
    - Conclusion: don't install phpunit/phpunit 7.0.1
    - Conclusion: remove phpunit/php-code-coverage 5.3.2
    - Installation request for phpunit/phpunit-mock-objects (locked at 5.0.10) -> satisfiable by phpunit/phpunit-mock-objects[5.0.10].
    - Installation request for phpunit/phpunit ^7 -> satisfiable by phpunit/phpunit[7.0.0, 7.0.1, 7.0.2, 7.0.3, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.2.0, 7.2.1, 7.2.2, 7.2.3, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.4.0, 7.4.1, 7.4.2, 7.4.3, 7.4.4, 7.4.5, 7.5.0, 7.5.1, 7.5.10, 7.5.11, 7.5.12, 7.5.13, 7.5.14, 7.5.15, 7.5.16, 7.5.17, 7.5.2, 7.5.3, 7.5.4, 7.5.5, 7.5.6, 7.5.7, 7.5.8, 7.5.9].
    - Conclusion: don't install phpunit/php-code-coverage 5.3.2
    - phpunit/phpunit 7.0.0 requires phpunit/php-code-coverage ^6.0 -> satisfiable by phpunit/php-code-coverage[6.0.0, 6.0.1, 6.0.2, 6.0.3, 6.0.4, 6.0.5, 6.0.6, 6.0.7, 6.0.8, 6.1.0, 6.1.1, 6.1.2, 6.1.3, 6.1.4].
    - Can only install one of: phpunit/php-code-coverage[6.0.0, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.1, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.2, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.3, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.4, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.5, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.6, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.7, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.0.8, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.1.0, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.1.1, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.1.2, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.1.3, 5.3.2].
    - Can only install one of: phpunit/php-code-coverage[6.1.4, 5.3.2].
    - Installation request for phpunit/php-code-coverage (locked at 5.3.2) -> satisfiable by phpunit/php-code-coverage[5.3.2].

Trying to update code-coverage by

composer require phpunit/php-code-coverage ^6

fails with:

 1/3:   http://repo.packagist.org/p/provider-2019-10$1fbc8abf3f09ae347d28fffd902e6857758ba1084d91f9a81432e2a4039456fa.json
    2/3:    http://repo.packagist.org/p/provider-latest$b45915c1d4dfb4884956884c1468dfdd815ecef36ccfcbfe487b1bde9b209131.json
    3/3:    http://repo.packagist.org/p/provider-2019-07$645a5eaea36f8c8ff4b02534eb6864a423517398ecd77c4709effcb55d4a0c07.json
    Finished: success: 3, skipped: 0, failure: 0, total: 3
./composer.json has been updated
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
    - phpunit/phpunit 6.5.14 requires phpunit/php-code-coverage ^5.3 -> satisfiable by phpunit/php-code-coverage[5.3.0, 5.3.1, 5.3.2, 5.3.x-dev] but these conflict with your requirements or minimum-stability.
    - phpunit/phpunit 6.5.14 requires phpunit/php-code-coverage ^5.3 -> satisfiable by phpunit/php-code-coverage[5.3.0, 5.3.1, 5.3.2, 5.3.x-dev] but these conflict with your requirements or minimum-stability.
    - phpunit/phpunit 6.5.14 requires phpunit/php-code-coverage ^5.3 -> satisfiable by phpunit/php-code-coverage[5.3.0, 5.3.1, 5.3.2, 5.3.x-dev] but these conflict with your requirements or minimum-stability.
    - Installation request for phpunit/phpunit (locked at 6.5.14, required as ~6.0) -> satisfiable by phpunit/phpunit[6.5.14].


Installation failed, reverting ./composer.json to its original content.

I also tried to remove the code-coverage, so that I can update php-unit and reinstall it again. But removing it with

composer remove phpunit/php-code-coverage

does not work and just gives this notification:

phpunit/php-code-coverage is not required in your composer.json and has not been removed
Loading composer repositories with package information
Updating dependencies (including require-dev)
Nothing to install or update
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
    You can run './vendor/bin/upgrade-carbon' to get help in updating carbon and other frameworks and libraries that depend on it.
> IlluminateFoundationComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: arrilot/laravel-widgets
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: fideloper/proxy
Discovered Package: intervention/image
Discovered Package: iwasherefirst2/laravel-multimail
Discovered Package: larapack/voyager-hooks
Discovered Package: laravel/tinker
Discovered Package: mcamara/laravel-localization
Discovered Package: nunomaduro/larastan
Discovered Package: spatie/laravel-sitemap
Discovered Package: tcg/voyager
Discovered Package: xethron/migrations-generator
Package manifest generated successfully.

How may update both packages?

2

Answers


  1. I recommend deleting composer.lock and or vendor, as Composer is not perfect in this. Often there is no conflict at all.

    • Then change remove both packages from composer.json.

    • Then let composer re-decide the highest version possible:

      composer require phpunit/phpunit
      

    You can ommit the phpunit/php-code-coverage, as it’s already in phpunit/phpunit required packages.

    Login or Signup to reply.
  2. I solved it by using --update-with-dependencies:

    $ composer require --dev --update-with-dependencies phpunit/phpunit ^7.0.0
    ./composer.json has been updated
    Loading composer repositories with package information
    Updating dependencies (including require-dev)         
    Package operations: 0 installs, 12 updates, 1 removal
      - Removing phpunit/phpunit-mock-objects (5.0.10)
      - Updating sebastian/resource-operations (1.0.0 => 2.0.1): Downloading (100%)         
      - Updating sebastian/environment (3.1.0 => 4.2.3): Downloading (100%)         
      - Updating sebastian/diff (2.0.1 => 3.0.2): Downloading (100%)         
      - Updating sebastian/comparator (2.1.3 => 3.0.2): Downloading (100%)         
      - Updating phpunit/php-timer (1.0.9 => 2.1.2): Downloading (100%)         
      - Updating phpunit/php-file-iterator (1.4.5 => 2.0.2): Downloading (100%)         
      - Updating phpunit/php-token-stream (2.0.2 => 3.1.1): Downloading (100%)         
      - Updating phpunit/php-code-coverage (5.3.2 => 6.1.4): Downloading (100%)         
      - Updating phar-io/version (1.0.1 => 2.0.1): Downloading (100%)         
      - Updating phar-io/manifest (1.0.1 => 1.0.3): Downloading (100%)         
      - Updating phpunit/phpunit (6.5.14 => 7.5.20): Downloading (100%)         
    

    (I found that option through https://github.com/composer/composer/issues/3063)

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search