-
-
Notifications
You must be signed in to change notification settings - Fork 640
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
Proposal: consider dropping support for macOS 10.15 & macOS 11 #21074
Comments
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? |
Given GitHub is deprecating its macOS 12 runners (https://github.blog/changelog/2024-08-19-notice-of-upcoming-deprecations-and-breaking-changes-in-github-actions-runners/), I briefly investigated whether we could just jump to 13+ (https://en.wikipedia.org/wiki/MacOS_Ventura#Supported_hardware, https://support.apple.com/en-us/102861):
This seems like a significant jump, so worth doing macOS 12 alone if we can. |
Deprecation of stuff in the Apple ecosystem is such a pain in general. Mostly because I do a lot of iOS development and Apple doesn't like to backport new functionality. Anyways, when it comes to dev tooling on Mac (and other platforms to varying degrees), my policy tends to be: If Apple no longer releases security patches, then I'm less likely to support the system. I'm not a fan of a hard break, unless it'll really speed up the code or remove a ton of cruft - so more of a deprecation and "we haven't tested it in CI, but it 'should' work" Apple has their own terminology for HW deprecation (it's a bit more nuanced than this, but it's a good guide): https://support.apple.com/en-us/102772
OS deprecation isn't 1:1 with this list, but it's usually a pretty good indicator of batches of machines that will be deprecated together. Though, it's worth noting that commonly "obsoleted" or "vintage" Mac hardware end up as CI systems 🤷🏽 Overall, unless there is a specific dependency issue (which can crop up given the number of deps we use), my vote is for deprecation via "It's not tested in CI anymore, your mileage may vary" and then handle bugs on old OSes on a case-by-case (and honestly, unless it's a security bug, I wouldn't handle it). |
This follows-up on the deprecation of support for older macOS versions that happened in 2.24.x and earlier, by switching `main` (2.25.x) to be building on macOS 13 for x86-64 (upgrading from 10.15) and macOS 14 for arm64 (upgrading from 11). These particular versions are dictated by Github's hosted runners: there's no arm64 macos-13 runners. | version | branch | supported (x86-64) | built-on (x86-64) | supported (arm64) | built-on (arm64) | refs | | |---------|--------|--------------------|---------------------|-------------------|------------------|---------------------------------------------|--------| | 2.22.x | 2.22.x | 10.15 | 10.15 (self-hosted) | 11 | 11 (self) | #21074 | #21326 | | 2.23.x | 2.23.x | 12 | 10.15 (self) | 12 | 11 (self) | #21569 (also #21417 but reverted in #21623) | | | 2.24.x | 2.24.x | 13 | 10.15 (self) | 14 | 11 (self) | #21333, #21623 | | | 2.25.x | main | 13 | 13 (Github hosted) | 14 | 14 (GH) | #21333, #21413, this PR | | This is _preparation_ for scaling down our self-hosted macOS runners, but we cannot do that yet. They're still used by: - 2.24.x branches and earlier (in this repo) - scie-pants' CI (pantsbuild/scie-pants#421) Thus, we at least need to wait a few months for the 2.24.x milestone to be closed before we can reduce that spend. (NB. despite the title, this doesn't _start_ testing on arm64 macOS: see separate issue #20993.) Fixes #21413 Fixes #21333
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:
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:
We'd be losing support for this hardware:
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:
In particular, all of these M1 items from the 11 list, also appear in the 14 list:
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
Additional context
Background about why we use these self-hosted runners:
Related issues:
The text was updated successfully, but these errors were encountered: