Skip to content

Commit 1249934

Browse files
author
David Coe
committed
resolve merge issue
2 parents dc96929 + f9b26cb commit 1249934

File tree

102 files changed

+4911
-633
lines changed

Some content is hidden

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

102 files changed

+4911
-633
lines changed

.github/workflows/native-unix.yml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,13 +250,25 @@ jobs:
250250
- name: Build
251251
run: |
252252
meson setup \
253-
-Db_sanitize=address,undefined \
254253
-Dauto_features=enabled \
255254
c c/build
256255
meson compile -C c/build
257256
- name: Test
258257
run: |
259258
meson test -C c/build --print-errorlogs
259+
- name: Build with sanitizers
260+
run: |
261+
# skip bigquery and flightsql for now; see GH-2744
262+
meson setup \
263+
-Db_sanitize=address,undefined \
264+
-Dauto_features=enabled \
265+
-Dbigquery=disabled \
266+
-Dflightsql=disabled \
267+
c c/build
268+
meson compile -C c/build
269+
- name: Test with sanitizers
270+
run: |
271+
meson test -C c/build --print-errorlogs
260272
- name: Stop SQLite server, Dremio, and postgresql
261273
run: |
262274
docker compose down
@@ -387,7 +399,7 @@ jobs:
387399
with:
388400
fetch-depth: 0
389401
persist-credentials: false
390-
- uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8
402+
- uses: google-github-actions/auth@ba79af03959ebeac9769e648f473a284504d9193 # v2.1.10
391403
continue-on-error: true # if auth fails, bigquery driver tests should skip
392404
with:
393405
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
@@ -449,7 +461,7 @@ jobs:
449461
with:
450462
fetch-depth: 0
451463
persist-credentials: false
452-
- uses: google-github-actions/auth@71f986410dfbc7added4569d411d040a91dc6935 # v2.1.8
464+
- uses: google-github-actions/auth@ba79af03959ebeac9769e648f473a284504d9193 # v2.1.10
453465
continue-on-error: true # if auth fails, bigquery driver tests should skip
454466
with:
455467
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}

.github/workflows/nightly-verify.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ defaults:
3939
# 'bash' will expand to -eo pipefail
4040
shell: bash
4141

42+
concurrency:
43+
group: ${{ github.workflow }}-${{ github.ref }}
44+
cancel-in-progress: true
45+
4246
jobs:
4347
source:
4448
# For cron: only run on the main repo, not forks
@@ -201,3 +205,30 @@ jobs:
201205
run: |
202206
pushd arrow-adbc
203207
docker compose run -e PYTHON=3.12 --rm python-debug
208+
209+
source-verify-docker:
210+
name: "Verify Source (OS)/${{ matrix.os }} ${{ matrix.version }}"
211+
runs-on: ubuntu-latest
212+
strategy:
213+
max-parallel: 2
214+
matrix:
215+
include:
216+
- os: ubuntu
217+
version: "22.04"
218+
- os: ubuntu
219+
version: "24.04"
220+
steps:
221+
- uses: actions/checkout@v4
222+
with:
223+
fetch-depth: 0
224+
path: arrow-adbc
225+
persist-credentials: false
226+
submodules: recursive
227+
228+
- name: Verify
229+
env:
230+
OS: ${{ matrix.os }}
231+
OS_VERSION: ${{ matrix.version }}
232+
run: |
233+
pushd arrow-adbc
234+
env ${OS@U}=${OS_VERSION} docker compose run --rm verify-all-${OS}

.github/workflows/packaging.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ on:
2525
- ".env"
2626
- "c/**"
2727
- "ci/**"
28+
- "dev/release/verify-apt.sh"
29+
- "dev/release/verify-yum.sh"
2830
- "glib/**"
2931
- "python/**"
3032
- "ruby/**"
@@ -344,7 +346,7 @@ jobs:
344346
mv apache-arrow-adbc-$VERSION.tar.gz adbc/ci/linux-packages/
345347
346348
- name: Set up Ruby
347-
uses: ruby/setup-ruby@ca041f971d66735f3e5ff1e21cc13e2d51e7e535 # v1.233.0
349+
uses: ruby/setup-ruby@eaecf785f6a34567a6d97f686bbb7bccc1ac1e5c # v1.237.0
348350
with:
349351
ruby-version: ruby
350352

c/driver/bigquery/meson.build

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ pkg.generate(
5555
filebase: 'adbc-driver-bigquery',
5656
)
5757

58+
adbc_driver_bigquery_dep = declare_dependency(
59+
include_directories: include_dir,
60+
link_with: adbc_driver_bigquery_lib,
61+
)
62+
5863
exc = executable(
5964
'adbc-driver-bigquery-test',
6065
'bigquery_test.cc',

c/driver/flightsql/meson.build

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ pkg.generate(
5555
filebase: 'adbc-driver-flightsql',
5656
)
5757

58+
adbc_driver_flightsql_dep = declare_dependency(
59+
include_directories: include_dir,
60+
link_with: adbc_driver_flightsql_lib,
61+
)
62+
5863
exc = executable(
5964
'adbc-driver-flightsql-test',
6065
'dremio_flightsql_test.cc',

c/driver/postgresql/meson.build

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ pkg.generate(
4141
filebase: 'adbc-driver-postgresql',
4242
)
4343

44+
adbc_driver_postgresql_dep = declare_dependency(
45+
include_directories: include_dir,
46+
link_with: adbc_postgres_driver_lib,
47+
)
48+
4449
postgres_tests = {
4550
'driver-postgresql': {
4651
'src_name': 'driver_postgresql',

c/driver/snowflake/meson.build

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ pkg.generate(
5555
filebase: 'adbc-driver-snowflake',
5656
)
5757

58+
adbc_driver_snowflake_dep = declare_dependency(
59+
include_directories: include_dir,
60+
link_with: adbc_driver_snowflake_lib,
61+
)
62+
5863
exc = executable(
5964
'adbc-driver-snowflake-test',
6065
'snowflake_test.cc',

c/driver/sqlite/meson.build

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ pkg.generate(
3939
filebase: 'adbc-driver-sqlite',
4040
)
4141

42+
adbc_driver_sqlite_dep = declare_dependency(
43+
include_directories: include_dir,
44+
link_with: adbc_sqlite3_driver_lib,
45+
)
46+
4247
exc = executable(
4348
'adbc-driver-sqlite-test',
4449
sources: ['sqlite_test.cc'],

c/driver_manager/meson.build

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,8 @@ pkg.generate(
3232
libraries: [adbc_driver_manager_lib],
3333
filebase: 'adbc-driver-manager',
3434
)
35+
36+
adbc_driver_manager_dep = declare_dependency(
37+
include_directories: include_dir,
38+
link_with: adbc_driver_manager_lib,
39+
)

ci/scripts/verify_ubuntu.sh

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
#!/bin/bash
2+
#
3+
# Licensed to the Apache Software Foundation (ASF) under one
4+
# or more contributor license agreements. See the NOTICE file
5+
# distributed with this work for additional information
6+
# regarding copyright ownership. The ASF licenses this file
7+
# to you under the Apache License, Version 2.0 (the
8+
# "License"); you may not use this file except in compliance
9+
# with the License. You may obtain a copy of the License at
10+
#
11+
# http://www.apache.org/licenses/LICENSE-2.0
12+
#
13+
# Unless required by applicable law or agreed to in writing,
14+
# software distributed under the License is distributed on an
15+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+
# KIND, either express or implied. See the License for the
17+
# specific language governing permissions and limitations
18+
# under the License.
19+
#
20+
21+
# Test the validation script using system dependencies instead of Conda. This
22+
# script is meant for automation (e.g. Docker), not a local/developer machine
23+
# (except via Docker).
24+
25+
set -euo pipefail
26+
27+
main() {
28+
local -r source_dir="${1}"
29+
30+
# Install all the dependencies we need for all the subprojects
31+
32+
# When installing tzdata, don't block and wait for user input
33+
export DEBIAN_FRONTEND=noninteractive
34+
export TZ=Etc/UTC
35+
36+
apt update
37+
apt install -y \
38+
apt-transport-https \
39+
build-essential \
40+
ca-certificates \
41+
cmake \
42+
curl \
43+
dirmngr \
44+
git \
45+
gobject-introspection \
46+
gpg \
47+
libgirepository1.0-dev \
48+
libglib2.0-dev \
49+
libgmock-dev \
50+
libgtest-dev \
51+
libpq-dev \
52+
libsqlite3-dev \
53+
lsb-release \
54+
ninja-build \
55+
pkg-config \
56+
protobuf-compiler \
57+
python3 \
58+
python3-dev \
59+
python3-pip \
60+
python3-venv \
61+
r-base \
62+
ruby-full \
63+
software-properties-common \
64+
wget
65+
66+
# Install Java
67+
68+
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
69+
gpg --dearmor | \
70+
tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
71+
72+
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | \
73+
tee /etc/apt/sources.list.d/adoptium.list
74+
75+
# Install Arrow GLib
76+
wget https://packages.apache.org/artifactory/arrow/$(lsb_release --id --short | tr 'A-Z' 'a-z')/apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
77+
apt install -y -V ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb
78+
79+
apt update
80+
apt install -y \
81+
libarrow-dev \
82+
libarrow-glib-dev \
83+
temurin-21-jdk
84+
85+
# Install Maven
86+
wget https://dlcdn.apache.org/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.tar.gz
87+
mkdir -p /opt/maven
88+
tar -C /opt/maven -xzvf apache-maven-3.9.9-bin.tar.gz --strip-components=1
89+
export PATH=/opt/maven/bin:$PATH
90+
91+
# Check if protoc is too old (Ubuntu 22.04). If so, install it from
92+
# upstream instead.
93+
if ! protoc --version | \
94+
awk '{print $2}{print "3.15"}' | \
95+
sort --version-sort | \
96+
head -n1 | \
97+
grep -E '^3\.15.*$' >/dev/null ; then
98+
echo "protoc is too old"
99+
100+
wget -O protoc.zip https://github.com/protocolbuffers/protobuf/releases/download/v30.2/protoc-30.2-linux-x86_64.zip
101+
unzip -o protoc.zip -d /usr/local -x readme.txt
102+
fi
103+
104+
# We run under Docker and this is necessary since the source dir is
105+
# typically mounted as a volume
106+
git config --global --add safe.directory "${source_dir}"
107+
108+
"${source_dir}/dev/release/verify-release-candidate.sh"
109+
}
110+
111+
main "$@"

0 commit comments

Comments
 (0)