Skip to content

Commit 9066b84

Browse files
authored
Merge branch 'main' into truncate-millies
2 parents e478128 + 4eccdad commit 9066b84

File tree

360 files changed

+19746
-3288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

360 files changed

+19746
-3288
lines changed

.editorconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ indent_style = space
4242
indent_size = 2
4343
indent_style = space
4444

45+
[{meson.build,meson_options.txt}]
46+
indent_size = 4
47+
indent_style = space
48+
4549
[*.cs]
4650
indent_size = 4
4751
indent_style = space

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ FEDORA=42
5757
UBUNTU=22.04
5858

5959
# Default versions for various dependencies
60-
CLANG_TOOLS=14
60+
CLANG_TOOLS=18
6161
CMAKE=3.26.0
6262
CUDA=11.7.1
6363
DASK=latest

.github/CODEOWNERS

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@
5151
/.github/ @assignUser @jonkeane @kou @raulcd
5252
.asf.yaml @assignUser @kou @raulcd
5353
.pre-commit-config.yaml @raulcd
54-
.travis.yml @assignUser @kou @raulcd
55-
appveyor.yml @assignUser @kou @raulcd
5654
# .git*
5755

5856
# release scripts, archery etc.
@@ -67,4 +65,4 @@ compose.yaml @assignUser @jonkeane @kou @raulcd
6765
/r/Makefile @assignUser
6866
/r/PACKAGING.md @assignUser
6967
/r/tools/ @assignUser
70-
.Rbuildignore @assignUser
68+
/r/.Rbuildignore @assignUser

.github/workflows/check_labels.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ on:
3232
description: "Whether to force running the jobs"
3333
value: ${{ jobs.check-labels.outputs.force }}
3434

35+
permissions:
36+
contents: read
37+
pull-requests: read
38+
3539
jobs:
3640
check-labels:
3741
name: Check labels

.github/workflows/cpp.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -81,24 +81,24 @@ jobs:
8181
matrix:
8282
include:
8383
- arch: amd64
84-
clang-tools: 14
84+
clang-tools: 18
8585
image: conda-cpp
86-
llvm: 14
86+
llvm: 18
8787
runs-on: ubuntu-latest
8888
simd-level: AVX2
8989
title: AMD64 Conda C++ AVX2
9090
ubuntu: 22.04
9191
- arch: amd64
92-
clang-tools: 14
92+
clang-tools: 18
9393
image: ubuntu-cpp-sanitizer
94-
llvm: 14
94+
llvm: 18
9595
runs-on: ubuntu-latest
9696
title: AMD64 Ubuntu 24.04 C++ ASAN UBSAN
9797
ubuntu: 24.04
9898
- arch: arm64v8
99-
clang-tools: 14
99+
clang-tools: 18
100100
image: ubuntu-cpp
101-
llvm: 14
101+
llvm: 18
102102
runs-on: ubuntu-24.04-arm
103103
title: ARM64 Ubuntu 22.04 C++
104104
ubuntu: 22.04
@@ -115,7 +115,7 @@ jobs:
115115
fetch-depth: 0
116116
submodules: recursive
117117
- name: Cache Docker Volumes
118-
uses: actions/cache@v4
118+
uses: actions/cache@v5
119119
with:
120120
path: .docker
121121
key: ${{ matrix.image }}-${{ hashFiles('cpp/**') }}
@@ -250,7 +250,7 @@ jobs:
250250
run: |
251251
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
252252
- name: Cache ccache
253-
uses: actions/cache@v4
253+
uses: actions/cache@v5
254254
with:
255255
path: ${{ steps.ccache-info.outputs.cache-dir }}
256256
key: cpp-ccache-macos-${{ matrix.macos-version }}-${{ hashFiles('cpp/**') }}
@@ -356,7 +356,7 @@ jobs:
356356
shell: msys2 {0}
357357
run: ci/scripts/msys2_setup.sh cpp
358358
- name: Cache ccache
359-
uses: actions/cache@v4
359+
uses: actions/cache@v5
360360
with:
361361
path: ccache
362362
key: cpp-ccache-${{ matrix.msystem_lower}}-${{ hashFiles('cpp/**') }}

.github/workflows/cpp_extra.yml

Lines changed: 132 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ on:
2626
- '.dockerignore'
2727
- '.github/workflows/check_labels.yml'
2828
- '.github/workflows/cpp_extra.yml'
29+
- '.github/workflows/cpp_windows.yml'
2930
- '.github/workflows/report_ci.yml'
3031
- 'ci/conda_env_*'
3132
- 'ci/docker/**'
@@ -47,6 +48,7 @@ on:
4748
- '.dockerignore'
4849
- '.github/workflows/check_labels.yml'
4950
- '.github/workflows/cpp_extra.yml'
51+
- '.github/workflows/cpp_windows.yml'
5052
- '.github/workflows/report_ci.yml'
5153
- 'ci/conda_env_*'
5254
- 'ci/docker/**'
@@ -75,7 +77,9 @@ concurrency:
7577
cancel-in-progress: true
7678

7779
permissions:
80+
actions: read
7881
contents: read
82+
pull-requests: read
7983

8084
jobs:
8185
check-labels:
@@ -126,7 +130,7 @@ jobs:
126130
fetch-depth: 0
127131
submodules: recursive
128132
- name: Cache Docker Volumes
129-
uses: actions/cache@v4
133+
uses: actions/cache@v5
130134
with:
131135
path: .docker
132136
key: extra-${{ matrix.image }}-${{ hashFiles('cpp/**') }}
@@ -211,7 +215,7 @@ jobs:
211215
run: |
212216
ci/scripts/util_free_space.sh
213217
- name: Cache Docker Volumes
214-
uses: actions/cache@v4
218+
uses: actions/cache@v5
215219
with:
216220
path: .docker
217221
key: jni-${{ matrix.platform.runs-on }}-${{ hashFiles('cpp/**') }}
@@ -283,7 +287,7 @@ jobs:
283287
run: |
284288
echo "CCACHE_DIR=${PWD}/ccache" >> ${GITHUB_ENV}
285289
- name: Cache ccache
286-
uses: actions/cache@v4
290+
uses: actions/cache@v5
287291
with:
288292
path: ccache
289293
key: jni-macos-${{ hashFiles('cpp/**') }}
@@ -330,12 +334,137 @@ jobs:
330334
cd cpp/examples/minimal_build
331335
../minimal_build.build/arrow-example
332336
337+
odbc:
338+
needs: check-labels
339+
name: ODBC
340+
runs-on: windows-2022
341+
if: >-
342+
needs.check-labels.outputs.force == 'true' ||
343+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
344+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
345+
timeout-minutes: 240
346+
env:
347+
ARROW_BUILD_SHARED: ON
348+
ARROW_BUILD_STATIC: OFF
349+
ARROW_BUILD_TESTS: ON
350+
ARROW_BUILD_TYPE: release
351+
ARROW_DEPENDENCY_SOURCE: VCPKG
352+
ARROW_FLIGHT_SQL_ODBC: ON
353+
ARROW_FLIGHT_SQL_ODBC_INSTALLER: ON
354+
ARROW_SIMD_LEVEL: AVX2
355+
CMAKE_GENERATOR: Ninja
356+
CMAKE_INSTALL_PREFIX: /usr
357+
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
358+
VCPKG_DEFAULT_TRIPLET: x64-windows
359+
steps:
360+
- name: Disable Crash Dialogs
361+
run: |
362+
reg add `
363+
"HKCU\SOFTWARE\Microsoft\Windows\Windows Error Reporting" `
364+
/v DontShowUI `
365+
/t REG_DWORD `
366+
/d 1 `
367+
/f
368+
- name: Checkout Arrow
369+
uses: actions/checkout@v6
370+
with:
371+
fetch-depth: 0
372+
submodules: recursive
373+
- name: Download Timezone Database
374+
shell: bash
375+
run: ci/scripts/download_tz_database.sh
376+
- name: Install cmake
377+
shell: bash
378+
run: |
379+
ci/scripts/install_cmake.sh 4.1.2 /usr
380+
- name: Install ccache
381+
shell: bash
382+
run: |
383+
ci/scripts/install_ccache.sh 4.12.1 /usr
384+
- name: Setup ccache
385+
shell: bash
386+
run: |
387+
ci/scripts/ccache_setup.sh
388+
- name: ccache info
389+
id: ccache-info
390+
shell: bash
391+
run: |
392+
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
393+
- name: Cache ccache
394+
uses: actions/cache@v5
395+
with:
396+
path: ${{ steps.ccache-info.outputs.cache-dir }}
397+
key: cpp-odbc-ccache-windows-x64-${{ hashFiles('cpp/**') }}
398+
restore-keys: cpp-odbc-ccache-windows-x64-
399+
- name: Checkout vcpkg
400+
uses: actions/checkout@v6
401+
with:
402+
fetch-depth: 0
403+
path: vcpkg
404+
repository: microsoft/vcpkg
405+
- name: Bootstrap vcpkg
406+
run: |
407+
vcpkg\bootstrap-vcpkg.bat
408+
$VCPKG_ROOT = $(Resolve-Path -LiteralPath "vcpkg").ToString()
409+
Write-Output ${VCPKG_ROOT} | `
410+
Out-File -FilePath ${Env:GITHUB_PATH} -Encoding utf8 -Append
411+
Write-Output "VCPKG_ROOT=${VCPKG_ROOT}" | `
412+
Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append
413+
- name: Setup NuGet credentials for vcpkg caching
414+
shell: bash
415+
run: |
416+
$(vcpkg fetch nuget | tail -n 1) \
417+
sources add \
418+
-source "https://nuget.pkg.github.com/$GITHUB_REPOSITORY_OWNER/index.json" \
419+
-storepasswordincleartext \
420+
-name "GitHub" \
421+
-username "$GITHUB_REPOSITORY_OWNER" \
422+
-password "${{ secrets.GITHUB_TOKEN }}"
423+
$(vcpkg fetch nuget | tail -n 1) \
424+
setapikey "${{ secrets.GITHUB_TOKEN }}" \
425+
-source "https://nuget.pkg.github.com/$GITHUB_REPOSITORY_OWNER/index.json"
426+
- name: Build
427+
shell: cmd
428+
run: |
429+
set VCPKG_ROOT_KEEP=%VCPKG_ROOT%
430+
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
431+
set VCPKG_ROOT=%VCPKG_ROOT_KEEP%
432+
bash -c "ci/scripts/cpp_build.sh $(pwd) $(pwd)/build"
433+
- name: Register Flight SQL ODBC Driver
434+
shell: cmd
435+
run: |
436+
call "cpp\src\arrow\flight\sql\odbc\tests\install_odbc.cmd" ${{ github.workspace }}\build\cpp\%ARROW_BUILD_TYPE%\arrow_flight_sql_odbc.dll
437+
# GH-48270 TODO: Resolve segementation fault during Arrow library unload
438+
# GH-48269 TODO: Enable Flight & Flight SQL testing in MSVC CI
439+
# GH-48547 TODO: enable ODBC tests after GH-48270 and GH-48269 are resolved.
440+
441+
- name: Install WiX Toolset
442+
shell: pwsh
443+
run: |
444+
Invoke-WebRequest -Uri https://github.com/wixtoolset/wix/releases/download/v6.0.0/wix-cli-x64.msi -OutFile wix-cli-x64.msi
445+
Start-Process -FilePath wix-cli-x64.msi -ArgumentList '/quiet', 'Include_freethreaded=1' -Wait
446+
echo "C:\Program Files\WiX Toolset v6.0\bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
447+
- name: Build MSI ODBC installer
448+
shell: pwsh
449+
run: |
450+
# Verify WiX version
451+
wix --version
452+
cd build/cpp
453+
cpack
454+
- name: Upload the artifacts to the job
455+
uses: actions/upload-artifact@v6
456+
with:
457+
name: flight-sql-odbc-msi-installer
458+
path: build/cpp/Apache Arrow Flight SQL ODBC-*-win64.msi
459+
if-no-files-found: error
460+
333461
report-extra-cpp:
334462
if: github.event_name == 'schedule' && always()
335463
needs:
336464
- docker
337465
- jni-linux
338466
- jni-macos
339467
- msvc-arm64
468+
- odbc
340469
uses: ./.github/workflows/report_ci.yml
341470
secrets: inherit

.github/workflows/cpp_windows.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ on:
3333
required: true
3434
type: string
3535

36+
permissions:
37+
contents: read
38+
3639
jobs:
3740
windows:
3841
runs-on: ${{ inputs.os }}
@@ -63,7 +66,7 @@ jobs:
6366
ARROW_WITH_ZLIB: ON
6467
ARROW_WITH_ZSTD: ON
6568
BOOST_SOURCE: BUNDLED
66-
CMAKE_CXX_STANDARD: "17"
69+
CMAKE_CXX_STANDARD: "20"
6770
CMAKE_GENERATOR: Ninja
6871
CMAKE_INSTALL_PREFIX: /usr
6972
CMAKE_UNITY_BUILD: ON
@@ -105,7 +108,7 @@ jobs:
105108
run: |
106109
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
107110
- name: Cache ccache
108-
uses: actions/cache@v4
111+
uses: actions/cache@v5
109112
with:
110113
path: ${{ steps.ccache-info.outputs.cache-dir }}
111114
key: cpp-ccache-windows-${{ inputs.arch }}-${{ hashFiles('cpp/**') }}

.github/workflows/dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
r-base \
5959
ruby-dev
6060
- name: Cache pre-commit
61-
uses: actions/cache@v4
61+
uses: actions/cache@v5
6262
with:
6363
path: |
6464
~/.cache/pre-commit

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
run: |
4747
ci/scripts/util_free_space.sh
4848
- name: Cache Docker Volumes
49-
uses: actions/cache@v4
49+
uses: actions/cache@v5
5050
with:
5151
path: .docker
5252
key: debian-docs-${{ hashFiles('cpp/**') }}

.github/workflows/docs_light.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
with:
5454
fetch-depth: 0
5555
- name: Cache Docker Volumes
56-
uses: actions/cache@v4
56+
uses: actions/cache@v5
5757
with:
5858
path: .docker
5959
key: conda-docs-${{ hashFiles('cpp/**') }}

0 commit comments

Comments
 (0)