Skip to content

ITK 5.4.8 tag? #6859

Description

@blowekamp

Hello,

Could we get a 5.4.8 release tag in the coming weeks?

I am looking to do a patch release of SimpleITK in-part to support Python 3.15. There are some very useful bug fixes in the release-5.4 branch that would be good to incorporate. It is much preferred to do a SimpleITK release against an ITK tag than a hash.

Thanks.

Activity

  1. dzenanz commented on Sep 11, 2026

    @dzenanz
    Member

    I am in favor of this. I especially want PR #6856 in it.

  2. hjmjohnson commented on Sep 16, 2026

    @hjmjohnson
    Member

    In preparation for 5.4.8, these recent main fixes will be tried as backports. Please reply with any that should NOT be attempted before the 5.4.8 tag.

    Updated after @dzenanz's review: behavior changes are excluded from the patch release.

    To be tried for backporting

    PR Fix Expected effort Backport
    #6829 HDF5ImageIO: set VECTOR pixel type when inferring components Library code applies cleanly; GTest needs porting #6866 (merged)
    #6704 Correct superclass asserted for LabelOverlapMeasuresImageFilter Clean #6869 (draft)
    #6821 Mangle libpng symbols added since last vendored update Clean #6871 (draft, NEON symbols only)
    #6822 Pass /Zc:__cplusplus to SWIG wrappers with MSVC One-line conflict #6864 (merged)
    #6776 Declare NrrdIO's Threads dependency in exported config Small conflict Not needed: NrrdIO on 5.4 has no Threads dependency (it came with #6695)
    #6717 Array SetData invoked with wrong parameter types GTest needs porting #6868 (draft)
    #6682 Recognize native big-endian single-precision MATLAB headers Test CMake conflict #6870 (draft)

    Not to be backported (behavior changes)

    PR Fix Reason
    #6771 Python: map np.int64 to itk.int64_t instead of itk.SL Behavior change (@dzenanz)
    #6783 Python: initialize_c_types_once ordering (UI/UL/ULL/SLL) Depends on #6771 and changes type resolution the same way
    #6759 MultiLabelSTAPLE: integer counting in prior init Behavior change (@dzenanz)
    #6633 PatchBasedDenoising: wraparound, NaN, and max-tracker seeding Behavior change (@dzenanz)
    #6683 NIfTI: preserve non-finite pixel values on read Behavior change (@dzenanz)
    #6835 MetaIO update (2026-09-04), including memory-safety hardening Behavior change (@dzenanz)
    Considered but not proposed
  3. blowekamp commented on Sep 16, 2026

    @blowekamp
    MemberAuthor

    The proposal looks good. Just double check the patches on third-party libraries by verifying the vendored version in release matches what was in main brach where the patch was done.

  4. dzenanz commented on Sep 16, 2026

    @dzenanz
    Member

    #6771 is a behavior change. I am not sure whether we should do that in a patch release. Same reservation holds for all tier 2 PRs.

  5. added this to the ITK 5.4.8 milestone on Sep 17, 2026
  6. blowekamp commented on Sep 25, 2026

    @blowekamp
    MemberAuthor

    I am going to work on #6904 to see if it can be back ported too.

  7. blowekamp commented on Sep 29, 2026

    @blowekamp
    MemberAuthor

    @hjmjohnson @thewtex @dzenanz Any remaining items before the patch tag is made?

  8. dzenanz commented on Sep 29, 2026

    @dzenanz
    Member
  9. blowekamp commented on Sep 29, 2026

    @blowekamp
    MemberAuthor

    The ITKPythonPackaging is hopefully independent of the main ITK repository. #6891 looks like a larger effort needing more time and testing before it'd be ready for back porting to the release-5.4 branch. Hopefully, ITK Python will be able to be packaged the same way as the prior patch release.

    I am looking to do a patch release of SimpleITK with changed in the release-5.4 branch.

  10. dzenanz commented on Sep 29, 2026

    @dzenanz
    Member

    You are absolutely right. I confused 6.0RC1 with 5.4.8 😕

  11. blowekamp commented on Sep 29, 2026

    @blowekamp
    MemberAuthor

    An RC is needed too! But for that ensuring python packaging is a requirement. Is there already an issue with a burn down chart/list?

  12. dzenanz commented on Sep 29, 2026

    @dzenanz
    Member

    That is complete. I guess all that's left is for someone to go through the release checklist.

  13. dzenanz commented on Sep 29, 2026

    @dzenanz
    Member
  14. thewtex commented on Sep 30, 2026

    @thewtex
    Member

    I created #6920 to track progress.

    Are there any other patches needed?

  15. blowekamp commented on Sep 30, 2026

    @blowekamp
    MemberAuthor

    I have run into a failure in SimpleITK with the release-5.4 branch related to concurrent IO I am investigating this morning. I am suspicious of cf983db, but was not easily able to reproduce locally as easily as it started to fail in GHA.

  16. blowekamp commented on Oct 3, 2026

    @blowekamp
    MemberAuthor

    In SimpleITK/SimpleITK#2292 there is a nice request for back port of #5357.

    There has been some isolation of this behavior through ITK versions (documented in the linked issue), there is a needed decision with of a trade off between "correct" behavior and stable incorrect behavior that needs to be made.

    EDIT: corrected ITK PR number.

  17. dzenanz commented on Oct 3, 2026

    @dzenanz
    Member

    Are you sure you meant 2292? It is about updating KWSys.

  18. zhurong2020 commented on Oct 3, 2026

    @zhurong2020

    Hi @blowekamp and @dzenanz,

    Following up on SimpleITK/SimpleITK#2292 (comment), here is our request for this release discussion.

    @dzenanz, the bug report is SimpleITK/SimpleITK#2292 and the merged ITK fix is #5357. Bradley's comment now also has the corrected PR number.

    In our synthetic axial reproduction, read in the default GetGDCMSeriesFileNames order, negative SpacingBetweenSlices (0018,0088) leaves the voxel planes in ascending ImagePositionPatient order but gives direction[2,2] = -1: reported physical z positions decrease while the IPP values increase. SimpleITK 2.5.6 (ITK 5.4) produces this result; SimpleITK 2.3.1 (ITK 5.3) and development build 3.0.0b1.post230 (ITK 6.0) give +1. The full tested-version matrix is at SimpleITK/SimpleITK#2292 (comment). We tested SimpleITK builds, not ITK directly; we have not built or tested ITK release-5.4 with #5357 applied.

    As checked on 2026-10-03 at 16:37 UTC, release-5.4 (b3abd15) lacks the direction-sign correction in itkImageSeriesReader.hxx. We found no backport PR or 5.4.8 tag; PyPI's latest stable SimpleITK is still 2.5.6.

    We understand the decision to exclude behavior changes from 5.4.8. For consideration: with ForceOrthogonalDirection enabled, #5357 flips the slice-axis direction column only when its dot product with the first-to-last slice position vector is negative. The new code leaves an already consistent direction column unchanged. For our affected axial input, the corrected development-build result matches the ITK 5.3-based SimpleITK build; we are not attributing the 5.3/5.4 difference to a regression in itkImageSeriesReader.hxx. Code compensating for the existing 5.4 result could be affected, so the backport decision remains yours.

    The library-code change is confined to ImageSeriesReader::GenerateOutputInformation(). Its new GTests would need integration or adaptation: the current release-5.4 GDCM test CMake file has no GoogleTest driver.

    If a backport is inappropriate, a known-issue note in the ITK 5.4.8 and/or SimpleITK 2.5.x release notes would help. ForceOrthogonalDirectionOff() corrects our axial case in SimpleITK 2.5.6; we have not validated it for other orientations. We would be glad to run the synthetic reproduction against a backport build:
    https://gist.github.com/zhurong2020/563f974baaf33c30f910f98c4d06ebad

    Thank you.

  19. blowekamp commented on Oct 7, 2026

    @blowekamp
    MemberAuthor

    The PR for the back port is here: #6930

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions