aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-02 12:17:53 -0500
committerCraig Jennings <c@cjennings.net>2026-06-02 12:17:53 -0500
commit0f5e0b2cf573f5bb96226f892057adbee456dbbd (patch)
tree7c35562a58c0c6269c311940a263da7e88fa99d5
parentb10cba594db836c0747066addad48bda4d30cd02 (diff)
downloadarchsetup-0f5e0b2cf573f5bb96226f892057adbee456dbbd.tar.gz
archsetup-0f5e0b2cf573f5bb96226f892057adbee456dbbd.zip
chore(todo): close Phase 3.2 dotfiles tasks, file ratio pull-down
-rw-r--r--todo.org20
1 files changed, 15 insertions, 5 deletions
diff --git a/todo.org b/todo.org
index f64880f..7291010 100644
--- a/todo.org
+++ b/todo.org
@@ -193,13 +193,23 @@ Migrated this workstation: cloned the dotfiles repo to =~/.dotfiles=, committed
*** 2026-05-22 Fri @ 21:20 -0500 velox migrated to ~/.dotfiles (laptop overrides preserved)
ratio is THIS machine (was "fractal" pre-reinstall) — migrated in 3.1. velox migrated over SSH (Craig quit its Hyprland): cloned ~/.dotfiles, stowed common+hyprland from it. velox carries deliberate laptop-local real-file overrides (foot.ini font 12, pypr config.toml laptop scratchpad sizing, waybar config battery module) that shadow stow — preserved them as local real files (backed up, restowed the rest, restored the overrides). All machines now on ~/.dotfiles.
-*** TODO [#A] Phase 3.2 — git rm -r dotfiles/ from archsetup, drop transitional CLAUDE.md notes
-Now unblocked (ratio + velox both migrated). Remove =dotfiles/= from the archsetup repo, drop the "transitional / retained until velox migrates" notes in CLAUDE.md (Project Structure + Dotfiles Repository section). Note velox + ratio still have local archsetup clones with dotfiles/ — harmless (they stow from ~/.dotfiles now); their next archsetup pull drops it.
+*** 2026-06-02 Tue @ 12:16:54 -0500 Phase 3.2 done — removed in-repo dotfiles/ from archsetup
+git rm'd the in-repo =dotfiles/= tree (831 files) now that ratio + velox both stow from =~/.dotfiles=; the installer already clones DOTFILES_REPO so nothing read it at install time. Stripped the stow targets from archsetup's Makefile (kept VM-integration + the safe-rm-rf installer-helper suite). Updated CLAUDE.md (Project Structure, Makefile Targets, Dotfiles Repository, Script Counts, Theme/Key-Config path refs) and README.md (dotfile-management, theme, DE, unit-test sections) to point at =~/.dotfiles=; the README had been describing the pre-Phase-2 in-repo model. Commit b10cba5 on archsetup origin/main. velox + ratio local clones drop dotfiles/ on their next archsetup pull (ratio: see the "Pull Phase 3.2 changes onto ratio" task). 4 untracked calibre cache/annotation files that were never committed got moved aside to /tmp/archsetup-dotfiles-orphan-untracked-20260602 (disposable reading-position markers).
-*** TODO [#A] Migrate script unit-test suites to ~/.dotfiles
-Companion to Phase 3.2, and a prerequisite to it. The =tests/= suites for the stow-managed scripts (=waybar-touchpad=, =waybar-airplane=, =airplane-mode=, =notify=, =safe-rm-rf=, =layout-navigate=, =tmux-util=) still live in =archsetup/tests/= and resolve their target as =REPO_ROOT/dotfiles/hyprland/.local/bin/...= — i.e. they test the in-repo copy that 3.2 deletes. The moment =git rm dotfiles/= lands, every one of those tests breaks. Move them to =~/.dotfiles= (co-located with the scripts they exercise, the copy that actually ships) before or with the git-rm.
+*** 2026-06-02 Tue @ 12:16:54 -0500 Migrated script unit-test suites + a Makefile into ~/.dotfiles
+Gave =~/.dotfiles= its own Makefile rather than repointing archsetup's =DOTFILES= default — the dotfiles repo now owns its stow tooling and tests, so it manages and validates standalone (relevant to the open-source release too). Authored =~/.dotfiles/Makefile= with the stow family (=stow/restow/reset/unstow/import= + check-de/check-dest + DE/DEST machinery) plus a =make test= target (mirrors archsetup's hyphenated-dir test-unit loop). Moved-Makefile fixups: =DOTFILES := $(shell pwd)= (trees at repo root), =reset='s revert scoped to =git checkout -- common $(DE)= (not the whole repo — caught in review), import header/path "dotfiles/$(DEST)" → "$(DEST)", =minimal= added to the import DEST filter only.
-=waybar-netspeed= already has its suite in the new home: =~/.dotfiles/tests/waybar-netspeed/test_waybar_netspeed.py= (the pattern to mirror — stubs =ip=/=iw= on a temp PATH, drives the script via =WAYBAR_NETSPEED_IFACE= / =WAYBAR_NETSPEED_INTERVAL= env overrides). When migrating the rest: establish a runner in =~/.dotfiles= (=python3 -m unittest discover= or similar), add =__pycache__= / =.pytest_cache= to its =.gitignore=, ensure =tests/= is never stowed into =$HOME=, and update the archsetup CLAUDE.md + this todo to point at the new test home. The VM/integration harness (=scripts/testing/=, =test-results/=) stays in archsetup — only the per-script unit suites move.
+Moved 6 suites (=airplane-mode=, =layout-navigate=, =notify=, =tmux-util=, =waybar-airplane=, =waybar-touchpad=) into =~/.dotfiles/tests/=, dropping the =dotfiles/= =SCRIPT=-path prefix (=REPO_ROOT= is now the dotfiles root), and copied their fixtures (=layout-navigate/fake-hyprctl=, =tmux-util/fake-{fzf,kill,sleep,tmux}=). =waybar-netspeed='s suite was already there. =safe-rm-rf= stayed in archsetup (it tests the installer, not a dotfile). =make test= green: 7 suites, 124 tests. Committed 59b10c4 + pushed to the dotfiles repo. =minimal= is a standalone tree (stowed alone, not =common + minimal=), so a =make stow minimal= target needs its own branch — deferred as a small follow-up; the move kept stow/restow/reset/unstow behavior-identical to archsetup (dwm/hyprland).
+
+*** TODO [#A] Pull Phase 3.2 changes onto ratio
+Follow-up once the velox-side Phase 3.2 work has pushed (the ~/.dotfiles Makefile + moved unit suites to git@cjennings.net:dotfiles.git, and the archsetup commit that strips the stow targets + git-rm's =dotfiles/=). ratio already stows from =~/.dotfiles= (migrated in 3.1, 2026-05-22), and none of these changes touch a stowed file — the Makefile and =tests/= live at the dotfiles repo root, outside the stow trees — so ratio needs no restow, just two pulls plus a safety check. Run on ratio (or over SSH from velox):
+
+1. *Safety check FIRST, before pulling archsetup.* Confirm no live symlink points into =~/code/archsetup/dotfiles=: =find ~ -lname '*code/archsetup/dotfiles*' 2>/dev/null= should be empty, and =find ~ -xtype l 2>/dev/null= (dangling links) should be empty. If anything still points into archsetup/dotfiles, ratio isn't fully migrated — re-stow from =~/.dotfiles= before continuing, or the archsetup pull will dangle those links.
+2. =cd ~/.dotfiles && git pull --ff-only= — picks up the new Makefile + =tests/=.
+3. =cd ~/code/archsetup && git pull --ff-only= — drops the now-removed =dotfiles/= and the stow targets from ratio's clone.
+4. Re-check dangling links after the archsetup pull: =find ~ -xtype l 2>/dev/null= — expect none.
+5. Adopt the new flow: dotfile stow management now lives in the dotfiles repo — =cd ~/.dotfiles && make restow hyprland= (no =DOTFILES== override; the archsetup Makefile no longer has stow/restow/reset/unstow/import).
+6. =cd ~/.dotfiles && make test= — confirm the migrated unit suites pass on ratio.
*** TODO [#A] Cleaner per-machine override mechanism for the dotfiles repo
velox keeps laptop-specific configs (foot font, pypr scratchpad sizing for 2256x1504, waybar battery) as local REAL files shadowing the stow symlinks. That's fragile: any =make restow= on velox re-conflicts (hit exactly this during the 2026-05-22 migration — stow aborts on the real files). The =~/.dotfiles= model needs a real per-machine override story (a =minimal/=-style per-host package, a documented local-override convention with =.stow-local-ignore=, or host-conditional includes) so overrides survive restows without manual backup/restore.