Skip to content

ENH: Master tracking — Remote-module ingestion, archival, and consolidation #6160

@hjmjohnson

Description

@hjmjohnson

Primary tracking issue for all remote-module work in ITK 6. Supersedes #3371, #6060, #5174, #4263, #4786, #5557, and is related to #990. The v3 ingestion strategy is documented at Utilities/Maintenance/RemoteModuleIngest/INGESTION_STRATEGY.md.

Goal

Reduce the ~57 entries in Modules/Remote/*.remote.cmake to a small, well-curated set, by either (a) ingesting active modules into the main ITK tree under their natural group (Modules/<Group>/<Name>/) preserving upstream git blame, or (b) archiving unmaintained / superseded upstream repos read-only. Every disposition must be intentional; no module remains as a configure-time fetch unless that is the documented best fit.

Status at a glance (2026-06-06)

Action checklist (live)

Phase 0 — infrastructure (DONE)

Phase 1 — completed ingests

Phase 2 — upstream archival (post-ingest follow-up)

For each merged ingest, the original upstream repo's whitelisted files are deleted, the README is promoted to the migration notice (so the GitHub landing page shows archived status), and the repo is marked Archived in GitHub settings.

Pending archival (ingested in-tree, upstream not yet archived):

Archived (complete):

  • ITKAnisotropicDiffusionLBR
  • ITKMontage
  • ITKGenericLabelInterpolator (#43)
  • ITKMGHImageIO (#50)
  • ITKFastBilateral (#16)
  • ITKMeshNoise (#37)
  • ITKLabelErodeDilate
  • ITKCuberille
  • ITKIOMeshSTL
  • ITKIOMeshMZ3
  • ITKIOFDF
  • ITKPolarTransform
  • ITKSplitComponents
  • ITKSubdivisionQuadEdgeMeshFilter
  • ntustison/ITKAdaptiveDenoising
  • ITKTextureFeatures
  • ITKPrincipalComponentsAnalysis
  • ITKHigherOrderAccurateGradient
  • ITKSmoothingRecursiveYvvGaussianFilter
  • ITKParabolicMorphology
  • KitwareMedical/ITKMorphologicalContourInterpolation
  • KitwareMedical/MultipleImageIterator
  • ITKNeuralNetworks — already archived upstream (subsumes NeuralNetworks (Numerics) module missing in recent versions #5557; close that issue with this resolution)
  • ITKTBBImageToImageFilter — archive without ingestion (superseded by ITK's built-in TBB threading via PoolMultiThreader)

Archived 2026-05-27 (this batch): open issues transferred to ITK (#6338#6358) or closed, open PRs closed, whitelisted sources deleted, README promoted to the migration notice, repo marked Archived.

KitwareMedical org repos — manual archive flag now flipped (confirmed Archived 2026-05-30):

Archived 2026-06-02:

Archived 2026-06-03 (this batch): open PRs closed as outdated, the one open issue transferred to ITK (#6389), whitelisted sources deleted, README.rstinfo.rst + migration README.md promoted (renders on landing page), archive flag flipped.

Phase 3 — Tier A ingest queue (pure ITK, no external deps) — COMPLETE

The order below was the proposed ingest sequence; all entries are now merged.

Wave 1 (Filtering / IO, smallest footprint, fastest review). ⭐ = open user-filed issue or high upstream-stars community-demand signal raised priority.

Wave 2 (richer or external-data-heavy) — all merged.

Phase 4 — Tier B disposition (refined per .devlocal/remote-module-ingest-report.md)

Bucket 1 — Phase 4 ingest queue (ITK-core-only deps; ingest in dependency order)

Bucket 2 — Phase 4 gated ingest (behind existing option; no new external dep)

Bucket 3 — Keep remote / do NOT ingest

  • DO NOT INCLUDE SimpleITKFiltersModules/Filtering/
  • SphinxExamples — keep remote: doc/data repo, content stale since v5.3.0 (only 2026 CI-lint plumbing), 13.6 MB, BUILD_EXAMPLES-gated
  • WebAssemblyInterface — keep remote: 300 MB active polyglot monorepo (ITK-Wasm); subtree ingest impractical
  • CudaCommon, RTK, VkFFTBackend — GPU/CUDA stacks, separate licensing/build matrix
  • SCIFIO, IOOpenSlide — large external libraries (Bio-Formats, OpenSlide)
  • TubeTK, Ultrasound, LesionSizingToolkit, HASI, SkullStrip, Cleaver, Shape — domain-specific / specialty toolkits with their own release cadences (Shape reclassified here 2026-06-06: non-ISC upstream, not ingested at this time)
  • BioCell — keep remote: legacy near-dead cell-sim demo (ITKCommon/Mesh-only but not worth ingesting)

Bucket 4 — Still needs investigation

  • PerformanceBenchmarking — clean deps (ITKCommon) but policy call: benchmark harness in core vs. separate build against installed ITK
  • TractographyTRX — vendors non-ISC trx-cpp; licensing review needed before any ingest decision

Phase 5 — discoverability & docs

Status table — every entry under Modules/Remote/ today

(L = Wave 1 ingest queue · 2 = Wave 2 ingest queue · 4 = Phase 4 queued ingest (core-only or gated) · A = archive without ingest · K = keep remote, Tier B · ✓ = ingested · ⏳ = ingest in flight · ? = needs investigation)

Module Disposition Notes
AdaptiveDenoising merged via #6235 (2026-05-08)
AnalyzeObjectLabelMap A dropped (deprecated, not ingested) via #6207 (2026-05-06)
BioCell K legacy near-dead cell-sim demo; not worth ingesting
BoneEnhancement merged via #6272 (2026-05-20)
BoneMorphometry merged via #6273 (2026-05-19)
BSplineGradient merged via #6385 (2026-06-03) → Modules/Filtering/BSplineGradient; +BUG shared-interpolator data-race fix; upstream archived 2026-06-03
Cleaver K external Cleaver dep
Cuberille merged via #6205 (2026-05-05)
CudaCommon K CUDA stack
FastBilateral merged via #6159 (2026-04-29)
FixedPointInverseDisplacementField merged via #6368 (2026-06-04) → Modules/Filtering/FixedPointInverseDisplacementField; upstream archival pending
FPFH merged via #6360 (2026-06-01) → Modules/Registration/FPFH; upstream archived 2026-06-02
GrowCut merged via #6274 (2026-05-19)
HASI K hierarchical anatomy stack
HigherOrderAccurateGradient merged via #6242 (2026-05-12)
IOFDF merged via #6215 (2026-05-05)
IOMeshMZ3 merged via #6214 (2026-05-05)
IOMeshSTL merged via #6206 (2026-05-05)
IOMeshSWC merged via #6392 (2026-06-04) → Modules/IO/IOMeshSWC; + SWC reader hardening; upstream archival pending
IOOpenSlide K OpenSlide dep
IOScanco merged via #6266 (2026-05-18)
IOTransformDCMTK merged via #6310 (2026-05-25); gated EXCLUDE_FROM_DEFAULT behind Module_ITKDCMTK
IsotropicWavelets merged via #6267 (2026-05-19)
LabelErodeDilate merged via #6171 (2026-04-30)
LesionSizingToolkit K toolkit scope
MeshNoise merged via #6161 (2026-04-29); closed #5174
MeshToPolyData merged via #6335 (2026-06-02) → Modules/Filtering/MeshToPolyData; upstream archived 2026-06-03
MinimalPathExtraction merged via #6271 (2026-05-17)
MorphologicalContourInterpolation merged via #6209 (2026-05-07); 34★ upstream
MultipleImageIterator merged via #6263 (2026-05-13)
ParabolicMorphology merged via #6260 (2026-05-13)
PerformanceBenchmarking ? clean deps; policy: core vs. separate build against installed ITK
PhaseSymmetry merged via #6270 (2026-05-19)
PolarTransform merged via #6211 (2026-05-05)
PrincipalComponentsAnalysis merged via #6240 (2026-05-09)
RANSAC merged via #6275 (2026-05-27)
RLEImage merged via #6208 (2026-05-05)
RTK K reconstruction toolkit
SCIFIO K Bio-Formats dep
Shape K reclassified 2026-06-06: keep-remote specialty module; non-ISC upstream, not ingested at this time
SimpleITKFilters A not ingested (abandoned per Tier-B; #6277 closed)
SkullStrip K toolkit scope
SmoothingRecursiveYvvGaussianFilter merged via #6243 (2026-05-13)
SphinxExamples K doc/data repo, stale since v5.3.0, 13.6 MB, BUILD_EXAMPLES-gated
SplitComponents merged via #6212 (2026-05-05)
Strain merged via #6269 (2026-05-16)
SubdivisionQuadEdgeMeshFilter merged via #6229 (2026-05-07)
TextureFeatures merged via #6238 (2026-05-09)
Thickness3D merged via #6268 (2026-05-15)
TotalVariation merged via #6381 (2026-06-06) → Modules/Filtering/TotalVariation; adds ThirdParty/proxTV ExternalProject; upstream archival pending
TractographyTRX ? vendors non-ISC trx-cpp; licensing review needed
TubeTK K toolkit scope
TwoProjectionRegistration merged via #6361 (2026-06-03) → Modules/Registration/TwoProjectionRegistration; upstream archived 2026-06-03
Ultrasound K toolkit scope
VariationalRegistration merged via #6276 (2026-05-20)
VkFFTBackend K VkFFT dep
WebAssemblyInterface K 300MB polyglot monorepo (ITK-Wasm); subtree ingest impractical

Also tracked outside Modules/Remote/:

Repo Disposition Notes
ITKNeuralNetworks ✓ archived already archived; resolves #5557
ITKTBBImageToImageFilter A archive without ingest; superseded by built-in TBB threading
Subsumed and related issues
Recent PR activity
PR State Title
#6093 merged 2026-04-23 ENH: Ingest ITKAnisotropicDiffusionLBR into Modules/Filtering
#6103 merged 2026-04-25 ENH: Ingest ITKMontage remote module into Modules/Registration/Montage
#6135 merged 2026-04-27 ENH: Ingest ITKGenericLabelInterpolator into Modules/Filtering
#6137 merged 2026-04-28 ENH: Ingest ITKMGHIO into Modules/IO
#6159 merged 2026-04-29 ENH: Ingest ITKFastBilateral into Modules/Filtering (supersedes #5134)
#6161 merged 2026-04-29 ENH: Ingest ITKMeshNoise into Modules/Filtering (closes #5174)
#6162 merged 2026-04-29 COMP: Deprecate linearizing ingest helper; add merge-preserving rewriter
#6171 merged 2026-04-30 ENH: Ingest ITKLabelErodeDilate into Modules/Filtering
#6151 merged 2026-05-01 COMP: Prune superseded GitHub Actions ccache entries from CI
#6205 merged 2026-05-05 ENH: Ingest ITKCuberille into Modules/Filtering
#6206 merged 2026-05-05 ENH: Ingest ITKIOMeshSTL into Modules/IO
#6207 merged 2026-05-06 COMP: Drop AnalyzeObjectLabelMap remote module (deprecated, not ingested)
#6208 merged 2026-05-05 ENH: Ingest ITKRLEImage into Modules/Filtering
#6209 merged 2026-05-07 ENH: Ingest ITKMorphologicalContourInterpolation (stacked on #6208)
#6211 merged 2026-05-05 ENH: Ingest ITKPolarTransform into Modules/Filtering
#6212 merged 2026-05-05 ENH: Ingest ITKSplitComponents into Modules/Filtering
#6214 merged 2026-05-05 ENH: Ingest ITKIOMeshMZ3 into Modules/IO
#6215 merged 2026-05-05 ENH: Ingest ITKIOFDF into Modules/IO
#6229 merged 2026-05-07 ENH: Ingest ITKSubdivisionQuadEdgeMeshFilter into Modules/Filtering
#6235 merged 2026-05-08 ENH: Ingest ITKAdaptiveDenoising into Modules/Filtering
#6238 merged 2026-05-09 ENH: Ingest ITKTextureFeatures into Modules/Filtering
#6240 merged 2026-05-09 ENH: Ingest ITKPrincipalComponentsAnalysis into Modules/Numerics
#6242 merged 2026-05-12 ENH: Ingest ITKHigherOrderAccurateGradient into Modules/Filtering
#6243 merged 2026-05-13 ENH: Ingest ITKSmoothingRecursiveYvvGaussianFilter into Modules/Filtering
#6260 merged 2026-05-13 ENH: Ingest ITKParabolicMorphology into Modules/Filtering
#6263 merged 2026-05-13 ENH: Ingest MultipleImageIterator into Modules/Core
#6204 merged 2026-05-12 COMP: Refine v4 ingestion pipeline — nested-if fix and global whitelist
#6266 merged 2026-05-18 ENH: Ingest ITKIOScanco into Modules/IO
#6268 merged 2026-05-15 ENH: Ingest ITKThickness3D into Modules/Filtering/Thickness3D
#6269 merged 2026-05-16 ENH: Ingest ITKStrain into Modules/Filtering/Strain
#6271 merged 2026-05-17 ENH: Ingest ITKMinimalPathExtraction into Modules/Filtering/MinimalPathExtraction
#6267 merged 2026-05-19 ENH: Ingest ITKIsotropicWavelets into Modules/Filtering
#6270 merged 2026-05-19 ENH: Ingest ITKPhaseSymmetry into Modules/Filtering/PhaseSymmetry
#6273 merged 2026-05-19 ENH: Ingest ITKBoneMorphometry into Modules/Filtering/BoneMorphometry
#6274 merged 2026-05-19 ENH: Ingest ITKGrowCut into Modules/Segmentation/GrowCut
#6276 merged 2026-05-20 ENH: Ingest ITKVariationalRegistration into Modules/Registration/VariationalRegistration
#6272 merged 2026-05-20 ENH: Ingest ITKBoneEnhancement into Modules/Filtering/BoneEnhancement
#6310 merged 2026-05-25 ENH: Ingest ITKIOTransformDCMTK into Modules/IO
#6275 merged 2026-05-27 ENH: Ingest ITKRANSAC into Modules/Registration/RANSAC
#6360 merged 2026-06-01 ENH: Ingest ITKFPFH into Modules/Registration
#6335 merged 2026-06-02 ENH: Ingest ITKMeshToPolyData into Modules/Filtering
#6378 merged 2026-06-02 COMP: Fail configure on orphaned remote-module source clones
#6384 merged 2026-06-03 COMP: Remove deprecated v3 ingest-remote-module.sh driver
#6385 merged 2026-06-03 ENH: Ingest ITKBSplineGradient into Modules/Filtering
#6361 merged 2026-06-03 ENH: Ingest TwoProjectionRegistration remote module
#6368 merged 2026-06-04 ENH: Ingest ITKFixedPointInverseDisplacementField into Modules/Filtering
#6392 merged 2026-06-04 ENH: Ingest ITKIOMeshSWC into Modules/IO (with SWC reader hardening)
#6381 merged 2026-06-06 ENH: Ingest ITKTotalVariation into Modules/Filtering (with ITKproxTV third-party module)
#6277 closed ENH: Ingest ITKSimpleITKFilters (abandoned per Tier-B disposition)
#6085 closed ENH: Add Modules/Beta/ container (alternative approach abandoned in favor of natural-group ingest)
#6086 closed WIP: Ingest 10 beta modules under Modules/Beta/ (stacked on #6085, abandoned)
#6072 closed WIP: REMOTE_MODULE_TEST DCMTK external module compatibility (parked)
#6061 closed WIP: Combine many remote to few remote module groups (alternative approach abandoned)
#5134 closed dzenanz's original FastBilateral integration (superseded by #6159)

Metadata

Metadata

Assignees

Labels

area:CoreIssues affecting the Core moduletype:EnhancementImprovement of existing methods or implementationtype:InfrastructureInfrastructure/ecosystem related changes, such as CMake or buildbots

Type

No type
No fields configured for issues without a type.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions