diff --git a/3528.patch b/3528.patch new file mode 100644 index 0000000..cbd5904 --- /dev/null +++ b/3528.patch @@ -0,0 +1,66 @@ +From 32a00aae6fe9d43d8fc5c6e85ce691e1ebfb5323 Mon Sep 17 00:00:00 2001 +From: Robsdedude +Date: Sun, 11 May 2025 22:13:38 +0200 +Subject: [PATCH 1/2] Fix using deprecated virtualenv option `--wheel` + +--- + pyproject.toml | 2 +- + src/tox/pytest.py | 3 ++- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 9c1116c23..9b52c2f36 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -60,7 +60,7 @@ dependencies = [ + "pyproject-api>=1.8", + "tomli>=2.2.1; python_version<'3.11'", + "typing-extensions>=4.12.2; python_version<'3.11'", +- "virtualenv>=20.29.1", ++ "virtualenv>=20.31", + ] + optional-dependencies.test = [ + "devpi-process>=1.0.2", +diff --git a/src/tox/pytest.py b/src/tox/pytest.py +index 72f410bf5..bca2ad848 100644 +--- a/src/tox/pytest.py ++++ b/src/tox/pytest.py +@@ -281,7 +281,8 @@ def our_setup_state(value: Sequence[str]) -> State: + m.setenv("VIRTUALENV_SYMLINK_APP_DATA", "1") + m.setenv("VIRTUALENV_SYMLINKS", "1") + m.setenv("VIRTUALENV_PIP", "embed") +- m.setenv("VIRTUALENV_WHEEL", "embed") ++ if sys.version_info[:2] < (3, 9): ++ m.setenv("VIRTUALENV_WHEEL", "embed") + m.setenv("VIRTUALENV_SETUPTOOLS", "embed") + try: + tox_run(args) + +From 4d68d2af93aae8208c79b55ff0dfacd4b78a1866 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= +Date: Mon, 12 May 2025 09:39:48 -0700 +Subject: [PATCH 2/2] Fix test +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Bernát Gábor +--- + tests/session/cmd/test_sequential.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/tests/session/cmd/test_sequential.py b/tests/session/cmd/test_sequential.py +index 1f4a24624..87771be03 100644 +--- a/tests/session/cmd/test_sequential.py ++++ b/tests/session/cmd/test_sequential.py +@@ -114,7 +114,9 @@ def test_result_json_sequential( + py_test = get_cmd_exit_run_id(log_report, "py", "test") + assert py_test == [(1, "commands[0]"), (0, "commands[1]")] + packaging_installed = log_report["testenvs"]["py"].pop("installed_packages") +- expected_pkg = {"pip", "setuptools", "wheel", "a"} ++ expected_pkg = {"pip", "setuptools", "a"} ++ if sys.version_info[0:2] == (3, 8): ++ expected_pkg.add("wheel") + assert {i[: i.find("==")] if "@" not in i else "a" for i in packaging_installed} == expected_pkg + install_package = log_report["testenvs"]["py"].pop("installpkg") + assert re.match(r"^[a-fA-F0-9]{64}$", install_package.pop("sha256")) diff --git a/fix-tests.patch b/fix-tests.patch index a6e5f9b..d76215f 100644 --- a/fix-tests.patch +++ b/fix-tests.patch @@ -1,4 +1,4 @@ -From b8024813cb3e477a4ada44c5835e9f62ecda79bd Mon Sep 17 00:00:00 2001 +From 924b03e0446561bbfca9679a44642a1a96dd8f10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Hrn=C4=8Diar?= Date: Fri, 28 Mar 2025 09:44:24 +0100 Subject: [PATCH] Fix tests @@ -16,7 +16,7 @@ Co-Authored-By: Miro Hrončok 4 files changed, 14 insertions(+), 41 deletions(-) diff --git a/pyproject.toml b/pyproject.toml -index 9c1116c..e499874 100644 +index 9b52c2f..335012b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -82,22 +82,16 @@ dev = [ @@ -54,7 +54,7 @@ index 9c1116c..e499874 100644 [tool.towncrier] name = "tox" diff --git a/src/tox/pytest.py b/src/tox/pytest.py -index 72f410b..48cf9bc 100644 +index bca2ad8..973e714 100644 --- a/src/tox/pytest.py +++ b/src/tox/pytest.py @@ -17,7 +17,6 @@ from typing import TYPE_CHECKING, Any, Callable, Iterator, Protocol, Sequence, c @@ -65,20 +65,21 @@ index 72f410b..48cf9bc 100644 from virtualenv.info import fs_supports_symlink import tox.run -@@ -280,9 +279,9 @@ class ToxProject: +@@ -280,10 +279,10 @@ class ToxProject: m.setattr(sys, "argv", [sys.executable, "-m", "tox", *list(args)]) m.setenv("VIRTUALENV_SYMLINK_APP_DATA", "1") m.setenv("VIRTUALENV_SYMLINKS", "1") - m.setenv("VIRTUALENV_PIP", "embed") -- m.setenv("VIRTUALENV_WHEEL", "embed") -- m.setenv("VIRTUALENV_SETUPTOOLS", "embed") + m.setenv("VIRTUALENV_PIP", "bundle") -+ m.setenv("VIRTUALENV_WHEEL", "bundle") + if sys.version_info[:2] < (3, 9): +- m.setenv("VIRTUALENV_WHEEL", "embed") +- m.setenv("VIRTUALENV_SETUPTOOLS", "embed") ++ m.setenv("VIRTUALENV_WHEEL", "bundle") + m.setenv("VIRTUALENV_SETUPTOOLS", "bundle") try: tox_run(args) except SystemExit as exception: -@@ -475,15 +474,6 @@ def enable_pypi_server(monkeypatch: pytest.MonkeyPatch, url: str | None) -> None +@@ -476,15 +475,6 @@ def enable_pypi_server(monkeypatch: pytest.MonkeyPatch, url: str | None) -> None monkeypatch.setenv("PIP_TIMEOUT", str(2)) @@ -162,5 +163,5 @@ index efb5b12..8a57426 100644 for left, right in zip_longest(result, exp): assert isinstance(right, Requirement) -- -2.48.1 +2.49.0 diff --git a/python-tox.spec b/python-tox.spec index 41c73e7..fe30974 100644 --- a/python-tox.spec +++ b/python-tox.spec @@ -31,6 +31,9 @@ Source: %{pypi_source tox} # Support Python 3.14.0b1 Patch: https://github.com/tox-dev/tox/pull/3524.patch +# Fix using deprecated virtualenv option --wheel +Patch: https://github.com/tox-dev/tox/pull/3528.patch + # Remove dependency on devpi-process. # Remove dependency on detect-test-pollution. # Remove coverage-related dependencies. @@ -130,6 +133,12 @@ export SETUPTOOLS_SCM_PRETEND_VERSION="%{version}" %if %{with tests} %check +# Upstream requires virtualenv >= 20.31 for tests, and no longer sets VIRTUALENV_WHEEL. +# To support environments with older virtualenv, we set it manually: +%if v"%(%{python3} -c 'import importlib.metadata as im; print(im.version("virtualenv"))' 2>/dev/null || echo 0)" < v"20.31" +export VIRTUALENV_WHEEL=bundle +%endif + # Skipped tests use internal virtualenv functionality to # download wheels which does not work with "bundled" version of wheel in # the Fedora's virtualenv patch.