Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
c8a6c6c
Nightly verification tasks and conda-less verification
kszucs Feb 2, 2022
d90fdc2
Disable flaky JS test case
kszucs Feb 2, 2022
2e6b5de
Refactor env setup
kszucs Feb 2, 2022
ae7bc15
Bundled GTest
kszucs Feb 2, 2022
6ad8393
Fix M1 template
kszucs Feb 2, 2022
3e69e7b
Missing target from M1 builds; missing certificates on almalinux
kszucs Feb 3, 2022
8995ab1
Fix test paths
kszucs Feb 3, 2022
d342fea
Actually activate the virtualenv
kszucs Feb 3, 2022
d1a864a
Python38
kszucs Feb 3, 2022
3679321
Note about removing .env parsing from cpp/CMakeLists.txt
kszucs Feb 4, 2022
14d611e
Change uild path
kszucs Feb 4, 2022
b793c6e
Unquote variable in batch scripts
kszucs Feb 4, 2022
5091c7b
Integration paths
kszucs Feb 4, 2022
551aad6
Prefer conda llvm over system llvm if llvm source is set to conda
kszucs Feb 4, 2022
de5438b
Clone the testing submodules to the default locations
kszucs Feb 4, 2022
1f7494f
Skip on missing python
kszucs Feb 4, 2022
16130ce
Activate conda env after installing compilers package
kszucs Feb 4, 2022
3a5863f
Testing data paths for windows
kszucs Feb 4, 2022
4efc60e
Fix bash condition; disable plasma on M1
kszucs Feb 4, 2022
2da1e14
Enable plasma by default
kszucs Feb 4, 2022
3444d13
LLVM
kszucs Feb 4, 2022
dbc752b
delayed expansion
kszucs Feb 4, 2022
c62c6d6
Install nodejs and go using conda
kszucs Feb 4, 2022
6413c98
Locate arrow-tools jars
kszucs Feb 4, 2022
bf0630b
LD_LIBRARY_PATH
kszucs Feb 4, 2022
12008b1
CMake format
kszucs Feb 14, 2022
8979215
Pin CMake version
kszucs Feb 14, 2022
599a2da
Remove artifact argument from the verification script
kszucs Feb 16, 2022
1c6264a
Address review comments
kszucs Feb 16, 2022
9af80ae
More readable output
kszucs Feb 16, 2022
5f85b9f
Missing venv; dotnet error in conda image
kszucs Feb 16, 2022
7eda3da
Correctly select verification tasks in docker containers; don't build…
kszucs Feb 17, 2022
a84eb23
Fix c-glib conda build; fixed docker-compose config
kszucs Feb 17, 2022
74a10fe
Fix c++ build dir
kszucs Feb 18, 2022
de8490a
Install yarn locally
kszucs Feb 18, 2022
1f7a144
Install yarn globally only if it doesn't already exist
kszucs Feb 18, 2022
7fd2ca9
Fix binary verification
kszucs Feb 18, 2022
c7c9b25
Define windows variables earlier
kszucs Feb 19, 2022
727e012
update working directory for win tasks
kszucs Feb 19, 2022
acb65cc
Fixing a number of binary tests
kszucs Feb 19, 2022
9db449e
Fix wheel verification env on macos
kszucs Feb 20, 2022
ca42bd0
Fix wheel verification
kszucs Feb 21, 2022
2339925
Fix template for macos wheel verificaiton
kszucs Feb 21, 2022
09bc398
Explicitly set PYTHONPATH in venv
kszucs Feb 28, 2022
0337651
Missing parenthesis
kszucs Feb 28, 2022
0055337
Set pythonpath instead of pythonhome
kszucs Feb 28, 2022
6f6f422
Only set pythonpath for the c++ tests
kszucs Feb 28, 2022
e8c9754
optionally test plasma
kszucs Mar 1, 2022
59771c8
restore archery python restriction
kszucs Mar 1, 2022
fa45c9b
Define dockerfiles for rc verification
kszucs Mar 1, 2022
f93d7d0
Fix crossbow template
kszucs Mar 1, 2022
21b2074
Fix compose commands
kszucs Mar 1, 2022
b327ace
Missing python-dev
kszucs Mar 1, 2022
51df8ac
Install llvm-12 in the ubuntu 18.04 image
kszucs Mar 1, 2022
821caa0
CMake format
kszucs Mar 1, 2022
1f558eb
Install tzdata
kszucs Mar 1, 2022
7cce556
Install venv
kszucs Mar 1, 2022
457a6a1
Remove comment
kszucs Mar 1, 2022
e3951e1
python3.7-venv
kszucs Mar 1, 2022
e202be7
Use ninja; upgrade pip in virtualenv
kszucs Mar 1, 2022
66f824b
apply patch
kszucs Mar 2, 2022
cfe1f82
Actually exec c_glib tests
kszucs Mar 3, 2022
a2acdbb
address review comments
kszucs Mar 4, 2022
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
3 changes: 2 additions & 1 deletion ci/conda_env_cpp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ boost-cpp>=1.68.0
brotli
bzip2
c-ares
cmake
# Required due to the AWS SDK C++ pin
cmake<3.22
gflags
glog
gmock>=1.10.0
Expand Down
4 changes: 2 additions & 2 deletions ci/conda_env_gandiva.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.

clang=11
llvmdev=11
clang>=11
llvmdev>=11
57 changes: 57 additions & 0 deletions ci/docker/almalinux-8-verify-rc.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

ARG arch=amd64
FROM ${arch}/almalinux:8

# A script to install dependencies required for release
# verification Red Hat Enterprise Linux 8 clones in particular
# on AlmaLinux 8 and Rocky Linux 8

RUN dnf -y install 'dnf-command(config-manager)' && \
dnf config-manager --set-enabled powertools && \
dnf -y update && \
dnf -y module disable nodejs && \
dnf -y module enable nodejs:16 && \
dnf -y module disable ruby && \
dnf -y module enable ruby:2.7 && \
dnf -y groupinstall "Development Tools" && \
dnf -y install \
cmake \
git \
gobject-introspection-devel \
java-1.8.0-openjdk-devel \
libcurl-devel \
llvm-devel \
llvm-toolset \
maven \
ncurses-devel \
ninja-build \
nodejs \
openssl-devel \
python38-devel \
python38-pip \
ruby-devel \
sqlite-devel \
wget \
which && \
dnf -y clean all

RUN python3 -m pip install -U pip && \
alternatives --set python /usr/bin/python3

RUN npm install -g yarn
60 changes: 60 additions & 0 deletions ci/docker/ubuntu-18.04-verify-rc.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

ARG arch=amd64
FROM ${arch}/ubuntu:18.04

ENV DEBIAN_FRONTEND=noninteractive

ARG llvm=12
RUN apt-get update -y -q && \
apt-get install -y -q --no-install-recommends \
apt-transport-https \
ca-certificates \
gnupg \
wget && \
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
echo "deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-${llvm} main" > \
/etc/apt/sources.list.d/llvm.list && \
apt-get update -y -q && \
apt-get install -y -q --no-install-recommends \
build-essential \
clang \
cmake \
curl \
git \
libcurl4-openssl-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libsqlite3-dev \
libssl-dev \
llvm-${llvm}-dev \
maven \
ninja-build \
openjdk-11-jdk \
pkg-config \
python3-pip \
python3.8-dev \
python3.8-venv \
ruby-dev \
wget \
tzdata && \
apt-get clean && \
rm -rf /var/lib/apt/lists*

RUN python3.8 -m pip install -U pip && \
update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
45 changes: 45 additions & 0 deletions ci/docker/ubuntu-20.04-verify-rc.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

ARG arch=amd64
FROM ${arch}/ubuntu:20.04

ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y -q && \
apt-get install -y -q --no-install-recommends \
build-essential \
clang \
cmake \
curl \
git \
libcurl4-openssl-dev \
libgirepository1.0-dev \
libglib2.0-dev \
libsqlite3-dev \
libssl-dev \
llvm-dev \
maven \
ninja-build \
openjdk-11-jdk \
pkg-config \
python3-dev \
python3-pip \
python3-venv \
ruby-dev \
wget && \
apt-get clean && \
rm -rf /var/lib/apt/lists*
45 changes: 33 additions & 12 deletions cpp/cmake_modules/FindLLVMAlt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,41 @@
#
# find_package(LLVMAlt)

set(LLVM_HINTS ${LLVM_ROOT} ${LLVM_DIR} /usr/lib /usr/share)
if(LLVM_BREW_PREFIX)
list(APPEND LLVM_HINTS ${LLVM_BREW_PREFIX})
if(DEFINED LLVM_ROOT)
# if llvm source is set to conda then prefer conda llvm over system llvm even
# if the system one is newer
foreach(ARROW_LLVM_VERSION ${ARROW_LLVM_VERSIONS})
find_package(LLVM
${ARROW_LLVM_VERSION}
CONFIG
NO_DEFAULT_PATH
HINTS
${LLVM_ROOT})
if(LLVM_FOUND)
break()
endif()
endforeach()
endif()
foreach(ARROW_LLVM_VERSION ${ARROW_LLVM_VERSIONS})
find_package(LLVM
${ARROW_LLVM_VERSION}
CONFIG
HINTS
${LLVM_HINTS})
if(LLVM_FOUND)
break()

if(NOT LLVM_FOUND)
set(LLVM_HINTS ${LLVM_ROOT} ${LLVM_DIR} /usr/lib /usr/share)
if(LLVM_BREW_PREFIX)
list(APPEND LLVM_HINTS ${LLVM_BREW_PREFIX})
endif()
endforeach()

foreach(HINT ${LLVM_HINTS})
foreach(ARROW_LLVM_VERSION ${ARROW_LLVM_VERSIONS})
find_package(LLVM
${ARROW_LLVM_VERSION}
CONFIG
HINTS
${HINT})
if(LLVM_FOUND)
break()
endif()
endforeach()
endforeach()
endif()

if(LLVM_FOUND)
# Find the libraries that correspond to the LLVM components
Expand Down
6 changes: 4 additions & 2 deletions dev/release/VERIFY.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,10 @@ download of a dependency from the internet. It is possible to run
specific verification tests by setting environment variables, for example

```console
% TEST_DEFAULT=0 TEST_GO=1 dev/release/verify-release-candidate.sh source 6.0.0 3
% TEST_YUM=1 dev/release/verify-release-candidate.sh binaries 6.0.0 3
% TEST_DEFAULT=0 TEST_SOURCE=1 dev/release/verify-release-candidate.sh 6.0.0 3
% TEST_DEFAULT=0 TEST_BINARIES=1 dev/release/verify-release-candidate.sh 6.0.0 3
% TEST_DEFAULT=0 TEST_GO=1 dev/release/verify-release-candidate.sh 6.0.0 3
% TEST_DEFAULT=0 TEST_YUM=1 dev/release/verify-release-candidate.sh 6.0.0 3
```

It is also possible to use
Expand Down
12 changes: 3 additions & 9 deletions dev/release/setup-rhel-rebuilds.sh
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@
# verification Red Hat Enterprise Linux 8 clones in particular
# on AlmaLinux 8 and Rocky Linux 8

dnf -y install \
'dnf-command(config-manager)'
dnf -y install 'dnf-command(config-manager)'
dnf config-manager --set-enabled powertools
dnf -y update
dnf -y module disable nodejs
Expand All @@ -36,20 +35,15 @@ dnf -y install \
gobject-introspection-devel \
java-1.8.0-openjdk-devel \
libcurl-devel \
libcurl-devel \
llvm-devel \
llvm-toolset \
maven \
ncurses-devel \
ncurses-devel \
ninja-build \
ninja-build \
nodejs \
openssl-devel \
python3-devel \
python3-devel \
python3-pip \
python3-pip \
python38-devel \
python38-pip \
Copy link
Member

Choose a reason for hiding this comment

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

Is there a particular reason to force Python 3.8 here?

Copy link
Member Author

Choose a reason for hiding this comment

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

Becuase archery doesn't support python 3.6 anymore and I chose to pin 3.8.

ruby-devel \
sqlite-devel \
wget \
Expand Down
2 changes: 2 additions & 0 deletions dev/release/setup-ubuntu.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ apt-get -y install \
cmake \
curl \
git \
libcurl4-openssl-dev \
Copy link
Member Author

Choose a reason for hiding this comment

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

Required for bundled S3

libgirepository1.0-dev \
libglib2.0-dev \
libsqlite3-dev \
Expand All @@ -35,5 +36,6 @@ apt-get -y install \
openjdk-11-jdk \
pkg-config \
python3-pip \
python3-venv \
ruby-dev \
wget
54 changes: 33 additions & 21 deletions dev/release/verify-release-candidate.bat
Original file line number Diff line number Diff line change
Expand Up @@ -20,30 +20,49 @@

@echo on

setlocal ENABLEDELAYEDEXPANSION

if not exist "C:\tmp\" mkdir C:\tmp
if exist "C:\tmp\arrow-verify-release" rd C:\tmp\arrow-verify-release /s /q
if not exist "C:\tmp\arrow-verify-release" mkdir C:\tmp\arrow-verify-release

set _VERIFICATION_DIR=C:\tmp\arrow-verify-release
set _VERIFICATION_DIR_UNIX=C:/tmp/arrow-verify-release
set _VERIFICATION_CONDA_ENV=%_VERIFICATION_DIR%\conda-env
set _DIST_URL=https://dist.apache.org/repos/dist/dev/arrow
set _TARBALL=apache-arrow-%1.tar.gz
set ARROW_SOURCE=%_VERIFICATION_DIR%\apache-arrow-%1
set INSTALL_DIR=%_VERIFICATION_DIR%\install

@rem Requires GNU Wget for Windows
wget --no-check-certificate -O %_TARBALL% %_DIST_URL%/apache-arrow-%1-rc%2/%_TARBALL% || exit /B 1

tar xf %_TARBALL% -C %_VERIFICATION_DIR_UNIX%

set VERSION=%1
set RC_NUMBER=%2
set TARBALL_NAME=apache-arrow-%VERSION%.tar.gz
set TARBALL_URL=https://dist.apache.org/repos/dist/dev/arrow/apache-arrow-%VERSION%-rc%RC_NUMBER%/%TARBALL_NAME%

if "%VERSION%"=="" (
set ARROW_SOURCE=%~dp0..\..\
) else (
set ARROW_SOURCE=%_VERIFICATION_DIR%\apache-arrow-%1
if "%RC_NUMBER%"=="" (
@rem verify a specific git revision
git clone https://github.com/apache/arrow.git !ARROW_SOURCE!
git -C !ARROW_SOURCE! checkout %VERSION%
) else (
@rem verify a release candidate tarball
@rem Requires GNU Wget for Windows
wget --no-check-certificate -O %TARBALL_NAME% %TARBALL_URL% || exit /B 1
tar xf %TARBALL_NAME% -C %_VERIFICATION_DIR_UNIX%
)
git clone https://github.com/apache/arrow-testing.git !ARROW_SOURCE!\testing
git clone https://github.com/apache/parquet-testing.git !ARROW_SOURCE!\cpp\submodules\parquet-testing
)

set ARROW_TEST_DATA=!ARROW_SOURCE!\testing\data
set PARQUET_TEST_DATA=!ARROW_SOURCE!\cpp\submodules\parquet-testing\data
set PYTHON=3.8

@rem Using call with conda.bat seems necessary to avoid terminating the batch
@rem script execution
call conda create --no-shortcuts -c conda-forge -f -q -y -p %_VERIFICATION_CONDA_ENV% ^
--file=ci\conda_env_cpp.txt ^
--file=ci\conda_env_python.txt ^
--file=!ARROW_SOURCE!\ci\conda_env_cpp.txt ^
--file=!ARROW_SOURCE!\ci\conda_env_python.txt ^
git ^
python=%PYTHON% ^
|| exit /B 1
Expand All @@ -57,15 +76,15 @@ call conda remove -y gtest gmock || exit /B 1
set GENERATOR=Visual Studio 15 2017 Win64
set CONFIGURATION=release

pushd %ARROW_SOURCE%
pushd !ARROW_SOURCE!

set ARROW_HOME=%INSTALL_DIR%
set PARQUET_HOME=%INSTALL_DIR%
set PATH=%INSTALL_DIR%\bin;%PATH%

@rem Build and test Arrow C++ libraries
mkdir %ARROW_SOURCE%\cpp\build
pushd %ARROW_SOURCE%\cpp\build
mkdir !ARROW_SOURCE!\cpp\build
pushd !ARROW_SOURCE!\cpp\build

@rem This is the path for Visual Studio Community 2017
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=amd64
Expand Down Expand Up @@ -97,13 +116,6 @@ cmake -G "%GENERATOR%" ^

cmake --build . --target INSTALL --config Release || exit /B 1

@rem Get testing datasets for Parquet unit tests
git clone https://github.com/apache/parquet-testing.git %_VERIFICATION_DIR%\parquet-testing
set PARQUET_TEST_DATA=%_VERIFICATION_DIR%\parquet-testing\data

git clone https://github.com/apache/arrow-testing.git %_VERIFICATION_DIR%\arrow-testing
set ARROW_TEST_DATA=%_VERIFICATION_DIR%\arrow-testing\data

@rem Needed so python-test.exe works
set PYTHONPATH_ORIGINAL=%PYTHONPATH%
set PYTHONPATH=%CONDA_PREFIX%\Lib;%CONDA_PREFIX%\Lib\site-packages;%CONDA_PREFIX%\DLLs;%CONDA_PREFIX%;%PYTHONPATH%
Expand All @@ -112,7 +124,7 @@ set PYTHONPATH=%PYTHONPATH_ORIGINAL%
popd

@rem Build and import pyarrow
pushd %ARROW_SOURCE%\python
pushd !ARROW_SOURCE!\python

pip install -r requirements-test.txt || exit /B 1

Expand Down
Loading