Skip to content

GH-1305: [CI] Drop x86_64 macOS from JNI builds - #1306

Merged
kou merged 1 commit into
apache:mainfrom
jbonofre:ci-drop-macos-x86_64
Sep 21, 2026
Merged

kou merged 1 commit into
apache:mainfrom
jbonofre:ci-drop-macos-x86_64

Conversation

@jbonofre

Copy link
Copy Markdown
Member

Rationale for this change

Homebrew treats x86_64 macOS as a tier 3 configuration and rarely builds bottles for it. brew bundle doesn't build from source, so the JNI macos-15-intel x86_64 job in the RC workflow aborts in Install dependencies with no bottle available! before anything is compiled.

We've been patching this formula by formula:

Any new dependency added to apache/arrow's cpp/Brewfile can break the job again the same way, and nightly RC runs go red on main when it does. We can't keep this job green on a configuration Homebrew doesn't support.

#1269 noted that dropping the macos-15-intel entry needed its own discussion because it's user-facing. #1305 is that discussion.

What changes are included in this PR?

rc.yml:

  • Removed the macos-15-intel / x86_64 entry from the jni-macos matrix.
  • binaries no longer extracts jni-macos-x86_64.tar.gz nor asserts the four jni/*/x86_64/*.dylib files.
  • Dropped the /usr/local python@XXX --overwrite conflict loop. Its comment already said it could go once we dropped macos-15-intel, since macos-14 and later on arm64 use /opt/homebrew. brew update is kept.
  • Unwrapped the pkg-config uninstall from its if [ "$(uname -m)" = "arm64" ] guard, which is now always true.
  • Trimmed the tier-3 justification from the HOMEBREW_BUNDLE_BREW_SKIP comment. The skip list itself is unchanged: aws-sdk-cpp and gRPC are still skipped so the bundled static ones are used, and Node.js is still skipped because the JNI build doesn't need it.

test.yml:

  • Removed the AMD64 / macos-15-intel entry from the macos test matrix, leaving AArch64 on macos-latest.

ci/scripts/jni_macos_build.sh is untouched, so building the JNI libraries locally on an Intel Mac still works.

Are these changes tested?

Yes, by CI. The remaining JNI macos-14 aarch_64 job exercises the changed Install dependencies step, and binaries exercises the changed artifact extraction and verification.

Are there any user-facing changes?

Yes. Release JARs no longer bundle x86_64 macOS .dylib files for arrow_cdata_jni, arrow_dataset_jni, arrow_orc_jni and gandiva_jni. Intel Mac users of those modules will need to build the JNI libraries themselves. aarch64 macOS, x86_64 and aarch64 Linux, and x86_64 Windows are unaffected.

Closes #1305.

Homebrew treats x86_64 macOS as a tier 3 configuration and rarely builds
bottles for it, which keeps breaking the JNI macos-15-intel x86_64 job
formula by formula. Remove x86_64 macOS from the RC and test workflows,
along with the Homebrew workarounds that only existed for those runners.

Release JARs no longer bundle x86_64 macOS .dylib files.
@jbonofre jbonofre added the chore PRs that make misc changes. label Sep 21, 2026
@github-actions github-actions Bot added this to the 20.0.0 milestone Sep 21, 2026

@kou kou 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.

+1

@kou
kou merged commit 5586821 into apache:main Sep 21, 2026
17 of 22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore PRs that make misc changes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI] Drop x86_64 macOS from JNI builds

3 participants