From b3a2fec5047937cfaa0fe39129ec33e95f873573 Mon Sep 17 00:00:00 2001 From: Gris Ge Date: Tue, 10 Mar 2020 19:36:00 +0800 Subject: [PATCH 1/3] Initial build for EPEL8 The RHEL/CentOS 8.1 is shipping python3-setuptools_scm-1.15.7-4.el8 which limit us to use tox 3.4(as 3.5.0 need setuptools_scm > 2). Signed-off-by: Gris Ge --- python-tox.spec | 73 +++++++++++++------------------------------------ tests/tests.yml | 18 ------------ 2 files changed, 19 insertions(+), 72 deletions(-) diff --git a/python-tox.spec b/python-tox.spec index 213f484..dfdb186 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -1,19 +1,12 @@ -# Tests requiring Internet connections are disabled by default -# pass --with internet to run them (e.g. when doing a local rebuild -# for sanity checks before committing) -%bcond_with internet +%global srcname tox - -%global pypiname tox -Name: python-%{pypiname} +Name: python-%{srcname} Version: 3.4.0 Release: 1%{?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 +License: MIT +URL: https://tox.readthedocs.io +Source0: %{pypi_source} BuildArch: noarch %description @@ -28,45 +21,20 @@ can use for: boilerplate and merging CI and shell-based testing. -%package -n python3-%{pypiname} +%package -n python3-%{srcname} Summary: %{summary} -%{?python_provide:%python_provide python3-%{pypiname}} -Provides: %{pypiname} = %{version}-%{release} +%{?python_provide:%python_provide python3-%{srcname}} +Provides: %{srcname} = %{version}-%{release} BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-setuptools_scm -# Recommend "all the Pythons" -# Why? Tox exists to enable developers to test libraries against various Python -# versions, with just "dnf install tox" and a config file. -# See: https://developer.fedoraproject.org/tech/languages/python/python-installation.html#using-virtualenv -# Tox itself runs on the system python3 (i.e. %%{python3_version}, -# however it launches other Python versions as subprocesses. -# It recommends all Python versions it supports. (This is an exception to -# the rule that Fedora packages may not require the alternative interpreters.) -Recommends: python27 -Recommends: python34 -Recommends: python35 Recommends: python36 -Recommends: python37 -Recommends: pypy-devel -Recommends: pypy3-devel -Recommends: python2-devel Recommends: python3-devel -# Replace the python2 version -Obsoletes: python2-tox < 2.9.1-4 - -%if %{with internet} -# for tests -BuildRequires: python3-py -BuildRequires: python3-pytest -BuildRequires: python3-virtualenv -%endif - %?python_enable_dependency_generator -%description -n python3-%{pypiname} +%description -n python3-%{srcname} Tox as is a generic virtualenv management and test command line tool you can use for: @@ -78,10 +46,10 @@ can use for: boilerplate and merging CI and shell-based testing. %prep -%setup -q -n %{pypiname}-%{version} +%setup -q -n %{srcname}-%{version} # remove bundled egg-info -rm -rf %{pypiname}.egg-info +rm -rf %{srcname}.egg-info %build %py3_build @@ -90,19 +58,16 @@ rm -rf %{pypiname}.egg-info %install %py3_install -# if internet connection available, run tests -%if %{with internet} -%check -TOXENV=py%{python3_version_nodots} %{__python3} setup.py test -%endif - -%files -n python3-%{pypiname} -%{_bindir}/%{pypiname} -%{_bindir}/%{pypiname}-quickstart -%{python3_sitelib}/%{pypiname} -%{python3_sitelib}/%{pypiname}-%{version}-py%{python3_version}.egg-info +%files -n python3-%{srcname} +%{_bindir}/%{srcname} +%{_bindir}/%{srcname}-quickstart +%{python3_sitelib}/%{srcname} +%{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info %changelog +* Tue Feb 25 2020 Gris Ge - 3.4.0-1 +- Port to EPEL8 + * Mon Nov 19 2018 Artem Goncharov - 3.4.0-1 - Upgrade to 3.4.0 version (#1652657) diff --git a/tests/tests.yml b/tests/tests.yml index 55826f9..3777cf2 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -8,29 +8,11 @@ - repo: "https://src.fedoraproject.org/tests/python.git" dest: "python" tests: - - smoke27: - dir: python/smoke - run: VERSION=2.7 METHOD=virtualenv ./venv.sh - - smoke34: - dir: python/smoke - run: VERSION=3.4 ./venv.sh - - smoke35: - dir: python/smoke - run: VERSION=3.5 ./venv.sh - smoke36: dir: python/smoke run: VERSION=3.6 ./venv.sh - - smoke37: - dir: python/smoke - run: VERSION=3.7 ./venv.sh required_packages: - gcc - - /usr/bin/virtualenv - - python27 - - python34 - - python35 - python36 - - python37 - - python2-devel - python3-devel - python3-tox From 28e08113019cbde2295853e587857b55d8131953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 24 Jul 2020 12:02:35 +0200 Subject: [PATCH 2/3] Fedora CI: Add tests for Python 3.8 --- tests/tests.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/tests/tests.yml b/tests/tests.yml index 3777cf2..0ff54a7 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -11,8 +11,11 @@ - smoke36: dir: python/smoke run: VERSION=3.6 ./venv.sh + - smoke38: + dir: python/smoke + run: VERSION=3.8 ./venv.sh required_packages: - gcc - - python36 - - python3-devel + - python36-devel + - python38-devel - python3-tox From 341cb9cf4b780a5f579af7a68d4e0f6c80d2e539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 6 Feb 2020 12:14:19 +0000 Subject: [PATCH 3/3] Fix invocation with Python 3.9 (#1798929) Backported from Fedora 31: https://src.fedoraproject.org/rpms/python-tox/c/aa466cd2d67b5ca7e5f4f58d0fbc704b38c97d94?branch=f31 Added 3.10 and 3.11 as well. With this tox.ini: [tox] skipsdist = True [testenv] commands = python -c 'import sys; print(sys.version)' Before: $ tox -e py39 ... 3.6.8 (default, Aug 24 2020, 17:57:11) ... py39: commands succeeded congratulations :) After: $ tox -e py39 ... 3.9.1 (default, Jan 18 2021, 16:14:01) ... py39: commands succeeded congratulations :) The Python 3.10+ addition remains untested, as I have no Python 3.10+ build for EL 8 available. --- py39.patch | 13 +++++++++++++ python-tox.spec | 12 ++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 py39.patch diff --git a/py39.patch b/py39.patch new file mode 100644 index 0000000..5bdbd7c --- /dev/null +++ b/py39.patch @@ -0,0 +1,13 @@ +diff --git a/src/tox/constants.py b/src/tox/constants.py +index bd21562..3b5e57f 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), (3, 10), (3, 11)] + 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 dfdb186..61b5443 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -2,11 +2,16 @@ Name: python-%{srcname} Version: 3.4.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Virtualenv-based automation of test activities License: MIT URL: https://tox.readthedocs.io Source0: %{pypi_source} + +# Run py39 env with Python 3.9 +# https://bugzilla.redhat.com/show_bug.cgi?id=1798929 +Patch1: py39.patch + BuildArch: noarch %description @@ -46,7 +51,7 @@ can use for: boilerplate and merging CI and shell-based testing. %prep -%setup -q -n %{srcname}-%{version} +%autosetup -p1 -n %{srcname}-%{version} # remove bundled egg-info rm -rf %{srcname}.egg-info @@ -65,6 +70,9 @@ rm -rf %{srcname}.egg-info %{python3_sitelib}/%{srcname}-%{version}-py%{python3_version}.egg-info %changelog +* Tue Jan 19 2021 Miro HronĨok - 3.4.0-2 +- Fix invocation with Python 3.9 (#1798929) + * Tue Feb 25 2020 Gris Ge - 3.4.0-1 - Port to EPEL8