Skip to content

SSD install UX: git-archive prefix fix + one-click START-HERE launcher#89

Draft
tonylturner wants to merge 2 commits into
mainfrom
fix/ssd-install-ux
Draft

SSD install UX: git-archive prefix fix + one-click START-HERE launcher#89
tonylturner wants to merge 2 commits into
mainfrom
fix/ssd-install-ux

Conversation

@tonylturner

Copy link
Copy Markdown
Owner

Status: DRAFT — parked, not for merge/release yet. Needs a real Windows smoke test first (see gate below).

Came out of the post-workshop friction debrief. Targets the directory / extraction / execution-policy subset of onboarding pain (the WSL2-platform-install + Docker-Desktop-bundling discussion is separate and not in here).

Commits

  1. fix(stage-ssd): prefix repo archive with rangerdanger/ — real bug: git archive HEAD produced a flat tarball, so the auto-generated SSD README's tar xzf … -C ~ scattered ~80 repo files into $HOME and the following cd ~/rangerdanger failed. Added --prefix=rangerdanger/ to all four git-archive calls (stage-ssd + stage-ssd-delta, .sh + .ps1) and fixed the docs that assumed flat extraction (delta READMEs + workshop-ssd.md now extract in place over ~/rangerdanger).
  2. feat(ssd): one-click START-HERE launcher + wrong-path guards — stage-ssd emits self-locating launchers to the SSD root: START-HERE.cmd (Windows, runs PowerShell with -ExecutionPolicy Bypass) and start-here.command (macOS). Because the launcher lives on the SSD, its own dir is the tarball dir — student double-clicks one file, types no path, guesses no drive letter, never chooses between docker load and tar. setup.sh/.ps1 now diagnose a missing images-<arch>.tar (pointed at the repo / at an extracted archive / wrong arch). Docs lead with the launcher and say not to extract images-*.tar.

Verified

  • bash -n on all modified shell scripts
  • pwsh parse of all modified .ps1
  • Real git archive --prefix … | tar x round-trip → clean single rangerdanger/ folder, nothing scattered

NOT tested — release gate before un-drafting

  • Full stage-ssd run (needs Docker + network)
  • START-HERE.cmd double-click on real Windows → install completes
  • start-here.command double-click on macOS (exFAT exec bit / Gatekeeper quarantine may need right-click → Open the first time)

🤖 Generated with Claude Code

tonylturner and others added 2 commits June 24, 2026 01:23
…self-contains

git archive HEAD produced a flat tarball (no top-level dir), so the
auto-generated SSD README told students:

    tar xzf rangerdanger.tgz -C ~     # scatters ~80 repo files into $HOME
    cd ~/rangerdanger                 # ...dir never created -> fails

i.e. the handout itself caused the "ran in the wrong directory" reports.
Add --prefix=rangerdanger/ to all four git archive calls (stage-ssd
+ stage-ssd-delta, sh + ps1) so `tar xzf -C ~` creates ~/rangerdanger/.

Update the extract instructions that assumed flat extraction (the delta
DELTA-READMEs and workshop-ssd.md Pattern-1 / delta-apply blocks) to
extract over ~/rangerdanger in place, which the prefix now makes correct.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The remaining workshop onboarding friction was "where do I run this":
students extracted images-*.tar (no need — setup runs `docker load`),
pointed --from-tarballs at the wrong dir, or got lost between the repo
and the SSD.

- stage-ssd now emits self-locating launchers to the SSD root:
  START-HERE.cmd (Windows) and start-here.command (macOS). They live on
  the SSD, so %~dp0 / $(dirname $0) IS the tarball dir — the student
  double-clicks one file, types no path, guesses no drive letter, and
  never chooses between `docker load` and `tar`. The .cmd also runs
  PowerShell with -ExecutionPolicy Bypass, so students never change the
  machine execution policy. Line endings normalized (CRLF for .cmd, LF
  for .command) and written UTF-8 no-BOM so a Windows- or mac-staged SSD
  produces identical, working files.
- setup.sh/.ps1: when images-<arch>.tar isn't found under the tarball
  dir, detect the likely mistake (pointed at the repo, pointed at an
  extracted archive, or staged the wrong arch) and say so, instead of a
  bare "not found".
- Generated SSD README, quickstart Path C, and workshop-ssd.md now lead
  with the launcher and explicitly say not to extract images-*.tar;
  dropped the ambiguous "<dir-containing-the-tarballs>" / "copy the four
  files" wording.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant