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
Nils Adermann
4d0db5add6
POC Implementation of loading only explicitly named package data
2015-05-04 17:25:55 +02:00
Hannes Van De Vreken
d017fa4a1d
Unused variable
2015-04-06 11:58:12 +02:00
Jordi Boggiano
3ba581f0df
Improve error messages for required hhvm/php versions, fixes #3767
2015-02-25 16:24:39 +00:00
Nils Adermann
c6af09b1da
Make project id public
...
Reduction of rougly 1.3 million function calls on packagist update
2014-12-01 18:18:02 +01:00
Nils Adermann
dccb728e10
Remove further unnecessary checks for packages being arrays
2014-11-20 17:42:05 +01:00
Nils Adermann
89bd9be295
This entirely removes StreamableRepositories and minimal package arrays
2014-11-20 17:23:51 +01:00
Sam Mousa
670ca2f889
Fixed issue #3441
2014-11-20 14:17:40 +01:00
Nils Adermann
83159dc153
Use elseif instead of else { if {
2014-11-20 12:54:56 +01:00
Nils Adermann
0daaa1a902
Reduce whatProvides overhead
2014-11-20 12:54:56 +01:00
Jordi Boggiano
94926218e8
CS fixes
2014-10-17 18:57:27 +01:00
Ryan Weaver
947db97e33
[ #2492 ] Removing an unused variable and use statement, fixing phpdoc
2014-09-12 11:26:51 -04:00
Jordi Boggiano
ac497feaba
CS fixes
2014-06-10 16:13:12 +02:00
Jordi Boggiano
e23665be59
Fix replacers being picked if whatProvide was called before building the package whitelist, fixes #2991 , fixes #2962
2014-05-23 15:22:53 +02:00
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
2014-03-12 16:35:23 +01:00
Nils Adermann
aa74818fe0
Handle array candidates in whatProvides
2014-02-21 16:53:59 +01:00
Nils Adermann
eb5c785dcd
Remove superfluous string casts
2014-02-21 14:22:38 +01:00
Nils Adermann
bc7008270f
Properly limit to name matches only if necessary
2014-02-21 13:15:54 +01:00
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
2014-02-21 12:25:15 +01:00
Jordi Boggiano
51e6c3a466
Optimize solving by removing packages that are excluded by the root package requires
2013-12-31 16:58:31 +01:00
Jordi Boggiano
11a0d16ccc
CS fixes
2013-10-11 20:12:45 -03:00
Jordi Boggiano
051d219438
Fix whatProvides returning too many results when no constraint is given
2013-08-12 18:37:34 +02:00
Jordi Boggiano
326faf2b51
Minor cleanups
2013-05-02 17:41:55 +02:00
Martin Hasoň
753a8345cb
Added support for the alias of an aliased package
2013-04-11 13:20:34 +02:00
Jordi Boggiano
a0d1d59868
Fix handling of aliases in streamable repos, fixes #1776 , fixes #1749
2013-04-08 15:38:09 +02:00