Module Diagnostic

module Diagnostic: sig .. end
One un-installability reason for a package

type reason = 
| Dependency of (Cudf.package * Cudf_types.vpkg list * Cudf.package list) (*
Not strictly a un-installability, Dependency (a,vpkglist,pkglist) is used to recontruct the the dependency path from the root package to the offending un-installable package
*)
| Missing of (Cudf.package * Cudf_types.vpkg list) (*
Missing (a,vpkglist) means that the dependency vpkglist of package a cannot be satisfied
*)
| Conflict of (Cudf.package * Cudf.package * Cudf_types.vpkg) (*
Conflict (a,b,vpkg) means that the package a is in conflict with package b because of vpkg
*)

The request provided to the solver

Check the installability of one package
type request = Cudf.package list 
Check the installability of a list of packages
type result = 
| Success of (?all:bool -> unit -> Cudf.package list) (*
If successfull returns a function that will return the installation set for the given query. Since not all packages are tested for installability directly, the installation set might be empty. In this case, the solver can be called again to provide the real installation set using the parameter ~all:true
*)
| Failure of (unit -> reason list) (*
If unsuccessful returns a function containing the list of reason
*)
The result of an installability query
type diagnosis = {
   result : result;
   request : request;
}
The aggregated result from the solver
module ResultHash: Hashtbl.S  with type key = reason
type summary = {
   mutable missing : int;
   mutable conflict : int;
   mutable unique_missing : int;
   mutable unique_conflict : int;
   mutable unique_selfconflict : int;
   summary : Cudf.package list Pervasives.ref ResultHash.t;
   statistic : (int * int, int Pervasives.ref) Hashtbl.t;
}
Collect aggregate information about not installable packages
val default_result : int -> summary
val collect : summary -> diagnosis -> unit
collect summary result. Callback function to collect result information in the summary data structure. Can be used to build a custom callback function for Depsolver.listcheck or Depsolver.univcheck
val pp_out_version : Format.formatter -> unit
print output version
val pp_package : ?source:bool ->
?fields:bool -> Common.CudfAdd.pp -> Format.formatter -> Cudf.package -> unit
default package pretty printer.
val pp_dependency : Common.CudfAdd.pp ->
?label:string ->
Format.formatter -> Cudf.package * Cudf_types.vpkglist -> unit
print a list of cudf dependency. The label specifies the type of dependency ("depends" by default)
val pp_dependencies : Common.CudfAdd.pp ->
Format.formatter -> (Cudf.package * Cudf_types.vpkglist) list list -> unit
Print the list of dependencies of a package.
val pp_list : (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a list -> unit
val print_error : ?minimal:bool ->
Common.CudfAdd.pp ->
Cudf.package -> Format.formatter -> reason list -> unit
val get_installationset : ?minimal:bool -> diagnosis -> Cudf.package list
If the installablity query is successfull, get_installationset return the associated installation set . If minimal is true (false by default), the installation set is restricted to the dependency cone of the packages specified in the installablity query. @Raise Not_found if the result is a failure.
val is_solution : diagnosis -> bool
True is the result of an installablity query is successfull. False otherwise
val pp_summary : ?pp:Common.CudfAdd.pp ->
?explain:bool -> unit -> Format.formatter -> summary -> unit
print a aggregate information of not installable packages.
pp : cudf package printer
explain : if true, print the list of all affected packages associated to and installation problem.
val print_error_human : ?prefix:string ->
Common.CudfAdd.pp ->
Cudf.package -> Format.formatter -> reason list -> unit
val fprintf_human : ?pp:Common.CudfAdd.pp ->
?prefix:string -> Format.formatter -> diagnosis -> unit
print a human readable explanation (DEV)
val fprintf : ?pp:Common.CudfAdd.pp ->
?failure:bool ->
?success:bool ->
?explain:bool ->
?minimal:bool -> Format.formatter -> diagnosis -> unit
printf fmt d print the output of the solver in yaml format to the formatter fmt.
pp : cudf package printer
failure : print the list of not installable packages
success : print the list of installable packages
explain : for installable packages, print the associated installation set for not installable packages, print the all dependencies chains
val printf : ?pp:Common.CudfAdd.pp ->
?failure:bool ->
?success:bool -> ?explain:bool -> diagnosis -> unit
like fprintf but print using the standard formatter
val print_dot : ?pp:Common.CudfAdd.pp ->
?addmissing:bool -> ?dir:string -> diagnosis -> unit
print the explanation graph in dot format to the standard formatter