When a task carries matrix=, expansion rebuilds the nodes without their help text, and {AXIS} placeholders inside help are never substituted (unlike cmd/env/cwd/name, which are).
Why
In src/camas/core/matrix.py:
specialize_task constructs Task(cmd=..., name=..., env=..., cwd=...) — no help.
specialize_node reconstructs Sequential(...) / Parallel(...) with name/cwd only — no help.
substitute_in_str is applied to cmd/env/cwd/name but not help.
Impact
Minor/cosmetic: camas <task> --help still shows help (pre-expansion), but the expanded per-cell tree drops it, and {AXIS}-templated help (e.g. help="build {FLAG}") is never interpolated.
Suggestion
Carry help through specialize_task/specialize_node, running it through substitute_in_str the same way name is.
Found while evaluating camas — added help= to a matrix task and noticed it isn't templated like the command is.
When a task carries
matrix=, expansion rebuilds the nodes without theirhelptext, and{AXIS}placeholders insidehelpare never substituted (unlike cmd/env/cwd/name, which are).Why
In
src/camas/core/matrix.py:specialize_taskconstructsTask(cmd=..., name=..., env=..., cwd=...)— nohelp.specialize_nodereconstructsSequential(...)/Parallel(...)withname/cwdonly — nohelp.substitute_in_stris applied to cmd/env/cwd/name but nothelp.Impact
Minor/cosmetic:
camas <task> --helpstill shows help (pre-expansion), but the expanded per-cell tree drops it, and{AXIS}-templated help (e.g.help="build {FLAG}") is never interpolated.Suggestion
Carry
helpthroughspecialize_task/specialize_node, running it throughsubstitute_in_strthe same waynameis.Found while evaluating camas — added
help=to a matrix task and noticed it isn't templated like the command is.