Skip to content

ENH: Retire FEM modules to InsightSoftwareConsortium/ITKFEM remote#6524

Open
hjmjohnson wants to merge 1 commit into
InsightSoftwareConsortium:mainfrom
hjmjohnson:remove-fem-module
Open

ENH: Retire FEM modules to InsightSoftwareConsortium/ITKFEM remote#6524
hjmjohnson wants to merge 1 commit into
InsightSoftwareConsortium:mainfrom
hjmjohnson:remove-fem-module

Conversation

@hjmjohnson

Copy link
Copy Markdown
Member

Retires the FEM modules (ITKFEM, ITKFEMRegistration) from the ITK main tree, replacing them with a Modules/Remote/FEM.remote.cmake breadcrumb pointing at the new full-history remote repository InsightSoftwareConsortium/ITKFEM. Phase 1 of #6511.

What this does
  • Removes Modules/Numerics/FEM (ITKFEM) and Modules/Registration/FEM (ITKFEMRegistration) — both opt-in (EXCLUDE_FROM_DEFAULT); no in-tree module depended on them.
  • Adds Modules/Remote/FEM.remote.cmake (MODULE_COMPLIANCE_LEVEL 1, pinned GIT_TAG) with a loud enable-time warning that the module is unmaintained and slated for removal in ITK 7, asking dependents to comment on Tracking: Retire the FEM module (ITKFEM / ITKFEMRegistration) to reduce maintenance burden #6511.
  • Removes the two FEM-based deformable-registration examples + their data, drops FEM references from the Registration module-group doc and the license attribution list, and documents the retirement in the ITK 6 migration guide.
History preservation + verification

The remote repo was produced with git filter-repo from a fresh clone, retaining the complete history (1,290 commits back to the original 2001 check-in by Aljaž Noe, 137 merges) with legacy Code/-era paths normalized onto today's Modules/.../FEM layout. Content is tree-hash identical to upstream/main FEM.

End-to-end verified locally: enabling Module_FEM clones the remote, fires the warning, discovers both nested modules, and builds libITKFEM + libITKFEMRegistration.

@github-actions github-actions Bot added the type:Enhancement Improvement of existing methods or implementation label Jun 26, 2026

@dzenanz dzenanz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Mostly looks good.

Comment thread Documentation/docs/migration_guides/itk_6_migration_guide.md Outdated
Remove the opt-in (EXCLUDE_FROM_DEFAULT) ITKFEM (Modules/Numerics/FEM)
and ITKFEMRegistration (Modules/Registration/FEM) modules from the main
tree and replace them with a Modules/Remote/FEM.remote.cmake breadcrumb
pointing at the extracted, full-history InsightSoftwareConsortium/ITKFEM
repository. The remote is compliance-level 1 (the lowest itk_fetch_module
can express; 0 is promoted to 1), emits a loud enable-time warning, and is
scheduled for removal in ITK 7 (see InsightSoftwareConsortium#6511).

Also remove the two FEM-based deformable registration examples and their
data files, drop FEM references from the Registration module group
documentation and the license attribution list, and document the
retirement in the ITK 6 migration guide.
@greptile-apps

greptile-apps Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR retires the FEM modules from the main ITK tree. The main changes are:

  • Removed the in-tree ITKFEM and ITKFEMRegistration module sources, tests, and examples.
  • Added a FEM remote-module breadcrumb pinned to the new external repository.
  • Updated migration, remote-module, registration-group, and license documentation.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.
  • The remote-module path is opt-in and matches the documented migration path.
  • Removed example targets no longer have active in-tree build references.

Important Files Changed

Filename Overview
Modules/Remote/FEM.remote.cmake Adds the opt-in remote-module breadcrumb, pinned repository/tag, compliance level, and warning text.
Examples/RegistrationITKv4/CMakeLists.txt Removes the FEM-backed registration example targets from the examples build.
Documentation/docs/migration_guides/itk_6_migration_guide.md Documents the FEM module retirement and the Module_FEM migration path.
CMake/ITKGroups.cmake Removes ITKFEM from the Registration group description.
Documentation/docs/scientific_ecosystem/remote_modules.md Adds FEM to the remote modules table with its external repository and retirement status.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[ITK main tree before PR] --> B[In-tree ITKFEM]
  A --> C[In-tree ITKFEMRegistration]
  A --> D[FEM registration examples]
  E[ITK main tree after PR] --> F[Modules/Remote/FEM.remote.cmake]
  F --> G[Module_FEM opt-in]
  G --> H[Fetch InsightSoftwareConsortium/ITKFEM]
  H --> I[Remote ITKFEM]
  H --> J[Remote ITKFEMRegistration]
  E --> K[Migration guide and remote module docs]
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
  A[ITK main tree before PR] --> B[In-tree ITKFEM]
  A --> C[In-tree ITKFEMRegistration]
  A --> D[FEM registration examples]
  E[ITK main tree after PR] --> F[Modules/Remote/FEM.remote.cmake]
  F --> G[Module_FEM opt-in]
  G --> H[Fetch InsightSoftwareConsortium/ITKFEM]
  H --> I[Remote ITKFEM]
  H --> J[Remote ITKFEMRegistration]
  E --> K[Migration guide and remote module docs]
Loading

Reviews (1): Last reviewed commit: "ENH: Retire FEM modules to InsightSoftwa..." | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:Enhancement Improvement of existing methods or implementation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants