Skip to content

Make project Brewfile and uv delegates platform-aware on Ubuntu #1369

Description

@codeforester

Problem

Ubuntu dogfooding with bankbuddy exposed that project-level delegates are
still macOS/Homebrew-shaped even when Base's own Ubuntu prerequisite path is
healthy.

bankbuddy/base_manifest.yaml declares a uv-managed Python project:

brewfile: Brewfile
python:
  manager: uv

and its Brewfile only declares:

brew "uv"

On Ubuntu, this fails:

basectl setup bankbuddy

with:

Homebrew is required to install Brewfile dependencies from '/home/parallels/work/bankbuddy/Brewfile'.

Installing Homebrew on Ubuntu just to satisfy a project Brewfile would hide
the real support gap. Base needs a platform-aware delegate policy for project
setup.

Desired Behavior

  • On macOS, brewfile: Brewfile should continue to delegate to Homebrew.
  • On Ubuntu/Debian, a project Brewfile should not be treated as an installable
    prerequisite unless Base explicitly supports that platform behavior.
  • For python.manager: uv, Base should provide a Linux-friendly readiness path
    for uv instead of requiring a project Brewfile.
  • basectl setup/check/doctor bankbuddy should report clear Ubuntu guidance:
    install or make available uv, then rerun setup/check.
  • The design should keep project-owned dependency declarations distinct from
    Base's global Ubuntu apt prerequisites.

Acceptance Criteria

  • Add tests for a uv-managed project with brewfile: Brewfile on
    BASE_PLATFORM=linux-debian.
  • Define whether Ubuntu setup skips Brewfile delegates, reports them as
    unsupported, or maps known project prerequisites such as uv through a
    platform-aware delegate.
  • Update Linux support and project setup docs with the chosen policy.
  • Validate with a real bankbuddy Ubuntu smoke once the implementation lands.

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