From 2a10ff296f1dc34f7ed94740b3501c186454b8fb Mon Sep 17 00:00:00 2001 From: Liam Young Date: Tue, 17 Jan 2023 09:33:09 +0000 Subject: [PATCH] Fix charm for tox4 compatibility Related-Bug: 2002788 Change-Id: I626a4bff6a04efcb150f19ca9dee628292ed3008 --- osci.yaml | 2 +- pip.sh | 18 ------------------ test-requirements.txt | 2 +- tests/bundles/jammy-yoga.yaml | 2 -- tests/bundles/jammy-zed.yaml | 2 -- tests/bundles/kinetic-zed.yaml | 2 -- tox.ini | 34 +++++++++++++++------------------- 7 files changed, 17 insertions(+), 45 deletions(-) delete mode 100755 pip.sh diff --git a/osci.yaml b/osci.yaml index 1b14f5d..cf41aba 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: heat build_type: charmcraft - charmcraft_channel: 2.0/stable + charmcraft_channel: 2.1/stable diff --git a/pip.sh b/pip.sh deleted file mode 100755 index 9a7e6b0..0000000 --- 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 4ef87dc..e972406 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 @@ -27,3 +26,4 @@ git+https://github.com/openstack-charmers/zaza-openstack-tests.git#egg=zaza.open git+https://opendev.org/openstack/tempest.git#egg=tempest croniter # needed for charm-rabbitmq-server unit tests +psutil diff --git a/tests/bundles/jammy-yoga.yaml b/tests/bundles/jammy-yoga.yaml index ee9a9fb..ed0210a 100644 --- a/tests/bundles/jammy-yoga.yaml +++ b/tests/bundles/jammy-yoga.yaml @@ -70,8 +70,6 @@ applications: rabbitmq-server: charm: ch:rabbitmq-server num_units: 1 - options: - source: *openstack-origin to: - '4' channel: latest/edge diff --git a/tests/bundles/jammy-zed.yaml b/tests/bundles/jammy-zed.yaml index 6ca3670..1f41562 100644 --- a/tests/bundles/jammy-zed.yaml +++ b/tests/bundles/jammy-zed.yaml @@ -70,8 +70,6 @@ applications: rabbitmq-server: charm: ch:rabbitmq-server num_units: 1 - options: - source: *openstack-origin to: - '4' channel: latest/edge diff --git a/tests/bundles/kinetic-zed.yaml b/tests/bundles/kinetic-zed.yaml index 9acc072..14dc5d0 100644 --- a/tests/bundles/kinetic-zed.yaml +++ b/tests/bundles/kinetic-zed.yaml @@ -70,8 +70,6 @@ applications: rabbitmq-server: charm: ch:rabbitmq-server num_units: 1 - options: - source: *openstack-origin to: - '4' channel: latest/edge diff --git a/tox.ini b/tox.ini index bddbd1f..ae4d124 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