Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
2681868
Upgrade Java JAR build workflow with modern improvements
timhurskidremio Feb 26, 2026
4a33471
Fix C++ code formatting (clang-format)
timhurskidremio Feb 26, 2026
fb0d878
Fix CMake formatting
timhurskidremio Feb 26, 2026
0848921
Fix C++ comment alignment in array_ops.cc
timhurskidremio Feb 26, 2026
6d132dd
Upgrade GoogleTest from 1.11.0 to 1.17.0 for CMake 4.2+ compatibility
timhurskidremio Feb 26, 2026
cbc88fc
Upgrade actions/cache from v4.0.0 to v4.3.0 across all workflows
timhurskidremio Feb 26, 2026
8de79dc
Fix C++ lint errors in Gandiva code
timhurskidremio Feb 26, 2026
6866396
Fix macOS runner configuration for Java JARs workflow
timhurskidremio Feb 26, 2026
d315588
Fix macOS 13 runner configuration across all workflows
timhurskidremio Feb 26, 2026
b821f68
Fix macOS runner to use macos-14-large instead of non-existent macos-…
timhurskidremio Feb 26, 2026
e36d0fb
Fix GoogleTest 1.17.0 download URL and checksum
timhurskidremio Feb 27, 2026
07653d3
Fix GoogleTest URL in ThirdpartyToolchain.cmake
timhurskidremio Mar 6, 2026
90f3ab2
Fix LLVM version detection to handle missing Homebrew packages
timhurskidremio Mar 7, 2026
bfa2d47
llvm 21 overlay (cherry-picked from c794101960)
timhurskidremio Mar 11, 2026
e5ecf3c
add enable-terminfo to vcpkg overlay
lriggs Oct 6, 2025
5d7e239
Fix macOS build to use vcpkg-installed LLVM
timhurskidremio Mar 11, 2026
9a691ec
Add LLVM 21.1 to supported versions list
timhurskidremio Mar 12, 2026
1f3608d
Force bundled Boost to avoid conflict with Homebrew's partial install
timhurskidremio Mar 12, 2026
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
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ HDFS=3.2.1
JDK=11
KARTOTHEK=latest
# LLVM 12 and GCC 11 reports -Wmismatched-new-delete.
LLVM=14
LLVM=21
MAVEN=3.8.7
NODE=18
NUMBA=latest
Expand Down
14 changes: 8 additions & 6 deletions .github/workflows/cpp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ jobs:
fetch-depth: 0
submodules: recursive
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: ${{ matrix.image }}-${{ hashFiles('cpp/**') }}
Expand Down Expand Up @@ -191,17 +191,19 @@ jobs:

macos:
name: ${{ matrix.architecture }} macOS ${{ matrix.macos-version }} C++
runs-on: macos-${{ matrix.macos-version }}
runs-on: ${{ matrix.runs-on }}
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 75
strategy:
fail-fast: false
matrix:
include:
- architecture: AMD64
macos-version: "13"
macos-version: "14"
runs-on: macos-14-large
- architecture: ARM64
macos-version: "14"
runs-on: macos-14
env:
ARROW_AZURE: ON
ARROW_BUILD_TESTS: ON
Expand Down Expand Up @@ -259,7 +261,7 @@ jobs:
run: |
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: cpp-ccache-macos-${{ matrix.macos-version }}-${{ hashFiles('cpp/**') }}
Expand Down Expand Up @@ -351,7 +353,7 @@ jobs:
run: |
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: cpp-ccache-windows-${{ env.CACHE_VERSION }}-${{ hashFiles('cpp/**') }}
Expand Down Expand Up @@ -441,7 +443,7 @@ jobs:
shell: msys2 {0}
run: ci/scripts/msys2_setup.sh cpp
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ccache
key: cpp-ccache-${{ matrix.msystem_lower}}-${{ hashFiles('cpp/**') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
python -m pip install pre-commit
pre-commit run --show-diff-on-failure --color=always
- name: Cache pre-commit
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ~/.cache/pre-commit
key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
run: |
ci/scripts/util_free_space.sh
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: debian-docs-${{ hashFiles('cpp/**') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs_light.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ jobs:
with:
fetch-depth: 0
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: conda-docs-${{ hashFiles('cpp/**') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
run: |
ci/scripts/util_free_space.sh
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: conda-${{ hashFiles('cpp/**') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/java.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ jobs:
fetch-depth: 0
submodules: recursive
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: maven-${{ hashFiles('java/**') }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/java_jni.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
run: |
ci/scripts/util_free_space.sh
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: java-jni-manylinux-2014-${{ hashFiles('cpp/**', 'java/**') }}
Expand Down Expand Up @@ -108,7 +108,7 @@ jobs:
fetch-depth: 0
submodules: recursive
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: maven-${{ hashFiles('java/**') }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
with:
fetch-depth: 0
- name: Jest Cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: js/.jest-cache
key: js-jest-cache-${{ runner.os }}-${{ hashFiles('js/src/**/*.ts', 'js/test/**/*.ts', 'js/yarn.lock') }}
Expand Down Expand Up @@ -126,7 +126,7 @@ jobs:
with:
fetch-depth: 0
- name: Jest Cache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: js/.jest-cache
key: js-jest-cache-${{ runner.os }}-${{ hashFiles('js/src/**/*.ts', 'js/test/**/*.ts', 'js/yarn.lock') }}
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/matlab.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: matlab-ccache-ubuntu-${{ hashFiles('cpp/**', 'matlab/**') }}
Expand All @@ -99,15 +99,17 @@ jobs:
strict: true
macos:
name: ${{ matrix.architecture }} macOS ${{ matrix.macos-version }} MATLAB
runs-on: macos-${{ matrix.macos-version }}
runs-on: ${{ matrix.runs-on }}
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
strategy:
matrix:
include:
- architecture: AMD64
macos-version: "13"
macos-version: "14"
runs-on: macos-14-large
- architecture: ARM64
macos-version: "14"
runs-on: macos-14
steps:
- name: Check out repository
uses: actions/checkout@v4
Expand All @@ -129,7 +131,7 @@ jobs:
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: matlab-ccache-macos-${{ hashFiles('cpp/**', 'matlab/**') }}
Expand Down Expand Up @@ -172,7 +174,7 @@ jobs:
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: |
${{ steps.ccache-info.outputs.cache-dir }}
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:
fetch-depth: 0
submodules: recursive
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: ${{ matrix.cache }}-${{ hashFiles('cpp/**') }}
Expand Down Expand Up @@ -135,17 +135,19 @@ jobs:

macos:
name: ${{ matrix.architecture }} macOS ${{ matrix.macos-version }} Python 3
runs-on: macos-${{ matrix.macos-version }}
runs-on: ${{ matrix.runs-on }}
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
timeout-minutes: 60
strategy:
fail-fast: false
matrix:
include:
- architecture: AMD64
macos-version: "13"
macos-version: "14"
runs-on: macos-14-large
- architecture: ARM64
macos-version: "14"
runs-on: macos-14
env:
ARROW_HOME: /tmp/local
ARROW_AZURE: ON
Expand Down Expand Up @@ -200,7 +202,7 @@ jobs:
shell: bash
run: echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: python-ccache-macos-${{ matrix.macos-version }}-${{ hashFiles('cpp/**', 'python/**') }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/r.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ jobs:
run: |
ci/scripts/util_free_space.sh
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
# As this key is identical on both matrix builds only one will be able to successfully cache,
Expand Down Expand Up @@ -268,7 +268,7 @@ jobs:
ci/scripts/ccache_setup.sh
echo "CCACHE_DIR=$(cygpath --absolute --windows ccache)" >> $GITHUB_ENV
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ccache
key: r-${{ matrix.config.rtools }}-ccache-mingw-${{ matrix.config.arch }}-${{ hashFiles('cpp/src/**/*.cc','cpp/src/**/*.h)') }}-${{ github.run_id }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/r_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
exit 1
fi
- name: Cache Repo
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: repo
key: r-nightly-${{ github.run_id }}
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ jobs:
fetch-depth: 0
submodules: recursive
- name: Cache Docker Volumes
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: .docker
key: ubuntu-${{ matrix.ubuntu }}-ruby-${{ hashFiles('cpp/**') }}
Expand Down Expand Up @@ -168,7 +168,7 @@ jobs:
run: |
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: ruby-ccache-macos-${{ hashFiles('cpp/**') }}
Expand Down Expand Up @@ -251,7 +251,7 @@ jobs:
run: |
ridk exec bash ci\scripts\msys2_setup.sh ruby
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ccache
key: ruby-ccache-ucrt${{ matrix.mingw-n-bits }}-${{ hashFiles('cpp/**') }}
Expand All @@ -275,7 +275,7 @@ jobs:
Write-Output "gem-dir=$(ridk exec gem env gemdir)" | `
Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8 -Append
- name: Cache RubyGems
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.rubygems-info.outputs.gem-dir }}
key: ruby-rubygems-ucrt${{ matrix.mingw-n-bits }}-${{ hashFiles('**/Gemfile', 'ruby/*/*.gemspec') }}
Expand Down Expand Up @@ -384,7 +384,7 @@ jobs:
run: |
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
- name: Cache ccache
uses: actions/cache@v4
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0
with:
path: ${{ steps.ccache-info.outputs.cache-dir }}
key: glib-ccache-msvc-${{ env.CACHE_VERSION }}-${{ hashFiles('cpp/**') }}
Expand Down
57 changes: 56 additions & 1 deletion ci/scripts/java_jni_macos_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,56 @@ export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export AWS_EC2_METADATA_DISABLED=TRUE

# Determine vcpkg triplet based on architecture
vcpkg_arch=$(arch)
case ${vcpkg_arch} in
arm64)
vcpkg_triplet="arm64-osx"
;;
i386|x86_64)
vcpkg_triplet="x64-osx"
;;
*)
vcpkg_triplet="arm64-osx"
;;
esac

# Set LLVM_DIR to point to vcpkg-installed LLVM if VCPKG_ROOT_LOCAL is set
llvm_dir_arg=""
gandiva_cxx_flags=""
osx_sysroot_arg=""
re2_source_arg="-Dre2_SOURCE=BUNDLED"
if [ -n "${VCPKG_ROOT_LOCAL:-}" ]; then
vcpkg_installed="${VCPKG_ROOT_LOCAL}/installed/${vcpkg_triplet}"
llvm_cmake_dir="${vcpkg_installed}/share/llvm"
if [ -d "${llvm_cmake_dir}" ]; then
echo "=== Found vcpkg LLVM at ${llvm_cmake_dir} ==="
llvm_dir_arg="-DLLVM_DIR=${llvm_cmake_dir}"

# vcpkg's clang needs to know where to find system headers
# Arrow's GandivaAddBitcode.cmake uses CMAKE_OSX_SYSROOT to set SDKROOT env var
sdk_path="$(xcrun --show-sdk-path)"
if [ -d "${sdk_path}" ]; then
osx_sysroot_arg="-DCMAKE_OSX_SYSROOT=${sdk_path}"
fi

# Also pass the C++ standard library include path via ARROW_GANDIVA_PC_CXX_FLAGS
xcode_path="$(xcode-select -p)"
cxx_include_path="${xcode_path}/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1"
if [ -d "${cxx_include_path}" ]; then
gandiva_cxx_flags="-DARROW_GANDIVA_PC_CXX_FLAGS=-stdlib=libc++;-isystem;${cxx_include_path}"
fi

# Use vcpkg's RE2 since it's installed as a dependency of LLVM
# This ensures ABI compatibility - vcpkg's RE2 uses std::string_view API
# which matches what vcpkg's LLVM and Abseil expect
re2_cmake_dir="${vcpkg_installed}/share/re2"
if [ -d "${re2_cmake_dir}" ]; then
re2_source_arg="-Dre2_ROOT=${vcpkg_installed}"
fi
fi
fi

mkdir -p "${build_dir}/cpp"
pushd "${build_dir}/cpp"

Expand All @@ -81,14 +131,19 @@ cmake \
-DARROW_PARQUET=${ARROW_PARQUET} \
-DARROW_S3=${ARROW_S3} \
-DARROW_USE_CCACHE=${ARROW_USE_CCACHE} \
-DAWSSDK_SOURCE=BUNDLED \
-DBoost_SOURCE=BUNDLED \
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
-DCMAKE_INSTALL_PREFIX=${install_dir} \
-DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
-DGTest_SOURCE=BUNDLED \
${llvm_dir_arg} \
${osx_sysroot_arg} \
${gandiva_cxx_flags} \
-DPARQUET_BUILD_EXAMPLES=OFF \
-DPARQUET_BUILD_EXECUTABLES=OFF \
-DPARQUET_REQUIRE_ENCRYPTION=OFF \
-Dre2_SOURCE=BUNDLED \
${re2_source_arg} \
-GNinja \
${arrow_dir}/cpp
cmake --build . --target install
Expand Down
13 changes: 13 additions & 0 deletions ci/vcpkg/overlay/llvm/0001-fix-install-package-dir.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
openmp/tools/Modules/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/openmp/tools/Modules/CMakeLists.txt b/openmp/tools/Modules/CMakeLists.txt
index 22d818eea72d..75aacc4468d4 100644
--- a/openmp/tools/Modules/CMakeLists.txt
+++ b/openmp/tools/Modules/CMakeLists.txt
@@ -12,4 +12,4 @@


install(FILES "FindOpenMPTarget.cmake"
- DESTINATION "${OPENMP_INSTALL_LIBDIR}/cmake/openmp")
+ DESTINATION "share/openmp")
Loading
Loading