Skip to content

COMP: Update CI, Python packaging, and CMake 4.x compatibility#77

Merged
thewtex merged 4 commits into
SCIInstitute:masterfrom
hjmjohnson:update-to-v5.4.6
Jun 19, 2026
Merged

COMP: Update CI, Python packaging, and CMake 4.x compatibility#77
thewtex merged 4 commits into
SCIInstitute:masterfrom
hjmjohnson:update-to-v5.4.6

Conversation

@hjmjohnson

@hjmjohnson hjmjohnson commented Apr 3, 2026

Copy link
Copy Markdown
Contributor

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 on master at 3d0fd19) and is not caused by this PR; see details below.

What's in this PR (4 commits)
  1. Update CI workflows to latest action versions + ITK v5.4.6
  2. Update itk-wasm build images to 20250619-3165ade4
  3. Bump version to 1.4.1 and require Python ≥ 3.10
  4. Disable vendored Cleaver-lib testing for CMake 4.x compat (vendored googletest declares cmake_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 master as well, so this is not a regression. With this PR's CI updates (newer itk-wasm build image), the failure mode has shifted downstream:

  • The C++ Build and Test WASI steps now pass (the earlier itkOverrideGetNameOfClassMacro-style C++ break from the older Docker image no longer occurs).
  • The failure is now in the Build TypeScript, JavaScript package step — tsc errors from an itk-wasm version skew between the bindgen output and the itk-wasm npm dependency:
    • index-common.ts: TS2307: Cannot find module './version.js'
    • two TS7016 — worker .min.worker.js bundles lack .d.ts
    • itk-cleaver.ts:76: TS2554: Expected 4-5 arguments, but got 6

This PR does not touch any wasm/typescript/src/*.ts; resolving it requires aligning the bindgen image with the npm itk-wasm version (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.

@netlify

netlify Bot commented Apr 3, 2026

Copy link
Copy Markdown

Deploy Preview for itk-wasm-cleaver-typescript-docs ready!

Name Link
🔨 Latest commit e6a55a1
🔍 Latest deploy log https://app.netlify.com/projects/itk-wasm-cleaver-typescript-docs/deploys/69dffbbce43a6e000842aa55
😎 Deploy Preview https://deploy-preview-77--itk-wasm-cleaver-typescript-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@hjmjohnson hjmjohnson force-pushed the update-to-v5.4.6 branch 4 times, most recently from 7407a76 to 0d2a4c5 Compare April 14, 2026 23:52
Comment thread CMakeLists.txt
- 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.
@hjmjohnson

Copy link
Copy Markdown
Contributor Author

Abandoning update to Cleaver. If this project becomes active again, revisit closed PRs.

@hjmjohnson hjmjohnson closed this Apr 23, 2026
@hjmjohnson hjmjohnson reopened this Jun 19, 2026
@hjmjohnson

Copy link
Copy Markdown
Contributor Author

@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 cmake_minimum_required(VERSION <3.5), which CMake 4 hard-rejects ("Compatibility with CMake < 3.5 has been removed"). The Cleaver library and the ITK module compile cleanly — only the vendored lib's internal googletest test build trips the policy floor.

This PR fixes it by turning the vendored Cleaver-lib's internal BUILD_TESTING off (the ITK module keeps its own tests), matching the upstream Cleaver fix SCIInstitute/Cleaver#130.

How this surfaced + scope

Found while building the full ITK consumer "forest" (every downstream — ITK, ANTs, BRAINSTools, Slicer, elastix, SimpleITK, and all remote modules — against ITK main to catch breakage before it lands). With the pinned CMake 4.3 toolchain, ITKCleaver is the only remote-module red attributable solely to this googletest policy floor; the change here makes it green again.

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, .cid data tags — is the consolidated maintenance batch from #63/#70/#72–75; happy to split the CMake-4 hunk into a minimal PR if you'd prefer to merge that alone.)

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 ITKCleaver to the InsightSoftwareConsortium organization? That would put it next to the rest of the remote modules and let the ITK maintainers keep it current (CMake/ITK API churn, dashboards) rather than it going stale under SCIInstitute. I'm glad to help with the move and to hand off / co-maintain.

Thanks!

@thewtex thewtex merged commit 8ef9b6d into SCIInstitute:master Jun 19, 2026
34 of 36 checks passed
@thewtex

thewtex commented Jun 19, 2026

Copy link
Copy Markdown
Member

Would you be open to transferring ITKCleaver to the InsightSoftwareConsortium organization?

This is a questions for the SCI folks.

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