93 Commits (00e1deec904c34ee5f3a96209c6639f6f53a1452)

Author SHA1 Message Date
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 5 years ago
Jordi Boggiano f68731e663
Remove package/repo priority concept as it is enforced by the pool builder now 5 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
Nils Adermann 090711b21c Completely move loading of packages from composer repo to pool 9 years ago
Nils Adermann 4d0db5add6 POC Implementation of loading only explicitly named package data 9 years ago
Hannes Van De Vreken d017fa4a1d Unused variable 9 years ago
Jordi Boggiano 3ba581f0df Improve error messages for required hhvm/php versions, fixes #3767 9 years ago
Nils Adermann c6af09b1da Make project id public
Reduction of rougly 1.3 million function calls on packagist update
10 years ago
Nils Adermann dccb728e10 Remove further unnecessary checks for packages being arrays 10 years ago
Nils Adermann 89bd9be295 This entirely removes StreamableRepositories and minimal package arrays 10 years ago
Sam Mousa 670ca2f889 Fixed issue #3441 10 years ago
Nils Adermann 83159dc153 Use elseif instead of else { if { 10 years ago
Nils Adermann 0daaa1a902 Reduce whatProvides overhead 10 years ago
Jordi Boggiano 94926218e8 CS fixes 10 years ago
Ryan Weaver 947db97e33 [#2492] Removing an unused variable and use statement, fixing phpdoc 10 years ago
Jordi Boggiano ac497feaba CS fixes 10 years ago
Jordi Boggiano e23665be59 Fix replacers being picked if whatProvide was called before building the package whitelist, fixes #2991, fixes #2962 10 years ago
Christian Flothmann 0e9325da79 for AliasPackages check that the aliased package is white listed so that version constraints of AliasPackages are taken into account when computing package provisions 10 years ago
Nils Adermann aa74818fe0 Handle array candidates in whatProvides 10 years ago
Nils Adermann eb5c785dcd Remove superfluous string casts 10 years ago
Nils Adermann bc7008270f Properly limit to name matches only if necessary 10 years ago
Nils Adermann 3148ffd355 Whitelist packages with names matching those specified before generating rules
Addresses #2690 doesn't do any performance optimisations yet which we
could do now
10 years ago
Jordi Boggiano 51e6c3a466 Optimize solving by removing packages that are excluded by the root package requires 11 years ago
Jordi Boggiano 11a0d16ccc CS fixes 11 years ago
Jordi Boggiano 051d219438 Fix whatProvides returning too many results when no constraint is given 11 years ago
Jordi Boggiano 326faf2b51 Minor cleanups 11 years ago
Martin Hasoň 753a8345cb Added support for the alias of an aliased package 11 years ago
Jordi Boggiano a0d1d59868 Fix handling of aliases in streamable repos, fixes #1776, fixes #1749 11 years ago