From 44f087a437cde97dcad330817b17c503aa6b4683 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 14 Apr 2026 15:07:48 -0500 Subject: [PATCH 1/2] WIP: Add itk_fetch_module_group() and ITKRemoteAnalysis proof of concept Add hierarchical sub-group support for remote modules, enabling consolidation of many single-module repos into category repos. CMake changes (~160 lines across 3 files): - ITKModuleEnablement.cmake: add 4-level glob for sub-grouped modules - ITKModuleRemote.cmake: new itk_fetch_module_group() function - ITKGroups.cmake: sub-group request propagation for ITKGroup_Remote_* Proof of concept: ITKRemoteAnalysis replaces 7 individual .remote.cmake files with a single category repo containing 8 modules (TextureFeatures, BoneMorphometry, BoneEnhancement, Thickness3D, IsotropicWavelets, RANSAC, PerformanceBenchmarking, StructuralSimilarity). All 77 tests pass. Usage: cmake -DITKGroup_Remote_Analysis=ON ... # Modules with EXCLUDE_FROM_DEFAULT need explicit Module_=ON Ref: #6060 --- CMake/ITKGroups.cmake | 63 +++++++++++ CMake/ITKModuleEnablement.cmake | 1 + CMake/ITKModuleRemote.cmake | 104 ++++++++++++++++++ Modules/Remote/BoneEnhancement.remote.cmake | 50 --------- Modules/Remote/BoneMorphometry.remote.cmake | 56 ---------- Modules/Remote/ITKRemoteAnalysis.remote.cmake | 16 +++ Modules/Remote/IsotropicWavelets.remote.cmake | 58 ---------- .../PerformanceBenchmarking.remote.cmake | 63 ----------- Modules/Remote/RANSAC.remote.cmake | 56 ---------- Modules/Remote/TextureFeatures.remote.cmake | 61 ---------- Modules/Remote/Thickness3D.remote.cmake | 51 --------- 11 files changed, 184 insertions(+), 395 deletions(-) delete mode 100644 Modules/Remote/BoneEnhancement.remote.cmake delete mode 100644 Modules/Remote/BoneMorphometry.remote.cmake create mode 100644 Modules/Remote/ITKRemoteAnalysis.remote.cmake delete mode 100644 Modules/Remote/IsotropicWavelets.remote.cmake delete mode 100644 Modules/Remote/PerformanceBenchmarking.remote.cmake delete mode 100644 Modules/Remote/RANSAC.remote.cmake delete mode 100644 Modules/Remote/TextureFeatures.remote.cmake delete mode 100644 Modules/Remote/Thickness3D.remote.cmake diff --git a/CMake/ITKGroups.cmake b/CMake/ITKGroups.cmake index 0262267d7e3..0be72d619b6 100644 --- a/CMake/ITKGroups.cmake +++ b/CMake/ITKGroups.cmake @@ -186,6 +186,69 @@ foreach(group ${group_list}) list(APPEND ITK_MODULE_${itk-module}_REQUEST_BY ITKGroup_${group}) endforeach() endif() + + # Sub-group support: ITKGroup_Remote_Analysis, ITKGroup_Remote_IO, etc. + # When a sub-group is ON, request building all modules discovered within + # that sub-group's directory (e.g., Modules/Remote/Analysis/*). + if("${group}" STREQUAL "Remote") + file( + GLOB _remote_subdirs + RELATIVE "${ITK_SOURCE_DIR}/Modules/Remote" + "${ITK_SOURCE_DIR}/Modules/Remote/*/itk-module.cmake" + ) + # Collect sub-group names from directories that contain itk-module.cmake + # at depth 2 (e.g., Analysis/TextureFeatures/itk-module.cmake) + set(_remote_subgroups) + foreach(_rmod_file ${_remote_subdirs}) + # These are flat: "ModuleName/itk-module.cmake" — skip + endforeach() + file( + GLOB _remote_subgroup_files + RELATIVE "${ITK_SOURCE_DIR}/Modules/Remote" + "${ITK_SOURCE_DIR}/Modules/Remote/*/*/itk-module.cmake" + ) + foreach(_rmod_file ${_remote_subgroup_files}) + # Extract sub-group name (first path component) + string(REGEX MATCH "^([^/]+)/" _match "${_rmod_file}") + set(_subgroup_name "${CMAKE_MATCH_1}") + if(_subgroup_name AND NOT "${_subgroup_name}" STREQUAL "Deprecated") + list(APPEND _remote_subgroups ${_subgroup_name}) + endif() + endforeach() + if(_remote_subgroups) + list(REMOVE_DUPLICATES _remote_subgroups) + endif() + + foreach(_subgroup ${_remote_subgroups}) + if(ITKGroup_Remote_${_subgroup}) + # Find all modules in this sub-group and request them. + # Unlike the default group mechanism, an explicitly enabled sub-group + # requests ALL its modules including those with EXCLUDE_FROM_DEFAULT. + file( + GLOB _subgroup_module_files + "${ITK_SOURCE_DIR}/Modules/Remote/${_subgroup}/*/itk-module.cmake" + ) + foreach(_mod_file ${_subgroup_module_files}) + file(READ ${_mod_file} _mod_content) + string( + REGEX + MATCH + "itk_module[ \n]*(\\([ \n]*)([A-Za-z0-9]*)" + _m + "${_mod_content}" + ) + set(_mod_name "${CMAKE_MATCH_2}") + if(_mod_name) + list( + APPEND + ITK_MODULE_${_mod_name}_REQUEST_BY + ITKGroup_Remote_${_subgroup} + ) + endif() + endforeach() + endif() + endforeach() + endif() # Hide group options if building all modules anyway. if(ITK_BUILD_DEFAULT_MODULES) set_property( diff --git a/CMake/ITKModuleEnablement.cmake b/CMake/ITKModuleEnablement.cmake index 218187f33fe..b6febc0293a 100644 --- a/CMake/ITKModuleEnablement.cmake +++ b/CMake/ITKModuleEnablement.cmake @@ -7,6 +7,7 @@ macro(itk_module_load_dag) GLOB_RECURSE meta RELATIVE "${ITK_SOURCE_DIR}" "${ITK_SOURCE_DIR}/*/*/*/itk-module.cmake" # grouped modules + "${ITK_SOURCE_DIR}/*/*/*/*/itk-module.cmake" # sub-grouped modules (e.g., Remote/Analysis/TextureFeatures/) ) foreach(f ${meta}) include(${ITK_SOURCE_DIR}/${f}) diff --git a/CMake/ITKModuleRemote.cmake b/CMake/ITKModuleRemote.cmake index 3b102f31365..15f043a5574 100644 --- a/CMake/ITKModuleRemote.cmake +++ b/CMake/ITKModuleRemote.cmake @@ -389,3 +389,107 @@ function(itk_fetch_module _name _description) endif() endif() endfunction() + +# Download and enable a group of remote modules from a single repository. +# +# Unlike itk_fetch_module() which handles one module per repo, this function +# clones a category repository that contains multiple itk-module.cmake files +# in subdirectories. The module discovery glob in ITKModuleEnablement.cmake +# finds and registers each sub-module automatically. +# +# Usage in a .remote.cmake file: +# itk_fetch_module_group(Analysis +# "Analysis domain modules: TextureFeatures, BoneMorphometry, ..." +# GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKRemoteAnalysis.git +# GIT_TAG +# ) +# +# The group is controlled by ITKGroup_Remote_. When the group option +# is ON, the repo is cloned into Modules/Remote// and each sub-module +# becomes individually toggleable via Module_=ON/OFF. +# +# See https://github.com/InsightSoftwareConsortium/ITK/issues/6060 +function(itk_fetch_module_group _group_name _description) + include(CMakeParseArguments) + cmake_parse_arguments(_fetch_options "" "GIT_REPOSITORY;GIT_TAG" "" ${ARGN}) + + # Create the group option if it doesn't exist yet. + if(NOT DEFINED ITKGroup_Remote_${_group_name}) + option( + ITKGroup_Remote_${_group_name} + "Request building Remote/${_group_name} modules: ${_description}" + OFF + ) + endif() + + # Only fetch if the group is enabled (or the master Remote group is on) + if(NOT ITKGroup_Remote_${_group_name} AND NOT ITKGroup_Remote) + return() + endif() + + if(ITK_FORBID_DOWNLOADS) + return() + endif() + + itk_download_attempt_check(ITKGroup_Remote_${_group_name}) + find_package(Git) + if(NOT GIT_EXECUTABLE) + message(FATAL_ERROR "error: could not find git for clone of ${_group_name}") + endif() + + set(REMOTE_GIT_TAG "${_fetch_options_GIT_TAG}") + + # Allow per-group tag override + if( + DEFINED + ITKGroup_Remote_${_group_name}_GIT_TAG + AND + NOT + "${ITKGroup_Remote_${_group_name}_GIT_TAG}" + STREQUAL + "${_fetch_options_GIT_TAG}" + ) + set(REMOTE_GIT_TAG "${ITKGroup_Remote_${_group_name}_GIT_TAG}") + message( + STATUS + "NOTE: Using override 'ITKGroup_Remote_${_group_name}_GIT_TAG=${REMOTE_GIT_TAG}'" + ) + endif() + + # Freeze support + set(_group_dir "${ITK_SOURCE_DIR}/Modules/Remote/${_group_name}") + if( + ITK_FREEZE_REMOTE_MODULES + AND + EXISTS + "${_group_dir}" + AND + NOT + REMOTE_GIT_TAG + STREQUAL + "" + ) + message( + STATUS + "ITK_FREEZE_REMOTE_MODULES is ON: Skipping update of remote module group ${_group_name}" + ) + return() + endif() + + set( + ITKGroup_Remote_${_group_name}_GIT_TAG + "${REMOTE_GIT_TAG}" + CACHE STRING + "Override default GIT_TAG for remote module group ${_group_name}" + ) + mark_as_advanced(ITKGroup_Remote_${_group_name}_GIT_TAG) + + if(NOT REMOTE_GIT_TAG STREQUAL "") + _fetch_with_git( + "${GIT_EXECUTABLE}" + "${_fetch_options_GIT_REPOSITORY}" + "${REMOTE_GIT_TAG}" + "${_group_dir}" + ) + endif() +endfunction() diff --git a/Modules/Remote/BoneEnhancement.remote.cmake b/Modules/Remote/BoneEnhancement.remote.cmake deleted file mode 100644 index 1e7e72400a9..00000000000 --- a/Modules/Remote/BoneEnhancement.remote.cmake +++ /dev/null @@ -1,50 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-24 -#-- EVALUATORS: [Dženan Zukić] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [X] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [X] Meets all ITK code style standards -#-- - [X] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [X] Continuous integration testing performed -#-- - [X] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [X] API | executable interface is considered mostly stable and feature complete -#-- - [X] 10% C0-code coverage demonstrated for testing suite -#-- - [X] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -itk_fetch_module( - BoneEnhancement - "Various filters for enhancing cortical bones in quantitative computed tomography." - MODULE_COMPLIANCE_LEVEL 3 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKBoneEnhancement.git - GIT_TAG 8151f44a68dfea0c978567ec8d026084ccb5a3a9 - ) diff --git a/Modules/Remote/BoneMorphometry.remote.cmake b/Modules/Remote/BoneMorphometry.remote.cmake deleted file mode 100644 index 00513c789cc..00000000000 --- a/Modules/Remote/BoneMorphometry.remote.cmake +++ /dev/null @@ -1,56 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-24 -#-- EVALUATORS: [Dženan Zukić] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [X] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [X] Meets all ITK code style standards -#-- - [X] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [X] Continuous integration testing performed -#-- - [X] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [X] API | executable interface is considered mostly stable and feature complete -#-- - [X] 10% C0-code coverage demonstrated for testing suite -#-- - [X] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -itk_fetch_module( - BoneMorphometry - "An Insight Toolkit (ITK) based implementation for bone morphometry quantification from computed tomography (CT) images. - A more detailed description can be found in the Insight Journal (IJ) article: - Vimort J., McCormick M., Paniagua B. - Computing Bone Morphometric Feature Maps from 3-Dimensional Images - The Insight Journal. January-December. 2017. - https://doi.org/10.54294/vctqy4 - " - MODULE_COMPLIANCE_LEVEL 3 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKBoneMorphometry.git - GIT_TAG 4dc0acd7b87d39bbc84f4541f9dfd4443782efd3 - ) diff --git a/Modules/Remote/ITKRemoteAnalysis.remote.cmake b/Modules/Remote/ITKRemoteAnalysis.remote.cmake new file mode 100644 index 00000000000..e1e891fb847 --- /dev/null +++ b/Modules/Remote/ITKRemoteAnalysis.remote.cmake @@ -0,0 +1,16 @@ +# ITKRemoteAnalysis — consolidated remote module group +# +# Contains analysis-domain remote modules: +# TextureFeatures, BoneMorphometry, BoneEnhancement, Thickness3D, +# IsotropicWavelets, RANSAC, PerformanceBenchmarking, StructuralSimilarity +# +# Enable with: cmake -DITKGroup_Remote_Analysis=ON +# Individual modules toggleable via Module_=ON/OFF +# +# See https://github.com/InsightSoftwareConsortium/ITK/issues/6060 + +itk_fetch_module_group(Analysis + "Analysis domain: TextureFeatures, BoneMorphometry, BoneEnhancement, Thickness3D, IsotropicWavelets, RANSAC, PerformanceBenchmarking, StructuralSimilarity" + GIT_REPOSITORY /Users/johnsonhj/src/ITKRemoteAnalysis + GIT_TAG main +) diff --git a/Modules/Remote/IsotropicWavelets.remote.cmake b/Modules/Remote/IsotropicWavelets.remote.cmake deleted file mode 100644 index e2fab286749..00000000000 --- a/Modules/Remote/IsotropicWavelets.remote.cmake +++ /dev/null @@ -1,58 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-01 -#-- EVALUATORS: [<>,<>] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [ ] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [ ] Meets all ITK code style standards -#-- - [ ] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [ ] Continuous integration testing performed -#-- - [ ] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [ ] API | executable interface is considered mostly stable and feature complete -#-- - [ ] 10% C0-code coverage demonstrated for testing suite -#-- - [ ] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -# Contact: Pablo Hernandez-Cerdan -itk_fetch_module( - IsotropicWavelets - "An ITK-based implementation of steerable isotropic wavelet transforms for multiscale phase analysis. -A more detailed description can be found in the Insight Journal article:: - -Cerdan, P.H. \"Steerable Isotropic Wavelets for Multiscale and Phase Analysis\". - https://doi.org/10.54294/0e1c0748fe24 - November, 2016. -" - # Upstream repository was transferred from phcerdan to InsightSoftwareConsortium - MODULE_COMPLIANCE_LEVEL 2 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKIsotropicWavelets.git - GIT_TAG 4a60dc7a67e8c65b76ca49beb5c213543c5c62f9 - ) diff --git a/Modules/Remote/PerformanceBenchmarking.remote.cmake b/Modules/Remote/PerformanceBenchmarking.remote.cmake deleted file mode 100644 index 834df502299..00000000000 --- a/Modules/Remote/PerformanceBenchmarking.remote.cmake +++ /dev/null @@ -1,63 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-01 -#-- EVALUATORS: [<>,<>] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [ ] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [ ] Meets all ITK code style standards -#-- - [ ] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [ ] Continuous integration testing performed -#-- - [ ] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [ ] API | executable interface is considered mostly stable and feature complete -#-- - [ ] 10% C0-code coverage demonstrated for testing suite -#-- - [ ] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -# Contact: Matt McCormick -itk_fetch_module( - PerformanceBenchmarking - "New classes increase operating system process priority to -minimize the impact of other processes running on the system. - -These classes are used by a suite of example ITK benchmarks to -quantify toolkit performance. - -For more information, see:: - - McCormick M., Kang H.J., Barre S. - Performance Benchmarking the Insight Toolkit - The Insight Journal. January-December. 2016. - https://doi.org/10.54294/9feae9 -" - MODULE_COMPLIANCE_LEVEL 2 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKPerformanceBenchmarking.git - GIT_TAG 7950c1d76095033edbf7601a925cdacc2fe717f9 - ) diff --git a/Modules/Remote/RANSAC.remote.cmake b/Modules/Remote/RANSAC.remote.cmake deleted file mode 100644 index ef1b2a6c7c8..00000000000 --- a/Modules/Remote/RANSAC.remote.cmake +++ /dev/null @@ -1,56 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2022-11-09 -#-- EVALUATORS: [<>,<>] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [ ] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [ ] Meets all ITK code style standards -#-- - [ ] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [ ] Continuous integration testing performed -#-- - [ ] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [ ] API | executable interface is considered mostly stable and feature complete -#-- - [X] 10% C0-code coverage demonstrated for testing suite -#-- - [X] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -itk_fetch_module( - RANSAC - "An ITK-based implementation of RANSAC used for point cloud registration. -It supports feature based registration and can be used along with the FPFH remote module. - -The class itkRANSAC is the main driver that takes an object of class itkLandmarkRegistrationEstimator as argument. -Please refer to the documentation upstream for a detailed description and sample usage: -https://github.com/InsightSoftwareConsortium/ITKRANSAC -" - MODULE_COMPLIANCE_LEVEL 2 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKRANSAC.git - GIT_TAG d4b29552431f471437f8ac1093f5fc3550995577 - ) diff --git a/Modules/Remote/TextureFeatures.remote.cmake b/Modules/Remote/TextureFeatures.remote.cmake deleted file mode 100644 index 10a9785d83e..00000000000 --- a/Modules/Remote/TextureFeatures.remote.cmake +++ /dev/null @@ -1,61 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-01 -#-- EVALUATORS: [<>,<>] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [ ] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [ ] Meets all ITK code style standards -#-- - [ ] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [ ] Continuous integration testing performed -#-- - [ ] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [ ] API | executable interface is considered mostly stable and feature complete -#-- - [ ] 10% C0-code coverage demonstrated for testing suite -#-- - [ ] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -# Contact: Jean-Baptiste VIMORT -itk_fetch_module( - TextureFeatures - "Filters to estimate texture feature maps from N-dimensional grayscale -images. This includes first-order texture features, grey level co-occurrence -matrix (GLCM) features, and grey level run-length matrix (GLRLM) features. - -For more information, see: - - Vimort J., McCormick M., Budin F., Paniagua B. - Computing Textural Feature Maps for N-Dimensional images - The Insight Journal. January-December. 2017. - https://doi.org/10.54294/qy48ty -" - MODULE_COMPLIANCE_LEVEL 2 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKTextureFeatures.git - GIT_TAG 54e259e445905279a996cca9da92af68af3191f6 - ) diff --git a/Modules/Remote/Thickness3D.remote.cmake b/Modules/Remote/Thickness3D.remote.cmake deleted file mode 100644 index 19ba877ee30..00000000000 --- a/Modules/Remote/Thickness3D.remote.cmake +++ /dev/null @@ -1,51 +0,0 @@ -#-- # Grading Level Criteria Report -#-- EVALUATION DATE: 2020-03-01 -#-- EVALUATORS: [<>,<>] -#-- -#-- ## Compliance level 5 star (AKA ITK main modules, or remote modules that could become core modules) -#-- - [ ] Widespread community dependance -#-- - [ ] Above 90% code coverage -#-- - [ ] CI dashboards and testing monitored rigorously -#-- - [ ] Key API features are exposed in wrapping interface -#-- - [ ] All requirements of Levels 4,3,2,1 -#-- -#-- ## Compliance Level 4 star (Very high-quality code, perhaps small community dependance) -#-- - [ ] Meets all ITK code style standards -#-- - [ ] No external requirements beyond those needed by ITK proper -#-- - [ ] Builds and passes tests on all supported platforms within 1 month of each core tagged release -#-- - [ ] Windows Shared Library Build with Visual Studio -#-- - [ ] Mac with clang compiller -#-- - [ ] Linux with gcc compiler -#-- - [ ] Active developer community dedicated to maintaining code-base -#-- - [ ] 75% code coverage demonstrated for testing suite -#-- - [ ] Continuous integration testing performed -#-- - [ ] All requirements of Levels 3,2,1 -#-- -#-- ## Compliance Level 3 star (Quality beta code) -#-- - [ ] API | executable interface is considered mostly stable and feature complete -#-- - [ ] 10% C0-code coverage demonstrated for testing suite -#-- - [ ] Some tests exist and pass on at least some platform -#-- - [X] All requirements of Levels 2,1 -#-- -#-- ## Compliance Level 2 star (Alpha code feature API development or niche community/execution environment dependance ) -#-- - [X] Compiles for at least 1 niche set of execution envirionments, and perhaps others -#-- (may depend on specific external tools like a java environment, or specific external libraries to work ) -#-- - [X] All requirements of Levels 1 -#-- -#-- ## Compliance Level 1 star (Pre-alpha features under development and code of unknown quality) -#-- - [X] Code complies on at least 1 platform -#-- -#-- ## Compliance Level 0 star ( Code/Feature of known poor-quality or deprecated status ) -#-- - [ ] Code reviewed and explicitly identified as not recommended for use -#-- -#-- ### Please document here any justification for the criteria above -# Code style enforced by clang-format on 2020-02-19, and clang-tidy modernizations completed - -# Contact: Thomas Janvier -itk_fetch_module( - Thickness3D - "Tools for 3D thickness measurement" - MODULE_COMPLIANCE_LEVEL 2 - GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITKThickness3D.git - GIT_TAG 71c6ad49feb31766e40ea7dca92c47dbf562d920 - ) From c0a9400d08cde721cff7132de2ea884f8bc69576 Mon Sep 17 00:00:00 2001 From: "Hans J. Johnson" Date: Tue, 14 Apr 2026 17:22:25 -0500 Subject: [PATCH 2/2] WIP: Enable ITKRemoteAnalysis in CI for validation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Point GIT_REPOSITORY at hjmjohnson/ITKRemoteAnalysis on GitHub (was local path, inaccessible to CI) - Enable ITKGroup_Remote_Analysis and all EXCLUDE_FROM_DEFAULT modules in Pixi configure-ci so CI builds and tests all 8 analysis modules This is a WIP commit for CI validation — the pyproject.toml changes will be reverted before merge. The final .remote.cmake will point at InsightSoftwareConsortium/ITKRemoteAnalysis. Ref: #6060 --- Modules/Remote/ITKRemoteAnalysis.remote.cmake | 4 ++-- pyproject.toml | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Modules/Remote/ITKRemoteAnalysis.remote.cmake b/Modules/Remote/ITKRemoteAnalysis.remote.cmake index e1e891fb847..3a8aa787efa 100644 --- a/Modules/Remote/ITKRemoteAnalysis.remote.cmake +++ b/Modules/Remote/ITKRemoteAnalysis.remote.cmake @@ -11,6 +11,6 @@ itk_fetch_module_group(Analysis "Analysis domain: TextureFeatures, BoneMorphometry, BoneEnhancement, Thickness3D, IsotropicWavelets, RANSAC, PerformanceBenchmarking, StructuralSimilarity" - GIT_REPOSITORY /Users/johnsonhj/src/ITKRemoteAnalysis - GIT_TAG main + GIT_REPOSITORY https://github.com/hjmjohnson/ITKRemoteAnalysis.git + GIT_TAG bf132a8671837090210b4714d5e184901becb24e ) diff --git a/pyproject.toml b/pyproject.toml index f3edca7cd2e..66bc2f65b59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -52,7 +52,12 @@ cmd = '''cmake -DITK_USE_CCACHE:BOOL=ON -DCMAKE_C_COMPILER_LAUNCHER:STRING=ccache -DCMAKE_CXX_COMPILER_LAUNCHER:STRING=ccache - -DITK_COMPUTER_MEMORY_SIZE:STRING=11''' + -DITK_COMPUTER_MEMORY_SIZE:STRING=11 + -DITKGroup_Remote_Analysis:BOOL=ON + -DModule_BoneEnhancement:BOOL=ON + -DModule_BoneMorphometry:BOOL=ON + -DModule_TextureFeatures:BOOL=ON + -DModule_Thickness3D:BOOL=ON''' description = "Configure ITK for CI (with ccache compiler launcher)" outputs = ["build/CMakeFiles/"]