<#21074 Proposal: consider dropping support for ma...
# github-notifications
c
#21074 Proposal: consider dropping support for macOS 10.15 &amp; macOS 11 Issue created by huonw Is your feature request related to a problem? Please describe. Our releases currently support machines running old versions of macOS: • macOS 10.15 or newer, on x86-64 • macOS 11 or newer, on arm64 To support these, we use dedicated physical machines, hosted in MacStadium. These self-hosted runners have a few downsides: • cost: the Pantsbuild project pays for them directly • fragility: they semi-regularly stop running jobs and require rebooting, and occasionally have their disk filled. • limited resources: there's only a single instance, so they cannot sensibly by used for running tests on every PR (#20993) There's also a theoretical downside where we have to do backflips to support the older platforms (e.g. work around bugs that are fixed in newer versions). I haven't personally observed this for Pants yet, but it's theoretically possible, and maybe someone else has! According to the GitHub Actions docs the supported macOS runners are versions 12 & 13 on x86-64, and 14 on arm64. It seems that Apple only supports version 12 and newer, not 10.15 or 11. Expand for details on macOS versions macOS has apparently had https://en.wikipedia.org/wiki/MacOS_version_history#Releases this release schedule: This suggests that 12+ are supported by Apple and 10.15 and 11 are not. Expand for details on hardware support x86-64 Using Github-hosted runners would require moving from 10.15 to 12. The supported platforms seem to be: • https://en.wikipedia.org/wiki/MacOS_Catalina#System_requirementshttps://en.wikipedia.org/wiki/MacOS_Monterey#Supported_hardware We'd be losing support for this hardware: • iMacs, MacBook Airs, MacBook Pros before 2015 • Macbooks before 2016 • Mac Mini before 2014 We'd also break people who haven't upgraded to macOS 12 or newer. Arm64 Using Github-hosted runners would require moving from 11 to 14. It seems that macOS-14 supports all arm64 machines: • 11: https://support.apple.com/en-au/103111 • 14: htps://support.apple.com/en-us/105113 In particular, all of these M1 items from the 11 list, also appear in the 14 list: • MacBook Pro (13-inch, M1, 2020) • MacBook Air (M1, 2020) • iMac (24-inch, M1, 2021) • Mac mini (M1, 2020) So, we won't break hardware, except if someone hasn't upgraded to macOS 14. Describe the solution you'd like • Add code to pants that detects when it is running on an older platform with a deprecation message, that specifically includes a request for feedback if people need that support • After that has been released for a version or two, just start building on the newer versions (12 for x86-64, 14 for arm64), dropping support for the older ones. If we did this, we'd lose support for this hardware: • iMacs, MacBook Airs, MacBook Pros before 2015 • Macbooks before 2016 • Mac Mini before 2014 (NB. this is all x86-65. We don't lose support for any arm64 hardware.) We'd also break people who haven't upgraded to macOS 12 or newer on x86-64, or macOS 14 or newer on arm64. Describe alternatives you've considered 1. Make macOS 12 the minimum supported version for both x86-64 and arm64. This means we could drop the self-hosted x86-64 runner, but would retain the arm64 one for now. 2. Continue supporting old platforms ~forever => seems untenable, as we'll be spending effort and energy supporting a decreasing number of users, potentially zero! 3. Just do a hard break: versions 10.15 and 11 are not supported by apple, so we could potentially break support for them right now => seems a bit unnecessary as we have a set-up that works tolerably well, and can continue with it for a while Additional context Background about why we use these self-hosted runners:
It’s about compatibility (with client’s version of Mac OS) and stability (runner availability). Now that GH offers Mac OS ARM runners, it may be time to consider dropping support for older Mac OS versions, if we find the runners reliable enough.
Related issues: • #20993#20193 pantsbuild/pants