Awesome
Depviz
<h1 align="center"> <img src="https://raw.githubusercontent.com/moul/depviz/master/assets/depviz.svg?sanitize=true" alt="Depviz" title="Depviz" height="200px"> <br> </h1> <h3 align="center">đź‘“ Issue dependency visualizer, a.k.a. "auto-roadmap".</h3> <!-- [![codecov](https://codecov.io/gh/moul/depviz/branch/master/graph/badge.svg)](https://codecov.io/gh/moul/depviz) -->Introduction
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
Philosophy
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
Target
- 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).
Demo
Limited to the following repos: moul/depviz, moul/depviz-test, moul-bot/depviz-test.
Supported providers
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
Under the hood
Depviz entities
There are 3 entities:
- A
Task
that have a real life cycle: opened->closed - An
Owner
which only contains things - A
Topic
which allows categorizing/tagging other things
Examples:
- a
Milestone
is 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
Repository
is aDepviz Owner
because 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
Task
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
Owner
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
Topic
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
Install
Download a release
https://github.com/moul/depviz/releases
Install With Golang
go get moul.io/depviz/cmd/depviz/v3
Using brew
brew install moul/moul/depviz
Usage
TODO
License
© 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)