Skip to content

Commit e7202f4

Browse files
committed
docs(s001): CI ran — AC2 and AC3 upgrade from "never executed" to "built and run on a runner"
package run 34067973983 at c2be3fa, three jobs green. First green run of that workflow. ubuntu-latest desktop_linux_x86_64 20790808 B port 40877 HTTP 200 on 43181 macos-latest desktop_macos_aarch64 11927096 B port 49432 HTTP 200 on 49433 windows-latest desktop_windows_x86_64.exe 24519680 B port 60534 not asked to serve Every job builds natively on its own OS, launches under --no-halt --smoke, compares a filtered process list either side of the exit, uploads the artifact and launch log, and writes to its own summary that it opened no window and produced no screenshot. What that changes, and what it does not: * AC2 and AC3 are no longer "never executed". Both are built and run. Both stay [manual] and unproven for the window, which no runner can give. * AC6's per-OS SIZE half is now proven by the runners. Its per-OS cold-start half is not measured — the jobs launch and curl but do not time the interval, which is a gap in my workflow rather than a missing machine. * Windows was never asked to serve: the "Serves HTTP 200" step is `if: runner.os != Windows`. Stated as a hole in the workflow, not glossed. * ADR-0004's fallback is still untriggered. The Windows *shell* has never been attempted. docs/packaging.md's target table now separates the 13782104-byte Zig cross build from the 11927096-byte native macOS build rather than averaging two different artifacts into one number. Both exit codes read before committing: mix gate exit=0 scripts/plan_check.sh exit=0 Signed-off-by: Ayla Croft <aylacroft@proton.me>
1 parent c2be3fa commit e7202f4

2 files changed

Lines changed: 102 additions & 19 deletions

File tree

‎docs/packaging.md‎

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,21 @@ neither of which is packaging wiring, so Slice 001 records it and Slice 100 owns
125125

126126
Declared in `mix.exs`. Built here: one of three.
127127

128-
| Target | Built on this machine | Blocker |
129-
|---|---|---|
130-
| `linux_x86_64` | **yes** | — |
131-
| `macos_aarch64` | **cross-compiles**, unsigned | Nothing to run it on. The binary is produced by Zig cross-compilation and has never been executed. |
132-
| `windows_x86_64` | **no** | `** (RuntimeError) Couldn't find 7z/7zz` — the Windows ERTS ships as a `.exe` installer and Burrito unpacks it with 7z. None of `7z 7zz 7za 7zr` is installed and installing one needs root. |
128+
| Target | Built on this machine | Built and run on a runner | Blocker here |
129+
|---|---|---|---|
130+
| `linux_x86_64` | **yes**, 20 777 960 bytes | **yes** — 20 790 808 bytes, served HTTP 200 | — |
131+
| `macos_aarch64` | **cross-compiles** only, 13 782 104 bytes, unsigned, never executed | **yes**, natively — 11 927 096 bytes, served HTTP 200 | Nothing here can execute a macOS binary. |
132+
| `windows_x86_64` | **no** | **yes**, natively — 24 519 680 bytes, booted and exited under `--smoke`; not asked to serve | `** (RuntimeError) Couldn't find 7z/7zz` — the Windows ERTS ships as a `.exe` installer and Burrito unpacks it with 7z. None of `7z 7zz 7za 7zr` is installed and installing one needs root. |
133+
134+
Runner evidence: `package` run `34067973983`, three jobs green.
135+
136+
That `macos_aarch64` links under Zig here is a fact about the cross-compiler and **nothing about
137+
whether the macOS app runs** — the runner is what established that it runs. The 11 927 096-byte
138+
native build and the 13 782 104-byte cross build are different artifacts and are listed
139+
separately rather than averaged into one number.
133140

134-
That `macos_aarch64` links is a fact about the cross-compiler and **nothing about whether the
135-
macOS app runs**. No macOS binary produced here has been launched, signed or notarised.
141+
**No window has been opened on any of the three.** A runner has no desktop session, and every
142+
job says so in its own summary.
136143

137144
## What a CI runner proves, and what it cannot
138145

‎slices/001-packaging-spike/PROOF.md‎

Lines changed: 88 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,55 @@ immediately, with status **0**, and nothing downstream notices.
116116

117117
### AC2 [manual] — `mix ex_tauri.dev` opens a native window showing the LiveView scaffold on macOS
118118

119-
**Not proven. No macOS machine exists.** The `macos_aarch64` target does cross-compile on this
120-
Linux host through Zig — a 13 782 104-byte binary was produced in the three-target run — and
121-
that is a fact about the cross-compiler and **nothing about whether the macOS app runs**. It is
122-
unsigned, unnotarised, and has never been executed. No screenshot exists.
119+
**Window unproven. But the artifact is no longer "never executed".**
120+
121+
Upgraded 2026-09-06 by the `package` workflow's first green run, `34067973983` at `c2be3fa`,
122+
job `macOS aarch64` on `macos-latest`:
123+
124+
```
125+
-rwxr--r-- 1 runner staff 11927096 Sep 6 23:52 desktop_macos_aarch64
126+
Running TrinityWeb.Endpoint with Bandit 1.12.5 at 127.0.0.1:49432 (http)
127+
TRINITY_SMOKE_PORT=49432
128+
HTTP 200 on port 49433
129+
```
130+
131+
**Built natively on macOS, launched, served HTTP 200, and exited by itself under `--no-halt
132+
--smoke` leaving no process of ours behind.** That is AC1's property on macOS.
133+
134+
**It is not AC2.** AC2 asks for `mix ex_tauri.dev` opening a native window showing the scaffold,
135+
with a screenshot. A GitHub runner has no desktop session, the job's own summary says so, and no
136+
screenshot exists. AC2 stays `[manual]` and unproven, needing a macOS desktop.
137+
138+
Superseding the earlier entry here: it said the macOS target "does cross-compile on this Linux
139+
host … and has never been executed", with a 13 782 104-byte figure. The cross-compile fact
140+
stands but is now beside the point — the runner built it natively at 11 927 096 bytes and ran
141+
it.
123142

124143
### AC3 [manual] — the same on Windows, or a documented failure with the fallback that succeeded
125144

126-
**Not proven, and the artifact was never built.**
145+
**Window unproven. Built and run on a runner; still not built on this machine.**
146+
147+
Upgraded 2026-09-06 by run `34067973983` at `c2be3fa`, job `windows x86_64` on
148+
`windows-latest`:
149+
150+
```
151+
-rwxr-xr-x 1 runneradmin 197121 24519680 Sep 6 23:57 desktop_windows_x86_64.exe
152+
Running TrinityWeb.Endpoint with Bandit 1.12.5 at 127.0.0.1:60534 (http)
153+
TRINITY_SMOKE_PORT=60534
154+
```
155+
156+
**Built natively on Windows and ran under `--no-halt --smoke`, printing its port and exiting
157+
0.** The runner has 7z, so the ERTS unpack that fails here succeeds there.
158+
159+
**One gap in this evidence, stated rather than glossed:** the workflow's "Serves HTTP 200" step
160+
is `if: runner.os != 'Windows'`, so **Windows was never asked to serve**. It booted and exited;
161+
it was not curled. That is a hole in my workflow, not a property of the artifact, and it is a
162+
follow-up.
163+
164+
`ex_tauri`'s fallback path in ADR-0004 remains **untriggered**: its trigger is "Windows fails
165+
with ex_tauri", and the Windows *shell* has still never been attempted.
166+
167+
### Why it is still not built on this machine
127168

128169
```
129170
$ MIX_ENV=prod mix release desktop --overwrite ; echo "exit=$?"
@@ -210,11 +251,27 @@ figure would understate the launch that forms the impression by a factor of six.
210251

211252
### AC6 [manual] — the same figures for macOS and Windows, and cold-start-to-first-paint on any OS
212253

213-
**Not proven.** Per-OS size genuinely needs a macOS and a Windows machine, neither of which
214-
exists here. **First paint does not** — see AC4's correction: this is an X11 desktop, and first
215-
paint is measurable here once there is a Tauri project to paint. It is step 3 of the owner's
216-
prepared procedure in `NOTES.md`, timed from `return` to the window appearing. Split from AC5
217-
at G1, and the half that was blamed on a missing machine was blamed wrongly.
254+
**Partly proven, and the rest is not blocked by what I said it was.** Three sub-claims, three
255+
different answers:
256+
257+
**Per-OS binary size — proven**, by the runners, run `34067973983`:
258+
259+
| OS | Bytes |
260+
|---|---|
261+
| linux x86_64 | 20 790 808 |
262+
| macOS aarch64 | 11 927 096 |
263+
| Windows x86_64 | 24 519 680 |
264+
265+
**Per-OS cold-start-to-serving — not measured.** The jobs launch and curl but do not time the
266+
interval, so there is no macOS or Windows equivalent of AC5's 231–245 ms. That is a gap in my
267+
workflow, not a missing machine: a runner could measure it. Follow-up.
268+
269+
**Cold-start-to-first-paint — needs a window, and the window is not blocked by a missing
270+
machine either.** See AC4's correction: this is an X11 desktop. It is blocked on
271+
`mix ex_tauri.install` never having run and on five apt packages, and it is step 3 of the
272+
owner's prepared procedure in `NOTES.md`, timed from `return` to the window appearing.
273+
274+
Split from AC5 at G1. **Both halves were blamed on missing machines and neither is.**
218275

219276
### AC7 [auto] — running the binary under `--smoke` exits 0 and leaves no process behind
220277

@@ -236,7 +293,26 @@ $ diff before.txt after.txt ; echo "exit=$?"
236293
exit=0
237294
```
238295

239-
Control, which is what makes the above mean anything:
296+
Corroborated on three runners, run `34067973983` at `c2be3fa`, all green:
297+
298+
| Runner | Artifact | Bytes | Port printed | Served |
299+
|---|---|---|---|---|
300+
| `ubuntu-latest` | `desktop_linux_x86_64` | 20 790 808 | 40877 | HTTP 200 on 43181 |
301+
| `macos-latest` | `desktop_macos_aarch64` | 11 927 096 | 49432 | HTTP 200 on 49433 |
302+
| `windows-latest` | `desktop_windows_x86_64.exe` | 24 519 680 | 60534 | not asked — see AC3 |
303+
304+
Each job compares a filtered process list either side of the exit and fails on any survivor.
305+
306+
**The first run of that workflow failed on all three, and both causes were mine.** `mix
307+
assets.deploy` did not lead with `compile`, so Phoenix 1.8's colocated CSS did not exist on a
308+
clean checkout and the alias resolved only on a machine that had already built (fixed in
309+
`8048ad3`). Then the smoke step diffed the *whole* `ps` table, and a live runner churns between
310+
two samples — macOS on `mdworker_shared` and `CloudTelemetryService`, linux on a `kworker`
311+
kernel thread — while the artifact had launched, served and exited correctly (fixed in
312+
`c2be3fa`). Both were defects in the evidence-gathering, not in the thing being measured, and
313+
neither was findable locally.
314+
315+
Control, which is what makes the local run above mean anything:
240316

241317
```
242318
$ PHX_SERVER=true timeout 20 ./burrito_out/desktop_linux_x86_64 --no-halt ; echo "exit=$?"
@@ -419,7 +495,7 @@ Plus one that needs no machine, only a remote:
419495

420496
| AC | Needs | Step | Expected |
421497
|---|---|---|---|
422-
| 5 | the GitHub Actions run | open the `package` workflow run for this branch | three jobs green, each with an artifact, a launch log, and a summary saying what it did not prove |
498+
| 5 | ~~the GitHub Actions run~~ | **done** — run `34067973983` at `c2be3fa`, three jobs green | nothing left for the owner here beyond confirming the run |
423499

424500
`.github/workflows/package.yml` **has never run.** It is written from what was measured
425501
locally. A runner cannot produce a screenshot of a real window on a real desktop, and no

0 commit comments

Comments
 (0)