Removed unused files (#22)
* Removed unused files.
* Removed un-used files.
diff --git a/.dockerignore b/.dockerignore
deleted file mode 100644
index 36732a2..0000000
--- a/.dockerignore
+++ /dev/null
@@ -1,59 +0,0 @@
-# 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.
-
-# Turn .dockerignore to .dockerallow by excluding everything and explicitly
-# allowing specific files and directories. This enables us to quickly add
-# dependency files to the docker content without scanning the whole directory.
-# This setup requires to all of our docker containers have arrow's source
-# as a mounted directory.
-
-# exclude everything
-**
-
-# include explicitly
-!ci/**
-!c_glib/Gemfile
-!dev/archery/requirements*.txt
-!python/requirements*.txt
-!python/manylinux1/**
-!python/manylinux2010/**
-!r/DESCRIPTION
-!ruby/Gemfile
-!ruby/red-arrow/Gemfile
-!ruby/red-arrow/lib/arrow/version.rb
-!ruby/red-arrow/red-arrow.gemspec
-!ruby/red-arrow-cuda/Gemfile
-!ruby/red-arrow-cuda/lib/arrow-cuda/version.rb
-!ruby/red-arrow-cuda/red-arrow-cuda.gemspec
-!ruby/red-gandiva/Gemfile
-!ruby/red-gandiva/lib/gandiva/version.rb
-!ruby/red-gandiva/red-gandiva.gemspec
-!ruby/red-parquet/Gemfile
-!ruby/red-parquet/lib/parquet/version.rb
-!ruby/red-parquet/red-parquet.gemspec
-!ruby/red-plasma/Gemfile
-!ruby/red-plasma/lib/plasma/version.rb
-!ruby/red-plasma/red-plasma.gemspec
-!rust/Cargo.toml
-!rust/arrow/Cargo.toml
-!rust/arrow/benches
-!rust/arrow-flight/Cargo.toml
-!rust/parquet/Cargo.toml
-!rust/parquet/build.rs
-!rust/parquet_derive/Cargo.toml
-!rust/parquet_derive_test/Cargo.toml
-!rust/integration-testing/Cargo.toml
diff --git a/ci/appveyor-cpp-build.bat b/ci/appveyor-cpp-build.bat
deleted file mode 100644
index 6b93093..0000000
--- a/ci/appveyor-cpp-build.bat
+++ /dev/null
@@ -1,162 +0,0 @@
-@rem Licensed to the Apache Software Foundation (ASF) under one
-@rem or more contributor license agreements. See the NOTICE file
-@rem distributed with this work for additional information
-@rem regarding copyright ownership. The ASF licenses this file
-@rem to you under the Apache License, Version 2.0 (the
-@rem "License"); you may not use this file except in compliance
-@rem with the License. You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing,
-@rem software distributed under the License is distributed on an
-@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@rem KIND, either express or implied. See the License for the
-@rem specific language governing permissions and limitations
-@rem under the License.
-
-@echo on
-
-git config core.symlinks true
-git reset --hard
-
-@rem Retrieve git submodules, configure env var for Parquet unit tests
-git submodule update --init || exit /B
-
-set ARROW_TEST_DATA=%CD%\testing\data
-set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data
-
-@rem
-@rem In the configurations below we disable building the Arrow static library
-@rem to save some time. Unfortunately this will still build the Parquet static
-@rem library because of PARQUET-1420 (Thrift-generated symbols not exported in DLL).
-@rem
-if "%JOB%" == "Build_Debug" (
- mkdir cpp\build-debug
- pushd cpp\build-debug
-
- cmake -G "%GENERATOR%" ^
- -DARROW_BOOST_USE_SHARED=OFF ^
- -DARROW_BUILD_EXAMPLES=ON ^
- -DARROW_BUILD_STATIC=OFF ^
- -DARROW_BUILD_TESTS=ON ^
- -DARROW_CXXFLAGS="/MP" ^
- -DARROW_ENABLE_TIMING_TESTS=OFF ^
- -DARROW_USE_PRECOMPILED_HEADERS=OFF ^
- -DARROW_VERBOSE_THIRDPARTY_BUILD=OFF ^
- -DCMAKE_BUILD_TYPE="Debug" ^
- -DCMAKE_UNITY_BUILD=ON ^
- .. || exit /B
-
- cmake --build . --config Debug || exit /B
- ctest --output-on-failure -j2 || exit /B
- popd
-
- @rem Finish Debug build successfully
- exit /B 0
-)
-
-call activate arrow
-
-@rem Use Boost from Anaconda
-set BOOST_ROOT=%CONDA_PREFIX%\Library
-set BOOST_LIBRARYDIR=%CONDA_PREFIX%\Library\lib
-
-@rem The "main" C++ build script for Windows CI
-@rem (i.e. for usual configurations)
-
-if "%JOB%" == "Toolchain" (
- set CMAKE_ARGS=-DARROW_DEPENDENCY_SOURCE=CONDA -DARROW_WITH_BZ2=ON
-) else (
- @rem We're in a conda environment but don't want to use it for the dependencies
- set CMAKE_ARGS=-DARROW_DEPENDENCY_SOURCE=AUTO
-)
-
-@rem Enable warnings-as-errors
-set ARROW_CXXFLAGS=/WX /MP
-
-@rem
-@rem Build and test Arrow C++ libraries (including Parquet)
-@rem
-
-mkdir cpp\build
-pushd cpp\build
-
-@rem XXX Without forcing CMAKE_CXX_COMPILER, CMake can re-run itself and
-@rem unfortunately switch from Release to Debug mode...
-@rem
-@rem In release mode, disable optimizations (/Od) for faster compiling
-@rem and enable runtime assertions.
-
-cmake -G "%GENERATOR%" %CMAKE_ARGS% ^
- -DARROW_BOOST_USE_SHARED=ON ^
- -DARROW_BUILD_EXAMPLES=ON ^
- -DARROW_BUILD_STATIC=OFF ^
- -DARROW_BUILD_TESTS=ON ^
- -DARROW_CSV=ON ^
- -DARROW_CXXFLAGS="%ARROW_CXXFLAGS%" ^
- -DARROW_DATASET=ON ^
- -DARROW_ENABLE_TIMING_TESTS=OFF ^
- -DARROW_FLIGHT=%ARROW_BUILD_FLIGHT% ^
- -DARROW_GANDIVA=%ARROW_BUILD_GANDIVA% ^
- -DARROW_MIMALLOC=ON ^
- -DARROW_PARQUET=ON ^
- -DARROW_PYTHON=ON ^
- -DARROW_S3=%ARROW_S3% ^
- -DARROW_VERBOSE_THIRDPARTY_BUILD=OFF ^
- -DARROW_WITH_BROTLI=ON ^
- -DARROW_WITH_LZ4=ON ^
- -DARROW_WITH_SNAPPY=ON ^
- -DARROW_WITH_ZLIB=ON ^
- -DARROW_WITH_ZSTD=ON ^
- -DCMAKE_BUILD_TYPE="Release" ^
- -DCMAKE_CXX_COMPILER=clcache ^
- -DCMAKE_CXX_FLAGS_RELEASE="/MD /Od /UNDEBUG" ^
- -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^
- -DCMAKE_UNITY_BUILD=ON ^
- -DCMAKE_VERBOSE_MAKEFILE=OFF ^
- -DPARQUET_BUILD_EXECUTABLES=ON ^
- -DPARQUET_REQUIRE_ENCRYPTION=ON ^
- .. || exit /B
-cmake --build . --target install --config %CONFIGURATION% || exit /B
-
-@rem Needed so arrow-python-test.exe works
-set OLD_PYTHONHOME=%PYTHONHOME%
-set PYTHONHOME=%CONDA_PREFIX%
-
-ctest --output-on-failure -j2 || exit /B
-
-set PYTHONHOME=%OLD_PYTHONHOME%
-popd
-
-@rem
-@rem Build and install pyarrow
-@rem
-
-pushd python
-
-set PYARROW_BUNDLE_BOOST=OFF
-set PYARROW_CMAKE_GENERATOR=%GENERATOR%
-set PYARROW_CXXFLAGS=%ARROW_CXXFLAGS%
-set PYARROW_PARALLEL=2
-set PYARROW_WITH_DATASET=ON
-set PYARROW_WITH_FLIGHT=%ARROW_BUILD_FLIGHT%
-set PYARROW_WITH_GANDIVA=%ARROW_BUILD_GANDIVA%
-set PYARROW_WITH_PARQUET=ON
-set PYARROW_WITH_S3=%ARROW_S3%
-set PYARROW_WITH_STATIC_BOOST=ON
-
-set ARROW_HOME=%CONDA_PREFIX%\Library
-@rem ARROW-3075; pkgconfig is broken for Parquet for now
-set PARQUET_HOME=%CONDA_PREFIX%\Library
-
-python setup.py develop -q || exit /B
-
-set PYTHONDEVMODE=1
-
-py.test -r sxX --durations=15 --pyargs pyarrow.tests || exit /B
-
-@rem
-@rem Wheels are built and tested separately (see ARROW-5142).
-@rem
-
diff --git a/ci/appveyor-cpp-setup.bat b/ci/appveyor-cpp-setup.bat
deleted file mode 100644
index 616232d..0000000
--- a/ci/appveyor-cpp-setup.bat
+++ /dev/null
@@ -1,101 +0,0 @@
-@rem Licensed to the Apache Software Foundation (ASF) under one
-@rem or more contributor license agreements. See the NOTICE file
-@rem distributed with this work for additional information
-@rem regarding copyright ownership. The ASF licenses this file
-@rem to you under the Apache License, Version 2.0 (the
-@rem "License"); you may not use this file except in compliance
-@rem with the License. You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing,
-@rem software distributed under the License is distributed on an
-@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@rem KIND, either express or implied. See the License for the
-@rem specific language governing permissions and limitations
-@rem under the License.
-
-@echo on
-
-set "PATH=C:\Miniconda37-x64;C:\Miniconda37-x64\Scripts;C:\Miniconda37-x64\Library\bin;%PATH%"
-set BOOST_ROOT=C:\Libraries\boost_1_67_0
-set BOOST_LIBRARYDIR=C:\Libraries\boost_1_67_0\lib64-msvc-14.0
-
-@rem
-@rem Avoid picking up AppVeyor-installed OpenSSL (linker errors with gRPC)
-@rem XXX Perhaps there is a smarter way of solving this issue?
-@rem
-rd /s /q C:\OpenSSL-Win32
-rd /s /q C:\OpenSSL-Win64
-rd /s /q C:\OpenSSL-v11-Win32
-rd /s /q C:\OpenSSL-v11-Win64
-rd /s /q C:\OpenSSL-v111-Win32
-rd /s /q C:\OpenSSL-v111-Win64
-
-@rem
-@rem Configure miniconda
-@rem
-conda config --set auto_update_conda false
-conda config --set show_channel_urls True
-@rem Help with SSL timeouts to S3
-conda config --set remote_connect_timeout_secs 12
-conda info -a
-
-@rem
-@rem Create conda environment for Build and Toolchain jobs
-@rem
-@rem Avoid Boost 1.70 because of https://github.com/boostorg/process/issues/85
-
-set CONDA_PACKAGES=
-
-if "%ARROW_BUILD_GANDIVA%" == "ON" (
- @rem Install llvmdev in the toolchain if building gandiva.dll
- set CONDA_PACKAGES=%CONDA_PACKAGES% --file=ci\conda_env_gandiva_win.yml
-)
-if "%JOB%" == "Toolchain" (
- @rem Install pre-built "toolchain" packages for faster builds
- set CONDA_PACKAGES=%CONDA_PACKAGES% --file=ci\conda_env_cpp.yml
-)
-if "%JOB%" NEQ "Build_Debug" (
- @rem Arrow conda environment is only required for the Build and Toolchain jobs
- conda create -n arrow -q -y -c conda-forge ^
- --file=ci\conda_env_python.yml ^
- %CONDA_PACKAGES% ^
- "cmake=3.17" ^
- "ninja" ^
- "nomkl" ^
- "pandas" ^
- "fsspec" ^
- "python=%PYTHON%" ^
- || exit /B
-)
-
-@rem
-@rem Configure compiler
-@rem
-if "%GENERATOR%"=="Ninja" set need_vcvarsall=1
-if defined need_vcvarsall (
- @rem Select desired compiler version
- if "%APPVEYOR_BUILD_WORKER_IMAGE%" == "Visual Studio 2017" (
- call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
- ) else (
- call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
- )
-)
-
-@rem
-@rem Use clcache for faster builds
-@rem
-pip install -q git+https://github.com/frerich/clcache.git
-@rem Limit cache size to 500 MB
-clcache -M 500000000
-clcache -c
-clcache -s
-powershell.exe -Command "Start-Process clcache-server"
-
-@rem
-@rem Download Minio somewhere on PATH, for unit tests
-@rem
-if "%ARROW_S3%" == "ON" (
- appveyor DownloadFile https://dl.min.io/server/minio/release/windows-amd64/minio.exe -FileName C:\Windows\Minio.exe || exit /B
-)
diff --git a/ci/conda_env_archery.yml b/ci/conda_env_archery.yml
deleted file mode 100644
index ace7a42..0000000
--- a/ci/conda_env_archery.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-# cli
-click
-
-# bot, crossbow
-github3.py
-jinja2
-jira
-pygit2
-pygithub
-ruamel.yaml
-setuptools_scm
-toolz
-
-# benchmark
-pandas
-
-# docker
-python-dotenv
-#ruamel.yaml
-
-# release
-gitpython
-#jinja2
-#jira
-semver
diff --git a/ci/conda_env_cpp.yml b/ci/conda_env_cpp.yml
deleted file mode 100644
index 390eb7d..0000000
--- a/ci/conda_env_cpp.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-aws-sdk-cpp
-benchmark=1.5.2
-boost-cpp>=1.68.0
-brotli
-bzip2
-c-ares
-cmake
-gflags
-glog
-gmock>=1.10.0
-grpc-cpp>=1.27.3
-gtest=1.10.0
-libprotobuf
-libutf8proc
-lz4-c
-make
-ninja
-pkg-config
-python
-rapidjson
-re2
-snappy
-thrift-cpp>=0.11.0
-zlib
-zstd
diff --git a/ci/conda_env_crossbow.txt b/ci/conda_env_crossbow.txt
deleted file mode 100644
index 3472946..0000000
--- a/ci/conda_env_crossbow.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
-
-click
-github3.py
-jinja2
-jira
-pygit2
-ruamel.yaml
-setuptools_scm
-toolz
diff --git a/ci/conda_env_gandiva.yml b/ci/conda_env_gandiva.yml
deleted file mode 100644
index 024b9fe..0000000
--- a/ci/conda_env_gandiva.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-# 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.
-
-clang=11
-llvmdev=11
diff --git a/ci/conda_env_gandiva_win.yml b/ci/conda_env_gandiva_win.yml
deleted file mode 100644
index 9098b53..0000000
--- a/ci/conda_env_gandiva_win.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-# 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.
-
-# llvmdev=9 or later require Visual Studio 2017
-clangdev=8
-llvmdev=8
diff --git a/ci/conda_env_python.yml b/ci/conda_env_python.yml
deleted file mode 100644
index 9124c7e..0000000
--- a/ci/conda_env_python.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-# don't add pandas here, because it is not a mandatory test dependency
-boto3 # not a direct dependency of s3fs, but needed for our s3fs fixture
-cffi
-cython
-cloudpickle
-fsspec
-hypothesis
-numpy>=1.16.6
-pytest
-pytest-faulthandler
-pytest-lazy-fixture
-pytz
-s3fs>=0.4
-setuptools
-setuptools_scm
diff --git a/ci/conda_env_r.yml b/ci/conda_env_r.yml
deleted file mode 100644
index 03d5f3b..0000000
--- a/ci/conda_env_r.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-
-r-assertthat
-r-base
-r-bit64
-r-dplyr
-r-purrr
-r-r6
-r-cpp11
-r-rlang
-r-tidyselect
-r-vctrs
-# Test/"Suggests" dependencies
-pandoc
-r-covr
-r-hms
-r-lubridate
-r-rcmdcheck
-r-reticulate
-r-rmarkdown
-r-testthat
-r-tibble
diff --git a/ci/conda_env_sphinx.yml b/ci/conda_env_sphinx.yml
deleted file mode 100644
index 49388e2..0000000
--- a/ci/conda_env_sphinx.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-# Requirements for building the documentation
-breathe
-doxygen
-ipython
-# Pinned per ARROW-9693
-sphinx=3.1.2
-pydata-sphinx-theme
diff --git a/ci/conda_env_unix.yml b/ci/conda_env_unix.yml
deleted file mode 100644
index 1973238..0000000
--- a/ci/conda_env_unix.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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.
-
-# conda package dependencies specific to Unix-like environments (Linux and macOS)
-
-autoconf
-ccache
-orc
-pkg-config
diff --git a/ci/detect-changes.py b/ci/detect-changes.py
deleted file mode 100644
index c32f6e0..0000000
--- a/ci/detect-changes.py
+++ /dev/null
@@ -1,365 +0,0 @@
-# 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 __future__ import print_function
-
-import functools
-import os
-import pprint
-import re
-import sys
-import subprocess
-
-
-perr = functools.partial(print, file=sys.stderr)
-
-
-def dump_env_vars(prefix, pattern=None):
- if pattern is not None:
- match = lambda s: re.search(pattern, s)
- else:
- match = lambda s: True
- for name in sorted(os.environ):
- if name.startswith(prefix) and match(name):
- perr("- {0}: {1!r}".format(name, os.environ[name]))
-
-
-def run_cmd(cmdline):
- proc = subprocess.Popen(cmdline,
- stdout=subprocess.PIPE, stderr=subprocess.PIPE)
- out, err = proc.communicate()
- if proc.returncode != 0:
- raise RuntimeError("Command {cmdline} failed with code {returncode}, "
- "stderr was:\n{stderr}\n"
- .format(cmdline=cmdline, returncode=proc.returncode,
- stderr=err.decode()))
- return out
-
-
-def get_commit_description(commit):
- """
- Return the textual description (title + body) of the given git commit.
- """
- out = run_cmd(["git", "show", "--no-patch", "--pretty=format:%B",
- commit])
- return out.decode('utf-8', 'ignore')
-
-
-def list_affected_files(commit_range):
- """
- Return a list of files changed by the given git commit range.
- """
- perr("Getting affected files from", repr(commit_range))
- out = run_cmd(["git", "diff", "--name-only", commit_range])
- return list(filter(None, (s.strip() for s in out.decode().splitlines())))
-
-
-def get_travis_head_commit():
- return os.environ['TRAVIS_COMMIT']
-
-
-def get_travis_commit_range():
- if os.environ['TRAVIS_EVENT_TYPE'] == 'pull_request':
- # TRAVIS_COMMIT_RANGE is too pessimistic for PRs, as it may contain
- # unrelated changes. Instead, use the same strategy as on AppVeyor
- # below.
- run_cmd(["git", "fetch", "-q", "origin",
- "+refs/heads/{0}".format(os.environ['TRAVIS_BRANCH'])])
- merge_base = run_cmd(["git", "merge-base",
- "HEAD", "FETCH_HEAD"]).decode().strip()
- return "{0}..HEAD".format(merge_base)
- else:
- cr = os.environ['TRAVIS_COMMIT_RANGE']
- # See
- # https://github.com/travis-ci/travis-ci/issues/4596#issuecomment-139811122
- return cr.replace('...', '..')
-
-
-def get_travis_commit_description():
- # Prefer this to get_commit_description(get_travis_head_commit()),
- # as rebasing or other repository events may make TRAVIS_COMMIT invalid
- # at the time we inspect it
- return os.environ['TRAVIS_COMMIT_MESSAGE']
-
-
-def list_travis_affected_files():
- """
- Return a list of files affected in the current Travis build.
- """
- commit_range = get_travis_commit_range()
- try:
- return list_affected_files(commit_range)
- except RuntimeError:
- # TRAVIS_COMMIT_RANGE can contain invalid revisions when
- # building a branch (not a PR) after rebasing:
- # https://github.com/travis-ci/travis-ci/issues/2668
- if os.environ['TRAVIS_EVENT_TYPE'] == 'pull_request':
- raise
- # If it's a rebase, it's probably enough to use the last commit only
- commit_range = '{0}^..'.format(get_travis_head_commit())
- return list_affected_files(commit_range)
-
-
-def list_appveyor_affected_files():
- """
- Return a list of files affected in the current AppVeyor build.
- This only works for PR builds.
- """
- # Re-fetch PR base branch (e.g. origin/master), pointing FETCH_HEAD to it
- run_cmd(["git", "fetch", "-q", "origin",
- "+refs/heads/{0}".format(os.environ['APPVEYOR_REPO_BRANCH'])])
- # Compute base changeset between FETCH_HEAD (PR base) and HEAD (PR head)
- merge_base = run_cmd(["git", "merge-base",
- "HEAD", "FETCH_HEAD"]).decode().strip()
- # Compute changes files between base changeset and HEAD
- return list_affected_files("{0}..HEAD".format(merge_base))
-
-
-def list_github_actions_affected_files():
- """
- Return a list of files affected in the current GitHub Actions build.
- """
- # GitHub Actions checkout `refs/remotes/pull/$PR/merge` where `HEAD` points
- # to the merge commit while `HEAD^` points to the commit before. Hence,
- # `..HEAD^` points to all commit between master and the PR.
- return list_affected_files("HEAD^..")
-
-
-LANGUAGE_TOPICS = ['c_glib', 'cpp', 'docs', 'go', 'java', 'js', 'python',
- 'r', 'ruby', 'rust', 'csharp']
-
-ALL_TOPICS = LANGUAGE_TOPICS + ['integration', 'dev']
-
-
-AFFECTED_DEPENDENCIES = {
- 'java': ['integration', 'python'],
- 'js': ['integration'],
- 'ci': ALL_TOPICS,
- 'cpp': ['python', 'c_glib', 'r', 'ruby', 'integration'],
- 'format': LANGUAGE_TOPICS,
- 'go': ['integration'],
- '.travis.yml': ALL_TOPICS,
- 'appveyor.yml': ALL_TOPICS,
- # In theory, it should ignore CONTRIBUTING.md and ISSUE_TEMPLATE.md, but in
- # practice it's going to be CI
- '.github': ALL_TOPICS,
- 'c_glib': ['ruby']
-}
-
-COMPONENTS = {'cpp', 'java', 'c_glib', 'r', 'ruby', 'integration', 'js',
- 'rust', 'csharp', 'go', 'docs', 'python', 'dev'}
-
-
-def get_affected_topics(affected_files):
- """
- Return a dict of topics affected by the given files.
- Each dict value is True if affected, False otherwise.
- """
- affected = dict.fromkeys(ALL_TOPICS, False)
-
- for path in affected_files:
- parts = []
- head = path
- while head:
- head, tail = os.path.split(head)
- parts.append(tail)
- parts.reverse()
- assert parts
- p = parts[0]
- fn = parts[-1]
- if fn.startswith('README'):
- continue
-
- if p in COMPONENTS:
- affected[p] = True
-
- _path_already_affected = {}
-
- def _affect_dependencies(component):
- if component in _path_already_affected:
- # For circular dependencies, terminate
- return
- for topic in AFFECTED_DEPENDENCIES.get(component, ()):
- affected[topic] = True
- _affect_dependencies(topic)
- _path_already_affected[topic] = True
-
- _affect_dependencies(p)
-
- return affected
-
-
-def make_env_for_topics(affected):
- return {'ARROW_CI_{0}_AFFECTED'.format(k.upper()): '1' if v else '0'
- for k, v in affected.items()}
-
-
-def get_unix_shell_eval(env):
- """
- Return a shell-evalable string to setup some environment variables.
- """
- return "; ".join(("export {0}='{1}'".format(k, v)
- for k, v in env.items()))
-
-
-def get_windows_shell_eval(env):
- """
- Return a shell-evalable string to setup some environment variables.
- """
- return "\n".join(('set "{0}={1}"'.format(k, v)
- for k, v in env.items()))
-
-
-def run_from_travis():
- perr("Environment variables (excerpt):")
- dump_env_vars('TRAVIS_', '(BRANCH|COMMIT|PULL)')
- if (os.environ['TRAVIS_REPO_SLUG'] == 'apache/arrow' and
- os.environ['TRAVIS_BRANCH'] == 'master' and
- os.environ['TRAVIS_EVENT_TYPE'] != 'pull_request'):
- # Never skip anything on master builds in the official repository
- affected = dict.fromkeys(ALL_TOPICS, True)
- else:
- desc = get_travis_commit_description()
- if '[skip travis]' in desc:
- # Skip everything
- affected = dict.fromkeys(ALL_TOPICS, False)
- elif '[force ci]' in desc or '[force travis]' in desc:
- # Test everything
- affected = dict.fromkeys(ALL_TOPICS, True)
- else:
- # Test affected topics
- affected_files = list_travis_affected_files()
- perr("Affected files:", affected_files)
- affected = get_affected_topics(affected_files)
- assert set(affected) <= set(ALL_TOPICS), affected
-
- perr("Affected topics:")
- perr(pprint.pformat(affected))
- return get_unix_shell_eval(make_env_for_topics(affected))
-
-
-def run_from_appveyor():
- perr("Environment variables (excerpt):")
- dump_env_vars('APPVEYOR_', '(PULL|REPO)')
- if not os.environ.get('APPVEYOR_PULL_REQUEST_HEAD_COMMIT'):
- # Not a PR build, test everything
- affected = dict.fromkeys(ALL_TOPICS, True)
- else:
- affected_files = list_appveyor_affected_files()
- perr("Affected files:", affected_files)
- affected = get_affected_topics(affected_files)
- assert set(affected) <= set(ALL_TOPICS), affected
-
- perr("Affected topics:")
- perr(pprint.pformat(affected))
- return get_windows_shell_eval(make_env_for_topics(affected))
-
-
-def run_from_github():
- perr("Environment variables (excerpt):")
- dump_env_vars('GITHUB_', '(REPOSITORY|ACTOR|SHA|REF|HEAD_REF|BASE_REF|EVENT_NAME)')
- if os.environ['GITHUB_EVENT_NAME'] != 'pull_request':
- # Not a PR build, test everything
- affected = dict.fromkeys(ALL_TOPICS, True)
- else:
- affected_files = list_github_actions_affected_files()
- perr("Affected files:", affected_files)
- affected = get_affected_topics(affected_files)
- assert set(affected) <= set(ALL_TOPICS), affected
-
- perr("Affected topics:")
- perr(pprint.pformat(affected))
- return get_unix_shell_eval(make_env_for_topics(affected))
-
-
-def test_get_affected_topics():
- affected_topics = get_affected_topics(['cpp/CMakeLists.txt'])
- assert affected_topics == {
- 'c_glib': True,
- 'cpp': True,
- 'docs': False,
- 'go': False,
- 'java': False,
- 'js': False,
- 'python': True,
- 'r': True,
- 'ruby': True,
- 'rust': False,
- 'csharp': False,
- 'integration': True,
- 'dev': False
- }
-
- affected_topics = get_affected_topics(['format/Schema.fbs'])
- assert affected_topics == {
- 'c_glib': True,
- 'cpp': True,
- 'docs': True,
- 'go': True,
- 'java': True,
- 'js': True,
- 'python': True,
- 'r': True,
- 'ruby': True,
- 'rust': True,
- 'csharp': True,
- 'integration': True,
- 'dev': False
- }
-
- affected_topics = get_affected_topics(['.github/workflows'])
- assert affected_topics == {
- 'c_glib': True,
- 'cpp': True,
- 'docs': True,
- 'go': True,
- 'java': True,
- 'js': True,
- 'python': True,
- 'r': True,
- 'ruby': True,
- 'rust': True,
- 'csharp': True,
- 'integration': True,
- 'dev': True,
- }
-
-
-if __name__ == "__main__":
- # This script should have its output evaluated by a shell,
- # e.g. "eval `python ci/detect-changes.py`"
- if os.environ.get('TRAVIS'):
- try:
- print(run_from_travis())
- except Exception:
- # Make sure the enclosing eval will return an error
- print("exit 1")
- raise
- elif os.environ.get('APPVEYOR'):
- try:
- print(run_from_appveyor())
- except Exception:
- print("exit 1")
- raise
- elif os.environ.get('GITHUB_WORKFLOW'):
- try:
- print(run_from_github())
- except Exception:
- print("exit 1")
- raise
- else:
- sys.exit("Script must be run under Travis-CI, AppVeyor or GitHub Actions")
diff --git a/ci/docker/conda-cpp.dockerfile b/ci/docker/conda-cpp.dockerfile
deleted file mode 100644
index 1a5b87e..0000000
--- a/ci/docker/conda-cpp.dockerfile
+++ /dev/null
@@ -1,54 +0,0 @@
-# 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 repo
-ARG arch
-FROM ${repo}:${arch}-conda
-
-# install the required conda packages into the test environment
-COPY ci/conda_env_cpp.yml \
- ci/conda_env_gandiva.yml \
- /arrow/ci/
-RUN conda install \
- --file arrow/ci/conda_env_cpp.yml \
- --file arrow/ci/conda_env_gandiva.yml \
- compilers \
- doxygen \
- gdb \
- valgrind && \
- conda clean --all
-
-ENV ARROW_BUILD_TESTS=ON \
- ARROW_DATASET=ON \
- ARROW_DEPENDENCY_SOURCE=CONDA \
- ARROW_FLIGHT=ON \
- ARROW_GANDIVA=ON \
- ARROW_HOME=$CONDA_PREFIX \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_PLASMA=ON \
- ARROW_S3=ON \
- ARROW_USE_CCACHE=ON \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- PARQUET_BUILD_EXAMPLES=ON \
- PARQUET_BUILD_EXECUTABLES=ON \
- PARQUET_HOME=$CONDA_PREFIX
diff --git a/ci/docker/conda-integration.dockerfile b/ci/docker/conda-integration.dockerfile
deleted file mode 100644
index 1f2c9ac..0000000
--- a/ci/docker/conda-integration.dockerfile
+++ /dev/null
@@ -1,69 +0,0 @@
-# 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 repo
-ARG arch=amd64
-FROM ${repo}:${arch}-conda-cpp
-
-ARG arch=amd64
-ARG maven=3.5
-ARG node=14
-ARG jdk=8
-ARG go=1.15
-
-# Install Archery and integration dependencies
-COPY ci/conda_env_archery.yml /arrow/ci/
-RUN conda install -q \
- --file arrow/ci/conda_env_cpp.yml \
- --file arrow/ci/conda_env_archery.yml \
- numpy \
- compilers \
- maven=${maven} \
- nodejs=${node} \
- yarn \
- openjdk=${jdk} && \
- conda clean --all --force-pkgs-dirs
-
-# Install Rust with only the needed components
-# (rustfmt is needed for tonic-build to compile the protobuf definitions)
-RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --profile=minimal -y && \
- $HOME/.cargo/bin/rustup component add rustfmt
-
-ENV GOROOT=/opt/go \
- GOBIN=/opt/go/bin \
- GOPATH=/go \
- PATH=/opt/go/bin:$PATH
-RUN wget -nv -O - https://dl.google.com/go/go${go}.linux-${arch}.tar.gz | tar -xzf - -C /opt
-
-ENV ARROW_BUILD_INTEGRATION=ON \
- ARROW_BUILD_STATIC=OFF \
- ARROW_BUILD_TESTS=OFF \
- ARROW_COMPUTE=OFF \
- ARROW_CSV=OFF \
- ARROW_DATASET=OFF \
- ARROW_FILESYSTEM=OFF \
- ARROW_FLIGHT=ON \
- ARROW_GANDIVA=OFF \
- ARROW_HDFS=OFF \
- ARROW_JEMALLOC=OFF \
- ARROW_JSON=OFF \
- ARROW_ORC=OFF \
- ARROW_PARQUET=OFF \
- ARROW_PLASMA=OFF \
- ARROW_S3=OFF \
- ARROW_USE_GLOG=OFF \
- CMAKE_UNITY_BUILD=ON
diff --git a/ci/docker/conda-python-dask.dockerfile b/ci/docker/conda-python-dask.dockerfile
deleted file mode 100644
index cd59a55..0000000
--- a/ci/docker/conda-python-dask.dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-ARG dask=latest
-COPY ci/scripts/install_dask.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_dask.sh ${dask}
\ No newline at end of file
diff --git a/ci/docker/conda-python-hdfs.dockerfile b/ci/docker/conda-python-hdfs.dockerfile
deleted file mode 100644
index f6ffc71..0000000
--- a/ci/docker/conda-python-hdfs.dockerfile
+++ /dev/null
@@ -1,52 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-ARG jdk=8
-ARG maven=3.5
-RUN conda install -q \
- maven=${maven} \
- openjdk=${jdk} \
- pandas && \
- conda clean --all
-
-# installing libhdfs (JNI)
-ARG hdfs=3.2.1
-ENV HADOOP_HOME=/opt/hadoop-${hdfs} \
- HADOOP_OPTS=-Djava.library.path=/opt/hadoop-${hdfs}/lib/native \
- PATH=$PATH:/opt/hadoop-${hdfs}/bin:/opt/hadoop-${hdfs}/sbin
-COPY ci/scripts/util_download_apache.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/util_download_apache.sh \
- "hadoop/common/hadoop-${hdfs}/hadoop-${hdfs}.tar.gz" /opt
-
-COPY ci/etc/hdfs-site.xml $HADOOP_HOME/etc/hadoop/
-
-# build cpp with tests
-ENV CC=gcc \
- CXX=g++ \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA=OFF \
- ARROW_PLASMA=OFF \
- ARROW_PARQUET=ON \
- ARROW_ORC=OFF \
- ARROW_HDFS=ON \
- ARROW_PYTHON=ON \
- ARROW_BUILD_TESTS=ON
diff --git a/ci/docker/conda-python-jpype.dockerfile b/ci/docker/conda-python-jpype.dockerfile
deleted file mode 100644
index f77ef9b..0000000
--- a/ci/docker/conda-python-jpype.dockerfile
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-ARG jdk=11
-ARG maven=3.6
-RUN conda install -q \
- maven=${maven} \
- openjdk=${jdk} \
- jpype1 && \
- conda clean --all
diff --git a/ci/docker/conda-python-kartothek.dockerfile b/ci/docker/conda-python-kartothek.dockerfile
deleted file mode 100644
index d523161..0000000
--- a/ci/docker/conda-python-kartothek.dockerfile
+++ /dev/null
@@ -1,46 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-# install kartothek dependencies from conda-forge
-RUN conda install -c conda-forge -q \
- attrs \
- click \
- cloudpickle \
- dask \
- decorator \
- freezegun \
- msgpack-python \
- prompt-toolkit \
- pytest-mock \
- pytest-xdist \
- pyyaml \
- simplejson \
- simplekv \
- storefact \
- toolz \
- urlquote \
- zstandard && \
- conda clean --all
-
-ARG kartothek=latest
-COPY ci/scripts/install_kartothek.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_kartothek.sh ${kartothek} /kartothek
diff --git a/ci/docker/conda-python-pandas.dockerfile b/ci/docker/conda-python-pandas.dockerfile
deleted file mode 100644
index 303cc80..0000000
--- a/ci/docker/conda-python-pandas.dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-ARG pandas=latest
-ARG numpy=latest
-COPY ci/scripts/install_pandas.sh /arrow/ci/scripts/
-RUN conda uninstall -q -y numpy && \
- /arrow/ci/scripts/install_pandas.sh ${pandas} ${numpy}
diff --git a/ci/docker/conda-python-spark.dockerfile b/ci/docker/conda-python-spark.dockerfile
deleted file mode 100644
index a2af2ac..0000000
--- a/ci/docker/conda-python-spark.dockerfile
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-ARG jdk=8
-ARG maven=3.5
-
-RUN conda install -q \
- openjdk=${jdk} \
- maven=${maven} \
- pandas && \
- conda clean --all
-
-# installing specific version of spark
-ARG spark=master
-COPY ci/scripts/install_spark.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_spark.sh ${spark} /spark
-
-# build cpp with tests
-ENV CC=gcc \
- CXX=g++ \
- ARROW_PYTHON=ON \
- ARROW_HDFS=ON \
- ARROW_BUILD_TESTS=OFF \
- SPARK_VERSION=${spark}
diff --git a/ci/docker/conda-python-turbodbc.dockerfile b/ci/docker/conda-python-turbodbc.dockerfile
deleted file mode 100644
index ff7fdf6..0000000
--- a/ci/docker/conda-python-turbodbc.dockerfile
+++ /dev/null
@@ -1,50 +0,0 @@
-# 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 repo
-ARG arch=amd64
-ARG python=3.6
-FROM ${repo}:${arch}-conda-python-${python}
-
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- odbc-postgresql \
- postgresql \
- sudo && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-# install turbodbc dependencies from conda-forge
-RUN conda install -c conda-forge -q\
- pybind11 \
- pytest-cov \
- mock \
- unixodbc && \
- conda clean --all
-
-RUN service postgresql start && \
- sudo -u postgres psql -U postgres -c \
- "CREATE DATABASE test_db;" && \
- sudo -u postgres psql -U postgres -c \
- "ALTER USER postgres WITH PASSWORD 'password';"
-
-ARG turbodbc=latest
-COPY ci/scripts/install_turbodbc.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_turbodbc.sh ${turbodbc} /turbodbc
-
-ENV TURBODBC_TEST_CONFIGURATION_FILES "query_fixtures_postgresql.json"
diff --git a/ci/docker/conda-python.dockerfile b/ci/docker/conda-python.dockerfile
deleted file mode 100644
index a7e7697..0000000
--- a/ci/docker/conda-python.dockerfile
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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 repo
-ARG arch
-FROM ${repo}:${arch}-conda-cpp
-
-# install python specific packages
-ARG python=3.6
-COPY ci/conda_env_python.yml /arrow/ci/
-RUN conda install -q \
- --file arrow/ci/conda_env_python.yml \
- $([ "$python" == "3.6" -o "$python" == "3.7" ] && echo "pickle5") \
- python=${python} \
- nomkl && \
- conda clean --all
-
-ENV ARROW_PYTHON=ON \
- ARROW_BUILD_STATIC=OFF \
- ARROW_BUILD_TESTS=OFF \
- ARROW_BUILD_UTILITIES=OFF \
- ARROW_TENSORFLOW=ON \
- ARROW_USE_GLOG=OFF
diff --git a/ci/docker/conda.dockerfile b/ci/docker/conda.dockerfile
deleted file mode 100644
index 94de009..0000000
--- a/ci/docker/conda.dockerfile
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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
-
-# arch is unset after the FROM statement, so need to define it again
-ARG arch=amd64
-ARG prefix=/opt/conda
-
-# install build essentials
-RUN export DEBIAN_FRONTEND=noninteractive && \
- apt-get update -y -q && \
- apt-get install -y -q wget tzdata libc6-dbg \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-
-ENV PATH=${prefix}/bin:$PATH
-# install conda and minio
-COPY ci/scripts/install_conda.sh \
- ci/scripts/install_minio.sh \
- /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_conda.sh ${arch} linux latest ${prefix}
-RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest ${prefix}
-
-# create a conda environment
-ADD ci/conda_env_unix.yml /arrow/ci/
-RUN conda create -n arrow --file arrow/ci/conda_env_unix.yml git && \
- conda clean --all
-
-# activate the created environment by default
-RUN echo "conda activate arrow" >> ~/.profile
-ENV CONDA_PREFIX=${prefix}/envs/arrow
-
-# use login shell to activate arrow environment un the RUN commands
-SHELL [ "/bin/bash", "-c", "-l" ]
-
-# use login shell when running the container
-ENTRYPOINT [ "/bin/bash", "-c", "-l" ]
diff --git a/ci/docker/debian-10-cpp.dockerfile b/ci/docker/debian-10-cpp.dockerfile
deleted file mode 100644
index 83f8ce5..0000000
--- a/ci/docker/debian-10-cpp.dockerfile
+++ /dev/null
@@ -1,104 +0,0 @@
-# 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}/debian:10
-ARG arch
-
-ENV DEBIAN_FRONTEND noninteractive
-
-RUN \
- echo "deb http://deb.debian.org/debian buster-backports main" > \
- /etc/apt/sources.list.d/backports.list
-
-ARG llvm
-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/buster/ llvm-toolchain-buster-${llvm} main" > \
- /etc/apt/sources.list.d/llvm.list && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- autoconf \
- ccache \
- clang-${llvm} \
- cmake \
- g++ \
- gcc \
- gdb \
- git \
- libbenchmark-dev \
- libboost-all-dev \
- libbrotli-dev \
- libbz2-dev \
- libc-ares-dev \
- libcurl4-openssl-dev \
- libgflags-dev \
- libgmock-dev \
- libgoogle-glog-dev \
- liblz4-dev \
- libre2-dev \
- libsnappy-dev \
- libssl-dev \
- libthrift-dev \
- libutf8proc-dev \
- libzstd-dev \
- llvm-${llvm}-dev \
- make \
- ninja-build \
- pkg-config \
- protobuf-compiler \
- rapidjson-dev \
- tzdata \
- zlib1g-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-COPY ci/scripts/install_minio.sh \
- /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
-
-ENV ARROW_BUILD_TESTS=ON \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=ON \
- ARROW_GANDIVA=ON \
- ARROW_HOME=/usr/local \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_PLASMA=ON \
- ARROW_S3=ON \
- ARROW_USE_CCACHE=ON \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- AWSSDK_SOURCE=BUNDLED \
- cares_SOURCE=BUNDLED \
- CC=gcc \
- CXX=g++ \
- gRPC_SOURCE=BUNDLED \
- GTest_SOURCE=BUNDLED \
- ORC_SOURCE=BUNDLED \
- PATH=/usr/lib/ccache/:$PATH \
- Protobuf_SOURCE=BUNDLED
diff --git a/ci/docker/debian-10-go.dockerfile b/ci/docker/debian-10-go.dockerfile
deleted file mode 100644
index 199f09e..0000000
--- a/ci/docker/debian-10-go.dockerfile
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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
-ARG go=1.15
-FROM ${arch}/golang:${go}
-
-# TODO(kszucs):
-# 1. add the files required to install the dependencies to .dockerignore
-# 2. copy these files to their appropriate path
-# 3. download and compile the dependencies
diff --git a/ci/docker/debian-10-js.dockerfile b/ci/docker/debian-10-js.dockerfile
deleted file mode 100644
index 5bb31f2..0000000
--- a/ci/docker/debian-10-js.dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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
-ARG node=14
-FROM ${arch}/node:${node}
-
-ENV NODE_NO_WARNINGS=1
-
-# TODO(kszucs):
-# 1. add the files required to install the dependencies to .dockerignore
-# 2. copy these files to their appropriate path
-# 3. download and compile the dependencies
diff --git a/ci/docker/debian-9-java.dockerfile b/ci/docker/debian-9-java.dockerfile
deleted file mode 100644
index 2cc36e3..0000000
--- a/ci/docker/debian-9-java.dockerfile
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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
-ARG jdk=8
-ARG maven=3.5.4
-FROM ${arch}/maven:${maven}-jdk-${jdk}
-
-ENV ARROW_JAVA_SHADE_FLATBUFS=ON
-
-# TODO(kszucs):
-# 1. add the files required to install the dependencies to .dockerignore
-# 2. copy these files to their appropriate path
-# 3. download and compile the dependencies
diff --git a/ci/docker/fedora-33-cpp.dockerfile b/ci/docker/fedora-33-cpp.dockerfile
deleted file mode 100644
index 9dde699..0000000
--- a/ci/docker/fedora-33-cpp.dockerfile
+++ /dev/null
@@ -1,92 +0,0 @@
-# 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
-FROM ${arch}/fedora:33
-ARG arch
-
-# install dependencies
-RUN dnf update -y && \
- dnf install -y \
- autoconf \
- boost-devel \
- brotli-devel \
- bzip2-devel \
- c-ares-devel \
- ccache \
- clang-devel \
- cmake \
- curl-devel \
- flatbuffers-devel \
- gcc \
- gcc-c++ \
- gflags-devel \
- git \
- glog-devel \
- gmock-devel \
- google-benchmark-devel \
- grpc-devel \
- grpc-plugins \
- gtest-devel \
- java-latest-openjdk-devel \
- java-latest-openjdk-headless \
- libzstd-devel \
- llvm-devel \
- llvm-static \
- lz4-devel \
- make \
- ninja-build \
- openssl-devel \
- protobuf-devel \
- python \
- rapidjson-devel \
- re2-devel \
- snappy-devel \
- thrift-devel \
- utf8proc-devel \
- wget \
- which \
- zlib-devel
-
-COPY ci/scripts/install_minio.sh \
- /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
-
-ENV ARROW_BUILD_TESTS=ON \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=ON \
- ARROW_GANDIVA_JAVA=ON \
- ARROW_GANDIVA=ON \
- ARROW_HOME=/usr/local \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_S3=ON \
- ARROW_USE_CCACHE=ON \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- AWSSDK_SOURCE=BUNDLED \
- CC=gcc \
- CXX=g++ \
- ORC_SOURCE=BUNDLED \
- PARQUET_BUILD_EXECUTABLES=ON \
- PARQUET_BUILD_EXAMPLES=ON \
- PATH=/usr/lib/ccache/:$PATH
diff --git a/ci/docker/linux-apt-c-glib.dockerfile b/ci/docker/linux-apt-c-glib.dockerfile
deleted file mode 100644
index 12c6e23..0000000
--- a/ci/docker/linux-apt-c-glib.dockerfile
+++ /dev/null
@@ -1,65 +0,0 @@
-# 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 base
-FROM ${base}
-
-RUN apt-get update -y -q && \
- apt-get install -y -q \
- python3 \
- python3-pip \
- gtk-doc-tools \
- libgirepository1.0-dev \
- libglib2.0-doc \
- lsb-release \
- luarocks \
- pkg-config \
- ruby-dev && \
- if [ "$(lsb_release --codename --short)" = "xenial" ]; then \
- apt-get install -y -q --no-install-recommends -t xenial-backports \
- ninja-build; \
- fi && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-RUN luarocks install lgi
-
-# pip on Ubuntu 20.04 may be buggy:
-#
-# Collecting meson
-# Downloading meson-0.53.2.tar.gz (1.6 MB)
-# Installing build dependencies: started
-# Installing build dependencies: finished with status 'done'
-# Getting requirements to build wheel: started
-# Getting requirements to build wheel: finished with status 'error'
-# ERROR: Command errored out with exit status 1:
-# command: /usr/bin/python3 /usr/share/python-wheels/pep517-0.7.0-py2.py3-none-any.whl/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpsk4jveay
-# cwd: /tmp/pip-install-jn79a_kh/meson
-# Complete output (1 lines):
-# /usr/bin/python3: can't find '__main__' module in '/usr/share/python-wheels/pep517-0.7.0-py2.py3-none-any.whl/pep517/_in_process.py'
-# ----------------------------------------
-# ERROR: Command errored out with exit status 1: /usr/bin/python3 /usr/share/python-wheels/pep517-0.7.0-py2.py3-none-any.whl/pep517/_in_process.py get_requires_for_build_wheel /tmp/tmpsk4jveay Check the logs for full command output.
-RUN (python3 -m pip install meson || \
- python3 -m pip install --no-use-pep517 meson) && \
- gem install --no-document bundler
-
-COPY c_glib/Gemfile /arrow/c_glib/
-RUN bundle install --gemfile /arrow/c_glib/Gemfile
-
-ENV ARROW_BUILD_TESTS=OFF \
- ARROW_BUILD_UTILITIES=OFF \
- ARROW_INSTALL_NAME_RPATH=OFF
diff --git a/ci/docker/linux-apt-docs.dockerfile b/ci/docker/linux-apt-docs.dockerfile
deleted file mode 100644
index 20cb889..0000000
--- a/ci/docker/linux-apt-docs.dockerfile
+++ /dev/null
@@ -1,107 +0,0 @@
-# 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 base
-FROM ${base}
-
-ARG r=4.0
-ARG jdk=8
-
-# See R install instructions at https://cloud.r-project.org/bin/linux/ubuntu/
-RUN apt-get update -y && \
- apt-get install -y \
- dirmngr \
- apt-transport-https \
- software-properties-common && \
- apt-key adv \
- --keyserver keyserver.ubuntu.com \
- --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 && \
- add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu '$(lsb_release -cs)'-cran40/' && \
- apt-get install -y --no-install-recommends \
- autoconf-archive \
- automake \
- curl \
- doxygen \
- gobject-introspection \
- gtk-doc-tools \
- libcurl4-openssl-dev \
- libfontconfig1-dev \
- libfribidi-dev \
- libgirepository1.0-dev \
- libglib2.0-doc \
- libharfbuzz-dev \
- libtiff-dev \
- libtool \
- libxml2-dev \
- ninja-build \
- nvidia-cuda-toolkit \
- openjdk-${jdk}-jdk-headless \
- pandoc \
- r-base=${r}* \
- rsync \
- ruby-dev \
- wget && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-ENV JAVA_HOME=/usr/lib/jvm/java-${jdk}-openjdk-amd64
-
-ARG maven=3.5.4
-COPY ci/scripts/util_download_apache.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/util_download_apache.sh \
- "maven/maven-3/${maven}/binaries/apache-maven-${maven}-bin.tar.gz" /opt
-ENV PATH=/opt/apache-maven-${maven}/bin:$PATH
-RUN mvn -version
-
-ARG node=14
-RUN wget -q -O - https://deb.nodesource.com/setup_${node}.x | bash - && \
- apt-get install -y nodejs && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/* && \
- npm install -g yarn
-
-RUN pip install \
- meson \
- breathe \
- ipython \
- sphinx \
- pydata-sphinx-theme
-
-COPY c_glib/Gemfile /arrow/c_glib/
-RUN gem install --no-document bundler && \
- bundle install --gemfile /arrow/c_glib/Gemfile
-
-# 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 -s -e 'cat(parallel::detectCores())')" >> $(R RHOME)/etc/Makeconf
-
-COPY ci/scripts/r_deps.sh /arrow/ci/scripts/
-COPY r/DESCRIPTION /arrow/r/
-RUN /arrow/ci/scripts/r_deps.sh /arrow && \
- R -e "install.packages('pkgdown')"
-
-ENV ARROW_FLIGHT=ON \
- ARROW_PYTHON=ON \
- ARROW_S3=ON \
- ARROW_BUILD_STATIC=OFF \
- ARROW_BUILD_TESTS=OFF \
- ARROW_BUILD_UTILITIES=OFF \
- ARROW_USE_GLOG=OFF \
- CMAKE_UNITY_BUILD=ON \
diff --git a/ci/docker/linux-apt-jni.dockerfile b/ci/docker/linux-apt-jni.dockerfile
deleted file mode 100644
index 1abbf05..0000000
--- a/ci/docker/linux-apt-jni.dockerfile
+++ /dev/null
@@ -1,86 +0,0 @@
-# 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 base
-FROM ${base}
-
-# pipefail is enabled for proper error detection in the `wget | apt-key add`
-# step
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-ENV DEBIAN_FRONTEND noninteractive
-
-ARG llvm
-RUN apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- apt-transport-https \
- lsb-release \
- software-properties-common \
- wget && \
- code_name=$(lsb_release --codename --short) && \
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \
- apt-add-repository -y \
- "deb https://apt.llvm.org/${code_name}/ llvm-toolchain-${code_name}-${llvm} main" && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- ca-certificates \
- ccache \
- clang-${llvm} \
- cmake \
- git \
- g++ \
- gcc \
- libboost-all-dev \
- libgflags-dev \
- libgoogle-glog-dev \
- libgtest-dev \
- liblz4-dev \
- libre2-dev \
- libsnappy-dev \
- libssl-dev \
- llvm-${llvm}-dev \
- make \
- ninja-build \
- pkg-config \
- protobuf-compiler \
- rapidjson-dev \
- tzdata \
- zlib1g-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-ARG cmake=3.11.4
-RUN wget -nv -O - https://github.com/Kitware/CMake/releases/download/v${cmake}/cmake-${cmake}-Linux-x86_64.tar.gz | tar -xzf - -C /opt
-ENV PATH=/opt/cmake-${cmake}-Linux-x86_64/bin:$PATH
-
-ENV ARROW_BUILD_TESTS=OFF \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA_JAVA=ON \
- ARROW_GANDIVA=ON \
- ARROW_HOME=/usr/local \
- ARROW_JNI=ON \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_PLASMA_JAVA_CLIENT=ON \
- ARROW_PLASMA=ON \
- ARROW_USE_CCACHE=ON \
- CC=gcc \
- CXX=g++ \
- ORC_SOURCE=BUNDLED \
- PATH=/usr/lib/ccache/:$PATH \
- Protobuf_SOURCE=BUNDLED
diff --git a/ci/docker/linux-apt-lint.dockerfile b/ci/docker/linux-apt-lint.dockerfile
deleted file mode 100644
index 6653891..0000000
--- a/ci/docker/linux-apt-lint.dockerfile
+++ /dev/null
@@ -1,69 +0,0 @@
-# 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 base
-FROM hadolint/hadolint:v1.17.2 AS hadolint
-FROM ${base}
-
-ARG clang_tools
-RUN apt-get update && \
- apt-get install -y -q \
- clang-${clang_tools} \
- clang-format-${clang_tools} \
- clang-tidy-${clang_tools} \
- clang-tools-${clang_tools} \
- cmake \
- curl \
- libclang-${clang_tools}-dev \
- llvm-${clang_tools}-dev \
- openjdk-11-jdk-headless \
- python3 \
- python3-dev \
- python3-pip \
- ruby \
- && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
-
-# Docker linter
-COPY --from=hadolint /bin/hadolint /usr/bin/hadolint
-
-# IWYU
-COPY ci/scripts/install_iwyu.sh /arrow/ci/scripts/
-RUN arrow/ci/scripts/install_iwyu.sh /tmp/iwyu /usr/local ${clang_tools}
-
-# Rust linter
-ARG rust=nightly-2021-03-24
-RUN curl https://sh.rustup.rs -sSf | \
- sh -s -- --default-toolchain stable -y
-ENV PATH /root/.cargo/bin:$PATH
-RUN rustup install ${rust} && \
- rustup default ${rust} && \
- rustup component add rustfmt
-
-# Use python3 by default in scripts
-RUN ln -s /usr/bin/python3 /usr/local/bin/python && \
- ln -s /usr/bin/pip3 /usr/local/bin/pip
-
-COPY dev/archery/requirements.txt \
- dev/archery/requirements-lint.txt \
- /arrow/dev/archery/
-RUN pip install \
- -r arrow/dev/archery/requirements.txt \
- -r arrow/dev/archery/requirements-lint.txt
-
-ENV LC_ALL=C.UTF-8 \
- LANG=C.UTF-8
diff --git a/ci/docker/linux-apt-python-3.dockerfile b/ci/docker/linux-apt-python-3.dockerfile
deleted file mode 100644
index 753ba0d..0000000
--- a/ci/docker/linux-apt-python-3.dockerfile
+++ /dev/null
@@ -1,46 +0,0 @@
-# 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 base
-FROM ${base}
-
-RUN apt-get update -y -q && \
- apt-get install -y -q \
- python3 \
- python3-pip \
- python3-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-RUN ln -s /usr/bin/python3 /usr/local/bin/python && \
- ln -s /usr/bin/pip3 /usr/local/bin/pip
-
-RUN pip install -U pip setuptools
-
-COPY python/requirements-build.txt \
- python/requirements-test.txt \
- /arrow/python/
-
-RUN pip install \
- -r arrow/python/requirements-build.txt \
- -r arrow/python/requirements-test.txt
-
-ENV ARROW_PYTHON=ON \
- ARROW_BUILD_STATIC=OFF \
- ARROW_BUILD_TESTS=OFF \
- ARROW_BUILD_UTILITIES=OFF \
- ARROW_USE_GLOG=OFF \
diff --git a/ci/docker/linux-apt-r.dockerfile b/ci/docker/linux-apt-r.dockerfile
deleted file mode 100644
index f47044e..0000000
--- a/ci/docker/linux-apt-r.dockerfile
+++ /dev/null
@@ -1,100 +0,0 @@
-# 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 base
-FROM ${base}
-ARG arch
-
-# Build R
-# [1] https://www.digitalocean.com/community/tutorials/how-to-install-r-on-ubuntu-18-04
-# [2] https://linuxize.com/post/how-to-install-r-on-ubuntu-18-04/#installing-r-packages-from-cran
-ARG r=3.6
-RUN apt-get update -y && \
- apt-get install -y \
- dirmngr \
- apt-transport-https \
- software-properties-common && \
- apt-key adv \
- --keyserver keyserver.ubuntu.com \
- --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 && \
- # NOTE: R 3.5 and 3.6 are available in the repos with -cran35 suffix
- # for trusty, xenial, bionic, and eoan (as of May 2020)
- # -cran40 has 4.0 versions for bionic and focal
- # R 3.2, 3.3, 3.4 are available without the suffix but only for trusty and xenial
- # TODO: make sure OS version and R version are valid together and conditionally set repo suffix
- # This is a hack to turn 3.6 into 35 and 4.0 into 40:
- add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu '$(lsb_release -cs)'-cran'$(echo "${r}" | tr -d . | tr 6 5)'/' && \
- apt-get install -y \
- r-base=${r}* \
- # system libs needed by core R packages
- libxml2-dev \
- libgit2-dev \
- libssl-dev \
- # install clang to mirror what was done on Travis
- clang \
- clang-format \
- clang-tidy \
- # R CMD CHECK --as-cran needs pdflatex to build the package manual
- texlive-latex-base \
- # Need locales so we can set UTF-8
- locales \
- # Need Python to check py-to-r bridge
- python3 \
- python3-pip \
- python3-dev && \
- locale-gen en_US.UTF-8 && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists/*
-
-# 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 -s -e 'cat(parallel::detectCores())')" >> $(R RHOME)/etc/Makeconf
-
-COPY ci/scripts/r_deps.sh /arrow/ci/scripts/
-COPY r/DESCRIPTION /arrow/r/
-RUN /arrow/ci/scripts/r_deps.sh /arrow
-
-COPY ci/scripts/install_minio.sh \
- /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
-
-# Set up Python 3 and its dependencies
-RUN ln -s /usr/bin/python3 /usr/local/bin/python && \
- ln -s /usr/bin/pip3 /usr/local/bin/pip
-
-COPY python/requirements-build.txt /arrow/python/
-RUN pip install -r arrow/python/requirements-build.txt
-
-ENV \
- ARROW_BUILD_STATIC=OFF \
- ARROW_BUILD_TESTS=OFF \
- ARROW_BUILD_UTILITIES=OFF \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA=OFF \
- ARROW_NO_DEPRECATED_API=ON \
- ARROW_ORC=OFF \
- ARROW_PARQUET=ON \
- ARROW_PLASMA=OFF \
- ARROW_PYTHON=ON \
- ARROW_S3=ON \
- ARROW_USE_CCACHE=ON \
- ARROW_USE_GLOG=OFF \
- LC_ALL=en_US.UTF-8
diff --git a/ci/docker/linux-apt-ruby.dockerfile b/ci/docker/linux-apt-ruby.dockerfile
deleted file mode 100644
index 58fd65b..0000000
--- a/ci/docker/linux-apt-ruby.dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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.
-
-# depends on a C GLib image
-ARG base
-FROM ${base}
-
-COPY ruby/ /arrow/ruby/
-RUN bundle install --gemfile /arrow/ruby/Gemfile
-RUN \
- for package in /arrow/ruby/*; do \
- bundle install --gemfile ${package}/Gemfile; \
- done
diff --git a/ci/docker/linux-dnf-python-3.dockerfile b/ci/docker/linux-dnf-python-3.dockerfile
deleted file mode 100644
index 8c3c5c7..0000000
--- a/ci/docker/linux-dnf-python-3.dockerfile
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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 base
-FROM ${base}
-
-RUN dnf install -y \
- python3 \
- python3-pip \
- python3-devel
-
-RUN ln -s /usr/bin/python3 /usr/local/bin/python && \
- ln -s /usr/bin/pip3 /usr/local/bin/pip
-
-COPY python/requirements-build.txt \
- python/requirements-test.txt \
- /arrow/python/
-
-RUN pip install \
- -r arrow/python/requirements-build.txt \
- -r arrow/python/requirements-test.txt
-
-ENV ARROW_PYTHON=ON \
- ARROW_BUILD_STATIC=OFF \
- ARROW_BUILD_TESTS=OFF \
- ARROW_BUILD_UTILITIES=OFF \
- ARROW_USE_GLOG=OFF \
diff --git a/ci/docker/linux-r.dockerfile b/ci/docker/linux-r.dockerfile
deleted file mode 100644
index ac41482..0000000
--- a/ci/docker/linux-r.dockerfile
+++ /dev/null
@@ -1,44 +0,0 @@
-# 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}
-
-ARG r_bin=R
-ENV R_BIN=${r_bin}
-
-ARG r_dev=FALSE
-ENV ARROW_R_DEV=${r_dev}
-
-ARG devtoolset_version=-1
-ENV DEVTOOLSET_VERSION=${devtoolset_version}
-
-# 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}"
-
-# Patch up some of the docker images
-COPY ci/scripts/r_docker_configure.sh /arrow/ci/scripts/
-COPY ci/etc/rprofile /arrow/ci/etc/
-COPY ci/scripts/install_minio.sh /arrow/ci/scripts/
-RUN /arrow/ci/scripts/r_docker_configure.sh
-
-COPY ci/scripts/r_deps.sh /arrow/ci/scripts/
-COPY r/DESCRIPTION /arrow/r/
-RUN /arrow/ci/scripts/r_deps.sh /arrow
diff --git a/ci/docker/python-sdist.dockerfile b/ci/docker/python-sdist.dockerfile
deleted file mode 100644
index 853b532..0000000
--- a/ci/docker/python-sdist.dockerfile
+++ /dev/null
@@ -1,36 +0,0 @@
-# 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 amd64/ubuntu:20.04
-
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-RUN echo "debconf debconf/frontend select Noninteractive" | \
- debconf-set-selections
-
-RUN apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- git \
- python3-pip && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-COPY python/requirements-build.txt \
- /arrow/python/requirements-build.txt
-RUN pip3 install --requirement /arrow/python/requirements-build.txt
-
-ENV PYTHON=/usr/bin/python3
diff --git a/ci/docker/python-wheel-manylinux-201x.dockerfile b/ci/docker/python-wheel-manylinux-201x.dockerfile
deleted file mode 100644
index 19246a4..0000000
--- a/ci/docker/python-wheel-manylinux-201x.dockerfile
+++ /dev/null
@@ -1,110 +0,0 @@
-# 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 base
-FROM ${base}
-
-ARG arch_alias
-ARG arch_short_alias
-
-RUN yum install -y git flex curl autoconf zip wget
-
-# Install CMake
-ARG cmake=3.19.3
-RUN wget -q https://github.com/Kitware/CMake/releases/download/v${cmake}/cmake-${cmake}-Linux-${arch_alias}.tar.gz -O - | \
- tar -xzf - --directory /usr/local --strip-components=1
-
-# Install Ninja
-ARG ninja=1.10.2
-RUN mkdir /tmp/ninja && \
- wget -q https://github.com/ninja-build/ninja/archive/v${ninja}.tar.gz -O - | \
- tar -xzf - --directory /tmp/ninja --strip-components=1 && \
- cd /tmp/ninja && \
- ./configure.py --bootstrap && \
- mv ninja /usr/local/bin && \
- rm -rf /tmp/ninja
-
-# Install ccache
-ARG ccache=4.1
-RUN mkdir /tmp/ccache && \
- wget -q https://github.com/ccache/ccache/archive/v${ccache}.tar.gz -O - | \
- tar -xzf - --directory /tmp/ccache --strip-components=1 && \
- cd /tmp/ccache && \
- mkdir build && \
- cd build && \
- cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON .. && \
- ninja install && \
- rm -rf /tmp/ccache
-
-# Install vcpkg
-ARG vcpkg
-RUN git clone https://github.com/microsoft/vcpkg /opt/vcpkg && \
- git -C /opt/vcpkg checkout ${vcpkg} && \
- /opt/vcpkg/bootstrap-vcpkg.sh -useSystemBinaries -disableMetrics && \
- ln -s /opt/vcpkg/vcpkg /usr/bin/vcpkg
-
-# Patch ports files as needed
-COPY ci/vcpkg arrow/ci/vcpkg
-RUN cd /opt/vcpkg && git apply --ignore-whitespace /arrow/ci/vcpkg/ports.patch
-
-ARG build_type=release
-ENV CMAKE_BUILD_TYPE=${build_type} \
- VCPKG_FORCE_SYSTEM_BINARIES=1 \
- VCPKG_OVERLAY_TRIPLETS=/arrow/ci/vcpkg \
- VCPKG_DEFAULT_TRIPLET=${arch_short_alias}-linux-static-${build_type} \
- VCPKG_FEATURE_FLAGS=-manifests
-
-# Need to install the boost-build prior installing the boost packages, otherwise
-# vcpkg will raise an error.
-# TODO(kszucs): factor out the package enumeration to a text file and reuse it
-# from the windows image and potentially in a future macos wheel build
-RUN vcpkg install --clean-after-build \
- boost-build:${arch_short_alias}-linux && \
- vcpkg install --clean-after-build \
- abseil \
- aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
- boost-filesystem \
- brotli \
- bzip2 \
- c-ares \
- curl \
- flatbuffers \
- gflags \
- glog \
- grpc \
- lz4 \
- openssl \
- orc \
- protobuf \
- rapidjson \
- re2 \
- snappy \
- thrift \
- utf8proc \
- zlib \
- zstd
-
-ARG python=3.6
-ENV PYTHON_VERSION=${python}
-RUN PYTHON_ROOT=$(find /opt/python -name cp${PYTHON_VERSION/./}-*) && \
- echo "export PATH=$PYTHON_ROOT/bin:\$PATH" >> /etc/profile.d/python.sh
-
-SHELL ["/bin/bash", "-i", "-c"]
-ENTRYPOINT ["/bin/bash", "-i", "-c"]
-
-COPY python/requirements-wheel-build.txt /arrow/python/
-RUN pip install -r /arrow/python/requirements-wheel-build.txt
diff --git a/ci/docker/python-wheel-manylinux-test.dockerfile b/ci/docker/python-wheel-manylinux-test.dockerfile
deleted file mode 100644
index 55c27d1..0000000
--- a/ci/docker/python-wheel-manylinux-test.dockerfile
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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
-ARG python
-FROM ${arch}/python:${python}
-
-# RUN pip install --upgrade pip
-
-# pandas doesn't provide wheel for aarch64 yet, so cache the compiled
-# test dependencies in a docker image
-COPY python/requirements-wheel-test.txt /arrow/python/
-RUN pip install -r /arrow/python/requirements-wheel-test.txt
diff --git a/ci/docker/python-wheel-windows-vs2017.dockerfile b/ci/docker/python-wheel-windows-vs2017.dockerfile
deleted file mode 100644
index 0f66a20..0000000
--- a/ci/docker/python-wheel-windows-vs2017.dockerfile
+++ /dev/null
@@ -1,99 +0,0 @@
-# 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.
-
-# based on mcr.microsoft.com/windows/servercore:ltsc2019
-# contains choco and vs2017 preinstalled
-FROM abrarov/msvc-2017:2.10.0
-
-# Install CMake and Ninja
-RUN choco install --no-progress -r -y cmake --installargs 'ADD_CMAKE_TO_PATH=System' && \
- choco install --no-progress -r -y gzip wget ninja
-
-# Add unix tools to path
-RUN setx path "%path%;C:\Program Files\Git\usr\bin"
-
-# Install vcpkg
-ARG vcpkg
-RUN git clone https://github.com/Microsoft/vcpkg && \
- git -C vcpkg checkout %vcpkg% && \
- vcpkg\bootstrap-vcpkg.bat -disableMetrics -win64 && \
- setx PATH "%PATH%;C:\vcpkg"
-
-# Patch ports files as needed
-COPY ci/vcpkg arrow/ci/vcpkg
-RUN cd vcpkg && git apply --ignore-whitespace C:/arrow/ci/vcpkg/ports.patch
-
-# Configure vcpkg and install dependencies
-# NOTE: use windows batch environment notation for build arguments in RUN
-# statements but bash notation in ENV statements
-# VCPKG_FORCE_SYSTEM_BINARIES=1 spare around ~750MB of image size if the system
-# cmake's and ninja's versions are recent enough
-COPY ci/vcpkg arrow/ci/vcpkg
-ARG build_type=release
-ENV CMAKE_BUILD_TYPE=${build_type} \
- VCPKG_OVERLAY_TRIPLETS=C:\\arrow\\ci\\vcpkg \
- VCPKG_DEFAULT_TRIPLET=x64-windows-static-md-${build_type} \
- VCPKG_FEATURE_FLAGS=-manifests
-RUN vcpkg install --clean-after-build \
- abseil \
- aws-sdk-cpp[config,cognito-identity,core,identity-management,s3,sts,transfer] \
- boost-filesystem \
- boost-multiprecision \
- boost-system \
- brotli \
- bzip2 \
- c-ares \
- curl \
- flatbuffers \
- gflags \
- glog \
- grpc \
- lz4 \
- openssl \
- orc \
- protobuf \
- rapidjson \
- re2 \
- snappy \
- thrift \
- utf8proc \
- zlib \
- zstd
-
-# Remove previous installations of python from the base image
-RUN wmic product where "name like 'python%%'" call uninstall /nointeractive && \
- rm -rf Python*
-
-# Define the full version number otherwise choco falls back to patch number 0 (3.7 => 3.7.0)
-ARG python=3.6
-RUN (if "%python%"=="3.6" setx PYTHON_VERSION 3.6.8) & \
- (if "%python%"=="3.7" setx PYTHON_VERSION 3.7.4) & \
- (if "%python%"=="3.8" setx PYTHON_VERSION 3.8.6) & \
- (if "%python%"=="3.9" setx PYTHON_VERSION 3.9.1)
-RUN choco install -r -y --no-progress python --version=%PYTHON_VERSION%
-RUN python -m pip install -U pip
-
-COPY python/requirements-wheel-build.txt arrow/python/
-RUN pip install -r arrow/python/requirements-wheel-build.txt
-
-# TODO(kszucs): set clcache as the compiler
-ENV CLCACHE_DIR="C:\clcache"
-RUN pip install clcache
-
-# For debugging purposes
-# RUN wget --no-check-certificate https://github.com/lucasg/Dependencies/releases/download/v1.10/Dependencies_x64_Release.zip
-# RUN unzip Dependencies_x64_Release.zip -d Dependencies && setx path "%path%;C:\Depencencies"
diff --git a/ci/docker/ubuntu-18.04-cpp.dockerfile b/ci/docker/ubuntu-18.04-cpp.dockerfile
deleted file mode 100644
index 4b855b5..0000000
--- a/ci/docker/ubuntu-18.04-cpp.dockerfile
+++ /dev/null
@@ -1,128 +0,0 @@
-# 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 base=amd64/ubuntu:18.04
-FROM ${base}
-
-# pipefail is enabled for proper error detection in the `wget | apt-key add`
-# step
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-ENV DEBIAN_FRONTEND=noninteractive
-
-# Installs LLVM toolchain, for Gandiva and testing other compilers
-#
-# Note that this is installed before the base packages to improve iteration
-# while debugging package list with docker build.
-ARG clang_tools
-ARG llvm
-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 && \
- if [ "${clang_tools}" != "${llvm}" -a "${clang_tools}" -ge 10 ]; then \
- echo "deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-${clang_tools} main" > \
- /etc/apt/sources.list.d/clang-tools.list; \
- fi && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- clang-${clang_tools} \
- clang-${llvm} \
- clang-format-${clang_tools} \
- clang-tidy-${clang_tools} \
- llvm-${llvm}-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-# Installs C++ toolchain and dependencies
-RUN apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- autoconf \
- ca-certificates \
- ccache \
- cmake \
- g++ \
- gcc \
- gdb \
- git \
- libbenchmark-dev \
- libboost-filesystem-dev \
- libboost-system-dev \
- libbrotli-dev \
- libbz2-dev \
- libcurl4-openssl-dev \
- libgflags-dev \
- libgoogle-glog-dev \
- liblz4-dev \
- libprotobuf-dev \
- libprotoc-dev \
- libre2-dev \
- libsnappy-dev \
- libssl-dev \
- libutf8proc-dev \
- libzstd-dev \
- ninja-build \
- pkg-config \
- protobuf-compiler \
- rapidjson-dev \
- tzdata && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-# Prioritize system packages and local installation
-# The following dependencies will be downloaded due to missing/invalid packages
-# provided by the distribution:
-# - libc-ares-dev does not install CMake config files
-# - flatbuffer is not packaged
-# - libgtest-dev only provide sources
-# - libprotobuf-dev only provide sources
-# - thrift is too old
-# - s3 tests would require boost-asio that is included since Boost 1.66.0
-ENV ARROW_BUILD_TESTS=ON \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA=ON \
- ARROW_HDFS=ON \
- ARROW_HOME=/usr/local \
- ARROW_INSTALL_NAME_RPATH=OFF \
- ARROW_NO_DEPRECATED_API=ON \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_PLASMA=ON \
- ARROW_USE_ASAN=OFF \
- ARROW_USE_CCACHE=ON \
- ARROW_USE_TSAN=OFF \
- ARROW_USE_UBSAN=OFF \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- AWSSDK_SOURCE=BUNDLED \
- GTest_SOURCE=BUNDLED \
- ORC_SOURCE=BUNDLED \
- PARQUET_BUILD_EXECUTABLES=ON \
- PARQUET_BUILD_EXAMPLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
- Thrift_SOURCE=BUNDLED
diff --git a/ci/docker/ubuntu-18.04-csharp.dockerfile b/ci/docker/ubuntu-18.04-csharp.dockerfile
deleted file mode 100644
index 624ce25..0000000
--- a/ci/docker/ubuntu-18.04-csharp.dockerfile
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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 platform=bionic
-ARG dotnet=3.1
-FROM mcr.microsoft.com/dotnet/core/sdk:${dotnet}-${platform}
-
-RUN dotnet tool install --tool-path /usr/local/bin sourcelink
diff --git a/ci/docker/ubuntu-20.04-cpp.dockerfile b/ci/docker/ubuntu-20.04-cpp.dockerfile
deleted file mode 100644
index 3a37ace..0000000
--- a/ci/docker/ubuntu-20.04-cpp.dockerfile
+++ /dev/null
@@ -1,135 +0,0 @@
-# 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 base=amd64/ubuntu:20.04
-FROM ${base}
-ARG arch
-
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-RUN echo "debconf debconf/frontend select Noninteractive" | \
- debconf-set-selections
-
-# Installs LLVM toolchain, for Gandiva and testing other compilers
-#
-# Note that this is installed before the base packages to improve iteration
-# while debugging package list with docker build.
-ARG clang_tools
-ARG llvm
-RUN if [ "${llvm}" -gt "10" ]; then \
- 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/focal/ llvm-toolchain-focal-${llvm} main" > \
- /etc/apt/sources.list.d/llvm.list && \
- if [ "${clang_tools}" != "${llvm}" -a "${clang_tools}" -gt 10 ]; then \
- echo "deb https://apt.llvm.org/focal/ llvm-toolchain-focal-${clang_tools} main" > \
- /etc/apt/sources.list.d/clang-tools.list; \
- fi \
- fi && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- clang-${clang_tools} \
- clang-${llvm} \
- clang-format-${clang_tools} \
- clang-tidy-${clang_tools} \
- llvm-${llvm}-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-# Installs C++ toolchain and dependencies
-RUN apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- autoconf \
- ca-certificates \
- ccache \
- cmake \
- g++ \
- gcc \
- gdb \
- git \
- libbenchmark-dev \
- libboost-filesystem-dev \
- libboost-system-dev \
- libbrotli-dev \
- libbz2-dev \
- libgflags-dev \
- libcurl4-openssl-dev \
- libgoogle-glog-dev \
- liblz4-dev \
- libprotobuf-dev \
- libprotoc-dev \
- libre2-dev \
- libsnappy-dev \
- libssl-dev \
- libthrift-dev \
- libutf8proc-dev \
- libzstd-dev \
- make \
- ninja-build \
- pkg-config \
- protobuf-compiler \
- rapidjson-dev \
- tzdata \
- wget && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-COPY ci/scripts/install_minio.sh \
- /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
-
-# Prioritize system packages and local installation
-# The following dependencies will be downloaded due to missing/invalid packages
-# provided by the distribution:
-# - libc-ares-dev does not install CMake config files
-# - flatbuffer is not packaged
-# - libgtest-dev only provide sources
-# - libprotobuf-dev only provide sources
-ENV ARROW_BUILD_TESTS=ON \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA=ON \
- ARROW_HDFS=ON \
- ARROW_HOME=/usr/local \
- ARROW_INSTALL_NAME_RPATH=OFF \
- ARROW_NO_DEPRECATED_API=ON \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_PLASMA=ON \
- ARROW_S3=ON \
- ARROW_USE_ASAN=OFF \
- ARROW_USE_CCACHE=ON \
- ARROW_USE_UBSAN=OFF \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- AWSSDK_SOURCE=BUNDLED \
- GTest_SOURCE=BUNDLED \
- ORC_SOURCE=BUNDLED \
- PARQUET_BUILD_EXAMPLES=ON \
- PARQUET_BUILD_EXECUTABLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
- PYTHON=python3
diff --git a/ci/docker/ubuntu-20.10-cpp.dockerfile b/ci/docker/ubuntu-20.10-cpp.dockerfile
deleted file mode 100644
index 80eb072..0000000
--- a/ci/docker/ubuntu-20.10-cpp.dockerfile
+++ /dev/null
@@ -1,137 +0,0 @@
-# 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 base=amd64/ubuntu:20.10
-FROM ${base}
-ARG arch
-
-SHELL ["/bin/bash", "-o", "pipefail", "-c"]
-
-RUN echo "debconf debconf/frontend select Noninteractive" | \
- debconf-set-selections
-
-# Installs LLVM toolchain, for Gandiva and testing other compilers
-#
-# Note that this is installed before the base packages to improve iteration
-# while debugging package list with docker build.
-ARG clang_tools
-ARG llvm
-RUN if [ "${llvm}" -gt "10" ]; then \
- 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/groovy/ llvm-toolchain-groovy-${llvm} main" > \
- /etc/apt/sources.list.d/llvm.list && \
- if [ "${clang_tools}" != "${llvm}" -a "${clang_tools}" -gt 10 ]; then \
- echo "deb https://apt.llvm.org/groovy/ llvm-toolchain-groovy-${clang_tools} main" > \
- /etc/apt/sources.list.d/clang-tools.list; \
- fi \
- fi && \
- apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- clang-${clang_tools} \
- clang-${llvm} \
- clang-format-${clang_tools} \
- clang-tidy-${clang_tools} \
- llvm-${llvm}-dev && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-# Installs C++ toolchain and dependencies
-RUN apt-get update -y -q && \
- apt-get install -y -q --no-install-recommends \
- autoconf \
- ca-certificates \
- ccache \
- cmake \
- g++ \
- gcc \
- gdb \
- git \
- libbenchmark-dev \
- libboost-filesystem-dev \
- libboost-system-dev \
- libbrotli-dev \
- libbz2-dev \
- libgflags-dev \
- libcurl4-openssl-dev \
- libgoogle-glog-dev \
- libgrpc++-dev \
- liblz4-dev \
- libprotobuf-dev \
- libprotoc-dev \
- libre2-dev \
- libsnappy-dev \
- libssl-dev \
- libthrift-dev \
- libutf8proc-dev \
- libzstd-dev \
- make \
- ninja-build \
- pkg-config \
- protobuf-compiler \
- protobuf-compiler-grpc \
- rapidjson-dev \
- tzdata \
- wget && \
- apt-get clean && \
- rm -rf /var/lib/apt/lists*
-
-COPY ci/scripts/install_minio.sh \
- /arrow/ci/scripts/
-RUN /arrow/ci/scripts/install_minio.sh ${arch} linux latest /usr/local
-
-# Prioritize system packages and local installation
-# The following dependencies will be downloaded due to missing/invalid packages
-# provided by the distribution:
-# - libc-ares-dev does not install CMake config files
-# - flatbuffer is not packaged
-# - libgtest-dev only provide sources
-# - libprotobuf-dev only provide sources
-ENV ARROW_BUILD_TESTS=ON \
- ARROW_DEPENDENCY_SOURCE=SYSTEM \
- ARROW_DATASET=ON \
- ARROW_FLIGHT=OFF \
- ARROW_GANDIVA=ON \
- ARROW_HDFS=ON \
- ARROW_HOME=/usr/local \
- ARROW_INSTALL_NAME_RPATH=OFF \
- ARROW_NO_DEPRECATED_API=ON \
- ARROW_ORC=ON \
- ARROW_PARQUET=ON \
- ARROW_PLASMA=ON \
- ARROW_S3=ON \
- ARROW_USE_ASAN=OFF \
- ARROW_USE_CCACHE=ON \
- ARROW_USE_UBSAN=OFF \
- ARROW_WITH_BROTLI=ON \
- ARROW_WITH_BZ2=ON \
- ARROW_WITH_LZ4=ON \
- ARROW_WITH_SNAPPY=ON \
- ARROW_WITH_ZLIB=ON \
- ARROW_WITH_ZSTD=ON \
- AWSSDK_SOURCE=BUNDLED \
- GTest_SOURCE=BUNDLED \
- ORC_SOURCE=BUNDLED \
- PARQUET_BUILD_EXAMPLES=ON \
- PARQUET_BUILD_EXECUTABLES=ON \
- PATH=/usr/lib/ccache/:$PATH \
- PYTHON=python3
diff --git a/ci/etc/hdfs-site.xml b/ci/etc/hdfs-site.xml
deleted file mode 100644
index 9721433..0000000
--- a/ci/etc/hdfs-site.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
-<!--
- Licensed 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. See accompanying LICENSE file.
--->
-
-<!-- This is the client configuration for the HDFS integration tests. -->
-
-<configuration>
- <property>
- <name>dfs.replication</name>
- <value>2</value>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:///data/dfs/data</value>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:///data/dfs/name</value>
- </property>
- <property>
- <name>dfs.namenode.checkpoint.dir</name>
- <value>file:///data/dfs/namesecondary </value>
- </property>
- <property>
- <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
- <value>false</value>
- </property>
- <property>
- <name>dfs.default.replica</name>
- <value>1</value>
- </property>
- <property>
- <name>dfs.support.append</name>
- <value>true</value>
- </property>
- <property>
- <name>dfs.client.block.write.replace-datanode-on-failure.enable</name>
- <value>false</value>
- </property>
-</configuration>
diff --git a/ci/etc/rprofile b/ci/etc/rprofile
deleted file mode 100644
index 229a010..0000000
--- a/ci/etc/rprofile
+++ /dev/null
@@ -1,53 +0,0 @@
- local({
- .pick_cran <- function() {
- # Return a CRAN repo URL, preferring RSPM binaries if available for this OS
- rspm_template <- "https://packagemanager.rstudio.com/cran/__linux__/%s/latest"
- supported_os <- c("focal", "xenial", "bionic", "centos7", "centos8", "opensuse42", "opensuse15", "opensuse152")
-
- 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)
- )
- )
-})
diff --git a/ci/scripts/PKGBUILD b/ci/scripts/PKGBUILD
deleted file mode 100644
index c5b55ee..0000000
--- a/ci/scripts/PKGBUILD
+++ /dev/null
@@ -1,134 +0,0 @@
-# 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.
-
-_realname=arrow
-pkgbase=mingw-w64-${_realname}
-pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
-pkgver=3.0.0.9000
-pkgrel=8000
-pkgdesc="Apache Arrow is a cross-language development platform for in-memory data (mingw-w64)"
-arch=("any")
-url="https://arrow.apache.org/"
-license=("Apache-2.0")
-depends=("${MINGW_PACKAGE_PREFIX}-aws-sdk-cpp"
- "${MINGW_PACKAGE_PREFIX}-libutf8proc"
- "${MINGW_PACKAGE_PREFIX}-re2"
- "${MINGW_PACKAGE_PREFIX}-thrift"
- "${MINGW_PACKAGE_PREFIX}-snappy"
- "${MINGW_PACKAGE_PREFIX}-zlib"
- "${MINGW_PACKAGE_PREFIX}-lz4"
- "${MINGW_PACKAGE_PREFIX}-zstd")
-makedepends=("${MINGW_PACKAGE_PREFIX}-ccache"
- "${MINGW_PACKAGE_PREFIX}-cmake"
- "${MINGW_PACKAGE_PREFIX}-gcc")
-options=("staticlibs" "strip" "!buildflags")
-
-# For installing from a local checkout, set source_dir to . and don't include
-# a "source" param below
-source_dir="$ARROW_HOME"
-# else
-# source_dir=apache-${_realname}-${pkgver}
-
-# For released version:
-#source=("https://archive.apache.org/dist/arrow/arrow-${pkgver}/apache-arrow-${pkgver}.tar.gz")
-#sha256sums=("ac2a77dd9168e9892e432c474611e86ded0be6dfe15f689c948751d37f81391a")
-# For github dev version:
-# Append `#commit=54b1b2f688e5e84b4c664b1e12a95f93b94ab2f3` to the URL to select a revision
-# source=("${source_dir}"::"git+https://github.com/apache/arrow")
-# sha256sums=("SKIP")
-# source_dir="${APPVEYOR_BUILD_FOLDER}/${source_dir}"
-
-cpp_build_dir=build-${CARCH}-cpp
-
-pkgver() {
- # The only purpose of this here is to cause the job to error if the
- # version in pkgver is different from what is in r/DESCRIPTION
- grep Version "${source_dir}/r/DESCRIPTION" | cut -d " " -f 2
-}
-
-build() {
- ARROW_CPP_DIR="${source_dir}/cpp"
- [[ -d ${cpp_build_dir} ]] && rm -rf ${cpp_build_dir}
- mkdir -p ${cpp_build_dir}
- pushd ${cpp_build_dir}
-
- # The Rtools libutf8proc is a static lib, but Findutf8proc.cmake doesn't
- # set the appropriate compiler definition.
- export CPPFLAGS="-DUTF8PROC_STATIC"
-
- # This is the difference between rtools-packages and rtools-backports
- # Remove this when submitting to rtools-packages
- if [ "$RTOOLS_VERSION" = "35" ]; then
- export CC="/C/Rtools${MINGW_PREFIX/mingw/mingw_}/bin/gcc"
- export CXX="/C/Rtools${MINGW_PREFIX/mingw/mingw_}/bin/g++"
- export PATH="/C/Rtools${MINGW_PREFIX/mingw/mingw_}/bin:$PATH"
- export CPPFLAGS="${CPPFLAGS} -I${MINGW_PREFIX}/include"
- export LIBS="-L${MINGW_PREFIX}/libs"
- export ARROW_S3=OFF
- export ARROW_WITH_RE2=OFF
- else
- export ARROW_S3=ON
- export ARROW_WITH_RE2=ON
- fi
-
- MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
- ${MINGW_PREFIX}/bin/cmake.exe \
- ${ARROW_CPP_DIR} \
- -G "MSYS Makefiles" \
- -DARROW_BUILD_SHARED=OFF \
- -DARROW_BUILD_STATIC=ON \
- -DARROW_BUILD_UTILITIES=OFF \
- -DARROW_COMPUTE=ON \
- -DARROW_CSV=ON \
- -DARROW_DATASET=ON \
- -DARROW_FILESYSTEM=ON \
- -DARROW_HDFS=OFF \
- -DARROW_JEMALLOC=OFF \
- -DARROW_JSON=ON \
- -DARROW_LZ4_USE_SHARED=OFF \
- -DARROW_MIMALLOC=ON \
- -DARROW_PACKAGE_PREFIX="${MINGW_PREFIX}" \
- -DARROW_PARQUET=ON \
- -DARROW_S3="${ARROW_S3}" \
- -DARROW_SNAPPY_USE_SHARED=OFF \
- -DARROW_USE_GLOG=OFF \
- -DARROW_WITH_LZ4=ON \
- -DARROW_WITH_RE2="${ARROW_WITH_RE2}" \
- -DARROW_WITH_SNAPPY=ON \
- -DARROW_WITH_ZLIB=ON \
- -DARROW_WITH_ZSTD=ON \
- -DARROW_ZSTD_USE_SHARED=OFF \
- -DARROW_CXXFLAGS="${CPPFLAGS}" \
- -DCMAKE_BUILD_TYPE="release" \
- -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
- -DCMAKE_UNITY_BUILD=ON \
- -DCMAKE_VERBOSE_MAKEFILE=ON
-
- make -j3
- popd
-}
-
-package() {
- make -C ${cpp_build_dir} DESTDIR="${pkgdir}" install
-
- local PREFIX_DEPS=$(cygpath -am ${MINGW_PREFIX})
- pushd "${pkgdir}${MINGW_PREFIX}/lib/pkgconfig"
- for pc in *.pc; do
- sed -s "s|${PREFIX_DEPS}|${MINGW_PREFIX}|g" -i $pc
- done
- popd
-}
diff --git a/ci/scripts/c_glib_build.sh b/ci/scripts/c_glib_build.sh
deleted file mode 100755
index ce3cea1..0000000
--- a/ci/scripts/c_glib_build.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/c_glib
-build_dir=${2}/c_glib
-: ${ARROW_GLIB_GTK_DOC:=false}
-: ${ARROW_GLIB_DEVELOPMENT_MODE:=false}
-
-export PKG_CONFIG_PATH=${ARROW_HOME}/lib/pkgconfig
-
-export CFLAGS="-DARROW_NO_DEPRECATED_API"
-export CXXFLAGS="-DARROW_NO_DEPRECATED_API"
-
-mkdir -p ${build_dir}
-
-# Build with Meson
-meson --prefix=$ARROW_HOME \
- --libdir=lib \
- -Ddevelopment_mode=${ARROW_GLIB_DEVELOPMENT_MODE} \
- -Dgtk_doc=${ARROW_GLIB_GTK_DOC} \
- ${build_dir} \
- ${source_dir}
-
-pushd ${build_dir}
-ninja
-ninja install
-popd
diff --git a/ci/scripts/c_glib_test.sh b/ci/scripts/c_glib_test.sh
deleted file mode 100755
index 25c5413..0000000
--- a/ci/scripts/c_glib_test.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/c_glib
-build_dir=${2}/c_glib
-
-export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
-export PKG_CONFIG_PATH=${ARROW_HOME}/lib/pkgconfig
-export GI_TYPELIB_PATH=${ARROW_HOME}/lib/girepository-1.0
-
-pushd ${source_dir}
-
-ruby test/run-test.rb
-
-if [[ "$(uname -s)" == "Linux" ]]; then
- # TODO(kszucs): on osx it fails to load 'lgi.corelgilua51' despite that lgi
- # was installed by luarocks
- pushd example/lua
- lua write-batch.lua
- lua read-batch.lua
- lua write-stream.lua
- lua read-stream.lua
- popd
-fi
-
-popd
-
-pushd ${build_dir}
-example/extension-type
-popd
diff --git a/ci/scripts/ccache_setup.sh b/ci/scripts/ccache_setup.sh
deleted file mode 100755
index f77fbb3..0000000
--- a/ci/scripts/ccache_setup.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-echo "ARROW_USE_CCACHE=ON" >> $GITHUB_ENV
-echo "CCACHE_COMPILERCHECK=content" >> $GITHUB_ENV
-echo "CCACHE_COMPRESS=1" >> $GITHUB_ENV
-echo "CCACHE_COMPRESSLEVEL=6" >> $GITHUB_ENV
-echo "CCACHE_MAXSIZE=500M" >> $GITHUB_ENV
diff --git a/ci/scripts/cpp_build.sh b/ci/scripts/cpp_build.sh
deleted file mode 100755
index 8a1e4f3..0000000
--- a/ci/scripts/cpp_build.sh
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/cpp
-build_dir=${2}/cpp
-with_docs=${3:-false}
-
-: ${ARROW_USE_CCACHE:=OFF}
-
-# TODO(kszucs): consider to move these to CMake
-if [ ! -z "${CONDA_PREFIX}" ]; then
- echo -e "===\n=== Conda environment for build\n==="
- conda list
-
- export CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_AR=${AR} -DCMAKE_RANLIB=${RANLIB}"
- export ARROW_GANDIVA_PC_CXX_FLAGS=$(echo | ${CXX} -E -Wp,-v -xc++ - 2>&1 | grep '^ ' | awk '{print "-isystem;" substr($1, 1)}' | tr '\n' ';')
-elif [ -x "$(command -v xcrun)" ]; then
- export ARROW_GANDIVA_PC_CXX_FLAGS="-isysroot;$(xcrun --show-sdk-path)"
-fi
-
-if [ "${ARROW_USE_CCACHE}" == "ON" ]; then
- echo -e "===\n=== ccache statistics before build\n==="
- ccache -s
-fi
-
-mkdir -p ${build_dir}
-pushd ${build_dir}
-
-cmake -G "${CMAKE_GENERATOR:-Ninja}" \
- -DARROW_BOOST_USE_SHARED=${ARROW_BOOST_USE_SHARED:-ON} \
- -DARROW_BUILD_BENCHMARKS=${ARROW_BUILD_BENCHMARKS:-OFF} \
- -DARROW_BUILD_BENCHMARKS_REFERENCE=${ARROW_BUILD_BENCHMARKS:-OFF} \
- -DARROW_BUILD_EXAMPLES=${ARROW_BUILD_EXAMPLES:-OFF} \
- -DARROW_BUILD_INTEGRATION=${ARROW_BUILD_INTEGRATION:-OFF} \
- -DARROW_BUILD_SHARED=${ARROW_BUILD_SHARED:-ON} \
- -DARROW_BUILD_STATIC=${ARROW_BUILD_STATIC:-ON} \
- -DARROW_BUILD_TESTS=${ARROW_BUILD_TESTS:-OFF} \
- -DARROW_BUILD_UTILITIES=${ARROW_BUILD_UTILITIES:-ON} \
- -DARROW_COMPUTE=${ARROW_COMPUTE:-ON} \
- -DARROW_CSV=${ARROW_CSV:-ON} \
- -DARROW_CUDA=${ARROW_CUDA:-OFF} \
- -DARROW_CXXFLAGS=${ARROW_CXXFLAGS:-} \
- -DARROW_DATASET=${ARROW_DATASET:-ON} \
- -DARROW_DEPENDENCY_SOURCE=${ARROW_DEPENDENCY_SOURCE:-AUTO} \
- -DARROW_EXTRA_ERROR_CONTEXT=${ARROW_EXTRA_ERROR_CONTEXT:-OFF} \
- -DARROW_ENABLE_TIMING_TESTS=${ARROW_ENABLE_TIMING_TESTS:-ON} \
- -DARROW_FILESYSTEM=${ARROW_FILESYSTEM:-ON} \
- -DARROW_FLIGHT=${ARROW_FLIGHT:-OFF} \
- -DARROW_FUZZING=${ARROW_FUZZING:-OFF} \
- -DARROW_GANDIVA_JAVA=${ARROW_GANDIVA_JAVA:-OFF} \
- -DARROW_GANDIVA_PC_CXX_FLAGS=${ARROW_GANDIVA_PC_CXX_FLAGS:-} \
- -DARROW_GANDIVA=${ARROW_GANDIVA:-OFF} \
- -DARROW_HDFS=${ARROW_HDFS:-ON} \
- -DARROW_HIVESERVER2=${ARROW_HIVESERVER2:-OFF} \
- -DARROW_INSTALL_NAME_RPATH=${ARROW_INSTALL_NAME_RPATH:-ON} \
- -DARROW_JEMALLOC=${ARROW_JEMALLOC:-ON} \
- -DARROW_JNI=${ARROW_JNI:-OFF} \
- -DARROW_JSON=${ARROW_JSON:-ON} \
- -DARROW_LARGE_MEMORY_TESTS=${ARROW_LARGE_MEMORY_TESTS:-OFF} \
- -DARROW_MIMALLOC=${ARROW_MIMALLOC:-OFF} \
- -DARROW_NO_DEPRECATED_API=${ARROW_NO_DEPRECATED_API:-OFF} \
- -DARROW_ORC=${ARROW_ORC:-OFF} \
- -DARROW_PARQUET=${ARROW_PARQUET:-OFF} \
- -DARROW_PLASMA_JAVA_CLIENT=${ARROW_PLASMA_JAVA_CLIENT:-OFF} \
- -DARROW_PLASMA=${ARROW_PLASMA:-OFF} \
- -DARROW_PYTHON=${ARROW_PYTHON:-OFF} \
- -DARROW_RUNTIME_SIMD_LEVEL=${ARROW_RUNTIME_SIMD_LEVEL:-MAX} \
- -DARROW_S3=${ARROW_S3:-OFF} \
- -DARROW_TEST_LINKAGE=${ARROW_TEST_LINKAGE:-shared} \
- -DARROW_TEST_MEMCHECK=${ARROW_TEST_MEMCHECK:-OFF} \
- -DARROW_USE_ASAN=${ARROW_USE_ASAN:-OFF} \
- -DARROW_USE_CCACHE=${ARROW_USE_CCACHE:-ON} \
- -DARROW_USE_GLOG=${ARROW_USE_GLOG:-OFF} \
- -DARROW_USE_LD_GOLD=${ARROW_USE_LD_GOLD:-OFF} \
- -DARROW_USE_PRECOMPILED_HEADERS=${ARROW_USE_PRECOMPILED_HEADERS:-OFF} \
- -DARROW_USE_STATIC_CRT=${ARROW_USE_STATIC_CRT:-OFF} \
- -DARROW_USE_TSAN=${ARROW_USE_TSAN:-OFF} \
- -DARROW_USE_UBSAN=${ARROW_USE_UBSAN:-OFF} \
- -DARROW_VERBOSE_THIRDPARTY_BUILD=${ARROW_VERBOSE_THIRDPARTY_BUILD:-OFF} \
- -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI:-OFF} \
- -DARROW_WITH_BZ2=${ARROW_WITH_BZ2:-OFF} \
- -DARROW_WITH_LZ4=${ARROW_WITH_LZ4:-OFF} \
- -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY:-OFF} \
- -DARROW_WITH_UTF8PROC=${ARROW_WITH_UTF8PROC:-ON} \
- -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB:-OFF} \
- -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD:-OFF} \
- -DAWSSDK_SOURCE=${AWSSDK_SOURCE:-} \
- -Dbenchmark_SOURCE=${benchmark_SOURCE:-} \
- -DBOOST_SOURCE=${BOOST_SOURCE:-} \
- -DBrotli_SOURCE=${Brotli_SOURCE:-} \
- -DBUILD_WARNING_LEVEL=${BUILD_WARNING_LEVEL:-CHECKIN} \
- -Dc-ares_SOURCE=${cares_SOURCE:-} \
- -DCMAKE_BUILD_TYPE=${ARROW_BUILD_TYPE:-debug} \
- -DCMAKE_C_FLAGS="${CFLAGS:-}" \
- -DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
- -DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
- -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
- -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD:-OFF} \
- -Dgflags_SOURCE=${gflags_SOURCE:-} \
- -DgRPC_SOURCE=${gRPC_SOURCE:-} \
- -DGTest_SOURCE=${GTest_SOURCE:-} \
- -DLz4_SOURCE=${Lz4_SOURCE:-} \
- -DORC_SOURCE=${ORC_SOURCE:-} \
- -DPARQUET_BUILD_EXECUTABLES=${PARQUET_BUILD_EXECUTABLES:-OFF} \
- -DPARQUET_BUILD_EXAMPLES=${PARQUET_BUILD_EXAMPLES:-OFF} \
- -DPARQUET_REQUIRE_ENCRYPTION=${PARQUET_REQUIRE_ENCRYPTION:-ON} \
- -DProtobuf_SOURCE=${Protobuf_SOURCE:-} \
- -DRapidJSON_SOURCE=${RapidJSON_SOURCE:-} \
- -Dre2_SOURCE=${re2_SOURCE:-} \
- -DSnappy_SOURCE=${Snappy_SOURCE:-} \
- -DThrift_SOURCE=${Thrift_SOURCE:-} \
- -Dutf8proc_SOURCE=${utf8proc_SOURCE:-} \
- -Dzstd_SOURCE=${zstd_SOURCE:-} \
- ${CMAKE_ARGS} \
- ${source_dir}
-
-if [ ! -z "${CPP_MAKE_PARALLELISM}" ]; then
- time cmake --build . --target install -- -j${CPP_MAKE_PARALLELISM}
-else
- time cmake --build . --target install
-fi
-
-popd
-
-if [ -x "$(command -v ldconfig)" ]; then
- ldconfig
-fi
-
-if [ "${ARROW_USE_CCACHE}" == "ON" ]; then
- echo -e "===\n=== ccache statistics after build\n==="
- ccache -s
-fi
-
-if [ "${with_docs}" == "true" ]; then
- pushd ${source_dir}/apidoc
- doxygen
- popd
-fi
diff --git a/ci/scripts/cpp_test.sh b/ci/scripts/cpp_test.sh
deleted file mode 100755
index 1bf0a3b..0000000
--- a/ci/scripts/cpp_test.sh
+++ /dev/null
@@ -1,95 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-arrow_dir=${1}
-source_dir=${1}/cpp
-build_dir=${2}/cpp
-binary_output_dir=${build_dir}/${ARROW_BUILD_TYPE:-debug}
-
-export ARROW_TEST_DATA=${arrow_dir}/testing/data
-export PARQUET_TEST_DATA=${source_dir}/submodules/parquet-testing/data
-export LD_LIBRARY_PATH=${ARROW_HOME}/${CMAKE_INSTALL_LIBDIR:-lib}:${LD_LIBRARY_PATH}
-
-# By default, aws-sdk tries to contact a non-existing local ip host
-# to retrieve metadata. Disable this so that S3FileSystem tests run faster.
-export AWS_EC2_METADATA_DISABLED=TRUE
-
-ctest_options=()
-case "$(uname)" in
- Linux)
- n_jobs=$(nproc)
- ;;
- Darwin)
- n_jobs=$(sysctl -n hw.ncpu)
- ;;
- MINGW*)
- n_jobs=${NUMBER_OF_PROCESSORS:-1}
- # TODO: Enable these crashed tests.
- # https://issues.apache.org/jira/browse/ARROW-9072
- exclude_tests="gandiva-internals-test"
- exclude_tests="${exclude_tests}|gandiva-projector-test"
- exclude_tests="${exclude_tests}|gandiva-utf8-test"
- if [ "${MSYSTEM}" = "MINGW32" ]; then
- exclude_tests="${exclude_tests}|gandiva-projector-test"
- exclude_tests="${exclude_tests}|gandiva-binary-test"
- exclude_tests="${exclude_tests}|gandiva-boolean-expr-test"
- exclude_tests="${exclude_tests}|gandiva-date-time-test"
- exclude_tests="${exclude_tests}|gandiva-decimal-single-test"
- exclude_tests="${exclude_tests}|gandiva-decimal-test"
- exclude_tests="${exclude_tests}|gandiva-filter-project-test"
- exclude_tests="${exclude_tests}|gandiva-filter-test"
- exclude_tests="${exclude_tests}|gandiva-hash-test"
- exclude_tests="${exclude_tests}|gandiva-if-expr-test"
- exclude_tests="${exclude_tests}|gandiva-in-expr-test"
- exclude_tests="${exclude_tests}|gandiva-literal-test"
- exclude_tests="${exclude_tests}|gandiva-null-validity-test"
- fi
- ctest_options+=(--exclude-regex "${exclude_tests}")
- ;;
- *)
- n_jobs=${NPROC:-1}
- ;;
-esac
-
-pushd ${build_dir}
-
-if ! which python > /dev/null 2>&1; then
- export PYTHON=python3
-fi
-ctest \
- --label-regex unittest \
- --output-on-failure \
- --parallel ${n_jobs} \
- --timeout 300 \
- "${ctest_options[@]}"
-
-if [ "${ARROW_FUZZING}" == "ON" ]; then
- # Fuzzing regression tests
- ${binary_output_dir}/arrow-ipc-stream-fuzz ${ARROW_TEST_DATA}/arrow-ipc-stream/crash-*
- ${binary_output_dir}/arrow-ipc-stream-fuzz ${ARROW_TEST_DATA}/arrow-ipc-stream/*-testcase-*
- ${binary_output_dir}/arrow-ipc-file-fuzz ${ARROW_TEST_DATA}/arrow-ipc-file/*-testcase-*
- ${binary_output_dir}/arrow-ipc-tensor-stream-fuzz ${ARROW_TEST_DATA}/arrow-ipc-tensor-stream/*-testcase-*
- if [ "${ARROW_PARQUET}" == "ON" ]; then
- ${binary_output_dir}/parquet-arrow-fuzz ${ARROW_TEST_DATA}/parquet/fuzzing/*-testcase-*
- fi
-fi
-
-popd
diff --git a/ci/scripts/csharp_build.sh b/ci/scripts/csharp_build.sh
deleted file mode 100755
index 5a39767..0000000
--- a/ci/scripts/csharp_build.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/csharp
-
-pushd ${source_dir}
-dotnet build
-popd
diff --git a/ci/scripts/csharp_pack.sh b/ci/scripts/csharp_pack.sh
deleted file mode 100755
index e9dfc66..0000000
--- a/ci/scripts/csharp_pack.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-source_dir=${1}/csharp
-
-pushd ${source_dir}
-dotnet pack -c Release
-popd
diff --git a/ci/scripts/csharp_test.sh b/ci/scripts/csharp_test.sh
deleted file mode 100755
index 9e4e35d..0000000
--- a/ci/scripts/csharp_test.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/csharp
-
-pushd ${source_dir}
-dotnet test
-for pdb in artifacts/Apache.Arrow/*/*/Apache.Arrow.pdb; do
- sourcelink test ${pdb}
-done
-popd
diff --git a/ci/scripts/docs_build.sh b/ci/scripts/docs_build.sh
deleted file mode 100755
index e6ee768..0000000
--- a/ci/scripts/docs_build.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -ex
-
-arrow_dir=${1}
-build_dir=${2}/docs
-
-export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
-export PKG_CONFIG_PATH=${ARROW_HOME}/lib/pkgconfig:${PKG_CONFIG_PATH}
-export GI_TYPELIB_PATH=${ARROW_HOME}/lib/girepository-1.0
-export CFLAGS="-DARROW_NO_DEPRECATED_API"
-export CXXFLAGS="-DARROW_NO_DEPRECATED_API"
-
-ncpus=$(python3 -c "import os; print(os.cpu_count())")
-
-# Sphinx docs
-sphinx-build -b html -j ${ncpus} ${arrow_dir}/docs/source ${build_dir}
-
-# C++ - original doxygen
-# rsync -a ${arrow_dir}/cpp/apidoc/ ${build_dir}/cpp
-
-# R
-rsync -a ${arrow_dir}/r/docs/ ${build_dir}/r
-
-# C GLib
-rsync -a ${ARROW_HOME}/share/gtk-doc/html/ ${build_dir}/c_glib
-
-# Java
-rsync -a ${arrow_dir}/java/target/site/apidocs/ ${build_dir}/java/reference
-
-# Javascript
-rsync -a ${arrow_dir}/js/doc/ ${build_dir}/js
diff --git a/ci/scripts/go_build.sh b/ci/scripts/go_build.sh
deleted file mode 100755
index 7093be4..0000000
--- a/ci/scripts/go_build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/go
-
-pushd ${source_dir}/arrow
-
-go get -d -t -v ./...
-go install -v ./...
-
-popd
-
-pushd ${source_dir}/parquet
-
-go get -d -t -v ./...
-go install -v ./...
-
-popd
diff --git a/ci/scripts/go_test.sh b/ci/scripts/go_test.sh
deleted file mode 100755
index 7dd873d..0000000
--- a/ci/scripts/go_test.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/go
-
-pushd ${source_dir}/arrow
-
-for d in $(go list ./... | grep -v vendor); do
- go test $d
-done
-
-popd
-
-pushd ${source_dir}/parquet
-
-for d in $(go list ./... | grep -v vendor); do
- go test $d
-done
-
-popd
diff --git a/ci/scripts/install_conda.sh b/ci/scripts/install_conda.sh
deleted file mode 100755
index f4d313b..0000000
--- a/ci/scripts/install_conda.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-declare -A archs
-archs=([amd64]=x86_64
- [arm32v7]=armv7l
- [ppc64le]=ppc64le
- [i386]=x86)
-
-declare -A platforms
-platforms=([windows]=Windows
- [macos]=MacOSX
- [linux]=Linux)
-
-if [ "$#" -ne 4 ]; then
- echo "Usage: $0 <architecture> <platform> <version> <prefix>"
- exit 1
-elif [[ -z ${archs[$1]} ]]; then
- echo "Unexpected architecture: ${1}"
- exit 1
-elif [[ -z ${platforms[$2]} ]]; then
- echo "Unexpected platform: ${2}"
- exit 1
-fi
-
-arch=${archs[$1]}
-platform=${platforms[$2]}
-version=$3
-prefix=$4
-
-echo "Downloading Miniconda installer..."
-wget -nv https://repo.continuum.io/miniconda/Miniconda3-${version}-${platform}-${arch}.sh -O /tmp/miniconda.sh
-bash /tmp/miniconda.sh -b -p ${prefix}
-rm /tmp/miniconda.sh
-
-# Like "conda init", but for POSIX sh rather than bash
-ln -s ${prefix}/etc/profile.d/conda.sh /etc/profile.d/conda.sh
-
-# Configure
-source /etc/profile.d/conda.sh
-conda config --add channels conda-forge
-conda config --set channel_priority strict
-conda config --set show_channel_urls True
-conda config --set remote_connect_timeout_secs 12
-
-# Update and clean
-conda update --all -y
-conda clean --all -y
diff --git a/ci/scripts/install_dask.sh b/ci/scripts/install_dask.sh
deleted file mode 100755
index 954ce32..0000000
--- a/ci/scripts/install_dask.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-if [ "$#" -ne 1 ]; then
- echo "Usage: $0 <dask version>"
- exit 1
-fi
-
-dask=$1
-
-if [ "${dask}" = "master" ]; then
- pip install https://github.com/dask/dask/archive/main.tar.gz#egg=dask[dataframe]
-elif [ "${dask}" = "latest" ]; then
- conda install -q dask
-else
- conda install -q dask=${dask}
-fi
-conda clean --all
diff --git a/ci/scripts/install_iwyu.sh b/ci/scripts/install_iwyu.sh
deleted file mode 100755
index 3cd2cbc..0000000
--- a/ci/scripts/install_iwyu.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -eu
-
-source_dir=${1:-/tmp/iwyu}
-install_prefix=${2:-/usr/local}
-clang_tools_version=${3:-8}
-
-iwyu_branch_name="clang_${clang_tools_version}"
-if [ ${clang_tools_version} -lt 10 ]; then
- iwyu_branch_name="${iwyu_branch_name}.0"
-fi
-
-git clone --single-branch --branch ${iwyu_branch_name} \
- https://github.com/include-what-you-use/include-what-you-use.git ${source_dir}
-
-mkdir -p ${source_dir}/build
-pushd ${source_dir}/build
-
-# Build IWYU for current Clang
-export CC=clang-${clang_tools_version}
-export CXX=clang++-${clang_tools_version}
-
-cmake -DCMAKE_PREFIX_PATH=/usr/lib/llvm-${clang_tools_version} \
- -DCMAKE_INSTALL_PREFIX=${install_prefix} \
- ${source_dir}
-make -j4
-make install
-
-popd
-
-rm -rf ${source_dir}
diff --git a/ci/scripts/install_kartothek.sh b/ci/scripts/install_kartothek.sh
deleted file mode 100755
index 4d88943..0000000
--- a/ci/scripts/install_kartothek.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <kartothek version> <target directory>"
- exit 1
-fi
-
-karthothek=$1
-target=$2
-
-git clone --recurse-submodules https://github.com/JDASoftwareGroup/kartothek "${target}"
-if [ "${kartothek}" = "master" ]; then
- git -C "${target}" checkout master;
-elif [ "${kartothek}" = "latest" ]; then
- git -C "${target}" checkout $(git describe --tags);
-else
- git -C "${target}" checkout ${kartothek};
-fi
-
-pushd "${target}"
-pip install --no-deps .
-popd
diff --git a/ci/scripts/install_minio.sh b/ci/scripts/install_minio.sh
deleted file mode 100755
index 42f7ce0..0000000
--- a/ci/scripts/install_minio.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-declare -A archs
-archs=([amd64]=amd64
- [arm64v8]=arm64
- [arm32v7]=arm
- [s390x]=s390x)
-
-declare -A platforms
-platforms=([linux]=linux
- [macos]=darwin)
-
-arch=${archs[$1]}
-platform=${platforms[$2]}
-version=$3
-prefix=$4
-
-if [ "$#" -ne 4 ]; then
- echo "Usage: $0 <architecture> <platform> <version> <prefix>"
- exit 1
-elif [[ -z ${arch} ]]; then
- echo "Unexpected architecture: ${1}"
- exit 1
-elif [[ -z ${platform} ]]; then
- echo "Unexpected platform: ${2}"
- exit 1
-elif [[ ${version} != "latest" ]]; then
- echo "Cannot fetch specific versions of minio, only latest is supported."
- exit 1
-fi
-
-wget -nv -P ${prefix}/bin https://dl.min.io/server/minio/release/${platform}-${arch}/minio
-chmod +x ${prefix}/bin/minio
diff --git a/ci/scripts/install_osx_sdk.sh b/ci/scripts/install_osx_sdk.sh
deleted file mode 100755
index 896d084..0000000
--- a/ci/scripts/install_osx_sdk.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-
-# 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.
-
-set -ex
-
-if [ ${using_homebrew} != "yes" ]; then
- export MACOSX_DEPLOYMENT_TARGET="10.9"
- export CONDA_BUILD_SYSROOT="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX${MACOSX_DEPLOYMENT_TARGET}.sdk"
-
- if [[ ! -d ${CONDA_BUILD_SYSROOT} || "$OSX_FORCE_SDK_DOWNLOAD" == "1" ]]; then
- echo "downloading ${macosx_deployment_target} sdk"
- curl -L -O https://github.com/phracker/MacOSX-SDKs/releases/download/10.13/MacOSX${MACOSX_DEPLOYMENT_TARGET}.sdk.tar.xz
- tar -xf MacOSX${MACOSX_DEPLOYMENT_TARGET}.sdk.tar.xz -C "$(dirname "$CONDA_BUILD_SYSROOT")"
- # set minimum sdk version to our target
- plutil -replace MinimumSDKVersion -string ${MACOSX_DEPLOYMENT_TARGET} $(xcode-select -p)/Platforms/MacOSX.platform/Info.plist
- plutil -replace DTSDKName -string macosx${MACOSX_DEPLOYMENT_TARGET}internal $(xcode-select -p)/Platforms/MacOSX.platform/Info.plist
- fi
-
- if [ -d "${CONDA_BUILD_SYSROOT}" ]; then
- echo "Found CONDA_BUILD_SYSROOT: ${CONDA_BUILD_SYSROOT}"
- else
- echo "Missing CONDA_BUILD_SYSROOT: ${CONDA_BUILD_SYSROOT}"
- exit 1
- fi
-fi
diff --git a/ci/scripts/install_pandas.sh b/ci/scripts/install_pandas.sh
deleted file mode 100755
index 5aca65f..0000000
--- a/ci/scripts/install_pandas.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-if [ "$#" -lt 1 ]; then
- echo "Usage: $0 <pandas version> <optional numpy version = latest>"
- exit 1
-fi
-
-pandas=$1
-numpy=${2:-"latest"}
-
-if [ "${numpy}" = "nightly" ]; then
- pip install --extra-index-url https://pypi.anaconda.org/scipy-wheels-nightly/simple --pre numpy
-elif [ "${numpy}" = "latest" ]; then
- pip install numpy
-else
- pip install numpy==${numpy}
-fi
-
-if [ "${pandas}" = "master" ]; then
- pip install git+https://github.com/pandas-dev/pandas.git --no-build-isolation
-elif [ "${pandas}" = "nightly" ]; then
- pip install --extra-index-url https://pypi.anaconda.org/scipy-wheels-nightly/simple --pre pandas
-elif [ "${pandas}" = "latest" ]; then
- pip install pandas
-else
- pip install pandas==${pandas}
-fi
diff --git a/ci/scripts/install_spark.sh b/ci/scripts/install_spark.sh
deleted file mode 100755
index 936313f..0000000
--- a/ci/scripts/install_spark.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <spark version> <target directory>"
- exit 1
-fi
-
-spark=$1
-target=$2
-
-git clone https://github.com/apache/spark "${target}"
-git -C "${target}" checkout "${spark}"
diff --git a/ci/scripts/install_turbodbc.sh b/ci/scripts/install_turbodbc.sh
deleted file mode 100755
index a71520b..0000000
--- a/ci/scripts/install_turbodbc.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <turbodbc version> <target directory>"
- exit 1
-fi
-
-turbodbc=$1
-target=$2
-
-git clone --recurse-submodules https://github.com/blue-yonder/turbodbc "${target}"
-if [ "${turbodbc}" = "master" ]; then
- git -C "${target}" checkout master;
-elif [ "${turbodbc}" = "latest" ]; then
- git -C "${target}" checkout $(git describe --tags);
-else
- git -C "${target}" checkout ${turbodbc};
-fi
diff --git a/ci/scripts/integration_arrow.sh b/ci/scripts/integration_arrow.sh
deleted file mode 100755
index 5d2e719..0000000
--- a/ci/scripts/integration_arrow.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-arrow_dir=${1}
-source_dir=${1}/cpp
-build_dir=${2}/cpp
-
-gold_dir=$arrow_dir/testing/data/arrow-ipc-stream/integration
-
-pip install -e $arrow_dir/dev/archery
-
-archery integration --with-all --run-flight \
- --gold-dirs=$gold_dir/0.14.1 \
- --gold-dirs=$gold_dir/0.17.1 \
- --gold-dirs=$gold_dir/1.0.0-bigendian \
- --gold-dirs=$gold_dir/1.0.0-littleendian \
- --gold-dirs=$gold_dir/2.0.0-compression \
- --gold-dirs=$gold_dir/4.0.0-shareddict \
diff --git a/ci/scripts/integration_dask.sh b/ci/scripts/integration_dask.sh
deleted file mode 100755
index a735928..0000000
--- a/ci/scripts/integration_dask.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-# check that optional pyarrow modules are available
-# because pytest would just skip the dask tests
-python -c "import pyarrow.orc"
-python -c "import pyarrow.parquet"
-
-# check that dask.dataframe is correctly installed
-python -c "import dask.dataframe"
-
-# TODO(kszucs): the following tests are also uses pyarrow
-# pytest -sv --pyargs dask.bytes.tests.test_s3
-# pytest -sv --pyargs dask.bytes.tests.test_hdfs
-# pytest -sv --pyargs dask.bytes.tests.test_local
-
-# skip failing pickle test, see https://github.com/dask/dask/issues/6374
-pytest -v --pyargs dask.dataframe.tests.test_dataframe -k "not test_dataframe_picklable"
-pytest -v --pyargs dask.dataframe.io.tests.test_orc
-# skip failing parquet tests, see https://github.com/dask/dask/issues/6243
-# test_illegal_column_name can be removed once next dask release is out
-# (https://github.com/dask/dask/pull/6378)
-pytest -v --pyargs dask.dataframe.io.tests.test_parquet \
- -k "not test_to_parquet_pyarrow_w_inconsistent_schema_by_partition_fails_by_default and not test_timeseries_nulls_in_schema and not test_illegal_column_name"
diff --git a/ci/scripts/integration_hdfs.sh b/ci/scripts/integration_hdfs.sh
deleted file mode 100755
index c954493..0000000
--- a/ci/scripts/integration_hdfs.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-source_dir=${1}/cpp
-build_dir=${2}/cpp
-
-export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath --glob)
-export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
-export LIBHDFS3_CONF=$HADOOP_CONF_DIR/hdfs-site.xml
-export ARROW_LIBHDFS3_DIR=$CONDA_PREFIX/lib
-
-libhdfs_dir=$HADOOP_HOME/lib/native
-hadoop_home=$HADOOP_HOME
-
-function use_hadoop_home() {
- unset ARROW_LIBHDFS_DIR
- export HADOOP_HOME=$hadoop_home
-}
-
-function use_libhdfs_dir() {
- unset HADOOP_HOME
- export ARROW_LIBHDFS_DIR=$libhdfs_dir
-}
-
-# execute cpp tests
-export ARROW_HDFS_TEST_LIBHDFS_REQUIRE=ON
-pushd ${build_dir}
-
-debug/arrow-io-hdfs-test
-debug/arrow-hdfs-test
-
-use_libhdfs_dir
-debug/arrow-io-hdfs-test
-debug/arrow-hdfs-test
-use_hadoop_home
-
-popd
-
-# cannot use --pyargs with custom arguments like --hdfs or --only-hdfs, because
-# pytest ignores them, see https://github.com/pytest-dev/pytest/issues/3517
-export PYARROW_TEST_HDFS=ON
-
-export PYARROW_HDFS_TEST_LIBHDFS_REQUIRE=ON
-
-pytest -vs --pyargs pyarrow.tests.test_fs
-pytest -vs --pyargs pyarrow.tests.test_hdfs
-
-use_libhdfs_dir
-pytest -vs --pyargs pyarrow.tests.test_fs
-pytest -vs --pyargs pyarrow.tests.test_hdfs
-use_hadoop_home
diff --git a/ci/scripts/integration_hiveserver2.sh b/ci/scripts/integration_hiveserver2.sh
deleted file mode 100755
index 36fba5c..0000000
--- a/ci/scripts/integration_hiveserver2.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -e
-
-arrow_dir=${1}
-source_dir=${1}/cpp
-build_dir=${2}/cpp
-
-${arrow_dir}/ci/scripts/util_wait_for_it.sh impala:21050 -t 300 -s -- echo "impala is up"
-
-pushd ${build_dir}
-
-# ninja hiveserver2-test
-debug/hiveserver2-test
-
-popd
diff --git a/ci/scripts/integration_kartothek.sh b/ci/scripts/integration_kartothek.sh
deleted file mode 100755
index 379569b..0000000
--- a/ci/scripts/integration_kartothek.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-# check that optional pyarrow modules are available
-# because pytest would just skip the pyarrow tests
-python -c "import pyarrow.parquet"
-
-# check that kartothek is correctly installed
-python -c "import kartothek"
-
-pushd /kartothek
-# See ARROW-12314, test_load_dataframes_columns_raises_missing skipped because of changed error message
-pytest -n0 --ignore tests/cli/test_query.py -k "not test_load_dataframes_columns_raises_missing"
diff --git a/ci/scripts/integration_spark.sh b/ci/scripts/integration_spark.sh
deleted file mode 100755
index a53a629..0000000
--- a/ci/scripts/integration_spark.sh
+++ /dev/null
@@ -1,87 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-# exit on any error
-set -eu
-
-source_dir=${1}
-spark_dir=${2}
-
-# Test Spark with latest PyArrow only, don't build with latest Arrow Java
-test_pyarrow_only=${3:-false}
-
-# Spark branch to checkout
-spark_version=${SPARK_VERSION:-master}
-
-# Use old behavior that always dropped tiemzones.
-export PYARROW_IGNORE_TIMEZONE=1
-
-if [ "${SPARK_VERSION:0:2}" == "2." ]; then
- # https://github.com/apache/spark/blob/master/docs/sql-pyspark-pandas-with-arrow.md#compatibility-setting-for-pyarrow--0150-and-spark-23x-24x
- export ARROW_PRE_0_15_IPC_FORMAT=1
-fi
-
-# Get Arrow Java version
-pushd ${source_dir}/java
- arrow_version=`mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | sed -n -e '/^\[.*\]/ !{ /^[0-9]/ { p; q } }'`
-popd
-
-export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m -Dorg.slf4j.simpleLogger.defaultLogLevel=warn"
-export MAVEN_OPTS="${MAVEN_OPTS} -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
-
-pushd ${spark_dir}
-
- if [ "${test_pyarrow_only}" == "true" ]; then
- echo "Building Spark ${SPARK_VERSION} to test pyarrow only"
-
- # Build Spark only
- build/mvn -B -DskipTests package
-
- else
-
- # Update Spark pom with the Arrow version just installed and build Spark, need package phase for pyspark
- echo "Building Spark ${SPARK_VERSION} with Arrow ${arrow_version}"
- mvn versions:set-property -Dproperty=arrow.version -DnewVersion=${arrow_version}
-
- # Build Spark with new Arrow Java
- build/mvn -B -DskipTests package -pl sql/core -pl assembly -am
-
- spark_scala_tests=(
- "org.apache.spark.sql.execution.arrow"
- "org.apache.spark.sql.execution.vectorized.ColumnarBatchSuite"
- "org.apache.spark.sql.execution.vectorized.ArrowColumnVectorSuite")
-
- (echo "Testing Spark:"; IFS=$'\n'; echo "${spark_scala_tests[*]}")
-
- # TODO: should be able to only build spark-sql tests with adding "-pl sql/core" but not currently working
- build/mvn -B -Dtest=none -DwildcardSuites=$(IFS=,; echo "${spark_scala_tests[*]}") test
- fi
-
- # Run pyarrow related Python tests only
- spark_python_tests=(
- "pyspark.sql.tests.test_arrow"
- "pyspark.sql.tests.test_pandas_map"
- "pyspark.sql.tests.test_pandas_cogrouped_map"
- "pyspark.sql.tests.test_pandas_grouped_map"
- "pyspark.sql.tests.test_pandas_udf"
- "pyspark.sql.tests.test_pandas_udf_scalar"
- "pyspark.sql.tests.test_pandas_udf_grouped_agg"
- "pyspark.sql.tests.test_pandas_udf_window")
-
- (echo "Testing PySpark:"; IFS=$'\n'; echo "${spark_python_tests[*]}")
- python/run-tests --testnames "$(IFS=,; echo "${spark_python_tests[*]}")" --python-executables python
-popd
diff --git a/ci/scripts/integration_turbodbc.sh b/ci/scripts/integration_turbodbc.sh
deleted file mode 100755
index f560743..0000000
--- a/ci/scripts/integration_turbodbc.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-
-source_dir=${1}
-build_dir=${2}/turbodbc
-
-# check that optional pyarrow modules are available
-# because pytest would just skip the pyarrow tests
-python -c "import pyarrow.orc"
-python -c "import pyarrow.parquet"
-
-mkdir -p ${build_dir}
-pushd ${build_dir}
-
-cmake -DCMAKE_INSTALL_PREFIX=${ARROW_HOME} \
- -DCMAKE_CXX_FLAGS=${CXXFLAGS} \
- -DPYTHON_EXECUTABLE=$(which python) \
- -GNinja \
- ${source_dir}
-ninja install
-
-# TODO(ARROW-5074)
-export LD_LIBRARY_PATH="${ARROW_HOME}/lib:${LD_LIBRARY_PATH}"
-export ODBCSYSINI="${source_dir}/travis/odbc/"
-
-service postgresql start
-ctest --output-on-failure
-
-popd
diff --git a/ci/scripts/java_build.sh b/ci/scripts/java_build.sh
deleted file mode 100755
index b8a7f7c..0000000
--- a/ci/scripts/java_build.sh
+++ /dev/null
@@ -1,101 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-arrow_dir=${1}
-source_dir=${1}/java
-cpp_build_dir=${2}/cpp/${ARROW_BUILD_TYPE:-debug}
-with_docs=${3:-false}
-
-if [[ "$(uname -s)" == "Linux" ]] && [[ "$(uname -m)" == "s390x" ]]; then
- # Since some files for s390_64 are not available at maven central,
- # download pre-build files from bintray and install them explicitly
- mvn_install="mvn install:install-file"
- wget="wget"
- bintray_base_url="https://dl.bintray.com/apache/arrow"
-
- bintray_dir="protoc-binary"
- group="com.google.protobuf"
- artifact="protoc"
- ver="3.7.1"
- classifier="linux-s390_64"
- extension="exe"
- target=${artifact}-${ver}-${classifier}.${extension}
- ${wget} ${bintray_base_url}/${bintray_dir}/${ver}/${target}
- ${mvn_install} -DgroupId=${group} -DartifactId=${artifact} -Dversion=${ver} -Dclassifier=${classifier} -Dpackaging=${extension} -Dfile=$(pwd)/${target}
- # protoc requires libprotoc.so.18 libprotobuf.so.18
- ${wget} ${bintray_base_url}/${bintray_dir}/${ver}/libprotoc.so.18
- ${wget} ${bintray_base_url}/${bintray_dir}/${ver}/libprotobuf.so.18
- mkdir -p ${ARROW_HOME}/lib
- cp lib*.so.18 ${ARROW_HOME}/lib
- export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ARROW_HOME}/lib
-
- bintray_dir="protoc-gen-grpc-java-binary"
- group="io.grpc"
- artifact="protoc-gen-grpc-java"
- ver="1.30.2"
- classifier="linux-s390_64"
- extension="exe"
- target=${artifact}-${ver}-${classifier}.${extension}
- ${wget} ${bintray_base_url}/${bintray_dir}/${ver}/${target}
- ${mvn_install} -DgroupId=${group} -DartifactId=${artifact} -Dversion=${ver} -Dclassifier=${classifier} -Dpackaging=${extension} -Dfile=$(pwd)/${target}
-
- bintray_dir="netty-binary"
- group="io.netty"
- artifact="netty-transport-native-unix-common"
- ver="4.1.48.Final"
- classifier="linux-s390_64"
- extension="jar"
- target=${artifact}-${ver}-${classifier}.${extension}
- ${wget} ${bintray_base_url}/${bintray_dir}/${ver}/${target}
- ${mvn_install} -DgroupId=${group} -DartifactId=${artifact} -Dversion=${ver} -Dclassifier=${classifier} -Dpackaging=${extension} -Dfile=$(pwd)/${target}
- artifact="netty-transport-native-epoll"
- extension="jar"
- target=${artifact}-${ver}-${classifier}.${extension}
- ${wget} ${bintray_base_url}/${bintray_dir}/${ver}/${target}
- ${mvn_install} -DgroupId=${group} -DartifactId=${artifact} -Dversion=${ver} -Dclassifier=${classifier} -Dpackaging=${extension} -Dfile=$(pwd)/${target}
-fi
-
-mvn="mvn -B -DskipTests -Drat.skip=true -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
-# Use `2 * ncores` threads
-mvn="${mvn} -T 2C"
-
-pushd ${source_dir}
-
-${mvn} install
-
-if [ "${ARROW_JAVA_SHADE_FLATBUFFERS}" == "ON" ]; then
- ${mvn} -Pshade-flatbuffers install
-fi
-
-if [ "${ARROW_GANDIVA_JAVA}" = "ON" ]; then
- ${mvn} -Darrow.cpp.build.dir=${cpp_build_dir} -Parrow-jni install
-fi
-
-if [ "${ARROW_PLASMA}" = "ON" ]; then
- pushd ${source_dir}/plasma
- ${mvn} clean install
- popd
-fi
-
-if [ "${with_docs}" == "true" ]; then
- ${mvn} -Dcheckstyle.skip=true install site
-fi
-
-popd
diff --git a/ci/scripts/java_test.sh b/ci/scripts/java_test.sh
deleted file mode 100755
index da9e452..0000000
--- a/ci/scripts/java_test.sh
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-arrow_dir=${1}
-source_dir=${1}/java
-cpp_build_dir=${2}/cpp/${ARROW_BUILD_TYPE:-debug}
-
-# For JNI and Plasma tests
-export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
-export PLASMA_STORE=${ARROW_HOME}/bin/plasma-store-server
-
-mvn="mvn -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
-# Use `2 * ncores` threads
-mvn="${mvn} -T 2C"
-
-pushd ${source_dir}
-
-${mvn} test
-
-if [ "${ARROW_JNI}" = "ON" ]; then
- ${mvn} test -Parrow-jni -pl adapter/orc,gandiva,dataset -Darrow.cpp.build.dir=${cpp_build_dir}
-fi
-
-if [ "${ARROW_PLASMA}" = "ON" ]; then
- pushd ${source_dir}/plasma
- java -cp target/test-classes:target/classes \
- -Djava.library.path=${cpp_build_dir} \
- org.apache.arrow.plasma.PlasmaClientTest
- popd
-fi
-
-popd
diff --git a/ci/scripts/js_build.sh b/ci/scripts/js_build.sh
deleted file mode 100755
index 10ceb41..0000000
--- a/ci/scripts/js_build.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/js
-with_docs=${2:-false}
-
-pushd ${source_dir}
-
-yarn --frozen-lockfile
-# TODO(kszucs): linting should be moved to archery
-yarn lint:ci
-yarn build
-
-if [ "${with_docs}" == "true" ]; then
- yarn doc
-fi
-
-popd
diff --git a/ci/scripts/js_test.sh b/ci/scripts/js_test.sh
deleted file mode 100755
index 345d6cb..0000000
--- a/ci/scripts/js_test.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/js
-
-pushd ${source_dir}
-
-yarn lint
-yarn test
-
-popd
diff --git a/ci/scripts/msys2_setup.sh b/ci/scripts/msys2_setup.sh
deleted file mode 100755
index cb6ca30..0000000
--- a/ci/scripts/msys2_setup.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-target=$1
-
-packages=()
-case "${target}" in
- cpp|c_glib|ruby)
- packages+=(${MINGW_PACKAGE_PREFIX}-aws-sdk-cpp)
- packages+=(${MINGW_PACKAGE_PREFIX}-boost)
- packages+=(${MINGW_PACKAGE_PREFIX}-brotli)
- packages+=(${MINGW_PACKAGE_PREFIX}-ccache)
- packages+=(${MINGW_PACKAGE_PREFIX}-clang)
- packages+=(${MINGW_PACKAGE_PREFIX}-cmake)
- packages+=(${MINGW_PACKAGE_PREFIX}-gcc)
- packages+=(${MINGW_PACKAGE_PREFIX}-gflags)
- packages+=(${MINGW_PACKAGE_PREFIX}-grpc)
- packages+=(${MINGW_PACKAGE_PREFIX}-gtest)
- packages+=(${MINGW_PACKAGE_PREFIX}-libutf8proc)
- packages+=(${MINGW_PACKAGE_PREFIX}-llvm)
- packages+=(${MINGW_PACKAGE_PREFIX}-lz4)
- packages+=(${MINGW_PACKAGE_PREFIX}-ninja)
- packages+=(${MINGW_PACKAGE_PREFIX}-polly)
- packages+=(${MINGW_PACKAGE_PREFIX}-protobuf)
- packages+=(${MINGW_PACKAGE_PREFIX}-python3-numpy)
- packages+=(${MINGW_PACKAGE_PREFIX}-rapidjson)
- packages+=(${MINGW_PACKAGE_PREFIX}-re2)
- packages+=(${MINGW_PACKAGE_PREFIX}-snappy)
- packages+=(${MINGW_PACKAGE_PREFIX}-thrift)
- packages+=(${MINGW_PACKAGE_PREFIX}-zlib)
- packages+=(${MINGW_PACKAGE_PREFIX}-zstd)
- ;;
-esac
-
-case "${target}" in
- c_glib|ruby)
- packages+=(${MINGW_PACKAGE_PREFIX}-gobject-introspection)
- packages+=(${MINGW_PACKAGE_PREFIX}-gtk-doc)
- packages+=(${MINGW_PACKAGE_PREFIX}-meson)
- ;;
-esac
-
-pacman \
- --needed \
- --noconfirm \
- --refresh \
- --sync \
- "${packages[@]}"
-
-"$(dirname $0)/ccache_setup.sh"
-echo "CCACHE_DIR=$(cygpath --absolute --windows ccache)" >> $GITHUB_ENV
diff --git a/ci/scripts/msys2_system_clean.sh b/ci/scripts/msys2_system_clean.sh
deleted file mode 100755
index a356aee..0000000
--- a/ci/scripts/msys2_system_clean.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-pacman \
- --cascade \
- --noconfirm \
- --nosave \
- --recursive \
- --remove \
- ${MINGW_PACKAGE_PREFIX}-clang-tools-extra \
- ${MINGW_PACKAGE_PREFIX}-gcc-ada \
- ${MINGW_PACKAGE_PREFIX}-gcc-fortran \
- ${MINGW_PACKAGE_PREFIX}-gcc-libgfortran \
- ${MINGW_PACKAGE_PREFIX}-gcc-objc \
- ${MINGW_PACKAGE_PREFIX}-libgccjit
diff --git a/ci/scripts/msys2_system_upgrade.sh b/ci/scripts/msys2_system_upgrade.sh
deleted file mode 100755
index aecd308..0000000
--- a/ci/scripts/msys2_system_upgrade.sh
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-# https://www.msys2.org/news/#2020-06-29-new-packagers
-msys2_repo_base_url=https://repo.msys2.org/msys
-# Mirror
-msys2_repo_base_url=https://sourceforge.net/projects/msys2/files/REPOS/MSYS2
-msys2_keyring_pkg=msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
-for suffix in "" ".sig"; do
- curl \
- --location \
- --remote-name \
- --show-error \
- --silent \
- ${msys2_repo_base_url}/x86_64/${msys2_keyring_pkg}${suffix}
-done
-pacman-key --verify ${msys2_keyring_pkg}.sig
-pacman \
- --noconfirm \
- --upgrade \
- ${msys2_keyring_pkg}
-
-
-pacman \
- --noconfirm \
- --refresh \
- --refresh \
- --sync \
- --sysupgrade \
- --sysupgrade
diff --git a/ci/scripts/python_benchmark.sh b/ci/scripts/python_benchmark.sh
deleted file mode 100755
index 3a35298..0000000
--- a/ci/scripts/python_benchmark.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-# Check the ASV benchmarking setup.
-# Unfortunately this won't ensure that all benchmarks succeed
-# (see https://github.com/airspeed-velocity/asv/issues/449)
-source deactivate
-conda create -y -q -n pyarrow_asv python=$PYTHON_VERSION
-conda activate pyarrow_asv
-pip install -q git+https://github.com/pitrou/asv.git@customize_commands
-
-export PYARROW_WITH_PARQUET=1
-export PYARROW_WITH_PLASMA=1
-export PYARROW_WITH_ORC=0
-export PYARROW_WITH_GANDIVA=0
-
-pushd $ARROW_PYTHON_DIR
-# Workaround for https://github.com/airspeed-velocity/asv/issues/631
-git fetch --depth=100 origin master:master
-# Generate machine information (mandatory)
-asv machine --yes
-# Run benchmarks on the changeset being tested
-asv run --no-pull --show-stderr --quick HEAD^!
-popd # $ARROW_PYTHON_DIR
diff --git a/ci/scripts/python_build.sh b/ci/scripts/python_build.sh
deleted file mode 100755
index ec6d723..0000000
--- a/ci/scripts/python_build.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/python
-build_dir=${2}/python
-
-if [ ! -z "${CONDA_PREFIX}" ]; then
- echo -e "===\n=== Conda environment for build\n==="
- conda list
-fi
-
-export PYARROW_CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja}
-export PYARROW_BUILD_TYPE=${CMAKE_BUILD_TYPE:-debug}
-export PYARROW_WITH_S3=${ARROW_S3:-OFF}
-export PYARROW_WITH_ORC=${ARROW_ORC:-OFF}
-export PYARROW_WITH_CUDA=${ARROW_CUDA:-OFF}
-export PYARROW_WITH_HDFS=${ARROW_HDFS:-OFF}
-export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT:-OFF}
-export PYARROW_WITH_PLASMA=${ARROW_PLASMA:-OFF}
-export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA:-OFF}
-export PYARROW_WITH_PARQUET=${ARROW_PARQUET:-OFF}
-export PYARROW_WITH_DATASET=${ARROW_DATASET:-OFF}
-
-export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
-
-pushd ${source_dir}
-
-relative_build_dir=$(realpath --relative-to=. $build_dir)
-
-# not nice, but prevents mutating the mounted the source directory for docker
-${PYTHON:-python} \
- setup.py build --build-base $build_dir \
- install --single-version-externally-managed \
- --record $relative_build_dir/record.txt
-
-popd
diff --git a/ci/scripts/python_sdist_build.sh b/ci/scripts/python_sdist_build.sh
deleted file mode 100755
index f9e9359..0000000
--- a/ci/scripts/python_sdist_build.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-source_dir=${1}/python
-
-pushd ${source_dir}
-export SETUPTOOLS_SCM_PRETEND_VERSION=${PYARROW_VERSION:-}
-${PYTHON:-python} setup.py sdist
-popd
diff --git a/ci/scripts/python_sdist_test.sh b/ci/scripts/python_sdist_test.sh
deleted file mode 100755
index 154c1b3..0000000
--- a/ci/scripts/python_sdist_test.sh
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -eux
-
-arrow_dir=${1}
-
-export ARROW_SOURCE_DIR=${arrow_dir}
-export ARROW_TEST_DATA=${arrow_dir}/testing/data
-export PARQUET_TEST_DATA=${arrow_dir}/parquet-testing/data
-
-export PYARROW_CMAKE_GENERATOR=${CMAKE_GENERATOR:-Ninja}
-export PYARROW_BUILD_TYPE=${CMAKE_BUILD_TYPE:-debug}
-export PYARROW_WITH_S3=${ARROW_S3:-OFF}
-export PYARROW_WITH_ORC=${ARROW_ORC:-OFF}
-export PYARROW_WITH_CUDA=${ARROW_CUDA:-OFF}
-export PYARROW_WITH_HDFS=${ARROW_HDFS:-OFF}
-export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT:-OFF}
-export PYARROW_WITH_PLASMA=${ARROW_PLASMA:-OFF}
-export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA:-OFF}
-export PYARROW_WITH_PARQUET=${ARROW_PARQUET:-OFF}
-export PYARROW_WITH_DATASET=${ARROW_DATASET:-OFF}
-
-# TODO: Users should not require ARROW_HOME and pkg-config to find Arrow C++.
-# Related: ARROW-9171
-# unset ARROW_HOME
-# apt purge -y pkg-config
-
-if [ -n "${PYARROW_VERSION:-}" ]; then
- sdist="${arrow_dir}/python/dist/pyarrow-${PYARROW_VERSION}.tar.gz"
-else
- sdist=$(ls "${arrow_dir}/python/dist/pyarrow-*.tar.gz" | sort -r | head -n1)
-fi
-${PYTHON:-python} -m pip install ${sdist}
-
-pytest -r s ${PYTEST_ARGS:-} --pyargs pyarrow
diff --git a/ci/scripts/python_test.sh b/ci/scripts/python_test.sh
deleted file mode 100755
index 5af3caf..0000000
--- a/ci/scripts/python_test.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-arrow_dir=${1}
-
-export ARROW_SOURCE_DIR=${arrow_dir}
-export ARROW_TEST_DATA=${arrow_dir}/testing/data
-export PARQUET_TEST_DATA=${arrow_dir}/parquet-testing/data
-export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
-
-# Enable some checks inside Python itself
-export PYTHONDEVMODE=1
-
-pytest -r s ${PYTEST_ARGS} --pyargs pyarrow
diff --git a/ci/scripts/python_wheel_macos_build.sh b/ci/scripts/python_wheel_macos_build.sh
deleted file mode 100755
index 93e4939..0000000
--- a/ci/scripts/python_wheel_macos_build.sh
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}
-build_dir=${2}
-
-echo "=== (${PYTHON_VERSION}) Clear output directories and leftovers ==="
-# Clear output directories and leftovers
-rm -rf ${build_dir}/install
-rm -rf ${source_dir}/python/dist
-rm -rf ${source_dir}/python/build
-rm -rf ${source_dir}/python/repaired_wheels
-rm -rf ${source_dir}/python/pyarrow/*.so
-rm -rf ${source_dir}/python/pyarrow/*.so.*
-
-echo "=== (${PYTHON_VERSION}) Set OSX SDK and C flags ==="
-# Arrow is 64-bit-only at the moment
-export CFLAGS="-fPIC -arch x86_64 ${CFLAGS//-arch i386/}"
-export CXXFLAGS="-fPIC -arch x86_64 ${CXXFLAGS//-arch i386} -std=c++11"
-export SDKROOT="$(xcrun --show-sdk-path)"
-
-echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
-: ${ARROW_DATASET:=ON}
-: ${ARROW_FLIGHT:=ON}
-: ${ARROW_GANDIVA:=OFF}
-: ${ARROW_HDFS:=ON}
-: ${ARROW_JEMALLOC:=ON}
-: ${ARROW_MIMALLOC:=ON}
-: ${ARROW_ORC:=ON}
-: ${ARROW_PARQUET:=ON}
-: ${ARROW_PLASMA:=ON}
-: ${ARROW_S3:=ON}
-: ${ARROW_TENSORFLOW:=ON}
-: ${ARROW_WITH_BROTLI:=ON}
-: ${ARROW_WITH_BZ2:=ON}
-: ${ARROW_WITH_LZ4:=ON}
-: ${ARROW_WITH_SNAPPY:=ON}
-: ${ARROW_WITH_ZLIB:=ON}
-: ${ARROW_WITH_ZSTD:=ON}
-: ${CMAKE_BUILD_TYPE:=release}
-: ${CMAKE_GENERATOR:=Ninja}
-: ${VCPKG_FEATURE_FLAGS:=-manifests}
-: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-osx-static-${CMAKE_BUILD_TYPE}}}
-
-mkdir -p ${build_dir}/build
-pushd ${build_dir}/build
-cmake \
- -DARROW_BUILD_SHARED=ON \
- -DARROW_BUILD_STATIC=OFF \
- -DARROW_BUILD_TESTS=OFF \
- -DARROW_DATASET=${ARROW_DATASET} \
- -DARROW_DEPENDENCY_SOURCE="VCPKG" \
- -DARROW_DEPENDENCY_USE_SHARED=OFF \
- -DARROW_FLIGHT==${ARROW_FLIGHT} \
- -DARROW_GANDIVA=${ARROW_GANDIVA} \
- -DARROW_HDFS=${ARROW_HDFS} \
- -DARROW_JEMALLOC=${ARROW_JEMALLOC} \
- -DARROW_MIMALLOC=${ARROW_MIMALLOC} \
- -DARROW_ORC=${ARROW_ORC} \
- -DARROW_PACKAGE_KIND="python-wheel-macos" \
- -DARROW_PARQUET=${ARROW_PARQUET} \
- -DARROW_PLASMA=${ARROW_PLASMA} \
- -DARROW_PYTHON=ON \
- -DARROW_RPATH_ORIGIN=ON \
- -DARROW_S3=${ARROW_S3} \
- -DARROW_TENSORFLOW=${ARROW_TENSORFLOW} \
- -DARROW_USE_CCACHE=ON \
- -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI} \
- -DARROW_WITH_BZ2=${ARROW_WITH_BZ2} \
- -DARROW_WITH_LZ4=${ARROW_WITH_LZ4} \
- -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
- -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
- -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=${build_dir}/install \
- -DCMAKE_UNITY_BUILD=ON \
- -DOPENSSL_USE_STATIC_LIBS=ON \
- -DVCPKG_MANIFEST_MODE=OFF \
- -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
- -G ${CMAKE_GENERATOR} \
- ${source_dir}/cpp
-cmake --build . --target install
-popd
-
-# Check that we don't expose any unwanted symbols
-# check_arrow_visibility
-
-echo "=== (${PYTHON_VERSION}) Building wheel ==="
-export PYARROW_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-export PYARROW_BUNDLE_ARROW_CPP=1
-export PYARROW_CMAKE_GENERATOR=${CMAKE_GENERATOR}
-export PYARROW_INSTALL_TESTS=1
-export PYARROW_WITH_DATASET=${ARROW_DATASET}
-export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT}
-export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA}
-export PYARROW_WITH_HDFS=${ARROW_HDFS}
-export PYARROW_WITH_ORC=${ARROW_ORC}
-export PYARROW_WITH_PARQUET=${ARROW_PARQUET}
-export PYARROW_WITH_PLASMA=${ARROW_PLASMA}
-export PYARROW_WITH_S3=${ARROW_S3}
-# PyArrow build configuration
-export PKG_CONFIG_PATH=/usr/lib/pkgconfig:${build_dir}/install/lib/pkgconfig
-
-pushd ${source_dir}/python
-python setup.py bdist_wheel
-popd
-
-echo "=== (${PYTHON_VERSION}) Show dynamic libraries the wheel depend on ==="
-deps=$(delocate-listdeps ${source_dir}/python/dist/*.whl)
-
-if echo $deps | grep -v "^@rpath/lib\(arrow\|gandiva\|parquet\|plasma\)"; then
- echo "There are non-bundled shared library dependencies."
- exit 1
-fi
diff --git a/ci/scripts/python_wheel_macos_test.sh b/ci/scripts/python_wheel_macos_test.sh
deleted file mode 100755
index 6ac8576..0000000
--- a/ci/scripts/python_wheel_macos_test.sh
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}
-
-: ${ARROW_S3:=ON}
-
-export PYARROW_TEST_CYTHON=OFF
-export PYARROW_TEST_DATASET=ON
-export PYARROW_TEST_GANDIVA=OFF
-export PYARROW_TEST_HDFS=ON
-export PYARROW_TEST_ORC=ON
-export PYARROW_TEST_PANDAS=ON
-export PYARROW_TEST_PARQUET=ON
-export PYARROW_TEST_PLASMA=ON
-export PYARROW_TEST_S3=${ARROW_S3}
-export PYARROW_TEST_TENSORFLOW=ON
-export PYARROW_TEST_FLIGHT=ON
-
-export ARROW_TEST_DATA=${source_dir}/testing/data
-export PARQUET_TEST_DATA=${source_dir}/submodules/parquet-testing/data
-
-# Install the built wheels
-pip install ${source_dir}/python/dist/*.whl
-
-# Test that the modules are importable
-python -c "
-import pyarrow
-import pyarrow._hdfs
-import pyarrow.csv
-import pyarrow.dataset
-import pyarrow.flight
-import pyarrow.fs
-import pyarrow.json
-import pyarrow.orc
-import pyarrow.parquet
-import pyarrow.plasma
-"
-
-if [ "${PYARROW_TEST_S3}" == "ON" ]; then
- python -c "import pyarrow._s3fs"
-fi
-
-# Install testing dependencies
-pip install -r ${source_dir}/python/requirements-wheel-test.txt
-
-# Execute unittest
-pytest -r s --pyargs pyarrow
diff --git a/ci/scripts/python_wheel_manylinux_build.sh b/ci/scripts/python_wheel_manylinux_build.sh
deleted file mode 100755
index 312e1c3..0000000
--- a/ci/scripts/python_wheel_manylinux_build.sh
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-function check_arrow_visibility {
- nm --demangle --dynamic /tmp/arrow-dist/lib/libarrow.so > nm_arrow.log
-
- # Filter out Arrow symbols and see if anything remains.
- # '_init' and '_fini' symbols may or not be present, we don't care.
- # (note we must ignore the grep exit status when no match is found)
- grep ' T ' nm_arrow.log | grep -v -E '(arrow|\b_init\b|\b_fini\b)' | cat - > visible_symbols.log
-
- if [[ -f visible_symbols.log && `cat visible_symbols.log | wc -l` -eq 0 ]]; then
- return 0
- else
- echo "== Unexpected symbols exported by libarrow.so =="
- cat visible_symbols.log
- echo "================================================"
-
- exit 1
- fi
-}
-
-echo "=== (${PYTHON_VERSION}) Clear output directories and leftovers ==="
-# Clear output directories and leftovers
-rm -rf /tmp/arrow-build
-rm -rf /arrow/python/dist
-rm -rf /arrow/python/build
-rm -rf /arrow/python/repaired_wheels
-rm -rf /arrow/python/pyarrow/*.so
-rm -rf /arrow/python/pyarrow/*.so.*
-
-echo "=== (${PYTHON_VERSION}) Building Arrow C++ libraries ==="
-: ${ARROW_DATASET:=ON}
-: ${ARROW_FLIGHT:=ON}
-: ${ARROW_GANDIVA:=OFF}
-: ${ARROW_HDFS:=ON}
-: ${ARROW_JEMALLOC:=ON}
-: ${ARROW_MIMALLOC:=ON}
-: ${ARROW_ORC:=ON}
-: ${ARROW_PARQUET:=ON}
-: ${ARROW_PLASMA:=ON}
-: ${ARROW_S3:=ON}
-: ${ARROW_TENSORFLOW:=ON}
-: ${ARROW_WITH_BROTLI:=ON}
-: ${ARROW_WITH_BZ2:=ON}
-: ${ARROW_WITH_LZ4:=ON}
-: ${ARROW_WITH_SNAPPY:=ON}
-: ${ARROW_WITH_ZLIB:=ON}
-: ${ARROW_WITH_ZSTD:=ON}
-: ${CMAKE_BUILD_TYPE:=release}
-: ${CMAKE_UNITY_BUILD:=ON}
-: ${CMAKE_GENERATOR:=Ninja}
-: ${VCPKG_FEATURE_FLAGS:=-manifests}
-: ${VCPKG_TARGET_TRIPLET:=${VCPKG_DEFAULT_TRIPLET:-x64-linux-static-${CMAKE_BUILD_TYPE}}}
-
-mkdir /tmp/arrow-build
-pushd /tmp/arrow-build
-cmake \
- -DARROW_BROTLI_USE_SHARED=OFF \
- -DARROW_BUILD_SHARED=ON \
- -DARROW_BUILD_STATIC=OFF \
- -DARROW_BUILD_TESTS=OFF \
- -DARROW_DATASET=${ARROW_DATASET} \
- -DARROW_DEPENDENCY_SOURCE="VCPKG" \
- -DARROW_DEPENDENCY_USE_SHARED=OFF \
- -DARROW_FLIGHT==${ARROW_FLIGHT} \
- -DARROW_GANDIVA=${ARROW_GANDIVA} \
- -DARROW_HDFS=${ARROW_HDFS} \
- -DARROW_JEMALLOC=${ARROW_JEMALLOC} \
- -DARROW_MIMALLOC=${ARROW_MIMALLOC} \
- -DARROW_ORC=${ARROW_ORC} \
- -DARROW_PACKAGE_KIND="python-wheel-manylinux${MANYLINUX_VERSION}" \
- -DARROW_PARQUET=${ARROW_PARQUET} \
- -DARROW_PLASMA=${ARROW_PLASMA} \
- -DARROW_PYTHON=ON \
- -DARROW_RPATH_ORIGIN=ON \
- -DARROW_S3=${ARROW_S3} \
- -DARROW_TENSORFLOW=${ARROW_TENSORFLOW} \
- -DARROW_USE_CCACHE=ON \
- -DARROW_UTF8PROC_USE_SHARED=OFF \
- -DARROW_WITH_BROTLI=${ARROW_WITH_BROTLI} \
- -DARROW_WITH_BZ2=${ARROW_WITH_BZ2} \
- -DARROW_WITH_LZ4=${ARROW_WITH_LZ4} \
- -DARROW_WITH_SNAPPY=${ARROW_WITH_SNAPPY} \
- -DARROW_WITH_ZLIB=${ARROW_WITH_ZLIB} \
- -DARROW_WITH_ZSTD=${ARROW_WITH_ZSTD} \
- -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
- -DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_INSTALL_PREFIX=/tmp/arrow-dist \
- -DCMAKE_UNITY_BUILD=${CMAKE_UNITY_BUILD} \
- -DOPENSSL_USE_STATIC_LIBS=ON \
- -DVCPKG_MANIFEST_MODE=OFF \
- -DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET} \
- -G ${CMAKE_GENERATOR} \
- /arrow/cpp
-cmake --build . --target install
-popd
-
-# Check that we don't expose any unwanted symbols
-check_arrow_visibility
-
-echo "=== (${PYTHON_VERSION}) Building wheel ==="
-export PYARROW_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-export PYARROW_BUNDLE_ARROW_CPP=1
-export PYARROW_CMAKE_GENERATOR=${CMAKE_GENERATOR}
-export PYARROW_INSTALL_TESTS=1
-export PYARROW_WITH_DATASET=${ARROW_DATASET}
-export PYARROW_WITH_FLIGHT=${ARROW_FLIGHT}
-export PYARROW_WITH_GANDIVA=${ARROW_GANDIVA}
-export PYARROW_WITH_HDFS=${ARROW_HDFS}
-export PYARROW_WITH_ORC=${ARROW_ORC}
-export PYARROW_WITH_PARQUET=${ARROW_PARQUET}
-export PYARROW_WITH_PLASMA=${ARROW_PLASMA}
-export PYARROW_WITH_S3=${ARROW_S3}
-# PyArrow build configuration
-export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/tmp/arrow-dist/lib/pkgconfig
-
-pushd /arrow/python
-python setup.py bdist_wheel
-
-echo "=== (${PYTHON_VERSION}) Tag the wheel with manylinux${MANYLINUX_VERSION} ==="
-auditwheel repair -L . dist/pyarrow-*.whl -w repaired_wheels
-popd
diff --git a/ci/scripts/python_wheel_manylinux_test.sh b/ci/scripts/python_wheel_manylinux_test.sh
deleted file mode 100755
index 2198774..0000000
--- a/ci/scripts/python_wheel_manylinux_test.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -e
-set -x
-set -o pipefail
-
-case $# in
- 1) KIND="$1"
- case $KIND in
- imports|unittests) ;;
- *) echo "Invalid argument: '${KIND}', valid options are 'imports', 'unittests'"
- exit 1
- ;;
- esac
- ;;
- *) echo "Usage: $0 imports|unittests"
- exit 1
- ;;
-esac
-
-export PYARROW_TEST_CYTHON=OFF
-export PYARROW_TEST_DATASET=ON
-export PYARROW_TEST_GANDIVA=OFF
-export PYARROW_TEST_HDFS=ON
-export PYARROW_TEST_ORC=ON
-export PYARROW_TEST_PANDAS=ON
-export PYARROW_TEST_PARQUET=ON
-export PYARROW_TEST_PLASMA=ON
-export PYARROW_TEST_S3=ON
-export PYARROW_TEST_TENSORFLOW=ON
-export PYARROW_TEST_FLIGHT=ON
-
-export ARROW_TEST_DATA=/arrow/testing/data
-export PARQUET_TEST_DATA=/arrow/submodules/parquet-testing/data
-
-# Install the built wheels
-pip install /arrow/python/repaired_wheels/*.whl
-
-if [ "${KIND}" == "imports" ]; then
- # Test that the modules are importable
- python -c "
-import pyarrow
-import pyarrow._hdfs
-import pyarrow._s3fs
-import pyarrow.csv
-import pyarrow.dataset
-import pyarrow.flight
-import pyarrow.fs
-import pyarrow.json
-import pyarrow.orc
-import pyarrow.parquet
-import pyarrow.plasma"
-elif [ "${KIND}" == "unittests" ]; then
- # Execute unittest, test dependencies must be installed
- pytest -r s --pyargs pyarrow
-fi
diff --git a/ci/scripts/python_wheel_windows_build.bat b/ci/scripts/python_wheel_windows_build.bat
deleted file mode 100644
index 23be7f5..0000000
--- a/ci/scripts/python_wheel_windows_build.bat
+++ /dev/null
@@ -1,109 +0,0 @@
-@rem Licensed to the Apache Software Foundation (ASF) under one
-@rem or more contributor license agreements. See the NOTICE file
-@rem distributed with this work for additional information
-@rem regarding copyright ownership. The ASF licenses this file
-@rem to you under the Apache License, Version 2.0 (the
-@rem "License"); you may not use this file except in compliance
-@rem with the License. You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing,
-@rem software distributed under the License is distributed on an
-@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@rem KIND, either express or implied. See the License for the
-@rem specific language governing permissions and limitations
-@rem under the License.
-
-@echo on
-
-echo "Building windows wheel..."
-
-call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
-
-echo "=== (%PYTHON_VERSION%) Clear output directories and leftovers ==="
-del /s /q C:\arrow-build
-del /s /q C:\arrow-dist
-del /s /q C:\arrow\python\dist
-del /s /q C:\arrow\python\build
-del /s /q C:\arrow\python\pyarrow\*.so
-del /s /q C:\arrow\python\pyarrow\*.so.*
-
-echo "=== (%PYTHON_VERSION%) Building Arrow C++ libraries ==="
-set ARROW_DATASET=ON
-set ARROW_FLIGHT=ON
-set ARROW_GANDIVA=OFF
-set ARROW_HDFS=ON
-set ARROW_ORC=OFF
-set ARROW_PARQUET=ON
-set ARROW_MIMALLOC=ON
-set ARROW_S3=ON
-set ARROW_TENSORFLOW=ON
-set ARROW_WITH_BROTLI=ON
-set ARROW_WITH_BZ2=ON
-set ARROW_WITH_LZ4=ON
-set ARROW_WITH_SNAPPY=ON
-set ARROW_WITH_ZLIB=ON
-set ARROW_WITH_ZSTD=ON
-set CMAKE_UNITY_BUILD=ON
-set CMAKE_GENERATOR=Visual Studio 15 2017 Win64
-set VCPKG_FEATURE_FLAGS=-manifests
-
-mkdir C:\arrow-build
-pushd C:\arrow-build
-cmake ^
- -DARROW_BUILD_SHARED=ON ^
- -DARROW_BUILD_STATIC=OFF ^
- -DARROW_BUILD_TESTS=OFF ^
- -DARROW_CXXFLAGS="/MP" ^
- -DARROW_DATASET=%ARROW_DATASET% ^
- -DARROW_DEPENDENCY_SOURCE=VCPKG ^
- -DARROW_DEPENDENCY_USE_SHARED=OFF ^
- -DARROW_FLIGHT=%ARROW_FLIGHT% ^
- -DARROW_GANDIVA=%ARROW_GANDIVA% ^
- -DARROW_HDFS=%ARROW_HDFS% ^
- -DARROW_MIMALLOC=%ARROW_MIMALLOC% ^
- -DARROW_ORC=%ARROW_ORC% ^
- -DARROW_PACKAGE_KIND="python-wheel-windows" ^
- -DARROW_PARQUET=%ARROW_PARQUET% ^
- -DARROW_PYTHON=ON ^
- -DARROW_S3=%ARROW_S3% ^
- -DARROW_TENSORFLOW=%ARROW_TENSORFLOW% ^
- -DARROW_WITH_BROTLI=%ARROW_WITH_BROTLI% ^
- -DARROW_WITH_BZ2=%ARROW_WITH_BZ2% ^
- -DARROW_WITH_LZ4=%ARROW_WITH_LZ4% ^
- -DARROW_WITH_SNAPPY=%ARROW_WITH_SNAPPY% ^
- -DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
- -DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
- -DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
- -DCMAKE_CXX_COMPILER=clcache ^
- -DCMAKE_INSTALL_PREFIX=C:\arrow-dist ^
- -DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
- -DMSVC_LINK_VERBOSE=ON ^
- -DVCPKG_MANIFEST_MODE=OFF ^
- -DVCPKG_TARGET_TRIPLET=x64-windows-static-md-%CMAKE_BUILD_TYPE% ^
- -G "%CMAKE_GENERATOR%" ^
- C:\arrow\cpp || exit /B
-cmake --build . --config %CMAKE_BUILD_TYPE% --target install || exit /B
-popd
-
-echo "=== (%PYTHON_VERSION%) Building wheel ==="
-set PYARROW_BUILD_TYPE=%CMAKE_BUILD_TYPE%
-set PYARROW_BUNDLE_ARROW_CPP=ON
-set PYARROW_BUNDLE_BOOST=OFF
-set PYARROW_CMAKE_GENERATOR=%CMAKE_GENERATOR%
-set PYARROW_INSTALL_TESTS=ON
-set PYARROW_WITH_DATASET=%ARROW_DATASET%
-set PYARROW_WITH_FLIGHT=%ARROW_FLIGHT%
-set PYARROW_WITH_GANDIVA=%ARROW_GANDIVA%
-set PYARROW_WITH_HDFS=%ARROW_HDFS%
-set PYARROW_WITH_ORC=%ARROW_ORC%
-set PYARROW_WITH_PARQUET=%ARROW_PARQUET%
-set PYARROW_WITH_S3=%ARROW_S3%
-set ARROW_HOME=C:\arrow-dist
-
-pushd C:\arrow\python
-@REM bundle the msvc runtime
-cp "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Redist\MSVC\14.16.27012\x64\Microsoft.VC141.CRT\msvcp140.dll" pyarrow\
-python setup.py bdist_wheel || exit /B
-popd
diff --git a/ci/scripts/python_wheel_windows_test.bat b/ci/scripts/python_wheel_windows_test.bat
deleted file mode 100755
index 8352e58..0000000
--- a/ci/scripts/python_wheel_windows_test.bat
+++ /dev/null
@@ -1,54 +0,0 @@
-@rem Licensed to the Apache Software Foundation (ASF) under one
-@rem or more contributor license agreements. See the NOTICE file
-@rem distributed with this work for additional information
-@rem regarding copyright ownership. The ASF licenses this file
-@rem to you under the Apache License, Version 2.0 (the
-@rem "License"); you may not use this file except in compliance
-@rem with the License. You may obtain a copy of the License at
-@rem
-@rem http://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing,
-@rem software distributed under the License is distributed on an
-@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@rem KIND, either express or implied. See the License for the
-@rem specific language governing permissions and limitations
-@rem under the License.
-
-@echo on
-
-set PYARROW_TEST_CYTHON=OFF
-set PYARROW_TEST_DATASET=ON
-set PYARROW_TEST_GANDIVA=OFF
-set PYARROW_TEST_HDFS=ON
-set PYARROW_TEST_ORC=OFF
-set PYARROW_TEST_PANDAS=ON
-set PYARROW_TEST_PARQUET=ON
-set PYARROW_TEST_PLASMA=OFF
-set PYARROW_TEST_S3=OFF
-set PYARROW_TEST_TENSORFLOW=ON
-set PYARROW_TEST_FLIGHT=ON
-
-set ARROW_TEST_DATA=C:\arrow\testing\data
-set PARQUET_TEST_DATA=C:\arrow\submodules\parquet-testing\data
-
-@REM Install the built wheels
-python -m pip install numpy
-python -m pip install --no-index --find-links=C:\arrow\python\dist\ pyarrow || exit /B
-
-@REM Test that the modules are importable
-python -c "import pyarrow"
-python -c "import pyarrow._hdfs"
-python -c "import pyarrow._s3fs"
-python -c "import pyarrow.csv"
-python -c "import pyarrow.dataset"
-python -c "import pyarrow.flight"
-python -c "import pyarrow.fs"
-python -c "import pyarrow.json"
-python -c "import pyarrow.parquet"
-
-@REM Install testing dependencies
-pip install -r C:\arrow\python\requirements-wheel-test.txt
-
-@REM Execute unittest
-pytest -r s --pyargs pyarrow
diff --git a/ci/scripts/r_build.sh b/ci/scripts/r_build.sh
deleted file mode 100755
index d1907a8..0000000
--- a/ci/scripts/r_build.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-: ${R_BIN:=R}
-source_dir=${1}/r
-with_docs=${2:-false}
-
-pushd ${source_dir}
-
-${R_BIN} CMD INSTALL .
-
-if [ "${with_docs}" == "true" ]; then
- ${R_BIN} -e "pkgdown::build_site(install = FALSE)"
-fi
-
-popd
\ No newline at end of file
diff --git a/ci/scripts/r_deps.sh b/ci/scripts/r_deps.sh
deleted file mode 100755
index 7e9d2ea..0000000
--- a/ci/scripts/r_deps.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-: ${R_BIN:=R}
-
-source_dir=${1}/r
-
-pushd ${source_dir}
-
-# Install R package dependencies
-${R_BIN} -e "install.packages('remotes'); remotes::install_cran(c('glue', 'rcmdcheck', 'sys'))"
-${R_BIN} -e "remotes::install_deps(dependencies = TRUE)"
-
-popd
diff --git a/ci/scripts/r_docker_configure.sh b/ci/scripts/r_docker_configure.sh
deleted file mode 100755
index 3e553fe..0000000
--- a/ci/scripts/r_docker_configure.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-: ${R_BIN:=R}
-
-# The Dockerfile should have put this file here
-if [ -f "/arrow/ci/etc/rprofile" ]; then
- # Ensure parallel R package installation, set CRAN repo mirror,
- # and use pre-built binaries where possible
- cat /arrow/ci/etc/rprofile >> $(${R_BIN} RHOME)/etc/Rprofile.site
-fi
-
-# Ensure parallel compilation of C/C++ code
-echo "MAKEFLAGS=-j$(${R_BIN} -s -e 'cat(parallel::detectCores())')" >> $(${R_BIN} RHOME)/etc/Makeconf
-
-# Special hacking to try to reproduce quirks on fedora-clang-devel on CRAN
-# which uses a bespoke clang compiled to use libc++
-# https://www.stats.ox.ac.uk/pub/bdr/Rconfig/r-devel-linux-x86_64-fedora-clang
-if [ "$RHUB_PLATFORM" = "linux-x86_64-fedora-clang" ]; then
- dnf install -y libcxx-devel
- sed -i.bak -E -e 's/(CXX1?1? =.*)/\1 -stdlib=libc++/g' $(${R_BIN} RHOME)/etc/Makeconf
- rm -rf $(${R_BIN} RHOME)/etc/Makeconf.bak
-fi
-
-# Special hacking to try to reproduce quirks on centos using non-default build
-# tooling.
-if [[ "$DEVTOOLSET_VERSION" -gt 0 ]]; then
- if [ "`which dnf`" ]; then
- dnf install -y centos-release-scl
- dnf install -y "devtoolset-$DEVTOOLSET_VERSION"
- else
- yum install -y centos-release-scl
- yum install -y "devtoolset-$DEVTOOLSET_VERSION"
- fi
-fi
-
-# Install openssl for S3 support
-if [ "$ARROW_S3" == "ON" ] || [ "$ARROW_R_DEV" == "TRUE" ]; then
- if [ "`which dnf`" ]; then
- dnf install -y libcurl-devel openssl-devel
- elif [ "`which yum`" ]; then
- yum install -y libcurl-devel openssl-devel
- elif [ "`which zypper`" ]; then
- zypper install -y libcurl-devel libopenssl-devel
- else
- apt-get update
- apt-get install -y libcurl4-openssl-dev libssl-dev
- fi
-
- # The Dockerfile should have put this file here
- if [ -f "/arrow/ci/scripts/install_minio.sh" ] && [ "`which wget`" ]; then
- /arrow/ci/scripts/install_minio.sh amd64 linux latest /usr/local
- fi
-fi
-
-# Workaround for html help install failure; see https://github.com/r-lib/devtools/issues/2084#issuecomment-530912786
-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)}'
-
-if [ "`which curl`" ]; then
- # We need this on R >= 4.0
- curl -L https://sourceforge.net/projects/checkbaskisms/files/2.0.0.2/checkbashisms/download > /usr/local/bin/checkbashisms
- chmod 755 /usr/local/bin/checkbashisms
-fi
diff --git a/ci/scripts/r_pkgdown_check.sh b/ci/scripts/r_pkgdown_check.sh
deleted file mode 100755
index 327480a..0000000
--- a/ci/scripts/r_pkgdown_check.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-# Use this script to prevent errors in the pkgdown site being rendered due to missing YAML entries
-
-# all .Rd files in the repo
-all_rd_files=`find ./r/man -maxdepth 1 -name "*.Rd" | sed -e 's/.\/r\/man\///g' | sed -e 's/.Rd//g' | sort`
-
-# .Rd files to exclude from search (i.e. are internal)
-exclusions=`grep "\keyword{internal}" -rl ./r/man --include=*.Rd | sed -e 's/.\/r\/man\///g' | sed -e 's/.Rd//g' | sort`
-
-# .Rd files to check against pkgdown.yml
-rd_files=`echo ${exclusions[@]} ${all_rd_files[@]} | tr ' ' '\n' | sort | uniq -u`
-
-# pkgdown sections
-pkgdown_sections=`awk '/^[^ ]/{ f=/reference:/; next } f{ if (sub(/:$/,"")) pkg=$2; else print pkg, $2 }' ./r/_pkgdown.yml | grep -v "title:" | sort`
-
-# get things that appear in man files that don't appear in pkgdown sections
-pkgdown_missing=`echo ${pkgdown_sections[@]} ${pkgdown_sections[@]} ${rd_files[@]} | tr ' ' '\n' | sort | uniq -u`
-
-# if any sections are missing raise an error
-if ([ ${#pkgdown_missing} -ge 1 ]); then
- echo "Error! $pkgdown_missing missing from ./r/_pkgdown.yml"
- exit 1
-fi
diff --git a/ci/scripts/r_sanitize.sh b/ci/scripts/r_sanitize.sh
deleted file mode 100755
index 89963eb..0000000
--- a/ci/scripts/r_sanitize.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-: ${R_BIN:=RDsan}
-
-source_dir=${1}/r
-
-${R_BIN} CMD INSTALL ${source_dir}
-pushd ${source_dir}/tests
-
-export TEST_R_WITH_ARROW=TRUE
-export UBSAN_OPTIONS="print_stacktrace=1,suppressions=/arrow/r/tools/ubsan.supp"
-${R_BIN} < testthat.R > testthat.out 2>&1 || { cat testthat.out; exit 1; }
-
-cat testthat.out
-if grep -q "runtime error" testthat.out; then
- exit 1
-fi
-popd
diff --git a/ci/scripts/r_test.sh b/ci/scripts/r_test.sh
deleted file mode 100755
index 1f6a872..0000000
--- a/ci/scripts/r_test.sh
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/env bash
-# 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.
-
-set -ex
-
-: ${R_BIN:=R}
-
-source_dir=${1}/r
-
-pushd ${source_dir}
-
-printenv
-
-if [ "$ARROW_USE_PKG_CONFIG" != "false" ]; then
- export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
- export R_LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
-fi
-export _R_CHECK_COMPILATION_FLAGS_KNOWN_=${ARROW_R_CXXFLAGS}
-if [ "$ARROW_R_DEV" = "TRUE" ]; then
- # These are used in the Arrow C++ build and are not a problem
- export _R_CHECK_COMPILATION_FLAGS_KNOWN_="${_R_CHECK_COMPILATION_FLAGS_KNOWN_} -Wno-attributes -msse4.2"
- # Note that NOT_CRAN=true means (among other things) that optional dependencies are built
- export NOT_CRAN=true
-fi
-: ${TEST_R_WITH_ARROW:=TRUE}
-export TEST_R_WITH_ARROW=$TEST_R_WITH_ARROW
-
-export _R_CHECK_CRAN_INCOMING_REMOTE_=FALSE
-# --run-donttest was used in R < 4.0, this is used now
-export _R_CHECK_DONTTEST_EXAMPLES_=$TEST_R_WITH_ARROW
-# Not all Suggested packages are needed for checking, so in case they aren't installed don't fail
-export _R_CHECK_FORCE_SUGGESTS_=FALSE
-export _R_CHECK_LIMIT_CORES_=FALSE
-export _R_CHECK_TESTS_NLINES_=0
-
-# By default, aws-sdk tries to contact a non-existing local ip host
-# to retrieve metadata. Disable this so that S3FileSystem tests run faster.
-export AWS_EC2_METADATA_DISABLED=TRUE
-
-# Hack so that texlive2020 doesn't pollute the home dir
-export TEXMFCONFIG=/tmp/texmf-config
-export TEXMFVAR=/tmp/texmf-var
-
-if [[ "$DEVTOOLSET_VERSION" -gt 0 ]]; then
- # enable the devtoolset version to use it
- source /opt/rh/devtoolset-$DEVTOOLSET_VERSION/enable
-fi
-
-# Make sure we aren't writing to the home dir (CRAN _hates_ this but there is no official check)
-BEFORE=$(ls -alh ~/)
-
-SCRIPT="as_cran <- !identical(tolower(Sys.getenv('NOT_CRAN')), 'true')
- run_donttest <- identical(tolower(Sys.getenv('_R_CHECK_DONTTEST_EXAMPLES_', 'true')), 'true')
- if (as_cran) {
- rcmdcheck::rcmdcheck(args = c('--as-cran', if (run_donttest) '--run-donttest'), error_on = 'warning', check_dir = 'check', timeout = 3600)
- } else {
- if (nzchar(Sys.which('minio'))) {
- message('Running minio for S3 tests (if build supports them)')
- minio_dir <- tempfile()
- dir.create(minio_dir)
- pid <- sys::exec_background('minio', c('server', minio_dir))
- on.exit(tools::pskill(pid))
- }
- rcmdcheck::rcmdcheck(build_args = '--no-build-vignettes', args = c('--no-manual', '--ignore-vignettes', if (run_donttest) '--run-donttest'), error_on = 'warning', check_dir = 'check', timeout = 3600)
- }"
-echo "$SCRIPT" | ${R_BIN} --no-save
-
-AFTER=$(ls -alh ~/)
-if [ "$NOT_CRAN" != "true" ] && [ "$BEFORE" != "$AFTER" ]; then
- ls -alh ~/.cmake/packages
- exit 1
-fi
-popd
diff --git a/ci/scripts/r_windows_build.sh b/ci/scripts/r_windows_build.sh
deleted file mode 100755
index 9988dfb..0000000
--- a/ci/scripts/r_windows_build.sh
+++ /dev/null
@@ -1,102 +0,0 @@
-#!/bin/bash
-
-# 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.
-
-set -ex
-
-: ${ARROW_HOME:=$(pwd)}
-# Make sure it is absolute and exported
-export ARROW_HOME="$(cd "${ARROW_HOME}" && pwd)"
-
-if [ "$RTOOLS_VERSION" = "35" ]; then
- # Use rtools-backports if building with rtools35
- curl https://raw.githubusercontent.com/r-windows/rtools-backports/master/pacman.conf > /etc/pacman.conf
- # Update keys: https://www.msys2.org/news/#2020-06-29-new-packagers
- msys2_repo_base_url=https://repo.msys2.org/msys
- curl -OSsL "${msys2_repo_base_url}/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
- pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz && rm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
- pacman --noconfirm -Scc
- pacman --noconfirm -Syy
- # lib-4.9.3 is for libraries compiled with gcc 4.9 (Rtools 3.5)
- RWINLIB_LIB_DIR="lib-4.9.3"
-else
- # Uncomment L38-41 if you're testing a new rtools dependency that hasn't yet sync'd to CRAN
- # curl https://raw.githubusercontent.com/r-windows/rtools-packages/master/pacman.conf > /etc/pacman.conf
- # curl -OSsl "http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz"
- # pacman -U --noconfirm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz && rm msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz
- # pacman --noconfirm -Scc
-
- pacman --noconfirm -Syy
- RWINLIB_LIB_DIR="lib"
-fi
-
-cp $ARROW_HOME/ci/scripts/PKGBUILD .
-printenv
-makepkg-mingw --noconfirm --noprogressbar --skippgpcheck --nocheck --syncdeps --cleanbuild
-
-VERSION=$(grep Version $ARROW_HOME/r/DESCRIPTION | cut -d " " -f 2)
-DST_DIR="arrow-$VERSION"
-
-# Collect the build artifacts and make the shape of zip file that rwinlib expects
-ls
-mkdir -p build
-mv mingw* build
-cd build
-
-# This may vary by system/CI provider
-MSYS_LIB_DIR="/c/rtools40"
-
-ls $MSYS_LIB_DIR/mingw64/lib/
-ls $MSYS_LIB_DIR/mingw32/lib/
-
-# Untar the two builds we made
-ls *.xz | xargs -n 1 tar -xJf
-mkdir -p $DST_DIR
-# Grab the headers from one, either one is fine
-# (if we're building twice to combine old and new toolchains, this may already exist)
-if [ ! -d $DST_DIR/include ]; then
- mv mingw64/include $DST_DIR
-fi
-
-# Make the rest of the directory structure
-# lib-4.9.3 is for libraries compiled with gcc 4.9 (Rtools 3.5)
-mkdir -p $DST_DIR/${RWINLIB_LIB_DIR}/x64
-mkdir -p $DST_DIR/${RWINLIB_LIB_DIR}/i386
-# lib is for the new gcc 8 toolchain (Rtools 4.0)
-mkdir -p $DST_DIR/lib/x64
-mkdir -p $DST_DIR/lib/i386
-
-# Move the 64-bit versions of libarrow into the expected location
-mv mingw64/lib/*.a $DST_DIR/${RWINLIB_LIB_DIR}/x64
-# Same for the 32-bit versions
-mv mingw32/lib/*.a $DST_DIR/${RWINLIB_LIB_DIR}/i386
-
-# These may be from https://dl.bintray.com/rtools/backports/
-cp $MSYS_LIB_DIR/mingw64/lib/lib{thrift,snappy}.a $DST_DIR/${RWINLIB_LIB_DIR}/x64
-cp $MSYS_LIB_DIR/mingw32/lib/lib{thrift,snappy}.a $DST_DIR/${RWINLIB_LIB_DIR}/i386
-
-# These are from https://dl.bintray.com/rtools/mingw{32,64}/
-cp $MSYS_LIB_DIR/mingw64/lib/lib{zstd,lz4,crypto,utf8proc,re2,aws*}.a $DST_DIR/lib/x64
-cp $MSYS_LIB_DIR/mingw32/lib/lib{zstd,lz4,crypto,utf8proc,re2,aws*}.a $DST_DIR/lib/i386
-
-# Create build artifact
-zip -r ${DST_DIR}.zip $DST_DIR
-
-# Copy that to a file name/path that does not vary by version number so we
-# can easily find it in the R package tests on CI
-cp ${DST_DIR}.zip ../libarrow.zip
diff --git a/ci/scripts/release_test.sh b/ci/scripts/release_test.sh
deleted file mode 100755
index ae2ab32..0000000
--- a/ci/scripts/release_test.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-
-# 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.
-
-set -eux
-
-arrow_dir=${1}
-
-pushd ${arrow_dir}
-
-dev/release/run-test.rb
-
-popd
diff --git a/ci/scripts/ruby_test.sh b/ci/scripts/ruby_test.sh
deleted file mode 100755
index 03d20e1..0000000
--- a/ci/scripts/ruby_test.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/ruby
-build_dir=${2}/ruby
-
-export LD_LIBRARY_PATH=${ARROW_HOME}/lib:${LD_LIBRARY_PATH}
-export PKG_CONFIG_PATH=${ARROW_HOME}/lib/pkgconfig
-export GI_TYPELIB_PATH=${ARROW_HOME}/lib/girepository-1.0
-
-rake -f ${source_dir}/Rakefile BUILD_DIR=${build_dir} USE_BUNDLER=yes
diff --git a/ci/scripts/rust_build.sh b/ci/scripts/rust_build.sh
deleted file mode 100755
index 8099d30..0000000
--- a/ci/scripts/rust_build.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-set -ex
-
-source_dir=${1}/rust
-
-# This file is used to build the rust binaries needed for the
-# archery integration tests. Testing of the rust implementation
-# in normal CI is handled by github workflows
-
-# Disable full debug symbol generation to speed up CI build / reduce memory required
-export RUSTFLAGS="-C debuginfo=1"
-
-export ARROW_TEST_DATA=${arrow_dir}/testing/data
-export PARQUET_TEST_DATA=${arrow_dir}/parquet-testing/data
-
-# show activated toolchain
-rustup show
-
-pushd ${source_dir}
-
-# build only the integration testing binaries
-cargo build -p arrow-integration-testing
-
-# Remove incremental build artifacts to save space
-rm -rf target/debug/deps/ target/debug/build/
-
-popd
diff --git a/ci/scripts/util_checkout.sh b/ci/scripts/util_checkout.sh
deleted file mode 100755
index 25fe69a..0000000
--- a/ci/scripts/util_checkout.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-# this script is github actions specific to check out the submodules and tags
-
-# TODO(kszucs): remove it once the "submodules: recursive" feature is released
-auth_header="$(git config --local --get http.https://github.com/.extraheader)"
-git submodule sync --recursive
-git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
-
-# fetch all the tags
-git fetch --depth=1 origin +refs/tags/*:refs/tags/*
diff --git a/ci/scripts/util_cleanup.sh b/ci/scripts/util_cleanup.sh
deleted file mode 100755
index 3a13a1a..0000000
--- a/ci/scripts/util_cleanup.sh
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-
-# This script is Github Actions-specific to free up disk space,
-# to avoid disk full errors on some builds
-
-if [ $RUNNER_OS = "Linux" ]; then
- df -h
-
- # remove swap
- sudo swapoff -a
- sudo rm -f /swapfile
-
- # clean apt cache
- sudo apt clean
-
- # remove haskell, consumes 8.6 GB
- sudo rm -rf /opt/ghc
-
- # 1 GB
- sudo rm -rf /home/linuxbrew/.linuxbrew
-
- # 1+ GB
- sudo rm -rf /opt/hostedtoolcache/CodeQL
-
- # 1+ GB
- sudo rm -rf /usr/share/swift
-
- # 12 GB, but takes a lot of time to delete
- #sudo rm -rf /usr/local/lib/android
-
- # remove cached docker images, around 13 GB
- docker rmi $(docker image ls -aq)
-
- # NOTE: /usr/share/dotnet is 25 GB
-fi
-
-df -h
diff --git a/ci/scripts/util_download_apache.sh b/ci/scripts/util_download_apache.sh
deleted file mode 100755
index 5d37f9c..0000000
--- a/ci/scripts/util_download_apache.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/bash -x
-# 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.
-
-if [ "$#" -ne 2 ]; then
- echo "Usage: $0 <apache tarball path> <target directory>"
- exit 1
-fi
-
-tarball_path=$1
-target_dir=$2
-
-APACHE_MIRRORS=(
- "http://www.apache.org/dyn/closer.cgi?action=download&filename="
- "https://downloads.apache.org"
- "https://apache.claz.org"
- "https://apache.cs.utah.edu"
- "https://apache.mirrors.lucidnetworks.net"
- "https://apache.osuosl.org"
- "https://ftp.wayne.edu/apache"
- "https://mirror.olnevhost.net/pub/apache"
- "https://mirrors.gigenet.com/apache"
- "https://mirrors.koehn.com/apache"
- "https://mirrors.ocf.berkeley.edu/apache"
- "https://mirrors.sonic.net/apache"
- "https://us.mirrors.quenda.co/apache"
-)
-
-mkdir -p "${target_dir}"
-
-for mirror in ${APACHE_MIRRORS[*]}
-do
- curl -SL "${mirror}/${tarball_path}" | tar -xzf - -C "${target_dir}"
- if [ $? == 0 ]; then
- exit 0
- fi
-done
-
-exit 1
diff --git a/ci/scripts/util_wait_for_it.sh b/ci/scripts/util_wait_for_it.sh
deleted file mode 100755
index 51ce816..0000000
--- a/ci/scripts/util_wait_for_it.sh
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/usr/bin/env bash
-
-# The MIT License (MIT)
-# Copyright (c) 2016 Giles Hall
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy of
-# this software and associated documentation files (the "Software"), to deal in
-# the Software without restriction, including without limitation the rights to
-# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-# of the Software, and to permit persons to whom the Software is furnished to do
-# so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in all
-# copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-#
-# Use this script to test if a given TCP host/port are available
-
-cmdname=$(basename $0)
-
-echoerr() { if [[ $QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }
-
-usage()
-{
- cat << USAGE >&2
-Usage:
- $cmdname host:port [-s] [-t timeout] [-- command args]
- -h HOST | --host=HOST Host or IP under test
- -p PORT | --port=PORT TCP port under test
- Alternatively, you specify the host and port as host:port
- -s | --strict Only execute subcommand if the test succeeds
- -q | --quiet Don't output any status messages
- -t TIMEOUT | --timeout=TIMEOUT
- Timeout in seconds, zero for no timeout
- -- COMMAND ARGS Execute command with args after the test finishes
-USAGE
- exit 1
-}
-
-wait_for()
-{
- if [[ $TIMEOUT -gt 0 ]]; then
- echoerr "$cmdname: waiting $TIMEOUT seconds for $HOST:$PORT"
- else
- echoerr "$cmdname: waiting for $HOST:$PORT without a timeout"
- fi
- start_ts=$(date +%s)
- while :
- do
- if [[ $ISBUSY -eq 1 ]]; then
- nc -z $HOST $PORT
- result=$?
- else
- (echo > /dev/tcp/$HOST/$PORT) >/dev/null 2>&1
- result=$?
- fi
- if [[ $result -eq 0 ]]; then
- end_ts=$(date +%s)
- echoerr "$cmdname: $HOST:$PORT is available after $((end_ts - start_ts)) seconds"
- break
- fi
- sleep 1
- done
- return $result
-}
-
-wait_for_wrapper()
-{
- # In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
- if [[ $QUIET -eq 1 ]]; then
- timeout $BUSYTIMEFLAG $TIMEOUT $0 --quiet --child --host=$HOST --port=$PORT --timeout=$TIMEOUT &
- else
- timeout $BUSYTIMEFLAG $TIMEOUT $0 --child --host=$HOST --port=$PORT --timeout=$TIMEOUT &
- fi
- PID=$!
- trap "kill -INT -$PID" INT
- wait $PID
- RESULT=$?
- if [[ $RESULT -ne 0 ]]; then
- echoerr "$cmdname: timeout occurred after waiting $TIMEOUT seconds for $HOST:$PORT"
- fi
- return $RESULT
-}
-
-# process arguments
-while [[ $# -gt 0 ]]
-do
- case "$1" in
- *:* )
- hostport=(${1//:/ })
- HOST=${hostport[0]}
- PORT=${hostport[1]}
- shift 1
- ;;
- --child)
- CHILD=1
- shift 1
- ;;
- -q | --quiet)
- QUIET=1
- shift 1
- ;;
- -s | --strict)
- STRICT=1
- shift 1
- ;;
- -h)
- HOST="$2"
- if [[ $HOST == "" ]]; then break; fi
- shift 2
- ;;
- --host=*)
- HOST="${1#*=}"
- shift 1
- ;;
- -p)
- PORT="$2"
- if [[ $PORT == "" ]]; then break; fi
- shift 2
- ;;
- --port=*)
- PORT="${1#*=}"
- shift 1
- ;;
- -t)
- TIMEOUT="$2"
- if [[ $TIMEOUT == "" ]]; then break; fi
- shift 2
- ;;
- --timeout=*)
- TIMEOUT="${1#*=}"
- shift 1
- ;;
- --)
- shift
- CLI=("$@")
- break
- ;;
- --help)
- usage
- ;;
- *)
- echoerr "Unknown argument: $1"
- usage
- ;;
- esac
-done
-
-if [[ "$HOST" == "" || "$PORT" == "" ]]; then
- echoerr "Error: you need to provide a host and port to test."
- usage
-fi
-
-TIMEOUT=${TIMEOUT:-15}
-STRICT=${STRICT:-0}
-CHILD=${CHILD:-0}
-QUIET=${QUIET:-0}
-
-# check to see if timeout is from busybox?
-# check to see if timeout is from busybox?
-TIMEOUT_PATH=$(realpath $(which timeout))
-if [[ $TIMEOUT_PATH =~ "busybox" ]]; then
- ISBUSY=1
- BUSYTIMEFLAG="-t"
-else
- ISBUSY=0
- BUSYTIMEFLAG=""
-fi
-
-if [[ $CHILD -gt 0 ]]; then
- wait_for
- RESULT=$?
- exit $RESULT
-else
- if [[ $TIMEOUT -gt 0 ]]; then
- wait_for_wrapper
- RESULT=$?
- else
- wait_for
- RESULT=$?
- fi
-fi
-
-if [[ $CLI != "" ]]; then
- if [[ $RESULT -ne 0 && $STRICT -eq 1 ]]; then
- echoerr "$cmdname: strict mode, refusing to execute subprocess"
- exit $RESULT
- fi
- exec "${CLI[@]}"
-else
- exit $RESULT
-fi
diff --git a/ci/vcpkg/arm64-linux-static-debug.cmake b/ci/vcpkg/arm64-linux-static-debug.cmake
deleted file mode 100644
index 6fea436..0000000
--- a/ci/vcpkg/arm64-linux-static-debug.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE arm64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-set(VCPKG_CMAKE_SYSTEM_NAME Linux)
-set(VCPKG_BUILD_TYPE debug)
-
-if(NOT CMAKE_HOST_SYSTEM_PROCESSOR)
- execute_process(COMMAND "uname" "-m"
- OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-endif()
diff --git a/ci/vcpkg/arm64-linux-static-release.cmake b/ci/vcpkg/arm64-linux-static-release.cmake
deleted file mode 100644
index 4012848..0000000
--- a/ci/vcpkg/arm64-linux-static-release.cmake
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE arm64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-set(VCPKG_CMAKE_SYSTEM_NAME Linux)
-set(VCPKG_BUILD_TYPE release)
-
-if(NOT CMAKE_HOST_SYSTEM_PROCESSOR)
- execute_process(COMMAND "uname" "-m"
- OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
- OUTPUT_STRIP_TRAILING_WHITESPACE)
-endif()
diff --git a/ci/vcpkg/ports.patch b/ci/vcpkg/ports.patch
deleted file mode 100644
index 14b9678..0000000
--- a/ci/vcpkg/ports.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff --git a/ports/aws-c-common/portfile.cmake b/ports/aws-c-common/portfile.cmake
-index f3704ef05..3af543058 100644
---- a/ports/aws-c-common/portfile.cmake
-+++ b/ports/aws-c-common/portfile.cmake
-@@ -1,8 +1,8 @@
- vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO awslabs/aws-c-common
-- REF 4a21a1c0757083a16497fea27886f5f20ccdf334 # v0.4.56
-- SHA512 68898a8ac15d5490f45676eabfbe0df9e45370a74c543a28909fd0d85fed48dfcf4bcd6ea2d01d1a036dd352e2e4e0b08c48c63ab2a2b477fe150b46a827136e
-+ REF 13adef72b7813ec878817c6d50a7a3f241015d8a # v0.4.57
-+ SHA512 28256522ac6af544d7464e3e7dcd4dc802ae2b09728bf8f167f86a6487bb756d0cad5eb4a2480610b2967b9c24c4a7f70621894517aa2828ffdeb0479453803b
- HEAD_REF master
- PATCHES
- disable-error-4068.patch # This patch fixes dependency port compilation failure
-diff --git a/ports/curl/portfile.cmake b/ports/curl/portfile.cmake
-index 6e18aecd0..2ccecf33c 100644
---- a/ports/curl/portfile.cmake
-+++ b/ports/curl/portfile.cmake
-@@ -76,6 +76,8 @@ vcpkg_configure_cmake(
- -DCMAKE_DISABLE_FIND_PACKAGE_Perl=ON
- -DENABLE_DEBUG=ON
- -DCURL_CA_FALLBACK=ON
-+ -DCURL_CA_PATH=none
-+ -DCURL_CA_BUNDLE=none
- )
-
- vcpkg_install_cmake()
-diff --git a/ports/snappy/portfile.cmake b/ports/snappy/portfile.cmake
-index 75dd13302..84345c7ca 100644
---- a/ports/snappy/portfile.cmake
-+++ b/ports/snappy/portfile.cmake
-@@ -4,6 +4,7 @@ vcpkg_from_github(
- REF 537f4ad6240e586970fe554614542e9717df7902 # 1.1.8
- SHA512 555d3b69a6759592736cbaae8f41654f0cf14e8be693b5dde37640191e53daec189f895872557b173e905d10681ef502f3e6ed8566811add963ffef96ce4016d
- HEAD_REF master
-+ PATCHES "snappy-disable-bmi.patch"
- )
-
- vcpkg_configure_cmake(
-diff --git a/ports/snappy/snappy-disable-bmi.patch b/ports/snappy/snappy-disable-bmi.patch
-new file mode 100644
-index 000000000..2cbb1533a
---- /dev/null
-+++ b/ports/snappy/snappy-disable-bmi.patch
-@@ -0,0 +1,17 @@
-+--- snappy.cc 2020-06-27 17:38:49.718993748 -0500
-++++ snappy.cc 2020-06-27 17:37:57.543268213 -0500
-+@@ -717,14 +717,10 @@
-+ static inline uint32 ExtractLowBytes(uint32 v, int n) {
-+ assert(n >= 0);
-+ assert(n <= 4);
-+-#if SNAPPY_HAVE_BMI2
-+- return _bzhi_u32(v, 8 * n);
-+-#else
-+ // This needs to be wider than uint32 otherwise `mask << 32` will be
-+ // undefined.
-+ uint64 mask = 0xffffffff;
-+ return v & ~(mask << (8 * n));
-+-#endif
-+ }
-+
-+ static inline bool LeftShiftOverflows(uint8 value, uint32 shift) {
diff --git a/ci/vcpkg/x64-linux-static-debug.cmake b/ci/vcpkg/x64-linux-static-debug.cmake
deleted file mode 100644
index 3acee2e..0000000
--- a/ci/vcpkg/x64-linux-static-debug.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE x64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-
-set(VCPKG_CMAKE_SYSTEM_NAME Linux)
-
-set(VCPKG_BUILD_TYPE debug)
diff --git a/ci/vcpkg/x64-linux-static-release.cmake b/ci/vcpkg/x64-linux-static-release.cmake
deleted file mode 100644
index c2caa49..0000000
--- a/ci/vcpkg/x64-linux-static-release.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE x64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-
-set(VCPKG_CMAKE_SYSTEM_NAME Linux)
-
-set(VCPKG_BUILD_TYPE release)
diff --git a/ci/vcpkg/x64-osx-static-debug.cmake b/ci/vcpkg/x64-osx-static-debug.cmake
deleted file mode 100644
index e8a321e..0000000
--- a/ci/vcpkg/x64-osx-static-debug.cmake
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE x64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-
-set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
-set(VCPKG_OSX_ARCHITECTURES x86_64)
-
-set(VCPKG_BUILD_TYPE debug)
diff --git a/ci/vcpkg/x64-osx-static-release.cmake b/ci/vcpkg/x64-osx-static-release.cmake
deleted file mode 100644
index 956d5b9..0000000
--- a/ci/vcpkg/x64-osx-static-release.cmake
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE x64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-
-set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
-set(VCPKG_OSX_ARCHITECTURES x86_64)
-
-set(VCPKG_BUILD_TYPE release)
diff --git a/ci/vcpkg/x64-windows-static-md-debug.cmake b/ci/vcpkg/x64-windows-static-md-debug.cmake
deleted file mode 100644
index 3eae3cf..0000000
--- a/ci/vcpkg/x64-windows-static-md-debug.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE x64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-
-set(VCPKG_BUILD_TYPE debug)
diff --git a/ci/vcpkg/x64-windows-static-md-release.cmake b/ci/vcpkg/x64-windows-static-md-release.cmake
deleted file mode 100644
index b8dfbc8..0000000
--- a/ci/vcpkg/x64-windows-static-md-release.cmake
+++ /dev/null
@@ -1,22 +0,0 @@
-# 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.
-
-set(VCPKG_TARGET_ARCHITECTURE x64)
-set(VCPKG_CRT_LINKAGE dynamic)
-set(VCPKG_LIBRARY_LINKAGE static)
-
-set(VCPKG_BUILD_TYPE release)
diff --git a/dev/README.md b/dev/README.md
index 258792b..b4ea02b 100644
--- a/dev/README.md
+++ b/dev/README.md
@@ -22,101 +22,6 @@
This directory contains scripts useful to developers when packaging,
testing, or committing to Arrow.
-Merging a pull request requires being a committer on the project. In addition
-you need to have linked your GitHub and ASF accounts on
-https://gitbox.apache.org/setup/ to be able to push to GitHub as the main
-remote.
-
-NOTE: It may take some time (a few hours) between when you complete
-the setup at GitBox, and when your GitHub account will be added as a
-committer.
-
-## How to merge a Pull request
-
-Please don't merge PRs using the Github Web interface. Instead, set up
-your git clone such as to have a remote named ``apache`` pointing to the
-official Arrow repository:
-```
-git remote add apache git@github.com:apache/arrow.git
-```
-
-and then run the following command:
-```
-./dev/merge_arrow_pr.sh
-```
-
-This creates a new Python virtual environment under `dev/.venv[PY_VERSION]`
-and installs all the necessary dependencies to run the Arrow merge script.
-After installed, it runs the merge script.
-
-(we don't provide a wrapper script for Windows yet, so under Windows you'll
-have to install Python dependencies yourself and then run `dev/merge_arrow_pr.py`
-directly)
-
-The merge script uses the GitHub REST API; if you encounter rate limit issues,
-you may set a `ARROW_GITHUB_API_TOKEN` environment variable to use a Personal
-Access Token.
-
-You can specify the username and the password of your JIRA account in
-`APACHE_JIRA_USERNAME` and `APACHE_JIRA_PASSWORD` environment variables.
-If these aren't supplied, the script will ask you the values of them.
-
-Note that the directory name of your Arrow git clone must be called `arrow`.
-
-example output:
-```
-Which pull request would you like to merge? (e.g. 34):
-```
-Type the pull request number (from https://github.com/apache/arrow/pulls) and hit enter.
-```
-=== Pull Request #X ===
-title Blah Blah Blah
-source repo/branch
-target master
-url https://api.github.com/repos/apache/arrow/pulls/X
-
-Proceed with merging pull request #3? (y/n):
-```
-If this looks good, type y and hit enter.
-```
-From git-wip-us.apache.org:/repos/asf/arrow.git
- * [new branch] master -> PR_TOOL_MERGE_PR_3_MASTER
-Switched to branch 'PR_TOOL_MERGE_PR_3_MASTER'
-
-Merge complete (local ref PR_TOOL_MERGE_PR_3_MASTER). Push to apache? (y/n):
-```
-A local branch with the merge has been created.
-type y and hit enter to push it to apache master
-```
-Counting objects: 67, done.
-Delta compression using up to 4 threads.
-Compressing objects: 100% (26/26), done.
-Writing objects: 100% (36/36), 5.32 KiB, done.
-Total 36 (delta 17), reused 0 (delta 0)
-To git-wip-us.apache.org:/repos/arrow-mr.git
- b767ac4..485658a PR_TOOL_MERGE_PR_X_MASTER -> master
-Restoring head pointer to b767ac4e
-Note: checking out 'b767ac4e'.
-
-You are in 'detached HEAD' state. You can look around, make experimental
-changes and commit them, and you can discard any commits you make in this
-state without impacting any branches by performing another checkout.
-
-If you want to create a new branch to retain commits you create, you may
-do so (now or later) by using -b with the checkout command again. Example:
-
- git checkout -b new_branch_name
-
-HEAD is now at b767ac4... Update README.md
-Deleting local branch PR_TOOL_MERGE_PR_X
-Deleting local branch PR_TOOL_MERGE_PR_X_MASTER
-Pull request #X merged!
-Merge hash: 485658a5
-
-Would you like to pick 485658a5 into another branch? (y/n):
-```
-For now just say n as we have 1 branch
-
## Verifying Release Candidates
We have provided a script to assist with verifying release candidates:
@@ -150,40 +55,3 @@
```shell
docker build -t arrow_integration_xenial_base -f docker_common/Dockerfile.xenial.base .
```
-
-## HDFS C++ / Python support
-
-```shell
-docker-compose build conda-cpp
-docker-compose build conda-python
-docker-compose build conda-python-hdfs
-docker-compose run --rm conda-python-hdfs
-```
-
-## Apache Spark Integration Tests
-
-Tests can be run to ensure that the current snapshot of Java and Python Arrow
-works with Spark. This will run a docker image to build Arrow C++
-and Python in a Conda environment, build and install Arrow Java to the local
-Maven repository, build Spark with the new Arrow artifact, and run Arrow
-related unit tests in Spark for Java and Python. Any errors will exit with a
-non-zero value. To run, use the following command:
-
-```shell
-docker-compose build conda-cpp
-docker-compose build conda-python
-docker-compose build conda-python-spark
-docker-compose run --rm conda-python-spark
-```
-
-If you already are building Spark, these commands will map your local Maven
-repo to the image and save time by not having to download all dependencies.
-Be aware, that docker write files as root, which can cause problems for maven
-on the host.
-
-```shell
-docker-compose run --rm -v $HOME/.m2:/root/.m2 conda-python-spark
-```
-
-NOTE: If the Java API has breaking changes, a patched version of Spark might
-need to be used to successfully build.
diff --git a/dev/benchmarking/.env b/dev/benchmarking/.env
deleted file mode 100644
index 7485f58..0000000
--- a/dev/benchmarking/.env
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-#
-
-PG_USER=benchmark
-PG_PASS=benchmark
diff --git a/dev/benchmarking/.gitignore b/dev/benchmarking/.gitignore
deleted file mode 100644
index cda00d6..0000000
--- a/dev/benchmarking/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/machine.json
diff --git a/dev/benchmarking/Dockerfile b/dev/benchmarking/Dockerfile
deleted file mode 100644
index f470333..0000000
--- a/dev/benchmarking/Dockerfile
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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 postgres:11-alpine
-
-# Any `.sh` and `.sql` files copied to the entrypoint directory
-# will be run during startup. See `docker-entrypoint.sh` in
-# https://github.com/docker-library/postgres/blob/master/11/alpine/
-COPY ddl/* /docker-entrypoint-initdb.d/
diff --git a/dev/benchmarking/README.md b/dev/benchmarking/README.md
deleted file mode 100644
index c5ddd62..0000000
--- a/dev/benchmarking/README.md
+++ /dev/null
@@ -1,255 +0,0 @@
-<!--
- ~ 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.
- -->
-
-
-> NOTE: For those deploying this database, Postgres does not by default use
-> UTF-8, however it is [required for the jsonb][pg-jsonb] format used in
-> some columns to always work. This [stackoverflow post][so-utf8] describes
-> how to do it for Amazon RDS. This [section of the docs][pg-charset]
-> states how to do it in general, i.e.: `initdb -E UTF8`.
-
-# Benchmark database
-
-This directory contains files related to the benchmark database.
-
-- 'ddl/\*.sql' contains the database definition.
-- 'examples/' contain code to test the database and demonstrate its use.
-- 'Dockerfile' and 'docker-compose.yml' are for developing benchmarks
- against a testing database.
-- An auto-generated summary of views in the [Data model][./data_model.rst].
-
-## Setup
-
-To create a 'machine.json' file that will uniquely identify a computer for
-benchmark submission, run the provided shell script and fill in the prompts
-to identify the GPU.
-
-> NOTE: this does not work on VMs or Windows.
-
-```shell
-./make_machine_json.sh
-```
-
-Submit the machine details via http using the command
-
-> NOTE: This will only work if we have selected graphql as a client
-> and have it running in production or if during development
-> you have run `docker-compose up` to create and run both a
-> database Docker container and graphql client Docker container.
-
-```shell
-./graphql_submit.sh machine machine.json localhost:5000/graphql
-```
-
-or submit after starting up the psql client from this directory, using
-
-```
-\set content `cat machine.json`
-SELECT ingest_machine_view(:'content'::jsonb);
-```
-
-> NOTE: If you don't have a "machine.json" file generated,
-> use the example file "examples/machine.json" instead.
-
-## Local testing
-
-There is a file named "[.env][.env]" in this directory that is used by
-`docker-compose` to set up the postgres user and password for the
-local containers. Currently the name and password are both
-`benchmark`. This will be the password for the psql client as well.
-
-The Postgres Alpine image runs any added '\*.sql' and '\*.sh' scripts placed
-in '/docker-entrypoint-initdb.d/' during its startup script, so the local
-database will be set up automatically once the container is running.
-
-To start the containers, be sure to have [Docker installed][docker],
-and then run the following from this directory (arrow/dev/benchmarking).
-
-
-```
-docker-compose up
-```
-
-This will start a process that will show logs from both the running
-Postgres container and the running GraphQL container.
-To stop the running containers gracefully, background the process
-and run
-
-```
-docker-compose down
-fg # To re-foreground the backgrounded process while it exits
-```
-
-You will still have the container images "benchmarking_pg",
-"graphile/postgraphile", and "postgres:11-alpine" on your
-computer. You should keep them if you want to run this again.
-If you don't, then remove them with the command:
-
-```
-docker rmi benchmarking_pg postgres:11-alpine graphile/postgraphile
-```
-
-### Postgres client
-
-The `psql` shell client is bundled with the PostgreSQL core distribution
-available from the [Postgres download page][postgres-downloads].
-Using the `PG_USER` defined in the `.env` file (currently "benchmark"),
-the command to connect to the container is:
-```shell
-psql -h localhost -p 5432 -U benchmark
-```
-There is an example script in [examples/example.sql](examples/example.sql) that
-runs some queries against the database. To run it in the psql client, type
-the following in the psql command-line interface:
-
-```
-\i examples/example.sql
-```
-
-#### Bulk ingestion using CSV
-
-An example CSV file for bulk ingestion is in
-[examples/benchmark_run_example.csv](examples/benchmark_run_example.csv).
-The columns are listed in the same order as they are defined, to avoid having
-to explicitly name every column in ingestion. The "id" column is left empty
-and will be automatically assigned on insert.
-
-To ingest the example CSV file from the command line,
-use the command below:
-
-```shell
-CSV='examples/benchmark_run_example.csv' && \
-psql -U benchmark -h localhost -p 5432 \
- -c "\copy benchmark_run_view FROM '${CSV}' WITH (FORMAT csv, HEADER);"
-```
-
-#### Bulk ingestion using JSON
-
-To ingest the example JSON file using the psql client, use the command below.
-
-```
-\set content `cat examples/benchmark_example.json`
-SELECT ingest_benchmark_view(:'content'::jsonb);
-```
-
-### HTTP client
-
-This section requires an actual HTTP client to be up, either
-for the production database or via the testing setup.
-(See the [local testing section](#local-testing) for how to set it up).
-
-The 'graphile/postgraphile' container provides an HTTP interface
-to the database via two url routes:
-
-- A GraphiQL page ([localhost:5000/graphiql][graphiql])
- to aid visual exploration of the data model.
- (The `--watch` flag on the command line. Not recommended for production.)
-- An endpoint that receives POST requests only (localhost:5000/graphql).
-
-#### Ingestion
-
-The script [graphql_submit.sh](./graphql_submit.sh) simplifies submission
-to the database via curl. Examples:
-
-```shell
-./graphql_submit.sh benchmarks examples/benchmark_example.json
-./graphql_submit.sh runs examples/benchmark_run_example.json
-```
-
-#### Querying
-
-The output of the query is a JSON object that is hard to read on the command line.
-Here is an example query in the shell:
-```shell
-curl -X POST \
- -H "Content-Type: application/json" \
- --data '{"query": "{projectDetails{ projectName }}"}' \
- localhost:5000/graphql
-```
-
-which (if you have previously run the "examples.sql" command) yields
-
-```
-{"data":{"projectDetails":{"projectName":"Apache Arrow"}}}
-```
-
-Here is an example query using Python:
-```python
-import json
-import requests
-
-uri = "http://localhost:5000/graphql"
-query = json.load(open("examples/graphql_query_environment_view.json"))
-response = requests.post(uri, json=query)
-message = "{benchmarkLanguage}: {languageImplementationVersion}, {dependencies}"
-
-for row in response.json()['data']['allEnvironmentViews']['edges']:
- print(message.format(**row['node']))
-
-# result:
-#
-# Python: CPython 2.7, {"six":"","numpy":"1.14","other_lib":"1.0"}
-# Python: CPython 2.7, {"six":"","numpy":"1.15","other_lib":"1.0"}
-# Python: CPython 3.6, {"boost":"1.42","numpy":"1.15"}
-```
-
-## Deployment
-
-(work in progress).
-
-> NOTE: For those deploying this database, Postgres does not by default use
-> UTF-8, however it is [required for the jsonb][pg-jsonb] format used in
-> some columns to always work. This [stackoverflow post][so-utf8] describes
-> how to do it for Amazon RDS. This [section of the docs][pg-charset]
-> states how to do it in general, i.e.: `initdb -E UTF8`.
-
-
-## Quick reference
-
-- String variables `'have single quotes'`
-- Arrays `'{"have", "curly", "braces"}'::text[]` or `'{1, 2, 3}'::integer[]`
-- JSONb `'{"has":"this", "format":42}'::jsonb`
-- Elements inserted using JSON-formatted strings can use standard
- JSON-formatted arrays (`[1, 2, 3]`) and do not have to use the above
- string formats.
-- When comparing nullable values use `x IS NOT DISTINCT FROM y` rather than `x = y`
-- An auto-generated summary of the [Data model][./data_model.rst].
-
-## Data model documentation
-
-To recreate the data model documentation,
-(1) install the [psql client][postgres-downloads]
-(sorry you need to download the whole thing),
-(2) start the docker container using `docker-compose up`,
-(3) and then run these scripts:
-
-```
-./make_dotfile.sh
-./make_data_model_rst.sh
-```
-
-[pg-jsonb]: https://www.postgresql.org/docs/11/datatype-json.html#id-1.5.7.22.3
-[so-utf8]: https://stackoverflow.com/a/33557023
-[pg-charset]: https://www.postgresql.org/docs/9.3/multibyte.html#AEN34424
-[docker]: https://www.docker.com/get-started
-[citext-limitations]: https://www.postgresql.org/docs/11/citext.html#id-1.11.7.17.7
-[postgres-downloads]: https://www.postgresql.org/download/
-[graphiql]: http://localhost:5000/graphiql
-[postgraphile-lambda]: https://github.com/graphile/postgraphile-lambda-example
-[postgraphile-cli]: https://www.graphile.org/postgraphile/usage-cli/
diff --git a/dev/benchmarking/data_model.dot b/dev/benchmarking/data_model.dot
deleted file mode 100644
index d311acd..0000000
--- a/dev/benchmarking/data_model.dot
+++ /dev/null
@@ -1,219 +0,0 @@
-/*
- 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.
-*/
-
-/*
- WARNING
- This is an auto-generated file. Please do not edit.
-
- To reproduce, please run :code:`./make_data_model_rst.sh`.
- (This requires you have the
- `psql client <https://www.postgresql.org/download/>`_
- and have started the docker containers using
- :code:`docker-compose up`).
-*/
-digraph database {
- concentrate = true;
- rankdir = LR;
- ratio = ".75";
- node [shape = none, fontsize="11", fontname="Helvetica"];
- edge [fontsize="8", fontname="Helvetica"];
-legend
-[fontsize = "14"
-label =
-<<table border="0" cellpadding="0">
- <tr><td align="left"><font point-size="16">Legend</font></td></tr>
- <tr><td align="left">pk = primary key</td></tr>
- <tr><td align="left">fk = foreign key</td></tr>
- <tr><td align="left">u = unique*</td></tr>
- <tr><td align="left">o = optional</td></tr>
- <tr><td align="left">* multiple uniques in the same table are a unique group</td></tr>
-</table>>
-];
-benchmark
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">benchmark</font></td></tr>
- <tr><td port="benchmark_id"><b>benchmark_id (pk)</b></td></tr>
- <tr><td port="benchmark_language_id"><b>benchmark_language_id (pk)</b></td></tr>
- <tr><td>benchmark_name (u)</td></tr>
- <tr><td>parameter_names (o)</td></tr>
- <tr><td>benchmark_description</td></tr>
- <tr><td>benchmark_version (u)</td></tr>
- <tr><td port="unit_id">unit_id (fk) </td></tr>
- </table>>
-];
-benchmark_language
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">benchmark_language</font></td></tr>
- <tr><td port="benchmark_language_id"><b>benchmark_language_id (pk)</b></td></tr>
- <tr><td>benchmark_language (u)</td></tr>
- </table>>
-];
-benchmark_run
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">benchmark_run</font></td></tr>
- <tr><td port="benchmark_run_id"><b>benchmark_run_id (pk)</b></td></tr>
- <tr><td>parameter_values (u)</td></tr>
- <tr><td>value</td></tr>
- <tr><td>git_commit_timestamp (u)</td></tr>
- <tr><td>git_hash</td></tr>
- <tr><td>val_min (o)</td></tr>
- <tr><td>val_q1 (o)</td></tr>
- <tr><td>val_q3 (o)</td></tr>
- <tr><td>val_max (o)</td></tr>
- <tr><td>std_dev</td></tr>
- <tr><td>n_obs</td></tr>
- <tr><td>run_timestamp (u)</td></tr>
- <tr><td>run_metadata (o)</td></tr>
- <tr><td>run_notes (o)</td></tr>
- <tr><td port="machine_id">machine_id (u) (fk) </td></tr>
- <tr><td port="environment_id">environment_id (u) (fk) </td></tr>
- <tr><td port="language_implementation_version_id">language_implementation_version_id (fk) </td></tr>
- <tr><td port="benchmark_language_id">benchmark_language_id (fk) </td></tr>
- <tr><td port="benchmark_id">benchmark_id (u) (fk) </td></tr>
- </table>>
-];
-benchmark_type
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">benchmark_type</font></td></tr>
- <tr><td port="benchmark_type_id"><b>benchmark_type_id (pk)</b></td></tr>
- <tr><td>benchmark_type (u)</td></tr>
- <tr><td>lessisbetter</td></tr>
- </table>>
-];
-cpu
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">cpu</font></td></tr>
- <tr><td port="cpu_id"><b>cpu_id (pk)</b></td></tr>
- <tr><td>cpu_model_name (u)</td></tr>
- <tr><td>cpu_core_count</td></tr>
- <tr><td>cpu_thread_count</td></tr>
- <tr><td>cpu_frequency_max_hz</td></tr>
- <tr><td>cpu_frequency_min_hz</td></tr>
- <tr><td>cpu_l1d_cache_bytes</td></tr>
- <tr><td>cpu_l1i_cache_bytes</td></tr>
- <tr><td>cpu_l2_cache_bytes</td></tr>
- <tr><td>cpu_l3_cache_bytes</td></tr>
- </table>>
-];
-dependencies
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">dependencies</font></td></tr>
- <tr><td port="dependencies_id"><b>dependencies_id (pk)</b></td></tr>
- <tr><td>dependencies (u)</td></tr>
- </table>>
-];
-gpu
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">gpu</font></td></tr>
- <tr><td port="gpu_id"><b>gpu_id (pk)</b></td></tr>
- <tr><td>gpu_information (u)</td></tr>
- <tr><td>gpu_part_number</td></tr>
- <tr><td>gpu_product_name</td></tr>
- </table>>
-];
-language_implementation_version
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">language_implementation_version</font></td></tr>
- <tr><td port="language_implementation_version_id"><b>language_implementation_version_id (pk)</b></td></tr>
- <tr><td port="benchmark_language_id"><b>benchmark_language_id (pk)</b></td></tr>
- <tr><td>language_implementation_version (u)</td></tr>
- </table>>
-];
-machine
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">machine</font></td></tr>
- <tr><td port="machine_id"><b>machine_id (pk)</b></td></tr>
- <tr><td>machine_name</td></tr>
- <tr><td>mac_address (u)</td></tr>
- <tr><td>memory_bytes</td></tr>
- <tr><td>cpu_actual_frequency_hz</td></tr>
- <tr><td>machine_other_attributes (o)</td></tr>
- <tr><td port="cpu_id">cpu_id (fk) </td></tr>
- <tr><td port="gpu_id">gpu_id (fk) </td></tr>
- <tr><td port="os_id">os_id (fk) </td></tr>
- </table>>
-];
-os
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">os</font></td></tr>
- <tr><td port="os_id"><b>os_id (pk)</b></td></tr>
- <tr><td>os_name (u)</td></tr>
- <tr><td>architecture_name (u)</td></tr>
- <tr><td>kernel_name (u)</td></tr>
- </table>>
-];
-project
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">project</font></td></tr>
- <tr><td port="project_id"><b>project_id (pk)</b></td></tr>
- <tr><td>project_name (u)</td></tr>
- <tr><td>project_url (u)</td></tr>
- <tr><td>repo_url (u)</td></tr>
- <tr><td>last_changed</td></tr>
- </table>>
-];
-unit
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">unit</font></td></tr>
- <tr><td port="unit_id"><b>unit_id (pk)</b></td></tr>
- <tr><td>units (u)</td></tr>
- <tr><td port="benchmark_type_id">benchmark_type_id (fk) </td></tr>
- </table>>
-];
-environment
-[label =
- <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">
- <tr><td border="0"><font point-size="14">environment</font></td></tr>
- <tr><td port="environment_id"><b>environment_id (pk)</b></td></tr>
- <tr><td port="language_implementation_version_id"><b>language_implementation_version_id (pk)</b></td></tr>
- <tr><td port="benchmark_language_id"><b>benchmark_language_id (pk)</b></td></tr>
- <tr><td port="dependencies_id">dependencies_id (u) (fk) </td></tr>
- </table>>
-];
-machine:cpu_id -> cpu:cpu_id;
-machine:gpu_id -> gpu:gpu_id;
-machine:os_id -> os:os_id;
-benchmark:benchmark_language_id -> benchmark_language:benchmark_language_id;
-environment:benchmark_language_id -> benchmark_language:benchmark_language_id;
-language_implementation_version:benchmark_language_id -> benchmark_language:benchmark_language_id;
-environment:dependencies_id -> dependencies:dependencies_id;
-environment:benchmark_language_id -> language_implementation_version:benchmark_language_id;
-environment:language_implementation_version_id -> language_implementation_version:language_implementation_version_id;
-unit:benchmark_type_id -> benchmark_type:benchmark_type_id;
-benchmark_run:machine_id -> machine:machine_id;
-benchmark:unit_id -> unit:unit_id;
-benchmark_run:language_implementation_version_id -> environment:language_implementation_version_id;
-benchmark_run:benchmark_language_id -> environment:benchmark_language_id;
-benchmark_run:environment_id -> environment:environment_id;
-benchmark_run:benchmark_language_id -> benchmark:benchmark_language_id;
-benchmark_run:benchmark_id -> benchmark:benchmark_id;
-}
-
diff --git a/dev/benchmarking/data_model.rst b/dev/benchmarking/data_model.rst
deleted file mode 100644
index d0f3dc7..0000000
--- a/dev/benchmarking/data_model.rst
+++ /dev/null
@@ -1,373 +0,0 @@
-.. 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.
-
-
-.. WARNING
-.. This is an auto-generated file. Please do not edit.
-
-.. To reproduce, please run :code:`./make_data_model_rst.sh`.
-.. (This requires you have the
-.. `psql client <https://www.postgresql.org/download/>`_
-.. and have started the docker containers using
-.. :code:`docker-compose up`).
-
-
-.. _benchmark-data-model:
-
-Benchmark data model
-====================
-
-
-.. graphviz:: data_model.dot
-
-
-.. _benchmark-ingestion:
-
-Benchmark ingestion helper functions
-====================================
-
-ingest_benchmark_run_view
--------------------------
-
-:code:`ingest_benchmark_run_view(from_jsonb jsonb)`
-
-The argument is a JSON object. NOTE: key names must be entirely
-lowercase, or the insert will fail. Extra key-value pairs are ignored.
-Example::
-
- [
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 100, "arg1": 5},
- "value": 2.5,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "val_min": 1,
- "val_q1": 2,
- "val_q3": 3,
- "val_max": 4,
- "std_dev": 1.41,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:05 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"}
- },
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 1000, "arg1": 5},
- "value": 5,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "std_dev": 3.14,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:10 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"}
- }
- ]
-To identify which columns in "benchmark_run_view" are required,
-please see the view documentation in :ref:`benchmark-data-model`.
-
-
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-
-ingest_benchmark_view
----------------------
-
-:code:`ingest_benchmark_view(from_jsonb jsonb)`
-
-The argument is a JSON object. NOTE: key names must be entirely
-lowercase, or the insert will fail. Extra key-value pairs are ignored.
-Example::
-
- [
- {
- "benchmark_name": "Benchmark 1",
- "parameter_names": ["arg0", "arg1", "arg2"],
- "benchmark_description": "First benchmark",
- "benchmark_type": "Time",
- "units": "miliseconds",
- "lessisbetter": true,
- "benchmark_version": "second version",
- "benchmark_language": "Python"
- },
- {
- "benchmark_name": "Benchmark 2",
- "parameter_names": ["arg0", "arg1"],
- "benchmark_description": "Description 2.",
- "benchmark_type": "Time",
- "units": "nanoseconds",
- "lessisbetter": true,
- "benchmark_version": "second version",
- "benchmark_language": "Python"
- }
- ]
-
-To identify which columns in "benchmark_view" are required,
-please see the view documentation in :ref:`benchmark-data-model`.
-
-
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-
-ingest_benchmark_runs_with_context
-----------------------------------
-
-:code:`ingest_benchmark_runs_with_context(from_jsonb jsonb)`
-
-The argument is a JSON object. NOTE: key names must be entirely
-lowercase, or the insert will fail. Extra key-value pairs are ignored.
-The object contains three key-value pairs::
-
- {"context": {
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 3.6",
- "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"},
- "git_commit_timestamp": "2019-02-14 22:42:22 +0100",
- "git_hash": "123456789abcde",
- "run_timestamp": "2019-02-14 03:00:40 -0600",
- "extra stuff": "does not hurt anything and will not be added."
- },
- "benchmark_version": {
- "Benchmark Name 1": "Any string can be a version.",
- "Benchmark Name 2": "A git hash can be a version.",
- "An Unused Benchmark Name": "Will be ignored."
- },
- "benchmarks": [
- {
- "benchmark_name": "Benchmark Name 1",
- "parameter_values": {"argument1": 1, "argument2": "value2"},
- "value": 42,
- "val_min": 41.2,
- "val_q1": 41.5,
- "val_q3": 42.5,
- "val_max": 42.8,
- "std_dev": 0.5,
- "n_obs": 100,
- "run_metadata": {"any": "key-value pairs"},
- "run_notes": "Any relevant notes."
- },
- {
- "benchmark_name": "Benchmark Name 2",
- "parameter_values": {"not nullable": "Use {} if no params."},
- "value": 8,
- "std_dev": 1,
- "n_obs": 2,
- }
- ]
- }
-
-- The entry for "context" contains the machine, environment, and timestamp
- information common to all of the runs
-- The entry for "benchmark_version" maps benchmark
- names to their version strings. (Which can be a git hash,
- the entire code string, a number, or any other string of your choice.)
-- The entry for "benchmarks" is a list of benchmark run data
- for the given context and benchmark versions. The first example
- benchmark run entry contains all possible values, even
- nullable ones, and the second entry omits all nullable values.
-
-
-
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-
-ingest_machine_view
--------------------
-
-:code:`ingest_machine_view(from_jsonb jsonb)`
-
-The argument is a JSON object. NOTE: key names must be entirely
-lowercase, or the insert will fail. Extra key-value pairs are ignored.
-Example::
-
- {
- "mac_address": "0a:00:2d:01:02:03",
- "machine_name": "Yet-Another-Machine-Name",
- "memory_bytes": 8589934592,
- "cpu_actual_frequency_hz": 2300000000,
- "os_name": "OSX",
- "architecture_name": "x86_64",
- "kernel_name": "18.2.0",
- "cpu_model_name": "Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz",
- "cpu_core_count": 2,
- "cpu_thread_count": 4,
- "cpu_frequency_max_hz": 2300000000,
- "cpu_frequency_min_hz": 2300000000,
- "cpu_l1d_cache_bytes": 32768,
- "cpu_l1i_cache_bytes": 32768,
- "cpu_l2_cache_bytes": 262144,
- "cpu_l3_cache_bytes": 4194304,
- "machine_other_attributes": {"just": "an example"},
- "gpu_information": "",
- "gpu_part_number": "",
- "gpu_product_name": ""
- }
-
-To identify which columns in "machine_view" are required,
-please see the view documentation in :ref:`benchmark-data-model`.
-
-
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-
-
-.. _benchmark-views:
-
-Benchmark views
-===============
-
-
-benchmark_run_view
-------------------
-
-Each benchmark run.
-
-- Each entry is unique on the machine, environment, benchmark,
- and git commit timestamp.
-
-=============================== =========== ======== =========== ===========
-Column Type Nullable Default Description
-=============================== =========== ======== =========== ===========
-benchmark_run_id int8 not null serial primary key
-benchmark_name citext not null unique
-benchmark_version citext not null unique
-parameter_values jsonb not null '{}'::jsonb unique
-value numeric not null
-git_commit_timestamp timestamptz not null unique
-git_hash text not null
-val_min numeric
-val_q1 numeric
-val_q3 numeric
-val_max numeric
-std_dev numeric not null
-n_obs int4 not null
-run_timestamp timestamptz not null unique
-run_metadata jsonb
-run_notes text
-mac_address macaddr not null unique
-benchmark_language citext not null unique
-language_implementation_version citext not null ''::citext unique
-dependencies jsonb not null '{}'::jsonb unique
-=============================== =========== ======== =========== ===========
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-benchmark_view
---------------
-
-The details about a particular benchmark.
-
-- "benchmark_name" is unique for a given "benchmark_language"
-- Each entry is unique on
- ("benchmark_language", "benchmark_name", "benchmark_version")
-
-===================== ====== ======== ======= ===========
-Column Type Nullable Default Description
-===================== ====== ======== ======= ===========
-benchmark_id int4 not null serial primary key
-benchmark_name citext not null unique
-parameter_names _text
-benchmark_description text not null
-benchmark_type citext not null unique
-units citext not null unique
-lessisbetter bool not null
-benchmark_version citext not null unique
-benchmark_language citext not null unique
-===================== ====== ======== ======= ===========
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-environment_view
-----------------
-
-The build environment used for a reported benchmark run.
-(Will be inferred from each "benchmark_run" if not explicitly added).
-
-- Each entry is unique on
- ("benchmark_language", "language_implementation_version", "dependencies")
-- "benchmark_language" is unique in the "benchmark_language" table
-- "benchmark_language" plus "language_implementation_version" is unique in
- the "language_implementation_version" table
-- "dependencies" is unique in the "dependencies" table
-
-=============================== ====== ======== =========== ===========
-Column Type Nullable Default Description
-=============================== ====== ======== =========== ===========
-environment_id int4 not null serial primary key
-benchmark_language citext not null unique
-language_implementation_version citext not null ''::citext unique
-dependencies jsonb not null '{}'::jsonb unique
-=============================== ====== ======== =========== ===========
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-machine_view
-------------
-
-The machine environment (CPU, GPU, OS) used for each benchmark run.
-
-- "mac_address" is unique in the "machine" table
-- "gpu_part_number" is unique in the "gpu" (graphics processing unit) table
- Empty string (''), not null, is used for machines that won't use the GPU
-- "cpu_model_name" is unique in the "cpu" (central processing unit) table
-- "os_name", "os_architecture_name", and "os_kernel_name"
- are unique in the "os" (operating system) table
-- "machine_other_attributes" is a key-value store for any other relevant
- data, e.g. '{"hard_disk_type": "solid state"}'
-
-======================== ======= ======== ========== ===========
-Column Type Nullable Default Description
-======================== ======= ======== ========== ===========
-machine_id int4 not null serial primary key
-mac_address macaddr not null unique
-machine_name citext not null
-memory_bytes int8 not null
-cpu_actual_frequency_hz int8 not null
-os_name citext not null unique
-architecture_name citext not null unique
-kernel_name citext not null ''::citext unique
-cpu_model_name citext not null unique
-cpu_core_count int4 not null
-cpu_thread_count int4 not null
-cpu_frequency_max_hz int8 not null
-cpu_frequency_min_hz int8 not null
-cpu_l1d_cache_bytes int4 not null
-cpu_l1i_cache_bytes int4 not null
-cpu_l2_cache_bytes int4 not null
-cpu_l3_cache_bytes int4 not null
-gpu_information citext not null ''::citext unique
-gpu_part_number citext not null ''::citext
-gpu_product_name citext not null ''::citext
-machine_other_attributes jsonb
-======================== ======= ======== ========== ===========
-
-back to `Benchmark data model <benchmark-data-model>`_
-
-
diff --git a/dev/benchmarking/ddl/0_setup.sql b/dev/benchmarking/ddl/0_setup.sql
deleted file mode 100644
index ec10446..0000000
--- a/dev/benchmarking/ddl/0_setup.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- 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.
-*/
-
-CREATE EXTENSION IF NOT EXISTS "citext"; -- type for case-insensitive text
-
--- For future fine-grained control over function execution by user group.
-ALTER DEFAULT PRIVILEGES REVOKE EXECUTE ON functions FROM public;
diff --git a/dev/benchmarking/ddl/1_00_table_public_project.sql b/dev/benchmarking/ddl/1_00_table_public_project.sql
deleted file mode 100644
index c52d66c..0000000
--- a/dev/benchmarking/ddl/1_00_table_public_project.sql
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- 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.
-*/
-
-
--- PROJECT
-CREATE TABLE IF NOT EXISTS public.project
-(
- project_id SERIAL PRIMARY KEY
- , project_name citext NOT NULL
- , project_url text NOT NULL
- , repo_url text NOT NULL
- , last_changed timestamp (0) without time zone NOT NULL DEFAULT now()
-);
-COMMENT ON TABLE public.project
- IS 'Project name and relevant URLs.';
-COMMENT ON COLUMN public.project.project_url
- IS 'Homepage URL.';
-COMMENT ON COLUMN public.project.repo_url
- IS 'Git repo URL to link stored commit hashes to code in a webpage.';
-COMMENT ON COLUMN public.project.last_changed
- IS 'New project details are added with a new timestamp. '
- 'The project details with the newest timestamp will be used.';
-
--- CONSTRAINTS
-CREATE UNIQUE INDEX project_unique_index_on_project_name_urls
- ON public.project(project_name, project_url, repo_url);
-COMMENT ON INDEX
- public.project_unique_index_on_project_name_urls
- IS 'Enforce uniqueness of project name and urls.';
diff --git a/dev/benchmarking/ddl/1_01_table_public_cpu.sql b/dev/benchmarking/ddl/1_01_table_public_cpu.sql
deleted file mode 100644
index df1a9e7..0000000
--- a/dev/benchmarking/ddl/1_01_table_public_cpu.sql
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- 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.
-*/
-
-
--- CPU
-CREATE TABLE IF NOT EXISTS public.cpu
-(
- cpu_id SERIAL PRIMARY KEY
- , cpu_model_name citext NOT NULL UNIQUE
- , cpu_core_count integer NOT NULL
- , cpu_thread_count integer NOT NULL
- , cpu_frequency_max_Hz bigint NOT NULL
- , cpu_frequency_min_Hz bigint NOT NULL
- , cpu_L1d_cache_bytes integer NOT NULL
- , cpu_L1i_cache_bytes integer NOT NULL
- , cpu_L2_cache_bytes integer NOT NULL
- , cpu_L3_cache_bytes integer NOT NULL
-);
-COMMENT ON TABLE public.cpu
- IS 'CPU model and its specifications.';
-COMMENT ON COLUMN public.cpu.cpu_id
- IS 'The primary key for the CPU table. '
- 'NOTE: This is a synthetic primary key and not meant to represent a '
- 'processor instruction to read capabilities.';
-COMMENT ON COLUMN public.cpu.cpu_model_name
- IS 'The output of `sysctl -n machdep.cpu.brand_stringp`.';
-COMMENT ON COLUMN public.cpu.cpu_core_count
- IS 'The output of `sysctl -n hw.physicalcpu`.';
-COMMENT ON COLUMN public.cpu.cpu_thread_count
- IS 'The output of `sysctl -n hw.logicalcpu`.';
-COMMENT ON COLUMN public.cpu.cpu_frequency_max_Hz
- IS 'The output of `sysctl -n hw.cpufrequency_max`.';
-COMMENT ON COLUMN public.cpu.cpu_frequency_min_Hz
- IS 'The output of `sysctl -n hw.cpufrequency_min`.';
-COMMENT ON COLUMN public.cpu.cpu_L1d_cache_bytes
- IS 'The output of `sysctl -n hw.l1dcachesize`.';
-COMMENT ON COLUMN public.cpu.cpu_L1i_cache_bytes
- IS 'The output of `sysctl -n hw.l1icachesize`.';
-COMMENT ON COLUMN public.cpu.cpu_L2_cache_bytes
- IS 'The output of `sysctl -n hw.l2cachesize`.';
-COMMENT ON COLUMN public.cpu.cpu_L3_cache_bytes
- IS 'The output of `sysctl -n hw.l3cachesize`.';
-
--- CONSTRAINTS
-ALTER TABLE public.cpu
- ADD CONSTRAINT cpu_check_cpu_model_name_length
- CHECK (char_length(cpu_model_name) < 255);
diff --git a/dev/benchmarking/ddl/1_02_table_public_gpu.sql b/dev/benchmarking/ddl/1_02_table_public_gpu.sql
deleted file mode 100644
index 564af19..0000000
--- a/dev/benchmarking/ddl/1_02_table_public_gpu.sql
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- 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.
-*/
-
-
--- GPU
-CREATE TABLE IF NOT EXISTS public.gpu
-(
- gpu_id SERIAL PRIMARY KEY
- , gpu_information citext UNIQUE NOT NULL DEFAULT ''
- , gpu_part_number citext NOT NULL DEFAULT ''
- , gpu_product_name citext NOT NULL DEFAULT ''
-);
-COMMENT ON TABLE public.gpu IS 'GPU specifications.';
-COMMENT ON COLUMN public.gpu.gpu_information
- IS 'The output of `nvidia-smi -q` (on Linux or Windows), or `cuda-smi` '
- 'or `kextstat | grep -i cuda` on OSX, or another command; anything '
- 'that gets a string to uniquely identify the GPU.';
-
--- CONSTRAINTS
-CREATE INDEX gpu_index_on_part_number
- ON public.gpu (gpu_part_number);
-
-CREATE INDEX gpu_index_on_product_name
- ON public.gpu (gpu_product_name);
-
-CREATE INDEX gpu_index_on_product_name_and_part_number
- ON public.gpu (gpu_product_name, gpu_part_number);
diff --git a/dev/benchmarking/ddl/1_03_table_public_os.sql b/dev/benchmarking/ddl/1_03_table_public_os.sql
deleted file mode 100644
index 7b03d82..0000000
--- a/dev/benchmarking/ddl/1_03_table_public_os.sql
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- 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.
-*/
-
-
--- OS
-CREATE TABLE IF NOT EXISTS public.os
-(
- os_id SERIAL PRIMARY KEY
- , os_name citext NOT NULL
- , architecture_name citext NOT NULL
- , kernel_name citext NOT NULL DEFAULT ''
-);
--- @name os. forces retention of an 's' in the Graphile GraphQL api.
-COMMENT ON TABLE public.os
- IS E'@name os.\nOperating system name and kernel (version).';
-COMMENT ON COLUMN public.os.os_name
- IS 'Operating system name. For example, OSX, Ubuntu, Windows`.';
-COMMENT ON COLUMN public.os.architecture_name
- IS 'Operating system architecture; the output of `uname -m`.';
-COMMENT ON COLUMN public.os.kernel_name
- IS 'Operating system kernel, or NULL. '
- 'On Linux/OSX, the output of `uname -r`. '
- 'On Windows, the output of `ver`.';
-
--- CONSTRAINTS
-ALTER TABLE public.os
- ADD CONSTRAINT os_check_os_name_length
- CHECK (char_length(os_name) < 63);
-
-ALTER TABLE public.os
- ADD CONSTRAINT os_check_architecture_name_length
- CHECK (char_length(architecture_name) < 63);
-
-ALTER TABLE public.os
- ADD CONSTRAINT os_check_kernel_name_length
- CHECK (char_length(kernel_name) < 63);
-
-CREATE UNIQUE INDEX os_unique_index
- ON public.os(os_name, architecture_name, kernel_name);
-COMMENT ON INDEX public.os_unique_index
- IS 'Enforce uniqueness of os, architecture, and kernel names.';
diff --git a/dev/benchmarking/ddl/1_04_table_public_benchmark_language.sql b/dev/benchmarking/ddl/1_04_table_public_benchmark_language.sql
deleted file mode 100644
index 2e35536..0000000
--- a/dev/benchmarking/ddl/1_04_table_public_benchmark_language.sql
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- 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.
-*/
-
-
--- BENCHMARK_LANGUAGE
-CREATE TABLE IF NOT EXISTS public.benchmark_language
-(
- benchmark_language_id SERIAL PRIMARY KEY
- , benchmark_language citext NOT NULL UNIQUE
-);
-COMMENT ON TABLE public.benchmark_language
- IS 'The language the benchmark was written in (and presumably for).';
-COMMENT ON COLUMN public.benchmark_language.benchmark_language
- IS 'The benchmark language. For example: Python';
-
--- CONSTRAINTS
-ALTER TABLE public.benchmark_language
- ADD CONSTRAINT benchmark_language_check_language_length
- CHECK (char_length(benchmark_language) < 63);
diff --git a/dev/benchmarking/ddl/1_05_table_public_dependencies.sql b/dev/benchmarking/ddl/1_05_table_public_dependencies.sql
deleted file mode 100644
index 3744a0c..0000000
--- a/dev/benchmarking/ddl/1_05_table_public_dependencies.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- 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.
-*/
-
-
--- DEPENDENCIES
-CREATE TABLE IF NOT EXISTS public.dependencies
-(
- dependencies_id SERIAL PRIMARY KEY
- , dependencies jsonb UNIQUE NOT NULL DEFAULT '{}'::jsonb
-);
-COMMENT ON TABLE public.dependencies
- IS E'@name dependencies.\n'
- 'A JSON object mapping dependencies to their versions.';
-COMMENT ON COLUMN public.dependencies.dependencies
- IS 'For example: ''{"boost": "1.69", "conda": "", "numpy": "1.15"}''.';
diff --git a/dev/benchmarking/ddl/1_06_table_public_language_implementation_version.sql b/dev/benchmarking/ddl/1_06_table_public_language_implementation_version.sql
deleted file mode 100644
index f7d26e4..0000000
--- a/dev/benchmarking/ddl/1_06_table_public_language_implementation_version.sql
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- 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.
-*/
-
-
--- LANGUAGE_IMPLEMENTATION_VERSION
-CREATE TABLE IF NOT EXISTS public.language_implementation_version
-(
- language_implementation_version_id SERIAL
- , language_implementation_version citext NOT NULL DEFAULT ''
- , benchmark_language_id integer NOT NULL
- , PRIMARY KEY (language_implementation_version_id, benchmark_language_id)
- , FOREIGN KEY (benchmark_language_id) REFERENCES public.benchmark_language
-);
-COMMENT ON TABLE public.language_implementation_version
- IS 'The benchmark language implementation or compiler version, e.g. '
- '''CPython 2.7'' or ''PyPy x.y'' or ''gcc 7.3.0'' or '
- '''gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0''.';
-COMMENT ON COLUMN public.language_implementation_version.language_implementation_version
- IS 'The version number used in the benchmark environment (e.g. ''2.7'').';
-
--- CONSTRAINTS
-ALTER TABLE public.language_implementation_version
- ADD CONSTRAINT language_implementation_version_check_version_length
- CHECK (char_length(language_implementation_version) < 255);
-
-CREATE UNIQUE INDEX language_implementation_version_unique_index
- ON public.language_implementation_version
- (benchmark_language_id, language_implementation_version);
-COMMENT ON INDEX language_implementation_version_unique_index
- IS 'Enforce unique implementation versions for the languages.';
diff --git a/dev/benchmarking/ddl/1_07_table_public_benchmark_type.sql b/dev/benchmarking/ddl/1_07_table_public_benchmark_type.sql
deleted file mode 100644
index 1143cdb..0000000
--- a/dev/benchmarking/ddl/1_07_table_public_benchmark_type.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- 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.
-*/
-
-
--- BENCHMARK_TYPE
-CREATE TABLE IF NOT EXISTS public.benchmark_type
-(
- benchmark_type_id SERIAL PRIMARY KEY
- , benchmark_type citext NOT NULL UNIQUE
- , lessisbetter boolean NOT NULL
-);
-COMMENT ON TABLE public.benchmark_type
- IS 'The type of benchmark. For example "time", "mem", "peakmem", "track"';
-COMMENT ON COLUMN public.benchmark_type.benchmark_type
- IS 'The type of units, so ''time'' for seconds, miliseconds, or '
- '''mem'' for kilobytes, megabytes.';
-COMMENT ON COLUMN public.benchmark_type.lessisbetter
- IS 'True if a smaller benchmark value is better.';
-
--- CONSTRAINTS
-ALTER TABLE public.benchmark_type
- ADD CONSTRAINT benchmark_type_check_benchmark_type_char_length
- CHECK (char_length(benchmark_type) < 63);
diff --git a/dev/benchmarking/ddl/1_08_table_public_machine.sql b/dev/benchmarking/ddl/1_08_table_public_machine.sql
deleted file mode 100644
index 8f219d3..0000000
--- a/dev/benchmarking/ddl/1_08_table_public_machine.sql
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- 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.
-*/
-
-
--- MACHINE
-CREATE TABLE IF NOT EXISTS public.machine
-(
- machine_id SERIAL PRIMARY KEY
- , machine_name citext NOT NULL
- , mac_address macaddr NOT NULL
- , memory_bytes bigint NOT NULL
- , cpu_actual_frequency_Hz bigint NOT NULL
- , machine_other_attributes jsonb
- , cpu_id integer NOT NULL
- , gpu_id integer NOT NULL
- , os_id integer NOT NULL
- , FOREIGN KEY (cpu_id) REFERENCES public.cpu
- , FOREIGN KEY (gpu_id) REFERENCES public.gpu
- , FOREIGN KEY (os_id) REFERENCES public.os
-);
-COMMENT ON TABLE public.machine
- IS 'Unique identifiers for a machine.';
-COMMENT ON COLUMN public.machine.machine_name
- IS 'A machine name of your choice.';
-COMMENT ON COLUMN public.machine.mac_address
- IS 'The mac_address of a physical network interface to uniquely '
- 'identify a computer. Postgres accepts standard formats, including '
- '''08:00:2b:01:02:03'', ''08-00-2b-01-02-03'', ''08002b:010203''';
-COMMENT ON COLUMN public.machine.memory_bytes
- IS 'The output of `sysctl -n hw.memsize`.';
-COMMENT ON COLUMN public.machine.cpu_actual_frequency_Hz
- IS 'The output of `sysctl -n hw.cpufrequency`.';
-COMMENT ON COLUMN public.machine.machine_other_attributes
- IS 'Additional attributes of interest, as a JSON object. '
- 'For example: ''{"hard_disk_type": "solid state"}''::jsonb.';
-
--- CONSTRAINTS
-CREATE UNIQUE INDEX machine_index_on_mac_address
- ON public.machine(mac_address);
-COMMENT ON INDEX machine_index_on_mac_address
- IS 'Enforce unique mac address';
-
-CREATE INDEX machine_index_on_cpu_id
- ON public.machine(cpu_id);
-
-CREATE INDEX machine_index_on_gpu_id
- ON public.machine(gpu_id);
-
-CREATE INDEX machine_index_on_os_id
- ON public.machine(os_id);
-
-CREATE INDEX machine_index_on_cpu_gpu_os_id
- ON public.machine(cpu_id, gpu_id, os_id);
diff --git a/dev/benchmarking/ddl/1_09_table_public_unit.sql b/dev/benchmarking/ddl/1_09_table_public_unit.sql
deleted file mode 100644
index a8cf576..0000000
--- a/dev/benchmarking/ddl/1_09_table_public_unit.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- 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.
-*/
-
-
--- UNIT
-CREATE TABLE IF NOT EXISTS public.unit
-(
- unit_id SERIAL PRIMARY KEY
- , units citext NOT NULL UNIQUE
- , benchmark_type_id integer NOT NULL
- , FOREIGN KEY (benchmark_type_id)
- REFERENCES public.benchmark_type(benchmark_type_id)
-);
-COMMENT ON TABLE public.unit IS 'The actual units for a reported benchmark.';
-COMMENT ON COLUMN public.unit.units
- IS 'For example: nanoseconds, microseconds, bytes, megabytes.';
-
--- CONSTRAINTS
-ALTER TABLE public.unit
- ADD CONSTRAINT unit_check_units_string_length
- CHECK (char_length(units) < 63);
diff --git a/dev/benchmarking/ddl/1_10_table_public_environment.sql b/dev/benchmarking/ddl/1_10_table_public_environment.sql
deleted file mode 100644
index e3a6d23..0000000
--- a/dev/benchmarking/ddl/1_10_table_public_environment.sql
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- 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.
-*/
-
-
--- ENVIRONMENT
-CREATE TABLE IF NOT EXISTS public.environment
-(
- environment_id SERIAL
- , language_implementation_version_id integer NOT NULL
- , benchmark_language_id integer NOT NULL
- , dependencies_id integer NOT NULL
- , PRIMARY KEY
- (environment_id, benchmark_language_id, language_implementation_version_id)
- , FOREIGN KEY
- (benchmark_language_id)
- REFERENCES public.benchmark_language
- , FOREIGN KEY
- (language_implementation_version_id, benchmark_language_id)
- REFERENCES public.language_implementation_version(
- language_implementation_version_id
- , benchmark_language_id
- )
- , FOREIGN KEY
- (dependencies_id)
- REFERENCES public.dependencies
-);
-COMMENT ON TABLE public.environment
- IS 'Identifies a build environment for a specific suite of benchmarks.';
-
--- CONSTRAINTS
-CREATE UNIQUE INDEX environment_unique_index
- ON public.environment
- (benchmark_language_id, language_implementation_version_id, dependencies_id);
-COMMENT ON INDEX environment_unique_index
- IS 'Enforce unique combinations of language version and dependencies.';
diff --git a/dev/benchmarking/ddl/1_11_table_public_benchmark.sql b/dev/benchmarking/ddl/1_11_table_public_benchmark.sql
deleted file mode 100644
index 1889582..0000000
--- a/dev/benchmarking/ddl/1_11_table_public_benchmark.sql
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- 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.
-*/
-
-
--- BENCHMARK
-CREATE TABLE IF NOT EXISTS public.benchmark
-(
- benchmark_id SERIAL
- , benchmark_name citext NOT NULL
- , parameter_names text[]
- , benchmark_description text NOT NULL
- , benchmark_version citext NOT NULL
- , unit_id integer NOT NULL
- , benchmark_language_id integer NOT NULL
- , PRIMARY KEY (benchmark_id, benchmark_language_id)
- , FOREIGN KEY (benchmark_language_id) REFERENCES public.benchmark_language
- , FOREIGN KEY (unit_id) REFERENCES public.unit
-);
-COMMENT ON TABLE public.benchmark
- IS 'Identifies an individual benchmark.';
-COMMENT ON COLUMN public.benchmark.parameter_names
- IS 'A list of strings identifying the parameter names in the benchmark.';
-COMMENT ON COLUMN public.benchmark.benchmark_version
- IS 'Can be any string. In Airspeed Velocity, the version is '
- 'by default the hash of the entire code string for the benchmark.';
-
--- CONSTRAINTS
-CREATE INDEX benchmark_index_on_benchmark_language_id
- ON public.benchmark(benchmark_language_id);
-
-CREATE INDEX benchmark_index_on_unit_id
- ON public.benchmark(unit_id);
-
-CREATE UNIQUE INDEX benchmark_unique_index_on_language_benchmark_version
- ON public.benchmark
- (benchmark_language_id, benchmark_name, benchmark_version);
-COMMENT ON INDEX public.benchmark_unique_index_on_language_benchmark_version
- IS 'Enforce uniqueness of benchmark name and version for a given language.';
diff --git a/dev/benchmarking/ddl/1_12_table_public_benchmark_run.sql b/dev/benchmarking/ddl/1_12_table_public_benchmark_run.sql
deleted file mode 100644
index 20b9ef0..0000000
--- a/dev/benchmarking/ddl/1_12_table_public_benchmark_run.sql
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- 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.
-*/
-
-
--- BENCHMARK_RUN
-CREATE TABLE IF NOT EXISTS public.benchmark_run
-(
- benchmark_run_id BIGSERIAL PRIMARY KEY
- , parameter_values jsonb NOT NULL DEFAULT '{}'::jsonb
- , value numeric NOT NULL
- , git_commit_timestamp timestamp (0) with time zone NOT NULL
- , git_hash text NOT NULL
- , val_min numeric
- , val_q1 numeric
- , val_q3 numeric
- , val_max numeric
- , std_dev numeric NOT NULL
- , n_obs integer NOT NULL
- , run_timestamp timestamp (0) with time zone NOT NULL
- , run_metadata jsonb
- , run_notes text
- , machine_id integer NOT NULL
- , environment_id integer NOT NULL
- , language_implementation_version_id integer NOT NULL
- , benchmark_language_id integer NOT NULL
- , benchmark_id integer NOT NULL
- , FOREIGN KEY (machine_id) REFERENCES public.machine
- , FOREIGN KEY
- (environment_id, benchmark_language_id, language_implementation_version_id)
- REFERENCES public.environment
- , FOREIGN KEY (benchmark_id, benchmark_language_id)
- REFERENCES public.benchmark(benchmark_id, benchmark_language_id)
-);
-COMMENT ON TABLE public.benchmark_run
- IS 'One run per benchmark run.';
-COMMENT ON COLUMN public.benchmark_run.parameter_values
- IS 'A JSON object mapping the parameter names from '
- '"benchmark.parameter_names" to values.';
-COMMENT ON COLUMN public.benchmark_run.value
- IS 'The average value from the benchmark run.';
-COMMENT ON COLUMN public.benchmark_run.git_commit_timestamp
- IS 'Get this using `git show -s --date=local --format="%ci" <hash>`. '
- 'ISO 8601 is recommended, e.g. ''2019-01-30 03:12 -0600''.';
-COMMENT ON COLUMN public.benchmark_run.git_hash
- IS 'The commit has of the codebase currently being benchmarked.';
-COMMENT ON COLUMN public.benchmark_run.val_min
- IS 'The smallest benchmark run value for this run.';
-COMMENT ON COLUMN public.benchmark_run.val_q1
- IS 'The first quartile of the benchmark run values for this run.';
-COMMENT ON COLUMN public.benchmark_run.val_q3
- IS 'The third quartile of the benchmark run values for this run.';
-COMMENT ON COLUMN public.benchmark_run.val_max
- IS 'The largest benchmark run value for this run.';
-COMMENT ON COLUMN public.benchmark_run.std_dev
- IS 'The standard deviation of the run values for this benchmark run.';
-COMMENT ON COLUMN public.benchmark_run.n_obs
- IS 'The number of observations for this benchmark run.';
-COMMENT ON COLUMN public.benchmark_run.run_metadata
- IS 'Additional metadata of interest, as a JSON object. '
- 'For example: ''{"ci_99": [2.7e-06, 3.1e-06]}''::jsonb.';
-COMMENT ON COLUMN public.benchmark_run.run_notes
- IS 'Additional notes of interest, as a text string. ';
-
--- CONSTRAINTS
-ALTER TABLE public.benchmark_run
- ADD CONSTRAINT benchmark_run_check_std_dev_nonnegative
- CHECK (std_dev >= 0);
-
-ALTER TABLE public.benchmark_run
- ADD CONSTRAINT benchmark_run_check_n_obs_positive
- CHECK (n_obs > 0);
-
-CREATE INDEX benchmark_run_index_on_environment_id
- ON public.benchmark_run(environment_id);
-
-CREATE INDEX benchmark_run_index_on_machine_id
- ON public.benchmark_run(machine_id);
-
-CREATE INDEX benchmark_run_index_on_benchmark_id
- ON public.benchmark_run(benchmark_id, benchmark_language_id);
-
-CREATE INDEX benchmark_run_index_on_benchmark_environment_time
- ON public.benchmark_run
- (benchmark_id, environment_id, git_commit_timestamp);
-COMMENT ON INDEX
- public.benchmark_run_index_on_benchmark_environment_time
- IS 'Index to improve sorting by benchmark, environment, and timestamp.';
-
-CREATE UNIQUE INDEX
- benchmark_run_unique_index_on_env_benchmark_timestamp_params
- ON public.benchmark_run
- (machine_id, environment_id, benchmark_id, git_commit_timestamp, parameter_values, run_timestamp);
-COMMENT ON INDEX
- public.benchmark_run_unique_index_on_env_benchmark_timestamp_params
- IS 'Enforce uniqueness of benchmark run for a given machine, '
- 'environment, benchmark, git commit timestamp, and parameter values.';
diff --git a/dev/benchmarking/ddl/2_00_views.sql b/dev/benchmarking/ddl/2_00_views.sql
deleted file mode 100644
index cbd295e..0000000
--- a/dev/benchmarking/ddl/2_00_views.sql
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- 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.
-*/
-
--- NOTE:
--- The function for documentation depends on view columns
--- being named exactly the same as in the table view.
-
--- MACHINE_VIEW
-CREATE OR REPLACE VIEW public.machine_view AS
- SELECT
- machine.machine_id
- , mac_address
- , machine_name
- , memory_bytes
- , cpu_actual_frequency_Hz
- , os_name
- , architecture_name
- , kernel_name
- , cpu_model_name
- , cpu_core_count
- , cpu_thread_count
- , cpu_frequency_max_Hz
- , cpu_frequency_min_Hz
- , cpu_L1d_cache_bytes
- , cpu_L1i_cache_bytes
- , cpu_L2_cache_bytes
- , cpu_L3_cache_bytes
- , gpu_information
- , gpu_part_number
- , gpu_product_name
- , machine_other_attributes
- FROM public.machine AS machine
- JOIN public.cpu AS cpu ON machine.cpu_id = cpu.cpu_id
- JOIN public.gpu AS gpu ON machine.gpu_id = gpu.gpu_id
- JOIN public.os AS os ON machine.os_id = os.os_id;
-COMMENT ON VIEW public.machine_view IS
-E'The machine environment (CPU, GPU, OS) used for each benchmark run.\n\n'
- '- "mac_address" is unique in the "machine" table\n'
- '- "gpu_part_number" is unique in the "gpu" (graphics processing unit) table\n'
- ' Empty string (''''), not null, is used for machines that won''t use the GPU\n'
- '- "cpu_model_name" is unique in the "cpu" (central processing unit) table\n'
- '- "os_name", "os_architecture_name", and "os_kernel_name"\n'
- ' are unique in the "os" (operating system) table\n'
- '- "machine_other_attributes" is a key-value store for any other relevant\n'
- ' data, e.g. ''{"hard_disk_type": "solid state"}''';
-
-
--- LANGUAGE_IMPLEMENTATION_VERSION_VIEW
-CREATE OR REPLACE VIEW public.language_implementation_version_view AS
- SELECT
- lv.language_implementation_version_id
- , bl.benchmark_language
- , lv.language_implementation_version
- FROM public.language_implementation_version AS lv
- JOIN public.benchmark_language AS bl
- ON lv.benchmark_language_id = bl.benchmark_language_id;
-
--- ENVIRONMENT_VIEW
-CREATE OR REPLACE VIEW public.environment_view AS
- SELECT
- env.environment_id
- , benchmark_language
- , language_implementation_version
- , dependencies
- FROM public.environment AS env
- JOIN public.benchmark_language AS language
- ON env.benchmark_language_id = language.benchmark_language_id
- JOIN public.language_implementation_version AS version
- ON env.language_implementation_version_id = version.language_implementation_version_id
- JOIN public.dependencies AS deps
- ON env.dependencies_id = deps.dependencies_id;
-COMMENT ON VIEW public.environment_view IS
-E'The build environment used for a reported benchmark run.\n'
- '(Will be inferred from each "benchmark_run" if not explicitly added).\n\n'
- '- Each entry is unique on\n'
- ' ("benchmark_language", "language_implementation_version", "dependencies")\n'
- '- "benchmark_language" is unique in the "benchmark_language" table\n'
- '- "benchmark_language" plus "language_implementation_version" is unique in\n'
- ' the "language_implementation_version" table\n'
- '- "dependencies" is unique in the "dependencies" table';
-
--- UNIT_VIEW
-CREATE OR REPLACE VIEW public.unit_view AS
- SELECT
- unit.unit_id
- , units
- , benchmark_type
- , lessisbetter
- FROM public.unit AS unit
- JOIN public.benchmark_type AS bt
- ON unit.benchmark_type_id = bt.benchmark_type_id;
-
--- BENCHMARK_VIEW
-CREATE OR REPLACE VIEW public.benchmark_view AS
- SELECT
- b.benchmark_id
- , benchmark_name
- , parameter_names
- , benchmark_description
- , benchmark_type
- , units
- , lessisbetter
- , benchmark_version
- , benchmark_language
- FROM public.benchmark AS b
- JOIN public.benchmark_language AS benchmark_language
- ON b.benchmark_language_id = benchmark_language.benchmark_language_id
- JOIN public.unit AS unit
- ON b.unit_id = unit.unit_id
- JOIN public.benchmark_type AS benchmark_type
- ON unit.benchmark_type_id = benchmark_type.benchmark_type_id;
-COMMENT ON VIEW public.benchmark_view IS
-E'The details about a particular benchmark.\n\n'
- '- "benchmark_name" is unique for a given "benchmark_language"\n'
- '- Each entry is unique on\n'
- ' ("benchmark_language", "benchmark_name", "benchmark_version")';
-
--- BENCHMARK_RUN_VIEW
-CREATE OR REPLACE VIEW public.benchmark_run_view AS
- SELECT
- run.benchmark_run_id
- -- benchmark_view (name, version, language only)
- , benchmark_name
- , benchmark_version
- -- datum
- , parameter_values
- , value
- , git_commit_timestamp
- , git_hash
- , val_min
- , val_q1
- , val_q3
- , val_max
- , std_dev
- , n_obs
- , run_timestamp
- , run_metadata
- , run_notes
- -- machine_view (mac address only)
- , mac_address
- -- environment_view
- , env.benchmark_language
- , language_implementation_version
- , dependencies
- FROM public.benchmark_run AS run
- JOIN public.benchmark_view AS benchmark
- ON run.benchmark_id = benchmark.benchmark_id
- JOIN public.machine_view AS machine
- ON run.machine_id = machine.machine_id
- JOIN public.environment_view AS env
- ON run.environment_id = env.environment_id;
-COMMENT ON VIEW public.benchmark_run_view IS
-E'Each benchmark run.\n\n'
- '- Each entry is unique on the machine, environment, benchmark,\n'
- ' and git commit timestamp.';
-
--- FULL_BENCHMARK_RUN_VIEW
-CREATE OR REPLACE VIEW public.full_benchmark_run_view AS
- SELECT
- run.benchmark_run_id
- -- benchmark_view
- , benchmark_name
- , parameter_names
- , benchmark_description
- , benchmark_type
- , units
- , lessisbetter
- , benchmark_version
- -- datum
- , parameter_values
- , value
- , git_commit_timestamp
- , git_hash
- , val_min
- , val_q1
- , val_q3
- , val_max
- , std_dev
- , n_obs
- , run_timestamp
- , run_metadata
- , run_notes
- -- machine_view
- , machine_name
- , mac_address
- , memory_bytes
- , cpu_actual_frequency_Hz
- , os_name
- , architecture_name
- , kernel_name
- , cpu_model_name
- , cpu_core_count
- , cpu_thread_count
- , cpu_frequency_max_Hz
- , cpu_frequency_min_Hz
- , cpu_L1d_cache_bytes
- , cpu_L1i_cache_bytes
- , cpu_L2_cache_bytes
- , cpu_L3_cache_bytes
- , gpu_information
- , gpu_part_number
- , gpu_product_name
- , machine_other_attributes
- -- environment_view
- , env.benchmark_language
- , env.language_implementation_version
- , dependencies
- FROM public.benchmark_run AS run
- JOIN public.benchmark_view AS benchmark
- ON run.benchmark_id = benchmark.benchmark_id
- JOIN public.machine_view AS machine
- ON run.machine_id = machine.machine_id
- JOIN public.environment_view AS env
- ON run.environment_id = env.environment_id;
-
--- SUMMARIZED_TABLES_VIEW
-CREATE VIEW public.summarized_tables_view AS
- WITH chosen AS (
- SELECT
- cls.oid AS id
- , cls.relname as tbl_name
- FROM pg_catalog.pg_class AS cls
- JOIN pg_catalog.pg_namespace AS ns ON cls.relnamespace = ns.oid
- WHERE
- cls.relkind = 'r'
- AND ns.nspname = 'public'
- ), all_constraints AS (
- SELECT
- chosen.id AS tbl_id
- , chosen.tbl_name
- , unnest(conkey) AS col_id
- , 'foreign key' AS col_constraint
- FROM pg_catalog.pg_constraint
- JOIN chosen ON chosen.id = conrelid
- WHERE contype = 'f'
-
- UNION
-
- SELECT
- chosen.id
- , chosen.tbl_name
- , unnest(indkey)
- , 'unique'
- FROM pg_catalog.pg_index i
- JOIN chosen ON chosen.id = i.indrelid
- WHERE i.indisunique AND NOT i.indisprimary
-
- UNION
-
- SELECT
- chosen.id
- , chosen.tbl_name
- , unnest(indkey)
- , 'primary key'
- FROM pg_catalog.pg_index i
- JOIN chosen on chosen.id = i.indrelid
- WHERE i.indisprimary
- ), gathered_constraints AS (
- SELECT
- tbl_id
- , tbl_name
- , col_id
- , string_agg(col_constraint, ', ' ORDER BY col_constraint)
- AS col_constraint
- FROM all_constraints
- GROUP BY tbl_id, tbl_name, col_id
- )
- SELECT
- chosen.tbl_name AS table_name
- , columns.attnum AS column_number
- , columns.attname AS column_name
- , typ.typname AS type_name
- , CASE
- WHEN columns.attnotnull
- THEN 'not null'
- ELSE ''
- END AS nullable
- , CASE
- WHEN defaults.adsrc like 'nextval%'
- THEN 'serial'
- ELSE defaults.adsrc
- END AS default_value
- , CASE
- WHEN gc.col_constraint = '' OR gc.col_constraint IS NULL
- THEN cnstrnt.consrc
- WHEN cnstrnt.consrc IS NULL
- THEN gc.col_constraint
- ELSE gc.col_constraint || ', ' || cnstrnt.consrc
- END AS description
- FROM pg_catalog.pg_attribute AS columns
- JOIN chosen ON columns.attrelid = chosen.id
- JOIN pg_catalog.pg_type AS typ
- ON typ.oid = columns.atttypid
- LEFT JOIN gathered_constraints AS gc
- ON gc.col_id = columns.attnum
- AND gc.tbl_id = columns.attrelid
- LEFT JOIN pg_attrdef AS defaults
- ON defaults.adrelid = chosen.id
- AND defaults.adnum = columns.attnum
- LEFT JOIN pg_catalog.pg_constraint AS cnstrnt
- ON cnstrnt.conrelid = columns.attrelid
- AND columns.attrelid = ANY(cnstrnt.conkey)
- WHERE
- columns.attnum > 0
- ORDER BY table_name, column_number;
-COMMENT ON VIEW public.summarized_tables_view
- IS 'A summary of all columns from all tables in the public schema, '
- ' identifying nullability, primary/foreign keys, and data type.';
diff --git a/dev/benchmarking/ddl/3_00_functions_helpers.sql b/dev/benchmarking/ddl/3_00_functions_helpers.sql
deleted file mode 100644
index b10b69a..0000000
--- a/dev/benchmarking/ddl/3_00_functions_helpers.sql
+++ /dev/null
@@ -1,643 +0,0 @@
-/*
- 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.
-*/
-
-
--- PROJECT_DETAILS
-CREATE TYPE public.type_project_details AS (
- project_name text
- , project_url text
- , repo_url text
-);
-
-CREATE OR REPLACE FUNCTION public.project_details()
-RETURNS public.type_project_details AS
-$$
- SELECT project_name, project_url, repo_url
- FROM public.project
- ORDER BY last_changed DESC
- LIMIT 1
-$$
-LANGUAGE sql STABLE;
-COMMENT ON FUNCTION public.project_details()
-IS 'Get the current project name, url, and repo url.';
-
-
--------------------------- GET-OR-SET FUNCTIONS --------------------------
--- The following functions have the naming convention "get_<tablename>_id".
--- All of them attempt to SELECT the desired row given the column
--- values, and if it does not exist will INSERT it.
---
--- When functions are overloaded with fewer columns, it is to allow
--- selection only, given columns that comprise a unique index.
-
--- GET_CPU_ID
-CREATE OR REPLACE FUNCTION public.get_cpu_id(
- cpu_model_name citext
- , cpu_core_count integer
- , cpu_thread_count integer
- , cpu_frequency_max_Hz bigint
- , cpu_frequency_min_Hz bigint
- , cpu_L1d_cache_bytes integer
- , cpu_L1i_cache_bytes integer
- , cpu_L2_cache_bytes integer
- , cpu_L3_cache_bytes integer
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT cpu_id INTO result FROM public.cpu AS cpu
- WHERE cpu.cpu_model_name = $1
- AND cpu.cpu_core_count = $2
- AND cpu.cpu_thread_count = $3
- AND cpu.cpu_frequency_max_Hz = $4
- AND cpu.cpu_frequency_min_Hz = $5
- AND cpu.cpu_L1d_cache_bytes = $6
- AND cpu.cpu_L1i_cache_bytes = $7
- AND cpu.cpu_L2_cache_bytes = $8
- AND cpu.cpu_L3_cache_bytes = $9;
-
- IF result IS NULL THEN
- INSERT INTO public.cpu(
- cpu_model_name
- , cpu_core_count
- , cpu_thread_count
- , cpu_frequency_max_Hz
- , cpu_frequency_min_Hz
- , cpu_L1d_cache_bytes
- , cpu_L1i_cache_bytes
- , cpu_L2_cache_bytes
- , cpu_L3_cache_bytes
- )
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
- RETURNING cpu_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_cpu_id(
- citext
- , integer
- , integer
- , bigint -- cpu_frequency_max_Hz
- , bigint -- cpu_frequency_min_Hz
- , integer
- , integer
- , integer
- , integer
-)
-IS 'Insert or select CPU data, returning "cpu.cpu_id".';
-
--- GET_GPU_ID
-CREATE OR REPLACE FUNCTION public.get_gpu_id(
- gpu_information citext DEFAULT NULL
- , gpu_part_number citext DEFAULT NULL
- , gpu_product_name citext DEFAULT NULL
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT gpu_id INTO result FROM public.gpu AS gpu
- WHERE
- gpu.gpu_information = COALESCE($1, '')
- AND gpu.gpu_part_number = COALESCE($2, '')
- AND gpu.gpu_product_name = COALESCE($3, '');
-
- IF result IS NULL THEN
- INSERT INTO public.gpu(
- gpu_information
- , gpu_part_number
- , gpu_product_name
- )
- VALUES (COALESCE($1, ''), COALESCE($2, ''), COALESCE($3, ''))
- RETURNING gpu_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_gpu_id(citext, citext, citext)
-IS 'Insert or select GPU data, returning "gpu.gpu_id".';
-
--- GET_OS_ID
-CREATE OR REPLACE FUNCTION public.get_os_id(
- os_name citext
- , architecture_name citext
- , kernel_name citext DEFAULT ''
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT os_id INTO result FROM public.os AS os
- WHERE os.os_name = $1
- AND os.architecture_name = $2
- AND os.kernel_name = COALESCE($3, '');
-
- IF result is NULL THEN
- INSERT INTO public.os(os_name, architecture_name, kernel_name)
- VALUES ($1, $2, COALESCE($3, ''))
- RETURNING os_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_os_id(citext, citext, citext)
-IS 'Insert or select OS data, returning "os.os_id".';
-
--- GET_MACHINE_ID (full signature)
-CREATE OR REPLACE FUNCTION public.get_machine_id(
- mac_address macaddr
- , machine_name citext
- , memory_bytes bigint
- , cpu_actual_frequency_Hz bigint
- -- os
- , os_name citext
- , architecture_name citext
- , kernel_name citext
- -- cpu
- , cpu_model_name citext
- , cpu_core_count integer
- , cpu_thread_count integer
- , cpu_frequency_max_Hz bigint
- , cpu_frequency_min_Hz bigint
- , L1d_cache_bytes integer
- , L1i_cache_bytes integer
- , L2_cache_bytes integer
- , L3_cache_bytes integer
- -- gpu
- , gpu_information citext DEFAULT ''
- , gpu_part_number citext DEFAULT NULL
- , gpu_product_name citext DEFAULT NULL
- -- nullable machine attributes
- , machine_other_attributes jsonb DEFAULT NULL
-)
-RETURNS integer AS
-$$
- DECLARE
- found_cpu_id integer;
- found_gpu_id integer;
- found_os_id integer;
- result integer;
- BEGIN
- -- Can't bypass looking up all the values because of unique constraint.
- SELECT public.get_cpu_id(
- cpu_model_name
- , cpu_core_count
- , cpu_thread_count
- , cpu_frequency_max_Hz
- , cpu_frequency_min_Hz
- , L1d_cache_bytes
- , L1i_cache_bytes
- , L2_cache_bytes
- , L3_cache_bytes
- ) INTO found_cpu_id;
-
- SELECT public.get_gpu_id(
- gpu_information
- , gpu_part_number
- , gpu_product_name
- ) INTO found_gpu_id;
-
- SELECT public.get_os_id(
- os_name
- , architecture_name
- , kernel_name
- ) INTO found_os_id;
-
- SELECT machine_id INTO result FROM public.machine AS m
- WHERE m.os_id = found_os_id
- AND m.cpu_id = found_cpu_id
- AND m.gpu_id = found_gpu_id
- AND m.mac_address = $1
- AND m.machine_name = $2
- AND m.memory_bytes = $3
- AND m.cpu_actual_frequency_Hz = $4;
-
- IF result IS NULL THEN
- INSERT INTO public.machine(
- os_id
- , cpu_id
- , gpu_id
- , mac_address
- , machine_name
- , memory_bytes
- , cpu_actual_frequency_Hz
- , machine_other_attributes
- )
- VALUES (found_os_id, found_cpu_id, found_gpu_id, $1, $2, $3, $4, $20)
- RETURNING machine_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_machine_id(
- macaddr
- , citext
- , bigint -- memory_bytes
- , bigint -- cpu_frequency_actual_Hz
- -- os
- , citext
- , citext
- , citext
- -- cpu
- , citext
- , integer
- , integer
- , bigint -- cpu_frequency_max_Hz
- , bigint -- cpu_frequency_min_Hz
- , integer
- , integer
- , integer
- , integer
- -- gpu
- , citext
- , citext
- , citext
- -- nullable machine attributes
- , jsonb
-)
-IS 'Insert or select machine data, returning "machine.machine_id".';
-
--- GET_MACHINE_ID (given unique mac_address)
-CREATE OR REPLACE FUNCTION public.get_machine_id(mac_address macaddr)
-RETURNS integer AS
-$$
- SELECT machine_id FROM public.machine AS m
- WHERE m.mac_address = $1;
-$$
-LANGUAGE sql STABLE;
-COMMENT ON FUNCTION public.get_machine_id(macaddr)
-IS 'Select machine_id given its mac address, returning "machine.machine_id".';
-
--- GET_BENCHMARK_LANGUAGE_ID
-CREATE OR REPLACE FUNCTION public.get_benchmark_language_id(language citext)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT benchmark_language_id INTO result
- FROM public.benchmark_language AS bl
- WHERE bl.benchmark_language = language;
-
- IF result IS NULL THEN
- INSERT INTO public.benchmark_language(benchmark_language)
- VALUES (language)
- RETURNING benchmark_language_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_benchmark_language_id(citext)
-IS 'Insert or select benchmark_language returning '
- '"benchmark_language.benchmark_language_id".';
-
--- GET_LANGUAGE_IMPLEMENTATION_VERSION_ID
-CREATE OR REPLACE FUNCTION public.get_language_implementation_version_id(
- language citext
- , language_implementation_version citext DEFAULT ''
-)
-RETURNS integer AS
-$$
- DECLARE
- language_id integer;
- result integer;
- BEGIN
- SELECT public.get_benchmark_language_id($1) INTO language_id;
-
- SELECT language_implementation_version_id INTO result FROM public.language_implementation_version AS lv
- WHERE lv.benchmark_language_id = language_id
- AND lv.language_implementation_version = COALESCE($2, '');
-
- IF result IS NULL THEN
- INSERT INTO
- public.language_implementation_version(benchmark_language_id, language_implementation_version)
- VALUES (language_id, COALESCE($2, ''))
- RETURNING language_implementation_version_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_language_implementation_version_id(citext, citext)
-IS 'Insert or select language and version data, '
- 'returning "language_implementation_version.language_implementation_version_id".';
-
-CREATE OR REPLACE FUNCTION public.get_language_implementation_version_id(
- -- overload for when language_id is known
- language_id integer
- , language_implementation_version citext DEFAULT ''
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT language_implementation_version_id INTO result FROM public.language_implementation_version AS lv
- WHERE lv.benchmark_language_id = language_id
- AND lv.language_implementation_version = COALESCE($2, '');
-
- IF result IS NULL THEN
- INSERT INTO
- public.language_implementation_version(benchmark_language_id, language_implementation_version)
- VALUES (language_id, COALESCE($2, ''))
- RETURNING language_implementation_version_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-
--- GET_LANGUAGE_DEPENDENCY_LOOKUP_ID
-CREATE OR REPLACE FUNCTION public.get_dependencies_id(
- dependencies jsonb DEFAULT '{}'::jsonb
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT dependencies_id INTO result
- FROM public.dependencies AS ldl
- WHERE ldl.dependencies = COALESCE($1, '{}'::jsonb);
-
- IF result IS NULL THEN
- INSERT INTO
- public.dependencies(dependencies)
- VALUES (COALESCE($1, '{}'::jsonb))
- RETURNING dependencies_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_dependencies_id(jsonb)
-IS 'Insert or select dependencies, returning "dependencies.dependencies_id".';
-
--- GET_ENVIRONMENT_ID
-CREATE OR REPLACE FUNCTION public.get_environment_id(
- language citext,
- language_implementation_version citext DEFAULT '',
- dependencies jsonb DEFAULT '{}'::jsonb
-)
-RETURNS integer AS
-$$
- DECLARE
- found_language_id integer;
- found_version_id integer;
- found_dependencies_id integer;
- result integer;
- BEGIN
- SELECT public.get_benchmark_language_id($1) INTO found_language_id;
- SELECT
- public.get_language_implementation_version_id(found_language_id, $2)
- INTO found_version_id;
- SELECT
- public.get_dependencies_id ($3)
- INTO found_dependencies_id;
-
- SELECT environment_id INTO result FROM public.environment AS e
- WHERE e.benchmark_language_id = found_language_id
- AND e.language_implementation_version_id = found_version_id
- AND e.dependencies_id = found_dependencies_id;
-
- IF result IS NULL THEN
- INSERT INTO
- public.environment(
- benchmark_language_id
- , language_implementation_version_id
- , dependencies_id
- )
- VALUES (found_language_id, found_version_id, found_dependencies_id)
- RETURNING environment_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_environment_id(citext, citext, jsonb)
-IS 'Insert or select language, language version, and dependencies, '
- 'returning "environment.environment_id".';
-
--- GET_BENCHMARK_TYPE_ID (full signature)
-CREATE OR REPLACE FUNCTION public.get_benchmark_type_id(
- benchmark_type citext
- , lessisbetter boolean
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT benchmark_type_id INTO result FROM public.benchmark_type AS bt
- WHERE bt.benchmark_type = $1
- AND bt.lessisbetter = $2;
-
- IF result IS NULL THEN
- INSERT INTO public.benchmark_type(benchmark_type, lessisbetter)
- VALUES($1, $2)
- RETURNING benchmark_type_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_benchmark_type_id(citext, boolean)
-IS 'Insert or select benchmark type and lessisbetter, '
- 'returning "benchmark_type.benchmark_type_id".';
-
--- GET_BENCHMARK_TYPE_ID (given unique benchmark_type string only)
-CREATE OR REPLACE FUNCTION public.get_benchmark_type_id(
- benchmark_type citext
-)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- SELECT benchmark_type_id INTO result FROM public.benchmark_type AS bt
- WHERE bt.benchmark_type = $1;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_benchmark_type_id(citext)
-IS 'Select benchmark_type_id given benchmark type (e.g. ''time''), '
- 'returning "benchmark_type.benchmark_type_id".';
-
--- GET_UNIT_ID (full signature)
-CREATE OR REPLACE FUNCTION public.get_unit_id(
- benchmark_type citext
- , units citext
- , lessisbetter boolean DEFAULT NULL
-)
-RETURNS integer AS
-$$
- DECLARE
- found_benchmark_type_id integer;
- result integer;
- BEGIN
-
- IF ($3 IS NOT NULL) -- if lessisbetter is not null
- THEN
- SELECT public.get_benchmark_type_id($1, $3)
- INTO found_benchmark_type_id;
- ELSE
- SELECT public.get_benchmark_type_id($1)
- INTO found_benchmark_type_id;
- END IF;
-
- SELECT unit_id INTO result FROM public.unit AS u
- WHERE u.benchmark_type_id = found_benchmark_type_id
- AND u.units = $2;
-
- IF result IS NULL THEN
- INSERT INTO public.unit(benchmark_type_id, units)
- VALUES(found_benchmark_type_id, $2)
- RETURNING unit_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_unit_id(citext, citext, boolean)
-IS 'Insert or select benchmark type (e.g. ''time''), '
- 'units string (e.g. ''miliseconds''), '
- 'and "lessisbetter" (true if smaller benchmark values are better), '
- 'returning "unit.unit_id".';
-
--- GET_UNIT_ID (given unique units string only)
-CREATE OR REPLACE FUNCTION public.get_unit_id(units citext)
-RETURNS integer AS
-$$
- SELECT unit_id FROM public.unit AS u
- WHERE u.units = units;
-$$
-LANGUAGE sql STABLE;
-COMMENT ON FUNCTION public.get_unit_id(citext)
-IS 'Select unit_id given unit name, returning "unit.unit_id".';
-
--- GET_BENCHMARK_ID (full signature)
-CREATE OR REPLACE FUNCTION public.get_benchmark_id(
- benchmark_language citext
- , benchmark_name citext
- , parameter_names text[]
- , benchmark_description text
- , benchmark_version citext
- , benchmark_type citext
- , units citext
- , lessisbetter boolean
-)
-RETURNS integer AS
-$$
- DECLARE
- found_benchmark_language_id integer;
- found_unit_id integer;
- result integer;
- BEGIN
- SELECT public.get_benchmark_language_id(
- benchmark_language
- ) INTO found_benchmark_language_id;
-
- SELECT public.get_unit_id(
- benchmark_type
- , units
- , lessisbetter
- ) INTO found_unit_id;
-
- SELECT benchmark_id INTO result FROM public.benchmark AS b
- WHERE b.benchmark_language_id = found_benchmark_language_id
- AND b.benchmark_name = $2
- -- handle nullable "parameter_names"
- AND b.parameter_names IS NOT DISTINCT FROM $3
- AND b.benchmark_description = $4
- AND b.benchmark_version = $5
- AND b.unit_id = found_unit_id;
-
- IF result IS NULL THEN
- INSERT INTO public.benchmark(
- benchmark_language_id
- , benchmark_name
- , parameter_names
- , benchmark_description
- , benchmark_version
- , unit_id
- )
- VALUES (found_benchmark_language_id, $2, $3, $4, $5, found_unit_id)
- RETURNING benchmark_id INTO result;
- END IF;
-
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.get_benchmark_id(
- citext
- , citext
- , text[]
- , text
- , citext
- , citext
- , citext
- , boolean
-)
-IS 'Insert/select benchmark given data, returning "benchmark.benchmark_id".';
-
--- GET_BENCHMARK_ID (by unique columns)
-CREATE OR REPLACE FUNCTION public.get_benchmark_id(
- benchmark_language citext
- , benchmark_name citext
- , benchmark_version citext
-)
-RETURNS integer AS
-$$
- WITH language AS (
- SELECT public.get_benchmark_language_id(benchmark_language) AS id
- )
- SELECT b.benchmark_id
- FROM public.benchmark AS b
- JOIN language ON b.benchmark_language_id = language.id
- WHERE b.benchmark_name = benchmark_name
- AND benchmark_version = benchmark_version
-$$
-LANGUAGE sql STABLE;
-COMMENT ON FUNCTION public.get_benchmark_id(citext, citext, citext)
-IS 'Select existing benchmark given unique columns, '
- 'returning "benchmark.benchmark_id".';
diff --git a/dev/benchmarking/ddl/3_01_functions_triggers.sql b/dev/benchmarking/ddl/3_01_functions_triggers.sql
deleted file mode 100644
index b6ce474..0000000
--- a/dev/benchmarking/ddl/3_01_functions_triggers.sql
+++ /dev/null
@@ -1,574 +0,0 @@
-/*
- 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.
-*/
-
-
--------------------------- TRIGGER FUNCTIONS --------------------------
--- Views that do not select from a single table or view are not
--- automatically updatable. These trigger functions are intended
--- to be run instead of INSERT into the complicated views.
-
-
--- LANGUAGE_IMPLEMENTATION_VERSION_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.language_implementation_version_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- language_id integer;
- result integer;
- BEGIN
- IF NEW.benchmark_language IS NULL THEN
- RAISE EXCEPTION 'Column "benchmark_language" cannot be NULL.';
- END IF;
- IF NEW.language_implementation_version IS NULL THEN
- RAISE EXCEPTION
- 'Column "language_implementation_version" cannot be NULL (use '''' instead).';
- END IF;
-
- SELECT public.get_benchmark_language_id(NEW.benchmark_language)
- INTO language_id;
-
- SELECT language_implementation_version_id INTO result FROM public.language_implementation_version AS lv
- WHERE lv.benchmark_language_id = language_id
- AND lv.language_implementation_version = NEW.language_implementation_version;
-
- IF result IS NOT NULL THEN
- -- row already exists
- RETURN NULL;
- ELSE
- INSERT INTO
- public.language_implementation_version(
- benchmark_language_id
- , language_implementation_version
- )
- VALUES (language_id, NEW.language_implementation_version)
- RETURNING language_implementation_version_id INTO NEW.language_implementation_version_id;
- END IF;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
-
--- ENVIRONMENT_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.environment_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- found_language_id integer;
- found_version_id integer;
- found_dependencies_id integer;
- result integer;
- BEGIN
- IF NEW.benchmark_language IS NULL
- THEN
- RAISE EXCEPTION 'Column "benchmark_language" cannot be NULL.';
- END IF;
- IF NEW.language_implementation_version IS NULL THEN
- RAISE EXCEPTION
- 'Column "language_implementation_version" cannot be NULL (use '''' instead).';
- END IF;
-
- SELECT public.get_benchmark_language_id(NEW.benchmark_language)
- INTO found_language_id;
-
- SELECT public.get_language_implementation_version_id(
- found_language_id
- , NEW.language_implementation_version
- )
- INTO found_version_id;
-
- SELECT public.get_dependencies_id(NEW.dependencies)
- INTO found_dependencies_id;
-
- SELECT environment_id INTO result FROM public.environment AS e
- WHERE e.benchmark_language_id = found_language_id
- AND e.language_implementation_version_id = found_version_id
- AND e.dependencies_id = found_dependencies_id;
-
- IF result IS NOT NULL THEN
- -- row already exists
- RETURN NULL;
- ELSE
- INSERT INTO
- public.environment(
- benchmark_language_id
- , language_implementation_version_id
- , dependencies_id
- )
- VALUES (found_language_id, found_version_id, found_dependencies_id)
- RETURNING environment_id INTO NEW.environment_id;
- END IF;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
-
--- MACHINE_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.machine_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- found_cpu_id integer;
- found_gpu_id integer;
- found_os_id integer;
- result integer;
- BEGIN
- IF (
- NEW.machine_name IS NULL
- OR NEW.memory_bytes IS NULL
- OR NEW.cpu_model_name IS NULL
- OR NEW.cpu_core_count IS NULL
- OR NEW.cpu_thread_count IS NULL
- OR NEW.cpu_frequency_max_Hz IS NULL
- OR NEW.cpu_frequency_min_Hz IS NULL
- OR NEW.cpu_L1d_cache_bytes IS NULL
- OR NEW.cpu_L1i_cache_bytes IS NULL
- OR NEW.cpu_L2_cache_bytes IS NULL
- OR NEW.cpu_L3_cache_bytes IS NULL
- OR NEW.os_name IS NULL
- OR NEW.architecture_name IS NULL
- )
- THEN
- RAISE EXCEPTION 'None of the columns in "machine_view" can be NULL. '
- 'all columns in table "gpu" will default to the empty string '''', '
- 'as will blank "os.kernel_name". This is to allow uniqueness '
- 'constraints to work. Thank you!.';
- END IF;
-
- SELECT public.get_cpu_id(
- NEW.cpu_model_name
- , NEW.cpu_core_count
- , NEW.cpu_thread_count
- , NEW.cpu_frequency_max_Hz
- , NEW.cpu_frequency_min_Hz
- , NEW.cpu_L1d_cache_bytes
- , NEW.cpu_L1i_cache_bytes
- , NEW.cpu_L2_cache_bytes
- , NEW.cpu_L3_cache_bytes
- ) INTO found_cpu_id;
-
- SELECT public.get_gpu_id(
- NEW.gpu_information
- , NEW.gpu_part_number
- , NEW.gpu_product_name
- ) INTO found_gpu_id;
-
- SELECT public.get_os_id(
- NEW.os_name
- , NEW.architecture_name
- , NEW.kernel_name
- ) INTO found_os_id;
-
- SELECT machine_id INTO result FROM public.machine AS m
- WHERE m.os_id = found_os_id
- AND m.cpu_id = found_cpu_id
- AND m.gpu_id = found_gpu_id
- AND m.machine_name = NEW.machine_name
- AND m.memory_bytes = NEW.memory_bytes
- AND m.cpu_actual_frequency_Hz = NEW.cpu_actual_frequency_Hz;
-
- IF result IS NOT NULL THEN
- -- row already exists
- RETURN NULL;
- ELSE
- INSERT INTO public.machine(
- os_id
- , cpu_id
- , gpu_id
- , machine_name
- , mac_address
- , memory_bytes
- , cpu_actual_frequency_Hz
- , machine_other_attributes
- )
- VALUES (
- found_os_id
- , found_cpu_id
- , found_gpu_id
- , NEW.machine_name
- , NEW.mac_address
- , NEW.memory_bytes
- , NEW.cpu_actual_frequency_Hz
- , NEW.machine_other_attributes
- )
- RETURNING machine_id INTO NEW.machine_id;
- END IF;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
-
--- UNIT_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.unit_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- found_benchmark_type_id integer;
- result integer;
- BEGIN
- IF (NEW.benchmark_type IS NULL OR NEW.units IS NULL)
- THEN
- RAISE EXCEPTION E'"benchmark_type" and "units" cannot be NULL.\n'
- 'Further, if the "benchmark_type" has never been defined, '
- '"lessisbetter" must be defined or there will be an error.';
- END IF;
-
- -- It's OK for "lessisbetter" = NULL if "benchmark_type" already exists.
- SELECT public.get_benchmark_type_id(NEW.benchmark_type, NEW.lessisbetter)
- INTO found_benchmark_type_id;
-
- SELECT unit_id INTO result FROM public.unit AS u
- WHERE u.benchmark_type_id = found_benchmark_type_id
- AND u.units = NEW.units;
-
- IF result IS NOT NULL THEN
- -- row already exists
- RETURN NULL;
- ELSE
- INSERT INTO public.unit (
- benchmark_type_id
- , units
- )
- VALUES (
- found_benchmark_type_id
- , NEW.units
- )
- RETURNING unit_id INTO NEW.unit_id;
- END IF;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
-
--- BENCHMARK_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.benchmark_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- found_benchmark_language_id integer;
- found_units_id integer;
- result integer;
- BEGIN
- IF (
- NEW.benchmark_name IS NULL
- OR NEW.benchmark_version IS NULL
- OR NEW.benchmark_language IS NULL
- OR NEW.benchmark_type IS NULL
- OR NEW.benchmark_description IS NULL
- OR NEW.units IS NULL
- )
- THEN
- RAISE EXCEPTION 'The only nullable column in this view is '
- '"benchmark.parameter_names".';
- END IF;
-
- SELECT public.get_benchmark_language_id(
- NEW.benchmark_language
- ) INTO found_benchmark_language_id;
-
- SELECT public.get_unit_id(NEW.units) INTO found_units_id;
-
- SELECT benchmark_id INTO result FROM public.benchmark AS b
- WHERE b.benchmark_language_id = found_benchmark_language_id
- AND b.benchmark_name = NEW.benchmark_name
- -- handle nullable "parameter_names"
- AND b.parameter_names IS NOT DISTINCT FROM NEW.parameter_names
- AND b.benchmark_description = NEW.benchmark_description
- AND b.benchmark_version = NEW.benchmark_version
- AND b.unit_id = found_units_id;
-
- IF result IS NOT NULL THEN
- -- row already exists
- RETURN NULL;
- ELSE
- INSERT INTO public.benchmark(
- benchmark_language_id
- , benchmark_name
- , parameter_names
- , benchmark_description
- , benchmark_version
- , unit_id
- )
- VALUES (
- found_benchmark_language_id
- , NEW.benchmark_name
- , NEW.parameter_names
- , NEW.benchmark_description
- , NEW.benchmark_version
- , found_units_id
- )
- RETURNING benchmark_id INTO NEW.benchmark_id;
- END IF;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
-
--- BENCHMARK_RUN_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.benchmark_run_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- found_benchmark_id integer;
- found_benchmark_language_id integer;
- found_machine_id integer;
- found_environment_id integer;
- found_language_implementation_version_id integer;
- BEGIN
- IF (
- NEW.benchmark_name IS NULL
- OR NEW.benchmark_version IS NULL
- OR NEW.benchmark_language IS NULL
- OR NEW.value IS NULL
- OR NEW.run_timestamp IS NULL
- OR NEW.git_commit_timestamp IS NULL
- OR NEW.git_hash IS NULL
- OR NEW.language_implementation_version IS NULL
- OR NEW.mac_address IS NULL
- )
- THEN
- RAISE EXCEPTION 'Only the following columns can be NULL: '
- '"parameter_names", "val_min", "val_q1", "val_q3", "val_max".';
- END IF;
-
- SELECT public.get_benchmark_id(
- NEW.benchmark_language
- , NEW.benchmark_name
- , NEW.benchmark_version
- ) INTO found_benchmark_id;
-
- SELECT public.get_benchmark_language_id(
- NEW.benchmark_language
- ) INTO found_benchmark_language_id;
-
- SELECT public.get_machine_id(
- NEW.mac_address
- ) INTO found_machine_id;
-
- SELECT public.get_environment_id(
- NEW.benchmark_language
- , NEW.language_implementation_version
- , NEW.dependencies
- ) INTO found_environment_id;
-
- SELECT public.get_language_implementation_version_id(
- found_benchmark_language_id,
- NEW.language_implementation_version
- ) INTO found_language_implementation_version_id;
-
- INSERT INTO public.benchmark_run (
- parameter_values
- , value
- , git_commit_timestamp
- , git_hash
- , val_min
- , val_q1
- , val_q3
- , val_max
- , std_dev
- , n_obs
- , run_timestamp
- , run_metadata
- , run_notes
- , machine_id
- , benchmark_language_id
- , language_implementation_version_id
- , environment_id
- , benchmark_id
- )
- VALUES (
- COALESCE(NEW.parameter_values, '{}'::jsonb)
- , NEW.value
- , NEW.git_commit_timestamp
- , NEW.git_hash
- , NEW.val_min
- , NEW.val_q1
- , NEW.val_q3
- , NEW.val_max
- , NEW.std_dev
- , NEW.n_obs
- , NEW.run_timestamp
- , NEW.run_metadata
- , NEW.run_notes
- , found_machine_id
- , found_benchmark_language_id
- , found_language_implementation_version_id
- , found_environment_id
- , found_benchmark_id
- ) returning benchmark_run_id INTO NEW.benchmark_run_id;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
-
--- FULL_BENCHMARK_RUN_VIEW_INSERT_ROW
-CREATE OR REPLACE FUNCTION public.full_benchmark_run_view_insert_row()
-RETURNS trigger AS
-$$
- DECLARE
- found_benchmark_id integer;
- found_benchmark_language_id integer;
- found_machine_id integer;
- found_environment_id integer;
- found_language_implementation_version_id integer;
- BEGIN
- IF (
- NEW.value IS NULL
- OR NEW.git_hash IS NULL
- OR NEW.git_commit_timestamp IS NULL
- OR NEW.run_timestamp IS NULL
- -- benchmark
- OR NEW.benchmark_name IS NULL
- OR NEW.benchmark_description IS NULL
- OR NEW.benchmark_version IS NULL
- OR NEW.benchmark_language IS NULL
- -- unit
- OR NEW.benchmark_type IS NULL
- OR NEW.units IS NULL
- OR NEW.lessisbetter IS NULL
- -- machine
- OR NEW.machine_name IS NULL
- OR NEW.memory_bytes IS NULL
- OR NEW.cpu_model_name IS NULL
- OR NEW.cpu_core_count IS NULL
- OR NEW.os_name IS NULL
- OR NEW.architecture_name IS NULL
- OR NEW.kernel_name IS NULL
- OR NEW.cpu_model_name IS NULL
- OR NEW.cpu_core_count IS NULL
- OR NEW.cpu_thread_count IS NULL
- OR NEW.cpu_frequency_max_Hz IS NULL
- OR NEW.cpu_frequency_min_Hz IS NULL
- OR NEW.cpu_L1d_cache_bytes IS NULL
- OR NEW.cpu_L1i_cache_bytes IS NULL
- OR NEW.cpu_L2_cache_bytes IS NULL
- OR NEW.cpu_L3_cache_bytes IS NULL
- )
- THEN
- RAISE EXCEPTION 'Only the following columns can be NULL: '
- '"machine_other_attributes", "parameter_names", "val_min", '
- '"val_q1", "val_q3", "val_max", "run_metadata", "run_notes". '
- 'If "gpu_information", "gpu_part_number", "gpu_product_name", or '
- '"kernel_name" are null, they will be silently turned into an '
- 'empty string ('''').';
- END IF;
-
- SELECT public.get_benchmark_id(
- NEW.benchmark_language
- , NEW.benchmark_name
- , NEW.parameter_names
- , NEW.benchmark_description
- , NEW.benchmark_version
- , NEW.benchmark_type
- , NEW.units
- , NEW.lessisbetter
- ) INTO found_benchmark_id;
-
- SELECT public.get_benchmark_language_id(
- NEW.benchmark_language
- ) INTO found_benchmark_language_id;
-
- SELECT public.get_machine_id(
- NEW.mac_address
- , NEW.machine_name
- , NEW.memory_bytes
- , NEW.cpu_actual_frequency_Hz
- -- os
- , NEW.os_name
- , NEW.architecture_name
- , NEW.kernel_name
- -- cpu
- , NEW.cpu_model_name
- , NEW.cpu_core_count
- , NEW.cpu_thread_count
- , NEW.cpu_frequency_max_Hz
- , NEW.cpu_frequency_min_Hz
- , NEW.cpu_L1d_cache_bytes
- , NEW.cpu_L1i_cache_bytes
- , NEW.cpu_L2_cache_bytes
- , NEW.cpu_L3_cache_bytes
- -- gpu
- , NEW.gpu_information
- , NEW.gpu_part_number
- , NEW.gpu_product_name
- -- nullable machine attributes
- , NEW.machine_other_attributes
- ) INTO found_machine_id;
-
- SELECT public.get_environment_id(
- NEW.benchmark_language
- , NEW.language_implementation_version
- , NEW.dependencies
- ) INTO found_environment_id;
-
- SELECT public.get_language_implementation_version_id(
- found_benchmark_language_id,
- NEW.language_implementation_version
- ) INTO found_language_implementation_version_id;
-
- INSERT INTO public.benchmark_run (
- parameter_values
- , value
- , git_commit_timestamp
- , git_hash
- , val_min
- , val_q1
- , val_q3
- , val_max
- , std_dev
- , n_obs
- , run_timestamp
- , run_metadata
- , run_notes
- , machine_id
- , benchmark_language_id
- , language_implementation_version_id
- , environment_id
- , benchmark_id
- )
- VALUES (
- NEW.parameter_values
- , NEW.value
- , NEW.git_commit_timestamp
- , NEW.git_hash
- , NEW.val_min
- , NEW.val_q1
- , NEW.val_q3
- , NEW.val_max
- , NEW.std_dev
- , NEW.n_obs
- , NEW.run_timestamp
- , NEW.run_metadata
- , NEW.run_notes
- , found_machine_id
- , found_benchmark_language_id
- , found_language_implementation_version_id
- , found_environment_id
- , found_benchmark_id
- ) returning benchmark_run_id INTO NEW.benchmark_run_id;
-
- RETURN NEW;
- END
-$$
-LANGUAGE plpgsql;
diff --git a/dev/benchmarking/ddl/3_02_functions_ingestion.sql b/dev/benchmarking/ddl/3_02_functions_ingestion.sql
deleted file mode 100644
index 000c61d..0000000
--- a/dev/benchmarking/ddl/3_02_functions_ingestion.sql
+++ /dev/null
@@ -1,323 +0,0 @@
-/*
- 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.
-*/
-
-
--------------------------- IMPORT HELPERS --------------------------
--- Load from JSON (from https://stackoverflow.com/a/48396608)
--- How to use it in the psql client:
--- \set content `cat /examples/machine.json`
--- select ingest_machine(:'content'::jsonb);
--- INGEST_MACHINE_VIEW
-CREATE OR REPLACE FUNCTION public.ingest_machine_view(from_jsonb jsonb)
-RETURNS integer AS
-$$
- DECLARE
- result integer;
- BEGIN
- INSERT INTO public.machine_view
- SELECT * FROM jsonb_populate_record(null::public.machine_view, from_jsonb)
- RETURNING machine_id INTO result;
- RETURN result;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.ingest_machine_view(jsonb) IS
- E'The argument is a JSON object. NOTE: key names must be entirely\n'
- 'lowercase, or the insert will fail. Extra key-value pairs are ignored.\n'
- 'Example::\n\n'
- ' {\n'
- ' "mac_address": "0a:00:2d:01:02:03",\n'
- ' "machine_name": "Yet-Another-Machine-Name",\n'
- ' "memory_bytes": 8589934592,\n'
- ' "cpu_actual_frequency_hz": 2300000000,\n'
- ' "os_name": "OSX",\n'
- ' "architecture_name": "x86_64",\n'
- ' "kernel_name": "18.2.0",\n'
- ' "cpu_model_name": "Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz",\n'
- ' "cpu_core_count": 2,\n'
- ' "cpu_thread_count": 4,\n'
- ' "cpu_frequency_max_hz": 2300000000,\n'
- ' "cpu_frequency_min_hz": 2300000000,\n'
- ' "cpu_l1d_cache_bytes": 32768,\n'
- ' "cpu_l1i_cache_bytes": 32768,\n'
- ' "cpu_l2_cache_bytes": 262144,\n'
- ' "cpu_l3_cache_bytes": 4194304,\n'
- ' "machine_other_attributes": {"just": "an example"},\n'
- ' "gpu_information": "",\n'
- ' "gpu_part_number": "",\n'
- ' "gpu_product_name": ""\n'
- ' }\n\n'
- 'To identify which columns in "machine_view" are required,\n'
- 'please see the view documentation in :ref:`benchmark-data-model`.\n';
-
--- INGEST_BENCHMARK_VIEW
-CREATE OR REPLACE FUNCTION public.ingest_benchmark_view(from_jsonb jsonb)
-RETURNS setof integer AS
-$$
- BEGIN
- RETURN QUERY
- INSERT INTO public.benchmark_view
- SELECT * FROM jsonb_populate_recordset(
- null::public.benchmark_view
- , from_jsonb
- )
- RETURNING benchmark_id;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.ingest_benchmark_view(jsonb) IS
- E'The argument is a JSON object. NOTE: key names must be entirely\n'
- 'lowercase, or the insert will fail. Extra key-value pairs are ignored.\n'
- 'Example::\n\n'
- ' [\n'
- ' {\n'
- ' "benchmark_name": "Benchmark 1",\n'
- ' "parameter_names": ["arg0", "arg1", "arg2"],\n'
- ' "benchmark_description": "First benchmark",\n'
- ' "benchmark_type": "Time",\n'
- ' "units": "miliseconds",\n'
- ' "lessisbetter": true,\n'
- ' "benchmark_version": "second version",\n'
- ' "benchmark_language": "Python"\n'
- ' },\n'
- ' {\n'
- ' "benchmark_name": "Benchmark 2",\n'
- ' "parameter_names": ["arg0", "arg1"],\n'
- ' "benchmark_description": "Description 2.",\n'
- ' "benchmark_type": "Time",\n'
- ' "units": "nanoseconds",\n'
- ' "lessisbetter": true,\n'
- ' "benchmark_version": "second version",\n'
- ' "benchmark_language": "Python"\n'
- ' }\n'
- ' ]\n\n'
- 'To identify which columns in "benchmark_view" are required,\n'
- 'please see the view documentation in :ref:`benchmark-data-model`.\n';
-
--- INGEST_BENCHMARK_RUN_VIEW
-CREATE OR REPLACE FUNCTION public.ingest_benchmark_run_view(from_jsonb jsonb)
-RETURNS setof bigint AS
-$$
- BEGIN
- RETURN QUERY
- INSERT INTO public.benchmark_run_view
- SELECT * FROM
- jsonb_populate_recordset(null::public.benchmark_run_view, from_jsonb)
- RETURNING benchmark_run_id;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.ingest_benchmark_run_view(jsonb) IS
- E'The argument is a JSON object. NOTE: key names must be entirely\n'
- 'lowercase, or the insert will fail. Extra key-value pairs are ignored.\n'
- 'Example::\n\n'
- ' [\n'
- ' {\n'
- ' "benchmark_name": "Benchmark 2",\n'
- ' "benchmark_version": "version 0",\n'
- ' "parameter_values": {"arg0": 100, "arg1": 5},\n'
- ' "value": 2.5,\n'
- ' "git_commit_timestamp": "2019-02-08 22:35:53 +0100",\n'
- ' "git_hash": "324d3cf198444a",\n'
- ' "val_min": 1,\n'
- ' "val_q1": 2,\n'
- ' "val_q3": 3,\n'
- ' "val_max": 4,\n'
- ' "std_dev": 1.41,\n'
- ' "n_obs": 8,\n'
- ' "run_timestamp": "2019-02-14 03:00:05 -0600",\n'
- ' "mac_address": "08:00:2b:01:02:03",\n'
- ' "benchmark_language": "Python",\n'
- ' "language_implementation_version": "CPython 2.7",\n'
- ' "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"}\n'
- ' },\n'
- ' {\n'
- ' "benchmark_name": "Benchmark 2",\n'
- ' "benchmark_version": "version 0",\n'
- ' "parameter_values": {"arg0": 1000, "arg1": 5},\n'
- ' "value": 5,\n'
- ' "git_commit_timestamp": "2019-02-08 22:35:53 +0100",\n'
- ' "git_hash": "324d3cf198444a",\n'
- ' "std_dev": 3.14,\n'
- ' "n_obs": 8,\n'
- ' "run_timestamp": "2019-02-14 03:00:10 -0600",\n'
- ' "mac_address": "08:00:2b:01:02:03",\n'
- ' "benchmark_language": "Python",\n'
- ' "language_implementation_version": "CPython 2.7",\n'
- ' "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"}\n'
- ' }\n'
- ' ]\n'
- 'To identify which columns in "benchmark_run_view" are required,\n'
- 'please see the view documentation in :ref:`benchmark-data-model`.\n';
-
--- INGEST_BENCHMARK_RUNS_WITH_CONTEXT
-CREATE OR REPLACE FUNCTION public.ingest_benchmark_runs_with_context(from_jsonb jsonb)
-RETURNS setof bigint AS
-$$
- DECLARE
- context_jsonb jsonb;
- found_environment_id integer;
- found_machine_id integer;
- BEGIN
- SELECT from_jsonb -> 'context' INTO context_jsonb;
-
- SELECT public.get_machine_id((context_jsonb ->> 'mac_address')::macaddr)
- INTO found_machine_id;
-
- SELECT get_environment_id(
- (context_jsonb ->> 'benchmark_language')::citext
- , (context_jsonb ->> 'language_implementation_version')::citext
- , context_jsonb -> 'dependencies'
- ) INTO found_environment_id;
-
- RETURN QUERY
- WITH run_datum AS (
- SELECT *
- FROM jsonb_to_recordset(from_jsonb -> 'benchmarks')
- AS x(
- benchmark_name citext
- , parameter_values jsonb
- , value numeric
- , val_min numeric
- , val_q1 numeric
- , val_q3 numeric
- , val_max numeric
- , std_dev numeric
- , n_obs integer
- , run_timestamp timestamp (0) with time zone
- , run_metadata jsonb
- , run_notes text
- )
- ), benchmark_name_and_id AS (
- SELECT
- key AS benchmark_name
- , public.get_benchmark_id(
- (context_jsonb ->> 'benchmark_language')::citext
- , key::citext -- benchmark_name
- , value::citext -- benchmark_version
- ) AS benchmark_id
- FROM jsonb_each_text(from_jsonb -> 'benchmark_version')
- )
- INSERT INTO public.benchmark_run (
- benchmark_id
- -- run_datum
- , parameter_values
- , value
- , val_min
- , val_q1
- , val_q3
- , val_max
- , std_dev
- , n_obs
- , run_metadata
- , run_notes
- -- additional context information
- , git_commit_timestamp
- , git_hash
- , run_timestamp
- -- machine
- , machine_id
- -- environment
- , environment_id
- , language_implementation_version_id
- , benchmark_language_id
- )
- SELECT
- b.benchmark_id
- -- run_datum
- , run_datum.parameter_values
- , run_datum.value
- , run_datum.val_min
- , run_datum.val_q1
- , run_datum.val_q3
- , run_datum.val_max
- , run_datum.std_dev
- , run_datum.n_obs
- , run_datum.run_metadata
- , run_datum.run_notes
- -- additional context information
- , (context_jsonb ->> 'git_commit_timestamp')::timestamp (0) with time zone
- , context_jsonb ->> 'git_hash'
- , (context_jsonb ->> 'run_timestamp')::timestamp (0) with time zone
- -- machine
- , found_machine_id
- -- environment
- , e.environment_id
- , e.language_implementation_version_id
- , e.benchmark_language_id
- FROM run_datum
- JOIN public.environment AS e
- ON e.environment_id = found_environment_id
- JOIN benchmark_name_and_id AS b
- ON b.benchmark_name = run_datum.benchmark_name
- RETURNING benchmark_run_id;
- END
-$$
-LANGUAGE plpgsql;
-COMMENT ON FUNCTION public.ingest_benchmark_runs_with_context(jsonb) IS
- E'The argument is a JSON object. NOTE: key names must be entirely\n'
- 'lowercase, or the insert will fail. Extra key-value pairs are ignored.\n'
- 'The object contains three key-value pairs::\n\n'
- ' {"context": {\n'
- ' "mac_address": "08:00:2b:01:02:03",\n'
- ' "benchmark_language": "Python",\n'
- ' "language_implementation_version": "CPython 3.6",\n'
- ' "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"},\n'
- ' "git_commit_timestamp": "2019-02-14 22:42:22 +0100",\n'
- ' "git_hash": "123456789abcde",\n'
- ' "run_timestamp": "2019-02-14 03:00:40 -0600",\n'
- ' "extra stuff": "does not hurt anything and will not be added."\n'
- ' },\n'
- ' "benchmark_version": {\n'
- ' "Benchmark Name 1": "Any string can be a version.",\n'
- ' "Benchmark Name 2": "A git hash can be a version.",\n'
- ' "An Unused Benchmark Name": "Will be ignored."\n'
- ' },\n'
- ' "benchmarks": [\n'
- ' {\n'
- ' "benchmark_name": "Benchmark Name 1",\n'
- ' "parameter_values": {"argument1": 1, "argument2": "value2"},\n'
- ' "value": 42,\n'
- ' "val_min": 41.2,\n'
- ' "val_q1": 41.5,\n'
- ' "val_q3": 42.5,\n'
- ' "val_max": 42.8,\n'
- ' "std_dev": 0.5,\n'
- ' "n_obs": 100,\n'
- ' "run_metadata": {"any": "key-value pairs"},\n'
- ' "run_notes": "Any relevant notes."\n'
- ' },\n'
- ' {\n'
- ' "benchmark_name": "Benchmark Name 2",\n'
- ' "parameter_values": {"not nullable": "Use {} if no params."},\n'
- ' "value": 8,\n'
- ' "std_dev": 1,\n'
- ' "n_obs": 2,\n'
- ' }\n'
- ' ]\n'
- ' }\n\n'
- '- The entry for "context" contains the machine, environment, and timestamp\n'
- ' information common to all of the runs\n'
- '- The entry for "benchmark_version" maps benchmark\n'
- ' names to their version strings. (Which can be a git hash,\n'
- ' the entire code string, a number, or any other string of your choice.)\n'
- '- The entry for "benchmarks" is a list of benchmark run data\n'
- ' for the given context and benchmark versions. The first example\n'
- ' benchmark run entry contains all possible values, even\n'
- ' nullable ones, and the second entry omits all nullable values.\n\n';
diff --git a/dev/benchmarking/ddl/3_10_functions_documentation.sql b/dev/benchmarking/ddl/3_10_functions_documentation.sql
deleted file mode 100644
index 6b2a057..0000000
--- a/dev/benchmarking/ddl/3_10_functions_documentation.sql
+++ /dev/null
@@ -1,395 +0,0 @@
-/*
- 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.
-*/
-
-
--- _DOCUMENTATION_INGESTION
-CREATE OR REPLACE FUNCTION public._documentation_ingestion()
-RETURNS text AS
-$$
- WITH ingestion_docs AS (
- SELECT
- proname || E'\n'
- || rpad('', character_length(proname), '-')
- || E'\n\n:code:`'
- || proname || '('
- || string_agg(a.argname || ' ' || typname , ', ')
- || E')`\n\n'
- || description
- || E'\n\n\nback to `Benchmark data model <benchmark-data-model>`_\n'
- AS docs
- FROM pg_catalog.pg_proc
- JOIN pg_catalog.pg_namespace
- ON nspname='public'
- AND pg_namespace.oid = pronamespace
- AND proname LIKE '%ingest%'
- JOIN pg_catalog.pg_description
- ON pg_description.objoid=pg_proc.oid,
- LATERAL unnest(proargnames, proargtypes) AS a(argname, argtype)
- JOIN pg_catalog.pg_type
- ON pg_type.oid = a.argtype
- GROUP BY proname, description
- )
- SELECT
- string_agg(docs, E'\n\n') AS docs
- FROM ingestion_docs;
-$$
-LANGUAGE sql STABLE;
-
--- _DOCUMENTATION_VIEW_DETAILS
-CREATE OR REPLACE FUNCTION public._documentation_view_details(view_name citext)
-RETURNS TABLE(
- column_name name
- , type_name name
- , nullable text
- , default_value text
- , description text
-) AS
-$$
- WITH view_columns AS (
- SELECT
- attname AS column_name
- , attnum AS column_order
- FROM pg_catalog.pg_attribute
- WHERE attrelid=view_name::regclass
- )
- SELECT
- t.column_name
- , type_name
- , coalesce(nullable, '')
- , coalesce(default_value, '')
- , coalesce(description, '')
- FROM public.summarized_tables_view AS t
- JOIN view_columns AS v ON v.column_name = t.column_name
- WHERE t.table_name || '_view' = view_name OR t.column_name NOT LIKE '%_id'
- ORDER BY column_order;
-$$
-LANGUAGE sql STABLE;
-
-
--- _DOCUMENTATION_VIEW_PIECES
-CREATE OR REPLACE FUNCTION public._documentation_view_pieces(view_name citext)
-RETURNS TABLE (rst_formatted text)
-AS
-$$
-DECLARE
- column_length integer;
- type_length integer;
- nullable_length integer;
- default_length integer;
- description_length integer;
- sep text;
- border text;
-BEGIN
-
- -- All of the hard-coded constants here are the string length of the table
- -- column headers: 'Column', 'Type', 'Nullable', 'Default', 'Description'
- SELECT greatest(6, max(character_length(column_name)))
- FROM public._documentation_view_details(view_name) INTO column_length;
-
- SELECT greatest(4, max(character_length(type_name)))
- FROM public._documentation_view_details(view_name) INTO type_length;
-
- SELECT greatest(8, max(character_length(nullable)))
- FROM public._documentation_view_details(view_name) INTO nullable_length;
-
- SELECT greatest(7, max(character_length(default_value)))
- FROM public._documentation_view_details(view_name) INTO default_length;
-
- SELECT greatest(11, max(character_length(description)))
- FROM public._documentation_view_details(view_name) INTO description_length;
-
- SELECT ' ' INTO sep;
-
- SELECT
- concat_ws(sep
- , rpad('', column_length, '=')
- , rpad('', type_length, '=')
- , rpad('', nullable_length, '=')
- , rpad('', default_length, '=')
- , rpad('', description_length, '=')
- )
- INTO border;
-
- RETURN QUERY
- SELECT
- border
- UNION ALL
- SELECT
- concat_ws(sep
- , rpad('Column', column_length, ' ')
- , rpad('Type', type_length, ' ')
- , rpad('Nullable', nullable_length, ' ')
- , rpad('Default', default_length, ' ')
- , rpad('Description', description_length, ' ')
- )
- UNION ALL
- SELECT border
- UNION ALL
- SELECT
- concat_ws(sep
- , rpad(v.column_name, column_length, ' ')
- , rpad(v.type_name, type_length, ' ')
- , rpad(v.nullable, nullable_length, ' ')
- , rpad(v.default_value, default_length, ' ')
- , rpad(v.description, description_length, ' ')
- )
- FROM public._documentation_view_details(view_name) AS v
- UNION ALL
- SELECT border;
-
-END
-$$
-LANGUAGE plpgsql STABLE;
-
-
--- DOCUMENTATION_FOR
-CREATE OR REPLACE FUNCTION public.documentation_for(view_name citext)
-RETURNS text AS
-$$
- DECLARE
- view_description text;
- view_table_markup text;
- BEGIN
- SELECT description FROM pg_catalog.pg_description
- WHERE pg_description.objoid = view_name::regclass
- INTO view_description;
-
- SELECT
- view_name || E'\n' || rpad('', length(view_name), '-') || E'\n\n' ||
- view_description || E'\n\n' ||
- string_agg(rst_formatted, E'\n')
- INTO view_table_markup
- FROM public._documentation_view_pieces(view_name);
-
- RETURN view_table_markup;
- END
-$$
-LANGUAGE plpgsql STABLE;
-COMMENT ON FUNCTION public.documentation_for(citext)
-IS E'Create an ".rst"-formatted table describing a specific view.\n'
- 'Example: SELECT public.documentation_for(''endpoint'');';
-
-
--- DOCUMENTATION
-CREATE OR REPLACE FUNCTION public.documentation(dotfile_name text)
-RETURNS TABLE (full_text text) AS
-$$
- WITH v AS (
- SELECT
- public.documentation_for(relname::citext)
- || E'\n\nback to `Benchmark data model <benchmark-data-model>`_\n'
- AS view_documentation
- FROM pg_catalog.pg_trigger
- JOIN pg_catalog.pg_class ON pg_trigger.tgrelid = pg_class.oid
- WHERE NOT tgisinternal
- )
- SELECT
- E'\n.. _benchmark-data-model:\n\n'
- 'Benchmark data model\n'
- '====================\n\n\n'
- '.. graphviz:: '
- || dotfile_name
- || E'\n\n\n.. _benchmark-ingestion:\n\n'
- 'Benchmark ingestion helper functions\n'
- '====================================\n\n'
- || public._documentation_ingestion()
- || E'\n\n\n.. _benchmark-views:\n\n'
- 'Benchmark views\n'
- '===============\n\n\n'
- || string_agg(v.view_documentation, E'\n')
- FROM v
- GROUP BY True;
-$$
-LANGUAGE sql STABLE;
-COMMENT ON FUNCTION public.documentation(text)
-IS E'Create an ".rst"-formatted file that shows the columns in '
- 'every insertable view in the "public" schema.\n'
- 'The text argument is the name of the generated dotfile to be included.\n'
- 'Example: SELECT public.documentation(''data_model.dot'');';
-
-
--- _DOCUMENTATION_DOTFILE_NODE_FOR
-CREATE OR REPLACE FUNCTION public._documentation_dotfile_node_for(tablename name)
-RETURNS text AS
-$$
-DECLARE
- result text;
-BEGIN
- WITH node AS (
- SELECT
- tablename::text AS lines
- UNION ALL
- SELECT
- E'[label = \n'
- ' <<table border="0" cellborder="1" cellspacing="0" cellpadding="2">'
- UNION ALL
- -- table name
- SELECT
- ' <tr><td border="0"><font point-size="14">'
- || tablename
- || '</font></td></tr>'
- UNION ALL
- -- primary keys
- SELECT
- ' <tr><td port="' || column_name || '"><b>'
- || column_name
- || ' (pk)</b></td></tr>'
- FROM public.summarized_tables_view
- WHERE table_name = tablename
- AND description LIKE '%primary key%'
- UNION ALL
- -- columns
- SELECT
- ' <tr><td>'
- || column_name
- || CASE WHEN description LIKE '%unique' THEN ' (u)' ELSE '' END
- || CASE WHEN nullable <> 'not null' THEN ' (o)' ELSE '' END
- || '</td></tr>'
- FROM public.summarized_tables_view
- WHERE table_name = tablename
- AND (description IS NULL OR description not like '%key%')
- UNION ALL
- -- foreign keys
- SELECT
- ' <tr><td port="' || column_name || '">'
- || column_name
- || CASE WHEN description LIKE '%unique' THEN ' (u)' ELSE '' END
- || ' (fk) </td></tr>'
- FROM public.summarized_tables_view
- WHERE table_name = tablename
- AND description LIKE '%foreign key%'
- AND description NOT LIKE '%primary key%'
- UNION ALL
- SELECT
- E' </table>>\n];'
- )
- SELECT
- string_agg(lines, E'\n')
- INTO result
- FROM node;
-
- RETURN result;
-END
-$$
-LANGUAGE plpgsql STABLE;
-
-
--- _DOCUMENTATION_DOTFILE_EDGES
-CREATE OR REPLACE FUNCTION public._documentation_dotfile_edges()
-RETURNS text AS
-$$
-DECLARE
- result text;
-BEGIN
- WITH relationship AS (
- SELECT
- conrelid AS fk_table_id
- , confrelid AS pk_table_id
- , unnest(conkey) AS fk_colnum
- , unnest(confkey) AS pk_colnum
- FROM pg_catalog.pg_constraint
- WHERE confkey IS NOT NULL
- AND connamespace='public'::regnamespace
- ), all_edges AS (
- SELECT
- fk_tbl.relname || ':' || fk_col.attname
- || ' -> '
- || pk_tbl.relname || ':' || pk_col.attname
- || ';' AS lines
- FROM relationship
- -- foreign key table + column
- JOIN pg_catalog.pg_attribute AS fk_col
- ON fk_col.attrelid = relationship.fk_table_id
- AND fk_col.attnum = relationship.fk_colnum
- JOIN pg_catalog.pg_class AS fk_tbl
- ON fk_tbl.oid = relationship.fk_table_id
- -- primary key table + column
- JOIN pg_catalog.pg_attribute AS pk_col
- ON pk_col.attrelid = relationship.pk_table_id
- AND pk_col.attnum = relationship.pk_colnum
- JOIN pg_catalog.pg_class AS pk_tbl
- ON pk_tbl.oid = relationship.pk_table_id
- )
- SELECT
- string_agg(lines, E'\n')
- INTO result
- FROM all_edges;
-
- RETURN result;
-END
-$$
-LANGUAGE plpgsql STABLE;
-
-
--- DOCUMENTATION_DOTFILE
-CREATE OR REPLACE FUNCTION public.documentation_dotfile()
-RETURNS text AS
-$$
-DECLARE
- schemaname name := 'public';
- result text;
-BEGIN
- WITH file_contents AS (
- SELECT
- E'digraph database {\n concentrate = true;\n'
- ' rankdir = LR;\n'
- ' ratio = ".75";\n'
- ' node [shape = none, fontsize="11", fontname="Helvetica"];\n'
- ' edge [fontsize="8", fontname="Helvetica"];'
- AS lines
- UNION ALL
- SELECT
- E'legend\n[fontsize = "14"\nlabel =\n'
- '<<table border="0" cellpadding="0">\n'
- ' <tr><td align="left"><font point-size="16">Legend</font></td></tr>\n'
- ' <tr><td align="left">pk = primary key</td></tr>\n'
- ' <tr><td align="left">fk = foreign key</td></tr>\n'
- ' <tr><td align="left">u = unique*</td></tr>\n'
- ' <tr><td align="left">o = optional</td></tr>\n'
- ' <tr><td align="left">'
- '* multiple uniques in the same table are a unique group</td></tr>\n'
- '</table>>\n];'
- UNION ALL
- SELECT
- string_agg(
- public._documentation_dotfile_node_for(relname),
- E'\n' -- Forcing the 'env' table to the end makes a better image
- ORDER BY (CASE WHEN relname LIKE 'env%' THEN 'z' ELSE relname END)
- )
- FROM pg_catalog.pg_class
- WHERE relkind='r' AND relnamespace = schemaname::regnamespace
- UNION ALL
- SELECT
- public._documentation_dotfile_edges()
- UNION ALL
- SELECT
- '}'
- )
- SELECT
- string_agg(lines, E'\n') AS dotfile
- INTO result
- FROM file_contents;
- RETURN result;
-END
-$$
-LANGUAGE plpgsql STABLE;
-COMMENT ON FUNCTION public.documentation_dotfile()
-IS E'Create a Graphviz dotfile of the data model: '
- 'every table in the "public" schema.\n'
- 'Example: SELECT public.documentation_dotfile();';
diff --git a/dev/benchmarking/ddl/4_00_triggers.sql b/dev/benchmarking/ddl/4_00_triggers.sql
deleted file mode 100644
index 5fb0e50..0000000
--- a/dev/benchmarking/ddl/4_00_triggers.sql
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- 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.
-*/
-
-
--- LANGUAGE_IMPLEMENTATION_VERSION_VIEW_TRIGGER_INSERT
-CREATE TRIGGER language_implementation_version_view_trigger_insert
- INSTEAD OF INSERT ON public.language_implementation_version_view
- FOR EACH ROW
- EXECUTE FUNCTION public.language_implementation_version_view_insert_row();
-
--- ENVIRONMENT_VIEW_TRIGGER_INSERT
-CREATE TRIGGER environment_view_trigger_insert
- INSTEAD OF INSERT ON public.environment_view
- FOR EACH ROW
- EXECUTE FUNCTION public.environment_view_insert_row();
-
--- MACHINE_VIEW_TRIGGER_INSERT
-CREATE TRIGGER machine_view_trigger_insert
- INSTEAD OF INSERT ON public.machine_view
- FOR EACH ROW
- EXECUTE FUNCTION public.machine_view_insert_row();
-
--- UNIT_VIEW_TRIGGER_INSERT
-CREATE TRIGGER unit_view_trigger_insert
- INSTEAD OF INSERT ON public.unit_view
- FOR EACH ROW
- EXECUTE FUNCTION public.unit_view_insert_row();
-
--- BENCHMARK_VIEW_TRIGGER_INSERT
-CREATE TRIGGER benchmark_view_trigger_insert
- INSTEAD OF INSERT ON public.benchmark_view
- FOR EACH ROW
- EXECUTE FUNCTION public.benchmark_view_insert_row();
-
--- BENCHMARK_RUN_VIEW_TRIGGER_INSERT
-CREATE TRIGGER benchmark_run_view_trigger_insert
- INSTEAD OF INSERT ON public.benchmark_run_view
- FOR EACH ROW
- EXECUTE FUNCTION public.benchmark_run_view_insert_row();
-
--- FULL_BENCHMARK_RUN_VIEW_TRIGGER_INSERT
-CREATE TRIGGER full_benchmark_run_view_trigger_insert
- INSTEAD OF INSERT ON public.full_benchmark_run_view
- FOR EACH ROW
- EXECUTE FUNCTION public.full_benchmark_run_view_insert_row();
diff --git a/dev/benchmarking/ddl/5_00_permissions.sql b/dev/benchmarking/ddl/5_00_permissions.sql
deleted file mode 100644
index dd72c40..0000000
--- a/dev/benchmarking/ddl/5_00_permissions.sql
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- 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.
-*/
----------------------------- ROLES ----------------------------
--- ARROW_WEB
-CREATE ROLE arrow_web login password 'arrow';
-COMMENT ON ROLE arrow_web IS 'Anonymous login user.';
-
--- ARROW_ADMIN
-CREATE ROLE arrow_admin;
-COMMENT ON ROLE arrow_admin
- IS 'Can select, insert, update, and delete on all public tables.';
-
--- ARROW_ANONYMOUS
-CREATE ROLE arrow_anonymous;
-COMMENT ON ROLE arrow_anonymous
- IS 'Can insert and select on all public tables.';
-
-GRANT arrow_anonymous TO arrow_web;
-
-
----------------------------- PRIVILEGES ----------------------------
-GRANT USAGE ON SCHEMA public TO arrow_anonymous, arrow_admin;
-
--- ARROW_ADMIN
-GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO arrow_admin;
-GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public to arrow_admin;
-GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA public
- TO arrow_admin;
-
--- ARROW_ANONYMOUS
-GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO arrow_anonymous;
-GRANT SELECT ON ALL TABLES IN SCHEMA public TO arrow_anonymous;
-GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public to arrow_anonymous;
-GRANT INSERT ON
- public.benchmark
- , public.benchmark_language
- , public.dependencies
- , public.language_implementation_version
- , public.benchmark_run
- , public.benchmark_type
- , public.cpu
- , public.environment
- , public.environment_view
- , public.gpu
- , public.machine
- , public.machine_view
- , public.os
- , public.unit
- --, public.project -- The only disallowed table is `project`.
- , public.benchmark_run_view
- , public.benchmark_view
- , public.environment_view
- , public.full_benchmark_run_view
- , public.language_implementation_version_view
- , public.machine_view
- , public.unit_view
-TO arrow_anonymous;
diff --git a/dev/benchmarking/docker-compose.yml b/dev/benchmarking/docker-compose.yml
deleted file mode 100644
index ca60206..0000000
--- a/dev/benchmarking/docker-compose.yml
+++ /dev/null
@@ -1,43 +0,0 @@
-# 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.
-#
-
-version: '3'
-services:
-
- pg:
- build:
- context: .
- dockerfile: Dockerfile
- restart: always
- ports:
- - '5432:5432'
- environment:
- - POSTGRES_PASSWORD=${PG_PASS}
- - POSTGRES_USER=${PG_USER}
-
- graphile:
- image: graphile/postgraphile
- restart: always
- ports:
- - 5000:5000
- depends_on:
- - pg
- command:
- - --connection
- - postgres://${PG_USER}:${PG_PASS}@pg:5432/${PG_USER}
- - --schema
- - public
- - --watch
diff --git a/dev/benchmarking/examples/benchmark_example.json b/dev/benchmarking/examples/benchmark_example.json
deleted file mode 100644
index d6f58c2..0000000
--- a/dev/benchmarking/examples/benchmark_example.json
+++ /dev/null
@@ -1,32 +0,0 @@
-[
- {
- "benchmark_name": "Benchmark 1",
- "parameter_names": ["arg0", "arg1", "arg2"],
- "benchmark_description": "First benchmark",
- "benchmark_type": "Time",
- "units": "miliseconds",
- "lessisbetter": true,
- "benchmark_version": "second version",
- "benchmark_language": "Python"
- },
- {
- "benchmark_name": "Benchmark 2",
- "parameter_names": ["arg0", "arg1"],
- "benchmark_description": "Description 2.",
- "benchmark_type": "Time",
- "units": "nanoseconds",
- "lessisbetter": true,
- "benchmark_version": "second version",
- "benchmark_language": "Python"
- },
- {
- "benchmark_name": "Benchmark 3",
- "parameter_names": ["arg0"],
- "benchmark_description": "Third benchmark",
- "benchmark_type": "Memory",
- "units": "kilobytes",
- "lessisbetter": true,
- "benchmark_version": "1",
- "benchmark_language": "Python"
- }
-]
diff --git a/dev/benchmarking/examples/benchmark_run_example.csv b/dev/benchmarking/examples/benchmark_run_example.csv
deleted file mode 100644
index eab208a..0000000
--- a/dev/benchmarking/examples/benchmark_run_example.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-benchmark_run_id,benchmark_name,benchmark_version,parameter_values,value,git_commit_timestamp,git_hash,val_min,val_q1,val_q3,val_max,std_dev,n_obs,run_timestamp,run_metadata,run_notes,mac_address,benchmark_language,language_implementation_version,dependencies
-,Benchmark 2,version 0,"{""arg0"": 100, ""arg1"": 5}",2.5,2019-01-31 14:31:10 -0600,8136c46d5c60fb,1,2,3,4,1.41,8,2019-02-14 02:00:00 -0600,,,08:00:2b:01:02:03,Python,CPython 2.7,"{""six"": """", ""numpy"": ""1.14"", ""other_lib"": ""1.0""}"
-,Benchmark 2,version 0,"{""arg0"": 1000, ""arg1"": 5}",5,2019-01-31 14:31:10 -0600,8136c46d5c60fb,2,4,6,8,3.14,8,2019-02-14 02:01:00 -0600,,,08:00:2b:01:02:03,Python,CPython 2.7,"{""six"": """", ""numpy"": ""1.14"", ""other_lib"": ""1.0""}"
-,Benchmark 2,version 0,"{""arg0"": 100, ""arg1"": 5}",2.5,2019-01-31 14:31:10 -0600,8136c46d5c60fb,0.5,1,3,5,3,8,2019-02-14 02:02:00 -0600,,,08:00:2b:01:02:03,Python,CPython 3.6,"{""boost"": ""1.42"", ""numpy"": ""1.15""}"
-,Benchmark 2,version 0,"{""arg0"": 1000, ""arg1"": 5}",3,2019-01-31 14:31:10 -0600,8136c46d5c60fb,2,2.5,4,4.5,1.5,8,2019-02-14 02:03:00 -0600,,,08:00:2b:01:02:03,Python,CPython 3.6,"{""boost"": ""1.42"", ""numpy"": ""1.15""}"
-,Benchmark 2,version 0,"{""arg0"": 1000, ""arg1"": 10}",3,2019-01-31 14:31:10 -0600,8136c46d5c60fb,1,2,4,5,2,8,2019-02-14 02:03:30 -0600,,,08:00:2b:01:02:03,Python,CPython 2.7,"{""six"": """", ""numpy"": ""1.15"", ""other_lib"": ""1.0""}"
diff --git a/dev/benchmarking/examples/benchmark_run_example.json b/dev/benchmarking/examples/benchmark_run_example.json
deleted file mode 100644
index 2ded776..0000000
--- a/dev/benchmarking/examples/benchmark_run_example.json
+++ /dev/null
@@ -1,97 +0,0 @@
-[
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 100, "arg1": 5},
- "value": 2.5,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "val_min": 1,
- "val_q1": 2,
- "val_q3": 3,
- "val_max": 4,
- "std_dev": 1.41,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:05 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"}
- },
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 1000, "arg1": 5},
- "value": 5,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "val_min": 2,
- "val_q1": 4,
- "val_q3": 6,
- "val_max": 8,
- "std_dev": 3.14,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:10 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"}
- },
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 100, "arg1": 5},
- "value": 2.5,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "val_min": 0.5,
- "val_q1": 1,
- "val_q3": 3,
- "val_max": 5,
- "std_dev": 3,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:20 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"boost": "1.42", "numpy": "1.15"}
- },
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 1000, "arg1": 5},
- "value": 3,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "val_min": 2,
- "val_q1": 2.5,
- "val_q3": 4,
- "val_max": 4.5,
- "std_dev": 1.5,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:30 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"boost": "1.42", "numpy": "1.15"}
- },
- {
- "benchmark_name": "Benchmark 2",
- "benchmark_version": "version 0",
- "parameter_values": {"arg0": 1000, "arg1": 10},
- "value": 3,
- "git_commit_timestamp": "2019-02-08 22:35:53 +0100",
- "git_hash": "324d3cf198444a",
- "val_min": 1,
- "val_q1": 2,
- "val_q3": 4,
- "val_max": 5,
- "std_dev": 2,
- "n_obs": 8,
- "run_timestamp": "2019-02-14 03:00:40 -0600",
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"six": "", "numpy": "1.15", "other_lib": "1.0"}
- }
-]
diff --git a/dev/benchmarking/examples/benchmark_with_context_example.json b/dev/benchmarking/examples/benchmark_with_context_example.json
deleted file mode 100644
index f9e6e31..0000000
--- a/dev/benchmarking/examples/benchmark_with_context_example.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "context": {
- "mac_address": "08:00:2b:01:02:03",
- "benchmark_language": "Python",
- "language_implementation_version": "CPython 2.7",
- "dependencies": {"six": "", "numpy": "1.14", "other_lib": "1.0"},
- "git_commit_timestamp": "2019-02-14 22:42:22 +0100",
- "git_hash": "123456789abcde",
- "run_timestamp": "2019-02-25 03:00:40 -0600",
- "Extra stuff": "does not hurt anything and won't be added.",
- "However": "all of the entries above 'Extra stuff' are required."
- },
- "benchmark_version": {
- "Benchmark 2": "version 0",
- "Benchmark 3": "any string is a version. (Benchmark 3 not actually used)"
- },
- "benchmarks": [
- {
- "benchmark_name": "Benchmark 2",
- "parameter_values": {"arg0": 1, "arg1": 5},
- "value": 2.5,
- "val_min": 1,
- "val_q1": 2,
- "val_q3": 3,
- "val_max": 4,
- "std_dev": 1.41,
- "n_obs": 8,
- "run_metadata": {"any": "json object is admissible"},
- "run_notes": "This value is an arbitrary-length string."
- },
- {
- "benchmark_name": "Benchmark 2",
- "parameter_values": {"arg0": 2, "arg1": 5},
- "value": 5,
- "std_dev": 3.14,
- "n_obs": 8
- },
- {
- "benchmark_name": "Benchmark 2",
- "parameter_values": {"arg0": 3, "arg1": 5},
- "value": 2.5,
- "val_min": 0.5,
- "val_q1": 1,
- "val_q3": 3,
- "val_max": 5,
- "std_dev": 3,
- "n_obs": 8,
- "run_notes": "The previous run in this list has the minimal set of keys."
- },
- {
- "benchmark_name": "Benchmark 2",
- "parameter_values": {"arg0": 4, "arg1": 5},
- "value": 3,
- "val_min": 2,
- "val_q1": 2.5,
- "val_q3": 4,
- "val_max": 4.5,
- "std_dev": 1.5,
- "n_obs": 8
- },
- {
- "benchmark_name": "Benchmark 2",
- "parameter_values": {"arg0": 5, "arg1": 5},
- "value": 3,
- "val_min": 1,
- "val_q1": 2,
- "val_q3": 4,
- "val_max": 5,
- "std_dev": 2,
- "n_obs": 8
- }
- ]
-}
diff --git a/dev/benchmarking/examples/example.sql b/dev/benchmarking/examples/example.sql
deleted file mode 100644
index e93269a..0000000
--- a/dev/benchmarking/examples/example.sql
+++ /dev/null
@@ -1,232 +0,0 @@
-/*
- 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.
-*/
-
-
--- Example insert into each of the views:
-INSERT INTO public.project(project_name, project_url, repo_url)
-VALUES (
- 'Apache Arrow'
- , 'https://arrow.apache.org/'
- , 'https://github.com/apache/arrow');
-
-INSERT INTO public.environment_view
- (benchmark_language, language_implementation_version, dependencies)
-VALUES
- ('Python', 'CPython 2.7', '{"six": "", "numpy": "1.14", "other_lib": "1.0"}'),
- ('Python', 'CPython 3.6', '{"boost": "1.42", "numpy": "1.15"}');
-
-INSERT INTO public.dependencies(dependencies)
-VALUES
- ('{"boost": "1.68", "numpy": "1.14"}'),
- ('{"boost": "1.42", "numpy": "1.16"}');
-
-INSERT INTO public.language_implementation_version_view
- (benchmark_language, language_implementation_version)
-VALUES
- ('Python', 'CPython 2.7'),
- ('Python', 'CPython 3.6');
-
-INSERT INTO public.unit_view
- (benchmark_type, units, lessisbetter)
-VALUES
- ('Memory', 'gigabytes', True),
- ('Memory', 'kilobytes', True);
-
-
-\echo 'use \\dv to list the views views';
-\dv
-
-
-SELECT * FROM environment_view;
-SELECT * FROM unit_view;
-
-
-INSERT INTO public.machine_view (
- mac_address
- , machine_name
- , memory_bytes
- , cpu_actual_frequency_hz
- , os_name
- , architecture_name
- , kernel_name
- , cpu_model_name
- , cpu_core_count
- , cpu_thread_count
- , cpu_frequency_max_hz
- , cpu_frequency_min_hz
- , cpu_l1d_cache_bytes
- , cpu_l1i_cache_bytes
- , cpu_l2_cache_bytes
- , cpu_l3_cache_bytes
- , machine_other_attributes
-) VALUES (
- '08:00:2b:01:02:03' -- mac_address
- , 'My-Machine-Name' -- machine_name
- , 8589934592 -- memory_bytes
- -- All (?) standard mac address formats are allowable:
- -- https://www.postgresql.org/docs/11/datatype-net-types.html
- , 2300000000 -- cpu_actual_frequency_Hz
- , 'OSX' -- os_name
- , 'x86_64' -- architecture_name
- , '18.2.0' -- kernel
- , 'Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz' -- cpu_model_name
- , 2 -- cpu_core_count
- , 4 -- cpu_thread_count
- , 2300000000 -- cpu_frequency_max_Hz
- , 2300000000 -- cpu_frequency_min_Hz
- , 32768 -- cpu_l1d_cache_bytes
- , 32768 -- cpu_l1i_cache_bytes
- , 262144 -- cpu_l2_cache_bytes
- , 4194304 -- cpu_l3_cache_bytes
- , '{"example": "for machine_other_attributes"}'::jsonb
-);
-
-
-INSERT INTO public.full_benchmark_run_view (
- benchmark_name
- , parameter_names
- , benchmark_description
- , benchmark_type
- , units
- , lessisbetter
- , benchmark_version
- -- datum
- , parameter_values
- , value
- , git_commit_timestamp
- , git_hash
- , val_min
- , val_q1
- , val_q3
- , val_max
- , std_dev
- , n_obs
- , run_timestamp
- , run_metadata
- , run_notes
- -- machine_view
- , machine_name
- , mac_address
- , memory_bytes
- , cpu_actual_frequency_hz
- , os_name
- , architecture_name
- , kernel_name
- , cpu_model_name
- , cpu_core_count
- , cpu_thread_count
- , cpu_frequency_max_hz
- , cpu_frequency_min_hz
- , cpu_l1d_cache_bytes
- , cpu_l1i_cache_bytes
- , cpu_l2_cache_bytes
- , cpu_l3_cache_bytes
- , machine_other_attributes
- -- environment_view
- , benchmark_language
- , language_implementation_version
- , dependencies
-) VALUES (
- 'Benchmark 3'
- , '{"arg0"}'::text[]
- , 'Third benchmark'
- , 'Memory'
- , 'kilobytes'
- , TRUE
- , '0'
- -- datum
- , '{"arg0": 10}'::jsonb
- , 0.5
- , '2019-01-31 14:31:10 -0600'
- , '8136c46d5c60fb'
- , 0.5
- , 0.5
- , 0.5
- , 0.5
- , 0
- , 2
- , '2019-02-14 14:00:00 -0600'
- , '{"ci_99": [2.7e-06, 3.1e-06]}'::jsonb
- , 'Additional run_notes.'
- -- machine_view
- , 'My-Machine-Name'
- , '09-00-2c-01-02-03'
- , 8589934592
- , 2300000000
- , 'OSX'
- , 'x86_64'
- , '18.2.0'
- , 'Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz'
- , 2
- , 4
- , 2300000000
- , 2300000000
- , 32768
- , 32768
- , 262144
- , 4194304
- , '{"example": "for machine_other_attributes"}'::jsonb
- -- environment_view
- , 'Python'
- , 'CPython 2.7'
- , '{"six": "", "numpy": "1.15", "other_lib": "1.0"}'::jsonb
-);
-
-
--- Bulk load from CSV. First column is empty; serial "benchmark_run_id" will be assigned.
---\copy benchmark_run_view FROM 'examples/benchmark_run_example.csv' WITH (FORMAT csv, HEADER);
-
--- Load from JSON
---\set content `cat examples/benchmark_example.json`
---SELECT ingest_benchmark_view(:'content'::jsonb);
-
-INSERT INTO public.benchmark_view (
- benchmark_name
- , parameter_names
- , benchmark_description
- , benchmark_type
- , units
- , lessisbetter
- , benchmark_version
- , benchmark_language
- ) VALUES (
- 'Benchmark 1'
- , '{"arg0", "arg1", "arg2"}'::text[]
- , E'Description.\nNewlines are OK in a string escaped with leading "E".'
- , 'Time'
- , 'miliseconds'
- , TRUE
- , 'Hash of code or other way to identify distinct benchmark versions.'
- , 'Python'
- ), (
- 'Benchmark 2'
- , '{"arg0", "arg1"}'::text[]
- , 'Description 2.'
- , 'Time'
- , 'nanoseconds'
- , TRUE
- , 'version 0'
- , 'Python'
- );
-
-
-\x
-SELECT * from benchmark_run_view;
-
-\x
diff --git a/dev/benchmarking/examples/example_graphql_mutation.json b/dev/benchmarking/examples/example_graphql_mutation.json
deleted file mode 100644
index fec5eed..0000000
--- a/dev/benchmarking/examples/example_graphql_mutation.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "query": "mutation ($p: CreateProjectInput!){createProject(input:$p){project{id}}}",
- "variables": {
- "p": {
- "project": {
- "projectName": "Apache Arrow",
- "projectUrl": "https://www.arrow.apache.org",
- "repoUrl": "https://www.github.com/apache/arrow"
- }
- }
- }
-}
diff --git a/dev/benchmarking/examples/graphql_query_environment_view.json b/dev/benchmarking/examples/graphql_query_environment_view.json
deleted file mode 100644
index 78804fa..0000000
--- a/dev/benchmarking/examples/graphql_query_environment_view.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "query": "{allEnvironmentViews(orderBy: [BENCHMARK_LANGUAGE_ASC, LANGUAGE_IMPLEMENTATION_VERSION_ASC, DEPENDENCIES_ASC]) {edges {node {environmentId, benchmarkLanguage, languageImplementationVersion, dependencies}}}}"
-}
diff --git a/dev/benchmarking/examples/machine.json b/dev/benchmarking/examples/machine.json
deleted file mode 100644
index 2485e2b..0000000
--- a/dev/benchmarking/examples/machine.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- "mac_address": "0a:00:2d:01:02:03",
- "machine_name": "Yet-Another-Machine-Name",
- "memory_bytes": 8589934592,
- "cpu_actual_frequency_hz": 2300000000,
- "os_name": "OSX",
- "architecture_name": "x86_64",
- "kernel_name": "18.2.0",
- "cpu_model_name": "Intel(R) Core(TM) i5-7360U CPU @ 2.30GHz",
- "cpu_core_count": 2,
- "cpu_thread_count": 4,
- "cpu_frequency_max_hz": 2300000000,
- "cpu_frequency_min_hz": 2300000000,
- "cpu_l1d_cache_bytes": 32768,
- "cpu_l1i_cache_bytes": 32768,
- "cpu_l2_cache_bytes": 262144,
- "cpu_l3_cache_bytes": 4194304,
- "machine_other_attributes": {"just": "an example"},
- "gpu_information": "",
- "gpu_part_number": "",
- "gpu_product_name": ""
-}
diff --git a/dev/benchmarking/graphql_submit.sh b/dev/benchmarking/graphql_submit.sh
deleted file mode 100755
index 2eaab9c..0000000
--- a/dev/benchmarking/graphql_submit.sh
+++ /dev/null
@@ -1,75 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-OPTIONS=("machine" "benchmarks" "runs")
-
-option=${1-help}
-datafile=${2-machine.json}
-uri=${3-localhost:5000/graphql}
-
-help() {
- cat <<HELP
- Submit data via GraphQL
-
- Usage:
- ${0} [option] [JSON_file] [URI]
-
- Arguments:
- option - $(echo ${OPTIONS[@]} | sed 's/ /|/g')
- JSON_file - path to the submission file (default 'machine.json')
- URI - URI to submit to (default 'localhost:5000/graphql')
-HELP
-}
-
-escape_quote() { sed 's/"/\\"/g'; }
-
-template() {
- cat <<TEMPLATE
- {
- "query": "mutation (\$jsonb: JSON!){${1}(input:{fromJsonb:\$jsonb}){${2}}}",
- "variables": {
- "jsonb": "$(echo $(cat ${datafile}) | escape_quote )"
- }
- }
-TEMPLATE
-}
-
-submit () {
- curl -X POST -H "Content-Type: application/json" --data @<(template $1 $2) ${uri}
-}
-
-
-case "$1" in
- machine)
- submit ingestMachineView integer;;
-
- benchmarks)
- submit ingestBenchmarkView integers;;
-
- runs)
- if grep -q context <(head -n2 ${2})
- then
- submit ingestBenchmarkRunsWithContext bigInts
- else
- submit ingestBenchmarkRunView bigInts
- fi;;
-
- *)
- help
- exit 1
-esac
diff --git a/dev/benchmarking/make_data_model_rst.sh b/dev/benchmarking/make_data_model_rst.sh
deleted file mode 100755
index 6a4f5f5..0000000
--- a/dev/benchmarking/make_data_model_rst.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -e
-DOTFILE=data_model.dot
-OUTFILE=data_model.rst
-
-license() {
- cat <<'LICENSE' > ${1}
-.. 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.
-
-
-LICENSE
-}
-
-warning() {
- cat <<'WARNING' >> ${1}
-.. WARNING
-.. This is an auto-generated file. Please do not edit.
-
-.. To reproduce, please run :code:`./make_data_model_rst.sh`.
-.. (This requires you have the
-.. `psql client <https://www.postgresql.org/download/>`_
-.. and have started the docker containers using
-.. :code:`docker-compose up`).
-
-WARNING
-}
-
-echo "Making ${OUTFILE}"
-
-license ${OUTFILE}
-warning ${OUTFILE}
-
-PGPASSWORD=arrow \
- psql --tuples-only --username=arrow_web \
- --dbname=benchmark --port=5432 --host=localhost \
- --command="select public.documentation('${DOTFILE}');" \
- | sed "s/ *+$//" | sed "s/^ //" >> ${OUTFILE}
diff --git a/dev/benchmarking/make_dotfile.sh b/dev/benchmarking/make_dotfile.sh
deleted file mode 100755
index b86dc3e..0000000
--- a/dev/benchmarking/make_dotfile.sh
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -e
-OUTFILE=data_model.dot
-
-license() {
- cat <<'LICENSE' > ${1}
-/*
- 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.
-*/
-
-LICENSE
-}
-
-warning() {
- cat <<'WARNING' >> ${1}
-/*
- WARNING
- This is an auto-generated file. Please do not edit.
-
- To reproduce, please run :code:`./make_data_model_rst.sh`.
- (This requires you have the
- `psql client <https://www.postgresql.org/download/>`_
- and have started the docker containers using
- :code:`docker-compose up`).
-*/
-WARNING
-}
-
-echo "Making ${OUTFILE}"
-
-license ${OUTFILE}
-warning ${OUTFILE}
-
-PGPASSWORD=arrow \
- psql --tuples-only --username=arrow_web \
- --dbname=benchmark --port=5432 --host=localhost \
- --command="select public.documentation_dotfile();" \
- | sed "s/ *+$//" | sed "s/^ //" >> ${OUTFILE}
diff --git a/dev/benchmarking/make_machine_json.sh b/dev/benchmarking/make_machine_json.sh
deleted file mode 100755
index 09bf0ea..0000000
--- a/dev/benchmarking/make_machine_json.sh
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env bash
-#
-# 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.
-#
-
-set -e
-OUTFILE=machine.json
-
-echo "Making ${OUTFILE}"
-echo "** NOTE: This command fails on everything but OSX right now. **"
-echo "* also, the intent is to make this script not suck, just not now. *"
-echo "Please type GPU details here (or manually modify ${OUTFILE} later)."
-read -p "GPU information string (or <enter>): " gpu_information
-read -p "GPU part number (or <enter>): " gpu_part_number
-read -p "GPU product name (or <enter>): " gpu_product_name
-
-
-cat <<MACHINE_JSON > ${OUTFILE}
-{
- "mac_address": "$(ifconfig en1 | awk '/ether/{print $2}')",
- "machine_name": "$(uname -n)",
- "memory_bytes": $(sysctl -n hw.memsize),
- "cpu_actual_frequency_hz": $(sysctl -n hw.cpufrequency),
- "os_name": "$(uname -s)",
- "architecture_name": "$(uname -m)",
- "kernel_name": "$(uname -r)",
- "cpu_model_name": "$(sysctl -n machdep.cpu.brand_string)",
- "cpu_core_count": $(sysctl -n hw.physicalcpu),
- "cpu_thread_count": $(sysctl -n hw.logicalcpu),
- "cpu_frequency_max_hz": $(sysctl -n hw.cpufrequency_max),
- "cpu_frequency_min_hz": $(sysctl -n hw.cpufrequency_min),
- "cpu_l1d_cache_bytes": $(sysctl -n hw.l1dcachesize),
- "cpu_l1i_cache_bytes": $(sysctl -n hw.l1icachesize),
- "cpu_l2_cache_bytes": $(sysctl -n hw.l2cachesize),
- "cpu_l3_cache_bytes": $(sysctl -n hw.l3cachesize),
- "gpu_information": "${gpu_information}",
- "gpu_part_number": "${gpu_part_number}",
- "gpu_product_name": "${gpu_product_name}"
-}
-MACHINE_JSON
-
-echo "Machine details saved in ${OUTFILE}"
diff --git a/dev/merge.conf.sample b/dev/merge.conf.sample
deleted file mode 100644
index c71b211..0000000
--- a/dev/merge.conf.sample
+++ /dev/null
@@ -1,25 +0,0 @@
-# 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.
-
-# Configuration for the merge_arrow_pr.py tool
-# Install a copy of this file at ~/.config/arrow/merge.conf
-
-[jira]
-# issues.apache.org JIRA credentials. Sadly, the jira instance doesn't offer
-# token credentials. Ensure that the file is properly protected.
-username=johnsmith
-password=123456
diff --git a/dev/merge_arrow_pr.py b/dev/merge_arrow_pr.py
deleted file mode 100755
index 373ceb8..0000000
--- a/dev/merge_arrow_pr.py
+++ /dev/null
@@ -1,610 +0,0 @@
-#!/usr/bin/env python
-
-#
-# 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.
-#
-
-# Utility for creating well-formed pull request merges and pushing them to
-# Apache.
-# usage: ./merge_arrow_pr.py (see config env vars below)
-#
-# This utility assumes you already have a local Arrow git clone and that you
-# have added remotes corresponding to both (i) the GitHub Apache Arrow mirror
-# and (ii) the apache git repo.
-#
-# There are several pieces of authorization possibly needed via environment
-# variables
-#
-# APACHE_JIRA_USERNAME: your Apache JIRA id
-# APACHE_JIRA_PASSWORD: your Apache JIRA password
-# ARROW_GITHUB_API_TOKEN: a GitHub API token to use for API requests (to avoid
-# rate limiting)
-
-import configparser
-import os
-import pprint
-import re
-import subprocess
-import sys
-import requests
-import getpass
-
-from six.moves import input
-import six
-
-try:
- import jira.client
- import jira.exceptions
-except ImportError:
- print("Could not find jira library. "
- "Run 'sudo pip install jira' to install.")
- print("Exiting without trying to close the associated JIRA.")
- sys.exit(1)
-
-# Remote name which points to the GitHub site
-PR_REMOTE_NAME = os.environ.get("PR_REMOTE_NAME", "apache")
-
-# For testing to avoid accidentally pushing to apache
-DEBUG = bool(int(os.environ.get("DEBUG", 0)))
-
-
-if DEBUG:
- print("**************** DEBUGGING ****************")
-
-
-# Prefix added to temporary branches
-BRANCH_PREFIX = "PR_TOOL"
-JIRA_API_BASE = "https://issues.apache.org/jira"
-
-
-def get_json(url, headers=None):
- req = requests.get(url, headers=headers)
- return req.json()
-
-
-def run_cmd(cmd):
- if isinstance(cmd, six.string_types):
- cmd = cmd.split(' ')
-
- try:
- output = subprocess.check_output(cmd)
- except subprocess.CalledProcessError as e:
- # this avoids hiding the stdout / stderr of failed processes
- print('Command failed: %s' % cmd)
- print('With output:')
- print('--------------')
- print(e.output)
- print('--------------')
- raise e
-
- if isinstance(output, six.binary_type):
- output = output.decode('utf-8')
- return output
-
-
-original_head = run_cmd("git rev-parse HEAD")[:8]
-
-
-def clean_up():
- print("Restoring head pointer to %s" % original_head)
- run_cmd("git checkout %s" % original_head)
-
- branches = run_cmd("git branch").replace(" ", "").split("\n")
-
- for branch in [x for x in branches
- if x.startswith(BRANCH_PREFIX)]:
- print("Deleting local branch %s" % branch)
- run_cmd("git branch -D %s" % branch)
-
-
-_REGEX_CI_DIRECTIVE = re.compile(r'\[[^\]]*\]')
-
-
-def strip_ci_directives(commit_message):
- # Remove things like '[force ci]', '[skip appveyor]' from the assembled
- # commit message
- return _REGEX_CI_DIRECTIVE.sub('', commit_message)
-
-
-def fix_version_from_branch(branch, versions):
- # Note: Assumes this is a sorted (newest->oldest) list of un-released
- # versions
- if branch == "master":
- return versions[-1]
- else:
- branch_ver = branch.replace("branch-", "")
- return [x for x in versions if x.name.startswith(branch_ver)][-1]
-
-
-# We can merge both ARROW and PARQUET patchesa
-SUPPORTED_PROJECTS = ['ARROW', 'PARQUET']
-PR_TITLE_REGEXEN = [(project, re.compile(r'^(' + project + r'-[0-9]+)\b.*$'))
- for project in SUPPORTED_PROJECTS]
-
-
-class JiraIssue(object):
-
- def __init__(self, jira_con, jira_id, project, cmd):
- self.jira_con = jira_con
- self.jira_id = jira_id
- self.project = project
- self.cmd = cmd
-
- try:
- self.issue = jira_con.issue(jira_id)
- except Exception as e:
- self.cmd.fail("ASF JIRA could not find %s\n%s" % (jira_id, e))
-
- @property
- def current_fix_versions(self):
- return self.issue.fields.fixVersions
-
- def get_candidate_fix_versions(self, merge_branches=('master',)):
- # Only suggest versions starting with a number, like 0.x but not JS-0.x
- all_versions = self.jira_con.project_versions(self.project)
- unreleased_versions = [x for x in all_versions
- if not x.raw['released']]
-
- unreleased_versions = sorted(unreleased_versions,
- key=lambda x: x.name, reverse=True)
-
- mainline_versions = self._filter_mainline_versions(unreleased_versions)
-
- mainline_non_patch_versions = []
- for v in mainline_versions:
- (major, minor, patch) = v.name.split(".")
- if patch == "0":
- mainline_non_patch_versions.append(v)
-
- if len(mainline_versions) > len(mainline_non_patch_versions):
- # If there is a non-patch release, suggest that instead
- mainline_versions = mainline_non_patch_versions
-
- default_fix_versions = [
- fix_version_from_branch(x, mainline_versions).name
- for x in merge_branches]
-
- return all_versions, default_fix_versions
-
- def _filter_mainline_versions(self, versions):
- if self.project == 'PARQUET':
- mainline_regex = re.compile(r'cpp-\d.*')
- else:
- mainline_regex = re.compile(r'\d.*')
-
- return [x for x in versions if mainline_regex.match(x.name)]
-
- def resolve(self, fix_versions, comment):
- fields = self.issue.fields
- cur_status = fields.status.name
-
- if cur_status == "Resolved" or cur_status == "Closed":
- self.cmd.fail("JIRA issue %s already has status '%s'"
- % (self.jira_id, cur_status))
-
- if DEBUG:
- print("JIRA issue %s untouched" % (self.jira_id))
- return
-
- resolve = [x for x in self.jira_con.transitions(self.jira_id)
- if x['name'] == "Resolve Issue"][0]
-
- # ARROW-6915: do not overwrite existing fix versions corresponding to
- # point releases
- fix_versions = list(fix_versions)
- fix_version_names = set(x['name'] for x in fix_versions)
- for version in self.current_fix_versions:
- major, minor, patch = version.name.split('.')
- if patch != '0' and version.name not in fix_version_names:
- fix_versions.append(version.raw)
-
- self.jira_con.transition_issue(self.jira_id, resolve["id"],
- comment=comment,
- fixVersions=fix_versions)
-
- print("Successfully resolved %s!" % (self.jira_id))
-
- self.issue = self.jira_con.issue(self.jira_id)
- self.show()
-
- def show(self):
- fields = self.issue.fields
- print(format_jira_output(self.jira_id, fields.status.name,
- fields.summary, fields.assignee,
- fields.components))
-
-
-def format_jira_output(jira_id, status, summary, assignee, components):
- if assignee is None:
- assignee = "NOT ASSIGNED!!!"
- else:
- assignee = assignee.displayName
-
- if len(components) == 0:
- components = 'NO COMPONENTS!!!'
- else:
- components = ', '.join((x.name for x in components))
-
- return """=== JIRA {} ===
-Summary\t\t{}
-Assignee\t{}
-Components\t{}
-Status\t\t{}
-URL\t\t{}/{}""".format(jira_id, summary, assignee, components, status,
- '/'.join((JIRA_API_BASE, 'browse')), jira_id)
-
-
-class GitHubAPI(object):
-
- def __init__(self, project_name):
- self.github_api = ("https://api.github.com/repos/apache/{0}"
- .format(project_name))
-
- token = os.environ.get('ARROW_GITHUB_API_TOKEN', None)
- if token:
- self.headers = {'Authorization': 'token {0}'.format(token)}
- else:
- self.headers = None
-
- def get_pr_data(self, number):
- return get_json("%s/pulls/%s" % (self.github_api, number),
- headers=self.headers)
-
-
-class CommandInput(object):
- """
- Interface to input(...) to enable unit test mocks to be created
- """
-
- def fail(self, msg):
- clean_up()
- raise Exception(msg)
-
- def prompt(self, prompt):
- return input(prompt)
-
- def getpass(self, prompt):
- return getpass.getpass(prompt)
-
- def continue_maybe(self, prompt):
- while True:
- result = input("\n%s (y/n): " % prompt)
- if result.lower() == "y":
- return
- elif result.lower() == "n":
- self.fail("Okay, exiting")
- else:
- prompt = "Please input 'y' or 'n'"
-
-
-class PullRequest(object):
-
- def __init__(self, cmd, github_api, git_remote, jira_con, number):
- self.cmd = cmd
- self.git_remote = git_remote
- self.con = jira_con
- self.number = number
- self._pr_data = github_api.get_pr_data(number)
- try:
- self.url = self._pr_data["url"]
- self.title = self._pr_data["title"]
- self.body = self._pr_data["body"]
- self.target_ref = self._pr_data["base"]["ref"]
- self.user_login = self._pr_data["user"]["login"]
- self.base_ref = self._pr_data["head"]["ref"]
- except KeyError:
- pprint.pprint(self._pr_data)
- raise
- self.description = "%s/%s" % (self.user_login, self.base_ref)
-
- self.jira_issue = self._get_jira()
-
- def show(self):
- print("\n=== Pull Request #%s ===" % self.number)
- print("title\t%s\nsource\t%s\ntarget\t%s\nurl\t%s"
- % (self.title, self.description, self.target_ref, self.url))
- if self.jira_issue is not None:
- self.jira_issue.show()
- else:
- print("Minor PR. Please ensure it meets guidelines for minor.\n")
-
- @property
- def is_merged(self):
- return bool(self._pr_data["merged"])
-
- @property
- def is_mergeable(self):
- return bool(self._pr_data["mergeable"])
-
- def _get_jira(self):
- jira_id = None
- for project, regex in PR_TITLE_REGEXEN:
- m = regex.search(self.title)
- if m:
- jira_id = m.group(1)
- break
-
- if jira_id is None and not self.title.startswith("MINOR:"):
- options = ' or '.join('{0}-XXX'.format(project)
- for project in SUPPORTED_PROJECTS)
- self.cmd.fail("PR title should be prefixed by a jira id "
- "{0}, but found {1}".format(options, self.title))
-
- return JiraIssue(self.con, jira_id, project, self.cmd)
-
- def merge(self):
- """
- merge the requested PR and return the merge hash
- """
- pr_branch_name = "%s_MERGE_PR_%s" % (BRANCH_PREFIX, self.number)
- target_branch_name = "%s_MERGE_PR_%s_%s" % (BRANCH_PREFIX,
- self.number,
- self.target_ref.upper())
- run_cmd("git fetch %s pull/%s/head:%s" % (self.git_remote,
- self.number,
- pr_branch_name))
- run_cmd("git fetch %s %s:%s" % (self.git_remote, self.target_ref,
- target_branch_name))
- run_cmd("git checkout %s" % target_branch_name)
-
- had_conflicts = False
- try:
- run_cmd(['git', 'merge', pr_branch_name, '--ff', '--squash'])
- except Exception as e:
- msg = ("Error merging: %s\nWould you like to "
- "manually fix-up this merge?" % e)
- self.cmd.continue_maybe(msg)
- msg = ("Okay, please fix any conflicts and 'git add' "
- "conflicting files... Finished?")
- self.cmd.continue_maybe(msg)
- had_conflicts = True
-
- commit_authors = run_cmd(['git', 'log', 'HEAD..%s' % pr_branch_name,
- '--pretty=format:%an <%ae>']).split("\n")
- distinct_authors = sorted(set(commit_authors),
- key=lambda x: commit_authors.count(x),
- reverse=True)
-
- for i, author in enumerate(distinct_authors):
- print("Author {}: {}".format(i + 1, author))
-
- if len(distinct_authors) > 1:
- primary_author, distinct_authors = get_primary_author(
- self.cmd, distinct_authors)
- else:
- # If there is only one author, do not prompt for a lead author
- primary_author = distinct_authors[0]
-
- merge_message_flags = []
-
- merge_message_flags += ["-m", self.title]
- if self.body is not None:
- merge_message_flags += ["-m", self.body]
-
- committer_name = run_cmd("git config --get user.name").strip()
- committer_email = run_cmd("git config --get user.email").strip()
-
- authors = ("Authored-by:" if len(distinct_authors) == 1
- else "Lead-authored-by:")
- authors += " %s" % (distinct_authors.pop(0))
- if len(distinct_authors) > 0:
- authors += "\n" + "\n".join(["Co-authored-by: %s" % a
- for a in distinct_authors])
- authors += "\n" + "Signed-off-by: %s <%s>" % (committer_name,
- committer_email)
-
- if had_conflicts:
- committer_name = run_cmd("git config --get user.name").strip()
- committer_email = run_cmd("git config --get user.email").strip()
- message = ("This patch had conflicts when merged, "
- "resolved by\nCommitter: %s <%s>" %
- (committer_name, committer_email))
- merge_message_flags += ["-m", message]
-
- # The string "Closes #%s" string is required for GitHub to correctly
- # close the PR
- merge_message_flags += [
- "-m",
- "Closes #%s from %s"
- % (self.number, self.description)]
- merge_message_flags += ["-m", authors]
-
- if DEBUG:
- print("\n".join(merge_message_flags))
-
- run_cmd(['git', 'commit',
- '--no-verify', # do not run commit hooks
- '--author="%s"' % primary_author] +
- merge_message_flags)
-
- self.cmd.continue_maybe("Merge complete (local ref %s). Push to %s?"
- % (target_branch_name, self.git_remote))
-
- try:
- push_cmd = ('git push %s %s:%s' % (self.git_remote,
- target_branch_name,
- self.target_ref))
- if DEBUG:
- print(push_cmd)
- else:
- run_cmd(push_cmd)
- except Exception as e:
- clean_up()
- self.cmd.fail("Exception while pushing: %s" % e)
-
- merge_hash = run_cmd("git rev-parse %s" % target_branch_name)[:8]
- clean_up()
- print("Pull request #%s merged!" % self.number)
- print("Merge hash: %s" % merge_hash)
- return merge_hash
-
-
-def get_primary_author(cmd, distinct_authors):
- author_pat = re.compile(r'(.*) <(.*)>')
-
- while True:
- primary_author = cmd.prompt(
- "Enter primary author in the format of "
- "\"name <email>\" [%s]: " % distinct_authors[0])
-
- if primary_author == "":
- return distinct_authors[0], distinct_authors
-
- if author_pat.match(primary_author):
- break
- print('Bad author "{}", please try again'.format(primary_author))
-
- # When primary author is specified manually, de-dup it from
- # author list and put it at the head of author list.
- distinct_authors = [x for x in distinct_authors
- if x != primary_author]
- distinct_authors = [primary_author] + distinct_authors
- return primary_author, distinct_authors
-
-
-def prompt_for_fix_version(cmd, jira_issue):
- (all_versions,
- default_fix_versions) = jira_issue.get_candidate_fix_versions()
-
- default_fix_versions = ",".join(default_fix_versions)
-
- issue_fix_versions = cmd.prompt("Enter comma-separated "
- "fix version(s) [%s]: "
- % default_fix_versions)
- if issue_fix_versions == "":
- issue_fix_versions = default_fix_versions
- issue_fix_versions = issue_fix_versions.replace(" ", "").split(",")
-
- def get_version_json(version_str):
- return [x for x in all_versions if x.name == version_str][0].raw
-
- return [get_version_json(v) for v in issue_fix_versions]
-
-
-CONFIG_FILE = "~/.config/arrow/merge.conf"
-
-
-def load_configuration():
- config = configparser.ConfigParser()
- config.read(os.path.expanduser(CONFIG_FILE))
- return config
-
-
-def get_credentials(cmd):
- username, password = None, None
-
- config = load_configuration()
- if "jira" in config.sections():
- username = config["jira"].get("username")
- password = config["jira"].get("password")
-
- # Fallback to environment variables
- if not username:
- username = os.environ.get("APACHE_JIRA_USERNAME")
-
- if not password:
- password = os.environ.get("APACHE_JIRA_PASSWORD")
-
- # Fallback to user tty prompt
- if not username:
- username = cmd.prompt("Env APACHE_JIRA_USERNAME not set, "
- "please enter your JIRA username:")
-
- if not password:
- password = cmd.getpass("Env APACHE_JIRA_PASSWORD not set, "
- "please enter your JIRA password:")
-
- return (username, password)
-
-
-def connect_jira(cmd):
- try:
- return jira.client.JIRA(options={'server': JIRA_API_BASE},
- basic_auth=get_credentials(cmd))
- except jira.exceptions.JIRAError as e:
- if "CAPTCHA_CHALLENGE" in e.text:
- print("")
- print("It looks like you need to answer a captcha challenge for "
- "this account (probably due to a login attempt with an "
- "incorrect password). Please log in at "
- "https://issues.apache.org/jira and complete the captcha "
- "before running this tool again.")
- print("Exiting.")
- sys.exit(1)
- raise e
-
-
-def get_pr_num():
- if len(sys.argv) == 2:
- return sys.argv[1]
-
- return input("Which pull request would you like to merge? (e.g. 34): ")
-
-
-def cli():
- # Location of your Arrow git clone
- ARROW_HOME = os.path.abspath(os.path.dirname(__file__))
- PROJECT_NAME = os.environ.get('ARROW_PROJECT_NAME') or 'arrow'
- print("ARROW_HOME = " + ARROW_HOME)
- print("PROJECT_NAME = " + PROJECT_NAME)
-
- cmd = CommandInput()
-
- pr_num = get_pr_num()
-
- os.chdir(ARROW_HOME)
-
- github_api = GitHubAPI(PROJECT_NAME)
-
- jira_con = connect_jira(cmd)
- pr = PullRequest(cmd, github_api, PR_REMOTE_NAME, jira_con, pr_num)
-
- if pr.is_merged:
- print("Pull request %s has already been merged")
- sys.exit(0)
-
- if not pr.is_mergeable:
- msg = ("Pull request %s is not mergeable in its current form.\n"
- % pr_num + "Continue? (experts only!)")
- cmd.continue_maybe(msg)
-
- pr.show()
-
- cmd.continue_maybe("Proceed with merging pull request #%s?" % pr_num)
-
- # merged hash not used
- pr.merge()
-
- if pr.jira_issue is None:
- print("Minor PR. No JIRA issue to update.\n")
- return
-
- cmd.continue_maybe("Would you like to update the associated JIRA?")
- jira_comment = (
- "Issue resolved by pull request %s\n[%s/%s]"
- % (pr_num,
- "https://github.com/apache/" + PROJECT_NAME + "/pull",
- pr_num))
-
- fix_versions_json = prompt_for_fix_version(cmd, pr.jira_issue)
- pr.jira_issue.resolve(fix_versions_json, jira_comment)
-
-
-if __name__ == '__main__':
- try:
- cli()
- except Exception:
- raise
diff --git a/dev/merge_arrow_pr.sh b/dev/merge_arrow_pr.sh
deleted file mode 100755
index 147f6c4..0000000
--- a/dev/merge_arrow_pr.sh
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/bin/sh
-
-# 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.
-
-# Wrapper script that automatically creates a Python virtual environment
-# and runs merge_arrow_pr.py inside it.
-
-set -e
-
-PYTHON=$(which python3)
-PYVER=$($PYTHON -c "import sys; print('.'.join(map(str, sys.version_info[:2])))")
-
-GIT_ROOT=$(git rev-parse --show-toplevel)
-ENV_DIR=$GIT_ROOT/dev/.venv$PYVER
-
-ENV_PYTHON=$ENV_DIR/bin/python3
-ENV_PIP="$ENV_PYTHON -m pip --no-input"
-
-check_venv() {
- [ -x $ENV_PYTHON ] || {
- echo "Virtual environment broken: $ENV_PYTHON not an executable"
- exit 1
- }
-}
-
-create_venv() {
- echo ""
- echo "Creating Python virtual environment in $ENV_DIR ..."
- echo ""
- $PYTHON -m venv $ENV_DIR
- $ENV_PIP install -q -r $GIT_ROOT/dev/requirements_merge_arrow_pr.txt || {
- echo "Failed to setup virtual environment"
- echo "Please delete directory '$ENV_DIR' and try again"
- exit $?
- }
-}
-
-[ -d $ENV_DIR ] || create_venv
-check_venv
-
-$ENV_PYTHON $GIT_ROOT/dev/merge_arrow_pr.py "$@"
diff --git a/dev/requirements_merge_arrow_pr.txt b/dev/requirements_merge_arrow_pr.txt
deleted file mode 100644
index 7ac17dc..0000000
--- a/dev/requirements_merge_arrow_pr.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-jira
-requests
-six
diff --git a/dev/test_merge_arrow_pr.py b/dev/test_merge_arrow_pr.py
deleted file mode 100644
index 8fe1883..0000000
--- a/dev/test_merge_arrow_pr.py
+++ /dev/null
@@ -1,317 +0,0 @@
-#!/usr/bin/env python
-
-#
-# 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 collections import namedtuple
-
-import pytest
-
-import merge_arrow_pr
-
-
-FakeIssue = namedtuple('issue', ['fields'])
-FakeFields = namedtuple('fields', ['status', 'summary', 'assignee',
- 'components', 'fixVersions'])
-FakeAssignee = namedtuple('assignee', ['displayName'])
-FakeStatus = namedtuple('status', ['name'])
-FakeComponent = namedtuple('component', ['name'])
-FakeVersion = namedtuple('version', ['name', 'raw'])
-
-RAW_VERSION_JSON = [
- {'name': 'JS-0.4.0', 'released': False},
- {'name': '0.11.0', 'released': False},
- {'name': '0.12.0', 'released': False},
- {'name': '0.10.0', 'released': True},
- {'name': '0.9.0', 'released': True}
-]
-
-
-SOURCE_VERSIONS = [FakeVersion(raw['name'], raw)
- for raw in RAW_VERSION_JSON]
-
-TRANSITIONS = [{'name': 'Resolve Issue', 'id': 1}]
-
-jira_id = 'ARROW-1234'
-status = FakeStatus('In Progress')
-fields = FakeFields(status, 'issue summary', FakeAssignee('groundhog'),
- [FakeComponent('C++'), FakeComponent('Format')],
- [])
-FAKE_ISSUE_1 = FakeIssue(fields)
-
-
-class FakeJIRA:
-
- def __init__(self, issue=None, project_versions=None, transitions=None,
- current_fix_versions=None):
- self._issue = issue
- self._project_versions = project_versions
- self._transitions = transitions
-
- def issue(self, jira_id):
- return self._issue
-
- def transitions(self, jira_id):
- return self._transitions
-
- def transition_issue(self, jira_id, transition_id, comment=None,
- fixVersions=None):
- self.captured_transition = {
- 'jira_id': jira_id,
- 'transition_id': transition_id,
- 'comment': comment,
- 'fixVersions': fixVersions
- }
-
- def get_candidate_fix_versions(self):
- return SOURCE_VERSIONS, ['0.12.0']
-
- def project_versions(self, project):
- return self._project_versions
-
-
-class FakeCLI:
-
- def __init__(self, responses=()):
- self.responses = responses
- self.position = 0
-
- def prompt(self, prompt):
- response = self.responses[self.position]
- self.position += 1
- return response
-
- def fail(self, msg):
- raise Exception(msg)
-
-
-def test_jira_fix_versions():
- jira = FakeJIRA(project_versions=SOURCE_VERSIONS,
- transitions=TRANSITIONS)
-
- issue = merge_arrow_pr.JiraIssue(jira, 'ARROW-1234', 'ARROW', FakeCLI())
- all_versions, default_versions = issue.get_candidate_fix_versions()
- assert all_versions == SOURCE_VERSIONS
- assert default_versions == ['0.11.0']
-
-
-def test_jira_no_suggest_patch_release():
- versions_json = [
- {'name': '0.11.1', 'released': False},
- {'name': '0.12.0', 'released': False},
- ]
-
- versions = [FakeVersion(raw['name'], raw) for raw in versions_json]
-
- jira = FakeJIRA(project_versions=versions, transitions=TRANSITIONS)
- issue = merge_arrow_pr.JiraIssue(jira, 'ARROW-1234', 'ARROW', FakeCLI())
- all_versions, default_versions = issue.get_candidate_fix_versions()
- assert all_versions == versions
- assert default_versions == ['0.12.0']
-
-
-def test_jira_parquet_no_suggest_non_cpp():
- # ARROW-7351
- versions_json = [
- {'name': 'cpp-1.5.0', 'released': True},
- {'name': 'cpp-1.6.0', 'released': False},
- {'name': 'cpp-1.7.0', 'released': False},
- {'name': '1.11.0', 'released': False},
- {'name': '1.12.0', 'released': False}
- ]
-
- versions = [FakeVersion(raw['name'], raw)
- for raw in versions_json]
-
- jira = FakeJIRA(project_versions=versions, transitions=TRANSITIONS)
- issue = merge_arrow_pr.JiraIssue(jira, 'PARQUET-1713', 'PARQUET',
- FakeCLI())
- all_versions, default_versions = issue.get_candidate_fix_versions()
- assert all_versions == versions
- assert default_versions == ['cpp-1.6.0']
-
-
-def test_jira_invalid_issue():
- class Mock:
-
- def issue(self, jira_id):
- raise Exception("not found")
-
- with pytest.raises(Exception):
- merge_arrow_pr.JiraIssue(Mock(), 'ARROW-1234', 'ARROW', FakeCLI())
-
-
-def test_jira_resolve():
- jira = FakeJIRA(issue=FAKE_ISSUE_1,
- project_versions=SOURCE_VERSIONS,
- transitions=TRANSITIONS)
-
- my_comment = 'my comment'
- fix_versions = [SOURCE_VERSIONS[1].raw]
-
- issue = merge_arrow_pr.JiraIssue(jira, 'ARROW-1234', 'ARROW', FakeCLI())
- issue.resolve(fix_versions, my_comment)
-
- assert jira.captured_transition == {
- 'jira_id': 'ARROW-1234',
- 'transition_id': 1,
- 'comment': my_comment,
- 'fixVersions': fix_versions
- }
-
-
-def test_jira_resolve_non_mainline():
- jira = FakeJIRA(issue=FAKE_ISSUE_1,
- project_versions=SOURCE_VERSIONS,
- transitions=TRANSITIONS)
-
- my_comment = 'my comment'
- fix_versions = [SOURCE_VERSIONS[0].raw]
-
- issue = merge_arrow_pr.JiraIssue(jira, 'ARROW-1234', 'ARROW', FakeCLI())
- issue.resolve(fix_versions, my_comment)
-
- assert jira.captured_transition == {
- 'jira_id': 'ARROW-1234',
- 'transition_id': 1,
- 'comment': my_comment,
- 'fixVersions': fix_versions
- }
-
-
-def test_jira_resolve_released_fix_version():
- # ARROW-5083
- jira = FakeJIRA(issue=FAKE_ISSUE_1,
- project_versions=SOURCE_VERSIONS,
- transitions=TRANSITIONS)
-
- cmd = FakeCLI(responses=['0.9.0'])
- fix_versions_json = merge_arrow_pr.prompt_for_fix_version(cmd, jira)
- assert fix_versions_json == [RAW_VERSION_JSON[-1]]
-
-
-def test_multiple_authors_bad_input():
- a0 = 'Jimbob Crawfish <jimbob.crawfish@gmail.com>'
- a1 = 'Jarvis McCratchett <jarvis.mccratchett@hotmail.com>'
- a2 = 'Hank Miller <hank.miller@protonmail.com>'
- distinct_authors = [a0, a1]
-
- cmd = FakeCLI(responses=[''])
- primary_author, new_distinct_authors = merge_arrow_pr.get_primary_author(
- cmd, distinct_authors)
- assert primary_author == a0
- assert new_distinct_authors == [a0, a1]
-
- cmd = FakeCLI(responses=['oops', a1])
- primary_author, new_distinct_authors = merge_arrow_pr.get_primary_author(
- cmd, distinct_authors)
- assert primary_author == a1
- assert new_distinct_authors == [a1, a0]
-
- cmd = FakeCLI(responses=[a2])
- primary_author, new_distinct_authors = merge_arrow_pr.get_primary_author(
- cmd, distinct_authors)
- assert primary_author == a2
- assert new_distinct_authors == [a2, a0, a1]
-
-
-def test_jira_already_resolved():
- status = FakeStatus('Resolved')
- fields = FakeFields(status, 'issue summary', FakeAssignee('groundhog'),
- [FakeComponent('Java')], [])
- issue = FakeIssue(fields)
-
- jira = FakeJIRA(issue=issue,
- project_versions=SOURCE_VERSIONS,
- transitions=TRANSITIONS)
-
- fix_versions = [SOURCE_VERSIONS[0].raw]
- issue = merge_arrow_pr.JiraIssue(jira, 'ARROW-1234', 'ARROW', FakeCLI())
-
- with pytest.raises(Exception,
- match="ARROW-1234 already has status 'Resolved'"):
- issue.resolve(fix_versions, "")
-
-
-def test_no_unset_point_release_fix_version():
- # ARROW-6915: We have had the problem of issues marked with a point release
- # having their fix versions overwritten by the merge tool. This verifies
- # that existing patch release versions are carried over
- status = FakeStatus('In Progress')
-
- versions_json = {
- '0.14.2': {'name': '0.14.2', 'id': 1},
- '0.15.1': {'name': '0.15.1', 'id': 2},
- '0.16.0': {'name': '0.16.0', 'id': 3},
- '0.17.0': {'name': '0.17.0', 'id': 4}
- }
-
- fields = FakeFields(status, 'summary', FakeAssignee('someone'),
- [FakeComponent('Java')],
- [FakeVersion(v, versions_json[v])
- for v in ['0.17.0', '0.15.1', '0.14.2']])
- issue = FakeIssue(fields)
-
- jira = FakeJIRA(issue=issue, project_versions=SOURCE_VERSIONS,
- transitions=TRANSITIONS)
-
- issue = merge_arrow_pr.JiraIssue(jira, 'ARROW-1234', 'ARROW', FakeCLI())
- issue.resolve([versions_json['0.16.0']], "a comment")
-
- assert jira.captured_transition == {
- 'jira_id': 'ARROW-1234',
- 'transition_id': 1,
- 'comment': 'a comment',
- 'fixVersions': [versions_json[v]
- for v in ['0.16.0', '0.15.1', '0.14.2']]
- }
-
- issue.resolve([versions_json['0.15.1']], "a comment")
-
- assert jira.captured_transition == {
- 'jira_id': 'ARROW-1234',
- 'transition_id': 1,
- 'comment': 'a comment',
- 'fixVersions': [versions_json[v] for v in ['0.15.1', '0.14.2']]
- }
-
-
-def test_jira_output_no_components():
- # ARROW-5472
- status = 'Interesting work'
- components = []
- output = merge_arrow_pr.format_jira_output(
- 'ARROW-1234', 'Resolved', status, FakeAssignee('Foo Bar'),
- components)
-
- assert output == """=== JIRA ARROW-1234 ===
-Summary\t\tInteresting work
-Assignee\tFoo Bar
-Components\tNO COMPONENTS!!!
-Status\t\tResolved
-URL\t\thttps://issues.apache.org/jira/browse/ARROW-1234"""
-
- output = merge_arrow_pr.format_jira_output(
- 'ARROW-1234', 'Resolved', status, FakeAssignee('Foo Bar'),
- [FakeComponent('C++'), FakeComponent('Python')])
-
- assert output == """=== JIRA ARROW-1234 ===
-Summary\t\tInteresting work
-Assignee\tFoo Bar
-Components\tC++, Python
-Status\t\tResolved
-URL\t\thttps://issues.apache.org/jira/browse/ARROW-1234"""
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index 4a3092e..0000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,1391 +0,0 @@
-# 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.
-
-# Usage
-# -----
-#
-# The docker compose file is parametrized using environment variables, the
-# defaults are set in .env file.
-#
-# Example:
-# $ ARCH=arm64v8 docker-compose build ubuntu-cpp
-# $ ARCH=arm64v8 docker-compose run ubuntu-cpp
-#
-#
-# Coredumps
-# ---------
-#
-# In order to enable coredumps for the C++ tests run by CTest either with
-# command `make unittest` or `ctest --output-on-failure` the correct coredump
-# patterns must be set.
-# The kernel settings are coming from the host, so while it can be enabled from
-# a running container using --priviled option the change will affect all other
-# containers, so prefer setting it explicitly, directly on the host.
-# WARNING: setting this will affect the host machine.
-#
-# Linux host:
-# $ sudo sysctl -w kernel.core_pattern=core.%e.%p
-#
-# macOS host running Docker for Mac (won't persist between restarts):
-# $ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
-# # echo "core.%e.%p" > /proc/sys/kernel/core_pattern
-#
-# The setup attempts to generate coredumps by default, but the correct paths
-# above must be set. In order to disable the coredump generation set
-# ULIMIT_CORE environment variable to 0 before running docker-compose
-# (or by setting it in .env file):
-#
-# ULIMIT_CORE=0 docker-compose run --rm conda-cpp
-#
-# See more in cpp/build-support/run-test.sh::print_coredumps
-
-version: '3.5'
-
-x-ccache: &ccache
- CCACHE_COMPILERCHECK: content
- CCACHE_COMPRESS: 1
- CCACHE_COMPRESSLEVEL: 6
- CCACHE_MAXSIZE: 500M
- CCACHE_DIR: /ccache
-
-x-with-gpus:
- - ubuntu-cuda-cpp
- - ubuntu-cuda-python
-
-x-hierarchy:
- # This section is used by the archery tool to enable building nested images,
- # so it is enough to call:
- # archery run debian-ruby
- # instead of a seguence of docker-compose commands:
- # docker-compose build debian-cpp
- # docker-compose build debian-c-glib
- # docker-compose build debian-ruby
- # docker-compose run --rm debian-ruby
- #
- # Each node must be either a string scalar of a list containing the
- # descendant images if any. Archery checks that all node has a corresponding
- # service entry, so any new image/service must be listed here.
- - conda:
- - conda-cpp:
- - conda-cpp-hiveserver2
- - conda-cpp-valgrind
- - conda-python:
- - conda-python-pandas
- - conda-python-dask
- - conda-python-hdfs
- - conda-python-jpype
- - conda-python-turbodbc
- - conda-python-kartothek
- - conda-python-spark
- - conda-integration
- - debian-cpp:
- - debian-c-glib:
- - debian-ruby
- - debian-python
- - debian-go
- - debian-java:
- - debian-java-jni
- - debian-js
- - fedora-cpp:
- - fedora-python
- - ubuntu-cpp:
- - ubuntu-c-glib:
- - ubuntu-ruby
- - ubuntu-lint
- - ubuntu-python:
- - ubuntu-docs
- - ubuntu-python-sdist-test
- - ubuntu-r
- - ubuntu-cuda-cpp:
- - ubuntu-cuda-python
- - ubuntu-csharp
- - ubuntu-cpp-sanitizer
- - ubuntu-cpp-thread-sanitizer
- - ubuntu-r-sanitizer
- - python-sdist
- - r
- # helper services
- - impala
- - postgres
- - python-wheel-manylinux-2010
- - python-wheel-manylinux-2014
- - python-wheel-manylinux-test-imports
- - python-wheel-manylinux-test-unittests
- - python-wheel-windows-vs2017
- - python-wheel-windows-test
-
-volumes:
- conda-ccache:
- name: ${ARCH}-conda-ccache
- debian-ccache:
- name: ${ARCH}-debian-${DEBIAN}-ccache
- ubuntu-ccache:
- name: ${ARCH}-ubuntu-${UBUNTU}-ccache
- fedora-ccache:
- name: ${ARCH}-fedora-${FEDORA}-ccache
- debian-rust:
- name: ${ARCH}-debian-${DEBIAN}-rust
- maven-cache:
- name: maven-cache
- python-wheel-manylinux2010-ccache:
- name: python-wheel-manylinux2010-ccache
- python-wheel-manylinux2014-ccache:
- name: python-wheel-manylinux2014-ccache
- python-wheel-windows-clcache:
- name: python-wheel-windows-clcache
-
-services:
-
- ################################# C++ #######################################
- # Release build:
- # docker-compose run -e ARROW_BUILD_TYPE=release conda-cpp|debian-cpp|...
- # Shared only:
- # docker-compose run -e ARROW_BUILD_STATIC=OFF conda-cpp|debian-cpp|...
- # Static only:
- # docker-compose run \
- # -e ARROW_BUILD_SHARED=OFF \
- # -e ARROW_TEST_LINKAGE=static \
- # conda-cpp|debian-cpp|...
-
- conda:
- # Base image for conda builds.
- #
- # Usage:
- # docker-compose build con
- # docker-compose run --rm conda
- # Parameters:
- # ARCH: amd64, arm32v7
- image: ${REPO}:${ARCH}-conda
- build:
- context: .
- dockerfile: ci/docker/conda.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda
- args:
- arch: ${ARCH}
- prefix: /opt/conda
- volumes:
- - .:/arrow:delegated
-
- conda-cpp:
- # C++ build in conda environment, including the doxygen docs.
- #
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose run --rm conda-cpp
- # Parameters:
- # ARCH: amd64, arm32v7
- image: ${REPO}:${ARCH}-conda-cpp
- build:
- context: .
- dockerfile: ci/docker/conda-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-cpp
- args:
- repo: ${REPO}
- arch: ${ARCH}
- shm_size: &shm-size 2G
- ulimits: &ulimits
- core: ${ULIMIT_CORE}
- environment:
- <<: *ccache
- ARROW_BUILD_BENCHMARKS: "ON"
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_MIMALLOC: "ON"
- ARROW_USE_LD_GOLD: "ON"
- ARROW_USE_PRECOMPILED_HEADERS: "ON"
- volumes: &conda-volumes
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}conda-ccache:/ccache:delegated
- command: &cpp-conda-command
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build true &&
- /arrow/ci/scripts/cpp_test.sh /arrow /build"]
-
- conda-cpp-valgrind:
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose run --rm conda-cpp-valgrind
- # Parameters:
- # ARCH: amd64, arm32v7
- image: ${REPO}:${ARCH}-conda-cpp
- build:
- context: .
- dockerfile: ci/docker/conda-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-cpp
- args:
- repo: ${REPO}
- arch: ${ARCH}
- prefix: /opt/conda
- shm_size: *shm-size
- environment:
- <<: *ccache
- ARROW_CXXFLAGS: "-Og" # Shrink test runtime by enabling minimal optimizations
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_FLIGHT: "OFF"
- ARROW_GANDIVA: "OFF"
- ARROW_JEMALLOC: "OFF"
- ARROW_RUNTIME_SIMD_LEVEL: "AVX2" # AVX512 not supported by Valgrind (ARROW-9851)
- ARROW_S3: "OFF"
- ARROW_TEST_MEMCHECK: "ON"
- ARROW_USE_LD_GOLD: "ON"
- BUILD_WARNING_LEVEL: "PRODUCTION"
- volumes: *conda-volumes
- command: *cpp-conda-command
-
- debian-cpp:
- # Usage:
- # docker-compose build debian-cpp
- # docker-compose run --rm debian-cpp
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # DEBIAN: 9, 10
- image: ${REPO}:${ARCH}-debian-${DEBIAN}-cpp
- build:
- context: .
- dockerfile: ci/docker/debian-${DEBIAN}-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-${DEBIAN}-cpp
- args:
- arch: ${ARCH}
- llvm: ${LLVM}
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_MIMALLOC: "ON"
- volumes: &debian-volumes
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}debian-ccache:/ccache:delegated
- command: &cpp-command >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/cpp_test.sh /arrow /build"
-
- ubuntu-cpp:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose run --rm ubuntu-cpp
- # Parameters:
- # ARCH: amd64, arm64v8, s390x, ...
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- build:
- context: .
- dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- args:
- arch: ${ARCH}
- base: "${ARCH}/ubuntu:${UBUNTU}"
- clang_tools: ${CLANG_TOOLS}
- llvm: ${LLVM}
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_MIMALLOC: "ON"
- volumes: &ubuntu-volumes
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}ubuntu-ccache:/ccache:delegated
- command: *cpp-command
-
- ubuntu-cuda-cpp:
- # Usage:
- # docker-compose build cuda-cpp
- # docker-compose run --rm cuda-cpp
- # Also need to edit the host docker configuration as follows:
- # https://github.com/docker/compose/issues/6691#issuecomment-561504928
- # Parameters:
- # ARCH: amd64
- # CUDA: 9.1, 10.0, 10.1
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cuda-${CUDA}-cpp
- build:
- context: .
- dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cuda-${CUDA}-cpp
- args:
- arch: ${ARCH}
- base: nvidia/cuda:${CUDA}-devel-ubuntu${UBUNTU}
- clang_tools: ${CLANG_TOOLS}
- llvm: ${LLVM}
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- ARROW_CUDA: "ON"
- volumes: *ubuntu-volumes
- command: *cpp-command
-
- ubuntu-cpp-sanitizer:
- # Usage:
- # docker-compose build ubuntu-cpp-sanitizer
- # docker-compose run --rm ubuntu-cpp-sanitizer
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- cap_add:
- # For LeakSanitizer
- - SYS_PTRACE
- build:
- context: .
- dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- args:
- arch: ${ARCH}
- clang_tools: ${CLANG_TOOLS}
- llvm: ${LLVM}
- shm_size: *shm-size
- volumes: *ubuntu-volumes
- environment:
- <<: *ccache
- CC: clang-${CLANG_TOOLS}
- CXX: clang++-${CLANG_TOOLS}
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_FUZZING: "ON" # Check fuzz regressions
- ARROW_JEMALLOC: "OFF"
- ARROW_ORC: "OFF"
- ARROW_S3: "OFF"
- ARROW_USE_ASAN: "ON"
- ARROW_USE_UBSAN: "ON"
- # utf8proc 2.1.0 in Ubuntu Bionic has test failures
- utf8proc_SOURCE: "BUNDLED"
- command: *cpp-command
-
- ubuntu-cpp-thread-sanitizer:
- # Usage:
- # docker-compose build ubuntu-cpp-thread-sanitizer
- # docker-compose run --rm ubuntu-cpp-thread-sanitizer
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- build:
- context: .
- dockerfile: ci/docker/ubuntu-${UBUNTU}-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- args:
- arch: ${ARCH}
- clang_tools: ${CLANG_TOOLS}
- llvm: ${LLVM}
- shm_size: *shm-size
- volumes: *ubuntu-volumes
- environment:
- <<: *ccache
- CC: clang-${CLANG_TOOLS}
- CXX: clang++-${CLANG_TOOLS}
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_DATASET: "ON"
- ARROW_JEMALLOC: "OFF"
- ARROW_ORC: "OFF"
- ARROW_S3: "OFF"
- ARROW_USE_TSAN: "ON"
- command: *cpp-command
-
- fedora-cpp:
- # Usage:
- # docker-compose build fedora-cpp
- # docker-compose run --rm fedora-cpp
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # FEDORA: 33
- image: ${REPO}:${ARCH}-fedora-${FEDORA}-cpp
- build:
- context: .
- dockerfile: ci/docker/fedora-${FEDORA}-cpp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-fedora-${FEDORA}-cpp
- args:
- arch: ${ARCH}
- llvm: ${LLVM}
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- ARROW_ENABLE_TIMING_TESTS: # inherit
- ARROW_MIMALLOC: "ON"
- volumes: &fedora-volumes
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}fedora-ccache:/ccache:delegated
- command: *cpp-command
-
- ############################### C GLib ######################################
-
- debian-c-glib:
- # Usage:
- # docker-compose build debian-cpp
- # docker-compose build debian-c-glib
- # docker-compose run --rm debian-c-glib
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # DEBIAN: 9, 10
- image: ${REPO}:${ARCH}-debian-${DEBIAN}-c-glib
- build:
- context: .
- dockerfile: ci/docker/linux-apt-c-glib.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-${DEBIAN}-c-glib
- args:
- base: ${REPO}:${ARCH}-debian-${DEBIAN}-cpp
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- ARROW_GLIB_GTK_DOC: "true"
- volumes: *debian-volumes
- command: &c-glib-command >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/c_glib_build.sh /arrow /build &&
- /arrow/ci/scripts/c_glib_test.sh /arrow /build"
-
- ubuntu-c-glib:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-c-glib
- # docker-compose run --rm ubuntu-c-glib
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-c-glib
- build:
- context: .
- dockerfile: ci/docker/linux-apt-c-glib.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-c-glib
- args:
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- ARROW_GLIB_GTK_DOC: "true"
- volumes: *ubuntu-volumes
- command: *c-glib-command
-
- ############################### Ruby ########################################
- # Until Ruby is the only dependent implementation on top of C Glib we can
- # test C Glib and Ruby in one pass. This is an optimization to avoid
- # redundant (one for C GLib and one for Ruby doing the same work twice)
- # builds on CI services.
-
- debian-ruby:
- # Usage:
- # docker-compose build debian-cpp
- # docker-compose build debian-c-glib
- # docker-compose build debian-ruby
- # docker-compose run --rm debian-ruby
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # DEBIAN: 9, 10
- image: ${REPO}:${ARCH}-debian-${DEBIAN}-ruby
- build:
- context: .
- dockerfile: ci/docker/linux-apt-ruby.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-${DEBIAN}-ruby
- args:
- base: ${REPO}:${ARCH}-debian-${DEBIAN}-c-glib
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- volumes: *debian-volumes
- command: &ruby-command >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/c_glib_build.sh /arrow /build &&
- /arrow/ci/scripts/c_glib_test.sh /arrow /build &&
- /arrow/ci/scripts/ruby_test.sh /arrow /build"
-
- ubuntu-ruby:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-c-glib
- # docker-compose build ubuntu-ruby
- # docker-compose run --rm ubuntu-ruby
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-ruby
- build:
- context: .
- dockerfile: ci/docker/linux-apt-ruby.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-ruby
- args:
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-c-glib
- shm_size: *shm-size
- ulimits: *ulimits
- environment:
- <<: *ccache
- volumes: *ubuntu-volumes
- command: *ruby-command
-
- ############################### Python ######################################
-
- conda-python:
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose run --rm conda-python
- # Parameters:
- # ARCH: amd64, arm32v7
- # PYTHON: 3.6, 3.7, 3.8, 3.9
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}
- build:
- context: .
- dockerfile: ci/docker/conda-python.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *conda-volumes
- command: &python-conda-command
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/python_test.sh /arrow"]
-
- ubuntu-cuda-python:
- # Usage:
- # docker-compose build cuda-cpp
- # docker-compose build cuda-python
- # docker-compose run --rm cuda-python
- # Parameters:
- # ARCH: amd64
- # CUDA: 8.0, 10.0, ...
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cuda-${CUDA}-python-3
- build:
- context: .
- dockerfile: ci/docker/linux-apt-python-3.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cuda-${CUDA}-python-3
- args:
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cuda-${CUDA}-cpp
- shm_size: *shm-size
- environment:
- <<: *ccache
- ARROW_CUDA: "ON"
- volumes: *ubuntu-volumes
- command: &python-command >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/python_test.sh /arrow"
-
- debian-python:
- # Usage:
- # docker-compose build debian-cpp
- # docker-compose build debian-python
- # docker-compose run --rm debian-python
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # DEBIAN: 9, 10
- image: ${REPO}:${ARCH}-debian-${DEBIAN}-python-3
- build:
- context: .
- dockerfile: ci/docker/linux-apt-python-3.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-${DEBIAN}-python-3
- args:
- base: ${REPO}:${ARCH}-debian-${DEBIAN}-cpp
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *debian-volumes
- command: *python-command
-
- ubuntu-python:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-python
- # docker-compose run --rm ubuntu-python
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-3
- build:
- context: .
- dockerfile: ci/docker/linux-apt-python-3.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-3
- args:
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *ubuntu-volumes
- command: *python-command
-
- fedora-python:
- # Usage:
- # docker-compose build fedora-cpp
- # docker-compose build fedora-python
- # docker-compose run --rm fedora-python
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # FEDORA: 33
- image: ${REPO}:${ARCH}-fedora-${FEDORA}-python-3
- build:
- context: .
- dockerfile: ci/docker/linux-dnf-python-3.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-fedora-${FEDORA}-python-3
- args:
- base: ${REPO}:${ARCH}-fedora-${FEDORA}-cpp
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *fedora-volumes
- command: *python-command
-
- ############################ Python sdist ###################################
-
- python-sdist:
- # Usage:
- # docker-compose build python-sdist
- # docker-compose run --rm python-sdist
- # Parameters:
- # PYARROW_VERSION: The pyarrow version for sdist such as "3.0.0"
- image: ${REPO}:python-sdist
- build:
- context: .
- dockerfile: ci/docker/python-sdist.dockerfile
- cache_from:
- - ${REPO}:python-sdist
- environment:
- PYARROW_VERSION: ${PYARROW_VERSION:-}
- volumes:
- - .:/arrow:delegated
- command: /arrow/ci/scripts/python_sdist_build.sh /arrow
-
- ubuntu-python-sdist-test:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-python-sdist-test
- # docker-compose run --rm ubuntu-python-sdist-test
- # Parameters:
- # ARCH: amd64, arm64v8, ...
- # PYARROW_VERSION: The test target pyarrow version such as "3.0.0"
- # UBUNTU: 18.04, 20.04
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-3
- build:
- context: .
- dockerfile: ci/docker/linux-apt-python-3.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-3
- args:
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- shm_size: *shm-size
- environment:
- <<: *ccache
- PYARROW_VERSION: ${PYARROW_VERSION:-}
- volumes: *ubuntu-volumes
- command: >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_sdist_test.sh /arrow"
-
- ############################ Python wheels ##################################
-
- # See available versions at:
- # https://quay.io/repository/pypa/manylinux2010_x86_64?tab=tags
- # only amd64 arch is supported
- python-wheel-manylinux-2010:
- image: ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2010
- build:
- args:
- arch_alias: ${ARCH_ALIAS}
- arch_short_alias: ${ARCH_SHORT_ALIAS}
- base: quay.io/pypa/manylinux2010_${ARCH_ALIAS}:2020-12-03-912b0de
- vcpkg: ${VCPKG}
- python: ${PYTHON}
- context: .
- dockerfile: ci/docker/python-wheel-manylinux-201x.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2010
- environment:
- <<: *ccache
- MANYLINUX_VERSION: 2010
- volumes:
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}python-wheel-manylinux2010-ccache:/ccache:delegated
- command: /arrow/ci/scripts/python_wheel_manylinux_build.sh
-
- # See available versions at:
- # https://quay.io/repository/pypa/manylinux2014_x86_64?tab=tags
- python-wheel-manylinux-2014:
- image: ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2014
- build:
- args:
- arch_alias: ${ARCH_ALIAS}
- arch_short_alias: ${ARCH_SHORT_ALIAS}
- base: quay.io/pypa/manylinux2014_${ARCH_ALIAS}:2020-11-11-bc8ce45
- vcpkg: ${VCPKG}
- python: ${PYTHON}
- context: .
- dockerfile: ci/docker/python-wheel-manylinux-201x.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-2014
- environment:
- <<: *ccache
- MANYLINUX_VERSION: 2014
- volumes:
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}python-wheel-manylinux2014-ccache:/ccache:delegated
- command: /arrow/ci/scripts/python_wheel_manylinux_build.sh
-
- python-wheel-manylinux-test-imports:
- image: ${ARCH}/python:${PYTHON}
- shm_size: 2G
- volumes:
- - .:/arrow:delegated
- command: /arrow/ci/scripts/python_wheel_manylinux_test.sh imports
-
- python-wheel-manylinux-test-unittests:
- image: ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-test
- build:
- args:
- arch: ${ARCH}
- python: ${PYTHON}
- context: .
- dockerfile: ci/docker/python-wheel-manylinux-test.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-python-${PYTHON}-wheel-manylinux-test
- shm_size: 2G
- volumes:
- - .:/arrow:delegated
- command: /arrow/ci/scripts/python_wheel_manylinux_test.sh unittests
-
- python-wheel-windows-vs2017:
- image: ${REPO}:python-${PYTHON}-wheel-windows-vs2017
- build:
- args:
- vcpkg: ${VCPKG}
- python: ${PYTHON}
- context: .
- dockerfile: ci/docker/python-wheel-windows-vs2017.dockerfile
- # This should make the pushed images reusable, but the image gets rebuilt.
- # Uncomment if no local cache is available.
- # cache_from:
- # - mcr.microsoft.com/windows/servercore:ltsc2019
- # - ${REPO}:wheel-windows-vs2017
- volumes:
- - "${DOCKER_VOLUME_PREFIX}python-wheel-windows-clcache:C:/clcache"
- - type: bind
- source: .
- target: "C:/arrow"
- command: arrow\\ci\\scripts\\python_wheel_windows_build.bat
-
- python-wheel-windows-test:
- image: python:${PYTHON}-windowsservercore-1809
- volumes:
- - type: bind
- source: .
- target: "C:/arrow"
- command: arrow\\ci\\scripts\\python_wheel_windows_test.bat
-
- ############################## Integration #################################
-
- conda-python-pandas:
- # Possible $PANDAS parameters:
- # - `latest`: latest release
- # - `master`: git master branch, use `docker-compose run --no-cache`
- # - `<version>`: specific version available on conda-forge
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-pandas
- # docker-compose run --rm conda-python-pandas
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-pandas-${PANDAS}
- build:
- context: .
- dockerfile: ci/docker/conda-python-pandas.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-pandas-${PANDAS}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- numpy: ${NUMPY}
- pandas: ${PANDAS}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *conda-volumes
- command: *python-conda-command
-
- conda-python-dask:
- # Possible $DASK parameters:
- # - `latest`: latest release
- # - `master`: git master branch, use `docker-compose run --no-cache`
- # - `<version>`: specific version available on conda-forge
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-dask
- # docker-compose run --rm conda-python-dask
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-dask-${DASK}
- build:
- context: .
- dockerfile: ci/docker/conda-python-dask.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-dask-${DASK}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- dask: ${DASK}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *conda-volumes
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_dask.sh"]
-
- conda-python-jpype:
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-jpype
- # docker-compose run --rm conda-python-jpype
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-jpype
- build:
- context: .
- dockerfile: ci/docker/conda-python-jpype.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-jpype
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- shm_size: *shm-size
- environment:
- <<: *ccache
- ARROW_FLIGHT: "OFF"
- ARROW_GANDIVA: "OFF"
- volumes: *conda-volumes
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/python_test.sh /arrow"]
-
- conda-python-turbodbc:
- # Possible $TURBODBC parameters:
- # - `latest`: latest release
- # - `master`: git master branch, use `docker-compose run --no-cache`
- # - `<version>`: specific version available under github releases
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-turbodbc
- # docker-compose run --rm conda-python-turbodbc
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-turbodbc-${TURBODBC}
- build:
- context: .
- dockerfile: ci/docker/conda-python-turbodbc.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-turbodbc-${TURBODBC}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- turbodbc: ${TURBODBC}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *conda-volumes
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_turbodbc.sh /turbodbc /build"]
-
- conda-python-kartothek:
- # Possible $KARTOTHEK parameters:
- # - `latest`: latest release
- # - `master`: git master branch, use `docker-compose run --no-cache`
- # - `<version>`: specific version available under github releases
- # Usage:
- # docker-compose build conda
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-kartothek
- # docker-compose run --rm conda-python-kartothek
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-kartothek-${KARTOTHEK}
- build:
- context: .
- dockerfile: ci/docker/conda-python-kartothek.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-kartothek-${KARTOTHEK}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- kartothek: ${KARTOTHEK}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *conda-volumes
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_kartothek.sh /kartothek /build"]
-
- ################################## R ########################################
-
- ubuntu-r:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-r
- # docker-compose run ubuntu-r
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-r-${R}
- build:
- context: .
- dockerfile: ci/docker/linux-apt-r.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-r-${R}
- args:
- arch: ${ARCH}
- r: ${R}
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- shm_size: *shm-size
- environment:
- <<: *ccache
- ARROW_R_CXXFLAGS: '-Werror'
- LIBARROW_BUILD: 'false'
- NOT_CRAN: 'true'
- volumes: *ubuntu-volumes
- command: >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/r_test.sh /arrow"
-
- r:
- # This lets you test building/installing the arrow R package
- # (including building the C++ library) on any Docker image that contains R
- #
- # Usage:
- # R_ORG=rhub R_IMAGE=ubuntu-gcc-release R_TAG=latest docker-compose build r
- # R_ORG=rhub R_IMAGE=ubuntu-gcc-release R_TAG=latest docker-compose run r
- image: ${REPO}:r-${R_ORG}-${R_IMAGE}-${R_TAG}
- build:
- context: .
- dockerfile: ci/docker/linux-r.dockerfile
- cache_from:
- - ${REPO}:r-${R_ORG}-${R_IMAGE}-${R_TAG}
- args:
- base: ${R_ORG}/${R_IMAGE}:${R_TAG}
- r_dev: ${ARROW_R_DEV}
- devtoolset_version: ${DEVTOOLSET_VERSION}
- shm_size: *shm-size
- environment:
- LIBARROW_DOWNLOAD: "false"
- ARROW_SOURCE_HOME: "/arrow"
- ARROW_R_DEV: ${ARROW_R_DEV}
- # To test for CRAN release, delete ^^ these two env vars so we download the Apache release
- ARROW_USE_PKG_CONFIG: "false"
- devtoolset_version: ${DEVTOOLSET_VERSION}
- volumes:
- - .:/arrow:delegated
- command: >
- /bin/bash -c "/arrow/ci/scripts/r_test.sh /arrow"
-
- ubuntu-r-sanitizer:
- # Only 18.04 and amd64 supported
- # Usage:
- # docker-compose build ubuntu-r-sanitizer
- # docker-compose run ubuntu-r-sanitizer
- image: ${REPO}:amd64-ubuntu-18.04-r-sanitizer
- cap_add:
- # LeakSanitizer and gdb requires ptrace(2)
- - SYS_PTRACE
- build:
- context: .
- dockerfile: ci/docker/linux-r.dockerfile
- cache_from:
- - ${REPO}:amd64-ubuntu-18.04-r-sanitizer
- args:
- base: wch1/r-debug:latest
- r_bin: RDsan
- environment:
- <<: *ccache
- volumes: *ubuntu-volumes
- command: >
- /bin/bash -c "
- /arrow/ci/scripts/r_sanitize.sh /arrow"
-
- ################################# Go ########################################
-
- debian-go:
- # Usage:
- # docker-compose build debian-go
- # docker-compose run debian-go
- image: ${REPO}:${ARCH}-debian-10-go-${GO}
- build:
- context: .
- dockerfile: ci/docker/debian-10-go.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-10-go-${GO}
- args:
- arch: ${ARCH}
- go: ${GO}
- shm_size: *shm-size
- volumes: *debian-volumes
- command: &go-command >
- /bin/bash -c "
- /arrow/ci/scripts/go_build.sh /arrow &&
- /arrow/ci/scripts/go_test.sh /arrow"
-
- ############################# JavaScript ####################################
-
- debian-js:
- # Usage:
- # docker-compose build debian-js
- # docker-compose run debian-js
- image: ${REPO}:${ARCH}-debian-10-js-${NODE}
- build:
- context: .
- dockerfile: ci/docker/debian-10-js.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-10-js-${NODE}
- args:
- arch: ${ARCH}
- node: ${NODE}
- shm_size: *shm-size
- volumes: *debian-volumes
- command: &js-command >
- /bin/bash -c "
- /arrow/ci/scripts/js_build.sh /arrow &&
- /arrow/ci/scripts/js_test.sh /arrow"
-
- #################################### C# #####################################
-
- ubuntu-csharp:
- # Usage:
- # docker-compose build ubuntu-csharp
- # docker-compose run ubuntu-csharp
- image: ${REPO}:${ARCH}-ubuntu-18.04-csharp-${DOTNET}
- build:
- context: .
- dockerfile: ci/docker/ubuntu-18.04-csharp.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-18.04-csharp-${DOTNET}
- args:
- dotnet: ${DOTNET}
- platform: bionic # use bionic-arm64v8 for ARM
- shm_size: *shm-size
- volumes: *ubuntu-volumes
- command: &csharp-command >
- /bin/bash -c "
- /arrow/ci/scripts/csharp_build.sh /arrow &&
- /arrow/ci/scripts/csharp_test.sh /arrow &&
- /arrow/ci/scripts/csharp_pack.sh /arrow"
-
- ################################ Java #######################################
-
- debian-java:
- # Usage:
- # docker-compose build debian-java
- # docker-compose run debian-java
- image: ${REPO}:${ARCH}-debian-9-java-${JDK}-maven-${MAVEN}
- build:
- context: .
- dockerfile: ci/docker/debian-9-java.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-9-java-${JDK}-maven-${MAVEN}
- args:
- arch: ${ARCH}
- jdk: ${JDK}
- maven: ${MAVEN}
- shm_size: *shm-size
- volumes: &java-volumes
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}maven-cache:/root/.m2:delegated
- command: &java-command >
- /bin/bash -c "
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/java_test.sh /arrow /build"
-
- debian-java-jni:
- # Includes plasma test and jni for gandiva and orc.
- # Usage:
- # docker-compose build debian-java
- # docker-compose build debian-java-jni
- # docker-compose run debian-java-jni
- image: ${REPO}:${ARCH}-debian-9-java-jni
- build:
- context: .
- dockerfile: ci/docker/linux-apt-jni.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-debian-9-java-jni
- args:
- base: ${REPO}:${ARCH}-debian-9-java-${JDK}-maven-${MAVEN}
- llvm: ${LLVM}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes:
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}maven-cache:/root/.m2:delegated
- - ${DOCKER_VOLUME_PREFIX}debian-ccache:/ccache:delegated
- command:
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/java_test.sh /arrow /build"
-
- ############################## Integration ##################################
-
- conda-integration:
- # Usage:
- # docker-compose build conda-cpp
- # docker-compose build conda-integration
- # docker-compose run conda-integration
- image: ${REPO}:${ARCH}-conda-integration
- build:
- context: .
- dockerfile: ci/docker/conda-integration.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-integration
- args:
- repo: ${REPO}
- arch: ${ARCH}
- jdk: ${JDK}
- # conda-forge doesn't have 3.5.4 so pinning explicitly, but this should
- # be set to ${MAVEN}
- maven: 3.5
- node: ${NODE}
- go: ${GO}
- volumes: *conda-volumes
- environment:
- <<: *ccache
- # tell archery where the arrow binaries are located
- ARROW_CPP_EXE_PATH: /build/cpp/debug
- command:
- ["/arrow/ci/scripts/rust_build.sh /arrow /build &&
- /arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/go_build.sh /arrow &&
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/js_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_arrow.sh /arrow /build"]
-
- ################################ Docs #######################################
-
- ubuntu-docs:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-python
- # docker-compose build ubuntu-docs
- # docker-compose run --rm ubuntu-docs
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-docs
- build:
- context: .
- dockerfile: ci/docker/linux-apt-docs.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-docs
- args:
- jdk: ${JDK}
- node: ${NODE}
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-python-3
- environment:
- <<: *ccache
- ARROW_CUDA: "ON"
- ARROW_GLIB_GTK_DOC: "true"
- volumes: *ubuntu-volumes
- command: &docs-command >
- /bin/bash -c "
- /arrow/ci/scripts/cpp_build.sh /arrow /build true &&
- /arrow/ci/scripts/c_glib_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/java_build.sh /arrow /build true &&
- /arrow/ci/scripts/js_build.sh /arrow true &&
- /arrow/ci/scripts/r_build.sh /arrow true &&
- /arrow/ci/scripts/docs_build.sh /arrow /build"
-
- ################################# Tools #####################################
-
- ubuntu-lint:
- # Usage:
- # docker-compose build ubuntu-cpp
- # docker-compose build ubuntu-lint
- # docker-compose run ubuntu-lint
- image: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-lint
- build:
- context: .
- dockerfile: ci/docker/linux-apt-lint.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-ubuntu-${UBUNTU}-lint
- args:
- base: ${REPO}:${ARCH}-ubuntu-${UBUNTU}-cpp
- clang_tools: ${CLANG_TOOLS}
- rust: ${RUST}
- environment:
- <<: *ccache
- volumes: *ubuntu-volumes
- command: >
- /bin/bash -c "
- pip install -e /arrow/dev/archery &&
- archery lint --all --no-clang-tidy --no-iwyu --no-numpydoc"
-
- ######################### Integration Tests #################################
-
- postgres:
- # required for the impala service
- image: postgres
- ports:
- - 5432:5432
- environment:
- POSTGRES_PASSWORD: postgres
-
- impala:
- # required for the hiveserver and hdfs tests
- image: ibisproject/impala:latest
- hostname: impala
- links:
- - postgres:postgres
- environment:
- PGPASSWORD: postgres
- ports:
- # HDFS
- - 9020:9020
- - 50070:50070
- - 50075:50075
- - 8020:8020
- - 8042:8042
- # Hive
- - 9083:9083
- # Impala
- - 21000:21000
- - 21050:21050
- - 25000:25000
- - 25010:25010
- - 25020:25020
-
- conda-cpp-hiveserver2:
- # Usage:
- # docker-compose build conda-cpp
- # docker-compose build conda-cpp-hiveserver2
- # docker-compose run conda-cpp-hiveserver2
- image: ${REPO}:${ARCH}-conda-cpp
- links:
- - impala:impala
- environment:
- <<: *ccache
- ARROW_FLIGHT: "OFF"
- ARROW_GANDIVA: "OFF"
- ARROW_PLASMA: "OFF"
- ARROW_HIVESERVER2: "ON"
- ARROW_HIVESERVER2_TEST_HOST: impala
- shm_size: *shm-size
- volumes: *conda-volumes
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_hiveserver2.sh /arrow /build"]
-
- conda-python-hdfs:
- # Usage:
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-hdfs
- # docker-compose run conda-python-hdfs
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-hdfs-${HDFS}
- build:
- context: .
- dockerfile: ci/docker/conda-python-hdfs.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-hdfs-${HDFS}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- jdk: ${JDK}
- # conda-forge doesn't have 3.5.4 so pinning explicitly, but this should
- # be set to ${MAVEN}
- maven: 3.5
- hdfs: ${HDFS}
- links:
- - impala:impala
- environment:
- <<: *ccache
- ARROW_HDFS: "ON"
- ARROW_HDFS_TEST_HOST: impala
- ARROW_HDFS_TEST_PORT: 8020
- ARROW_HDFS_TEST_USER: hdfs
- ARROW_S3: "OFF"
- CMAKE_UNITY_BUILD: "ON"
- shm_size: *shm-size
- volumes: &conda-maven-volumes
- - .:/arrow:delegated
- - ${DOCKER_VOLUME_PREFIX}maven-cache:/root/.m2:delegated
- - ${DOCKER_VOLUME_PREFIX}conda-ccache:/ccache:delegated
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_hdfs.sh /arrow /build"]
-
- conda-python-spark:
- # Usage:
- # docker-compose build conda-cpp
- # docker-compose build conda-python
- # docker-compose build conda-python-spark
- # docker-compose run conda-python-spark
- image: ${REPO}:${ARCH}-conda-python-${PYTHON}-spark-${SPARK}
- build:
- context: .
- dockerfile: ci/docker/conda-python-spark.dockerfile
- cache_from:
- - ${REPO}:${ARCH}-conda-python-${PYTHON}-spark-${SPARK}
- args:
- repo: ${REPO}
- arch: ${ARCH}
- python: ${PYTHON}
- jdk: ${JDK}
- # conda-forge doesn't have 3.5.4 so pinning explicitly, but this should
- # be set to ${MAVEN}
- maven: 3.5
- spark: ${SPARK}
- shm_size: *shm-size
- environment:
- <<: *ccache
- volumes: *conda-maven-volumes
- command:
- ["/arrow/ci/scripts/cpp_build.sh /arrow /build &&
- /arrow/ci/scripts/python_build.sh /arrow /build &&
- /arrow/ci/scripts/java_build.sh /arrow /build &&
- /arrow/ci/scripts/integration_spark.sh /arrow /spark ${TEST_PYARROW_ONLY:-false}"]