OpamSolver.ActionGraphSourceinclude OpamParallel.GRAPH with type V.t = package OpamTypes.actionmodule V : sig ... endtype vertex = V.tmodule E : sig ... endtype edge = E.tval is_empty : t -> boolval nb_vertex : t -> intval nb_edges : t -> intval create : ?size:int -> unit -> tval clear : t -> unittype g = tmodule Topological : sig ... endmodule Parallel : sig ... endmodule Dot : sig ... endval transitive_closure : ?reflexive:bool -> t -> unitReduces a graph of atomic or concrete actions (only removals, installs and builds) by turning removal+install to reinstalls or up/down-grades, best for display. Dependency ordering won't be as accurate though, as there is no proper ordering of (reinstall a, reinstall b) if b depends on a. The resulting graph contains at most one action per package name.
There is no guarantee however that the resulting graph is acyclic.
Expand install actions, adding a build action preceding them. The argument noop_remove is a function that should return `true` for package where the `remove` action is known not to modify the filesystem (such as `conf-*` package).