Changelog
All notable changes to this project will be documented in this file.
[Unreleased]
Added
- Separate encryption password: Allow users to choose between using their account password or a separate password for disk encryption during setup
[0.5.1] - 2026-03-13
Fixed
- Fallback initramfs warning:
configureMkinitcpionow checks forinitramfs-<kernel>-fallback.imgaftermkinitcpio -Pand emits a structured warning if absent, surfacing the root cause oflimine-snapper-notifyfailures on first boot - jq added to extra packages:
jqis now installed as part of the default extra package set
Removed
- archup-cli post-boot install: Removed
archup-cli.shand its invocation fromall.sh; the post-boot model is barebone or Dank Linux only
[0.5.0] - 2026-03-13
Added
- Go CLI binary: Rewrote the installer as a compiled Go binary using Cobra, Bubble Tea, Bubbles, Huh, and Lipgloss; replaced the bash orchestrator with a Go binary downloader (
install/bootstrap.sh) - DDD architecture: Introduced
internal/domain,internal/application,internal/infrastructure, andinternal/interfaceslayers with domain entities, ports, and adapters - Kernel selection: Added TUI screen for choosing between linux, linux-lts, linux-zen, and linux-cachyos kernels
- GPU detection: Added GPU detection and automatic driver/package selection during bootstrap
- Disk encryption toggle: Added TUI screen for enabling LUKS encryption with separate password support
- Dank Linux opt-in: Added toggle screen before installation and first-boot auto-run via flag file
- AUR helper and Chaotic-AUR selection: Added TUI screen; Chaotic AUR is always enabled; user selects helper (paru/yay)
- CachyOS repository support: Added host-side and chroot-side CachyOS repo setup when linux-cachyos kernel is selected
- Limine bootloader: Replaced systemd-boot with Limine; added nested snapshot entries (
//Snapshots), machine-id injection, and a pacman hook for kernel upgrades - limine-snapper-sync: Install and enable the limine-snapper-sync service for automatic snapshot boot entries
- Plymouth theme: Added custom theme with ASCII art PNG logo, centered layout, scaled LUKS password entry, and black background
- Power management: Added zram-generator for compressed swap and enabled power-profiles-daemon
- Post-boot first-login hook: Moved DMS opt-in and firewalld configuration to first-login; deploy Starship prompt
- Installation verification gate: Added post-install verification with structured warnings before completing
- AMD P-State configuration: Added comprehensive AMD CPU detection and P-State mode selection
- WiFi credential migration: Migrate iwd credentials to NetworkManager profiles post-install
- bleu-theme integration: Integrated bleu-theme for CLI tool theming
- ble.sh: Added Bash Line Editor installation on first boot
- Wayland runtime libs: Added essential runtime libraries for Wayland desktop sessions
- Nerd fonts: Added ttf-ibmplex-mono-nerd and ttf-firacode-nerd to extra packages
- nvtop: Added nvtop GPU monitor to extra packages
- Audio stack: Added Pipewire (pipewire, pipewire-alsa, pipewire-jack, pipewire-pulse, wireplumber), pamixer, playerctl, and gst plugins
- Bluetooth utilities: Added bluetui alongside bluez stack
- WiFi packages: Added wireless-regdb, impala, and broadcom-wl-dkms
- firewalld: Replaced ufw with firewalld; added post-boot initialization script
- Local debug mode: Added flag to skip GitHub downloads during VM testing
- Comprehensive unit tests: Added test suites for preflight, bootstrap, base install, config, and system phases; centralized test helpers
Changed
- Installer entrypoint:
cmd/archupreplaces the former bash entry point; build managed with goreleaser and GNU Make - TUI architecture: Converted to thin interface layer with flat section navigation, unified keyboard hints, and dedicated view files
- Shell configuration: Stripped to no-op; all shell setup now handled by
cli-tools.shon first boot - Post-boot scripts: Refactored into
PostBootScriptslist; removedcopyShellConfigs; added TTY and network ordering to systemd service - Chaotic-AUR setup order: Keyring and mirrorlist installed before adding to
pacman.confto prevent pacman errors - Branding: Renamed UEFI boot label and Limine branding from "ArchUp" to "Arch Linux"; updated installer title with version, default hostname
arch, and black background
Removed
- Bash orchestrator scripts: Removed shell scripts superseded by Go handlers (DDD migration cleanup)
- systemd-boot: Consolidated entirely on Limine bootloader
- Legacy UI and phases code: Removed dead
internal/uiandinternal/phasescode paths from pre-DDD era - UFW: Replaced by firewalld
Fixed
- Security: Prevented password exposure in process listings and config files
- NetworkManager: Stopped masking
NetworkManager-wait-onlineto restore DNS readiness; addednss-lookup.targetordering and DNS readiness gate - Bootloader: Corrected Limine path/cmdline keys, nested
/+format, default entry, and quiet mode flags - Plymouth: Fixed centering, scaling, bullet positions, background color, and lock icon removal
- Post-boot: Fixed bash_profile self-cleanup placement, HOME-relative log path, TTY log bleed suppression
- CachyOS: Added
pacman-key --initandMkdirAllbefore CachyOS repo setup - AUR helpers: Built from source as non-root user; handle Chaotic-AUR unavailability; used
makepkg --packagelistfor deterministic installation - Chaotic-AUR mirrors: Fetch dynamically from official mirrorlist with fallback support
- Logging: Added comprehensive UI event logging; prevented stdout leak to TUI
- CodeRabbit review findings: Fixed
PrevSectionlogic,Branch()empty guard,isEncrypteddedup,DISK_PLACEHOLDERconstant, regex pacman uncomment, UEFI-safe limine hook
[0.3.0] - 2025-10-22
Added
- UFW firewall: Added ufw with default deny incoming policy (configured on first boot)
- First-boot branding: Display ArchUp logo and completion message during first-boot setup
- Pacman configuration: Enable color output, parallel downloads, and ILoveCandy progress bar on installed system
- Fast ISO downloads: Configure ISO pacman with ParallelDownloads=10 before base installation
- zram swap: Configured zram-generator for compressed in-memory swap with optimized sysctl parameters
- Broadcom WiFi: Added broadcom-wl driver to base packages for Broadcom wireless support
- Multilib support: Enabled multilib repository on ISO and installed system with reusable helper
Fixed
- Download script: Added missing extra.packages to download list
- UFW setup: Moved firewall configuration to post-boot to avoid kernel module errors in chroot
- Spinner visibility: Fixed gum spinner not showing during logged phase by redirecting stderr to /dev/tty
Changed
- Disk selection: Enhanced disk listing with model, serial, and vendor information using JSON output
- Install URL: Updated to archup.run domain with /install and /i shortcuts
- archup-cli installation: Switched to go install for user-owned binary and easier self-updates
- Network manager: Replaced systemd-networkd + iwd with NetworkManager for easier WiFi management via nmcli/nmtui
- Shell aliases: Added fd as find replacement alias
Fixed
- Help flag: Moved --help check before any side effects for proper argument parsing
- Error handling: Fixed ERR trap propagation with set -E and proper cleanup execution
- Spinner output: Fixed package installation output leaking through spinner display
- Cleanup flag: Fixed --cleanup flag triggering false errors from pgrep exit codes
[0.2.0] - 2025-10-21
Added
- Extra packages: Separated optional packages into extra.packages installed after Chaotic-AUR
- Shell verification: Added shell config verification to post-install verify script
- Starship config: Added custom Arch-inspired blue color scheme for starship prompt
- System utilities: Added essential tools (dosfstools, which, wget, unzip, p7zip) to extra packages
- Bluetooth support: Added bluez and bluez-utils for Bluetooth management
- OpenSSH: Added openssh to base packages for ssh-keygen and SSH client tools
Changed
- Package organization: Split packages into base (essential) and extra (optional from Chaotic-AUR)
- Base system: Reduced base system to essential packages only, moved modern CLI tools to extra
- Post-boot error handling: Improved error handling with non-critical failure messages
- Shell config structure: Organized shell files in proper directory structure
- Plymouth theme: Changed background color to darker blue (#050a14)
- Logging: Removed stdin redirect to fix gum terminal display
- Asset URLs: Changed ARCHUP_RAW_URL from dev to main branch to prevent breakage after merge
Fixed
- Shell config ownership: Fixed chown paths to use chroot-relative paths
- Chaotic-AUR padding: Fixed message padding consistency
- Limine bootloader: Fixed kernel panic with non-default kernels (cachyos, zen, lts)
- AMD P-State selection: Auto-select when only one mode available
- Bootloader message: Removed unnecessary Limine message since no choice exists
- Curl-pipe installation: Fixed curl-based one-liner installation by auto-detecting piped input, re-executing with TTY for interactive prompts, and running bootstrap before downloads
- Cleanup flag: Fixed --cleanup flag to run after helper files are downloaded
- Verification script: Disabled ERR trap during verification to properly show all failures and prompt user, use dynamic kernel name instead of hardcoded linux, made fallback initramfs optional
- Package name: Fixed git-delta package name (was incorrectly named 'delta')
- SSH key generation: Fixed post-boot SSH key generation by including openssh in base packages
[0.1.0] - 2025-10-21
Added
- Post-boot setup: Dedicated post-boot setup script for first-boot execution
- archup-cli integration: Added archup-cli installation to first-boot sequence
- archup-cli builder: Download and install archup-cli from latest GitHub release during installation
Changed
- Helper script refactoring: Updated helper scripts for improved architecture
- Build system: Updated Makefile to remove preset paths and add post-boot paths
- AUR helpers: Consolidated AUR helpers into single unified aur.sh script
- Installer simplification: Simplified install.sh to use download helper and remove redundant preset logic
Fixed
- Post-install workflow: Removed duplicate post-boot setup logic from snapper script
- Installation sequence: Properly integrated post-boot-setup into main installation flow