Wrap pip to force pip<20.3 and setuptools<50.0.0
Osci runs the CI jobs on Bionic, this version of tox (2.5) will automatically upgrade the packages at virtualenv creation and any pinning won't have effect since the virtualenv created is upgraded to the latest versions of pip and setuptools. This behavior was changed in tox 3.10 with the addition of the 'download' directive[0] Setuptools 58.0 dropped the support for use_2to3=true which is needed to install blessings (an indirect dependency of charm-tools) since then the gate got broken. This is similar to: https://github.com/openstack-charmers/release-tools/pull/156 https://github.com/openstack-charmers/release-tools/pull/157 Change-Id: I7f22cd744a7aa5747cca49f094a5efd041481a80 Co-authored-by: Felipe Reyes <felipe.reyes@canonical.com>
This commit is contained in:
parent
207bac8bec
commit
4793ceba5f
18
pip.sh
Executable file
18
pip.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# This file is managed centrally by release-tools and should not be modified
|
||||
# within individual charm repos. See the 'global' dir contents for available
|
||||
# choices of tox.ini for OpenStack Charms:
|
||||
# https://github.com/openstack-charmers/release-tools
|
||||
#
|
||||
# setuptools 58.0 dropped the support for use_2to3=true which is needed to
|
||||
# install blessings (an indirect dependency of charm-tools).
|
||||
#
|
||||
# More details on the beahvior of tox and virtualenv creation can be found at
|
||||
# https://github.com/tox-dev/tox/issues/448
|
||||
#
|
||||
# This script is wrapper to force the use of the pinned versions early in the
|
||||
# process when the virtualenv was created and upgraded before installing the
|
||||
# depedencies declared in the target.
|
||||
pip install 'pip<20.3' 'setuptools<50.0.0'
|
||||
pip "$@"
|
18
tox.ini
18
tox.ini
@ -7,6 +7,22 @@ sitepackages = False
|
||||
# NOTE(beisner): Avoid false positives by not skipping missing interpreters.
|
||||
skip_missing_interpreters = False
|
||||
|
||||
# NOTES:
|
||||
# * We avoid the new dependency resolver by pinning pip < 20.3, see
|
||||
# https://github.com/pypa/pip/issues/9187
|
||||
# * Pinning dependencies requires tox >= 3.2.0, see
|
||||
# https://tox.readthedocs.io/en/latest/config.html#conf-requires
|
||||
# * It is also necessary to pin virtualenv as a newer virtualenv would still
|
||||
# lead to fetching the latest pip in the func* tox targets, see
|
||||
# https://stackoverflow.com/a/38133283
|
||||
requires =
|
||||
pip < 20.3
|
||||
virtualenv < 20.0
|
||||
setuptools<50.0.0
|
||||
|
||||
# NOTE: https://wiki.canonical.com/engineering/OpenStack/InstallLatestToxOnOsci
|
||||
minversion = 3.18.0
|
||||
|
||||
[testenv]
|
||||
basepython = python3
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
@ -15,7 +31,7 @@ setenv = VIRTUAL_ENV={envdir}
|
||||
JUJU_REPOSITORY={envdir}/tmp/build
|
||||
passenv = http_proxy https_proxy
|
||||
install_command =
|
||||
pip install {opts} {packages}
|
||||
{toxinidir}/pip.sh install {opts} {packages}
|
||||
deps =
|
||||
-r{toxinidir}/requirements.txt
|
||||
whitelist_externals = /bin/true /bin/echo /bin/mkdir /bin/ln
|
||||
|
Loading…
Reference in New Issue
Block a user