pantsbuild / pants

The Pants Build System
https://www.pantsbuild.org
Apache License 2.0
3.19k stars 613 forks source link

Proposal: consider dropping support for macOS 10.15 & macOS 11 #21074

Open huonw opened 2 weeks ago

huonw commented 2 weeks ago

Is your feature request related to a problem? Please describe.

Our releases currently support machines running old versions of macOS:

To support these, we use dedicated physical machines, hosted in MacStadium. These self-hosted runners have a few downsides:

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: | version | first released | last update | |---|---|---| | 10.15 | Oct 2019 | Jul 2022 | | 11 | Nov 2020 | Sep 2023 | | 12 | Oct 2021 | May 2024 | | 13 | Oct 2022 | May 2024| | 14 | Sep 2023 | May 2024 | | 15 | just announced, not yet released | - | 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_requirements - https://en.wikipedia.org/wiki/MacOS_Monterey#Supported_hardware
| Machine | Supported in 10.15 | Supported in 12 | More restrictive? | |-------------|---------------------|---------------------|-------------------| | iMac | Late 2012 or later | Late 2015 | yes | | iMac Pro | 2017 | 2017 | | | MacBook | Early 2015 or later | Early 2016 or later | yes | | MacBook Air | Mid 2012 or later | Early 2015 or later | yes | | MacBook Pro | Mid 2012 or later | Early 2015 or later | yes | | Mac Mini | Late 2012 or later | Late 2014 or later | yes | | Mac Pro | Late 2013 or latre | Late 2013 or before | | | Mac Studio | - | 2022 | |
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

If we did this, we'd lose support for this hardware:

(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:

huonw commented 2 weeks ago

Before we commit to this, we may also want to confirm the reliability/performance/etc of the GitHub-hosted runners: maybe they have major problems and self-hosted one is significantly better?