Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion cmd/generate/runnable_bindings.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,12 @@ Examples:
ctx, stop := common.SignalContext(ctx)
defer stop()

workspace, err := common.LoadWorkspace(ctx)
// Every composed module is walked for its derived operations, so a
// pinned module is materialized first, as a run, a render and
// `generate fixture-composition` do: on a fresh checkout — a CI job —
// the plain loader refuses a pinned module as "not loadable as a local
// checkout", and --check never reaches the file it exists to judge.
workspace, err := common.LoadWorkspaceWithPinnedModules(ctx)
if err != nil {
return err
}
Expand Down
6 changes: 4 additions & 2 deletions docs/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -2196,8 +2196,10 @@ workspace composed by identity works for each of them with no prior run:
checkout, so it materializes exactly as `run` does;
- every `ci` verb (`plan`, `build`, `test`, `run`, `validate`, `push`,
`deploy`);
- `generate client`, `sync solution-sdk` and the fixture listing, which read a
composed module's tree.
- `generate client`, `generate runnable-bindings` (whose `--check` is the one
drift check that group has, and could not run on a fresh checkout until it
materialized), `generate fixture-composition`, `sync solution-sdk` and the
fixture listing, which read a composed module's tree.

All of them share the fast path: once a receipt answers the request the
workspace makes, a later command compares and pulls nothing, takes no lock and
Expand Down
4 changes: 3 additions & 1 deletion docs/runnable.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,9 @@ declaring neither fixed scopes nor slots is still refused as declaring no
authority. Wildcards (including omitted IDs), collisions with a fixed scope's
kind or another slot's kind, duplicate/undeclared slots, unknown fields and
selection keys naming no derived operation are refused. A failed preparation
writes nothing and preserves the previous output.
writes no binding output and preserves the previous output; a pinned module it
materialized first stays materialized (cache, overlay, receipt, `.gitignore`),
as after any command that reads composed modules.

The generated `configurations/<profile>/runnable-bindings.env` carries Core's
`codefly.runnable-prepared/v3` bindings: owner coordinates, the resolved JSON
Expand Down
Loading