Skip to content

Drop MacOS Intel support - #116

Merged
carlos-granados merged 1 commit into
php-debugger:mainfrom
carlos-granados:chore/drop-macos-intel
Sep 9, 2026
Merged

carlos-granados merged 1 commit into
php-debugger:mainfrom
carlos-granados:chore/drop-macos-intel

Conversation

@carlos-granados

@carlos-granados carlos-granados commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

MacOS Intel support is being retired everywhere, including GitHub actions and brew. It does not make sense for us to continue supporting it any more as it is getting almost impossible to build. This PR removes this support

@carlos-granados

Copy link
Copy Markdown
Collaborator Author

@claude review

@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown

Claude finished @carlos-granados's task in 1m 45s —— View job


Claude PR Review

  • Read the PR diff
  • Analyze changes to .github/workflows/release.yml
  • Check for correctness/consistency issues
  • Post review feedback

Summary

Verdict: LGTM — a clean, targeted removal. Both macOS jobs are updated symmetrically, and I found no dangling x86_64 / macos-13 references anywhere else in the repo (checked .github/workflows/*.yml and docs).

What the PR does

  1. build-macos (.github/workflows/release.yml:129-193): drops x86_64 from the arch matrix, flattens the if [[ "${{ matrix.arch }}" == "arm64" ]] branch in the build step, drops the cross-compile skip in "Verify extension loads", and removes the if: matrix.arch == 'arm64' guard on the DBGp smoke test (now unconditional).
  2. build-php-macos (.github/workflows/release.yml:338-466): same matrix trim, plus removal of the arch -x86_64 brew install branch, the /usr/local/Cellar/... prefix branch in configure, and the arch -x86_64 Rosetta wrappers around ./sapi/cli/php in the verify + test steps.

Net effect: released macOS binaries will be arm64-only going forward. Linux / Windows matrices are untouched.

Observations

No blocking issues. A few minor notes, all optional:

  • Matrix arch axis is now a singleton. After this PR, both macOS matrices have arch: [arm64] — a one-element list. Fully valid, and keeping it means the job name still reads — arm64 — and adding another arch back later is trivial. If you'd rather cut it, drop the matrix entry and hard-code arm64 in the job name — purely stylistic.

  • CFLAGS="-arch arm64" LDFLAGS="-arch arm64" is redundant on macos-latest. GitHub's macos-latest is arm64 as of Q4 2024, so the compiler already defaults to arm64; passing -arch arm64 is a harmless no-op. Not worth touching, but if you want to slim things further you could drop those overrides.

  • Intel Mac users lose prebuilt binaries. Since Rosetta 2 runs x86_64 on arm64 (not the reverse), Intel Mac users can't run the new arm64 artifacts. That's explicit and correct per the PR description — worth calling out in release notes for 0.3.2 (or wherever this lands) so downstream users aren't surprised.

  • build-linux still carries both x86_64 and arm64. Correct — GitHub still offers both Linux runners (ubuntu-latest and ubuntu-24.04-arm).

Non-issues verified

  • No references to macOS x86_64 in the rest of .github/workflows/ (prepare-release.yml, docker.yml, static-build.yml, build.yml, etc.).
  • No README.md / docs mention Intel Mac binaries (the one macOS reference in tests/frankenphp/README.md:58 is about host.docker.internal, unrelated).
  • The release job's needs: list is unchanged and still valid — the matrix trim doesn't change job names.

Nothing further from me. Ship it whenever you're ready.


• Branch: chore/drop-macos-intel

@carlos-granados

Copy link
Copy Markdown
Collaborator Author

@claude review again

@claude

claude Bot commented Sep 9, 2026

Copy link
Copy Markdown

Claude finished @carlos-granados's task in 1m 12s —— View job


Claude PR Review — take two

  • Read the PR diff again
  • Re-check for issues that may have been missed
  • Scan the rest of the repo for lingering Intel/macos-13 references
  • Post updated review feedback

Verdict: LGTM (unchanged)

Same single commit as before (ca9cb77, 1 file, +45/-122). Re-scanned everything and still see no blockers.

What the PR does

  1. build-macos (release.yml:129-191): removes the arch matrix axis, drops the -arch arm64/x86_64 CFLAGS/LDFLAGS overrides in the build step, drops the cross-compile skip in "Verify extension loads", makes the DBGp smoke test unconditional, and hard-codes ARCH_TAG="arm64" in the artifact name.
  2. build-php-macos (release.yml:336-450): same matrix trim, plus removal of the arch -x86_64 brew install branch, the /usr/local/Cellar/... prefix branch in configure, and the arch -x86_64 Rosetta wrappers around ./sapi/cli/php in the verify + test steps.

Net effect: released macOS binaries will be arm64-only going forward. Linux (release.yml:206-210) and Windows matrices are untouched — Linux still builds both x86_64 and arm64.

Verified clean

  • No dangling macos-13 / macos_13 / Intel refs anywhere in .github/ (grepped case-insensitive).
  • The only remaining x86_64 mentions in release.yml are inside build-linux (:208) and build-php-linux (:477) matrices — correct, those still ship for both archs.
  • release job's needs: [build-macos, ..., build-php-macos, ...] at release.yml:703 is unchanged and still valid — the matrix trim reduces job count but not job names.
  • No README.md / docs advertise Intel Mac binaries. .github/ISSUE_TEMPLATE/bug_report.yml:20 just mentions "macOS Sonoma" as a placeholder, no arch implication.

Optional nits (all non-blocking, unchanged from previous pass)

  • CFLAGS/LDFLAGS for -arch arm64 are already gone from build-macos, but note that on macos-latest (arm64 by default as of late 2024) they wouldn't have been needed anyway — nothing to do here.
  • Intel Mac users lose prebuilt binaries. Rosetta 2 goes x86_64→arm64 only, so they can't run the new arm64 artifacts. Worth calling out in the next release's notes.
  • If you ever want to make the trimmed axis fully explicit, you could drop runs-on: macos-latest in favor of macos-14/macos-15 (both arm64) to pin the runner arch — but macos-latest is fine and less maintenance.

Nothing further from me — ready to merge.

--- • Branch: chore/drop-macos-intel

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

The workflow changes consistently remove macOS x86_64 references for macOS jobs without leaving dangling matrix variables or artifact-collection assumptions.

Pull request overview

This PR retires macOS Intel (x86_64) support in the release pipeline by removing the macOS architecture matrix and all Rosetta/cross-compilation branching, aligning CI and packaging with Apple Silicon–only builds.

Changes:

  • Removed the arch matrix from macOS extension builds and hardcoded arm64 in job naming and artifact tags.
  • Simplified macOS build steps by dropping -arch flags and eliminating x86_64-only verification / Rosetta execution paths.
  • Simplified the “PHP Binary macOS” job by removing dual Homebrew + path handling and standardizing on /opt/homebrew (arm64).
File summaries
File Description
.github/workflows/release.yml Removes macOS x86_64 build paths and standardizes macOS release artifacts on arm64 only.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@pronskiy pronskiy left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Makes sense, agree 👍

@carlos-granados
carlos-granados merged commit 404004e into php-debugger:main Sep 9, 2026
34 checks passed
@carlos-granados
carlos-granados deleted the chore/drop-macos-intel branch September 9, 2026 14:01
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.

3 participants