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
I recommend deleting
composer.lock
and orvendor
, 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:
You can ommit the
phpunit/php-code-coverage
, as it’s already inphpunit/phpunit
required packages.I solved it by using
--update-with-dependencies
:(I found that option through https://github.com/composer/composer/issues/3063)