Build
materialize
Materialize a validated BuildPlan into a derivation.
Converts the eval-time plan (validated by fx.build.plan) into a pkgs.runCommand derivation. Sources are copied into a working directory, per-step environment variables are scoped, and steps execute sequentially under set -euo pipefail.
materialize : { pkgs, plan, native? } -> derivation
The plan argument is the .plan field from fx.build.plan output.
Shell generation helpers (mkStepScript, mkSourceSetup, mkBuildScript)
are pure functions tested inline.
plan
Validate and process build steps into a BuildPlan.
Runs an eval-time pipeline that validates each step against
BuildStep, filters steps by when predicates using reader context,
and collects all errors without throwing.
plan : { name, steps, sources?, context? } -> { plan, errors, warnings, typeErrors }
types
Build types for effects-powered builders.
BuildStep and BuildPlan describe build pipelines at the type level, enabling validation before materialization into derivations.