ITK
ITK copied to clipboard
Proposal to Update ITK's Minimum macOS Deployment Target to 10.15 (Catalina)
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
- Update Minimum Deployment Target
- Set
MACOSX_DEPLOYMENT_TARGETto 10.15 for ITK 6.x in Python wheels. - Document 10.15 as the new baseline for macOS support.
- Set
- CI/CD Pipeline Updates
- Update macOS runners with
macos-15+ runners^1 We may need self-hosted runners for Intel support (#5326).
- Update macOS runners with
- C++17 Modernization
- Replace deprecated headers (e.g.,
<experimental/filesystem>) with standard C++17 equivalents.
- Replace deprecated headers (e.g.,
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
- Are there critical use cases requiring macOS <10.15?
- 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