Skip to content

COMP: Modernize CMake and update CI to v5.4.6 with OpenSlide system packages#37

Open
hjmjohnson wants to merge 5 commits intomainfrom
update-ci-v5.4.6
Open

COMP: Modernize CMake and update CI to v5.4.6 with OpenSlide system packages#37
hjmjohnson wants to merge 5 commits intomainfrom
update-ci-v5.4.6

Conversation

@hjmjohnson
Copy link
Copy Markdown
Member

@hjmjohnson hjmjohnson commented Apr 3, 2026

Re-enable C++ CI by installing OpenSlide via apt-packages/brew-packages inputs and modernize the CMake build to use itk_module_add_library. Disable Python wheel builds (OpenSlide unavailable in manylinux/Windows containers).

Changes
  • Workflow: Upgrade action ref from @v5.4.2@v5.4.6, pass apt-packages: libopenslide-dev and brew-packages: openslide, restrict C++ OS list to Linux/macOS (no Windows OpenSlide), disable Python wheel workflow.
  • CMake: Replace legacy add_library + include_directories + itk_module_target with itk_module_add_library, which generates the export header and propagates its include directory through target interface properties — fixing IOOpenSlideExport.h: No such file or directory in test targets.
  • Python: Bump minimum to Python 3.10+ in pyproject.toml.

@hjmjohnson hjmjohnson requested a review from dzenanz April 3, 2026 11:56
@hjmjohnson hjmjohnson self-assigned this Apr 3, 2026
Copy link
Copy Markdown
Member

@dzenanz dzenanz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not have AI implement its own suggestion(s) about the remote module action?

@hjmjohnson hjmjohnson force-pushed the update-ci-v5.4.6 branch 3 times, most recently from 2a07d86 to 7dcc0b6 Compare April 3, 2026 22:10
Re-enable build workflows using new inputs from
ITKRemoteModuleBuildTestPackageAction:
- apt-packages: install libopenslide-dev on Linux
- brew-packages: install openslide on macOS
- os-list: skip Windows (no OpenSlide package manager distribution)

Python wheel builds re-enabled with default configuration.

Also updates minimum Python version to 3.10+.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Member

@dzenanz dzenanz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes look good.

@dzenanz
Copy link
Copy Markdown
Member

dzenanz commented Apr 6, 2026

@blowekamp this remote builds against 5.4.5, but fails against a recent main:

/.../ITKIOOpenSlide/src/itkOpenSlideImageIOFactory.cxx:18:10: fatal error: itkOpenSlideImageIOFactory.h: No such file or directory
/.../ITKIOOpenSlide/src/itkOpenSlideImageIO.cxx:24:10: fatal error: itkOpenSlideImageIO.h: No such file or directory

An attempt to fix it is in https://github.com/InsightSoftwareConsortium/ITKIOOpenSlide/tree/wipInclude branch.

Comment thread .github/workflows/build-test-package.yml Outdated
hjmjohnson and others added 4 commits April 12, 2026 21:15
The CTest dashboard build does not automatically add the module's
include/ directory to the compiler search path for the src/ library
target. Without this, itkOpenSlideImageIOFactory.h is not found:

  fatal error: itkOpenSlideImageIOFactory.h: No such file or directory

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The add-apt-packages-input feature branch was merged into v5.4.6
as commit 7beece0. Update the CXX workflow ref to use the stable
branch instead of the now-stale feature branch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The module export header IOOpenSlideExport.h is generated by CMake
in the build directory (CMAKE_CURRENT_BINARY_DIR). The CTest
dashboard build does not automatically add this to the include path,
causing:

  fatal error: IOOpenSlideExport.h: No such file or directory

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…eels

Replace the legacy add_library + itk_module_target + include_directories
pattern with itk_module_add_library, which generates the export header
and propagates its include directory through target interface properties.
This fixes the IOOpenSlideExport.h not-found error when building test
targets in the CTest/dashboard configuration.

Disable the Python wheel workflow because OpenSlide is an external C
library not available in the manylinux Docker containers or Windows
wheel-build environments.

Assisted-by: Claude Code — root-cause analysis of export header include path propagation
@hjmjohnson hjmjohnson changed the title COMP: Disable CI builds requiring OpenSlide and update Python 3.10+ COMP: Modernize CMake and update CI to v5.4.6 with OpenSlide system packages Apr 14, 2026
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.

3 participants