Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
moul authored Nov 27, 2019
1 parent 7ae508a commit b544981
Showing 1 changed file with 116 additions and 33 deletions.
149 changes: 116 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,153 @@
<h1 align="center">
<br>
<img src="https://raw.githubusercontent.com/moul/depviz/master/assets/depviz.svg?sanitize=true" alt="depviz" height="140px">
<br>
<br>
DepViz
<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>

<p align="center"><b>
<a href="https://manfred.life/depviz">Manfred.life</a> •
<a href="https://twitter.com/moul">Twitter</a>
</b></p>

[![CircleCI](https://circleci.com/gh/moul/depviz.svg?style=shield)](https://circleci.com/gh/moul/depviz)
[![GoDoc](https://godoc.org/moul.io/depviz?status.svg)](https://godoc.org/moul.io/depviz)
[![License](https://img.shields.io/github/license/moul/depviz.svg)](https://github.com/moul/depviz/blob/master/LICENSE)
[![License](https://img.shields.io/badge/license-Apache--2.0%20%2F%20MIT-%2397ca00.svg)](https://github.com/moul/depviz/blob/master/COPYRIGHT)
[![GitHub release](https://img.shields.io/github/release/moul/depviz.svg)](https://github.com/moul/depviz/releases)
[![Go Report Card](https://goreportcard.com/badge/moul.io/depviz)](https://goreportcard.com/report/moul.io/depviz)
[![CodeFactor](https://www.codefactor.io/repository/github/moul/depviz/badge)](https://www.codefactor.io/repository/github/moul/depviz)
[![Docker Metrics](https://images.microbadger.com/badges/image/moul/depviz.svg)](https://microbadger.com/images/moul/depviz)
[![GolangCI](https://golangci.com/badges/github.com/moul/depviz.svg)](https://golangci.com/r/github.com/moul/depviz)
[![Made by Manfred Touron](https://img.shields.io/badge/made%20by-Manfred%20Touron-blue.svg?style=flat)](https://manfred.life/)

<!-- [![codecov](https://codecov.io/gh/moul/depviz/branch/master/graph/badge.svg)](https://codecov.io/gh/moul/depviz) -->

## Introduction
dependency visualizer (auto roadmap)

**work in progress**: I'm already using this tool on a daily basis, but I know it lacks a lot of work to make it cool for other people too

`depviz` aggregates issues from multiple repositories and outputs a visual representation of the dependencies.
`depviz` aggregates **tasks** from multiple projects and generates visual representations (graphs) of the dependencies.

_inspired by this discussion: [jbenet/random-ideas#37](https://github.com/jbenet/random-ideas/issues/37)_

## Example

![](https://raw.githubusercontent.com/moul/depviz/master/examples/depviz/depviz.svg?sanitize=true)
TODO

## Install (with Golang)
## Demo

```
go get moul.io/depviz
```
TODO

## Usage
## Supported providers

```console
$ export GITHUB_TOKEN=xxxx
*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 clearly 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 actionnable, or indirectly/automatically closable based on a business rule.

**More info here: [./api/dvmodel.proto](./api/dvmodel.proto)**

#### Task

# render and display the roadmap
$ depviz run moul/depviz | dot -Tpng > depviz-roadmap.png
$ open depviz-roadmap.png
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

# render and display the orphans
$ depviz run moul/depviz --show-orphans | dot -Tpng > depviz-orphans.png
$ open depviz-orphans.png
```
go get moul.io/depviz/cmd/depviz
```

### Preview image withing iterm2
### Using brew

```console
# install imgcat
$ go get github.com/olivere/iterm2-imagetools/cmd/imgcat
$ depviz run https://github.com/moul/depviz/issues/42 | dot -Tpng | imgcat
$ brew install moul/moul/depviz
```

![](https://raw.githubusercontent.com/moul/depviz/master/examples/imgcat.png)
## Usage

TODO

## License

Apache
© 2018-2019 [Manfred Touron](https://manfred.life)

Licensed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0) ([`LICENSE-APACHE`](LICENSE-APACHE)) or the [MIT license](https://opensource.org/licenses/MIT) ([`LICENSE-MIT`](LICENSE-MIT)), at your option. See the [`COPYRIGHT`](COPYRIGHT) file for more details.

`SPDX-License-Identifier: (Apache-2.0 OR MIT)`

0 comments on commit b544981

Please sign in to comment.