mirror of
https://github.com/composer/composer
synced 2025-05-09 00:22:53 +00:00
Filter impossible packages from the pool (#9620)
Adds a new pass to the PoolOptimizer Co-authored-by: Jordi Boggiano <j.boggiano@seld.be>
This commit is contained in:
parent
a3e91b5be6
commit
8c8d9efd87
4 changed files with 115 additions and 12 deletions
|
@ -0,0 +1,54 @@
|
|||
--TEST--
|
||||
Do not load packages into the pool that cannot meet the fixed/locked requirements, when a loose requirement is encountered during update
|
||||
|
||||
--REQUEST--
|
||||
{
|
||||
"require": {
|
||||
"some/pkg": "*",
|
||||
"root/req": "*"
|
||||
},
|
||||
"locked": [
|
||||
{"name": "some/pkg", "version": "1.0.3", "require": {"dep/dep": "*"}, "id": 1},
|
||||
{"name": "root/req", "version": "1.0.0", "require": {"dep/dep": "2.*"}, "id": 2},
|
||||
{"name": "dep/dep", "version": "2.0.0", "id": 3}
|
||||
],
|
||||
"allowList": [
|
||||
"some/pkg"
|
||||
],
|
||||
"allowTransitiveDeps": true
|
||||
}
|
||||
|
||||
--FIXED--
|
||||
[
|
||||
]
|
||||
|
||||
--PACKAGE-REPOS--
|
||||
[
|
||||
[
|
||||
{"name": "some/pkg", "version": "1.0.4", "require": {"dep/dep": "*"}},
|
||||
{"name": "root/req", "version": "1.0.0", "require": {"dep/dep": "2.*"}},
|
||||
{"name": "dep/dep", "version": "1.0.0", "provide": {"other/pkg": "*"}},
|
||||
{"name": "dep/dep", "version": "1.0.1", "provide": {"other/pkg": "*"}},
|
||||
{"name": "dep/dep", "version": "1.0.2", "provide": {"other/pkg": "*"}},
|
||||
{"name": "dep/dep", "version": "2.0.0"},
|
||||
{"name": "dep/dep", "version": "2.0.1"}
|
||||
]
|
||||
]
|
||||
|
||||
--EXPECT--
|
||||
[
|
||||
2,
|
||||
"some/pkg-1.0.4.0",
|
||||
"dep/dep-1.0.0.0",
|
||||
"dep/dep-1.0.1.0",
|
||||
"dep/dep-1.0.2.0",
|
||||
"dep/dep-2.0.0.0",
|
||||
"dep/dep-2.0.1.0"
|
||||
]
|
||||
|
||||
--EXPECT-OPTIMIZED--
|
||||
[
|
||||
2,
|
||||
"some/pkg-1.0.4.0",
|
||||
"dep/dep-2.0.1.0"
|
||||
]
|
|
@ -86,6 +86,5 @@ Partially updating one root requirement with transitive deps fully updates trans
|
|||
"symlinked/path-pkg-2.0.0.0",
|
||||
"root/update-1.0.4.0",
|
||||
"symlinked/transitive2-2.0.4.0",
|
||||
"mirrored/transitive2-1.0.7.0",
|
||||
"mirrored/transitive2-2.0.8.0"
|
||||
"mirrored/transitive2-1.0.7.0"
|
||||
]
|
||||
|
|
|
@ -55,6 +55,5 @@ locked packages still need to be taking into account for loading all necessary v
|
|||
"root/req2-1.0.0.0 (locked)",
|
||||
"dep/pkg2-1.0.0.0",
|
||||
"dep/pkg2-1.2.0.0",
|
||||
"dep/pkg1-1.0.1.0",
|
||||
"dep/pkg1-2.0.0.0"
|
||||
"dep/pkg1-1.0.1.0"
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue