Skip to content

v1.7.0

Latest

Choose a tag to compare

@jasondockery jasondockery released this 13 Jul 04:59

update-all is now a real command that always runs its own latest fix, and Groundwork's platform support is now an explicit contract

update-all: from shell function to launcher + runner

Previously update-all was a shell function baked into ~/.zshrc, so a terminal that was already open kept running the old copy — a fix shipped for update-all itself never applied to the run that delivered it. It is now two real commands:

  • ~/.local/bin/update-all — a stable launcher that pulls and applies Groundwork, then hands the same invocation to the freshly applied runner.
  • ~/.local/bin/groundwork-update-run — the actual stages. Because the launcher execs the copy the sync just installed, a fix delivered by chezmoi update governs the rest of that same run. No shell reload, ever again.

Everything the old function did is preserved: the three-attempt brew update retry gate that stops before upgrading against stale metadata, brew upgrade --greedy-latest on macOS (avoids re-quarantining self-updating apps), autoremove/cleanup, relaunching always-on apps Homebrew quit, mise upgrade, the Xcode-beta reminder, and a success timestamp written only after the complete batch.

One-time step for existing users: terminals that were open before this update still have the old function in memory — run exec zsh once in those (a notice during chezmoi update explains this). Fresh installs and new terminals need nothing.

An honest platform support contract

Groundwork supports Linux directly; WSL2 is one supported way to run that Linux environment on a Windows-owned machine — and native Linux is the recommendation if you want no Microsoft dependency.

  • macOS — full experience. Ubuntu LTS (native or WSL2) — the primary tested Linux path. Debian and Fedora stable — targeted next, promoted to supported as CI receipts land. WSL1 and native Windows shells (PowerShell, CMD, Git Bash) — unsupported, and they now fail closed with clear guidance instead of partially working.
  • New groundwork-platform reports darwin / linux / wsl2 / wsl1 / wsl-unknown / unsupported, correctly classifying older microsoft-standard WSL2 kernels and refusing to guess on ambiguous ones. New groundwork-distro reports the distribution, with --family for bootstrap decisions.
  • The update runner fails closed before touching anything on unsupported platforms, the Linux runner drops macOS-only cask policy, and Groundwork never mutates the operating system it runs inside: no apt/dnf/pacman upgrades on Linux, nothing on the Windows host from WSL2.
  • new-project refuses to scaffold repositories onto Windows-mounted drives (/mnt/c/...) under WSL — keep code in the Linux filesystem (~/code) where performance and file watching actually work.
  • The platforms page and command catalog document the contract and the command-ownership rule.

After chezmoi update

Run exec zsh once in already-open terminals if prompted; nothing else. Future update-all improvements take effect during the same run that fetches them.