beady-eye v0.33.0
What’s between you and the order: beady-eye 0.33 writes out one bead’s dependency tree
This post is more than a year old. It describes beady-eye v0.33.0; the latest release notes say what has changed since.
Name the dish and beady-eye 0.33.0 tells you what stands between you
and it. bdi --beads <bead> writes that bead and
everything it depends on, followed into other projects’
trackers. It lists the beads ready to start, the gates free to close,
and every other unfinished bead with what it still waits on.
brew upgrade codeforbreakfast/tap/bdi
# or
cargo install beady-eye
Read the demo as text
spoon $ bdi --beads spoon-1.1 | jq -r '.ready[] | "\(.project) \(.id) \(.title)"'
dairy dairy-4 Book the van for Friday mornings
spoon spoon-1.3 Chalk a price for the oat flat white
spoon $ bdi --beads spoon-1.1 | jq -c '.waiting[] | {id, waits_on: [.unmet_dependencies[].id]}'
{"id":"dairy-7","waits_on":["dairy-4"]}
{"id":"spoon-1.1","waits_on":["dairy-7","spoon-1.3"]}
spoon $ bdi --beads --parent spoon-2 --brief | jq -c '.beads[] | {id, ready}'
{"id":"spoon-2.1","ready":true}
{"id":"spoon-2.2","ready":false}
spoon $
Start anywhere on the ticket
The oat flat white goes on the board once it has a price and the dairy delivers. The dairy delivers once its van is booked. So the caff could chalk the price now, and the dairy could book the van now, and nothing else on that ticket can start yet. One command says so, without opening either tracker:
bdi --beads spoon-1.1 | jq '.ready[].id'
Just the one table
bdi --beads now takes --label,
--type, --assignee and
--parent. Each keeps only the beads that match, in the
plain listing, in --ready’s lists and in a
bead’s tree. --parent keeps every bead beneath
the one you name, at any depth. --brief leaves the
descriptions out.
Every edge on the docket
Each bead now names its parent, and its new
dependencies field lists every edge it has: the parent,
finished blockers and non-blocking edges included, each with its type
and the other bead’s project, id and status.
No phantom blockers
A blocker in a project the run did not read no longer counts as
open. It is listed under the bead’s
orphaned_dependencies instead, and the bead still reads
as not ready.
Easier on the kitchen
When a tracker moves, bdi now reads only the beads that changed since its last read, not the whole tracker. A big tracker’s server sees far less load from a running bdi or its watcher.
None of this needs anything from you.
Order up.