Skip to content

ENH: Ingest ITKLabelErodeDilate into Modules/Filtering#6171

Merged
hjmjohnson merged 141 commits intoInsightSoftwareConsortium:mainfrom
hjmjohnson:ingest-LabelErodeDilate
Apr 30, 2026
Merged

ENH: Ingest ITKLabelErodeDilate into Modules/Filtering#6171
hjmjohnson merged 141 commits intoInsightSoftwareConsortium:mainfrom
hjmjohnson:ingest-LabelErodeDilate

Conversation

@hjmjohnson
Copy link
Copy Markdown
Member

Ingest the ITKLabelErodeDilate remote module into Modules/Filtering/LabelErodeDilate/, preserving upstream git blame via a --no-ff filter-repo merge per INGESTION_STRATEGY.md. Tracked under master issue #6160 (Wave 1).

Validation gates (all passed locally)
Gate Result
Merge topology (rule: ≥1 merge in upstream/main..HEAD) 28 merges preserved
verify-cid-access.sh (18 .cid content links) All resolved
pre-commit run --all-files post-autosquash Clean
pixi run -e cxx configure-ci Configured
Build LabelErodeDilate-all (3402 targets) 0 errors
Tests itkLabel(Dilate|Erode)Test* 6/6 passed
Commit topology

Off upstream/main (b10b293775):

  • 138 historical upstream commits (filter-repo'd whitelist; 28 merge commits preserved via --rebase-merges autosquash)
  • ENH: Ingest ITKLabelErodeDilate into Modules/Filtering — 2-parent merge
  • DOC: Add README for in-tree LabelErodeDilate; drop remote fetch — adds Modules/Filtering/LabelErodeDilate/README.md, removes Modules/Remote/LabelErodeDilate.remote.cmake, adds -DModule_LabelErodeDilate:BOOL=ON to pyproject.toml configure-ci
  • STYLE: Apply gersemi + trim trailing whitespace to LabelErodeDilate — also replaces upstream's file(READ README.rst) (which was a dangling reference — README.rst never existed upstream) with inline set(DOCUMENTATION ...) matching the MeshNoise/FastBilateral pattern
Post-merge follow-ups
  1. Archival PR on InsightSoftwareConsortium/ITKLabelErodeDilate: delete whitelisted files, add MIGRATION_README.md, mark repo Archived.
  2. Update master tracker ENH: Master tracking — Remote-module ingestion, archival, and consolidation #6160 (check off LabelErodeDilate in Wave 1).

jhlegarreta and others added 15 commits March 1, 2025 19:38
Use medial capitals for variable naming in C++ code. Avoid underscores.
…ormToITKLocalVbleNamingStyle

STYLE: Conform to ITK local variable naming style
…oveTestsStyle

STYLE: Miscellaneous style improvements to tests
Co-author: Jon Haitz Legarreta Gorroño <jon.haitz.legarreta@gmail.com>
…lgrind_uninitialized

BUG: Fix Valgrind defect with uninitialized array in doOneDimensionErode
Initialize all arrays in `LabelSetUtils.h` file.
…ializeAllArrays

ENH: Initialize all arrays in `LabelSetUtils.h` file
…acro

Added two new macro's, intended to replace the old 'itkTypeMacro' and
'itkTypeMacroNoParent'.

The main aim is to be clearer about what those macro's do: add a virtual
'GetNameOfClass()' member function and override it. Unlike 'itkTypeMacro',
'itkOverrideGetNameOfClassMacro' does not have a 'superclass' parameter, as it
was not used anyway.

Note that originally 'itkTypeMacro' did not use its 'superclass' parameter
either, looking at commit 699b66c, Will
Schroeder, June 27, 2001:
https://github.com/InsightSoftwareConsortium/ITK/blob/699b66cb04d410e555656828e8892107add38ccb/Code/Common/itkMacro.h#L331-L337
Remove unused variable.

Fixes:
```
Modules/Remote/LabelErodeDilate/include/itkLabelSetUtils.h:260:37:
 warning: unused variable 'initPixelValue' [-Wunused-variable]

  260 |   const typename TInIter::PixelType initPixelValue = 0.0;
      |                                     ^~~~~~~~~~~~~~
```

raised for example in:
https://open.cdash.org/viewBuildError.php?type=1&buildid=10316578

Introducing the variable was an oversight in commit 82097b4.
…nusedVariableWarning

COMP: Remove unused variable
Following ITK pull request InsightSoftwareConsortium#5692
"Deprecate `MultiThreaderType` aliases, use `MultiThreaderBase` directly"
Migrate ExternalData tag files to CIDv1-raw form.

The CID blobs are added to ITKTestingData gh-pages in
InsightSoftwareConsortium/ITKTestingData#43.
Brings LabelErodeDilate from a configure-time remote fetch into the ITK
source tree at Modules/Filtering/LabelErodeDilate/ using the v3 whitelist
filter-repo pipeline.

Upstream repo: https://github.com/InsightSoftwareConsortium/ITKLabelErodeDilate.git
Upstream tip:  535848354f8a58cde85dee0fef76619ce7eed38e
Ingest date:   2026-04-29

Whitelist passes (git filter-repo):
  - --path include --path src --path test --path wrapping
  - --path CMakeLists.txt --path itk-module.cmake
  - --to-subdirectory-filter Modules/Filtering/LabelErodeDilate
  - --prune-empty always
  - (if present) second pass: invert CTestConfig.cmake

Outcome: 202 upstream commits -> 138 surviving;
18 distinct authors preserved; git blame walks across the
merge boundary to original authors.

Content-link inventory: .md5=0  .shaNNN=0  .cid=18

Primary author: Richard Beare <richard.beare@monash.edu>

Co-authored-by: Bradley Lowekamp <blowekamp@mail.nih.gov>
Co-authored-by: Dženan Zukić <dzenan.zukic@kitware.com>
Co-authored-by: Francois Budin <francois.budin@kitware.com>
Co-authored-by: Hans J. Johnson <hans-johnson@uiowa.edu>
Co-authored-by: Hans Johnson <hans-johnson@uiowa.edu>
Co-authored-by: Jerome Avondo <jeromeavondo@msn.com>
Co-authored-by: Jon Haitz Legarreta <jhlegarreta@vicomtech.org>
Co-authored-by: Jon Haitz Legarreta Gorroño <jhlegarreta@vicomtech.org>
Co-authored-by: Jon Haitz Legarreta Gorroño <jon.haitz.legarreta@gmail.com>
Co-authored-by: Mathew J. Seng <mathewseng@gmail.com>
Co-authored-by: Mathew Seng <mathewseng@gmail.com>
Co-authored-by: Matt McCormick <matt.mccormick@kitware.com>
Co-authored-by: Matt McCormick <matt@mmmccormick.com>
Co-authored-by: Niels Dekker <N.Dekker@lumc.nl>
Co-authored-by: Richard Beare <Richard.Beare@gmail.com>
Co-authored-by: Richard Beare <Richard.Beare@ieee.org>
Co-authored-by: Tom Birdsong <tom.birdsong@kitware.com>
Add Modules/Filtering/LabelErodeDilate/README.md documenting the
ingested module and pointing at the upstream archive, remove
Modules/Remote/LabelErodeDilate.remote.cmake, and add
-DModule_LabelErodeDilate:BOOL=ON to the pyproject.toml configure-ci
task so the in-tree module is exercised on every CI run.
@github-actions github-actions Bot added type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Enhancement Improvement of existing methods or implementation area:Python wrapping Python bindings for a class type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct area:Filtering Issues affecting the Filtering module area:Remotes Issues affecting the Remote module type:Data Changes to testing data labels Apr 29, 2026
@hjmjohnson hjmjohnson marked this pull request as ready for review April 29, 2026 23:34
@dzenanz
Copy link
Copy Markdown
Member

dzenanz commented Apr 30, 2026

Commit prefixes and whitespaces seem to not have been applied, the rest looks good. Acceptable even as-is.

@hjmjohnson hjmjohnson merged commit 690015c into InsightSoftwareConsortium:main Apr 30, 2026
16 of 17 checks passed
@hjmjohnson hjmjohnson added this to the ITK 6.0 Release Candidate 1 milestone May 5, 2026
hjmjohnson added a commit to hjmjohnson/ITK that referenced this pull request May 6, 2026
…est-LabelErodeDilate

ENH: Ingest ITKLabelErodeDilate into Modules/Filtering
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:Filtering Issues affecting the Filtering module area:Python wrapping Python bindings for a class area:Remotes Issues affecting the Remote module type:Data Changes to testing data type:Enhancement Improvement of existing methods or implementation type:Infrastructure Infrastructure/ecosystem related changes, such as CMake or buildbots type:Testing Ensure that the purpose of a class is met/the results on a wide set of test cases are correct

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants