-
-
Notifications
You must be signed in to change notification settings - Fork 713
Description
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
- 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+ runners98 We may need self-hosted runners for Intel support (Proposal for macOS Intel Support deprecation timeline in ITK 6 (Retained in ITK 5) #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
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
- 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
Footnotes
-
https://access.tufts.edu/macos-1015-support-ends-june-30-2025-take-action-now ↩ ↩2 ↩3
-
https://cibuildwheel.pypa.io/en/stable/cpp_standards/ ↩ ↩2 ↩3
-
https://forum.juce.com/t/c-17-minimum-deployment-target/32109 ↩ ↩2
-
https://github.com/nlohmann/json/issues/3156 ↩ ↩2 ↩3
-
https://forum.juce.com/t/fix-for-using-c-11-features-with-osx-10-7-deployment-target/25247 ↩
-
https://github.com/apple/swift/issues/68163 ↩ ↩2 ↩3
-
https://github.com/sparkle-project/Sparkle/issues/2186 ↩ ↩2 ↩3
-
https://github.com/InsightSoftwareConsortium/ITK/issues/5326 ↩ ↩2 ↩3
-
https://computercity.com/desktops/mac/how-long-will-intel-macs-be-supported ↩