From 065e1509a3ffb63405cf15abce2985fe43797634 Mon Sep 17 00:00:00 2001 From: Liam Young Date: Mon, 16 Jan 2023 16:04:49 +0000 Subject: [PATCH] Fix charm for tox4 compatibility Related-Bug: 2002788 Change-Id: I09fc4c7e30fd4cb41e441adb84420f3bc3dd42ab --- osci.yaml | 2 +- pip.sh | 18 ------------------ test-requirements.txt | 1 - tests/bundles/jammy-yoga.yaml | 2 -- tests/bundles/jammy-zed.yaml | 2 -- tests/bundles/kinetic-zed.yaml | 2 -- tox.ini | 34 +++++++++++++++------------------- 7 files changed, 16 insertions(+), 45 deletions(-) delete mode 100755 pip.sh diff --git a/osci.yaml b/osci.yaml index b242472..4dd244f 100644 --- a/osci.yaml +++ b/osci.yaml @@ -6,4 +6,4 @@ needs_charm_build: true charm_build_name: ceilometer-agent 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..40d87f3 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/tests/bundles/jammy-yoga.yaml b/tests/bundles/jammy-yoga.yaml index 42b8e68..5d672f0 100644 --- a/tests/bundles/jammy-yoga.yaml +++ b/tests/bundles/jammy-yoga.yaml @@ -69,8 +69,6 @@ applications: rabbitmq-server: charm: ch:rabbitmq-server num_units: 1 - options: - source: *openstack-origin to: - '3' channel: latest/edge diff --git a/tests/bundles/jammy-zed.yaml b/tests/bundles/jammy-zed.yaml index d88c4b9..1659f19 100644 --- a/tests/bundles/jammy-zed.yaml +++ b/tests/bundles/jammy-zed.yaml @@ -69,8 +69,6 @@ applications: rabbitmq-server: charm: ch:rabbitmq-server num_units: 1 - options: - source: *openstack-origin to: - '3' channel: latest/edge diff --git a/tests/bundles/kinetic-zed.yaml b/tests/bundles/kinetic-zed.yaml index f69bf5e..5dccc36 100644 --- a/tests/bundles/kinetic-zed.yaml +++ b/tests/bundles/kinetic-zed.yaml @@ -69,8 +69,6 @@ applications: rabbitmq-server: charm: ch:rabbitmq-server num_units: 1 - options: - source: *openstack-origin to: - '3' 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