`homeboy deps`

Manage component dependencies.

Synopsis

sh
homeboy deps <COMMAND>

Subcommands

  • status — inspect dependency constraints and locked package versions
  • install — install dependencies through detected providers
  • update — update one package through its dependency provider
  • stack status — list declared dependency stack edges
  • stack plan <upstream> — plan downstream updates for a merged upstream component or repo
  • stack apply <upstream> [--to <constraint>] [--dry-run] — run declared update, post-update, and test commands in dependency order

Dependency Stacks

Components can declare deterministic downstream propagation edges in homeboy.json:

json
{
  "dependency_stack": [
    {
      "upstream": "example-org/html-to-blocks-converter",
      "downstream": "block-format-bridge",
      "package": "example-org/html-to-blocks-converter",
      "post_update": ["composer build"],
      "test": ["homeboy review test --path . --extension wordpress"]
    },
    {
      "upstream": "block-format-bridge",
      "downstream": "static-site-importer",
      "package": "example-org/block-format-bridge",
      "update": "composer update example-org/block-format-bridge --with-dependencies --no-interaction",
      "test": ["homeboy review test --path . --extension wordpress"]
    }
  ]
}

When update is omitted, Homeboy uses:

sh
homeboy deps update <package> --path <downstream path>

Pass --to <constraint> to stack apply when the default provider-backed update should set a new manifest constraint:

sh
homeboy deps stack apply extrachill-components --to ^0.5.2

Custom dependency_stack[].update commands are executed as declared; include any constraint handling directly in the custom command when overriding the default provider-backed update.

Provider Boundary

homeboy deps is provider-backed. Core resolves dependency providers from the component/workspace, then calls a generic adapter contract for status, package matching, updates, and installs. Composer, npm/pnpm, component scripts, and extension-backed providers are implementation details behind that boundary.

Callers should use homeboy deps status, homeboy deps install, homeboy deps update, or homeboy component setup instead of scripting package-manager literals directly. New ecosystems should add or move provider adapters without changing dependency command orchestration.

Hydration readiness

An adapter’s upward selection binds installation and reusable-state checks to the nearest directory containing its declared selection signal. Package identity and package updates retain the requested project scope. Install outputs are relative to the install command’s directory, consistently on the controller and in the portable Lab plan.

Hydration reuses dependencies only when the provider’s reusable-state check passes and all declared outputs are ready. Otherwise it runs the declared installer and validates its outputs before reporting success. Directory outputs must contain an entry; an empty dependency directory is not installed state. Failed output validation records the provider, command, install directory, and exact missing_outputs paths in the hydration outcome.