terraform/dag
Paul Hinze ce49dd6080 core: graph command gets -verbose and -draw-cycles
When you specify `-verbose` you'll get the whole graph of operations,
which gives a better idea of the operations terraform performs and in
what order.

The DOT graph is now generated with a small internal library instead of
simple string building. This allows us to ensure the graph generation is
as consistent as possible, among other benefits.

We set `newrank = true` in the graph, which I've found does just as good
a job organizing things visually as manually attempting to rank the nodes
based on depth.

This also fixes `-module-depth`, which was broken post-AST refector.
Modules are now expanded into subgraphs with labels and borders. We
have yet to regain the plan graphing functionality, so I removed that
from the docs for now.

Finally, if `-draw-cycles` is added, extra colored edges will be drawn
to indicate the path of any cycles detected in the graph.

A notable implementation change included here is that
{Reverse,}DepthFirstWalk has been made deterministic. (Before it was
dependent on `map` ordering.) This turned out to be unnecessary to gain
determinism in the final DOT-level implementation, but it seemed
a desirable enough of a property that I left it in.
2015-04-27 09:23:47 -05:00
..
dag.go core: graph command gets -verbose and -draw-cycles 2015-04-27 09:23:47 -05:00
dag_test.go core: targeted operations 2015-03-31 14:49:38 -05:00
edge.go dag: export more things 2015-02-19 12:08:07 -08:00
edge_test.go dag: Remove, RemoveEdge, DownEdges, UpEdges 2015-02-19 12:07:54 -08:00
graph.go dag: Replace 2015-02-19 12:07:56 -08:00
graph_test.go dag: Replace 2015-02-19 12:07:56 -08:00
set.go dag: TransitiveReduction 2015-02-27 19:12:19 -08:00
tarjan.go dag: fix walk order issue, scc issues 2015-02-19 12:07:55 -08:00
tarjan_test.go dag: Remove, RemoveEdge, DownEdges, UpEdges 2015-02-19 12:07:54 -08:00