I have a project with composer that requires vendor/package-1 in the main project composer.json file, vendor/package-1 requires vendor/package-2 in the composer.json of the package-1. I have currently installed version 1.18.11 of vendor/package-1 and version 2.3.2 of vendor/package-2. I want to update to new vendor/package-1 version 1.19.* (that requires version 2.4.* from vendor/package-2) and executing:
composer require vendor/package-1:1.19.*
Fails and the output I get is
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
- vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2].
- vendor/package-1 v1.19.1 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2].
- vendor/package-1 v1.19.2 requires vendor/package2 2.4.* -> satisfiable by vendor/package2[v2.4.3, v2.4.0, v2.4.1, v2.4.2].
- Can only install one of: vendor/package2[v2.3.2, v2.4.3].
- Can only install one of: vendor/package2[v2.4.0, v2.3.2].
- Can only install one of: vendor/package2[v2.4.1, v2.3.2].
- Can only install one of: vendor/package2[v2.4.2, v2.3.2].
- Can only install one of: vendor/package2[v2.4.3, v2.3.2].
- Installation request for vendor/package2 == 2.3.2.0 -> satisfiable by vendor/package2[v2.3.2].
- Installation request for vendor/package-1 1.19.* -> satisfiable by vendor/package-1[v1.19.1, v1.19.2].
Installation failed, reverting ./composer.json to its original content.
Does the composer require command need to be specified for all the dependencies? If I try
composer require vendor/package-1:1.19.* vendor/package-2:2.4.*
It works but it shouldn't be necessary to specify every dependency, right?