Proposal
Drop the x86_64-apple-darwin arch from [tool.cibuildwheel.macos] in pyproject.toml and ship arm64-only macOS wheels starting with the next minor release (0.19.x). Intel-Mac users would install via source build (pip install --no-binary satkit) or conda-forge.
Why now
- Ecosystem alignment. SciPy dropped Intel macOS wheels in 1.13 (April 2024). Polars is arm64-only on macOS. The scientific-Python world is converging on arm64-only macOS binaries.
- Apple stopped selling Intel Macs in mid-2023. Any Intel Mac in active use today is at least 3 years old; the satellite-mechanics audience (researchers, mission analysts) skews toward current hardware.
- CI cost. Each macOS Python version currently builds twice (x86_64 + arm64). Across
cp310/cp311/cp312/cp313/cp314 that's 5 extra wheel builds per release, plus the cross-compile setup (rustup target add x86_64-apple-darwin).
- Runner availability is on a deprecation track.
macos-latest is now arm64. macos-13 (the last Intel-native GitHub Actions runner) is announced for deprecation; we're already cross-compiling on arm64 runners and at some point the cross-compile will break in a non-obvious way.
Concrete change
[tool.cibuildwheel.macos]
-archs = ["x86_64", "arm64"]
+archs = ["arm64"]
before-build = [
"pip install -U setuptools-rust",
"rustup default stable",
- "rustup target add aarch64-apple-darwin",
- "rustup target add x86_64-apple-darwin",
+ "rustup target add aarch64-apple-darwin",
"rustup show",
]
(The MACOSX_DEPLOYMENT_TARGET = "10.12" env var could be bumped to 11.0 since arm64 macOS shipped with Big Sur. Not required.)
Migration path for Intel-Mac users
pip install --no-binary satkit satkit — compiles from sdist; works on Intel Mac with a stable Rust toolchain.
conda install -c conda-forge satkit once the conda-forge feedstock is live — conda-forge builds for both x86_64 and arm64 macOS regardless of what we ship on PyPI.
Suggested timing
Land the change in the 0.19.x release. Mention in 0.19.0 CHANGELOG under a "Distribution" section or similar, with the migration path. Optionally announce one release in advance via a deprecation notice in 0.18.x docs.
Proposal
Drop the
x86_64-apple-darwinarch from[tool.cibuildwheel.macos]inpyproject.tomland ship arm64-only macOS wheels starting with the next minor release (0.19.x). Intel-Mac users would install via source build (pip install --no-binary satkit) or conda-forge.Why now
cp310/cp311/cp312/cp313/cp314that's 5 extra wheel builds per release, plus the cross-compile setup (rustup target add x86_64-apple-darwin).macos-latestis now arm64.macos-13(the last Intel-native GitHub Actions runner) is announced for deprecation; we're already cross-compiling on arm64 runners and at some point the cross-compile will break in a non-obvious way.Concrete change
(The
MACOSX_DEPLOYMENT_TARGET = "10.12"env var could be bumped to11.0since arm64 macOS shipped with Big Sur. Not required.)Migration path for Intel-Mac users
pip install --no-binary satkit satkit— compiles from sdist; works on Intel Mac with a stable Rust toolchain.conda install -c conda-forge satkitonce the conda-forge feedstock is live — conda-forge builds for both x86_64 and arm64 macOS regardless of what we ship on PyPI.Suggested timing
Land the change in the 0.19.x release. Mention in 0.19.0 CHANGELOG under a "Distribution" section or similar, with the migration path. Optionally announce one release in advance via a deprecation notice in 0.18.x docs.