Skip to main content

max / alloy

Give the build-from-source shop stage a stated end The header said there is no repo for shop and that shop is "next", which stopped being true when build/rpm/shop.spec landed and the RPM stage started cutting the package in-image. What is actually missing is anything that serves a prebuilt one. Name the end state instead: alloy a29eccdf retires the compile, and the scaffolding around the git URL retires with it. Until then it is load bearing and should not be thinned out as temporary.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session
https://claude.ai/code/session_01J1yAFMokhGYCs3UT8UaCZr
Author: Max Johnson <me@maxj.phd> · 2026-09-07 20:35 UTC
Signed with PGP, not checked
Commit: 72749c3e2ebe50c973fd763455af4ee634673909
Parent: 17c1035
1 file changed, +17 insertions, -9 deletions
M Containerfile +17 -9
@@ -102,17 +102,25 @@
102 102 # =====================================================================
103 103 # shop, Alloy's terminal.
104 104 # =====================================================================
105 - # Built from source rather than installed from a repo, because there is no
106 - # repo yet for shop. The console has one as of 2026-08-14 (`build/rpm/`), and
107 - # shop is next; this comment used to argue that owning an RPM spec and a
108 - # release cadence "buys nothing, and Alloy publishes no other artifact", which
109 - # was true only while nothing was published. A hotfix channel changes that
110 - # premise, so the conclusion moves with it (GoingsOn task d866e125).
105 + # Built from source because nothing serves a prebuilt shop package. shop is
106 + # packaged — `build/rpm/shop.spec` is written and the RPM stage 600 lines below
107 + # cuts it from the binary this stage produces — but the spec has no `%build`,
108 + # so this stage is still the only definition of how shop is compiled and the
109 + # only place that compiles it.
111 110 #
112 - # Builders-not-images is untouched by that: users still build their own ISO.
113 - # What the repo buys is that they stop having to rebuild it to receive a fix.
111 + # THIS ARRANGEMENT HAS A STATED END: GoingsOn alloy `a29eccdf`. When something
112 + # else cuts shop's package, this stage installs it and the terminal stops being
113 + # compiled here. Everything below that is scaffolding for building from a git
114 + # URL retires with it, and that comment names the list. It is blocked on who
115 + # builds the package and on which arches (`f3544f34`), and on somewhere to
116 + # serve it from (`86cb87b9`). Until then the scaffolding stays and is load
117 + # bearing; do not thin it out on the grounds that it is temporary.
114 118 #
115 - # The consequence for this stage, once shop is packaged: a component the base
119 + # Builders-not-images is untouched by any of that: users still build their own
120 + # ISO. What a served repo buys is that they stop having to rebuild it to
121 + # receive a fix (GoingsOn `d866e125`).
122 + #
123 + # The consequence for this stage, and it holds either way: a component the base
116 124 # image carries cannot be replaced client-side, so a hotfixable component must
117 125 # NOT be built into the image at all. It is layered at install time instead.
118 126 # See build/layertest/README.md for the measurements that force this, and note