Skip to content

Implement apt-backed Ubuntu setup #1352

Description

@codeforester

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

Status
Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions