From 65bb2469322fba10662c54d9711d157bf86f0774 Mon Sep 17 00:00:00 2001
From: Matt Zumwalt <matt@databindery.com>
Date: Tue, 15 Nov 2016 14:53:13 -0500
Subject: [PATCH] Adds config for running roadmap-generator and a test Q4
 Roadmap

License: MIT
Signed-off-by: Matt Zumwalt <matt@databindery.com>
---
 tools/roadmap-generator/.gitignore            |  2 +
 tools/roadmap-generator/README.md             | 29 +++++++
 tools/roadmap-generator/TEST-ROADMAP.md       | 84 +++++++++++++++++++
 .../roadmap-generator/js-ipfs-roadmap.conf.js | 54 ++++++++++++
 tools/roadmap-generator/package.json          | 15 ++++
 5 files changed, 184 insertions(+)
 create mode 100644 tools/roadmap-generator/.gitignore
 create mode 100644 tools/roadmap-generator/README.md
 create mode 100644 tools/roadmap-generator/TEST-ROADMAP.md
 create mode 100644 tools/roadmap-generator/js-ipfs-roadmap.conf.js
 create mode 100644 tools/roadmap-generator/package.json

diff --git a/tools/roadmap-generator/.gitignore b/tools/roadmap-generator/.gitignore
new file mode 100644
index 0000000000..f2ceae9eb3
--- /dev/null
+++ b/tools/roadmap-generator/.gitignore
@@ -0,0 +1,2 @@
+node_modules/
+ROADMAP.md
diff --git a/tools/roadmap-generator/README.md b/tools/roadmap-generator/README.md
new file mode 100644
index 0000000000..17854cf647
--- /dev/null
+++ b/tools/roadmap-generator/README.md
@@ -0,0 +1,29 @@
+# js-ipfs Roadmap Generator
+
+This directory contains tools for generating this project's roadmap.
+
+Uses [roadmap-generator](https://github.com/haadcode/roadmap-generator).
+
+## Requirements
+
+**IMPORTANT** This script must be run using a Github personal access token corresponding to an account that has admin permissions on all of the repositories listed in `js-ipfs-roadmap.config.js`.
+
+- Node.js v6.x
+- Npm v3.x
+- GITHUB_TOKEN environment variable set
+  - See [Creating an access token](https://help.github.com/articles/creating-an-access-token-for-command-line-use/) for help.
+
+## Install
+```
+npm install
+```
+## Configure
+
+Put configuration in `js-ipfs-roadmap.conf.js`
+
+## Generate Roadmap
+```
+npm run roadmap
+```
+
+This will generate ROADMAP.md file in this directory. You can copy the ROADMAP.md file to the project's root directory and commit it to Git.
diff --git a/tools/roadmap-generator/TEST-ROADMAP.md b/tools/roadmap-generator/TEST-ROADMAP.md
new file mode 100644
index 0000000000..8ae1dd1a37
--- /dev/null
+++ b/tools/roadmap-generator/TEST-ROADMAP.md
@@ -0,0 +1,84 @@
+# js-ipfs - Roadmap
+
+This document describes the current status and the upcoming milestones of the js-ipfs project.
+
+*Updated: Tue, 15 Nov 2016 19:51:42 GMT*
+
+## Status and Progress
+
+[![Project Status](https://badge.waffle.io/ipfs/js-ipfs.svg?label=Backlog&title=Backlog)](http://waffle.io/ipfs/js-ipfs) [![Project Status](https://badge.waffle.io/ipfs/js-ipfs.svg?label=In%20Progress&title=In%20Progress)](http://waffle.io/ipfs/js-ipfs) [![Project Status](https://badge.waffle.io/ipfs/js-ipfs.svg?label=Done&title=Done)](http://waffle.io/ipfs/js-ipfs)
+
+See details of current progress on [Orbit's project board](https://waffle.io/haadcode/orbit)
+
+#### Milestone Summary
+
+| Status | Milestone | Goals | ETA |
+| :---: | :--- | :---: | :---: |
+| 🚀 | **[q4c - The InterPlanetary JavaScript](#q4c---the-interplanetary-javascript)** | 0 / 0 | Sat Oct 15 2016 |
+| 🚀 | **[q4d - interface-floodsub](#q4d---interface-floodsub)** | 0 / 1 | Sat Oct 15 2016 |
+| 🚀 | **[q4e - Awesome IPLD](#q4e---awesome-ipld)** | 0 / 0 | Sat Oct 22 2016 |
+| 🚀 | **[q4f - Async Crypto](#q4f---async-crypto)** | 0 / 0 | Sat Oct 22 2016 |
+| 🚀 | **[q4h - js-ipfs and js-ipfs-api bundling](#q4h---js-ipfs-and-js-ipfs-api-bundling)** | 0 / 0 | Sat Oct 29 2016 |
+| 🚀 | **[q4g - Bitswap Complete](#q4g---bitswap-complete)** | 0 / 0 | Sat Oct 29 2016 |
+| 🚀 | **[q4i - Documentation of all the modules](#q4i---documentation-of-all-the-modules)** | 0 / 1 | Sat Nov 19 2016 |
+| 🚀 | **[q4j - Quick Start examples for js-ipfs and js-ipfs-api](#q4j---quick-start-examples-for-js-ipfs-and-js-ipfs-api)** | 0 / 0 | Sat Nov 26 2016 |
+
+## Milestones and Goals
+
+#### q4c - The InterPlanetary JavaScript
+
+> Settle in what will be the 'good parts' for us to use accross JS projects
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 0** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Oct 15 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4c%20-%20The%20InterPlanetary%20JavaScript) for the list of goals this milestone has.
+#### q4d - interface-floodsub
+
+> Define an interface for floodsub, that can be implemented for js-ipfs and js-ipfs-api
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 1** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Oct 15 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4d%20-%20interface-floodsub) for the list of goals this milestone has.
+#### q4e - Awesome IPLD
+
+> Integration of IPLD (js-ipld and js-ipld-ipfs) into js-ipfs. Enable js-ipfs to handle both merkledag protobufs and ipld cbor objects
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 0** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Oct 22 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4e%20-%20Awesome%20IPLD) for the list of goals this milestone has.
+#### q4f - Async Crypto
+
+> Move away from bundling in node-forge and use the WebCrypto browser primitives directly
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 0** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Oct 22 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4f%20-%20Async%20Crypto) for the list of goals this milestone has.
+#### q4h - js-ipfs and js-ipfs-api bundling
+
+> Make it work with any bundler, out of the box or provide proper documentation if not possible.
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 0** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Oct 29 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4h%20-%20js-ipfs%20and%20js-ipfs-api%20bundling) for the list of goals this milestone has.
+#### q4g - Bitswap Complete
+
+> Make js-ipfs-bitswap work at the same level go-ipfs-bitswap
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 0** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Oct 29 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4g%20-%20Bitswap%20Complete) for the list of goals this milestone has.
+#### q4i - Documentation of all the modules
+
+> Document all js modules
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 1** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Nov 19 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4i%20-%20Documentation%20of%20all%20the%20modules) for the list of goals this milestone has.
+#### q4j - Quick Start examples for js-ipfs and js-ipfs-api
+
+> Provide quick start examples for js-ipfs and js-ipfs-api
+
+🚀 &nbsp;**OPEN** &nbsp;&nbsp;📉 &nbsp;&nbsp;**0 / 0** goals completed **(0%)** &nbsp;&nbsp;📅 &nbsp;&nbsp;**Sat Nov 26 2016**
+
+See [milestone goals](https://waffle.io/ipfs/js-ipfs?milestone=q4j%20-%20Quick%20Start%20examples%20for%20js-ipfs%20and%20js-ipfs-api) for the list of goals this milestone has.
+
diff --git a/tools/roadmap-generator/js-ipfs-roadmap.conf.js b/tools/roadmap-generator/js-ipfs-roadmap.conf.js
new file mode 100644
index 0000000000..8b1c4230b2
--- /dev/null
+++ b/tools/roadmap-generator/js-ipfs-roadmap.conf.js
@@ -0,0 +1,54 @@
+'use strict'
+
+module.exports = {
+  // Name of the organization or project this roadmap is generated for
+  organization: 'js-ipfs',
+
+  // Include open and closed milestones where due date is after milestonesStartDate
+  milestonesStartDate: '2016-10-01T00:00:00Z', // ISO formatted timestamp
+
+  // Include open and closed milestones where due date is before milestonesEndDate
+  milestonesEndDate: '2016-12-30T00:00:00Z', // ISO formatted timestamp
+
+  // Github repository to open open a Pull Request with the generated roadmap
+  targetRepo: "ipfs/js-ipfs", // 'owner/repo'
+
+  // List of projects that this roadmap covers
+  projects: [
+    {
+      name: "js-ipfs",
+      // Repositories that this project consists of.
+      repos: [
+        "ipfs/js-ipfs",
+        "ipfs/js-ipfs-api",
+        "ipfs/js-ipfs-block-service",
+        "ipfs/js-ipfs-repo",
+        "ipfs/js-ipfs-block",
+        "ipfs/js-ipfs-merkle-dag",
+        "ipfs/js-ipfs-unixfs",
+        "ipfs/js-ipfs-unixfs-engine",
+        "ipfs/js-ipfs-bitswap",
+        "ipfs/js-ipfsd-ctl",
+        "dignifiedquire/aegir",
+        "ipfs/js-libp2p-ipfs",
+        "ipfs/js-libp2p-ipfs-browser",
+        "ipld/js-ipld-dag-cbor",
+        "ipld/js-ipld-resolver",
+        "multiformats/js-multiaddr",
+        "multiformats/js-multibase",
+        "multiformats/js-multicodec",
+        "multiformats/js-multihash",
+        "multiformats/js-multihashing",
+        "multiformats/js-multihashing-async",
+        "multiformats/js-multistream-select",
+        "multiformats/multistream-select"
+      ],
+      // WIP
+      links: {
+        status: `## Status and Progress\n
+[![Project Status](https://badge.waffle.io/ipfs/js-ipfs.svg?label=Backlog&title=Backlog)](http://waffle.io/ipfs/js-ipfs) [![Project Status](https://badge.waffle.io/ipfs/js-ipfs.svg?label=In%20Progress&title=In%20Progress)](http://waffle.io/ipfs/js-ipfs) [![Project Status](https://badge.waffle.io/ipfs/js-ipfs.svg?label=Done&title=Done)](http://waffle.io/ipfs/js-ipfs)\n
+See details of current progress on [Orbit's project board](https://waffle.io/haadcode/orbit)\n\n`
+      }
+    },
+  ]
+}
diff --git a/tools/roadmap-generator/package.json b/tools/roadmap-generator/package.json
new file mode 100644
index 0000000000..3526339ec2
--- /dev/null
+++ b/tools/roadmap-generator/package.json
@@ -0,0 +1,15 @@
+{
+  "name": "js-ipfs-roadmap-generator",
+  "version": "1.0.0",
+  "description": "Roadmap generator for js-ipfs project",
+  "main": "index.js",
+  "scripts": {
+    "roadmap": "node ./node_modules/.bin/roadmap-generator js-ipfs-roadmap.conf.js -s > ROADMAP.md",
+    "test": "echo \"Error: no test specified\" && exit 1"
+  },
+  "author": "Haad",
+  "license": "MIT",
+  "dependencies": {
+    "roadmap-generator": "0.0.3"
+  }
+}