Update removes stray debug packages; how the baseline smoketest copes with old installers

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-06 21:02:28 -07:00
co-authored by Claude Opus 5.5
parent 63d78c8419
commit a3ae02ba61
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -89,7 +89,7 @@ sections:
Scenarios cover a fresh install, `refresh`, a no-op update, upgrading from an older release, `update` replacing itself, new and failing migrations, a failing hook, an unreachable upstream, local edits, low disk space, a month-old machine, skipped packages and siblings.
**How it works.** Each scenario runs on a throwaway copy of one of two images. *base* is Arch's cloud image with GNOME added as archinstall's desktop profile does it, and a user `tester` (password `tester`) who logs in automatically. *installed* is base after `install.sh` at the commit your branch started from; scenarios on it first `update` to the commit under test. Inside the VM, a bare repo at `/srv/smoketest/coredesktop.git` stands in for Gitea, so `install.sh` and `update` run unchanged. After a scenario, `fingerprint` describes the machine as text (packages, Flatpaks, services, firewall, files in `/etc`, GNOME settings). The baseline scenario installs an older commit, runs `update`, and checks the result matches a fresh install. If not, an `install.sh` change is probably missing its migration.
**How it works.** Each scenario runs on a throwaway copy of one of two images. *base* is Arch's cloud image with GNOME added as archinstall's desktop profile does it, and a user `tester` (password `tester`) who logs in automatically. *installed* is base after `install.sh` at the commit your branch started from; scenarios on it first `update` to the commit under test. Inside the VM, a bare repo at `/srv/smoketest/coredesktop.git` stands in for Gitea, so `install.sh` and `update` run unchanged. After a scenario, `fingerprint` describes the machine as text (packages, Flatpaks, services, firewall, files in `/etc`, `~/.bashrc`, GNOME settings). The baseline scenario installs an older commit, runs `update`, and checks the result matches a fresh install. If not, an `install.sh` change is probably missing its migration. The older commits are listed in `smoketest/baselines`. Their installers can no longer finish in a VM as they did then (a package that no longer builds, a dialog no one clicks), so the scenario installs each with small fixes on top, then sets the clone back to the commit itself. An install that fails is tried once more.
**What you need.** KVM (virtualization turned on in the firmware), about 8 GB of RAM and 4 CPUs per VM (`SMOKETEST_MEMORY`, `SMOKETEST_CPUS`), and about 45 GB in `~/.cache/coredesktop-dev/smoketest`. The images are kept between runs (the installed one is the biggest, around 35 GB), along with the shared package cache and each run's logs. A scenario's own disk only holds its changes to the image, and is deleted when the scenario ends. To free space, `coredesktop-dev smoketest clean` deletes old runs' logs, and `clean --all` deletes everything, so the next run rebuilds the images. The first run builds both images before any scenario runs: *base* in a few minutes, *installed* in an hour or more. Later runs reuse them; rebuild *installed* now and then with `coredesktop-dev smoketest images installed`. Arch packages are cached and shared between VMs; Flatpaks aren't. To watch a VM's screen, set `SMOKETEST_VNC=1` and connect a VNC viewer to `127.0.0.1:5901`.
+1 -1
View File
@@ -78,7 +78,7 @@ sections:
- "Updates the Arch keyring, then Arch and GNOME, then AUR packages, Flatpaks, the languages you added with [mise](/software/mise/), CoreDesktop's pipx apps, GNOME extensions and firmware."
- "Warns you not to reboot if the initramfs failed to rebuild."
- "Runs any one-time migrations, the way existing machines pick up new CoreDesktop setup."
- "Lists packages that were installed only because something else needed them, and that nothing needs any more, and asks before removing them. The answer defaults to no. Packages CoreDesktop installs are never on this list."
- "Lists packages that were installed only because something else needed them, and that nothing needs any more, and asks before removing them. The answer defaults to no. Packages CoreDesktop installs are never on this list. Debug symbols left behind by a package that's gone (the `-debug` packages the AUR builds alongside some programs) are removed without asking."
- type: callout
text: "To keep a package you use directly off that list for good, run `sudo pacman -D --asexplicit <package>`. And if an update ever barfs, check the **Latest News** on [archlinux.org](https://archlinux.org) for fixes."