pantsbuild / pants

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

Test and release on newer macOS: 13 (x86-64) and 14 (arm64) #21655

Closed huonw closed 3 days ago

huonw commented 4 days ago

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:

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

huonw commented 4 days ago

(I'm going to leave this one until after 2.25.0.dev0 is released, to reduce how many release-related things we're changing in one go / hopefully make it easier to bisect/debug if there's problems. #21528 and #21650 are already on main and waiting for the .dev0 release.)

huonw commented 3 days ago

(I'm going to leave this one until after 2.25.0.dev0 is released, to reduce how many release-related things we're changing in one go / hopefully make it easier to bisect/debug if there's problems. https://github.com/pantsbuild/pants/pull/21528 and https://github.com/pantsbuild/pants/pull/21650 are already on main and waiting for the .dev0 release.)

Nevermind, this is blocking CI currently (including doing that release) due to brownouts: https://github.com/actions/runner-images/issues/10721

So, I'll merge and we can just spend a bit more effort debugging in future, if we need to.

huonw commented 3 days ago

Ah, and I'll mark it for cherrypicking. We don't want to cherrypick the whole change, but at least the complete removal of the macOS-12 runners.

WorkerPants commented 3 days ago

I tried to automatically cherry-pick this change back to each relevant milestone, so that it is available in those older releases of Pants.

:x: 2.22.x

I was unable to cherry-pick this PR to 2.22.x, likely due to merge-conflicts.

Steps to Cherry-Pick locally To resolve: 1. (Ensure your git working directory is clean) 2. Run the following script to reproduce the merge-conflicts: ```bash git fetch https://github.com/pantsbuild/pants main \ && git fetch https://github.com/pantsbuild/pants 2.22.x \ && git checkout -b cherry-pick-21655-to-2.22.x FETCH_HEAD \ && git cherry-pick 691d39619ac9e863d757b2cebcda71532ec6ae9c ``` 3. Fix the merge conflicts and commit the changes 4. Run `build-support/cherry_pick/make_pr.sh "21655" "2.22.x"` Please note that I cannot re-run CI if a job fails. Please work with your PR approver(s) to re-run CI if necessary.

:x: 2.23.x

I was unable to cherry-pick this PR to 2.23.x, likely due to merge-conflicts.

Steps to Cherry-Pick locally To resolve: 1. (Ensure your git working directory is clean) 2. Run the following script to reproduce the merge-conflicts: ```bash git fetch https://github.com/pantsbuild/pants main \ && git fetch https://github.com/pantsbuild/pants 2.23.x \ && git checkout -b cherry-pick-21655-to-2.23.x FETCH_HEAD \ && git cherry-pick 691d39619ac9e863d757b2cebcda71532ec6ae9c ``` 3. Fix the merge conflicts and commit the changes 4. Run `build-support/cherry_pick/make_pr.sh "21655" "2.23.x"` Please note that I cannot re-run CI if a job fails. Please work with your PR approver(s) to re-run CI if necessary.

:x: 2.24.x

I was unable to cherry-pick this PR to 2.24.x, likely due to merge-conflicts.

Steps to Cherry-Pick locally To resolve: 1. (Ensure your git working directory is clean) 2. Run the following script to reproduce the merge-conflicts: ```bash git fetch https://github.com/pantsbuild/pants main \ && git fetch https://github.com/pantsbuild/pants 2.24.x \ && git checkout -b cherry-pick-21655-to-2.24.x FETCH_HEAD \ && git cherry-pick 691d39619ac9e863d757b2cebcda71532ec6ae9c ``` 3. Fix the merge conflicts and commit the changes 4. Run `build-support/cherry_pick/make_pr.sh "21655" "2.24.x"` Please note that I cannot re-run CI if a job fails. Please work with your PR approver(s) to re-run CI if necessary.

When you're done manually cherry-picking, please remove the needs-cherrypick label on this PR.

Thanks again for your contributions!

:robot: Beep Boop here's my run link