Skip to content

shepherd: disambiguate the composition-root crate name (shepherd vs shepherd-engine) #516

Description

@mfw78

From review of #446 (approved review). Still valid at HEAD. Naming decision, non-blocking. Best settled at M5, when crates/shepherd is promoted to the repo root.

The top-level composition binary crate is named shepherd, identical to the repo. Every other domain crate carries a prefix (shepherd-cow-host, shepherd-sdk, shepherd-backtest; also cow-venue, composable-cow), so the bare name reads inconsistently and is ambiguous with the repo name in cargo tree -p shepherd and search contexts. It is the composition root rather than a cow-domain crate, so the bare name is not wrong, just ambiguous.

Options

  • Rename the crate to shepherd-engine (or shepherd-bin), keeping the user-facing binary as shepherd via [[bin]] name = "shepherd". Disambiguates cargo tree / search without changing how it is invoked.
  • Accept the bare shepherd as the deliberate composition-root convention and document the intent in the crate doc.

Notes

Touches the Dockerfile / justfile / scripts that #446 retargeted to shepherd. Best folded into the M5 finalization when crates/shepherd moves to the repo root (see the three-repo split), alongside #515 (version homogenization).

Acceptance criteria

  • A decision recorded: either the crate is renamed with the binary name preserved, or the bare name is documented as intentional.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions