Ask HN: How to visualize dependency graphs?
My implementation of DJB redo [1] can output build dependency graphs that can be rendered with Graphviz. A recurring problem I have been having is that often, a target has many dependencies that share their dependencies, leading to unreadable graphs [2].
How could I create a readable dependency graph for such cases?
[1] http://news.dieweltistgarnichtso.net/bin/redo-sh.html [2] http://daten.dieweltistgarnichtso.net/pics/graphs/redo/liberation-circuit-deps.png
6 comments
[ 3.4 ms ] story [ 27.0 ms ] threadGive the "product" (which has nothing depending on it) the number 0, then the number for anything else is the length of the longest chain of dependencies from the root to the dependency in question.
You could put layer 0 on the far right, and then layer 1, layer 2 in vertical rows going to the left for instance. The important thing is that the arrows always point from right to left so they are not tangled. There are other ways you could assign dependencies to layers that might look better or be more informative but the "arrows always point the same way" property prevents tangling.
Layout along the other axis is a different question, I'd imagine you could shuffle the vertical order of the dependencies in the layers to minimize the number of arrows that cross or something.