Skip to content

Proposal to Update ITK's Minimum macOS Deployment Target to 10.15 (Catalina) #5369

@thewtex

Description

@thewtex

Rationale

1. Apple’s Deprecation of Older macOS Versions

  • macOS 10.15 (Catalina) loses security support on June 30, 2025, creating vulnerabilities for users on older systems1.
  • Current ITK Python builds default to macOS 10.9 (Intel), macOS 10.11 (ARM), which are no longer receiving security updates12.

2. C++17 and SDK Compatibility

  • Full C++17 support (e.g., <filesystem>, <variant>) requires macOS 10.15 or newer345.
  • Legacy deployment targets (e.g., 10.9–10.13) force workarounds like <experimental/filesystem>, increasing maintenance complexity36.
  • Modern compilers (Xcode 15+) and SDKs increasingly enforce stricter compatibility checks, causing build failures on older targets78.

3. Compiler Optimizations

  • Newer macOS SDKs enable advanced optimizations (e.g., autovectorization, LTO) that are restricted on older deployment targets.

4. Maintenance Burden

  • Third-party projects (e.g., PyTorch) are dropping support for macOS <10.15, creating compatibility gaps975.

Proposed Changes

  1. Update Minimum Deployment Target
    • Set MACOSX_DEPLOYMENT_TARGET to 10.15 for ITK 6.x in Python wheels.
    • Document 10.15 as the new baseline for macOS support.
  2. CI/CD Pipeline Updates
  3. C++17 Modernization
    • Replace deprecated headers (e.g., <experimental/filesystem>) with standard C++17 equivalents.

Impact Mitigation

  • LTS Branch: Maintain ITK 5.x with macOS 10.9 support for legacy workflows 910.

Supporting Data

Key Point Source
macOS 10.15 security EOL: June 2025 12
C++17 <filesystem> requires 10.15 345
Xcode 15+ enforces 10.13+ targets 78

Request for Feedback

  1. Are there critical use cases requiring macOS <10.15?
  2. Concerns about dependency compatibility (e.g., hardware drivers)?

Proposed timeline: Target ITK 6.0 (2025) to align with macOS 10.15’s security EOL.

CC @seanm @blowekamp @hjmjohnson @cookpa @imikejackson @SimonRit @jcfr @jamesobutler

Footnotes

  1. https://access.tufts.edu/macos-1015-support-ends-june-30-2025-take-action-now 2 3

  2. https://discussions.apple.com/thread/255690857 2

  3. https://cibuildwheel.pypa.io/en/stable/cpp_standards/ 2 3

  4. https://forum.juce.com/t/c-17-minimum-deployment-target/32109 2

  5. https://github.com/nlohmann/json/issues/3156 2 3

  6. https://forum.juce.com/t/fix-for-using-c-11-features-with-osx-10-7-deployment-target/25247

  7. https://github.com/apple/swift/issues/68163 2 3

  8. https://github.com/sparkle-project/Sparkle/issues/2186 2 3

  9. https://github.com/InsightSoftwareConsortium/ITK/issues/5326 2 3

  10. https://computercity.com/desktops/mac/how-long-will-intel-macs-be-supported

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:CompilerCompiler support or related warningstype:PerformanceImprovement in terms of compilation or execution time

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions