Summary
Implement the first apt-backed Ubuntu/Debian setup path for Base.
Base v1.5.0 supports Ubuntu/Debian runtime checks and diagnostics when prerequisites are already installed. For v1.6.0, basectl setup should be able to install the required Ubuntu/Debian prerequisites through the centralized linux-debian platform installer instead of stopping at manual guidance.
Scope
- Add a
linux-debian setup installer behind the existing centralized platform-policy boundary.
- Keep
BASE_OS coarse and continue using BASE_PLATFORM=linux-debian as the platform-family selector.
- Make
basectl setup --dry-run print the exact apt-backed actions before any mutation.
- Require explicit user confirmation or
--yes before running package installation.
- Install only Base's Ubuntu/Debian prerequisite set:
python3-venv
python3-pip
git
gh
bats
shellcheck
jq
golang-go
- Preserve the existing macOS setup behavior.
- Keep unsupported Linux distributions fail-closed with guidance.
GitHub CLI boundary
Installing gh may be part of the prerequisite install path, but authentication must remain delegated to GitHub CLI. Base should not prompt for, store, or manage GitHub tokens.
Acceptance criteria
basectl setup --dry-run on BASE_PLATFORM=linux-debian prints the apt install plan without mutating the host.
basectl setup --yes on Ubuntu/Debian installs missing prerequisites through the centralized linux-debian installer.
- The implementation does not scatter direct
BASE_PLATFORM checks through unrelated command code.
- Tests cover dry-run, confirmation/decline, successful install command routing, and command failure reporting.
- Existing macOS setup/check/doctor behavior is unchanged.
- Ubuntu contributor docs describe the new supported setup path.
Summary
Implement the first apt-backed Ubuntu/Debian setup path for Base.
Base
v1.5.0supports Ubuntu/Debian runtime checks and diagnostics when prerequisites are already installed. Forv1.6.0,basectl setupshould be able to install the required Ubuntu/Debian prerequisites through the centralizedlinux-debianplatform installer instead of stopping at manual guidance.Scope
linux-debiansetup installer behind the existing centralized platform-policy boundary.BASE_OScoarse and continue usingBASE_PLATFORM=linux-debianas the platform-family selector.basectl setup --dry-runprint the exact apt-backed actions before any mutation.--yesbefore running package installation.python3-venvpython3-pipgitghbatsshellcheckjqgolang-goGitHub CLI boundary
Installing
ghmay be part of the prerequisite install path, but authentication must remain delegated to GitHub CLI. Base should not prompt for, store, or manage GitHub tokens.Acceptance criteria
basectl setup --dry-runonBASE_PLATFORM=linux-debianprints the apt install plan without mutating the host.basectl setup --yeson Ubuntu/Debian installs missing prerequisites through the centralizedlinux-debianinstaller.BASE_PLATFORMchecks through unrelated command code.