1 unstable release

0.1.0 Feb 14, 2020

#10 in #skill

MIT license

2MB
495 lines

skill-tree

A tool for rendering "skill trees", currently using graphviz.

What is a skill tree?

A "skill tree" is a useful way to try and map out the "roadmap" for a project. The term is borrowed from video games, but it was first applied to project planning in this rather wonderful blog post about WebAssembly's post-MVP future (at least, that was the first time I'd seen it used that way).

Example

How does this project work?

You create a TOML file that defines the "groups" (major work areas) along with the items in each group. These items can be linked to github issues or other urls, and you can create dependencies between groups and items. Here is an example of such a file.

You then run the tool like so:

> cargo run -- tree-data/traits.toml output

This will generate a directory output that contains various javascript and dot files. If you view output/skill-tree.html you will get a view of the complete skill tree. You can also load output/skill-tree.js (along with the viz.js scripts) and execute the skill tree from some context of your own.

In particular, output/skill-tree.dot is your graphviz file that you can use to render on your own if you prefer.

Next steps

I should, of course, create a skill-tree for this project-- but the goal is to make this something that can be readily dropped into a working group repository (like wg-traits) and used to track the overall progress and plans of a project. The workflow isn't quite drag and drop enough for that yet, but we're close!

Dependencies

~4MB
~61K SLoC