Skip to content

Implement Package Provider System #9

@OMouta

Description

@OMouta

Introduce a package provider abstraction in Luumen to decouple package management from Wally and allow alternative implementations (e.g. future Luumen package client).

This is a foundational step to support multiple package backends while keeping a unified CLI (luu add, luu install, etc.).

Goals

  • Standardize how Luumen interacts with package management
  • Keep Wally as the default provider
  • Allow future providers without changing CLI UX
  1. Define provider interface

Create a simple interface:

type PackageProvider interface {
    Add(pkg string, opts AddOptions) error
    Install(opts InstallOptions) error
    Remove(pkg string) error
    Update(pkg string) error
}
  1. Implement Wally provider

Create a WallyProvider that:

  • Updates wally.toml
  • Calls wally install when needed
  • Handles add/remove/update flows using current Luumen logic
  1. Provider selection

Add basic provider selection logic:

  • Default to Wally
  • Allow future config support

Example:

[packages]
provider = "wally"
  1. Route CLI through provider

Update:

luu add
luu install
luu remove (if exists)
luu update (if exists)

So they call the provider instead of directly calling Wally logic.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: packagesPackage management (Wally integration).p1Important, but not blocking. Should be done soon.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions