test: rehearse the stable rooms' upgrade on every canary, and list Sunday's checks

update_canary.sh now also validates the exact package it is about to
publish as an upgrade from whatever stable names — 0.2.2 today, several
releases behind the laptop's canary. A package that upgrades the laptop
and breaks the desktops has to fail before it is published.

The lab print check runs in the Plasma lab as well as a plain container:
its rig lived in /tmp, which is a tmpfs there that docker cp cannot write
into, and its inline-PDF server shared a port with another test server.

docs/testing.md has the physical checks for 0.2.6.1 — paper through
Elmer, the real keyboard's zoom keys, the machine's graphics through
--diagnose, sign-out with a real account — before stable moves.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
ekklesia
2026-09-23 19:38:04 -05:00
co-authored by Claude Opus 5.5
parent 88ea3e86fd
commit 1d9da3bca0
5 changed files with 130 additions and 8 deletions
+19
View File
@@ -56,6 +56,25 @@ fi
"$ROOT/tools/validate-trixie-release.sh" "${validation_args[@]}"
# And the stable rooms' own path, on the same file. Every canary is a
# stable release in waiting, and the desktops are not on the previous
# canary: they are on whatever stable names, which can be several
# releases back (0.2.2 under 0.2.6.1). A package that upgrades the
# laptop and breaks the desktops has to fail here, not on a Sunday.
if [[ -f "$RELEASE_LOCAL/stable/manifest.json" ]]; then
stable_package_name="$(python3 -c \
'import json, sys; print(json.load(open(sys.argv[1]))["package"].rsplit("/", 1)[-1])' \
"$RELEASE_LOCAL/stable/manifest.json")"
stable_package="$RELEASE_LOCAL/packages/$stable_package_name"
if [[ -f "$stable_package" && "$stable_package" != "${validation_args[1]:-}" ]]; then
echo
echo "Rehearsing the stable rooms' upgrade from $stable_package_name"
VALIDATION_CHANNEL=stable \
"$ROOT/tools/validate-trixie-release.sh" "$package_path" "$stable_package"
fi
fi
# Checked again after the gate, which takes long enough for somebody else
# to have published in the meantime.
release_check_new_version "$version"