beady-eye v0.27.0
Waiting on the supplier: in beady-eye 0.27, a bead can wait on someone else’s issue or release
This post is more than a year old. It describes beady-eye v0.27.0; the latest release notes say what has changed since.
In beady-eye 0.27.0, bdi gates settles two new kinds of
wait. A gh:issue gate closes once its issue closes, and a
gh:release gate closes once its repository publishes a
release after the gate was made. Both close on the same look that
settles pull-request gates, so the bead behind them is ready without
anyone going back to check.
brew upgrade codeforbreakfast/tap/bdi
# or
cargo install beady-eye
bdi gates finds the issue closed and v2.1.0
published, and closes both gates. The next look at the tree shows
them ticked off.
Read the demo as text
▾ spoon ✓ 4s ago 1/9 2 agents
├── ○ spoon-1 The caff takes card payments 1/5
│ ├── ◐ .1 Wire the card reader to the till ◍ wK:p2 · working
│ ├── ○ .2 Take contactless over £100 0/2
│ │ └┄┄ ○ spoon-ah0 Gate: gh:issue 31
│ └── ✓ .3 Price the menu in pence
└── ○ spoon-2 The tea timer forgets the second sugar 0/4
├── ◐ .1 Count sugars per cup, not per order ◍ wK:p3 · working
└── ○ .2 Switch the timer to the new kettle firmware 0/2
└┄┄ ○ spoon-zb5 Gate: gh:release
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────
no pane · select a bead to see what is on it
a all ? keys / find q quit
spoon $ bdi
spoon $ bdi gates
bdi gates: settling the gh:pr, gh:issue and gh:release gates of 1 project, for every owner's repositories, every 60s
brewmaster/kettle published v2.1.0: spoon closed gate spoon-zb5
tapwell/reader#31 closed: spoon closed gate spoon-ah0
^C
spoon $
▾ spoon ✓ 8s ago 3/9 2 agents
├── ○ spoon-1 The caff takes card payments 2/5
│ ├── ◐ .1 Wire the card reader to the till ◍ wK:p2 · working
│ ├── ○ .2 Take contactless over £100 1/2
│ │ └┄┄ ✓ spoon-ah0 Gate: gh:issue 31
│ └── ✓ .3 Price the menu in pence
└── ○ spoon-2 The tea timer forgets the second sugar 1/4
├── ◐ .1 Count sugars per cup, not per order ◍ wK:p3 · working
└── ○ .2 Switch the timer to the new kettle firmware 1/2
└┄┄ ✓ spoon-zb5 Gate: gh:release
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────
no pane · nobody is working this bead
a all ? keys / find q quit
Putting an order in with the supplier
Record the wait as a gate, and name the repository in its
repo metadata, as for a pull-request gate. An issue gate
takes the issue’s number. A release gate takes nothing, because
any release after it was made will do:
bd gate create --type=gh:issue --blocks spoon-1.2 --await-id=31
bd gate create --type=gh:release --blocks spoon-2.2
The bdi gates you already run picks them up. The
configuration reference
says what each one asks GitHub. Nothing needs changing to upgrade.
A table for one
Press F, or name a bead on the command line, and the board
now draws only that work. The line that stood in for the
project’s other trees, counting their agents and anomalies, is
gone. Going to or searching for a bead outside the focus finds
nothing. F again puts the whole forest back. A focused
board builds only what it draws, so it spends less CPU and holds less
memory.
Reading the board from another branch
A host that holds none of a project’s checkouts can still draw its
trees. A [[projects]] entry can name its tracker’s
database in place of a path, and a new
[dolt] table names the Dolt server it sits on. The board,
the watcher and both pseudopods all read it. The
configuration reference
has the tables.
Orders go to the right kitchen
bdi bd now writes only to the project’s own tracker.
It no longer passes on the BEADS_ and BD_
variables its caller exported, bar the credential and the actor, so an
exported database cannot redirect the answer it carries.
The supplier rang. Your order’s in. Order up.