pub struct CommandConfig {
pub description: Option<String>,
pub entry: Option<String>,
pub docker: Option<String>,
pub ddp: Option<DdpConfig>,
pub training: Option<TrainingConfig>,
pub output: Option<OutputConfig>,
pub commands: BTreeMap<String, CommandSpec>,
pub arg_name: Option<String>,
pub schema: Option<Schema>,
pub compile: Option<bool>,
}Expand description
Sub-command fdl.yaml (e.g., ddp-bench/fdl.yaml).
Identical shape to ProjectConfig but with an executable entry:
and optional structured config sections (ddp/training/output) that
inline preset commands can override.
Fields§
§description: Option<String>§entry: Option<String>§docker: Option<String>Docker compose service name. When set, entry is wrapped in
docker compose run --rm <service> bash -c "cd <workdir> && <entry> <args>".
ddp: Option<DdpConfig>§training: Option<TrainingConfig>§output: Option<OutputConfig>§commands: BTreeMap<String, CommandSpec>Nested commands — inline presets of this config’s entry, standalone
run scripts, or path pointers to child fdl.yml files.
arg_name: Option<String>Help-only placeholder name for the first-positional slot when
commands: holds presets. Defaults to “preset”. Pure UX — it
does not affect dispatch (presets are always looked up by name).
Useful to match domain vocabulary, e.g. arg-name: recipe or
arg-name: target.
schema: Option<Schema>Inline interim schema (before <entry> --fdl-schema is implemented).
Drives help rendering, validation, and completions.
compile: Option<bool>Opt-in flag for cargo-entry schema probing. Cargo entries are
auto-skipped from probing because cargo run --fdl-schema triggers
a full compile (unacceptable latency for -h). Setting compile: true declares “I’m fine with the first-run compile cost — probe
my binary for its real schema.” Subsequent invocations use the
mtime-keyed cache and pay no compile cost. Absent or false keeps
the default skip behavior, so the inline yml schema (if any)
stays the source of truth.