`homeboy deps`
Manage component dependencies.
Synopsis
homeboy deps <COMMAND>Subcommands
status— inspect dependency constraints and locked package versionsinstall— install dependencies through detected providersupdate— update one package through its dependency providerstack status— list declared dependency stack edgesstack plan <upstream>— plan downstream updates for a merged upstream component or repostack 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:
{
"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:
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:
homeboy deps stack apply extrachill-components --to ^0.5.2Custom 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.