Expand description
Projection: the boards a shared repository shows from other trackers, and the way work goes back to them.
A tracker is a directory of org files, so sharing one across machines
has meant copying files by hand and a shell script per repository that
knew every project by name. This module makes that one declaration and
one verb. The repository’s vissue.toml names its boards:
[[projection.board]]
project = "ljos" # the project's name on its source
source = "vault" # a [layouts.*] name from the user's
# config, "self", or a path
mirror = "Software/ljos/issues-mirror.org"
inbox = "Software/ljos/inbox.org" # optional: `* TODO` headings become issues
claims = "Software/ljos/claims.org" # optional: `* TODO claim ID as AGENT` linesvissue project folds each inbox into its source, applies each claims
file, and rewrites each mirror; --check says which mirrors are stale.
A source that is not on this machine is reported and its mirror left as
projected, so a delegate can run the same verb and learn what it can do
here. vissue show ID on an id that lives only in a mirror answers from
the mirror and names the inbox to write to.
Structs§
- Board
- One projected board, as
[[projection.board]]declares it. - Outcome
- What one run of
vissue projectdid or found.
Functions§
- boards
- The boards
<root>/vissue.tomldeclares; none when it declares none. - find_
in_ mirrors - An id that lives in one of the repository’s mirrors: the board and the heading’s text as the mirror carries it, so a reader on a machine without the source still gets an answer and is told where to write.
- project
- Run the projection declared under
repo: fold, claim, mirror, or withcheckonly compare each mirror’s stamp against its source. - projected_
note - The one line a reader of a projected issue needs beside the heading.
- resolve_
source - The tracker a board’s
sourcenames, when it is on this machine: the repository’s own tracker forself, a[layouts.*]name from the user’s config, else a path that holds a tracker.