Jordi Boggiano
89ce53250e
Final type additions
2022-02-23 12:54:07 +01:00
Jordi Boggiano
6da38f83a0
Add parameter types to all the things
2022-02-22 16:48:53 +01:00
Jordi Boggiano
eda9014bef
Add return types to all code which is not being extended by open source packages
2022-02-18 14:32:38 +01:00
Jordi Boggiano
a16ed3d0ed
Add return types to private/internal methods
2022-02-18 11:22:01 +01:00
Jordi Boggiano
abdc6893a6
Add void types where no return statement is present
2022-02-18 10:38:54 +01:00
Jordi Boggiano
7e27a25070
Get rid of RetutnTypeWillChange where possible, fixes #10014
2022-01-01 15:38:47 +01:00
Jordi Boggiano
ce2a40b259
List identical/compatible removed versions in problem output as if they had not been removed
2021-11-11 16:13:25 +01:00
Yanick Witschi
34183f49f9
Implemented PoolOptimizer
2021-11-11 16:13:24 +01:00
Jordi Boggiano
57e417b53a
Minor cleanup
2021-10-18 23:10:11 +02:00
immeëmosol
50d738eeee
Reaching phpstan level 6 in Composer/DependencyResolver (refs #10159 ) ( #10178 )
2021-10-18 22:33:37 +02:00
Jordi Boggiano
b209816056
Type annotations
2021-10-17 14:31:48 +02:00
Jordi Boggiano
e137046558
Type annotations
2021-10-17 10:31:09 +02:00
Jordi Boggiano
4bcd860b65
Add more type annotations
2021-09-05 17:34:12 +02:00
Jordi Boggiano
d3c176ec69
PHPStan Level 5 ( #10070 )
...
* Bump PHPStan to level 5
* Update seld/phar-utils to latest
* Add phpstan-setup / phpstan scripts
2021-08-21 17:41:52 +02:00
Jordi Boggiano
10ae1d7b08
Fix some PHP 8.1 deprecation warnings, fixes #10008
2021-07-21 15:13:24 +02:00
Jordi Boggiano
4940009f83
Bump phpstan to level 3 ( #9734 )
...
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
2021-03-09 15:49:40 +01:00
Jordi Boggiano
b7d770659b
CS fixes
2020-11-22 14:52:39 +01:00
Jordi Boggiano
7b183956d8
Make sure the root aliases always get installed when a package is updated, fixes #9448
2020-11-13 13:52:21 +01:00
Nils Adermann
74fb313c39
Separate locked packages from fixed packages in request
...
Locked packages are basically like removable fixed packages, so we still
only load one version, but we do not require their installation unless
something the user needs requires their use. So they automatically get
removed if they are no longer needed on any update.
2020-10-14 11:46:13 +02:00
Simon Berger
2223b93efd
Several small code improvements
2020-09-26 00:55:19 +02:00
Nils Adermann
2631210493
Solver: analyze multi conflict rules in conflict resolution correctly
2020-06-26 21:51:02 +02:00
Jérémy Derussé
95e6e16b78
Use Semver compiled constraints
2020-05-26 21:35:30 +02:00
Jordi Boggiano
c7fb15faf4
Update to MatchAllConstraint
2020-05-21 16:12:41 +02:00
Jordi Boggiano
81bf47ffa2
Use fully qualified calls in hot classes
2020-04-30 21:28:05 +02:00
Nils Adermann
415b36a1a1
Remove match types from Pool as these are no longer used
2020-04-07 11:11:18 +02:00
Nils Adermann
80a5fdf398
Remove obsolete rules and their generation
...
The only automatic conflict we have results from packages using the same name
either by literally having the same name and being different versions or they
replace the same name, so
- removed all types of obsolete rules
- simplified rule generation significantly
- got rid of provide filtering in the pool
- fixed some language in error handling
2020-04-07 11:11:18 +02:00
Nils Adermann
4e3d989978
A package providing a name should not conflict with a package replacing it
...
Simplified whatProvides, mustMatchName is unused, removed unused
function from policy
2020-04-07 11:08:47 +02:00
Jordi Boggiano
8a41f1a5ca
Allow providers which are selected to be installed in place of existing packages which do not satisfy requirements, fixes #6753
2020-01-30 14:09:55 +01:00
Jordi Boggiano
1d31190472
Keep track of unacceptable fixed packages for later to use in error reporting and make sure the pool state is consistent
2020-01-17 15:48:31 +01:00
Jordi Boggiano
f68731e663
Remove package/repo priority concept as it is enforced by the pool builder now
2020-01-15 14:52:44 +01:00
Yanick Witschi
d1dc367d86
Removed the filters from the pool
2019-11-27 17:57:24 +01:00
Nils Adermann
10ada7bf82
Refactor Installer class into separate install and update processes
...
- Introduce separate Lock and LocalRepo transactions, one for changes
to the lock file, one for changes to locally installed packages based
on lock file
- Remove various hacks to keep dev dependencies updated and
incorporated the functionality into the transaction classes
- Remove installed repo, there are now local repo, locked repo and
platform repo
- Remove access to local repo from solver, only supply locked packages
- Update can now be run to modify the lock file but not install packages
to local repo
2019-02-11 01:00:02 +01:00
Nils Adermann
83efeaec5c
Attempt to prune versions which are impossible to install during pool building
2018-09-14 14:40:34 +02:00
Nils Adermann
7c2d3518e5
Remove whitelisting of required package names, done by pool builder now
2018-09-12 19:03:57 +02:00
Nils Adermann
81bb8f81ad
Set all package ids only once the pool is created
...
They all get set in one place only and at a specific time when nothing
else will possibly change them anymore
2018-09-12 14:31:40 +02:00
Nils Adermann
c0f19f6c57
Move construction of pool from repo set into a pool builder
...
Pool construction depends on the install request now, so only required
packages get loaded, add some structure for future asynchronously
loading composer repositories
2018-09-12 11:49:09 +02:00
Nils Adermann
1228bcdffc
Internalize pool creation in repository set, store root aliases in set
...
The pool is still exposed too early in a few places which will require
further refactoring
2018-09-11 13:34:18 +02:00
Nils Adermann
6ef65e5319
Add a new RepositorySet class and restrict pool usage to the solver
...
Breaking change for the plugin interface so bumping the version of
composer-plugin-api to 2.0.0
First step for a refactoring of the package metadata loading mechanism
2018-09-10 15:27:54 +02:00
Christophe Coevoet
e5b948c683
Refactor the handling of conflict rules in the solver
...
Conflict rules are not added in the solver based on the packages loaded in the
solver by require rules, instead of loading remote metadata for them. This has
2 benefits:
- it reduces the number of conflict rules in the solver in case of conflict
rules targetting packages which are not required
- it fixes the behavior of replaces, which is meant to conflict with all
versions of the replaced package, without introducing a performance
regression (this behavior was changed when optimizing composer in the past).
2018-08-27 12:14:34 +02:00
Jordi Boggiano
623c0dcda7
Improve solver error reporting, fixes #5086 , fixes #2575 , fixes #2661
2016-04-01 00:18:36 +01:00
Jordi Boggiano
c9436438ff
Add memoization to parseConstraints, saves some (6-7% here) RAM and marginal CPU time
2016-02-24 17:27:42 +00:00
Rob Bast
1c7016de45
remove dead code/class
2015-10-13 12:37:15 +02:00
Jordi Boggiano
ce08582671
Fix CS
2015-09-28 10:53:24 +01:00
Rob Bast
a1427d7fd6
replace all occurences in code and comments
2015-09-24 16:32:36 +02:00
Nils Adermann
07e1d227c9
Output the size of the pool after dependency resolution for users
2015-07-07 15:40:26 +02:00
Nils Adermann
75c501251d
Revert "Merge remote-tracking branch 'naderman/load-no-providers'"
...
This reverts commit 3e85f82373
, reversing
changes made to b025d0982b
.
2015-06-18 15:40:27 +02:00
Nils Adermann
cfd0e44312
Move private function further down in pool
2015-05-05 20:28:22 +02:00
Nils Adermann
ec5416f03c
loadDev parameter is nonsense, properly load packages in create command
2015-05-05 19:58:03 +02:00
Nils Adermann
b99c03ea04
Entirely remove whatProvides from Composer repository
2015-05-05 19:28:15 +02:00
Nils Adermann
090711b21c
Completely move loading of packages from composer repo to pool
2015-05-05 19:08:33 +02:00