Skip to main content

max / alloy

Record the component versioning rule in STACK.md shop and the alloy console version independently, which is what build/rpm/build.sh already does. Ruled 2026-08-25 (alloy 142393e5).
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-25 13:46 UTC
Signed with PGP, not checked
Commit: 9ddc22e181ae20247c96c5d1051b3f585485d21f
Parent: 0cc449e
1 file changed, +2 insertions, -0 deletions
@@ -34,6 +34,8 @@
34 34
35 35 **Scope is our own software and nothing else.** The console and shop, all MIT, all ours. Fedora's packages have their own update path and are not our business to re-ship, and shipping anyone else's work here would re-attach the source-availability obligations that distributing a builder rather than an image deliberately avoids.
36 36
37 + **The two components version independently, ruled 2026-08-25.** The console's number comes from `crates/alloy/Cargo.toml` and shop's from its own `--version`, which is what `build/rpm/build.sh` already reads and why it reads them from different places. A hotfix to one republishes only that one. The cost is that the console and the terminal on a machine can sit at unrelated numbers, so no component answers "what version of Alloy is this"; the image does. The alternative was one shared number, which buys that single answer and pays for it by republishing an unchanged component every time the other takes a fix, and that is the normal life of a hotfix rather than an edge case.
38 +
37 39 **What a hotfix is allowed to be.** A hotfix exists because the shipped software does not work as that release intended. Anything that changes how the software is intended to work is a release, however small the diff, and rides the ordinary path rather than this one. The second half is the channel test: a hotfix is shipped out of band, so a fix that can wait is an ordinary patch and never touches the repo. Security fixes are fixes, on the standing intent that no release be exploitable. Every hotfix is a patch bump; every intent change is at least a minor.
38 40
39 41 That definition is narrow on purpose, and here it is load-bearing rather than tidy. Every machine holding a layer is a machine carrying state outside its image, and the fewer of those there are at any moment the better.