Skip to content

Make project tool artifacts platform-aware for Ubuntu #1390

Description

@codeforester

Problem

Ubuntu dogfooding for base-demo exposed that project artifacts are still Homebrew-oriented even when the runtime platform is Ubuntu/Debian.

The dry-run output for base-demo included:

[DRY-RUN] Would run: brew install bats-core

But on Ubuntu/Debian, Base setup has already installed the platform package:

sudo apt-get install -y ... bats ...
bats is already the newest version (1.10.0-1).

The current manifest declaration is portable at the project intent level:

artifacts:
  - type: tool
    name: bats-core
    version: latest

The issue is that Base resolves that tool artifact directly to the Homebrew provider. After the current mise trust failure is fixed, base-demo setup will likely hit this next and try to use Homebrew on Ubuntu.

Desired Behavior

Base should make project tool artifacts platform-aware enough for the initial Ubuntu/Debian support set.

For the first slice, tool:bats-core should map as:

Platform Provider Package
macOS Homebrew bats-core
Ubuntu/Debian apt/system package bats

The setup/check path should not ask Ubuntu users to install Homebrew for this artifact.

Acceptance Criteria

  • basectl setup base-demo --dry-run on BASE_PLATFORM=linux-debian does not print brew install bats-core.
  • basectl setup base-demo --yes on Ubuntu/Debian treats already-installed bats as satisfying tool:bats-core.
  • basectl check/doctor report an apt/system-package oriented finding for missing bats on Ubuntu/Debian.
  • macOS Homebrew behavior for tool:bats-core remains unchanged.
  • Document the platform-aware artifact-provider boundary in docs/linux-support.md or the artifact registry docs.

Evidence

Observed while running:

basectl setup base-demo --dry-run

on Ubuntu 24.04 ARM64 under Parallels after v1.6.0 Ubuntu setup work.

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