root_run/user_run steps can rely on it.
Selecting stacks
List the stacks your build needs underbuild.stacks:
build.stacks is a whole-value selection: the highest config layer that sets it
wins, so a project can replace the list a user-level config provides. Each entry
is a component name — bare for a built-in or loose stack, or a qualified
namespace.bundle.component address for a bundled stack:
Where stacks come from
A stack name resolves across the same three tiers as every component. A bare name resolves in precedence order — your user convention directory, then the project convention directory, then the built-in floor — stopping at the first match. A qualified name resolves from an installed bundle. See where components come from for the canonical resolution model.Built-in stacks
Clawker shipsnode, go, python, and rust. They resolve by bare name with
no declaration beyond listing them in build.stacks, and update with the
clawker binary.
Loose local stacks
Drop a stack directory into a convention directory and it exists immediately — no install, no manifest wrapper, bare-named:clawker stack list. This is how you customize a built-in stack: copy its source into a
convention directory and edit it there.
Bundled stacks
A stack shipped in a bundle is addressed by its qualified name (namespace.bundle.component) and becomes available once the bundle is
declared and installed. See Bundles.
Authoring a stack
Writing your own stack — thestack.yaml manifest and the Dockerfile fragments
that accompany it — is covered in Authoring stacks.