Add upper-constraints enforcement for local reqs

This adds the use of upper constraints in our tox environments. Jobs
like openstack-tox-py27 have started failing due to trying to install
lib versions that only support Python 3.

The 'generate' target keeps the unconstrained deps since we actually do
need the latest installed for that.

Updates the requirements-integration job to run using py36 since that
now fails with running under py27. This should get the job to pass until
we are able to rewrite it to not be a legacy job.

NOTE(dmllr): updated install_command to include local constraints file

Change-Id: I2598503c2d4397d7efbb03a76df9a4e91dd0c1cf
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
This commit is contained in:
Sean McGinnis 2019-05-09 13:49:16 -05:00 committed by Dirk Mueller
parent 842ed7bbb0
commit 8bad9fe19d
2 changed files with 6 additions and 4 deletions

View File

@ -122,6 +122,7 @@
export DEVSTACK_GATE_EXERCISES=0 export DEVSTACK_GATE_EXERCISES=0
export DEVSTACK_GATE_REQS_INTEGRATION=1 export DEVSTACK_GATE_REQS_INTEGRATION=1
export PIP_PROCESS_DEPENDENCY_LINKS=1 export PIP_PROCESS_DEPENDENCY_LINKS=1
export USE_PYTHON3=true
function gate_hook { function gate_hook {
set -x set -x
bash $BASE/new/devstack-gate/devstack-vm-gate.sh && \ bash $BASE/new/devstack-gate/devstack-vm-gate.sh && \

View File

@ -7,7 +7,7 @@ ignore_basepython_conflict=true
[testenv] [testenv]
basepython = python3 basepython = python3
usedevelop = True usedevelop = True
install_command = pip install -U {opts} {packages} install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages}
setenv = VIRTUAL_ENV={envdir} setenv = VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt -r{toxinidir}/test-requirements.txt
@ -16,13 +16,11 @@ commands =
[testenv:py27-check-uc] [testenv:py27-check-uc]
basepython = python2.7 basepython = python2.7
install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages}
deps = -r{toxinidir}/upper-constraints.txt deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:py36-check-uc] [testenv:py36-check-uc]
basepython = python3.6 basepython = python3.6
install_command = pip install -U {opts} -c {toxinidir}/upper-constraints.txt {packages}
deps = -r{toxinidir}/upper-constraints.txt deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
@ -33,6 +31,10 @@ commands = {posargs}
commands = update-requirements {posargs} commands = update-requirements {posargs}
[testenv:generate] [testenv:generate]
# Generate needs an unconstrained install to get new dependencies
install_command = pip install -U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = generate-constraints {posargs} commands = generate-constraints {posargs}
[testenv:validate] [testenv:validate]
@ -88,7 +90,6 @@ commands =
[testenv:babel] [testenv:babel]
# Use the local upper-constraints.txt file # Use the local upper-constraints.txt file
deps = Babel deps = Babel
install_command = pip install -c upper-constraints.txt {opts} {packages}
commands = {toxinidir}/tools/babel-test.sh commands = {toxinidir}/tools/babel-test.sh
[flake8] [flake8]