75 Commits (6ef47baca1a78293f1b5b73bd18330f2e66f0a74)

Author SHA1 Message Date
Yanick Witschi 6ef47baca1
Added a todo for package dupes 4 years ago
Yanick Witschi 014e9d5dd1
Fixed last remaining pool builder test 4 years ago
Yanick Witschi 5097ed6480
Fixed another test 4 years ago
Yanick Witschi 5a835db24d
Fixed another partial update test 4 years ago
Yanick Witschi 7be24dccd9
Fixed some of the partial update tests 4 years ago
Yanick Witschi 225a6a0a82
Improved variable naming 4 years ago
Yanick Witschi 0955d38374
Simplify package loading 4 years ago
Yanick Witschi 779b56ab2b
Fixed psalm annotations 4 years ago
Yanick Witschi b00291cf21
CS 4 years ago
Yanick Witschi 00500f83c0
Using the current subset branch of @Seldaek to fix subset tests 4 years ago
Yanick Witschi 26877285ad
Filter duplicate packages 4 years ago
Yanick Witschi 2427bef238
Typo 4 years ago
Yanick Witschi bca88bdd4b
Fixed PoolBuilder running endlessly when packages do not exist 4 years ago
Yanick Witschi b87fc5bbfd
Added more poolbuilder test 4 years ago
Yanick Witschi d78c37edd2
Cleanup and added some more improvements, tests still failing 4 years ago
Nils Adermann 5dd4b456b9
PoolBuilder: Do not load any alternatives to pkgs replaced by fixed pkg 4 years ago
Nils Adermann bb4cabc0b9
PoolBuilder: Avoid loading any alternatives to fixed packages 4 years ago
Yanick Witschi 1c8865a5d1
Comment 4 years ago
Yanick Witschi 10555ecff3
Make sure there's always a constraint 4 years ago
Yanick Witschi 912aecb666
Removed name constraints 4 years ago
Yanick Witschi af7feade8f
POC 4 years ago
Jordi Boggiano 1055be7936
Fix unfixing of packages when a replacer gets unfixed before a replacee, refs #8882 4 years ago
Jordi Boggiano c7fb15faf4
Update to MatchAllConstraint 4 years ago
Markus Staab 11930001fb
Added phpdoc types for PoolBuilder (#8862) 4 years ago
Jordi Boggiano 81bf47ffa2
Use fully qualified calls in hot classes 4 years ago
Jordi Boggiano af18c2bd7d
Update semver, fix poolbuilder usage and optimize creation of filtering nameConstraints 4 years ago
Jordi Boggiano a695f686c3
Add some docblocks and make sure RepositorySet/PoolBuilder accept regular rootAliases and not pre-normalized ones 4 years ago
Jordi Boggiano b166ef4b58
Fix more phpstan errors 4 years ago
Nils Adermann 9858718ef6 Give a clearer error message explaining how to update a conflicting locked dependency 4 years ago
Nils Adermann 5ad93959cf PoolBuilder: On partial update of a new dep with mutual replace, unfix replacer
Test also verifies provider does not get uninstalled in partial update
for another package name
4 years ago
Nils Adermann 613450e58a PoolBuilder: properly clean up alias packages when unfixing packages
Prevent aliases to be duplicated: no need to apply root aliases from
composer.json on packages currently locked, they should have their
aliases in the lock file, otherwise request an update.
4 years ago
Nils Adermann 2dfbf3692a PoolBuilder: Remove null default for io 4 years ago
Nils Adermann 14000e7575 PoolBuilder: Ensure alias references get removed when unfixing a locked package
Use the last key + 1 for an index instead of count, since we unset elements somtimes
4 years ago
Nils Adermann c270d3cfa6 PoolBuilder: make io non-nullable, NullIO can be used instead 4 years ago
Nils Adermann 71c3c63b54 Remove unused variable assignment 4 years ago
Nils Adermann fc40fefa6f Make sure nameConstraints is always set when loading a name 4 years ago
Nils Adermann 443553423b Mark replaced packages for update when using --with-dependencies
This is necessary to allow the requiring of new packages which replace
packages currently locked without requiring explicitly listing them as
an argument, so simplifies the composer require command
4 years ago
Nils Adermann 392d0abd21 Rename test files and standardize on allow list rather than whitelist 4 years ago
Nils Adermann 01fe92905a The update allow list is now generated while building the pool
This reduces code complexity while making partial updates more
predictable. This also allows composer require to successfully run a
partial update for a new package with transitive dependency updates.
4 years ago
Nils Adermann da84763f03 Move partial update handling to pool builder 4 years ago
Jordi Boggiano cf5513f28d
Fix syntax error 4 years ago
Nils Adermann 8a6382d78d Remove unnecessary TODOs and skip EmptyConstraint like null 4 years ago
Nils Adermann bbdbb3517b PoolBuilder: Drop name constraints loop, already set earlier in same code 4 years ago
Nils Adermann 59bc957e76 Simplify loading of fixed and root require packages in pool builder
additionally mark all packages replaced by fixed packages as loaded as
there is no need to load those names at all, since the fixed package
will provide them
4 years ago
Jordi Boggiano d58653627a Optimize loading of deps from fixed packages 4 years ago
Jordi Boggiano 82e2a679bf Add TODO note 4 years ago
Jordi Boggiano 835a91532d
Add PRE_POOL_CREATE event, fixes #8348 4 years ago
Jordi Boggiano 3fc7e10c5c
Improve error reporting of solver issues, refs #7779
Fixes #8525
Fixes #6513
4 years ago
Nils Adermann 5bdc0fc9c5 Request jobs replaced by root require / fixed package
The only type of request job remaining was "install" which is really a
root requirement. The only other kind of input for the solver is now a
set of fixed packages.

Rules have been updated to account for only two kinds of former job
reason: FIXED or ROOT_REQUIRE. The job property has always been
redundant and has been removed, since reasonData suffices.

Problem reasons are always rules, so the unnecessary wrapping in an
array has been removed.

We now only ever generate a single rule per root require or fixed
package, so there is no need for the solver to special handle disabling
"jobs" anymore, the rule can just be disabled as usual.

For consistency special handling of rules for jobs in problems has been
integrated into the rule class like all other rule reasons. As part of
this change the error message for root requirements has been improved a
bit to make it clearer where the package installation request came from.

The word job has also been removed from operations, which are called
operations, not jobs.
5 years ago
Jordi Boggiano 1d31190472
Keep track of unacceptable fixed packages for later to use in error reporting and make sure the pool state is consistent 5 years ago