Use macos-26 runners and test on Intel/ARM#2348
Use macos-26 runners and test on Intel/ARM#2348sirosen wants to merge 2 commits intojazzband:mainfrom
Conversation
In the matrix config, separate the notions of "os.name" (the nice name shown in the CI GUI) from "os.runs_on" (the value used for selecting the runner). They are still aligned after this change, but can now be manipulated independently.
Pin the macOS CI runners specifically to `macos-26` and `macos-26-intel`.
|
This appears to be working as desired, but I find the results in CI wall clock time a bit concerning. I'm also worried that by increasing the number of builds by so much, we're increasing the changes of flaky failures. We want to solve those anyway, but "want to fix" != "have fixed". Many projects consider it sufficient to test their max and min Python versions on Windows and macOS. I think I would be comfortable doing that at least for these new Intel-mac builds, to keep CI times more under control. It would require refactoring the job config a bit, but I think it's necessary. |
|
I had an idea some time ago inspired by what CPython does with buildbots on exotic OS/hardware variants but haven't tried it yet. What they do is they run testing at some point post-merge due to resource availability. And if something fails, PRs get a comment with a link to the failure. The authors are supposed to fix it within 24 hours or a PR gets reverted. The gist of what I'm considering is that we have a separate matrix for slow jobs that isn't tied into alls-green. That matrix has a special GitHub Environment assigned ( One corner case to think of is merge queues as for those I imagine we wouldn't want the timer. Would you like to experiment with this idea here? I've been thinking about it for quite a while in the context of projects with C-extensions that would be noticeably slower. |
|
Is macos 15 slower or faster, by the way? |
|
It's hard to be confident, but so far it looks like ARM macos 26 The main issue with CI time is that with a large number of macOS runners, we get a lot of queuing in GitHub. None of the jobs in our matrix are particularly slow -- I'm actually very happy with how fast they all are. I'm game to experiment with new CI strategies here, but I don't want to complicate this "simple" PR with those changes. ... I think I'd like to merge this as-is, accepting that it raises the overall CI time to ~20 minutes. With the benefit of more time to think about it, that seems fine to me, since CI time isn't a major bottleneck for us. And i think we both have ideas about CI refinements that will make this better over time. I'm marking this PR "ready" without further changes. Yes, things will get a little slower for a while. But we'll make them faster over time. |
Open as a draft because I think this needs to be linked to relevant issues. It also needs to actually run in CI to confirm it works as desired.
Contributor checklist
Included tests for the changes.changelog.d/(seechangelog.d/README.mdfor instructions) or the PR text says "no changelog needed".
Maintainer checklist
bot:chronographer:skiplabel.(following Semantic Versioning).