diff --git a/1368.patch b/1368.patch new file mode 100644 index 0000000..39e8fb1 --- /dev/null +++ b/1368.patch @@ -0,0 +1,112 @@ +From dab74691cd1cd55621c943fc869f8ee821746ff6 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= +Date: Mon, 8 Jul 2019 19:08:17 +0200 +Subject: [PATCH] Use importlib.metadata from the standard library on Python + 3.8+ + +Fixes https://github.com/tox-dev/tox/issues/1367 +--- + CONTRIBUTORS | 1 + + setup.cfg | 2 +- + src/tox/config/__init__.py | 2 +- + src/tox/session/commands/show_config.py | 2 +- + src/tox/util/stdlib.py | 5 +++++ + tox.ini | 2 +- + 6 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/CONTRIBUTORS b/CONTRIBUTORS +index 39d848b..ad0168f 100644 +--- a/CONTRIBUTORS ++++ b/CONTRIBUTORS +@@ -58,6 +58,7 @@ Mattieu Agopian + Michael Manganiello + Mickaël Schoentgen + Mikhail Kyshtymov ++Miro Hrončok + Monty Taylor + Morgan Fainberg + Nick Douma +diff --git a/setup.cfg b/setup.cfg +index 3950ea3..c2bb1c2 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -37,7 +37,7 @@ classifiers = + packages = find: + python_requires = >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* + install_requires = +- importlib-metadata >= 0.12, <1 ++ importlib-metadata >= 0.12, <1;python_version<"3.8" + packaging >= 14 + pluggy >= 0.12.0, <1 + py >= 1.4.17, <2 +diff --git a/src/tox/config/__init__.py b/src/tox/config/__init__.py +index c1a3239..849b31f 100644 +--- a/src/tox/config/__init__.py ++++ b/src/tox/config/__init__.py +@@ -15,7 +15,6 @@ from fnmatch import fnmatchcase + from subprocess import list2cmdline + from threading import Thread + +-import importlib_metadata + import pluggy + import py + import toml +@@ -34,6 +33,7 @@ from tox.reporter import ( + verbosity1, + ) + from tox.util.path import ensure_empty_dir ++from tox.util.stdlib import importlib_metadata + + from .parallel import ENV_VAR_KEY as PARALLEL_ENV_VAR_KEY + from .parallel import add_parallel_config, add_parallel_flags +diff --git a/src/tox/session/commands/show_config.py b/src/tox/session/commands/show_config.py +index 11c5cf2..efb713a 100644 +--- a/src/tox/session/commands/show_config.py ++++ b/src/tox/session/commands/show_config.py +@@ -1,13 +1,13 @@ + import sys + from collections import OrderedDict + +-import importlib_metadata + from packaging.requirements import Requirement + from packaging.utils import canonicalize_name + from six import StringIO + from six.moves import configparser + + from tox import reporter ++from tox.util.stdlib import importlib_metadata + + DO_NOT_SHOW_CONFIG_ATTRIBUTES = ( + "interpreters", +diff --git a/src/tox/util/stdlib.py b/src/tox/util/stdlib.py +index 0b25859..5f687b7 100644 +--- a/src/tox/util/stdlib.py ++++ b/src/tox/util/stdlib.py +@@ -3,6 +3,11 @@ import threading + from contextlib import contextmanager + from tempfile import TemporaryFile + ++if sys.version_info >= (3, 8): ++ from importlib import metadata as importlib_metadata # noqa ++else: ++ import importlib_metadata # noqa ++ + + def is_main_thread(): + """returns true if we are within the main thread""" +diff --git a/tox.ini b/tox.ini +index fa5b321..fcb1418 100644 +--- a/tox.ini ++++ b/tox.ini +@@ -139,7 +139,7 @@ include_trailing_comma = True + force_grid_wrap = 0 + line_length = 99 + known_first_party = tox,tests +-known_third_party = apiclient,docutils,filelock,flaky,freezegun,git,httplib2,importlib_metadata,oauth2client,packaging,pathlib2,pluggy,py,pytest,setuptools,six,sphinx,toml ++known_third_party = apiclient,docutils,filelock,flaky,freezegun,git,httplib2,oauth2client,packaging,pathlib2,pluggy,py,pytest,setuptools,six,sphinx,toml + + [testenv:release] + description = do a release, required posarg of the version number +-- +2.21.0 + diff --git a/python-tox.spec b/python-tox.spec index 528a170..be1d345 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -14,6 +14,11 @@ Summary: Virtualenv-based automation of test activities License: MIT URL: http://tox.testrun.org/ Source0: %{pypi_source} + +# Use importlib.metadata from stdlib on Python 3.8 +# Rebased from https://github.com/tox-dev/tox/pull/1368 +Patch0: 1368.patch + BuildArch: noarch %description @@ -66,7 +71,6 @@ Obsoletes: python3-detox < 0.19-5 BuildRequires: python3-filelock BuildRequires: python3-flaky BuildRequires: python3-freezegun -BuildRequires: python3-importlib-metadata BuildRequires: python3-packaging BuildRequires: python3-pathlib2 BuildRequires: python3-pip @@ -80,6 +84,7 @@ BuildRequires: python3-pytest-xdist BuildRequires: python3-toml BuildRequires: python3-virtualenv BuildRequires: python3-wheel +BuildRequires: (python3-importlib-metadata if python3 < 3.8) BuildRequires: /usr/bin/git %endif @@ -97,7 +102,7 @@ can use for: boilerplate and merging CI and shell-based testing. %prep -%setup -q -n %{pypi_name}-%{version} +%autosetup -p1 -n %{pypi_name}-%{version} # remove bundled egg-info rm -rf %{pypi_name}.egg-info