Github Actions runners successfully install homebrew python@3.10, but run third-party 3.11 #3895
Replies: 5 comments 10 replies
-
Oops, yes, this was my suspicion from a quick glance at mesonbuild/meson#11005. However, I delayed responding until I had taken a proper look at it, but I haven't had the chance yet. Thanks for the heads up. |
Beta Was this translation helpful? Give feedback.
-
Meson's CI now hits the case of llvm depending on python@3.11, and this caused brew install to outright fail as now it actively tries to reinstall the python bottle with a newer version, and fails. Super fun. I'll try explicitly installing python with --force now. |
Beta Was this translation helpful? Give feedback.
-
Indeed this is indeed the unfortunate affect of GitHub installing Python symlinks into the same place as Homebrew. I suppose ideally GitHub would just add find There's little Homebrew can do as unconditionally overwriting files the user has installed is usually a bad idea. You can do What you could alternatively try is: |
Beta Was this translation helpful? Give feedback.
-
Thanks for tracking this issue; @Bo98 's suggestion is crude-but-effective - I'm successfully using it over here: https://github.com/ArduPilot/ardupilot/pull/22495/files I might note that the Python |
Beta Was this translation helpful? Give feedback.
-
We ran into this issue as well and it turns out that this only happens after |
Beta Was this translation helpful? Give feedback.
-
Example job: https://github.com/mesonbuild/meson/actions/runs/3424416943/jobs/5704070266
So it seems that Github's runner images have both installed, and python 3.10 is from homebrew already, and 3.11 is manually installed by github.
The homebrew one works fine, always has, and if you try to install it yourself you get this helpful message:
Which is usually to be expected.
The non-homebrew one is broken: actions/runner-images#6507
Moreover, the non-homebrew one is overwriting homebrew's links! So homebrew thinks it is installed, but actually... not. Sort of. It still gets found via pkg-config, which means that
python3
andpkg-config --modversion python3
return different things 🤣 and that breaks.I even tried to use unlink && link to force homebrew's version, and got this error instead:
Indeed, overwrite works, albeit you might have to do quite a bit of debugging to figure out why or how.
This is not really homebrew's fault, any of it whatsoever, but it is a mess and homebrew users may have issues with this, so heads up I guess.
Beta Was this translation helpful? Give feedback.
All reactions