Skip to content

Prepare JXR 0.3.1 and jxr-mpsgraph 0.4.0 - #20

Merged
jcwal1516 merged 2 commits into
mainfrom
release/0.3.1
Oct 19, 2026
Merged

jcwal1516 merged 2 commits into
mainfrom
release/0.3.1

Conversation

@jcwal1516

@jcwal1516 jcwal1516 commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Prepares the 0.3.1 patch release of the performance work merged in #11–#19. The only changes here are versions, lockfiles, the README version line, and the 0.3.1 release notes in docs/releasing.md.

  • Bumped to 0.3.1: jxr-native, jxr-metal, jxr, and jxr-image, with their exact internal pins. jxr-image changes only its jxr pin.
  • jxr-mpsgraph to 0.4.0: cargo-semver-checks 0.51 flags that MpsGraphPreparedGroup and MpsGraphPreparedBatch no longer implement UnwindSafe or RefUnwindSafe, because they now hold staged Metal plans (perf(mpsgraph): decode prepared inputs straight into Metal staging #18). The other four crates report no semver update required.
  • Unchanged: jxr-math 0.1.1, jxr-core 0.3.0, and jxr-cuda 0.3.0 keep their published versions.
  • Behavior note: automatic Metal routing now promotes at 2^21 coefficients instead of 16,384 (Metal: raise the automatic routing threshold to 2^21 coefficients #14), so Auto decodes smaller images on the CPU. Explicit Metal requests are unchanged.
  • Added API: MetalDecoderSession::stage_diagnostics with MetalStageDiagnostics, the staging field of the non-exhaustive MetalBufferPoolsDiagnostics, and CpuBatchDecoder::install.
Package Version Publish order
jxr-native 0.3.0 → 0.3.1 1
jxr-metal 0.3.0 → 0.3.1 2
jxr 0.3.0 → 0.3.1 3
jxr-image 0.3.0 → 0.3.1 4
jxr-mpsgraph 0.3.0 → 0.4.0 5

Validation on an M4 Pro at this commit: cargo fmt --all -- --check; cargo clippy --workspace --all-targets --all-features -- -D warnings, and the same with --target x86_64-unknown-linux-gnu; cargo test --workspace --all-features (278 passed); cargo test -p jxr --no-default-features (24 passed); RUSTDOCFLAGS="-D warnings" cargo doc --workspace --all-features --no-deps; fuzz-package formatting and Clippy; cargo test -p jxr-mpsgraph --test metal -- --ignored --test-threads=1 (8 passed); T.834/T.835 conformance Metal 517/517 and CPU 517/517; jxr-diff --backend metal on the 13 large generated images, all identical; and cargo publish --dry-run for the five packages together. The same source tree also passed T.834 on Metal and CPU and the 13 large-image diffs on an M4 and an M5 Max. The owner-only metal-hardware workflow has not been run on this revision.

Bump jxr-native, jxr-metal, jxr, jxr-image, and jxr-mpsgraph to 0.3.1
and move their exact internal pins with them. jxr-math 0.1.1, jxr-core
0.3.0, and jxr-cuda 0.3.0 are unchanged and keep their published
versions. The release notes cover the CPU entropy and coefficient
storage work, the Metal and MPSGraph batch changes, the new automatic
Metal threshold, and the added diagnostics and worker-pool APIs.
MpsGraphPreparedGroup and MpsGraphPreparedBatch now hold staged Metal
plans, so they no longer implement UnwindSafe or RefUnwindSafe.
cargo-semver-checks reports that as a breaking change against 0.3.0,
so the adapter takes a new minor version on the 0.x line. Its other
public API is unchanged.
@jcwal1516 jcwal1516 changed the title Prepare JXR 0.3.1 patch release Prepare JXR 0.3.1 and jxr-mpsgraph 0.4.0 Oct 19, 2026
@jcwal1516
jcwal1516 merged commit c296c11 into main Oct 19, 2026
2 checks passed
@jcwal1516
jcwal1516 deleted the release/0.3.1 branch October 19, 2026 03:41
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.

1 participant