Sign inSign up

moul/depviz

By moul

•Updated over 3 years ago

dependency visualizer (a.k.a., "auto-roadmap")

Image
1

5M+

moul/depviz repository overview

⁠Depviz

⁠ Depviz

⁠👓 Issue dependency visualizer, a.k.a. "auto-roadmap".

GoDoc License GitHub release Go Report Card CodeFactor Docker Metrics GolangCI Made by Manfred Touron

⁠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)

Tag summary

Content type

Image

Digest

sha256:0b60960c8…

Size

22.2 MB

Last updated

over 3 years ago

docker pull moul/depviz