Add interactive installer, tagged releases, GRUB fixes, and docs refresh - #1
Merged
Conversation
Interactive installer (plain-prompt TUI, no new dependencies):
- src/installer/install-lib.sh: shared install logic extracted from the
QEMU test autoinstaller (pure helpers, prompt helpers, effectful steps),
sourceable and bats-tested; both frontends share one implementation.
- src/installer/silverblue-install: prompts for disk (type-ERASE gate),
hostname/timezone/locale/keymap, bootloader, microcode, linux-firmware,
network stack (none/systemd-networkd/NetworkManager), root password, and
an optional wheel+sudo admin user. Installed as /usr/bin/<prefix>-install;
live-ISO motd points at it. UEFI-only, no LUKS/swap by design.
- The unattended autoinstaller keeps byte-identical test behavior and
becomes a thin frontend over the shared library.
Testing:
- tests/unit/test_installer{,_prompts}.bats: 20 new unit tests.
- tests/qemu/run.sh --interactive + harness phases drive the interactive
installer over serial via SILVERBLUE-INSTALL-PROMPT markers, then boot,
log in with the configured password, and verify the target (including
that no test-only artifacts leak onto interactive installs).
- Harness probes now lead with a bare Enter so GRUB menu countdowns are
never cancelled into the entry editor.
GRUB fixes (pre-existing bugs exposed by the new coverage):
- grub package now installed via pacstrap; the chroot pacman -S ran after
the hermetic path disabled remote repos and always failed.
- recordfail no longer holds the menu forever (timeout=-1 -> 10s): staged
updates on headless GRUB machines used to hang at the menu.
- GRUB rollback test exercises the health-check OnFailure path; unattended
recovery from an unloadable kernel is documented as systemd-boot-only.
- Frontends run with set -E so SILVERBLUE-INSTALL-FAIL markers and cleanup
fire for failures inside library functions.
CI/releases:
- v* tags publish ISO + SHA256SUMS to GitHub Releases (gh CLI, no new deps).
- Manual QEMU job gains scenario (unattended/interactive/both) and
bootloader (systemd-boot/grub) dispatch inputs.
- ISO is named after DISTRO_ID instead of archlinux-*.
Docs/website: new docs/installing.md (synced to /guides/installing/),
README/SECURITY/CONTRIBUTING/DERIVING/update-flow updates, Download hero
action, FAQ/getting-started/comparison refreshed to reflect releases and
the installer.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
✅ Deploy Preview for arch-silverblue ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Interactive installer (plain-prompt TUI, no new dependencies):
Testing:
GRUB fixes (pre-existing bugs exposed by the new coverage):
CI/releases:
Docs/website: new docs/installing.md (synced to /guides/installing/), README/SECURITY/CONTRIBUTING/DERIVING/update-flow updates, Download hero action, FAQ/getting-started/comparison refreshed to reflect releases and the installer.