-
Notifications
You must be signed in to change notification settings - Fork 23
chore(release): 0.11.9 #354
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,11 @@ | ||
| ## 0.11.9 (2026-09-04) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This hand-written prose will be destroyed the next time a release is cut.
{% for version, release in context.history.released.items() %}The template iterates every released version, not just the new one — so it renders the entire [tool.semantic_release.changelog]
template_dir = ".semantic_release"there is no So the improvement here is real but has a lifetime of one release. Worth considering one of:
Without one of these, this PR is worth treating as a one-off patch rather than a fix to the release notes. Option 1 or 2 also resolves the root cause noted in the commit message ("The generator emits one line per commit"). |
||
|
|
||
|
|
||
| ### 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 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) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Two accuracy problems in this entry. 1. "failed to validate" attributes the mixed-list failure to the wrong stage.
That message does not come from validation. The distinction matters because it changes when a template author finds out. "Failed to validate" implies decode/ Suggest: 2. The accepted-spellings list omits floats.
if isinstance(value, float):
if value in (0.0, 1.0):
return bool(value)
raise ValueError("BOOL value as a float must be 0.0 or 1.0.")Since the sentence is framed as "every spelling ... allows", an author reading it would reasonably conclude |
||
| * 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) | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The failure mode described here is the opposite of what the code documents. This entry states:
But
These cannot both be right, and the difference matters a lot to a reader deciding how urgently to migrate. "Silently loses bindings" reads as wrong results with no error — the worst case, requiring an audit of every job already created. "Fails with Given the docstring is specific about the exact error string, the docstring is likely the accurate one and this line is the error. Suggest matching it, e.g.:
If instead there really is a silent-loss path (for example when the session happens to define the same name in another scope), it would be worth naming that condition here rather than describing silence as the general case, since it contradicts the primary public API's documented behaviour. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The breaking change is scoped to the wrong audience — it understates who has to migrate.
But the project's own docs say the affected API is
and
So the population that must migrate is "anyone who calls Suggest leading with
The "only inspects the Job is unaffected" carve-out is worth keeping from the docstring — it is what lets most readers stop reading. |
||
|
|
||
|
|
||
| ## 0.11.8 (2026-09-03) | ||
|
|
||
|
|
||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.