Skip to content

chore: release - #357

Merged
leongdl merged 1 commit into
mainfrom
release-plz-2026-09-01T22-09-27Z
Sep 3, 2026
Merged

chore: release#357
leongdl merged 1 commit into
mainfrom
release-plz-2026-09-01T22-09-27Z

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • openjd-expr: 0.5.0 -> 0.6.0 (✓ API compatible changes)
  • openjd-model: 0.5.4 -> 0.6.0 (✓ API compatible changes)
  • openjd-sessions: 0.5.4 -> 0.5.5 (✓ API compatible changes)
  • openjd-cli: 0.1.13 -> 0.1.14
Changelog

openjd-expr

0.6.0 - 2026-09-03

Bug fixes

  • [breaking] Keep the decimal places of a floatstring range element (#354)

openjd-model

0.6.0 - 2026-09-03

Bug fixes

  • Enforce the 512-character cap on a let binding identifier (#358)

  • [breaking] Keep the decimal places of a floatstring range element (#354)

  • Close two chunking parity gaps with the Python reference (#355)

openjd-sessions

0.5.5 - 2026-09-03

Bug fixes

  • Persist a resolved symbol table supplied by argument (#361)

openjd-cli

0.1.14 - 2026-09-03

Miscellaneous

  • Updated the following local packages: openjd-expr, openjd-model, openjd-sessions


This PR was generated with release-plz.

@github-actions
github-actions Bot requested a review from a team as a code owner September 1, 2026 22:09
@github-actions
github-actions Bot force-pushed the release-plz-2026-09-01T22-09-27Z branch 3 times, most recently from a7d200b to 26fe2e8 Compare September 3, 2026 00:33
@github-actions
github-actions Bot force-pushed the release-plz-2026-09-01T22-09-27Z branch from 26fe2e8 to 598c73d Compare September 3, 2026 01:03
@leongdl
leongdl enabled auto-merge (squash) September 3, 2026 01:45
@leongdl
leongdl merged commit 61aff08 into main Sep 3, 2026
22 checks passed
@leongdl
leongdl deleted the release-plz-2026-09-01T22-09-27Z branch September 3, 2026 02:16
leongdl added a commit to OpenJobDescription/openjd-model-for-python that referenced this pull request Sep 3, 2026
* chore(deps): Bump openjd-* Rust crates to the 0.6.0 release

Move the bindings crate onto the openjd-rs release published by
OpenJobDescription/openjd-rs#357:

  openjd-expr      0.5.0 -> 0.6.0  (breaking)
  openjd-model     0.5.4 -> 0.6.0  (breaking)
  openjd-sessions  0.5.4 -> 0.5.5

The breaking part of both minor bumps is openjd-rs#354, "Keep the decimal
places of a floatstring range element", the Rust counterpart of #345 on this
side. `TaskParameter::Float` now carries `Vec<Float64>` rather than `Vec<f64>`,
because a `<floatstring>` range element has to keep the scale it was written
with: '02.50' renders `2.50`, not `2.5` (Template Schemas §7.5).

That reaches Python through `TaskParameterValue`, which renders the preserved
spelling verbatim, so the per-task value a command line receives now matches
the pure-Python reference. `FloatTaskParameter.range` stays `list[float]` --
it is the numeric introspection view of the resolved definition -- so the
conversion takes `Float64::value()` there.

openjd-model 0.6.0 also carries openjd-rs#355 (two chunking parity gaps) and
openjd-rs#358 (the 512-character cap on a let binding identifier), and
openjd-sessions 0.5.5 carries openjd-rs#361 (persist a resolved symbol table
supplied by argument).

Verified: cargo build --all-targets, cargo clippy --all-targets -D warnings,
cargo test and cargo test --doc all pass. The Python suite is 5546 passed with
5 failures that are all gap markers this release closes; they are addressed in
the following commit.

Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>

* test: Promote the two chunking gaps openjd-model 0.6.0 closes

openjd-rs#355 closed both divergences that
`test/openjd/model_v1/test_known_gaps.py` recorded as strict xfails, so with
`xfail_strict = true` they now fail as xpasses. That file's own rule is to
promote a resolved gap to its proper home rather than drop the marker in place,
so both move to `test_step_param_space_iter.py` beside the rest of
`TestChunksTaskCountOverride`.

  - A CONTIGUOUS chunked space supports random access. `it[0]`, `it[1]` and
    `it[-1]` answer, indexing observes `chunks_task_count_override`, and one
    past the end is still an IndexError. This replaces
    `test_a_contiguous_space_refuses_indexing_with_or_without_the_override`,
    which asserted the refusal and named this exact swap as its counterpart.
  - `chunks_parameter_name` and `chunks_default_task_count` report for any
    chunked space, not only an adaptive one, which is what v0 has always done.

Added `test_an_adaptive_space_still_refuses_indexing` as the negative control
and the remaining limitation: an adaptive space has no knowable count, so
`len()` raises ValueError and every index is out of range, while iteration
still yields. Measured, along with everything asserted above, against
openjd-model 0.6.0 before the assertions were written.

Both promoted assertions are falsifiable by the version alone: they were strict
xfails passing on mainline at openjd-model 0.5.4, so they failed there, and the
CI run on 007f212 reports them xpassing at 0.6.0.

`specs/python-model-interface.md` claimed both limitations and pointed at the
xfails by name; it now states the random access that works and the one adaptive
limitation that remains. The `Optional[str]`/`Optional[int]` signatures are
unchanged -- both getters still answer None for a space that is not chunked.

Verified: 5551 passed, 24 skipped, 3 xfailed with the 94% coverage gate
enforced; ruff, black and mypy clean.

`test_known_gaps.py` is now down to one test, which is a passing regression
test rather than a gap. Left where it is rather than widen this change.

Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>

* chore: Regenerate THIRD-PARTY-LICENSES for the openjd-* 0.6.0 bump

`scripts/check_third_party_licenses.sh` fails on a Cargo.lock change alone, and
the three crate bumps are exactly what the diff contains: openjd-expr 0.5.0 ->
0.6.0, openjd-model 0.5.4 -> 0.6.0, openjd-sessions 0.5.4 -> 0.5.5. No other
line moves, and no transitive dependency changed.

Regenerating it needed a portability fix first. `sed -i 's/\r//'` on the EOL
normalization line is GNU-only: BSD sed reads the next argument as the backup
suffix, so on macOS the script died with `sed: 1: "/var/folders/...": invalid
command code f` before writing anything. Rewriting through a temp file behaves
identically on both. The failure was not specific to this change -- the script
could not be run on macOS at all -- and CI regenerates with the same script, so
the committed file and the check stay in agreement.

Verified: `scripts/check_third_party_licenses.sh --update` then
`scripts/check_third_party_licenses.sh` reports the file up to date, with
cargo-about 0.9.2, the version CI installs.

Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>

---------

Signed-off-by: David Leong <116610336+leongdl@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants