Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,11 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
# macOS is pinned, not -latest: the wheel's deployment target and
# the runner's Homebrew bottles must agree. See MACOSX_DEPLOYMENT_TARGET
# below. The test matrix above stays on macos-latest — it installs
# editable and never runs delocate, so it is unaffected.
os: [ubuntu-latest, macos-15, windows-latest]
steps:
- uses: actions/checkout@v7

Expand Down Expand Up @@ -159,9 +163,15 @@ jobs:
# its default Windows repair command — once we override
# CIBW_REPAIR_WHEEL_COMMAND_WINDOWS we have to install it.
CIBW_BEFORE_BUILD_WINDOWS: pip install delvewheel
# macOS: Homebrew's bottled dylibs are built for the runner's
# OS (macos-latest = 15). Set the wheel's deployment target
# to match so delocate accepts them.
# macOS: Homebrew's bottled dylibs are built for the runner's OS,
# and delocate refuses to bundle dylibs whose min target is newer
# than the wheel's. So this value and the runner image are ONE
# decision: keep it equal to the pinned macos-15 in the matrix
# above. Do not switch that runner to macos-latest — GitHub rolled
# macos-latest to macOS 26 in July 2026, whose bottles target 26.0,
# which broke this job for six weeks (#18). Raising both together
# is a support-floor change: it drops every macOS user below the
# new value, so it is a release decision, not a CI tweak.
MACOSX_DEPLOYMENT_TARGET: "15.0"
CIBW_ENVIRONMENT_WINDOWS: >-
CMAKE_TOOLCHAIN_FILE="$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"
Expand Down
16 changes: 11 additions & 5 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,17 @@ jobs:
# macOS users fall back to a source build via the published
# sdist for now; we'll add the x86_64 wheel back via
# universal2 (or a self-hosted runner) in a follow-up.
# Deployment target must match the runner: Homebrew's bottled
# protobuf/abseil dylibs are built for the runner's macOS
# version (macos-latest = 15), and delocate refuses to bundle
# dylibs whose min target is newer than the wheel's.
- os: macos-latest
# The runner image and macosx_deployment_target below are ONE
# decision, not two: Homebrew's bottled protobuf/abseil dylibs are
# built for the runner's macOS version, and delocate refuses to
# bundle dylibs whose min target is newer than the wheel's. So the
# runner is pinned rather than -latest. GitHub rolled macos-latest
# to macOS 26 in July 2026, whose bottles target 26.0, silently
# breaking the macOS wheel against the 15.0 target here (#18).
# Raising this pair sets the published wheel's macOS support floor
# — it drops every macOS user below the new value — so it is a
# release decision. Keep the two values equal.
- os: macos-15
archs: "arm64"
macosx_deployment_target: "15.0"
- os: windows-latest
Expand Down
Loading