From b23bae81218483d32b2f2e3e3627996402ff4756 Mon Sep 17 00:00:00 2001 From: client-software-ci <129794699+client-software-ci@users.noreply.github.com> Date: Fri, 4 Sep 2026 03:30:07 +0000 Subject: [PATCH 1/2] chore(release): 0.11.9 Signed-off-by: client-software-ci <129794699+client-software-ci@users.noreply.github.com> --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5596f8e..cb0987b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,18 @@ +## 0.11.9 (2026-09-04) + + + +### Bug Fixes +* coerce LIST[BOOL] items per RFC 0007 §2.15 (#352) ([`105dff2`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/105dff25abc4dfc6970945d881e119438e04fb6c)) +* coerce LIST[BOOL] items per RFC 0007 §2.15 ([`105dff2`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/105dff25abc4dfc6970945d881e119438e04fb6c)) +* Evaluate step-level let bindings in template scope (#341) ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) +* Evaluate step-level let bindings in template scope ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) +* Record the template-scope let boundary at the merge, and verify it ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) +* Record the let boundary on the de-sugared script too ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) +* Never lower the template-scope let marker ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) +* Stop merging step-level let into the script ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) + + ## 0.11.8 (2026-09-03) From 9d115314d1a568a16896338ba4566d57554d8a53 Mon Sep 17 00:00:00 2001 From: David Leong <116610336+leongdl@users.noreply.github.com> Date: Thu, 3 Sep 2026 20:36:18 -0700 Subject: [PATCH 2/2] chore(release): clarify 0.11.9 release notes Rewrite the generated 0.11.9 block for users of the library. The generator emits one line per commit, so PR #341 rendered as six near-duplicate maintainer-facing bullets and PR #352 rendered twice. Each PR now gets one entry that states the observable behaviour change, the symptom it replaces, and for #341 the migration a consumer has to make. Commit hashes resolved to PR links. Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com> --- CHANGELOG.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb0987b..52a44b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,9 @@ ## 0.11.9 (2026-09-04) - ### Bug Fixes -* coerce LIST[BOOL] items per RFC 0007 §2.15 (#352) ([`105dff2`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/105dff25abc4dfc6970945d881e119438e04fb6c)) -* coerce LIST[BOOL] items per RFC 0007 §2.15 ([`105dff2`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/105dff25abc4dfc6970945d881e119438e04fb6c)) -* Evaluate step-level let bindings in template scope (#341) ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) -* Evaluate step-level let bindings in template scope ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) -* Record the template-scope let boundary at the merge, and verify it ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) -* Record the let boundary on the de-sugared script too ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) -* Never lower the template-scope let marker ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) -* Stop merging step-level let into the script ([`b136693`](https://github.com/OpenJobDescription/openjd-model-for-python/commit/b1366933e74bea30a98f19496115b200626f22e4)) +* 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 scalar `BOOL`: the case-insensitive strings `true`/`yes`/`on`/`1` and `false`/`no`/`off`/`0`, and the numbers `0` and `1`. A mixed list such as `["yes", 0, true]` previously failed to validate with `List 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 as `true`/`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 own `let`. 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 calls `StepTemplate.resolve_syntax_sugar()`: the step's resolved bindings now travel in `create_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-cli` forwards them as of OpenJobDescription/openjd-cli#237. (#341) ## 0.11.8 (2026-09-03)