COMP: Update CI, Python packaging, and CMake 4.x compatibility#77
Conversation
✅ Deploy Preview for itk-wasm-cleaver-typescript-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
7407a76 to
0d2a4c5
Compare
- ITKRemoteModuleBuildTestPackageAction: sha ref → @v5.4.6 - actions/checkout: v3.5.3 → v5 - actions/setup-node: v4.0.0 → v4 (node 18 → 22) - actions/upload-artifact: v3 → v4 - cypress-io/github-action: v5 → v6 (already on branch) - ubuntu-22.04 → ubuntu-24.04 for wasm builds - Pin ITK wheel/python-package tags to v5.4.5
Update emscripten and wasi Docker images to match ITK 5.4.x. Bump itk-wasm devDependency to ^1.0.0-b.176.
Python 3.8 and 3.9 are EOL. ITK 5.4.x wheels target 3.10+.
The bundled googletest in SCIInstitute/Cleaver uses cmake_minimum_required < 3.5 which CMake >= 4.0 rejects. Disable BUILD_TESTING for the vendored lib unconditionally. Upstream fix tracked at SCIInstitute/Cleaver#130. The ITK module has its own CTest-based tests that are unaffected.
0d2a4c5 to
e6a55a1
Compare
|
Abandoning update to Cleaver. If this project becomes active again, revisit closed PRs. |
|
@thewtex @jcfr — could I ask you to take a look at merging this? It's a small, COMP-only change that restores ITKCleaver's buildability on current toolchains, and right now it's the one thing keeping the module red. Why it matters: ITKCleaver no longer configures with CMake ≥ 4.0 (now the default toolchain; ITK itself builds under it). The vendored Cleaver library pulls googletest via ExternalProject, and that googletest declares This PR fixes it by turning the vendored Cleaver-lib's internal How this surfaced + scopeFound while building the full ITK consumer "forest" (every downstream — ITK, ANTs, BRAINSTools, Slicer, elastix, SimpleITK, and all remote modules — against ITK The change is limited to the SuperBuild's handling of the vendored library's tests — no functional change to the module. (The rest of this PR — CI action bumps, Python packaging, One bigger-picture ask: this module has been dormant on my end, and the natural home for an ITK remote module is alongside the others. Would you be open to transferring Thanks! |
This is a questions for the SCI folks. |
Consolidate all pending CI and packaging updates that restore ITKCleaver's buildability on current toolchains (CMake ≥ 4.0). Supersedes #63, #70, #72, #73, #74, #75.
The one red check —
build-test-wasm— is pre-existing (it is also red onmasterat3d0fd19) and is not caused by this PR; see details below.What's in this PR (4 commits)
20250619-3165ade4cmake_minimum_required(VERSION <3.5), which CMake 4 hard-rejects; the ITK module keeps its own tests). Matches upstream fix COMP: Modernize CMake for add_subdirectory, googletest, and CMake 4.0 compatibility Cleaver#130.Status of the pre-existing wasm CI failure (updated)
The wasm job is red on
masteras well, so this is not a regression. With this PR's CI updates (newer itk-wasm build image), the failure mode has shifted downstream:BuildandTest WASIsteps now pass (the earlieritkOverrideGetNameOfClassMacro-style C++ break from the older Docker image no longer occurs).Build TypeScript, JavaScript packagestep —tscerrors from an itk-wasm version skew between the bindgen output and theitk-wasmnpm dependency:index-common.ts: TS2307: Cannot find module './version.js'TS7016— worker.min.worker.jsbundles lack.d.tsitk-cleaver.ts:76: TS2554: Expected 4-5 arguments, but got 6This PR does not touch any
wasm/typescript/src/*.ts; resolving it requires aligning the bindgen image with the npmitk-wasmversion (or committing regenerated bindings) — out of scope for this CMake-4 / packaging maintenance batch. Happy to split the CMake-4 hunk into a minimal standalone PR if that's easier to merge.