From 505f64409fb4c65b05d71c81dca4e9cbb1425896 Mon Sep 17 00:00:00 2001 From: Mark Pitman Date: Sat, 20 Dec 2025 19:32:18 -0800 Subject: [PATCH 1/2] Clean up repository issues - Remove Omarchy distribution support (directory was already deleted) - Remove generic/github-add-key script and references (SSH keys handled during auth) - Remove generic/lazyvim script (already deleted, cleaning up references) - Fix scripts/check.sh to exclude markdown files from bash syntax checks - Update copilot-instructions.md to reflect current state and resolved issues --- .github/copilot-instructions.md | 94 ++++++++++++++++++++++++++++----- bootstrap | 3 -- fedora/bootstrap | 6 --- generic/lazyvim | 4 -- pop_os/bootstrap | 6 --- scripts/check.sh | 2 +- ubuntu/bootstrap | 12 ----- 7 files changed, 83 insertions(+), 44 deletions(-) delete mode 100755 generic/lazyvim diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index f61fb95..299ded3 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -10,15 +10,19 @@ Because scripts are sourced (not executed in a subshell) they run in the current ## Project structure and conventions -- `bootstrap` (top-level): dispatches to a distro directory after reading `/etc/os-release`. +- `bootstrap` (top-level): dispatches to a distro directory after reading `/etc/os-release`. Supports Ubuntu, Pop!_OS, Fedora, and Arch. - `*/bootstrap` (per-distro): orchestrates other scripts in that distro folder and the shared `generic/` helpers. -- `generic/`: small reusable steps (create-ssh-key, install-jetbrains-tools, install-zsh-customizations, lazyvim, etc.). Treat these as library modules that are `source`d by distro bootstrappers. +- `generic/`: small reusable steps (create-ssh-key, install-jetbrains-tools, install-zsh-customizations, github-auth-login/logout, add-user-to-groups, create-directories, homebrew). Treat these as library modules that are `source`d by distro bootstrappers. - `*/*install-*-packages` files: contain package lists and package-manager-specific commands (apt, dnf, pacman, yay). Be careful when modifying package sets — keep package-manager flags and ordering intact. +- `test/`: contains Docker and QEMU testing infrastructure for validation (primarily for Ubuntu). +- `scripts/`: helper scripts like `check.sh` for local syntax and shellcheck validation. +- `Makefile`: provides convenient targets for testing, linting, and building test images. Examples to reference when changing behavior: - Distribution detection: `bootstrap` (reads `/etc/os-release` and branches on `ID`). - Arch essentials: `arch/install-essential-packages` (enables multilib, calls `pacman`, handles AUR with `yay`). - Ubuntu interactive flow: `ubuntu/bootstrap` (prompts with `read -p` and conditionally runs dev/desktop/media installs). +- Fedora/Pop!_OS flow: similar interactive prompts for optional component installation. ## Interaction & side-effects to watch for @@ -31,26 +35,92 @@ Examples to reference when changing behavior: - Preserve the `source <(curl -fsSL ...)` style where callers expect that pattern. If you introduce an alternate execution method, add a usage comment and keep backward compatibility. - When modifying package lists, keep package-manager specific flags (e.g., `--needed` for `pacman`, `-y`/`-qq` for `apt`) and preserve any pre-update steps (e.g., `apt-get update`). - Reuse `generic/` helpers rather than duplicating logic across distros. +- The `lazyvim` generic helper has been removed — LazyVim setup was previously auto-installed but is no longer part of the bootstrap process. ## Testing and validation (how to be productive quickly) -- Quick lint: run `bash -n