Skip to main content

max / alloy

Correct the update story: rebuilding, not reinstalling This morning's commit said that with no registry published, "updating means rebuilding and reinstalling". The reinstall half is false, and it made the no-registry decision look far more expensive than it is. bootc switch takes --transport, and containers-storage is one of the five it accepts (registry, oci, oci-archive, docker-daemon, containers-storage; checked against bootc 1.16.3 in the built image). So a machine adopts a locally built image in place, A/B staged with rollback, using the same mechanism a registry-fed update would use and differing only in where the image comes from. The practical difference is large enough to change decisions that were made on the wrong version: publishing nothing costs a build, not a machine. It also means the curated stack has no reason to leave the image in search of an independent update channel, which is what the packaging discussion had been heading toward.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-30 21:22 UTC
Signed with PGP, not checked
Commit: 31812f7f8510ba888fb8e99065d7874b957cebed
Parent: 20e0471
1 file changed, +9 insertions, -1 deletion
M docs/IMAGE.md +9 -1
@@ -72,7 +72,15 @@
72 72
73 73 An installed machine does not reach out unless the medium it was installed from named an update target, which only a development build does. The installer enables `bootc-fetch-apply-updates.timer` when `--update-target` was given and leaves it disabled otherwise, so a locally-built install never polls anything.
74 74
75 - The eventual home for updates a stranger's machine can reach is a service over synckit/MNW, not a public registry. Until that exists, updating means rebuilding and reinstalling, which is the honest description and should be written that way in the manual.
75 + The eventual home for updates a stranger's machine can reach is a service over synckit/MNW, not a public registry.
76 +
77 + **Until that exists, updating means rebuilding — not reinstalling.** A machine adopts a locally built image in place:
78 +
79 + bootc switch --transport containers-storage localhost/alloy:local
80 +
81 + That is A/B staged with rollback, the same mechanism a registry-fed update would use, with the image coming off local container storage instead of the network. bootc 1.16.3 accepts registry, oci, oci-archive, docker-daemon and containers-storage.
82 +
83 + So "we publish nothing" costs a build, not a machine. What a user gives up against a published image is the time to build it, and what they gain is that the thing they boot is the thing they configured. An earlier draft of this file said updating meant rebuilding *and reinstalling*; that was wrong, and it made the no-registry decision look far more expensive than it is.
76 84
77 85 ## Layer structure
78 86