This repository has been archived by the owner on Sep 9, 2020. It is now read-only.
graphviz: project-package relationship graph #1588
Merged
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.
What does this do / why do we need it?
This change introduces "clusters", which are projects with multiple
subpackages. Clusters are created using "subgraph" in dot syntax.
To create a project-package relationship graph, nodes and
subgraphs are created first. Nodes are created when a project has a
single package and that's the root package. A subgraph/cluster is
created when a project has multiple subpackages.
createSubgraph(project, packages) takes a project name and its packages
and creates nodes or subgraphs/clusters based on the packages.
Once all the nodes and subgraphs are created, a target project can be
passed to output(project) to generate a dot output
with all the nodes and subgraphs related to the target project.
Following relation scenarios have been covered:
A few screenshots of the dot output of the test:
subgraph1.dot
subgraph2.dot
subgraph3.dot
subgraph4.dot
The graphs of the dot outputs can also be generated using an online tool at http://www.webgraphviz.com/ .
What should your reviewer look out for in this PR?
The implementation.
Do you need help or clarification on anything?
Any kind of improvement/suggestions in how the graph appears?
Which issue(s) does this PR fix?
fixes #1547