This is an automated email from the ASF dual-hosted git repository.

uwe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new db03663  ARROW-2182: [Python] Build C++ libraries in benchmarks build 
step
db03663 is described below

commit db036630021fc8334ea29a3a3dcff01a206ac517
Author: Antoine Pitrou <anto...@python.org>
AuthorDate: Thu Apr 12 11:44:25 2018 +0200

    ARROW-2182: [Python] Build C++ libraries in benchmarks build step
    
    Also add a Travis-CI step to check the benchmarking setup (in one matrix 
configuration).
    
    Author: Antoine Pitrou <anto...@python.org>
    
    Closes #1775 from pitrou/ARROW-2182-asv-cpp-build and squashes the 
following commits:
    
    82a5b01 <Antoine Pitrou> ARROW-2182:  Build C++ libraries in benchmarks 
build step
---
 .travis.yml                 |  2 ++
 ci/travis_script_python.sh  | 21 +++++++++++++++++-
 python/README-benchmarks.md | 19 ++++++----------
 python/asv-build.sh         | 53 +++++++++++++++++++++++++++++++++++++++++++++
 python/asv-install.sh       | 21 ++++++++++++++++++
 python/asv-uninstall.sh     | 21 ++++++++++++++++++
 python/asv.conf.json        | 12 ++++++++++
 7 files changed, 136 insertions(+), 13 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index c3e08b9..2fd31be 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -52,6 +52,8 @@ matrix:
     - ARROW_TRAVIS_PLASMA=1
     - ARROW_TRAVIS_ORC=1
     - ARROW_TRAVIS_CLANG_FORMAT=1
+    - ARROW_TRAVIS_PYTHON_BENCHMARKS=1
+    - ARROW_TRAVIS_PYTHON_DOCS=1
     - ARROW_BUILD_WARNING_LEVEL=CHECKIN
     - CC="clang-5.0"
     - CXX="clang++-5.0"
diff --git a/ci/travis_script_python.sh b/ci/travis_script_python.sh
index 8421e5c..325272f 100755
--- a/ci/travis_script_python.sh
+++ b/ci/travis_script_python.sh
@@ -107,7 +107,7 @@ fi
 PYARROW_PATH=$CONDA_PREFIX/lib/python$PYTHON_VERSION/site-packages/pyarrow
 python -m pytest -r sxX --durations=15 $PYARROW_PATH --parquet
 
-if [ "$PYTHON_VERSION" == "3.6" ] && [ $TRAVIS_OS_NAME == "linux" ]; then
+if [ "$ARROW_TRAVIS_PYTHON_DOCS" == "1" ] && [ "$PYTHON_VERSION" == "3.6" ]; 
then
   # Build documentation once
   conda install -y -q \
         ipython \
@@ -120,3 +120,22 @@ if [ "$PYTHON_VERSION" == "3.6" ] && [ $TRAVIS_OS_NAME == 
"linux" ]; then
   sphinx-build -q -b html -d _build/doctrees -W source _build/html
   popd
 fi
+
+if [ "$ARROW_TRAVIS_PYTHON_BENCHMARKS" == "1" ] && [ "$PYTHON_VERSION" == 
"3.6" ]; then
+  # 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
+  source activate pyarrow_asv
+  pip install -q git+https://github.com/pitrou/asv.git@customize_commands
+
+  pushd $TRAVIS_BUILD_DIR/python
+  # 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 ${TRAVIS_COMMIT}^!
+  popd
+fi
diff --git a/python/README-benchmarks.md b/python/README-benchmarks.md
index 60fa88f..c51d36e 100644
--- a/python/README-benchmarks.md
+++ b/python/README-benchmarks.md
@@ -32,21 +32,16 @@ use your current Python interpreter and environment.
 ## Running with arbitrary revisions
 
 ASV allows to store results and generate graphs of the benchmarks over
-the project's evolution.  Doing this requires a bit more massaging
-currently.
-
-First you have to install ASV's development version:
+the project's evolution.  For this you have to install our fork of ASV:
 
 ```shell
-pip install git+https://github.com/airspeed-velocity/asv.git
-```
-
-Then you need to set up a few environment variables:
-
-```shell
-export SETUPTOOLS_SCM_PRETEND_VERSION=0.0.1
-export PYARROW_BUNDLE_ARROW_CPP=1
+pip install git+https://github.com/pitrou/asv.git@customize_commands
 ```
 
 Now you should be ready to run `asv run` or whatever other command
 suits your needs.
+
+## Compatibility
+
+We only expect the benchmarking setup to work with Python 3.6 or later,
+on a Unix-like system.
diff --git a/python/asv-build.sh b/python/asv-build.sh
new file mode 100755
index 0000000..31e56ed
--- /dev/null
+++ b/python/asv-build.sh
@@ -0,0 +1,53 @@
+#!/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.
+
+set -e
+
+# ASV doesn't activate its conda environment for us
+source activate $ASV_ENV_PATH
+
+# Build Arrow C++ libraries
+export ARROW_BUILD_TOOLCHAIN=$CONDA_PREFIX
+export ARROW_HOME=$CONDA_PREFIX
+
+echo $CONDA_PREFIX
+
+pushd ../cpp
+mkdir -p build
+pushd build
+
+cmake -GNinja \
+      -DCMAKE_BUILD_TYPE=release \
+      -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
+      -DARROW_CXXFLAGS=$CXXFLAGS \
+      -DARROW_PYTHON=ON \
+      -DARROW_BUILD_TESTS=OFF \
+      ..
+cmake --build . --target install
+
+popd
+popd
+
+# Build pyarrow wrappers
+export SETUPTOOLS_SCM_PRETEND_VERSION=0.0.1
+export PYARROW_BUILD_TYPE=release
+
+python setup.py clean
+find pyarrow -name "*.so" -delete
+python setup.py develop
diff --git a/python/asv-install.sh b/python/asv-install.sh
new file mode 100644
index 0000000..67d2c18
--- /dev/null
+++ b/python/asv-install.sh
@@ -0,0 +1,21 @@
+#!/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.
+
+# Deliberately empty, but exists so that we don't have to change
+# asv.conf.json if we need specific commands here.
diff --git a/python/asv-uninstall.sh b/python/asv-uninstall.sh
new file mode 100644
index 0000000..67d2c18
--- /dev/null
+++ b/python/asv-uninstall.sh
@@ -0,0 +1,21 @@
+#!/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.
+
+# Deliberately empty, but exists so that we don't have to change
+# asv.conf.json if we need specific commands here.
diff --git a/python/asv.conf.json b/python/asv.conf.json
index 150153c..98ee040 100644
--- a/python/asv.conf.json
+++ b/python/asv.conf.json
@@ -35,6 +35,10 @@
     // of the repository.
     "repo_subdir": "python",
 
+    "build_command": ["/bin/bash", "asv-build.sh"],
+    "install_command": ["/bin/bash", "asv-install.sh"],
+    "uninstall_command": ["/bin/bash", "asv-uninstall.sh"],
+
     // List of branches to benchmark. If not provided, defaults to "master"
     // (for git) or "default" (for mercurial).
     // "branches": ["master"], // for git
@@ -78,11 +82,19 @@
     // },
     "matrix": {
         "boost-cpp": [],
+        "brotli": [],
         "cmake": [],
         "cython": [],
+        "flatbuffers": [],
+        "libprotobuf": [],
+        "lz4-c": [],
+        "ninja": [],
         "numpy": ["1.14"],
         "pandas": ["0.22"],
         "pip+setuptools_scm": [],
+        "rapidjson": [],
+        "snappy": [],
+        "zstd": [],
     },
 
     // Combinations of libraries/python versions can be excluded/included

-- 
To stop receiving notification emails like this one, please contact
u...@apache.org.

Reply via email to