Skip to content

docs: delete the two ADRs the machine artefact made obsolete - #4

Merged
aledbf merged 1 commit into
mainfrom
docs/supersede-kernel-mirror-adrs
Sep 8, 2026
Merged

docs: delete the two ADRs the machine artefact made obsolete#4
aledbf merged 1 commit into
mainfrom
docs/supersede-kernel-mirror-adrs

Conversation

@aledbf

@aledbf aledbf commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

ADR-0022 and ADR-0025 both decided how to work around something that no longer exists.

  • ADR-0022 — "the guest kernel is pinned by content and mirrored, not resolved by path". It existed because spinbox published no kernel: the artefact was an untracked file under _output/ on whoever ran task build:kernel last, so there was nothing to point a URL at and Dockerfile.guest-kernel moved it through a registry. There is a published machine release now, pinned by version and SHA-256, and nothing to mirror.
  • ADR-0025 — "the guest lane's QEMU comes from the published runtime image". Its whole constraint was dynamic linking against the runtime stage of Dockerfile.qemu (liburing.so.2: cannot open shared object file). QEMU is static; qemu:tools, Dockerfile.qemu and qemu.yml are gone.

Deleted rather than amended — an ADR that no longer binds anything is not history worth carrying in the tree, and git has it.

ADR-0021 stays, minus §5. §1 (spin imports storage, never the reverse) and §2 (the binaries are test harnesses) are cited from ~10 places in the Go tree and are still the operative decision. §5 said storage consumes spinbox's kernel artefact; it consumes a spin-machine release instead, which is the same principle with a different source, and is already stated where task machine lives.

Also dropped the trailing references to the deleted files in ci.yml, CLAUDE.md, hack/spin-machine, hack/demo-lib.sh and taskfiles/machine.yml, and refreshed the stale qemu:tools / guest:kernel:fetch lines in the CLAUDE.md task list.

🤖 Generated with Claude Code

https://claude.ai/code/session_019GHRRFvbnZi5q3KSTvyW5a

ADR-0022 pinned and mirrored spinbox's kernel through a registry, because that
kernel was another repository's build output with no published home. ADR-0025
took QEMU out of the image that built it, because that QEMU was dynamically
linked against it. Both premises are gone: QEMU, the guest kernel and the
firmware are one versioned spin-machine release, statically linked, pinned by
version and SHA-256, and `Dockerfile.qemu`, `Dockerfile.guest-kernel` and
`qemu.yml` no longer exist.

They are deleted rather than amended. An ADR whose decision no longer binds
anything is not history worth carrying in the tree; git has it.

ADR-0021 keeps §1-§4 — the dependency direction and the harness rule are still
what the Go code cites. Only §5 goes: it said storage consumes spinbox's kernel
artefact, and it does not.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019GHRRFvbnZi5q3KSTvyW5a
@aledbf
aledbf merged commit a87d38b into main Sep 8, 2026
0 of 2 checks passed
@aledbf
aledbf deleted the docs/supersede-kernel-mirror-adrs branch September 8, 2026 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant