Files
archy/.planning/todos/pending/2026-07-31-build-iso-for-v1.7.119-alpha.md
T

2.1 KiB

created, title, area, severity, files
created title area severity files
2026-07-31T19:00:00.000Z Build the installer ISO for v1.7.119-alpha tooling minor
scripts/build-iso-release.sh

Problem

v1.7.119-alpha is released and its OTA assets are published and checksum-verified, but the installer ISO was never built. Three attempts were blocked by a dirty working tree — build-iso-release.sh's preflight hard-fails on any uncommitted change, and this checkout is shared by phase 1 executors and a separate BotFights session, so the tree is rarely clean for long. Not urgent: the ISO only matters for fresh installations; everyone updating is served by the working OTA.

Solution

Run during a genuine pause in phase 1 execution (between waves), not racing against it:

TMPDIR=/home/archipelago/tmp/iso-scratch bash scripts/build-iso-release.sh

Keep the QEMU boot test (no --no-qemu).

Preconditions: git status --porcelain empty on main.

Launch it as an explicit background job. The build runs well past 10 minutes; twice it hit the tool's foreground timeout and once that killed an in-progress cargo test outright.

Build from current main HEAD, not a detached tag checkout — decision already made, don't re-derive. Preflight requires git rev-parse --abbrev-ref HEAD == "main" (a detached checkout returns HEAD and fails), and the archipelago version identity (Cargo.toml / package.json / CHANGELOG / manifest, all 1.7.119-alpha) is untouched by commits made after the tag. BotFights is versioned and shipped independently via the signed catalog, so building at HEAD ships the security-fixed 1.2.11 rather than reverting to the vulnerable 1.2.9 current at tag time.

Gates already seen passing (mostly cached, expect them to pass fast): git-diff-check, cargo-fmt, catalog-drift, whats-new-sync, ui-type-check, ui-unit-tests (788), cargo-check. Not yet reached: cargo-test-weekly (~1500s), verify-artifacts, build-iso, iso-smoke, qemu-boot.

TMPDIR matters while /tmp (12G tmpfs) is tight — honored natively by mktemp-based scripts and by test-iso-qemu.sh since commit 6c2b6668 fixed its hardcoded /tmp paths.