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
This commit is contained in:
parent
73de4a42d9
commit
9013bb0c24
6
Makefile
6
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
|
||||
|
||||
|
@ -206,7 +206,6 @@ Tools
|
||||
|
||||
* `tools/build\_docs.sh <tools/build_docs.sh.html>`__
|
||||
* `tools/build\_venv.sh <tools/build_venv.sh.html>`__
|
||||
* `tools/build\_wheels.sh <tools/build_wheels.sh.html>`__
|
||||
* `tools/create-stack-user.sh <tools/create-stack-user.sh.html>`__
|
||||
* `tools/create\_userrc.sh <tools/create_userrc.sh.html>`__
|
||||
* `tools/fixup\_stuff.sh <tools/fixup_stuff.sh.html>`__
|
||||
|
@ -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
|
6
stack.sh
6
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
|
||||
|
5
stackrc
5
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)
|
||||
|
@ -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
|
Loading…
Reference in New Issue
Block a user