This repository was archived by the owner on Sep 9, 2020. It is now read-only.
graphviz: project-package relationship graph#1588
Merged
sdboyer merged 2 commits intogolang:masterfrom Jul 20, 2018
Merged
Conversation
d3ec07f to
b259bf3
Compare
b259bf3 to
f88b8fd
Compare
sdboyer
reviewed
Jul 3, 2018
Member
sdboyer
left a comment
There was a problem hiding this comment.
This looks good! Add a CHANGELOG entry, please 😄
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: 1. edge from a node within a cluster to a target cluster 2. edge from a node within a cluster to a single node 3. edge from a cluster to a target cluster 4. edge from a cluster to a target single node 5. edge from a cluster to a node within a cluster
Collaborator
Author
|
Sorry for the delay. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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