Graph of cudf packages
Difference between universes
Abstract type that may be returned in case of conflicts
Compute the list of actions to match the difference between two
universe. Remark: the result order is unspecified, ie. need to use
solution_of_actions to get a solution which respects the
topological order induced by dependencies.
Computes the actions to process from a solution, from the actions
obtained by a simple universe diff. The 'simple' universe
should not contain build dependencies and will be used for resolution ;
complete_universe should include build-deps, it's used for ordering
of actions and, together with the
requested set of package names,
for computing the reasons of the actions.
Resolve a CUDF request. The result is either a conflict holding
an explanation of the error, or a resulting universe.
~extern specifies whether the external solver should be used
Computes a list of actions to proceed from the result of
Note however than the action list is not yet complete: the transitive closure
of reinstallations is not yet completed, as it requires to fold over the
dependency graph in considering the optional dependencies.
The first argument specifies a function that will be applied to the starting
universe before computation: useful to re-add orphan packages.
Cudf labels for package fields in the cudf format (use for the field Cudf.pkg_extra and with Cudf.lookup_package_property)
the original OPAM package name (as string)
the original OPAM package version (as string)
a package to be reinstalled (a bool)
true if this package belongs to the roots ("installed manually") packages
true if the package is pinned to this version
Convert a conflict to something readable by the user. The first argument should return a string like "lwt<3.2.1 is not available because..." when called on an unavailable package (the reason can't be known this deep in the solver)
Runs a test to check the version of the optimisation criteria accepted by the external solver. Result is cached for subsequent queries.