0.11.9
·
17 commits
to mainline
since this release
0.11.9 (2026-09-04)
Bug Fixes
- A
LIST[BOOL]job parameter now holds real booleans in the created job, so a list item accepts every spelling Template Schemas §2.15 allows for a scalarBOOL: the case-insensitive stringstrue/yes/on/1andfalse/no/off/0, and the numbers0and1. A mixed list such as["yes", 0, true]previously failed to validate withList contains incompatible types, and a uniform list such as["yes", "no"]was accepted as a list of strings and then failed only once a boolean operator touched an element.["yes", "no"]now interpolates astrue/false. A decoded template is unchanged and still round-trips the spellings its author wrote. (#352) - A step's template-scope
let(Template Schemas §3.6) is resolved once, at job creation, using POSIX path format so a created job does not depend on the host that created it. It is no longer merged into the script's ownlet. The merge left the bindings to be evaluated a second time in the host's format when the session ran, and that second value overwrote the first: on Windows,startswith(path("/foo/bar"), "/foo")went from true at job creation to false in the session. This is a breaking change for a consumer that callsStepTemplate.resolve_syntax_sugar(): the step's resolved bindings now travel increate_job_with_symbol_tables(...).step_symbol_tables[step_name]and must be forwarded to the session that runs the step. A consumer that does not forward them loses step-level bindings silently rather than failing.openjd-cliforwards them as of OpenJobDescription/openjd-cli#237. (#341)