ITK icon indicating copy to clipboard operation
ITK copied to clipboard

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

Open thewtex opened this issue 5 months ago • 8 comments

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 systems^2.
  • Current ITK Python builds default to macOS 10.9 (Intel), macOS 10.11 (ARM), which are no longer receiving security updates^2.

2. C++17 and SDK Compatibility

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

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 gaps^1^10.

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
    • Update macOS runners with macos-15+ runners^1 We may need self-hosted runners for Intel support (#5326).
  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 ^1.

Supporting Data

Key Point Source
macOS 10.15 security EOL: June 2025 ^2
C++17 <filesystem> requires 10.15 ^4^10
Xcode 15+ enforces 10.13+ targets ^6

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

thewtex avatar May 28 '25 22:05 thewtex