Depviz
👓 Issue dependency visualizer, a.k.a. "auto-roadmap".
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
https://depviz-demo.moul.io/
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 a Depviz 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 a Depviz 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
, or closed
- 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)