56 Commits (4140f08d9c48e80b95c0dcc6121c65aa25ed0ba4)

Author SHA1 Message Date
Nils Adermann 4140f08d9c Use a map of installed package ids in the solver
The assumption package.repo == installed no longer holds for installed
packages because there are multiple wrapped installed repositories.
13 years ago
Nils Adermann 5bd1722d7e Merge pull request #77 from benja-M-1/master
Fix the exception "Invalid argument supplied for foreach()"
13 years ago
Benjamin Grandfond 72bfe8b92c Fix Exception in Request
Fix the exception "Invalid argument supplied for foreach()" when the
install command is launched multiple times.
13 years ago
Nils Adermann e4f40272a3 Conflict handling: lastWeakWhy stores a rule, not a rule id 13 years ago
Nils Adermann 3e0e893f26 Correctly output decision map when debugging 13 years ago
Nils Adermann 85d38c653f Also detect updates resulting from feature rules rather than update rules 13 years ago
Nils Adermann 2056c4c732 Allow downgrades and uninstalls in the default policy 13 years ago
Jordi Boggiano d3aa8336dc Fix typo 13 years ago
Nils Adermann 571c14adf9 Prefer original packages over replaced packages of same repository priority 13 years ago
Nils Adermann 44369472be Define the calculation of package priorities in a single method 13 years ago
Nils Adermann 1b6f57e651 Correctly implement priorities and version numbers in the default policy 13 years ago
Nils Adermann b52d6d881a Pool repository index represents priority, highest index = highest priority 13 years ago
Nils Adermann e4c94dd415 Adding tests for the default policy specifying its desired behaviour 13 years ago
Jordi Boggiano 5623f3e69c Fix refactoring bugs 13 years ago
everzet 2fc0699492 Moved operations evaluation into new InstallationManager class 13 years ago
everzet 123f5fef77 Refactored Operations in order to fulfill naderman requests 13 years ago
everzet 0a1e7320b0 Refactored solver result array. Now it returns array of operation objects which are much nicer to work with 13 years ago
Joseph Bielawski 62bce6b9ed [Request] Be more DRY 13 years ago
Jordi Boggiano 6b5f61943a Lowercase package names in Request (fixes tests) 13 years ago
pborreli f7735c396f [Composer] Fixed typos 13 years ago
Nils Adermann 4dbb73daba Use an SplFixedArray for the solver's decision map 13 years ago
Nils Adermann 69ebbf0eac Correct handling of rules with more than 2 literals. 13 years ago
Nils Adermann 6cf8d3888c Use version contraints in the default policy rather than hardcoded version_compare 13 years ago
Nils Adermann 6118c00086 Implement minimization of branches 13 years ago
Nils Adermann 0f6fb9b692 Separate transaction generation from solving and properly identify updates 13 years ago
Nils Adermann f46aa495da Turn obsolete relationships and replaced packages into conflict rules 13 years ago
Nils Adermann 52565a5935 Implement handling of conflicts with learned rules 13 years ago
Nils Adermann b0c685176b Correct branch handling and implement reverting of decisions at a particular level 13 years ago
Nils Adermann 37e676cedd Implement analysis of conflicting rules 13 years ago
Nils Adermann 6d157b325d Package ids are always positive, so use absolute literal value for package id 13 years ago
Nils Adermann ad25618bdd Add install job and update rule conflict handling and reenable installation 13 years ago
Nils Adermann 1125de6bf2 Added disablePolicyRules to solve conflicts between remove jobs & update rules
This temporarily breaks installation of packages
13 years ago
Nils Adermann 0d30bc469b In the default policy compare object ids to avoid recursion. 13 years ago
Nils Adermann 61ad71b624 Reverse the transaction instruction order.
Early decisions cause later ones through dependencies. So in order to
perform the earlier decisions the later ones must be fulfilled first.
13 years ago
Jordi Boggiano 256955f0f7 Minor code cleanup 13 years ago
Nils Adermann 825deff09f Completed analysis of unsolvable situations and main decision process 13 years ago
Nils Adermann bc672deb32 Moving rule iteration logic to a separate RuleSet and RuleSetIterator class 13 years ago
Jordi Boggiano 3524d0388a Fixed use statement 13 years ago
Nils Adermann 498125adbe Assertions are now properly decided before running the main solver.
Updating does not work yet. The test case works fine for installing/removing
the correct packages however. Weak (update/feature) rules are entirely ignored
so far.

Watches are on literal ids rather than literals to save on function calls
and memory usage. So a few methods for literals now have an id counter part.
This should probably be refactored to have the literal versions call the
id ones instead.
13 years ago
Nils Adermann 2e41993822 Update solver to use PackageInterface and store pool package ids inside of packages 13 years ago
Nils Adermann 8cbf3f4d75 No need to unify rules, we already check for duplication on insertion 13 years ago
Jordi Boggiano 92d443d07e Fix arg order 13 years ago
Jordi Boggiano 48774ee6ca Fix Literal id generation 13 years ago
Jordi Boggiano a67a1637e1 Print more human-readable info 13 years ago
Jordi Boggiano 831f5219b6 Use spl_object_hash() instead of the package id which doesn't exist anymore 13 years ago
Jordi Boggiano b85c1a2780 Fix interfaces use statements/use interfaces for type hints 13 years ago
Nils Adermann 4dad9fa6ef Adding support for LinkConstraints to the solver requests.
Constraints are directly passed on to the pool's whatProvides method
which returns a set of packages that satisfy name and constraint conditions.
13 years ago
Nils Adermann 273e12e386 Rule unification 13 years ago
Nils Adermann f3d9c8701a Generate transaction from solver's final decision queue. 13 years ago
Nils Adermann 8c9f8fb86f Rename RelationConstraints to Links in the Package namespace.
Constraints have been generalised to allow matching requiring and providing
constraints against each other.
13 years ago