Skip to content

cmsis-pack-manager: Add version 0.6.0 - #2149

Merged
luhenry merged 2 commits into
mainfrom
cmsis-pack-manager
Sep 21, 2026
Merged

luhenry merged 2 commits into
mainfrom
cmsis-pack-manager

Conversation

@luhenry

@luhenry luhenry commented Sep 21, 2026

Copy link
Copy Markdown
Member

Compiles the Rust CMSIS-Pack index/PDSC parser that pyOCD and other embedded tooling reads device metadata through, shipped as libcmsis_pack_manager.so and dlopened by cffi's ABI mode. Upstream publishes no riscv64 wheel.

Mirrors upstream's ci-build-wheel.yml.

Differs from upstream

  • before-all installs only rustup - the image already ships libffi-devel and libatomic, and the crate graph reaches TLS through rustls, not openssl
  • one build serving cp312/cp313/cp314/cp314t - cffi bindings carry no ABI tag, so the further identifiers only re-run the tests

Testing

  • same as upstream

License: OK

Built once on cp312; 11 passed under each of cp312, cp313, cp314 and cp314t.

Builds the Rust core that parses CMSIS-Pack index and PDSC metadata for
riscv64, the way upstream's own ci-build-wheel.yml does: maturin with cffi
bindings, so the wheel carries libcmsis_pack_manager.so and cffi's ABI mode
dlopens it at import. Upstream publishes no riscv64 wheel.

The missing ABI tag is honest rather than a hand-set platform tag - nothing is
imported as an extension module - so one py3-none-manylinux_riscv64 wheel
serves every interpreter, and the further cibuildwheel identifiers only re-run
the test suite under each one.

Nothing in the 133-crate graph is architecture-specific, and the only piece of
upstream's before-all that riscv64 needs is rustup: reqwest reaches TLS through
rustls rather than openssl, and the manylinux image already ships libffi-devel
and libatomic. rustup has a riscv64 host toolchain for the 1.71.1 that the
repository's rust-toolchain file pins, which is what upstream's wheel job
installs too.
@github-actions

github-actions Bot commented Sep 21, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-21 08:20 UTC

pip resolves a test dependency by version, not by whether a riscv64 wheel
exists for the interpreter under test, so the cp314t leg reached for
hypothesis 6.168.0's sdist: that release publishes cp310-abi3 riscv64 wheels,
which the three GIL-ful legs install happily and a free-threaded interpreter
cannot load at all. The source build then died in cargo - the toolchain this
port installs is upstream's 1.71.1, and hypothesis ships a version 4
Cargo.lock.

PIP_ONLY_BINARY=hypothesis, scoped to the test phase, stops pip at the newest
release that actually has a wheel for each interpreter - 6.165.10 from
pypi.riseproject.dev covers cp314t - instead of hand-pinning a version that
goes stale as the registry builds newer ones. Checked in the
manylinux_2_39_riscv64 image on the free-threaded interpreter: hypothesis
6.165.10 installs and all 11 tests pass.
luhenry added a commit that referenced this pull request Sep 21, 2026
… on each of cp312-cp314t

The queue note read the py3 abi tag as a question mark; it is honest. maturin
builds the Rust CMSIS-Pack parser as a cdylib and cffi's ABI mode dlopens it,
so nothing is imported as an extension module and one wheel serves every
interpreter - the same shape as gotchas 81/145, now recorded as 479.

Nothing in the 133-crate graph is architecture-specific (rustls, no openssl,
no vendored C), and rustup has a riscv64 host toolchain for the 1.71.1
upstream's own wheel job installs. Built once on cp312 in 15 minutes on the
riscv64 runner, tested under all four interpreters, publish dry-run clean. The
only riscv64-specific adjustment was PIP_ONLY_BINARY=hypothesis for the
free-threaded test leg (gotcha 210).
@luhenry
luhenry marked this pull request as ready for review September 21, 2026 07:32
@luhenry
luhenry merged commit c553064 into main Sep 21, 2026
9 checks passed
@luhenry
luhenry deleted the cmsis-pack-manager branch September 21, 2026 07:33
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