Repository navigation
⚠ Breaking change for forks
This release rewrites main history (the previous git filter-repo
sanitization done in 2026-04-18 was never pushed; v5.0.0 ships both
that rewrite and the curation cycle below). If you have a fork:
git fetch origin
git reset --hard origin/mainProfile.txt files reference new package file names — see naming convention.
Naming convention (new)
| Suffix | Included in | Purpose |
|---|---|---|
<source>.txt |
minimal + developer + full | Base — universal essentials |
<source>-developer.txt |
developer + full | Dev defaults (not in minimal) |
<source>-full.txt |
full only | Bragatte's personal pick |
Renames (history preserved via git mv):
| Old | New |
|---|---|
apt-post.txt |
apt-developer.txt |
brew-cask.txt |
brew-cask-developer.txt |
cargo.txt / cargo-developer.txt |
(deleted; migrated to data/packages.csv) |
npm.txt |
npm-developer.txt |
ai-tools.txt |
ai-tools-full.txt |
flatpak.txt / flatpak-post.txt |
flatpak-developer.txt / flatpak-full.txt |
snap.txt / snap-post.txt |
snap-developer.txt / snap-full.txt |
✨ New: data/packages.csv — Rust tool catalog
53 Rust tools in 5 categories with cross-source resolution:
category,name,brew,cargo,binary,prefer,description
rust-cli,bat,bat,bat,,brew,Cat with syntax highlighting
rust-cli,fd,fd,fd-find,fd,brew,Modern find (intuitive syntax)
rust-dev,ast-grep,ast-grep,ast-grep,sg,brew,Structural code search/refactor
...
prefer column chooses brew or cargo per row, with cross-source fallback.
Idempotent via binary-in-PATH check. Editorial principle: prefer Rust where mature alternative exists.
| Category | Tools | Profiles |
|---|---|---|
rust-cli |
19 | minimal, developer, full |
rust-dev |
15 | developer, full |
rust-data |
5 | developer, full |
rust-tui |
8 | full only |
rust-shell |
5 | full only |
Profile entries use csv:<category> syntax. Installer in src/core/csv.sh.
✨ New: OS tri-level parity (mac / Linux / Windows)
| OS | base | developer | full |
|---|---|---|---|
| macOS brew | 5 | 36 | 19 |
| macOS cask | — | 24 | 23 |
| Linux apt | 9 | 19 | 1 |
| Windows winget | 3 | 13 | 14 |
Profile entries totals: minimal=4, developer=13, full=23.
✨ New: shell helpers (functions.sh)
h rust-cli # Modern Unix replacements
h rust-dev # Dev tools (cargo extensions, ast-grep, ruff, ...)
h rust-data # Data wrangling (qsv, jaq, jql, ...)
h rust-tui # TUI applications (helix, yazi, zellij, ...)
h rust-shell # Shell integrations (starship, atuin, nu, ...)
h ai # AI clients + MCPs via mcpl
h <toolname> # Direct CSV lookup (e.g. h ast-grep, h ouch, h atuin)dotfiles-install.sh symlinks ~/.config/os-postinstall/packages.csv to power
the helpers.
✨ New: mise as preferred tool version orchestrator
dev-env.sh now offers mise install as the first step (replaces direnv +
fnm + pyenv + asdf with a single Rust tool). fnm and direct uv
installs kept as fallback.
Curation highlights
- AI tools migrated
pipx → uv(markitdown, fastapi-mcp). pipx documented
as fallback only if uv ever fails. - 5 macOS casks dropped: windsurf, antigravity, t3-code-alpha, ghostty,
iterm2 (replaced by warp + curated AI editors). - 5 Windows packages dropped: Steam, Epic Games, GeForce Experience,
Anaconda, Weka (gaming + redundant with conda removal). - Linux apt deduplicated; gaming + wine removed.
Removed
src/install/rust-cli.sh— replaced bycsv:rust-*dispatchsrc/install/cargo.sh— replaced bysrc/core/csv.shsrc/platforms/windows/install/cargo.ps1data/packages/cargo-developer.txt
Installer flag changes
apt.sh,flatpak.sh,snap.sh,brew-cask.sh,winget.ps1accept
--developer/--full(with--postkept as backwards-compat alias).ai-tools.shextended withbun:,uv:,pipx:prefix cases (was
npm/curl only).
Validator + tests
tools/validate-profiles.shrewritten to enforce the tri-level naming
convention and validatecsv:<category>rows againstdata/packages.csv.tests/test-data-validation.batsupdated to recognize CSV syntax.- 36/36 bats tests pass; dry-run on all 3 profiles 0 failures.
Files changed
- 59 files in the main refactor commit
- 6 in the release commit
- 8 in the post-merge cleanup
- Net: 16 new package files + 1 CSV + 1 helper module; 4 deleted
Full diff: v4.2.2...v5.0.0