dependency visualizer (auto roadmap)
depviz aggregates tasks from multiple projects and generates visual representations (graphs) of the dependencies.
inspired by this discussion: jbenet/random-ideas#37
The ultimate goal of this tool is to allow the tech and the non-tech to collaborate seamlessly.
Oftentimes, there are βnon-technical project managersβ that love tools like Jira and try to define everything, including the delay required. Developers, however, mostly hate Jira-like tools and prefer to focus on small tasks with an easy-to-use interface, like Trello, GitHub issues, GitLab issues.
The idea of depviz is to:
- link those different tools (aggregate the different sources and find the relationships: find that this exact βJira user storyβ belongs to those 5 technical issues on github
- create various visual ways of displaying this information. Then, we can have a company that has some non-technical project manager only focusing on user stories and their priorities, and devs that focus on tasks and estimate the tasks by themselves (everyone doing what they are good at)
- in general, help everyone have the overall vision more clear
- Graphs are βfunβ but not very useful yet, a good dependency tool would be like graphviz. The current depviz version makes the graph in something that is more βweight-basedβ, because nodes will be grouped to make the graph fit the screen. Graphviz is not focused on making things beautiful, but focused on being 100% clear on the dependency. We need a good graph driver that supports this kind of graph.
- Having options for multiple layouts/graphs.
- Implementing the PERT method and adding more fields in depviz: due date, difficulty, etc, in order to create graphs for βfinding the shortest pathβ, for example.
- Improving the UI to improve collaboration (sharing a URL, etc).
Limited to the following repos: moul/depviz, moul/depviz-test, moul-bot/depviz-test.
Depviz aggregates the entities of multiple providers into 3 generic ones.
Supported providers:
- GitHub
- Task: Issue, Pull Request, Milestone
- Owner: TODO
- Topic: TODO
- GitLab: (planned)
- Jira (planned)
- Trello (planned)
TODO: detailed mapping table
There are 3 entities:
- A
Taskthat have a real life cycle: opened->closed - An
Ownerwhich only contains things - A
Topicwhich allows categorizing/tagging other things
Examples:
- a
Milestoneis aDepviz Task, because even if it contains other tasks, it also has a well defined lifecycle: to be closed when every children tasks are finished. - a
Repositoryis aDepviz Ownerbecause even if you can archive a repository, it's not the normal lifecycle, and will most of the time be unrelated with the amount of tasks done
A Task can be considered as something directly actionable, or indirectly/automatically closable based on a business rule.
More info here: ./api/dvmodel.proto
should have:
- a unique
ID: canonical URL - a
LocalID: human-readable identifier - a
Title: not necessarily unique - a
Kind:Issue,Pull Request,Milestone,Epic,Story,Card - a
State:opened,in progress, orclosed - an
Owner: see below - a
Driver:GitHub,GitLab,Jira,Trello
may have:
- other relationships:
Author,Milestone,Assignees,Reviewers,Label,Dependencies,Dependents,Related,Parts,Parents - other metadata:
Description - other states:
Locked - timestamps:
Created,Updated,Due,Completed - metrics:
NumDownvotes,NumUpvotes,NumComments
should have:
- a unique
ID: canonical URL - a
LocalID: human-readable identifier - a
Title: not necessarily unique - a
Kind:User,Organization,Team,Repo,Provider - a
Driver:GitHub,GitLab,Jira,Trello
may have:
- an
Owner - other states:
Fork - other metadata:
Homepage,Description,Avatar,Fullname,Shortname - timestamps:
Created,Updated
should have:
- a unique
ID: canonical URL - a
LocalID: human-readable identifier - a
Title: not necessarily unique - a
Kind:Label - a
Driver:GitHub,GitLab,Jira,Trello
may have:
- an
Owner: see above - other metadata:
Color,Description
https://github.com/moul/depviz/releases
go get moul.io/depviz/cmd/depviz/v3brew install moul/moul/depvizTODO
Β© 2018-2021 Manfred Touron
Licensed under the Apache License, Version 2.0 (LICENSE-APACHE) or the MIT license (LICENSE-MIT), at your option. See the COPYRIGHT file for more details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)