Update to 4.26.0

- Requires virtualenv 20.29+
- Supports freethreading Python
- Fixes: rhbz#2365939

This drops support for Python 3.8.
I don't know if that means running 3.8 venvs, or just running on 3.8,
but I dropped all the 3.8 bits, as this update is targeted to Fedora 42+ only anyway.
This commit is contained in:
Miro Hrončok
2025-05-13 19:40:53 +02:00
parent fa857a3318
commit 62ab817d28
5 changed files with 9 additions and 121 deletions

View File

@@ -1,40 +0,0 @@
From 3c5d56bf8bb8405d0eceef912ba4cad7d077448c Mon Sep 17 00:00:00 2001
From: Florian Bruhin <me@the-compiler.org>
Date: Thu, 8 May 2025 10:47:22 +0200
Subject: [PATCH] Fix custom HelpFormatter for Python 3.14
https://github.com/python/cpython/pull/132323 passes prefix_chars=
(and other arguments) to the formatter_class, but the custom HelpFormatter only
accepted prog=.
Accept any keyword arguments and pass them on to the parent class.
Fixes #3523
---
docs/changelog/3523.bugfix.rst | 1 +
src/tox/config/cli/parser.py | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
create mode 100644 docs/changelog/3523.bugfix.rst
diff --git a/docs/changelog/3523.bugfix.rst b/docs/changelog/3523.bugfix.rst
new file mode 100644
index 000000000..3052d877e
--- /dev/null
+++ b/docs/changelog/3523.bugfix.rst
@@ -0,0 +1 @@
+Fix ``TypeError`` for ``HelpFormatter`` with Python 3.14
diff --git a/src/tox/config/cli/parser.py b/src/tox/config/cli/parser.py
index 87629ae49..904ff7aad 100644
--- a/src/tox/config/cli/parser.py
+++ b/src/tox/config/cli/parser.py
@@ -95,8 +95,8 @@ def parse_args( # type: ignore[override] # avoid defining all overloads
class HelpFormatter(ArgumentDefaultsHelpFormatter):
"""A help formatter that provides the default value and the source it comes from."""
- def __init__(self, prog: str) -> None:
- super().__init__(prog, max_help_position=30, width=240)
+ def __init__(self, prog: str, **kwargs: Any) -> None:
+ super().__init__(prog, max_help_position=30, width=240, **kwargs)
def _get_help_string(self, action: Action) -> str | None:
text: str = super()._get_help_string(action) or ""

View File

@@ -1,66 +0,0 @@
From 32a00aae6fe9d43d8fc5c6e85ce691e1ebfb5323 Mon Sep 17 00:00:00 2001
From: Robsdedude <rouven.bauer@neo4j.com>
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?= <bgabor8@bloomberg.net>
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 <bgabor8@bloomberg.net>
---
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"))

View File

@@ -20,7 +20,7 @@
%undefine _py3_shebang_s
Name: python-tox
Version: 4.25.0
Version: 4.26.0
Release: %autorelease
Summary: Virtualenv-based automation of test activities
@@ -28,12 +28,6 @@ License: MIT
URL: https://tox.readthedocs.io/
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.
@@ -89,9 +83,6 @@ Summary: %{summary}
# It recommends all Python versions it supports. (This is an exception to
# the rule that Fedora packages may not require the alternative interpreters.)
%if 0%{?fedora}
%if 0%{?fedora} < 42
Recommends: python3.8
%endif
Recommends: python3.9
Recommends: python3.10
Recommends: pypy3-devel
@@ -112,7 +103,7 @@ Recommends: python3-devel
# see https://github.com/tox-dev/tox/pull/2843#discussion_r1065028356
sed -ri -e 's/"(packaging|filelock|platformdirs|psutil|pyproject-api|pytest|pytest-mock|pytest-xdist|wheel|pluggy|distlib|cachetools|build\[virtualenv\]|setuptools|flaky)>=.*/"\1",/g' \
-e 's/"(time-machine)>=[^;"]+/"\1/' \
-e 's/"(virtualenv)>=.*/"\1>=20",/g' \
-e 's/"(virtualenv)>=.*/"\1>=20.29",/g' \
-e 's/"(hatchling)>=.*/"\1>=1.13",/g' \
pyproject.toml

View File

@@ -1 +1 @@
SHA512 (tox-4.25.0.tar.gz) = 3560b667af03ca41c1bd8fa9eaa90f8c988b7f946498f3bc2d0a4dfa3a481d8ada27acb6201bde284a2bcfe14b86ee409a3ce8e875531423862d1af88e6248fb
SHA512 (tox-4.26.0.tar.gz) = ad2e311cd63c45a079b8c230a2feb364270b7a8bcf44b626385f8e442c6683ae841b3f34417b504f927608685a254fef3767d832fb5cfcc324c9cbf6ff7ea997

View File

@@ -36,9 +36,6 @@
- smoke36:
dir: python/smoke
run: VERSION=3.6 INSTALL_OR_SKIP=true TOX_REQUIRES="virtualenv<20.22.0" ./venv.sh
- smoke38:
dir: python/smoke
run: VERSION=3.8 INSTALL_OR_SKIP=true ./venv.sh
- smoke39:
dir: python/smoke
run: VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh
@@ -54,9 +51,15 @@
- smoke313:
dir: python/smoke
run: VERSION=3.13 INSTALL_OR_SKIP=true ./venv.sh
- smoke313t:
dir: python/smoke
run: VERSION=3.13t INSTALL_OR_SKIP=true ./venv.sh
- smoke314:
dir: python/smoke
run: VERSION=3.14 INSTALL_OR_SKIP=true ./venv.sh
- smoke314t:
dir: python/smoke
run: VERSION=3.14t INSTALL_OR_SKIP=true ./venv.sh
- smoke_pypy39:
dir: python/smoke
run: PYTHON=pypy3.9 VERSION=3.9 INSTALL_OR_SKIP=true ./venv.sh