max / makenotwork
| 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 | build_runs ADD COLUMN platform TEXT; |
| 22 |