1
0
Fork 0
composer/doc/dev/DefaultPolicy.md

56 lines
1.3 KiB
Markdown
Raw Permalink Normal View History

# Default Solver Policy
A solver policy defines behaviour variables of the dependency solver. It decides
which versions are considered newer than others, which packages should be
2012-06-20 21:15:54 +00:00
preferred over others and whether operations like downgrades or uninstall are
allowed.
2012-06-20 21:15:54 +00:00
## Selection of preferred Packages
The following describe package pool situations with user requests and the
resulting order in which the solver will try to install them.
The rules are to be applied in the order of these descriptions.
### Repository priorities
Packages Repo1.Av1, Repo2.Av1
* priority(Repo1) >= priority(Repo2) => (Repo1.Av1, Repo2.Av1)
* priority(Repo1) < priority(Repo2) => (Repo2.Av1, Repo1.Av1)
### Package versions
Packages: Av1, Av2, Av3
2011-10-22 11:02:12 +00:00
* Installed: Av2
Request: install A
2011-10-22 11:02:12 +00:00
* (Av3)
### Virtual Packages (provides)
Packages Av1, Bv1
2011-10-22 11:02:12 +00:00
* Av1 provides Xv1
* Bv1 provides Xv1
Request: install X
2011-10-22 11:02:12 +00:00
* priority(Av1.repo) >= priority(Bv1.repo) => (Av1, Bv1)
2012-02-12 08:45:04 +00:00
* priority(Av1.repo) < priority(Bv1.repo) => (Bv1, Av1)
### Package replacements
Packages: Av1, Bv2
2011-10-22 11:02:12 +00:00
* Bv2 replaces Av1
Request: install A
2012-02-12 08:45:04 +00:00
* priority(Av1.repo) >= priority(Bv2.repo) => (Av1, Bv2)
* priority(Av1.repo) < priority(Bv2.repo) => (Bv2, Av1)
2012-02-12 08:45:04 +00:00
Bv2 version is ignored, only the replacement version for A matters.