TaskWarrior Dependency Visualization

Visualizes dependencies between TaskWarrior tasks.

Build Status

Example

Given a set of interdependent tasks described in the TaskWarrior tutorial, the tasks are

  1. Exported from TaskWarrior as JSON, then
  2. Piped into twdeps, and finally
  3. The output is directed to a PNG file.

Result:

party

Installation

$ gem install twdeps

Usage

# Create a dependency graph as PNG and pipe it to a file
# See [Limitations](Limitations) below for why we need the extra task parms
task export rc.json.array=on rc.verbose=nothing | twdeps > deps.png

# Same but specify output format
task export rc.json.array=on rc.verbose=nothing | twdeps --format svg > deps.svg

# Create a graph from a previously exported file
task export rc.json.array=on rc.verbose=nothing > tasks.json
cat tasks.json | twdeps > deps.png

# Display graph in browser without creating an intermediate file
# Requires bcat to be installed
task export rc.json.array=on rc.verbose=nothing | twdeps --format svg | bcat

Dependencies

The graph is generated with ruby-graphviz, which in turn requires a local Graphviz installation (e.g. brew install graphviz).

bcat is required for piping into a browser.

Limitations

Due to two bugs in JSON export, TaskWarrior versions before 2.1 need the additional command line options rc.json.array=on and rc.verbose=nothing.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request