From 19c55ef01a194175640cb7d3445ef0a8e914cff7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 6 Feb 2020 13:04:17 +0100 Subject: [PATCH 1/4] Fix invocation with Python 3.9 (#1798929) - Recommend Python 3.9 --- py39.patch | 13 +++++++++++++ python-tox.spec | 14 ++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 py39.patch diff --git a/py39.patch b/py39.patch new file mode 100644 index 0000000..4e3c0d5 --- /dev/null +++ b/py39.patch @@ -0,0 +1,13 @@ +diff --git a/src/tox/constants.py b/src/tox/constants.py +index bd21562..e1b7c3f 100644 +--- a/src/tox/constants.py ++++ b/src/tox/constants.py +@@ -28,7 +28,7 @@ def _construct_default_factors(cpython_versions, pypy_versions, other_interprete + class PYTHON: + PY_FACTORS_RE = re.compile("^(?!py$)(py|pypy|jython)([2-9][0-9]?)?$") + PY_FACTORS_MAP = {"py": "python", "pypy": "pypy", "jython": "jython"} +- CPYTHON_VERSION_TUPLES = [(2, 7), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8)] ++ CPYTHON_VERSION_TUPLES = [(2, 7), (3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9)] + PYPY_VERSION_TUPLES = [(2, 7), (3, 5)] + OTHER_PYTHON_INTERPRETERS = ["jython"] + DEFAULT_FACTORS = _construct_default_factors( diff --git a/python-tox.spec b/python-tox.spec index 162ca55..bf74ed5 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -7,13 +7,18 @@ %global pypiname tox Name: python-%{pypiname} Version: 3.5.3 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Virtualenv-based automation of test activities # file toxbootstrap.py is licensed under MIT License License: GPLv2+ and MIT URL: http://tox.testrun.org/ Source0: https://files.pythonhosted.org/packages/source/t/%{pypiname}/%{pypiname}-%{version}.tar.gz + +# Run py39 env with Python 3.9 +# https://bugzilla.redhat.com/show_bug.cgi?id=1798929 +Patch1: py39.patch + BuildArch: noarch %description @@ -50,6 +55,7 @@ Recommends: python35 Recommends: python36 Recommends: python37 Recommends: python38 +Recommends: python39 Recommends: pypy-devel Recommends: pypy3-devel Recommends: python2-devel @@ -79,7 +85,7 @@ can use for: boilerplate and merging CI and shell-based testing. %prep -%setup -q -n %{pypiname}-%{version} +%autosetup -p1 -n %{pypiname}-%{version} # remove bundled egg-info rm -rf %{pypiname}.egg-info @@ -104,6 +110,10 @@ TOXENV=py%{python3_version_nodots} %{__python3} setup.py test %{python3_sitelib}/%{pypiname}-%{version}-py%{python3_version}.egg-info %changelog +* Thu Feb 06 2020 Miro Hrončok - 3.5.3-4 +- Fix invocation with Python 3.9 (#1798929) +- Recommend Python 3.9 + * Fri Feb 15 2019 Lumír Balhar - 3.5.3-3 - Recommend Python 3.8 From 559695054ae334cedee93a781e3722cf0111e845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 6 Feb 2020 13:04:36 +0100 Subject: [PATCH 2/4] Backport %check section from master --- python-tox.spec | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/python-tox.spec b/python-tox.spec index bf74ed5..572991b 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -68,6 +68,8 @@ Obsoletes: python2-tox < 2.9.1-4 # for tests BuildRequires: python3-py BuildRequires: python3-pytest +BuildRequires: python3-pytest-mock +BuildRequires: python3-pytest-xdist BuildRequires: python3-virtualenv %endif @@ -100,7 +102,26 @@ rm -rf %{pypiname}.egg-info # if internet connection available, run tests %if %{with internet} %check -TOXENV=py%{python3_version_nodots} %{__python3} setup.py test +# there will be failures like +# ModuleNotFoundError: tox +# or InterpreterNotFound: python +# We juggle the environment variables as much as we can, but it's not perfect. +# To workaround this: +# 1. build --without internet +# 2. install the new python3-tox +# 3. build --with internet +mkdir .path +ln -s %{__python3} .path/python +ln -s /usr/bin/easy_install-%{python3_version} .path/easy_install +ln -s /usr/bin/pytest-%{python3_version} .path/pytest +ln -s /usr/bin/pip3 .path/pip +export PATH=$(pwd)/.path:%{buildroot}%{_bindir}:$PATH +export PYTHONPATH=%{buildroot}%{python3_sitelib} +export TOXENV=py%{python3_version_nodots} +export TOX_TESTENV_PASSENV="PATH TOX_TESTENV_PASSENV" +# TODO figure out why PEP517/518 tests and test_provision_cli_args_ignore won't pass +pytest-3 -n auto -k "not test_verbose_isolated_build and not test_dist_exists_version_change and not test_alwayscopy" +rm -rf .path %endif %files -n python3-%{pypiname} From dd54a7207e4d4b049cb37da7514d3cd981e9b9dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 6 Feb 2020 13:18:01 +0100 Subject: [PATCH 3/4] Add Python 3.9 to the CI --- tests/tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/tests.yml b/tests/tests.yml index 2f55b4f..b8edb5c 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -26,6 +26,9 @@ - smoke38: dir: python/smoke run: VERSION=3.8 ./venv.sh + - smoke39: + dir: python/smoke + run: VERSION=3.9 ./venv.sh required_packages: - gcc - /usr/bin/virtualenv @@ -34,6 +37,8 @@ - python35 - python36 - python37 + - python38 + - python39 - python2-devel - python3-devel - python3-tox From 4c1aa8b294adeb27062cacd7c7a7d05015bdd052 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 30 Apr 2019 13:59:20 +0200 Subject: [PATCH 4/4] Fedora CI: Workaround No group usr/bin/virtualenv available See https://pagure.io/fedora-ci/general/issue/31 --- tests/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tests.yml b/tests/tests.yml index b8edb5c..6f66a50 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -31,7 +31,7 @@ run: VERSION=3.9 ./venv.sh required_packages: - gcc - - /usr/bin/virtualenv + - virtualenv - python27 - python34 - python35