diff options
author | Amrith Kumar <amrith@amrith.org> | 2016-11-16 20:23:10 -0500 |
---|---|---|
committer | Amrith Kumar <amrith@amrith.org> | 2016-11-16 22:38:20 -0500 |
commit | 1ae94d4107dc0faf8d936d55f3bb398a709428c4 (patch) | |
tree | 759d0f9e8f1cfa0d8f257d6f1d94dcaa62d1f61d | |
parent | f2435453f38210cd758d616c1bba5490cfb3ca99 (diff) | |
download | python-troveclient-1ae94d4107dc0faf8d936d55f3bb398a709428c4.tar.gz |
Get python-troveclient to use upper-constraints.txt
In review[1] which passed just fine in check some days ago failed in
gate today. This is because the current tox environment uses requests
v2.12.1 which appears to not work and is beyond the value in
upper-constraints.txt. As observed in [2] we need
upper-constraints.txt in python-troveclient.
But since python-troveclient is itself listed in upper-constraints.txt
you can't just stick it in tox.ini and expect good things to happen.
I'm adding a co-author to this change based on [2].
[1] https://review.openstack.org/#/c/382493/
[2] https://review.openstack.org/#/c/398339/
Co-Authored-By: jiansong <jian.song@easystack.cn>
Change-Id: I386efb2d5c147417af7ea25704405977c9b6bbcd
-rwxr-xr-x | tools/tox_install.sh | 55 | ||||
-rw-r--r-- | tox.ini | 4 |
2 files changed, 58 insertions, 1 deletions
diff --git a/tools/tox_install.sh b/tools/tox_install.sh new file mode 100755 index 0000000..1a3164c --- /dev/null +++ b/tools/tox_install.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# Client constraint file contains this client version pin that is in conflict +# with installing the client from source. We should replace the version pin in +# the constraints file before applying it for from-source installation. + +ZUUL_CLONER=/usr/zuul-env/bin/zuul-cloner +BRANCH_NAME=master +CLIENT_NAME=python-troveclient +requirements_installed=$(echo "import openstack_requirements" | python 2>/dev/null ; echo $?) + +set -e + +CONSTRAINTS_FILE=$1 +shift + +install_cmd="pip install" +mydir=$(mktemp -dt "$CLIENT_NAME-tox_install-XXXXXXX") +trap "rm -rf $mydir" EXIT +localfile=$mydir/upper-constraints.txt +if [[ $CONSTRAINTS_FILE != http* ]]; then + CONSTRAINTS_FILE=file://$CONSTRAINTS_FILE +fi +curl $CONSTRAINTS_FILE -k -o $localfile +install_cmd="$install_cmd -c$localfile" + +if [ $requirements_installed -eq 0 ]; then + echo "ALREADY INSTALLED" > /tmp/tox_install.txt + echo "Requirements already installed; using existing package" +elif [ -x "$ZUUL_CLONER" ]; then + echo "ZUUL CLONER" > /tmp/tox_install.txt + pushd $mydir + $ZUUL_CLONER --cache-dir \ + /opt/git \ + --branch $BRANCH_NAME \ + git://git.openstack.org \ + openstack/requirements + cd openstack/requirements + $install_cmd -e . + popd +else + echo "PIP HARDCODE" > /tmp/tox_install.txt + if [ -z "$REQUIREMENTS_PIP_LOCATION" ]; then + REQUIREMENTS_PIP_LOCATION="git+https://git.openstack.org/openstack/requirements@$BRANCH_NAME#egg=requirements" + fi + $install_cmd -U -e ${REQUIREMENTS_PIP_LOCATION} +fi + +# This is the main purpose of the script: Allow local installation of +# the current repo. It is listed in constraints file and thus any +# install will be constrained and we need to unconstrain it. +edit-constraints $localfile -- $CLIENT_NAME "-e file://$PWD#egg=$CLIENT_NAME" + +$install_cmd -U $* +exit $? @@ -13,7 +13,9 @@ setenv = VIRTUAL_ENV={envdir} NOSE_OPENSTACK_YELLOW=0.025 NOSE_OPENSTACK_SHOW_ELAPSED=1 usedevelop = True -install_command = pip install -U {opts} {packages} +install_command = {toxinidir}/tools/tox_install.sh \ + {env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} \ + {opts} {packages} deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = find . -type f -name "*.pyc" -delete |