From cc22020900133c716d80f09487086c01afdbac94 Mon Sep 17 00:00:00 2001 From: Liam Young Date: Mon, 16 Jan 2023 16:04:51 +0000 Subject: [PATCH] Fix charm for tox4 compatibility Related-Bug: 2002788 Change-Id: I33c43ac69cc0ea3899a3f49ac83dcb58ed059317 --- osci.yaml | 4 ++-- pip.sh | 18 ------------------ test-requirements.txt | 1 - tox.ini | 34 +++++++++++++++------------------- 4 files changed, 17 insertions(+), 40 deletions(-) delete mode 100755 pip.sh diff --git a/osci.yaml b/osci.yaml index 995dca55..28c0617b 100644 --- a/osci.yaml +++ b/osci.yaml @@ -12,7 +12,7 @@ needs_charm_build: true charm_build_name: openstack-dashboard build_type: charmcraft - charmcraft_channel: 2.0/stable + charmcraft_channel: 2.1/stable - job: name: jammy-yoga-gr @@ -23,4 +23,4 @@ soft: true - charm-build vars: - tox_extra_args: vault:jammy-vault dashboard:jammy-yoga-cmr-vault + tox_extra_args: '-- vault:jammy-vault dashboard:jammy-yoga-cmr-vault' diff --git a/pip.sh b/pip.sh deleted file mode 100755 index 9a7e6b09..00000000 --- a/pip.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/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 "$@" diff --git a/test-requirements.txt b/test-requirements.txt index 4ef87dc5..40d87f30 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -8,7 +8,6 @@ # all of its own requirements and if it doesn't, fix it there. # pyparsing<3.0.0 # aodhclient is pinned in zaza and needs pyparsing < 3.0.0, but cffi also needs it, so pin here. -setuptools<50.0.0 # https://github.com/pypa/setuptools/commit/04e3df22df840c6bb244e9b27bc56750c44b7c85 requests>=2.18.4 diff --git a/tox.ini b/tox.ini index bddbd1f2..ae4d124c 100644 --- a/tox.ini +++ b/tox.ini @@ -9,47 +9,43 @@ # all of its own requirements and if it doesn't, fix it there. [tox] envlist = pep8,py3 -skipsdist = True # NOTE: Avoid build/test env pollution by not enabling sitepackages. sitepackages = False # NOTE: 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] +# We use tox mainly for virtual environment management for test requirements +# and do not install the charm code as a Python package into that environment. +# Ref: https://tox.wiki/en/latest/config.html#skip_install +skip_install = True setenv = VIRTUAL_ENV={envdir} PYTHONHASHSEED=0 CHARM_DIR={envdir} -install_command = - {toxinidir}/pip.sh install {opts} {packages} commands = stestr run --slowest {posargs} allowlist_externals = charmcraft rename.sh -passenv = HOME TERM CS_* OS_* TEST_* +passenv = + HOME + TERM + CS_* + OS_* + TEST_* deps = -r{toxinidir}/test-requirements.txt [testenv:build] basepython = python3 deps = -r{toxinidir}/build-requirements.txt +# charmcraft clean is done to ensure that +# `tox -e build` always performs a clean, repeatable build. +# For faster rebuilds during development, +# directly run `charmcraft -v pack && ./rename.sh`. commands = charmcraft clean charmcraft -v pack {toxinidir}/rename.sh + charmcraft clean [testenv:py310] basepython = python3.10