From 2b81eac01e5828c6fce61b3cafc0f78e7a0ab891 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 23 Mar 2019 15:04:44 +0100 Subject: graph: Add the 'reverse-bag' graph. Suggested by Julien Lepiller. * guix/scripts/graph.scm (%reverse-bag-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("reverse bag DAG"): New test. * doc/guix.texi (Invoking guix graph): Document it. --- doc/guix.texi | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/guix.texi b/doc/guix.texi index 94d7a29bdf..8fa714ee54 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -9290,7 +9290,9 @@ This shows the @emph{reverse} DAG of packages. For example: guix graph --type=reverse-package ocaml @end example -...@: yields the graph of packages that depend on OCaml. +...@: yields the graph of packages that @emph{explicitly} depend on OCaml (if +you are also interested in cases where OCaml is an implicit dependency, see +@code{reverse-bag} below.) Note that for core packages this can yield huge graphs. If all you want is to know the number of packages that depend on a given package, use @@ -9324,6 +9326,20 @@ dependencies. @item bag-with-origins Similar to @code{bag}, but also showing origins and their dependencies. +@item reverse-bag +This shows the @emph{reverse} DAG of packages. Unlike @code{reverse-package}, +it also takes implicit dependencies into account. For example: + +@example +guix graph -t reverse-bag dune +@end example + +@noindent +...@: yields the graph of all packages that depend on Dune, directly or +indirectly. Since Dune is an @emph{implicit} dependency of many packages +@i{via} @code{dune-build-system}, this shows a large number of packages, +whereas @code{reverse-package} would show very few if any. + @item derivation This is the most detailed representation: It shows the DAG of derivations (@pxref{Derivations}) and plain store items. Compared to -- cgit v1.2.3