Drill records move from sections inside drill/RUNS.md to one file per version at drills/<version>.md. The old guard had to parse headings: an em-dash prefix match, an optional " — DATE" tail, a whole-version comparison so 0.3.0-rc1 could not satisfy 0.3.0, and a separate non-blank-body rule. All of it existed only because records shared one file, and both sibling repos shipped a defect out of that complexity in review — a `sed '/./,$!d'` extractor where `.` matches a space (box#149, cast#138), and heading-grammar drift. One file per version makes nearly all of it unrepresentable: 0.3.0.md and 0.3.0-rc1.md are different files, and the filesystem does the whole-version comparison. The awk drill_section() machinery is gone. What survives is the one rule splitting the files does not make unrepresentable: a file of only whitespace is not a record. Plain drills/, NOT .drills/ — a dot-directory is invisible to globs without dotglob, the cause of #70 here and box#116/box#118. drill/RUNS.md is deleted; it was created in this same unmerged PR, held no real records, and its useful reasoning moves to drills/README.md. (box keeps ITS drill/RUNS.md — that one is a genuine harness log.) Also corrects the ordering framing in CONTRIBUTING and the new README: the three repos' drills are INDEPENDENT, run in any order. What makes that safe is that each pins the same fixed set of candidate refs, so box and rig measure the same pair — that, not sequencing, is what dissolves the mutual recursion. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Changelog
History before 0.1.0 lives in git — rig grew its version surface (VERSION,
rig --version, the side-by-side versions/<v> install layout; #35/#36)
on the way to cutting its first release, and this file starts there.
Unreleased
Fixed
- Deleting a shipped release heading from
CHANGELOG.mdis caught on every PR (#98, heavy-duty/box#122) - The heading-uniqueness check no longer sits behind git conditions it does not need (#98, heavy-duty/box#143)
- An unreadable check rollup no longer reads as "nothing is failing" (#90)
- CI runs
test/labels-reconcile.sh, which it had never run (#90) state:needs-humanno longer appears on PRs a human cannot merge (#87, heavy-duty/box#136)- A missing
/run/sshdno longer reads as a broken sshd config (#92) - CI's shellcheck sweep reaches
.github/scripts/(#70) - Ctrl-D at the
rig uninstallconfirm aborts out loud (#68) users applytells "revoke everyone" apart from a truncated users file (#65)
Added
- CI refuses a release PR with no drill record at
drills/<version>.md rig platform— what this machine is, computed at run time, stored nowhere (#64)/etc/rig/manifestrecords which rig converged a machine, and when (#61)
Changed
state:needs-humanis set at handoff, not by the cron (#96)- PR labels split into two axes:
state:*(whose ball) andblocker:*(what is in the way) (heavy-duty/box#137) - BREAKING:
--class human|serveris now--root-door closed|open; old markers still resolve (#77) - BREAKING: the box tenant roles carry a
-boxsuffix (#76) - BREAKING: machine roles carry a
-serversuffix, andstaging-serveris back (#76) - Changelog entries are one line each, and the whole file now follows the rule (#100)
0.2.0 — 2026-07-19
Added
users applygrants the box tier, not just its socket (#49)
Changed
- BREAKING:
rig bootstraptakes the users file, and requires it (#51)
Fixed
- A release no longer disarms the changelog under the PRs still in flight (#67)
- A
host=nobox with anincusgroup no longer hands out the bare socket (#58) - Dropping the box role revokes through
box, not behind its back (#50) rig bootstraprefuses a users file that names no users (#57)
0.1.0 — 2026-07-19
Fixed
- The release suite accepts the ceremony's own tree (#44)
- The installer survives an environment with no
$HOME(#39, #41) - Headless credential prompts refuse loudly instead of dying silently (#42)
Added
- Merging a release-labeled PR IS the release, and the release re-arms main (#47)
- Tagged releases, and an installer that installs them (#32)