From 9013bb0c24623ce8d064b561d4fd331e370762e1 Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Wed, 4 Nov 2015 12:31:39 -0500 Subject: [PATCH] remove wheel cache code Thanks to lifeless, pip now implicitly has a wheel cache so that it builds a wheel before every install, and uses that cache. All our clever attempts at manually doing wheelhouse things is actually bypassing the existing cache and making things take longer. We should remove all of this code and just let pip do this thing, which is does very well, and get out of the way. Change-Id: Ia140dc34638d893b92f66d1ba20efd9522c5923b --- Makefile | 6 +-- doc/source/index.rst | 1 - files/venv-requirements.txt | 11 ----- stack.sh | 6 --- stackrc | 5 --- tools/build_wheels.sh | 86 ------------------------------------- 6 files changed, 1 insertion(+), 114 deletions(-) delete mode 100644 files/venv-requirements.txt delete mode 100755 tools/build_wheels.sh diff --git a/Makefile b/Makefile index a6bb230708..a94d60a0ef 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,6 @@ # Duplicated from stackrc for now DEST=/opt/stack -WHEELHOUSE=$(DEST)/.wheelhouse all: echo "This just saved you from a terrible mistake!" @@ -25,9 +24,6 @@ stack: unstack: ./unstack.sh -wheels: - WHEELHOUSE=$(WHEELHOUSE) tools/build_wheels.sh - docs: tox -edocs @@ -57,7 +53,7 @@ clean: # Clean out the cache too realclean: clean - rm -rf files/cirros*.tar.gz files/Fedora*.qcow2 $(WHEELHOUSE) + rm -rf files/cirros*.tar.gz files/Fedora*.qcow2 # Repo stuffs diff --git a/doc/source/index.rst b/doc/source/index.rst index 99e96b1d1a..b65730ffe8 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -206,7 +206,6 @@ Tools * `tools/build\_docs.sh `__ * `tools/build\_venv.sh `__ -* `tools/build\_wheels.sh `__ * `tools/create-stack-user.sh `__ * `tools/create\_userrc.sh `__ * `tools/fixup\_stuff.sh `__ diff --git a/files/venv-requirements.txt b/files/venv-requirements.txt deleted file mode 100644 index b9a55b423d..0000000000 --- a/files/venv-requirements.txt +++ /dev/null @@ -1,11 +0,0 @@ -# Once we can prebuild wheels before a devstack run, uncomment the skipped libraries -cryptography -# lxml # still install from from packages -# netifaces # still install from packages -#numpy # slowest wheel by far, stop building until we are actually using the output -posix-ipc -# psycopg # still install from packages -pycrypto -pyOpenSSL -PyYAML -xattr diff --git a/stack.sh b/stack.sh index bdbb025a0b..aedc5d4006 100755 --- a/stack.sh +++ b/stack.sh @@ -716,12 +716,6 @@ source $TOP_DIR/tools/fixup_stuff.sh # Install required infra support libraries install_infra -# Pre-build some problematic wheels -if [[ -n ${WHEELHOUSE:-} && ! -d ${WHEELHOUSE:-} ]]; then - source $TOP_DIR/tools/build_wheels.sh -fi - - # Extras Pre-install # ------------------ # Phase: pre-install diff --git a/stackrc b/stackrc index 819aa0125c..d9f477e8ce 100644 --- a/stackrc +++ b/stackrc @@ -143,11 +143,6 @@ USE_VENV=$(trueorfalse False USE_VENV) # requirmenets files here, in a comma-separated list ADDITIONAL_VENV_PACKAGES=${ADITIONAL_VENV_PACKAGES:-""} -# Configure wheel cache location -export WHEELHOUSE=${WHEELHOUSE:-$DEST/.wheelhouse} -export PIP_WHEEL_DIR=${PIP_WHEEL_DIR:-$WHEELHOUSE} -export PIP_FIND_LINKS=${PIP_FIND_LINKS:-file://$WHEELHOUSE} - # This can be used to turn database query logging on and off # (currently only implemented for MySQL backend) DATABASE_QUERY_LOGGING=$(trueorfalse False DATABASE_QUERY_LOGGING) diff --git a/tools/build_wheels.sh b/tools/build_wheels.sh deleted file mode 100755 index 14c2999c8f..0000000000 --- a/tools/build_wheels.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env bash -# -# **tools/build_wheels.sh** - Build a cache of Python wheels -# -# build_wheels.sh [package [...]] -# -# System package prerequisites listed in ``files/*/devlibs`` will be installed -# -# Builds wheels for all virtual env requirements listed in -# ``venv-requirements.txt`` plus any supplied on the command line. -# -# Assumes: -# - ``tools/install_pip.sh`` has been run and a suitable ``pip/setuptools`` is available. - -# If ``TOP_DIR`` is set we're being sourced rather than running stand-alone -# or in a sub-shell -if [[ -z "$TOP_DIR" ]]; then - - set -o errexit - set -o nounset - - # Keep track of the DevStack directory - TOP_DIR=$(cd $(dirname "$0")/.. && pwd) - FILES=$TOP_DIR/files - - # Import common functions - source $TOP_DIR/functions - - GetDistro - - source $TOP_DIR/stackrc - - trap err_trap ERR - -fi - -# Get additional packages to build -MORE_PACKAGES="$@" - -# Exit on any errors so that errors don't compound -function err_trap { - local r=$? - set +o xtrace - - rm -rf $TMP_VENV_PATH - - exit $r -} - -# Get system prereqs -install_package $(get_packages devlibs) - -# Get a modern ``virtualenv`` -pip_install virtualenv - -# Prepare the workspace -TMP_VENV_PATH=$(mktemp -d tmp-venv-XXXX) -virtualenv $TMP_VENV_PATH - -# Install modern pip and wheel -PIP_VIRTUAL_ENV=$TMP_VENV_PATH pip_install -U pip wheel - -# BUG: cffi has a lot of issues. It has no stable ABI, if installed -# code is built with a different ABI than the one that's detected at -# load time, it tries to compile on the fly for the new ABI in the -# install location (which will probably be /usr and not -# writable). Also cffi is often included via setup_requires by -# packages, which have different install rules (allowing betas) than -# pip has. -# -# Because of this we must pip install cffi into the venv to build -# wheels. -PIP_VIRTUAL_ENV=$TMP_VENV_PATH pip_install_gr cffi - -# ``VENV_PACKAGES`` is a list of packages we want to pre-install -VENV_PACKAGE_FILE=$FILES/venv-requirements.txt -if [[ -r $VENV_PACKAGE_FILE ]]; then - VENV_PACKAGES=$(grep -v '^#' $VENV_PACKAGE_FILE) -fi - -for pkg in ${VENV_PACKAGES,/ } ${MORE_PACKAGES}; do - $TMP_VENV_PATH/bin/pip wheel $pkg -done - -# Clean up wheel workspace -rm -rf $TMP_VENV_PATH