Skip to content

Conversation

@auscompgeek
Copy link
Member

@auscompgeek auscompgeek commented Jan 19, 2025

Building on GitHub Actions macOS ARM runners lets us build universal2 wheels for Python 3.9 and 3.10 for free. This is particularly important since the Xcode Command Line Tools still ships Python 3.9. The fact that our macOS 3.9 and 3.10 wheels are currently amd64 only has come up a few times in Chief Delphi threads and caused confusion both for teams and ourselves.

Building on macOS ARM also gives us an almost 2x build performance boost. An uncached universal2 build takes 1 h on x86, whereas it takes about 35 min on Apple Silicon.

As this change completely busts the cache, this also switches our macOS builds to use sccache with WPILib's Artifactory as storage, like in #125.

Whilst we're busting the cache, also fix the linker warning about the mismatching macOS target version.

- build-system.requires: pyntcore~=2025.2
- build-system.requires: robotpy-hal~=2025.2
- build-system.requires: robotpy-wpimath~=2025.2
- build-system.requires: robotpy-wpinet~=2025.2
- build-system.requires: robotpy-wpiutil~=2025.2
- build-system.requires: wpilib~=2025.2
ld: warning: object file (build/temp.macosx-15.0-arm64-cpython-313/dlstatic/cscore_cpp/lib/libcscore.a[arm64][21](cscore_cpp.o)) was built for newer 'macOS' version (13.3) than being linked (13.0)
Enables building universal2 wheels for Python 3.9 and 3.10.
We're busting the cache, so let's switch to a cache backend with less
aggressive cache eviction.
Copy link
Member

@virtuald virtuald left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems fine

@auscompgeek auscompgeek merged commit 4170a81 into main Jan 22, 2025
28 checks passed
@auscompgeek auscompgeek deleted the macos-universal branch January 24, 2025 03:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants