Releases: OpenJobDescription/openjd-model-for-python
Releases · OpenJobDescription/openjd-model-for-python
Release list
0.11.9
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)
0.11.8
0.11.8 (2026-09-03)
Features
- A chunked step parameter space can now be walked at a granularity you choose, instead of only at the chunk size the template declared. Pass
chunks_task_count_overridewhen constructingStepParameterSpaceIterator; it overrides thedefaultTaskCountof aCHUNK[INT]parameter and turns adaptive chunking off. Pass1to iterate individual tasks. It is ignored when the space has no chunked parameter, though a non-positive value is still rejected. (#344)
Bug Fixes
- A float range element keeps the number of decimal places it was written with, so
2.50in a range list renders as2.50rather than2.5. Redundant leading zeros are still dropped, and a signed zero renders as the author wrote it. This is the scale-preserving behavior required by Template Schemas §7.5. (#345) - A
letbinding name longer than 512 characters is now rejected instead of accepted, per Template Schemas §3.6.1. The error names the offending binding with a 32-character prefix and its true length, so it is diagnosable when a template declares many bindings. (#348)
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
chore(release): 0.10.1 (#293)
0.10.1 (2026-06-25)
There are no new changes introduced in this release, it is identical to 0.10.0. This release was made to publish all release artifacts on PyPI and the GitHub releases page that were missed in the 0.10.0 release due to a new build and release process.