graph: command to generate graphviz representation #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit adds rift graph command to generate graphviz representation of packages dependency graph in a project. The graph is printed on standard output. It can be redirected to graphviz
dotcommand to generate an image in multiple formats.For example, it is possible to run this command to generate the dependency graph as PNG image:
$ rift graph | dot -Tpng -orift.png
With the option --with-external, external dependencies are represented as additional nodes in the graph with relations between project packages and these external dependencies.
It is also possible to represent a subset of the project graph by specifying a list of packages or a module name in argument. In this case, only these packages in argument with their recursive dependencies are represented in the graph.
Unit test are added to verify content of the representation in graphviz format and validate packages selection based on the arguments.