Skip to content

simpleitk: Add version 2.5.6 - #2146

Merged
luhenry merged 1 commit into
mainfrom
simpleitk
Sep 21, 2026
Merged

luhenry merged 1 commit into
mainfrom
simpleitk

Conversation

@luhenry

@luhenry luhenry commented Sep 21, 2026

Copy link
Copy Markdown
Member

Compiles ITK 5.4.7 and SimpleITK's static C++ core, then SWIG-wraps them into _SimpleITK.so. Upstream publishes no riscv64 wheel.

Mirrors upstream's manylinux wheel recipe, the container Package.yml runs for its Linux wheels.

Differs from upstream

  • BUILD_TESTING=OFF in both stages - drops the C++ test binaries and their ExternalData downloads.
  • WITH_RVV=OFF - ITK's vendored zlib-ng probes its RVV kernels with a vsetvli that SIGILLs on this hardware.
  • The dist target packages with the image interpreter - upstream's venv would source-build numpy<2.5.
  • /usr/bin/cmake - ITK's vendored trees declare minimums the image's cmake 4 rejects.

Matrix: cp311 + cp314t - --py-limited-api=cp311 tags the limited-API wheel cp311-abi3, which covers cp312 through cp314; free-threaded builds cannot use the stable ABI.

Testing

  • upstream's Testing/Unit/Python suite, run against the installed wheel rather than through ctest in the build tree.

License: OK

Patches

  • 0001-SuperBuild-forward-WITH_-cache-variables-to-the-ITK-.patch - Inappropriate: without it -DWITH_RVV=OFF never reaches the ITK sub-build. Reproduces on any architecture.

Built on cp311 and cp314t; CI running.

Builds SimpleITK's SWIG Python bindings and the ITK 5.4.7 C++ world behind
them for riscv64, the same two-stage recipe upstream's own Linux wheel job
runs in Utilities/Distribution/manylinux/imagefiles/cmd.sh: the SuperBuild
compiles Lua, PCRE2, SWIG 4.4.1, ITK and the static SimpleITK core, then
Wrapping/Python is configured against that build tree and packaged with
setup.py. No cibuildwheel, no scikit-build, and no ITK dependency wheel -
upstream's wheel statically links its own ITK build into _SimpleITK.so.

The interpreter set follows the wheels upstream publishes rather than this
repo's default: dist/CMakeLists.txt passes --py-limited-api=cp311, so the
limited-API wheel is tagged cp311-abi3 and is built on cp311 to match the
tag it carries, covering cp312 through cp314; cp314t is a second build
because free-threaded interpreters cannot use the stable ABI.

Nothing in ITK or SimpleITK is architecture-specific: every x86 intrinsic in
the vendored trees (Eigen, vnl, openjpeg, zlib-ng) sits behind its own ISA
gate. The exception is ITK's vendored zlib-ng, which turns its RVV kernels on
by default on riscv and probes them with a vsetvli that SIGILLs on this
runner hardware, so the build passes WITH_RVV=OFF - which needs one patch,
because SuperBuild/External_ITK.cmake forwards no WITH_* variable to the ITK
sub-build.

Testing runs upstream's Python unit tests from Testing/Unit/Python against
the installed wheel; BUILD_TESTING is off in both CMake stages, which skips
the C++ test binaries and their ExternalData downloads.
@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 20:06 UTC

luhenry added a commit that referenced this pull request Sep 21, 2026
…hreaded legs

Triaged for scale before writing any YAML, and it is not the paddlepaddle/chdb
class it looks like: upstream's own CDash dashboard prices the whole SuperBuild
(Lua, PCRE2, SWIG, ITK 5.4.7, static SimpleITK core) at 1h03m-1h50m of compile
on 4-core x86, with each per-interpreter wrapping build at 2-8m, and upstream's
Linux wheels are built inside GitHub's 6h hosted-runner cap on 4 vCPU. One
patch, for a WITH_RVV that the SuperBuild forwards to nothing. Full reasoning
in the entry; folded as gotchas 476 and 477.
@luhenry
luhenry marked this pull request as ready for review September 21, 2026 20:05
@luhenry
luhenry merged commit 55e68a6 into main Sep 21, 2026
10 checks passed
@luhenry
luhenry deleted the simpleitk branch September 21, 2026 20:05
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