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>
74 lines
2.6 KiB
Markdown
74 lines
2.6 KiB
Markdown
# 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.md` is 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-human` no longer appears on PRs a human cannot merge
|
|
(#87, heavy-duty/box#136)
|
|
- A missing `/run/sshd` no longer reads as a broken sshd config (#92)
|
|
- CI's shellcheck sweep reaches `.github/scripts/` (#70)
|
|
- Ctrl-D at the `rig uninstall` confirm aborts out loud (#68)
|
|
- `users apply` tells "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/manifest` records which rig converged a machine, and when (#61)
|
|
|
|
### Changed
|
|
|
|
- `state:needs-human` is set at handoff, not by the cron (#96)
|
|
- PR labels split into two axes: `state:*` (whose ball) and `blocker:*` (what
|
|
is in the way) (heavy-duty/box#137)
|
|
- BREAKING: `--class human|server` is now `--root-door closed|open`; old
|
|
markers still resolve (#77)
|
|
- BREAKING: the box tenant roles carry a `-box` suffix (#76)
|
|
- BREAKING: machine roles carry a `-server` suffix, and `staging-server` is
|
|
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 apply` grants the box *tier*, not just its socket (#49)
|
|
|
|
### Changed
|
|
|
|
- BREAKING: `rig bootstrap` takes the users file, and requires it (#51)
|
|
|
|
### Fixed
|
|
|
|
- A release no longer disarms the changelog under the PRs still in flight (#67)
|
|
- A `host=no` box with an `incus` group no longer hands out the bare socket
|
|
(#58)
|
|
- Dropping the box role revokes through `box`, not behind its back (#50)
|
|
- `rig bootstrap` refuses 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)
|