Skip to main content

max / makenotwork

1.2 KB · 22 lines History Blame Raw
1 -- What a bundle runs on. Design: wiki [[sando-bento-boundary]].
2 --
3 -- Sando was single-platform for its whole life: one build host, one
4 -- architecture, one bundle per version. "Which machine are these bytes for" was
5 -- never a question because there was never a second answer, so no column asked
6 -- it.
7 --
8 -- pom is the product where one version is two bundles. It runs on astra
9 -- (aarch64) and on the Hetzner box (x86_64), each built natively by Bento, each
10 -- arriving with its own digest and its own artifact record. Without a platform
11 -- on the row there is nothing to tell those two apart afterwards, and a promote
12 -- resolving "the build for this version" would pick whichever it found.
13 --
14 -- NULL means unrecorded, which is what every existing row is and what a
15 -- Sando-built MNW bundle stays until its app config declares one. Unrecorded is
16 -- not a wildcard: a node that declares a platform refuses an artifact that does
17 -- not (see deploy::Placement), so the two sides move together or not at all.
18 -- The admissible pairings are both-stated-and-equal, or both-silent — which is
19 -- exactly the world these existing rows come from.
20
21 ALTER TABLE build_runs ADD COLUMN platform TEXT;
22