Documentation
¶
Overview ¶
Package stepid owns senro's step identifier grammar.
stepID := segment ("/" segment)* "deploy/discover/apply-west"
expanded := stepID "[" k=v ("," k=v)* "]" keys sorted
address := (stepID|expanded) ["@" N] CLI surface only, N >= 1
The attempt suffix is an addressing form for the CLI and never appears in an event's step field, where attempt is its own routing field.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Encode ¶
Encode makes a step ID safe as a single filesystem path segment while keeping it readable, which matters when reading a run's logs from disk.
func Format ¶
Format builds an expanded child ID. Keys are sorted so that an expander returning map iteration order still produces a stable, reproducible ID.
func Keys ¶
Keys reverses Format, splitting an expanded ID into its base and key set. A bare ID with no bracket group is a base and no keys, with ok true.
ok is false for anything off the grammar and must not be ignored: its caller reads a unit back out of a child's ID to record how long that unit's step took, and guessing would credit one unit's time to another.
It unescapes nothing because Format escapes nothing: an expansion refuses a unit whose ID contains a delimiter (senro's unitIDNeedsEscaping), so a value here can never contain "[", "]", "=" or ",".
Types ¶
This section is empty.