Skip to content

ci: move the release wheel build off the retired macos-14 runner (pin macos-15) - #889

Merged
igerber merged 1 commit into
mainfrom
ci/macos-15-wheel-runner
Nov 11, 2026
Merged

igerber merged 1 commit into
mainfrom
ci/macos-15-wheel-runner

Conversation

@igerber

@igerber igerber commented Nov 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • build-wheels.yml's macOS ARM64 job moves from runs-on: macos-14 to runs-on: macos-15. GitHub retired the macOS 14 images from GitHub Actions on 2026-11-02 (actions/runner-images#13518), so all seven macOS wheel jobs are now rejected before starting (The configuration 'macos-14-arm64-us-default' is not supported). publish.yml's upload job needs the whole wheel matrix, so the next release could not have published.
  • The label is pinned rather than macos-latest so an image rollover cannot change the release build unannounced (same posture as the ubuntu-24.04 pins). rust-test.yml's test matrix stays on macos-latest.
  • docs/dev-status.md records the pin, why PR CI cannot see a retired label on this job (it only runs at release time and on a manual release-build-check.yml dispatch; the PR-triggered run is linux_only), and the rehearsal to run on the next label change.
  • No change to the library, its dependencies, or the published wheel set.

Methodology references (required if estimator / math changes)

  • Method name(s): N/A - no methodology changes
  • Paper / source link(s): N/A
  • Any intentional deviations from the source (and why): None

Validation

  • Tests added/updated: No test changes (tests/test_changelog_fragments.py and tests/test_tracking_files.py pass with the new fragment and dev-status note).
  • Failure reproduced before the fix: full-matrix release-build-check.yml dispatch on 2026-11-10 (run 42828103906) - Linux, Windows, and sdist jobs passed; all 7 macOS jobs were rejected with the unsupported-configuration error.
  • Full-matrix rehearsal on this branch at 5eeb5ad1 (run 43038798669): all 17 jobs pass, including macOS ARM64 for Python 3.9 - 3.15 on image macos-15-arm64.
  • Wheel compatibility is unchanged. All 7 rehearsal wheels keep the macosx_11_0_arm64 platform tag. Comparing the rehearsal cp312 wheel against the published 4.0.0 cp312 wheel: LC_BUILD_VERSION minos is 11.0 in both (only the build SDK moves, 14.5 -> 15.5), the linked libraries are identical (libc++, libiconv, Accelerate, libSystem), and both were generated by maturin 1.16.0.

Security / privacy

  • Confirm no secrets/PII in this PR: Yes

Changelog

  • changelog.d/ fragment added (or N/A - no user-visible change): Yes

… macos-15)

GitHub retired the macOS 14 images from GitHub Actions on 2026-11-02
(actions/runner-images#13518). build-wheels.yml's macOS ARM64 job still
requested `runs-on: macos-14`, so all seven macOS wheel jobs are now
rejected before starting ("The configuration 'macos-14-arm64-us-default'
is not supported"). publish.yml's upload job needs the whole wheel
matrix, so the next release could not have published.

- build-wheels.yml: macOS ARM64 job runs on macos-15 (pinned rather than
  macos-latest so an image rollover cannot change the release build
  unannounced).
- docs/dev-status.md: record the pin, why PR CI cannot see a retired
  label on this job, and the rehearsal to run on the next label change.
- changelog.d: Internal fragment.
@github-actions

Copy link
Copy Markdown

Overall assessment: ✅ Looks good

No findings identified in the supplied diff.

Executive summary

  • The only executable change switches the macOS wheel runner from macos-14 to macos-15.
  • Python versions, build commands, artifacts, and publishing dependencies remain unchanged.
  • The documentation accurately describes why PR CI skips this job and how to rehearse the full release build.
  • Changelog validation and YAML/workflow wiring checks passed. Pytest was unavailable locally; the reported macOS rehearsal was not independently verified.

Methodology

No findings. No estimators, weighting, variance, inference, or identification assumptions change. The Methodology Registry introduces no applicable paper-validation requirement for this runner update.

Code Quality

No findings. The runner change preserves the existing macOS job configuration at .github/workflows/build-wheels.yml:L83.

Performance

No findings. The diff introduces no additional jobs or build steps.

Maintainability

No findings. The explicit runner label and documented migration procedure make future major image changes deliberate (docs/dev-status.md:L186).

Tech Debt

No findings. No new deferred implementation work is introduced.

Security

No findings. The diff adds no credentials, permissions, external actions, or executable shell content.

Documentation/Tests

No findings. The fragment follows changelog.d/README.md, and the development note matches the workflow callers.

Local verification passed for the changelog compiler and YAML assertions covering the runner label, seven Python versions, PR filtering, and release dependency wiring. Hosted macOS execution remains outside this local verification.

@igerber igerber added the ready-for-ci Triggers CI test workflows label Nov 11, 2026
@igerber
igerber merged commit 2bc35b4 into main Nov 11, 2026
47 of 53 checks passed
@igerber
igerber deleted the ci/macos-15-wheel-runner branch November 11, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-ci Triggers CI test workflows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant