This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new 96e6f96 chore: Update Windows and Centos7 verification instructions
(#129)
96e6f96 is described below
commit 96e6f9669d70177b553aa48940e6abbe13b3f533
Author: Dewey Dunnington <[email protected]>
AuthorDate: Tue Feb 28 13:32:17 2023 -0400
chore: Update Windows and Centos7 verification instructions (#129)
---
dev/release/README.md | 100 +++++++++++++++++++++-----------
dev/release/verify-release-candidate.sh | 10 +---
2 files changed, 68 insertions(+), 42 deletions(-)
diff --git a/dev/release/README.md b/dev/release/README.md
index f0486f5..29c2a31 100644
--- a/dev/release/README.md
+++ b/dev/release/README.md
@@ -64,19 +64,6 @@ To run only R package verification (requires R but not CMake
or Arrow C++):
TEST_DEFAULT=0 TEST_R=1 ./verify-release-candidate.sh 0.1.0 0
```
-### Conda
-
-Using `conda`, one can install all requirements needed for verification on
Linux,
-MacOS, or Windows.
-
-```bash
-conda create --name nanoarrow-verify-rc
-conda activate nanoarrow-verify-rc
-conda config --set channel_priority strict
-
-conda install -c conda-forge git cmake bash gnupg arrow-cpp
-```
-
### MacOS
On MacOS you can install all requirements except R using
[Homebrew](https://brew.sh):
@@ -90,8 +77,6 @@ Command Line Tools (i.e., `xcode-select --install`),
[install GnuPG](https://gnupg.org/download/),
[install CMake](https://cmake.org/download/), and build Arrow C++ from source.
-<details>
-
```bash
# Download + build Arrow C++
curl https://dlcdn.apache.org/arrow/arrow-11.0.0/apache-arrow-11.0.0.tar.gz | \
@@ -99,7 +84,7 @@ curl
https://dlcdn.apache.org/arrow/arrow-11.0.0/apache-arrow-11.0.0.tar.gz | \
mkdir arrow-build && cd arrow-build
cmake ../apache-arrow-11.0.0/cpp \
-DARROW_JEMALLOC=OFF -DARROW_SIMD_LEVEL=NONE \
- # Required for Arrow on old clang
+ # Required for Arrow on old MacOS
-DCMAKE_CXX_FLAGS="-D_LIBCPP_DISABLE_AVAILABILITY" \
-DCMAKE_INSTALL_PREFIX=../arrow
cmake --build .
@@ -107,33 +92,57 @@ cmake --install . --prefix=../arrow
cd ..
# Pass location of install to the release verification script
-export NANOARROW_CMAKE_OPTIONS="-DArrow_Dir=$(pwd)/arrow/lib/cmake/Arrow
-DCMAKE_CXX_FLAGS=-D_LIBCPP_DISABLE_AVAILABILITY"
+export NANOARROW_CMAKE_OPTIONS="-DArrow_DIR=$(pwd)/arrow/lib/cmake/Arrow
-DCMAKE_CXX_FLAGS=-D_LIBCPP_DISABLE_AVAILABILITY"
```
-</details>
-
You can install R using the instructions provided on the
[R Project Download page](https://cloud.r-project.org/bin/macosx/).
+### Conda (Linux and MacOS)
+
+Using `conda`, one can install all requirements needed for verification on
Linux
+or MacOS:
+
+```bash
+conda create --name nanoarrow-verify-rc
+conda activate nanoarrow-verify-rc
+conda config --set channel_priority strict
+
+conda install -c conda-forge git cmake gnupg arrow-cpp
+```
+
### Windows
-To verify the C library on Windows, use [Conda](#conda) to supply all the
prerequisites
-for the verification script; however, you can use R and Rtools
-[installed using the official
installer](https://cloud.r-project.org/bin/windows/).
-You can verify the R package on Windows without Conda
-using Git Bash or the MSys2 Bash that ships with Rtools.
+On Windows, prerequisites can be installed using officially provided
+installers:
+[Visual Studio](https://visualstudio.microsoft.com/vs/),
+[CMake](https://cmake.org/download/), and
+[Git](https://git-scm.com/downloads) should provide the prerequisties
+to verify the C library; R and Rtools can be installed using the
+[official R-project installer](https://cloud.r-project.org/bin/windows/).
+Arrow C++ can be built from source. The version of bash provided with
+Git for Windows can be used to execute the Arrow C++ build commands and
+the verification script.
```bash
-export R_HOME="/c/Program Files/R/bin"
-TEST_DEFAULT=0 TEST_R=1 ./verify-release-candidate.sh 0.1.0 0
+# Build Arrow C++ from source
+curl https://dlcdn.apache.org/arrow/arrow-11.0.0/apache-arrow-11.0.0.tar.gz | \
+ tar -zxf -
+mkdir arrow-build && cd arrow-build
+cmake ../apache-arrow-11.0.0/cpp -DCMAKE_INSTALL_PREFIX=../arrow
+cmake --build .
+cmake --install . --prefix=../arrow --config=Debug
+cd ..
+
+# Pass location of Arrow and R to the build script
+export NANOARROW_CMAKE_OPTIONS="-DArrow_DIR=$(pwd -W)/arrow/lib/cmake/Arrow"
+export R_HOME="/c/Program Files/R/R-4.2.2"
```
### Debian/Ubuntu
On Debian/Ubuntu (e.g., `docker run --rm -it ubuntu:latest`) you can install
prerequisites using `apt`.
-<details>
-
```bash
apt-get update && apt-get install -y git cmake r-base gnupg curl
@@ -145,8 +154,6 @@ apt-get update
apt-get install -y -V libarrow-dev
```
-</details>
-
### Fedora
On recent Fedora (e.g., `docker run --rm -it fedora:latest`), you can install
all prerequisites
@@ -167,11 +174,9 @@ pacman -S git g++ make cmake r-base gnupg curl arrow
### Alpine Linux
-On Alpine Linux (e.g., `docker run --rm -it alpine:latest`), all prerequisites
are available
+On Alpine Linux (e.g., `docker run --rm -it alpine:latest`), most
prerequisites are available
using `apk add` except Arrow C++ which must be built and installed from source.
-<details>
-
```bash
apk add bash linux-headers git cmake R R-dev g++ gnupg curl
@@ -186,10 +191,35 @@ cmake --install . --prefix=../arrow
cd ..
# Pass location of Arrow to the build script
-export NANOARROW_CMAKE_OPTIONS="-DArrow_Dir=$(pwd)/arrow/lib/cmake/Arrow"
+export NANOARROW_CMAKE_OPTIONS="-DArrow_DIR=$(pwd)/arrow/lib/cmake/Arrow"
```
-</details>
+# Centos7
+
+On Centos7 (e.g., `docker run --rm -it centos:7`), most prerequisites are
+available via `yum install` except Arrow C++, which must be built from
+source. Arrow C++ 9.0.0 was the last version to support the default system
+compiler (gcc 4.8).
+
+```bash
+yum install epel-release # needed to install R
+yum install git gnupg curl R gcc-c++ cmake3
+
+# Needed for R CMD check if the en_US.UTF-8 locale is not defined
+# (e.g., in the centos:7 docker image)
+# localedef -c -f UTF-8 -i en_US en_US.UTF-8
+# export LC_ALL=en_US.UTF-8
+
+# Build Arrow C++ 9.0.0 from source
+curl https://dlcdn.apache.org/arrow/arrow-9.0.0/apache-arrow-9.0.0.tar.gz | \
+ tar -zxf -
+mkdir arrow-build && cd arrow-build
+cmake3 ../apache-arrow-9.0.0/cpp \
+ -DARROW_JEMALLOC=OFF -DARROW_SIMD_LEVEL=NONE
-DCMAKE_INSTALL_PREFIX=../arrow
+cmake3 --build .
+make install
+cd ..
+```
### Big endian
diff --git a/dev/release/verify-release-candidate.sh
b/dev/release/verify-release-candidate.sh
index b2a3456..14be446 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -174,8 +174,8 @@ setup_tempdir() {
echo "Working in sandbox ${NANOARROW_TMPDIR}"
}
-test_and_install_c() {
- show_header "Build, install, and test C library"
+test_c() {
+ show_header "Build and test C library"
mkdir -p $NANOARROW_TMPDIR/build
pushd $NANOARROW_TMPDIR/build
@@ -188,9 +188,6 @@ test_and_install_c() {
show_info "Build CMake Project"
cmake --build .
- show_info "Install CMake Project"
- cmake --install . --prefix=$NANOARROW_HOME
-
show_info "Run Tests"
ctest --output-on-failure
@@ -289,11 +286,10 @@ ensure_source_directory() {
test_source_distribution() {
- export NANOARROW_HOME=$NANOARROW_TMPDIR/install
pushd $NANOARROW_SOURCE_DIR
if [ ${TEST_C} -gt 0 ]; then
- test_and_install_c
+ test_c
fi
if [ ${TEST_C_BUNDLED} -gt 0 ]; then