Skip to content
open tomato/ rafa
GitHub
rafa pages
  1. rafa
  2. rafa roadmap

rafa roadmap

The roadmap as a table: what is ready, what blocks it, and what already has a plan, a branch or a pull request.

rafa roadmap prints the pinned Roadmap issue as a table. Once the roadmap lists epics, it shows one row per epic with its done/total.

Spends: nothing. Changes: nothing; board reads are cached, and --refresh reads again (after an issue was deleted or transferred, say). Needs: gh signed in; see Prerequisites.

NOTE

In the target layout this code lives in the private package rafa-board, bundled into @open-tomato/rafa (Repository layout). In 0.47.0 it is already a package, @open-tomato/rafa-board in packages/rafa-board, but only as a facade: it re-exports this code from the root package's src/, where the files still live until their move. You install and type the same either way. [verify: the release the move lands in]

Reference: rafa roadmap

List the Roadmap's lines in its order, with spec, blocked by, has and refs.

rafa roadmap [--all] [--full] [--check] [--labels] [-t|--texts] [--refresh]
  [--type=<string>] [--module=<string>] [--search=<string>] [--limit=<number>]

Runs rafa issue list --roadmap with the flags typed: the unticked lines of the Roadmap issue (the current place's board, the one rafa switch moved to; with no position file roadmap.issue, else the lowest-numbered open type:roadmap board, else the open issue titled Roadmap) in its order, read off the GitHub board, as a table with four columns the plain list has not got: spec, whether the issue can be planned (every section of the spec template filled, and the spec:ready label on it), as a symbol; blocked by, the blockers grouped by whether they are still open; has, a plan, a branch or a pull request already made for it; and refs, how many references of the issue's saved copy under specs.dir read suspect or dangling, - with no copy. A legend under the table names each symbol in plain words, one line per column, and --texts (-t) spells both columns in words instead. Labels are no column: --labels prints them on a row under each issue. A Roadmap naming epics prints them alone, grouped by horizon under a Roadmap #<n> · <horizon> heading with the columns #, state, done/total, blocked, date and title, and one line counts the lines naming no epic. --full prints each epic's issues under its row, a second row led by └→ for a member's blockers, and the lines naming no epic as the issue table. The board listing is kept under .rafa/cache/ and read for what changed since; --refresh reads the whole board again. --check exits 1 when any type:epic issue's stored state disagrees with its computed one, or the board could not be read, so CI can run it. --all keeps the ticked lines and shows the epics of every horizon, not only now, and --type, --module, --search and --limit narrow the spec rows, keeping their order. An unreachable board is warned about with the rows still printed. With --output=json the roadmap, the rows, the epics and the warnings are the data of the terminal result event.

FlagType and defaultWhat it does
--allbooleanWith --roadmap, keep the ticked lines too, each in its place, and show the epics of every horizon, not only now. Refused without --roadmap.
--fullbooleanWith --roadmap, print each epic's issues under its row, on two rows each: number, state and title, then labels and blockers. Refused without --roadmap.
--checkbooleanWith --roadmap, exit 1 when any type:epic issue on the board is open with its work done, or closed with it not done, or when the board could not be read, naming each. Refused without --roadmap.
--labelsbooleanWith --roadmap, print each issue's labels on a row of their own under it, and under each --full member; they are no column. Refused without --roadmap.
-t, --textsbooleanWith --roadmap, spell the spec and blocked by columns in words instead of symbols, with no legend. Refused without --roadmap.
--refreshbooleanWith --roadmap, read the whole board again instead of only what changed since the listing kept under .rafa/cache/. Refused without --roadmap.
--typestringOnly issues of this type: one of code, bug, spike, adr, chore, package-api, epic, spec.
--modulestringOnly issues of this module.
--searchstringOnly issues whose title or body holds this text.
--limitnumberAt most this many issues, a positive whole number. The limit of the tracker when left out, and none under --roadmap.

Examples:

  • rafa roadmap: Prints the Roadmap's unticked lines in its order, as rafa issue list --roadmap does.
  • rafa roadmap --all: Prints the epics of every horizon, not only now, and every line, ticked ones included.
  • rafa roadmap --full: Prints the now epics with each epic's issues underneath, then the spec lines.
  • rafa roadmap --labels --texts: Prints each line's labels on a row under it, and the spec and blocked by columns in words.
  • rafa roadmap --refresh: Reads the whole board again instead of only what changed since the kept listing.
  • rafa roadmap --check: Prints the Roadmap, then exits 1 when an epic is open with its work done or closed with it not done.
  • rafa roadmap --all --type=bug: Prints the bugs on the Roadmap, ticked lines included, in the Roadmap's order.

Output formats: text, json.