Skip to content

packages devx: lyracore packages verb family (add/list/update/enable/disable/remove/new) #90

Closed
5 of 5 issues completed

Description

@Mathih13

Spec: the packages-devx design, §2–§3 (public proposal: #1; the full design doc lives in the private working origin).

Add the lyracore packages verb family to the lyracore-cli repo (+ pin bump here):

lyracore packages list | add <name|git-url|path> | update [<name>] | enable <name> | disable <name> | remove <name> | new <name>

Key behaviors: add resolves by shape (URL → clone, local path → COPY never symlink, else official-repo name lookup), validates the mechanical half (Rust-ident name, src/mod.rs, no collision), prints a trust summary (tables/reducers/hooks/client overrides) + confirm, runs preflight, drops a .lyracore-package.toml provenance stamp, then prints the golden-path remainder (lyracore publish + lyracore client sync iff client/). enable/disable move the folder between packages/<name> and .lyracore/packages-disabled/<name> (zero build.rs changes); disable predicts the durable-table publish abort (grep for #[table]) and warns on client-addon drift. remove refuses on uncommitted changes. new copies packages/example/.

Invariant to preserve: a package is enabled iff its folder sits in packages/. Verbs print next steps, never auto-publish.

Builds on the official packages monorepo (see the monorepo bootstrap issue) for name-install; URL/path install works without it.

Done when: on a dev checkout, lyracore packages add <local-path> → lyracore publish compiles the package into all fixture databases, disable + publish removes a table-less package cleanly, and disable of a package with a populated table prints the predicted operator-decision message instead of a bare publish failure.


Migrated 2026-08-11 from the private tracker (spacetime-core#498).

Activity

  1. Mathih13 commented on Aug 24, 2026

    @Mathih13
    ContributorAuthor

    This was generated by AI during triage.

    Human Brief

    Category: enhancement
    Summary: Coordinate the Package CLI through its five agent-ready sub-issues.

    Why this needs a human:
    The parent spans the separate lyracore-cli repository, its pin in core, and several independently useful commands. The children are the implementation units; this parent owns integration and closure.

    Current behavior:
    There is no lyracore packages command family. Core only discovers enabled folders during its build.

    Desired behavior:
    Land local add/list (#298), Git sources (#299), lifecycle moves (#300), scaffolding (#301), and Official Package lookup (#302). Preserve the invariant that folder location alone decides whether a Package is enabled. Commands print next steps and never publish automatically.

    Acceptance criteria:

    • Every child brief is complete and its CLI change is pinned into core.
    • All Package Sources share validation, provenance, and trust-review language.
    • Enabled state cannot drift from folder location.
    • The complete command family has integration coverage in a public checkout.

    Out of scope:

    • Implementing all verbs as one unattended task
    • Package Delta application
  2. added
    ready-for-humanNeeds a maintainer: a decision, a maintainer's Realm, or coordination
    on Aug 24, 2026
  3. Mathih13 commented on Aug 28, 2026

    @Mathih13
    ContributorAuthor

    Closing in favor of the CLI breakdown: #298 (add local, list), #299 (Git sources, update), #300 (enable, disable, remove), #301 (scaffold), #302 (official name lookup). All five share the validation, trust-review, and provenance contract this issue asked for, and #300 enforces the folder-only enabled state. #298 is still open, so the verb family is not fully shipped yet, and the CLI pin into core is still pending as the usual single integration PR. Tracking now lives in those five issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2normalenhancementNew feature or requestready-for-humanNeeds a maintainer: a decision, a maintainer's Realm, or coordination

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions