Skip to content

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
thewtex opened this issue May 28, 2025 · 2 comments
Open
Labels
type:Compiler Compiler support or related warnings type:Performance Improvement in terms of compilation or execution time

Comments

@thewtex
Copy link
Member

thewtex commented May 28, 2025

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

@seanm
Copy link
Contributor

seanm commented May 30, 2025

This is ok for me. I've therefore retired the Rogue22 bot from submitting to CDash. You can unexpect it now.

@dzenanz
Copy link
Member

dzenanz commented May 30, 2025

You can unexpect it now

Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:Compiler Compiler support or related warnings type:Performance Improvement in terms of compilation or execution time
Projects
None yet
Development

No branches or pull requests

3 participants