✨ feat: per-OS package lists — Brewfile mac-only, apt list for Linux/WSL - #13
Merged
Conversation
…or Linux .chezmoiscripts/darwin runs brew bundle when the Brewfile hash changes; .chezmoiscripts/linux installs packages-apt.txt (native Ubuntu/Debian names, per-package so distro drift skips instead of aborting), degrading gracefully without apt or sudo. Scripts are OS-gated in .chezmoiignore and never run on the ephemeral class. Test applies now pass --exclude scripts so CI never actually installs packages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Non-empty, one package per line, no duplicates; also asserts packages-apt.txt itself never deploys to $HOME. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codifies the convention that keeps the Brewfile and packages-apt.txt from drifting: any tool added or removed gets updated in every list where it's available, under each distro's native name. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase 2 of the cross-platform plan. Homebrew stays deliberately macOS-only; Linux/WSL get the distro's native package manager with native names — no name-mapping layer, per the settled design.
.chezmoiscripts/darwin/runsbrew bundleonchezmoi applywhenever the Brewfile's embedded hash changes..chezmoiscripts/linux/installspackages-apt.txtthe same way: per-package (a name missing from a distro skips with a message instead of aborting), and degrades gracefully when apt or sudo is absent (prints the manual command instead)..chezmoiignore; theephemeralclass never runs any script.lazygit/k9snoted as not-in-Ubuntu-repos.--exclude scriptsso CI never actually installs packages; newpackages.batssanity-checks the list.Test plan
bats tests— 19/19 locallyGood "git" signature) — closes the Phase 1 acceptance checklist🤖 Generated with Claude Code