Cudf interface
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.
May raise Cyclic_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 resolve.
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.
remove universe name constr Remove all the packages called
name satisfying the constraints constr in the universe
universe.
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 package constraint to something readable.
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)
Dumps the given cudf universe to the given channel
Runs a test to check the version of the optimisation criteria accepted by the external solver. Result is cached for subsequent queries.