Changelog
All notable changes to this project will be documented here.
The format follows Keep a Changelog. This project is unreleased: the section below describes the upcoming first release as if the repository were a single commit, so it collapses rather than accumulates. A change to unreleased behavior amends or removes the entry it affects; only net-new capability adds one.
Unreleased
Added
- Add the
install.shbootstrap: one command from a clean machine to Ansible + the collection + thedotproCLI, thendotpro applyto converge (orDOTPRO_APPLY=1to apply in the same run), with SSH key handoff and starter scaffolding - Add the
dotproCLI: apply, plan, upgrade, doctor, logs, dotfiles, and versions workflows over plain Ansible - Speed up
dotpro apply(both on by default): merge every role's base-repo apt packages into one dpkg transaction, and overlap the download-heavy roles' fetches with the rest of the run via backgroundasyncprefetch;dotpro apply --sequentialopts back out to the per-role, one-at-a-time path - Add a collection-wide install-source policy (
dotpro_install_source, with per-role<role>_install_sourceand per-tool overrides): prefer package-manager installs, or opt a role or tool into latest-upstream releases - Add SHA256 checksum verification to release downloads where upstream publishes checksums (
kubectl,helm,doctl,k9s,kubeseal,yq,glab,gh) - Add per-tool version pinning (
<role>_<tool>_version, defaultlatest): pin any release-installed tool to an exact version that converges on every apply, or track the newest - Add
ansiblerole: Ansible itself (apt or uv), Mitogen, and per-hostroles_extra - Add
dotfilesrole: link, copy, or template raw dotfiles into$HOME, with backup and pruning - Add
unixrole: the OS-neutral base with the~/.profile.d/shell framework every platform role builds on - Add
ubunturole: base Ubuntu (and WSL) setup — apt upgrades, system packages, locale, optional snap packages (ubuntu_snaps), and sysctl tuning (ubuntu_sysctl) - Add
macosrole: base macOS setup with Homebrew as the package manager - Add
wslrole: configure Windows Subsystem for Linux withwsluutilities and sensible defaults - Add
windowsrole: manage Windows itself from inside WSL through the interop bridge, including opt-in Defender exclusions and power-plan tweaks - Add
bashrole: the bash login-file hygiene plus the shared alias, script, and version generators other roles import - Add
zshrole: the zsh counterpart tobash, applied automatically when the host's login shell is zsh - Add
nerdfontsrole: install Nerd Fonts system-wide (FiraCode by default), on WSL also into the Windows per-user font store - Add
starshiprole: install the Starship prompt and render a configurable prompt config - Add
gitrole: Git config, aliases, theworktreeCLI, and repository cloning - Add
projectsrole: a bare jump alias per curated project (one that setsalias/title) plusproject/projects/projectinfocommands rendered from theprojectsmap, with tab completion over every project and per-shell context switching - Add
githubrole: theghCLI with PR/issue/run aliases and per-account context isolation - Add
gitlabrole: theglabCLI with MR/issue/pipeline aliases and per-account context isolation - Add
pythonrole: install Python 3 and pip and configure shell aliases - Add
dockerrole: install Docker and Docker Compose, and manage Docker Desktop settings on WSL and macOS - Add
kubernetesrole: install kubectl, kubeseal, k9s, and Helm (with helm-diff and configurable extra plugins viakubernetes_helm_plugins) and 25+ shell aliases and functions - Add
opentofurole: install OpenTofu (tofu) and configure shell aliases, with tab completion over workspace names - Add
terraformrole: install Terraform from HashiCorp's own package sources, with shell aliases and tab completion over workspace names - Add
awsrole: install the AWS CLI and AWSume for profile switching - Add
digitaloceanrole: installdoctland configure shell aliases and functions - Add
googlecloudrole: install the Google Cloud CLI (gcloud) and configure shell aliases and functions - Add
googleworkspacerole: thegwsCLI with mailbox aliases (inbox,mail-search,mail-read) and per-account context isolation; hosts whose glibc is too old for the upstream binaries (Ubuntu 22.04, Debian 12) skip the install with a note - Add
sentryrole: installsentry-cli(checksum-verified from the Sentry release registry) with project/issue/release aliases, bash completion, and per-account context isolation - Add
agentsrole: render AGENTS.md, TOOLING.md, PROJECTS.md, SKILLS.md, and the worklog - Add
clauderole: install the Claude Code CLI and manage its settings, with per-account context isolation - Add terminal attention notifications: a shared
~/scripts/notify(bell + OSC 9, a native Windows toast on WSL, and an OSC 9;4 attention ring on the pinging tab in Windows Terminal) that thebashrole's prompt hook fires when a foreground command fails and theclauderole's notification hooks fire when a session needs your input or approval, so a tab you've switched away from flags itself; each ping is tagged with its source project and branch, the tab ring is coloured by reason (red failure, yellow approval, green waiting) and clears when the session regains focus, and on WSL clicking a toast brings up the Windows Terminal window and tab the pinging session lives in (a focus handler thewindowsrole registers) - Add the
projectsvariable, a machine-level project inventory:git_repositoriesdefaults to it and theagentsrole renders PROJECTS.md from it - Add
bitwardenrole: install the Bitwarden CLI (bw) and configure shell aliases - Add
sshrole: install Keychain for persistent SSH key management across shells - Add the starter examples (
single,multiple,many) and the documentation site