This is an automated email from the ASF dual-hosted git repository. wesm pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push: new 00db153 ARROW-5631: [C++] Fix FindBoost targets with cmake3.2 00db153 is described below commit 00db153824475800a2a0974a5180d669b156b3ec Author: François Saint-Jacques <fsaintjacq...@gmail.com> AuthorDate: Fri Jun 21 17:17:51 2019 -0500 ARROW-5631: [C++] Fix FindBoost targets with cmake3.2 cmake's FindBoost pre 3.5 did not export IMPORTED targets. This also fixes the newly introduced trusty docker image. Author: François Saint-Jacques <fsaintjacq...@gmail.com> Author: Wes McKinney <wesm+...@apache.org> Closes #4605 from fsaintjacques/ARROW-5631-cmake32-boost and squashes the following commits: 9b946dad7 <Wes McKinney> Code review feedback 01f67dd65 <François Saint-Jacques> Fix R docker image 6c632072d <François Saint-Jacques> Fix c_glib PKG_CONFIG_PATH in docker 3b70ff305 <François Saint-Jacques> Fix rust docker image 4b1c29fd8 <François Saint-Jacques> ARROW-5653: Fix conda libraries 7544850a4 <François Saint-Jacques> Remove debug docker command bd85741cc <François Saint-Jacques> Add custom docker and vendor boost 78e41cc4b <François Saint-Jacques> Fix trusty docker build --- ci/docker_build_and_test_cpp.sh | 6 ++++ cpp/Dockerfile.cmake | 68 +++++++++++++++++++++++++++++++++++++++++ cpp/Dockerfile.ubuntu-trusty | 1 + dev/tasks/tests.yml | 2 +- docker-compose.yml | 8 +++-- r/Dockerfile | 18 ++++++----- r/tests/testthat/test-json.R | 4 +-- rust/Dockerfile | 3 ++ 8 files changed, 98 insertions(+), 12 deletions(-) diff --git a/ci/docker_build_and_test_cpp.sh b/ci/docker_build_and_test_cpp.sh index 99b9460..f2b9f54 100755 --- a/ci/docker_build_and_test_cpp.sh +++ b/ci/docker_build_and_test_cpp.sh @@ -24,5 +24,11 @@ pushd /build/cpp export ARROW_TEST_DATA=/arrow/testing/data export PARQUET_TEST_DATA=/arrow/cpp/submodules/parquet-testing/data +# ARROW-5653 after install target, RPATH is modified on linux. Add this such +# that libraries are found with conda. +if [[ ! -z "${CONDA_PREFIX}" ]]; then + export LD_LIBRARY_PATH=${CONDA_PREFIX}/lib +fi + ninja unittest popd diff --git a/cpp/Dockerfile.cmake b/cpp/Dockerfile.cmake new file mode 100644 index 0000000..9160cd7 --- /dev/null +++ b/cpp/Dockerfile.cmake @@ -0,0 +1,68 @@ +# 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. + +FROM ubuntu:18.04 + +# install build essentials +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update -y -q && \ + apt-get install -y -q --no-install-recommends \ + ca-certificates \ + curl \ + ccache \ + g++ \ + gcc \ + git \ + libidn11 \ + ninja-build \ + pkg-config \ + tzdata \ + wget \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +# install conda and required packages +ARG EXTRA_CONDA_PKGS +ENV PATH=/opt/conda/bin:$PATH \ + CONDA_PREFIX=/opt/conda +COPY ci/docker_install_conda.sh \ + ci/conda_env_cpp.yml \ + ci/conda_env_unix.yml \ + /arrow/ci/ +RUN arrow/ci/docker_install_conda.sh && \ + conda install -q -c conda-forge \ + --file arrow/ci/conda_env_cpp.yml \ + --file arrow/ci/conda_env_unix.yml \ + $EXTRA_CONDA_PKGS && \ + conda clean --all + +ARG CMAKE_VERSION=3.2.3 +ARG CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz +RUN curl ${CMAKE_URL} -Lo cmake-${CMAKE_VERSION}.tar.gz && \ + mkdir /opt/cmake && tar -zxvf cmake-${CMAKE_VERSION}.tar.gz -C /opt/cmake +ENV PATH=/opt/cmake/cmake-${CMAKE_VERSION}-Linux-x86_64/bin:$PATH + +ENV CC=gcc \ + CXX=g++ \ + ARROW_GANDIVA=OFF \ + ARROW_BUILD_TESTS=ON \ + ARROW_DEPENDENCY_SOURCE=CONDA \ + ARROW_HOME=$CONDA_PREFIX \ + PARQUET_HOME=$CONDA_PREFIX + +# build and test +CMD ["arrow/ci/docker_build_and_test_cpp.sh"] diff --git a/cpp/Dockerfile.ubuntu-trusty b/cpp/Dockerfile.ubuntu-trusty index d44491c..bca5177 100644 --- a/cpp/Dockerfile.ubuntu-trusty +++ b/cpp/Dockerfile.ubuntu-trusty @@ -62,6 +62,7 @@ ENV CC=gcc \ ARROW_BUILD_TESTS=ON \ ARROW_DEPENDENCY_SOURCE=SYSTEM \ ARROW_FLIGHT=OFF \ + ARROW_WITH_OPENSSL=OFF \ ARROW_GANDIVA=OFF \ ARROW_GANDIVA_JAVA=OFF \ ARROW_ORC=OFF \ diff --git a/dev/tasks/tests.yml b/dev/tasks/tests.yml index f8dc817..634e252 100644 --- a/dev/tasks/tests.yml +++ b/dev/tasks/tests.yml @@ -130,7 +130,7 @@ tasks: commands: - docker-compose build cpp - docker-compose build c_glib - - docker-compose run cpp + - docker-compose run c_glib docker-go: ci: circle diff --git a/docker-compose.yml b/docker-compose.yml index e986c11..6ff601d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -149,11 +149,15 @@ services: shm_size: 2G build: context: . - dockerfile: cpp/Dockerfile + dockerfile: cpp/Dockerfile.cmake args: - EXTRA_CONDA_PKGS: cmake=3.2 + CMAKE_VERSION: 3.2.3 environment: + # Vendor boost to avoid dealing with stale FindBoost. + ARROW_BOOST_SOURCE: "BUNDLED" ARROW_ORC: "OFF" + # uriparser requires cmake 3.3 + ARROW_FLIGHT: "OFF" PARQUET_TEST_DATA: /arrow/cpp/submodules/parquet-testing/data volumes: *ubuntu-volumes diff --git a/r/Dockerfile b/r/Dockerfile index 63ff3e7..541bc19 100644 --- a/r/Dockerfile +++ b/r/Dockerfile @@ -23,6 +23,8 @@ ENV CC=gcc \ # r-base includes tzdata. Get around interactive stop in that package ENV DEBIAN_FRONTEND=noninteractive +# workaround for install_github GitHub API rate limit +ENV CI=true # Build R # [1] https://www.digitalocean.com/community/tutorials/how-to-install-r-on-ubuntu-18-04 @@ -50,7 +52,15 @@ RUN apt-get update -y && \ texlive-latex-base && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ - Rscript -e "install.packages('devtools', repos = 'http://cran.rstudio.com')" && \ + +# So that arrowExports.* files are generated +ENV ARROW_R_DEV=TRUE + +# Tell R where it can find the source code for arrow +ENV PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/build/cpp/src/arrow:/opt/conda/lib/pkgconfig +ENV LD_LIBRARY_PATH=/opt/conda/lib/:/build/cpp/src/arrow:/arrow/r/src + +RUN Rscript -e "install.packages('devtools', repos = 'http://cran.rstudio.com')" && \ Rscript -e "devtools::install_github('romainfrancois/decor')" && \ Rscript -e "install.packages(c( \ 'Rcpp', 'dplyr', 'stringr', 'glue', 'vctrs', \ @@ -65,12 +75,6 @@ RUN apt-get update -y && \ 'lubridate'), \ repos = 'https://cran.rstudio.com')" -# So that arrowExports.* files are generated -ENV ARROW_R_DEV=TRUE - -# Tell R where it can find the source code for arrow -ENV PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/build/cpp/src/arrow:/opt/conda/lib/pkgconfig -ENV LD_LIBRARY_PATH=/opt/conda/lib/:/build/cpp/src/arrow:/arrow/r/src # build, install, test R package CMD ["/bin/bash", "-c", "/arrow/ci/docker_build_cpp.sh && \ diff --git a/r/tests/testthat/test-json.R b/r/tests/testthat/test-json.R index 206dfdd..45daf33 100644 --- a/r/tests/testthat/test-json.R +++ b/r/tests/testthat/test-json.R @@ -24,7 +24,7 @@ test_that("Can read json file with scalars columns (ARROW-5503)", { { "hello": 3.25, "world": null } { "hello": 3.125, "world": null, "yo": "\u5fcd" } { "hello": 0.0, "world": true, "yo": null } - ', tf) + ', tf, useBytes=TRUE) tab1 <- read_json_arrow(tf, as_tibble = FALSE) tab2 <- read_json_arrow(mmap_open(tf), as_tibble = FALSE) @@ -52,7 +52,7 @@ test_that("read_json_arrow() converts to tibble", { { "hello": 3.25, "world": null } { "hello": 3.125, "world": null, "yo": "\u5fcd" } { "hello": 0.0, "world": true, "yo": null } - ', tf) + ', tf, useBytes=TRUE) tab1 <- read_json_arrow(tf) tab2 <- read_json_arrow(mmap_open(tf)) diff --git a/rust/Dockerfile b/rust/Dockerfile index 77eba7b..a6e0463 100644 --- a/rust/Dockerfile +++ b/rust/Dockerfile @@ -23,4 +23,7 @@ ENV CARGO_TARGET_DIR=/build/rust COPY rust/Cargo.toml /arrow/rust/Cargo.toml WORKDIR /arrow/rust +ENV ARROW_TEST_DATA=/arrow/testing/data +ENV PARQUET_TEST_DATA=/arrow/cpp/submodules/parquet-testing/data + CMD ["cargo", "test"]