summaryrefslogtreecommitdiff
path: root/TODO.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-11-13 23:26:21 -0600
committerCraig Jennings <c@cjennings.net>2025-11-13 23:26:21 -0600
commit2e10a8856d0bdd4c8f77c53320221ad1b8deaa13 (patch)
tree95832c3b74fc523fe9d8319e25c5ea5bf1d40433 /TODO.org
parentfd9cce59993556400b635256d712a65d87f5d72d (diff)
fix(archsetup): implement critical bug fixes and test improvements
This commit addresses several high-priority bugs and enhances the testing infrastructure: **Bug Fixes:** 1. Add root permission check at script start to fail fast with clear error message 2. Disable debug package installation by adding --nodebug flag to all yay calls 3. Replace unsafe `git pull --force` with safe rm + fresh clone to prevent data loss 4. Add geoclue package with correct systemd service configuration for geolocation 5. Add completion marker for reliable automated test detection **Testing Infrastructure:** - Add comprehensive VM-based testing framework in scripts/testing/ - Fix test script pgrep infinite loop using grep bracket self-exclusion pattern - Add network diagnostics and pre-flight checks - Support snapshot-based testing for reproducible test runs **Package Management:** - Remove anki (build hangs 98+ minutes) - Remove adwaita-color-schemes (CMake build issues) Test Results: 0 errors, 1,363 packages installed in 40 minutes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Diffstat (limited to 'TODO.org')
-rw-r--r--TODO.org101
1 files changed, 85 insertions, 16 deletions
diff --git a/TODO.org b/TODO.org
index 205785d..9fa4f62 100644
--- a/TODO.org
+++ b/TODO.org
@@ -3,6 +3,26 @@
#+DATE: 2025-11-06
#+FILETAGS: :v2mom:strategy:archsetup:
+* URGENT Package Installation Fixes
+** TODO [#A] Replace nitrogen with feh for wallpaper management
+Nitrogen is no longer in the official Arch repos. Need to:
+- Replace nitrogen with feh in archsetup script
+- Update ranger configuration to use feh instead of nitrogen
+- Update emacs configuration to use feh instead of nitrogen
+- Update any scripts that change wallpaper to use feh instead of nitrogen
+- Test that feh provides equivalent functionality
+
+TEMPORARILY DISABLED in archsetup:668
+
+** TODO [#A] Disable or fix adwaita-color-schemes AUR package
+adwaita-color-schemes is failing to build due to CMake version incompatibility
+in qgnomeplatform dependency. Either:
+- Disable for now and wait for AUR maintainer to fix
+- Find alternative color scheme package
+- Investigate if we actually need this package
+
+TEMPORARILY DISABLED in archsetup:688
+
* What is V2MOM?
V2MOM is a strategic framework that provides clarity for decision-making, ruthless prioritization, and measuring progress. It transforms vague intentions into concrete action plans.
@@ -119,8 +139,9 @@ The script handles edge cases gracefully, provides detailed error messages with
*Why this is Method 1:* Can't build testing infrastructure or maintain packages if the script doesn't work. This is the foundation—everything else depends on reliable execution.
-*** TODO [#A] Fix: no dotfiles were set up on last run
-CRITICAL - system is unusable without dotfiles; all 50+ scripts and configs missing
+*** DONE [#A] Fix: no dotfiles were set up on last run
+CLOSED: [2025-11-13 Wed]
+RESOLVED - VM test confirms dotfiles are properly stowed as symlinks; all configs and scripts in place
*** TODO [#A] Add root check at script start
Prevents running with wrong permissions that cause silent failures
@@ -149,21 +170,40 @@ Currently archsetup downloads a -debug package for every package installed, doub
Add ~!debug~ to OPTIONS in /etc/makepkg.conf or create ~/.config/pacman/makepkg.conf with the setting
Critical performance issue - cuts install time in half
+*** TODO [#B] Review slow and failed packages from 8GB RAM test
+See [[file:docs/slow-failed-packages.org][Slow and Failed Packages Analysis]]
+
+Test run from 2025-11-09 with 8GB RAM, 50GB disk identified:
+- 2 packages that hang indefinitely (anki, tageditor)
+- 4 packages that fail to install (nitrogen, gtk-engine-murrine, adwaita-color-schemes, vagrant)
+- Several slow but successful packages (multimarkdown, ptyxis, thunderbird, etc.)
+
+High priority actions:
+- Remove or make optional: anki (hangs 98 min), tageditor (hangs on qt5-webengine)
+- Investigate repository/build issues for failing packages
+
*** TODO [#B] Resolve all 8 failed packages from last run
-**** TODO [#B] adwaita-color-schemes (CMake compatibility issue)
-Error: "Compatibility with CMake < 3.5 has been removed" - qgnomeplatform build fails
-**** TODO [#B] geoclue (service doesn't exist)
-Failed to enable unit: Unit geoclue-agent@cjennings.service does not exist - check if service name is correct
-**** TODO [#B] tor-browser (PGP key import failure)
-PGP key EF6E286DDA85EA2A4BA7DE684E2C6E8793298290 required but keyserver receive failed: No data
-**** TODO [#B] multimarkdown (CMake compatibility issue)
-Same CMake < 3.5 compatibility error as adwaita-color-schemes
-**** TODO [#B] vagrant (deprecated/not found in repos)
-Error: target not found: vagrant - package no longer in official repos, may need AUR alternative
-**** TODO [#B] anki (missing .gitconfig during build)
-Cargo build failed: "failed to stat '/home/cjennings/.gitconfig'" - .gitconfig doesn't exist yet during build
-**** TODO [#B] figlet-fonts (FTP download with curl error)
-curl: option --ftp-pasv: is unknown - FTP download from ftp://ftp.figlet.org fails
+**** DONE [#B] adwaita-color-schemes (CMake compatibility issue)
+CLOSED: [2025-11-13 Wed]
+REMOVED from archsetup - package removed due to CMake build issues
+**** DONE [#B] geoclue (service doesn't exist)
+CLOSED: [2025-11-13 Wed]
+FIXED - Added geoclue package to archsetup and enabled correct service name: geoclue.service (was incorrectly trying geoclue-agent@cjennings.service)
+**** DONE [#B] tor-browser (PGP key import failure)
+CLOSED: [2025-11-13 Wed]
+PGP key issue resolved - tor-browser-bin 15.0-1 successfully installs in VM test
+**** DONE [#B] multimarkdown (CMake compatibility issue)
+CLOSED: [2025-11-13 Wed]
+CMake issue resolved - multimarkdown 6.7.0-2 successfully installs in VM test
+**** DONE [#B] vagrant (deprecated/not found in repos)
+CLOSED: [2025-11-13 Wed]
+vagrant 2.4.9-1 now available and successfully installs in VM test
+**** DONE [#B] anki (missing .gitconfig during build)
+CLOSED: [2025-11-13 Wed]
+REMOVED from archsetup - package removed due to build issues (hangs 98+ minutes, missing .gitconfig during cargo build)
+**** DONE [#B] figlet-fonts (FTP download with curl error)
+CLOSED: [2025-11-13 Wed]
+FTP download issue resolved - figlet-fonts 1.1-1 successfully installs in VM test
*** TODO [#B] Improve error handling: UFW firewall, rmmod pcspkr, mkdir missing quotes
**** TODO [#B] Fix UFW firewall error handling (archsetup:395,410)
@@ -285,6 +325,27 @@ Core automation infrastructure - enables continuous validation
*** TODO [#A] Generate recovery scripts from test failures
Auto-create post-install fix scripts for failed packages - makes failures actionable
+*** TODO [#B] Implement Testinfra test suite for archsetup
+Create comprehensive integration tests using Testinfra (Python + pytest) to validate archsetup installations
+
+See complete documentation: [[file:docs/testing-strategy.org::*Test Automation Framework][Testing Strategy - Test Automation Framework]]
+
+Tests should cover:
+- Smoke tests: user created, key packages installed, dotfiles present
+- Integration tests: services running, configs valid, X11 starts, apps launch
+- End-to-end tests: login as user, startx, open terminal, run emacs, verify workflows
+
+Framework: Testinfra with pytest (SSH-native, built-in modules for files/packages/services/commands)
+Location: scripts/testing/tests/ directory
+Integration: Run via pytest against test VMs after archsetup completes
+Benefits: Expressive Python tests, excellent reporting, can test interactive scenarios
+
+The testing-strategy.org document includes:
+- Complete example test suite (test_integration.py)
+- Tiered testing strategy (smoke/integration/end-to-end)
+- How to run tests and integrate with run-test.sh
+- Comparison with alternatives (Goss)
+
*** TODO [#B] Set up automated test schedule
Weekly full run to catch deprecated packages even without commits
@@ -389,6 +450,14 @@ If laptop is stolen, data remains protected
**** TODO [#A] Document which ports need to be open (SSH, Proton Bridge, etc.)
**** TODO [#A] Test that all needed services work with firewall enabled
+*** TODO [#C] Fix VM cloning machine-ID conflicts for parallel testing
+Currently using snapshot-based testing which works but limits to sequential test runs
+Cloned VMs fail to get DHCP/network even with machine-ID manipulation (truncate/remove)
+Root cause: Truncating /etc/machine-id breaks systemd/NetworkManager startup
+Need to investigate proper machine-ID regeneration that doesn't break networking
+Would enable parallel test execution in CI/CD (Method 2)
+Priority C because snapshot-based testing meets current needs
+
*** TODO [#A] Complete security education within 3 months
Read recommended resources to make informed security decisions (see metrics for Claude suggestions)