Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
e2c3238
Attempt to build static lib based on manylinux2014
nealrichardson Dec 11, 2019
c51c817
Refine build_arrow_static.sh and add wiring in r/configure to consume…
nealrichardson Dec 13, 2019
02264e2
Move build script to r/tools
nealrichardson Dec 13, 2019
ac24186
Experiment with calling install script from R package
nealrichardson Dec 16, 2019
a347a44
Some debug
nealrichardson Dec 16, 2019
be61f15
Local debugging
nealrichardson Dec 16, 2019
ae7571c
Don't fail without ninja
nealrichardson Dec 16, 2019
aea3979
Remove ninja from travis
nealrichardson Dec 16, 2019
184082a
Fix ninja detection
nealrichardson Dec 16, 2019
ad632e6
Restore build flags
nealrichardson Dec 16, 2019
fb21b15
Make sure the full test suite works
nealrichardson Dec 16, 2019
655f8de
Allow r/configure to build cpp libs if they're found at ../cpp
nealrichardson Dec 18, 2019
52a0465
Sketch out full logic of linux install script
nealrichardson Dec 18, 2019
4838938
Add vignette explaining how Linux installation works
nealrichardson Dec 19, 2019
c323a1c
Prune some exploratory work
nealrichardson Dec 19, 2019
2259026
Apply suggestions from @kou
nealrichardson Dec 21, 2019
5e9382b
Download cmake if necessary
nealrichardson Dec 28, 2019
ac5eff6
More iteration on linux build script: works on rhub/ubuntu-cpp-release
nealrichardson Dec 30, 2019
07b21c5
Alphabetize cmake flags
nealrichardson Dec 30, 2019
6f07ebf
More tempfile
nealrichardson Dec 30, 2019
b256c27
Refactor linuxlibs.R and add r-hub builders to docker-compose
nealrichardson Jan 2, 2020
801863b
:rat:
nealrichardson Jan 2, 2020
eaefdce
Add R jobs to GHA
nealrichardson Jan 2, 2020
364f639
Fix dockerhub name for centos image
nealrichardson Jan 2, 2020
f1672b5
utils:: and let's not fail fast for now
nealrichardson Jan 2, 2020
111fa06
Some fixes from the build matrix
nealrichardson Jan 2, 2020
fb27bf8
Try to find R better
nealrichardson Jan 2, 2020
f71034c
Oops
nealrichardson Jan 2, 2020
970e6cc
Build triage and start updating vignette
nealrichardson Jan 3, 2020
d156fb1
Docs
nealrichardson Jan 3, 2020
908c3e9
Add rstudio builds to matrix; generalize docker-compose job
nealrichardson Jan 3, 2020
ce7ae24
Oops
nealrichardson Jan 3, 2020
68d2320
Add R version to rstudio docker
nealrichardson Jan 3, 2020
801e207
Better detect OS for RSPM binaries. Build bison/m4 if necessary
nealrichardson Jan 3, 2020
fc6cbf2
Try putting bison on path
nealrichardson Jan 3, 2020
d6c81e8
Debug m4
nealrichardson Jan 3, 2020
75f2e60
More debugging (curse you thrift)
nealrichardson Jan 4, 2020
d52d353
Fix bison installation
nealrichardson Jan 4, 2020
1d28428
temporarily skip hive test
nealrichardson Jan 4, 2020
79b208b
Remove centos8, add fedora
nealrichardson Jan 4, 2020
11664d2
See if downgrading flex solves the segfault
nealrichardson Jan 4, 2020
5695a1c
Re-skip fedora for now
nealrichardson Jan 4, 2020
26dee63
Cleanup and update docs
nealrichardson Jan 6, 2020
7504e3d
Oops.
nealrichardson Jan 6, 2020
e0cd128
Oops again
nealrichardson Jan 6, 2020
83cb080
Remove accidental checkin of cpp zip file
nealrichardson Jan 6, 2020
9381756
Skip these new tests too for ARROW-7500
nealrichardson Jan 6, 2020
4c5e5d5
Better test fix/skip
nealrichardson Jan 6, 2020
f8ffcfd
which ninja
nealrichardson Jan 6, 2020
efef71e
Try downgrading m4
nealrichardson Jan 6, 2020
6110242
Revert "Try downgrading m4"
nealrichardson Jan 6, 2020
692efc5
Resolve some PR feedback
nealrichardson Jan 8, 2020
79e4793
Fix for file move
nealrichardson Jan 8, 2020
24f3bba
Revert "Skip brew test" (oops, wrong branch)
nealrichardson Jan 8, 2020
cf32c3c
Remove docker from various docker-compose variable names
nealrichardson Jan 9, 2020
38bac3e
Fill in some GHA self references
nealrichardson Jan 9, 2020
ffa2eaf
Reorganize R CI jobs and wire new ones in crossbow
nealrichardson Jan 9, 2020
0d32395
Fix revert mess
nealrichardson Jan 9, 2020
4714634
Name GHA jobs to match the docker image name
nealrichardson Jan 9, 2020
29505fb
Copy-paste better
nealrichardson Jan 9, 2020
fa5bdf1
Swap out GHA/crossbow jobs because the old one caches better/is faster
nealrichardson Jan 10, 2020
00484c6
Make thirdparty verbosity conditional
nealrichardson Jan 10, 2020
518d977
We're putting binaries under bin/ [skip ci]
nealrichardson Jan 11, 2020
cd04937
:nail_care:
nealrichardson Jan 11, 2020
7d32bc1
cmake list(APPEND ...)
nealrichardson Jan 11, 2020
ac7680c
ARROW_USE_PKG_CONFIG
nealrichardson Jan 11, 2020
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
5 changes: 4 additions & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,14 @@ GO=1.12
NODE=11
MAVEN=3.5.4
JDK=8
R=3.6.1
PANDAS=latest
DASK=latest
TURBODBC=latest
HDFS=2.9.2
SPARK=master
DOTNET=2.1
R=3.6
# These correspond to images on Docker Hub that contain R, e.g. rhub/ubuntu-gcc-release:latest
R_ORG=rhub
R_IMAGE=ubuntu-gcc-release
R_TAG=latest
6 changes: 6 additions & 0 deletions .github/workflows/dev_cron.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,12 @@
name: Dev Cron

on:
push:
paths:
- '.github/workflows/dev_cron.yml'
pull_request:
paths:
- '.github/workflows/dev_cron.yml'
schedule:
- cron: |
*/15 * * * *
Expand Down
29 changes: 13 additions & 16 deletions .github/workflows/r.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ on:
- 'r/**'

jobs:

ubuntu:
name: AMD64 Ubuntu ${{ matrix.ubuntu }} R ${{ matrix.r }}
runs-on: ubuntu-latest
Expand Down Expand Up @@ -71,39 +70,37 @@ jobs:
-p ${{ secrets.DOCKERHUB_TOKEN }}
docker-compose push ubuntu-r

conda:
name: AMD64 Conda R ${{ matrix.r }}
rstudio:
name: "rstudio/r-base:${{ matrix.r_version }}-${{ matrix.r_image }}"
runs-on: ubuntu-latest
if: github.event_name == 'push'
strategy:
fail-fast: false
matrix:
r: [3.6]
# See https://hub.docker.com/r/rstudio/r-base
r_version: ["3.6"]
r_image:
- centos7
env:
R: ${{ matrix.r }}
R_ORG: "rstudio"
R_IMAGE: "r-base"
R_TAG: ${{ matrix.r_version }}-${{ matrix.r_image }}
steps:
- name: Checkout Arrow
uses: actions/checkout@v1
with:
submodules: true
- name: Docker Pull
shell: bash
run: |
docker-compose pull --ignore-pull-failures conda-cpp
docker-compose pull --ignore-pull-failures conda-r
run: docker-compose pull --ignore-pull-failures r
- name: Docker Build
shell: bash
run: |
docker-compose build conda-cpp
docker-compose build conda-r
run: docker-compose build r
- name: Docker Run
shell: bash
run: docker-compose run conda-r
run: docker-compose run r
- name: Docker Push
if: success() && github.event_name == 'push' && github.repository == 'apache/arrow'
continue-on-error: true
shell: bash
run: |
docker login -u ${{ secrets.DOCKERHUB_USER }} \
-p ${{ secrets.DOCKERHUB_TOKEN }}
docker-compose push conda-r
docker-compose push r
12 changes: 3 additions & 9 deletions ci/docker/linux-apt-r.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -54,16 +54,10 @@ RUN apt-get update -y && \

# Ensure parallel R package installation, set CRAN repo mirror,
# and use pre-built binaries where possible
RUN printf "\
options(Ncpus = parallel::detectCores(), \
repos = 'https://demo.rstudiopm.com/all/__linux__/"$(lsb_release -cs)"/latest', \
HTTPUserAgent = sprintf(\
'R/%%s R (%%s)', getRversion(), \
paste(getRversion(), R.version\$platform, R.version\$arch, R.version\$os)))\n" \
>> /etc/R/Rprofile.site

COPY ci/etc/rprofile /arrow/ci/etc/
RUN cat /arrow/ci/etc/rprofile >> $(R RHOME)/etc/Rprofile.site
# Also ensure parallel compilation of C/C++ code
RUN echo "MAKEFLAGS=-j$(R --slave -e 'cat(parallel::detectCores())')" >> /usr/lib/R/etc/Makeconf
RUN echo "MAKEFLAGS=-j$(R --slave -e 'cat(parallel::detectCores())')" >> $(R RHOME)/etc/Makeconf

COPY ci/scripts/r_deps.sh /arrow/ci/scripts/
COPY r/DESCRIPTION /arrow/r/
Expand Down
37 changes: 37 additions & 0 deletions ci/docker/linux-r.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# 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.

# General purpose Dockerfile to take a Docker image containing R
# and install Arrow R package dependencies

ARG base
FROM ${base}

# Make sure R is on the path for the R-hub devel versions (where RPREFIX is set in its dockerfile)
ENV PATH "${RPREFIX}/bin:${PATH}"
# Ensure parallel R package installation, set CRAN repo mirror,
# and use pre-built binaries where possible
COPY ci/etc/rprofile /arrow/ci/etc/
RUN cat /arrow/ci/etc/rprofile >> $(R RHOME)/etc/Rprofile.site
# Also ensure parallel compilation of C/C++ code
RUN echo "MAKEFLAGS=-j$(R --slave -e 'cat(parallel::detectCores())')" >> $(R RHOME)/etc/Makeconf
# Workaround for html help install failure; see https://github.com/r-lib/devtools/issues/2084#issuecomment-530912786
RUN Rscript -e 'x <- file.path(R.home("doc"), "html"); if (!file.exists(x)) {dir.create(x, recursive=TRUE); file.copy(system.file("html/R.css", package="stats"), x)}'

COPY ci/scripts/r_deps.sh /arrow/ci/scripts/
COPY r/DESCRIPTION /arrow/r/
RUN /arrow/ci/scripts/r_deps.sh /arrow
51 changes: 51 additions & 0 deletions ci/etc/rprofile
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
.pick_cran <- function() {
# Return a CRAN repo URL, preferring RSPM binaries if available for this OS
rspm_template <- "https://demo.rstudiopm.com/all/__linux__/%s/latest"
supported_os <- c("xenial", "bionic", "centos7", "opensuse42", "opensuse15")

if (nzchar(Sys.which("lsb_release"))) {
os <- tolower(system("lsb_release -cs", intern = TRUE))
if (os %in% supported_os) {
return(sprintf(rspm_template, os))
}
}
if (file.exists("/etc/os-release")) {
os_release <- readLines("/etc/os-release")
vals <- sub("^.*=(.*)$", "\\1", os_release)
os <- intersect(vals, supported_os)
if (length(os)) {
# e.g. "bionic"
return(sprintf(rspm_template, os))
} else {
names(vals) <- sub("^(.*)=.*$", "\\1", os_release)
if (vals["ID"] == "opensuse") {
version <- sub('^"?([0-9]+).*"?.*$', "\\1", vals["VERSION_ID"])
os <- paste0("opensuse", version)
if (os %in% supported_os) {
return(sprintf(rspm_template, os))
}
}
}
}
if (file.exists("/etc/system-release")) {
# Something like "CentOS Linux release 7.7.1908 (Core)"
system_release <- tolower(utils::head(readLines("/etc/system-release"), 1))
# Extract from that the distro and the major version number
os <- sub("^([a-z]+) .* ([0-9]+).*$", "\\1\\2", system_release)
if (os %in% supported_os) {
return(sprintf(rspm_template, os))
}
}

return("https://cloud.r-project.org")
}

options(
Ncpus = parallel::detectCores(),
repos = tryCatch(.pick_cran(), error = function(e) "https://cloud.r-project.org"),
HTTPUserAgent = sprintf(
'R/%s R (%s)',
getRversion(),
paste(getRversion(), R.version$platform, R.version$arch, R.version$os)
)
)
13 changes: 9 additions & 4 deletions cpp/cmake_modules/ThirdpartyToolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1038,20 +1038,25 @@ macro(build_thrift)

# Thrift also uses boost. Forward important boost settings if there were ones passed.
if(DEFINED BOOST_ROOT)
set(THRIFT_CMAKE_ARGS ${THRIFT_CMAKE_ARGS} "-DBOOST_ROOT=${BOOST_ROOT}")
list(APPEND THRIFT_CMAKE_ARGS "-DBOOST_ROOT=${BOOST_ROOT}")
endif()
if(DEFINED Boost_NAMESPACE)
set(THRIFT_CMAKE_ARGS ${THRIFT_CMAKE_ARGS} "-DBoost_NAMESPACE=${Boost_NAMESPACE}")
list(APPEND THRIFT_CMAKE_ARGS "-DBoost_NAMESPACE=${Boost_NAMESPACE}")
endif()

if(DEFINED FLEX_ROOT)
# thrift hasn't set the cmake policy that lets us use _ROOT, so work around
list(APPEND THRIFT_CMAKE_ARGS "-DFLEX_EXECUTABLE=${FLEX_ROOT}/flex")
endif()

set(THRIFT_STATIC_LIB_NAME "${CMAKE_STATIC_LIBRARY_PREFIX}thrift")
if(MSVC)
if(ARROW_USE_STATIC_CRT)
set(THRIFT_STATIC_LIB_NAME "${THRIFT_STATIC_LIB_NAME}mt")
set(THRIFT_CMAKE_ARGS ${THRIFT_CMAKE_ARGS} "-DWITH_MT=ON")
list(APPEND THRIFT_CMAKE_ARGS "-DWITH_MT=ON")
else()
set(THRIFT_STATIC_LIB_NAME "${THRIFT_STATIC_LIB_NAME}md")
set(THRIFT_CMAKE_ARGS ${THRIFT_CMAKE_ARGS} "-DWITH_MT=OFF")
list(APPEND THRIFT_CMAKE_ARGS "-DWITH_MT=OFF")
endif()
endif()
if(${UPPERCASE_BUILD_TYPE} STREQUAL "DEBUG")
Expand Down
1 change: 1 addition & 0 deletions dev/release/rat_exclude_files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
*.json
*.snap
.github/ISSUE_TEMPLATE.md
ci/etc/rprofile
cpp/CHANGELOG_PARQUET.md
cpp/src/arrow/io/mman.h
cpp/src/arrow/util/random.h
Expand Down
50 changes: 50 additions & 0 deletions dev/tasks/r/azure.linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# 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.

jobs:
- job: linux
pool:
vmImage: ubuntu-latest
timeoutInMinutes: 360
steps:
- script: |
set -ex
git clone --no-checkout {{ arrow.remote }} arrow
git -C arrow fetch -t {{ arrow.remote }} {{ arrow.branch }}
git -C arrow checkout FETCH_HEAD
git -C arrow submodule update --init --recursive
displayName: Clone arrow

- script: |
set -ex
docker -v
docker-compose -v
cd arrow
R_ORG={{ r_org }}
R_IMAGE={{ r_image }}
R_TAG={{ r_tag }}
docker-compose pull --ignore-pull-failures r
docker-compose build r
displayName: Docker build

- script: |
set -ex
cd arrow
R_ORG={{ r_org }}
R_IMAGE={{ r_image }}
R_TAG={{ r_tag }}
docker-compose run r
displayName: Docker run
Loading