118 Commits (6a466a120a404d1c5d492e5ca715841c491517fc)

Author SHA1 Message Date
Jordi Boggiano 6a466a120a
Enable strict types on all files 2 years ago
Jordi Boggiano 89ce53250e
Final type additions 2 years ago
Jordi Boggiano 6da38f83a0
Add parameter types to all the things 2 years ago
Jordi Boggiano eda9014bef
Add return types to all code which is not being extended by open source packages 2 years ago
Jordi Boggiano a16ed3d0ed
Add return types to private/internal methods 2 years ago
Jordi Boggiano abdc6893a6
Add void types where no return statement is present 2 years ago
Jordi Boggiano 7e27a25070
Get rid of RetutnTypeWillChange where possible, fixes #10014 2 years ago
Jordi Boggiano ce2a40b259
List identical/compatible removed versions in problem output as if they had not been removed 3 years ago
Yanick Witschi 34183f49f9
Implemented PoolOptimizer 3 years ago
Jordi Boggiano 57e417b53a
Minor cleanup 3 years ago
immeëmosol 50d738eeee
Reaching phpstan level 6 in Composer/DependencyResolver (refs #10159) (#10178) 3 years ago
Jordi Boggiano b209816056
Type annotations 3 years ago
Jordi Boggiano e137046558
Type annotations 3 years ago
Jordi Boggiano 4bcd860b65
Add more type annotations 3 years ago
Jordi Boggiano d3c176ec69
PHPStan Level 5 (#10070)
* Bump PHPStan to level 5

* Update seld/phar-utils to latest

* Add phpstan-setup / phpstan scripts
3 years ago
Jordi Boggiano 10ae1d7b08
Fix some PHP 8.1 deprecation warnings, fixes #10008 3 years ago
Jordi Boggiano 4940009f83
Bump phpstan to level 3 (#9734)
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
3 years ago
Jordi Boggiano b7d770659b
CS fixes 4 years ago
Jordi Boggiano 7b183956d8
Make sure the root aliases always get installed when a package is updated, fixes #9448 4 years ago
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.
4 years ago
Simon Berger 2223b93efd Several small code improvements 4 years ago
Nils Adermann 2631210493 Solver: analyze multi conflict rules in conflict resolution correctly 4 years ago
Jérémy Derussé 95e6e16b78
Use Semver compiled constraints 4 years ago
Jordi Boggiano c7fb15faf4
Update to MatchAllConstraint 4 years ago
Jordi Boggiano 81bf47ffa2
Use fully qualified calls in hot classes 4 years ago
Nils Adermann 415b36a1a1 Remove match types from Pool as these are no longer used 4 years ago
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
4 years ago
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
4 years ago
Jordi Boggiano 8a41f1a5ca
Allow providers which are selected to be installed in place of existing packages which do not satisfy requirements, fixes #6753 4 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 4 years ago
Jordi Boggiano f68731e663
Remove package/repo priority concept as it is enforced by the pool builder now 4 years ago
Yanick Witschi d1dc367d86 Removed the filters from the pool 5 years ago
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
5 years ago
Nils Adermann 83efeaec5c Attempt to prune versions which are impossible to install during pool building 6 years ago
Nils Adermann 7c2d3518e5 Remove whitelisting of required package names, done by pool builder now 6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
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
6 years ago
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).
6 years ago
Jordi Boggiano 623c0dcda7 Improve solver error reporting, fixes #5086, fixes #2575, fixes #2661 8 years ago
Jordi Boggiano c9436438ff Add memoization to parseConstraints, saves some (6-7% here) RAM and marginal CPU time 8 years ago
Rob Bast 1c7016de45 remove dead code/class 9 years ago
Jordi Boggiano ce08582671 Fix CS 9 years ago
Rob Bast a1427d7fd6 replace all occurences in code and comments 9 years ago
Nils Adermann 07e1d227c9 Output the size of the pool after dependency resolution for users 9 years ago
Nils Adermann 75c501251d Revert "Merge remote-tracking branch 'naderman/load-no-providers'"
This reverts commit 3e85f82373, reversing
changes made to b025d0982b.
9 years ago
Nils Adermann cfd0e44312 Move private function further down in pool 9 years ago
Nils Adermann ec5416f03c loadDev parameter is nonsense, properly load packages in create command 9 years ago
Nils Adermann b99c03ea04 Entirely remove whatProvides from Composer repository 9 years ago