From 5462892379b51d4fdf4ffdebd294ecac7a44720a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 21 Jul 2025 02:56:19 +0200 Subject: [PATCH 1/4] Fix an issue number typo in changelog (#3563) --- docs/changelog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 5ea979e13..0f1b249e9 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -9,7 +9,7 @@ v4.28.0 (2025-07-20) Features - 4.28.0 ~~~~~~~~~~~~~~~~~ -- Added ``constraints`` to allow specifying constraints files for all dependencies. (:issue:`3350`) +- Added ``constraints`` to allow specifying constraints files for all dependencies. (:issue:`3550`) - Allow disabling tox plugins via the ``TOX_DISABLED_EXTERNAL_PLUGINS`` environment variable - by :user:`gaborbernat`. (:issue:`3468`) Improved Documentation - 4.28.0 From 753dd626564cec7f7b6756d86bc22e2cdfcdcbc3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:26:46 -0700 Subject: [PATCH 2/4] [pre-commit.ci] pre-commit autoupdate (#3564) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [pre-commit.ci] pre-commit autoupdate updates: - [github.com/astral-sh/ruff-pre-commit: v0.12.3 → v0.12.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.12.3...v0.12.4) * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- src/tox/config/source/ini.py | 2 +- tests/execute/local_subprocess/bad_process.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b241eeb32..95551d61f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -23,7 +23,7 @@ repos: hooks: - id: validate-pyproject - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.12.3" + rev: "v0.12.4" hooks: - id: ruff-format - id: ruff diff --git a/src/tox/config/source/ini.py b/src/tox/config/source/ini.py index 90dd40f53..bee5bc72c 100644 --- a/src/tox/config/source/ini.py +++ b/src/tox/config/source/ini.py @@ -32,7 +32,7 @@ def __init__(self, path: Path, content: str | None = None) -> None: if content is None: if not path.exists(): raise ValueError - content = path.read_text() + content = path.read_text(encoding="utf-8") self._parser.read_string(content, str(path)) self._section_mapping: defaultdict[str, list[str]] = defaultdict(list) diff --git a/tests/execute/local_subprocess/bad_process.py b/tests/execute/local_subprocess/bad_process.py index 395500020..72b18aa2f 100644 --- a/tests/execute/local_subprocess/bad_process.py +++ b/tests/execute/local_subprocess/bad_process.py @@ -32,7 +32,7 @@ def _p(m: str) -> None: try: start_file = Path(sys.argv[1]) _p(f"create {start_file}") - start_file.write_text("") + start_file.write_text("", encoding="utf-8") _p(f"created {start_file}") while True: time.sleep(0.01) From c343b26717d314d59bb22252c5d61d7c4e9e03cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Tue, 22 Jul 2025 23:15:30 -0700 Subject: [PATCH 3/4] Only use tarfile.data_filter when it's available (#3566) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Bernát Gábor --- docs/changelog/3565.bugfix.rst | 8 ++++++++ .../tox_env/python/virtual_env/package/cmd_builder.py | 10 +++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 docs/changelog/3565.bugfix.rst diff --git a/docs/changelog/3565.bugfix.rst b/docs/changelog/3565.bugfix.rst new file mode 100644 index 000000000..f5a790a5c --- /dev/null +++ b/docs/changelog/3565.bugfix.rst @@ -0,0 +1,8 @@ +Use `tarfile.data_filter `_ with ``extractall`` +only on supported Python versions: + +- ``>= 3.11.4`` +- ``>= 3.10.12`` and ``< 3.11`` +- ``>= 3.9.17`` and ``< 3.10`` + +by :user:`gaborbernat`. diff --git a/src/tox/tox_env/python/virtual_env/package/cmd_builder.py b/src/tox/tox_env/python/virtual_env/package/cmd_builder.py index 2d6c6ec39..250f89fc5 100644 --- a/src/tox/tox_env/python/virtual_env/package/cmd_builder.py +++ b/src/tox/tox_env/python/virtual_env/package/cmd_builder.py @@ -1,6 +1,7 @@ from __future__ import annotations import glob +import sys import tarfile from abc import ABC from functools import partial @@ -107,7 +108,14 @@ def extract_install_info(self, for_env: EnvConfigSet, path: Path) -> list[Packag if not work_dir.exists(): # pragma: no branch work_dir.mkdir() with tarfile.open(str(path), "r:gz") as tar: - tar.extractall(path=str(work_dir), filter=tarfile.data_filter) # noqa: S202 + tar.extractall( # noqa: S202 + path=str(work_dir), + filter=tarfile.data_filter + if sys.version_info >= (3, 11, 4) + or (3, 10, 12) <= sys.version_info < (3, 11) + or (3, 9, 17) <= sys.version_info < (3, 10) + else None, + ) # the register run env is guaranteed to be called before this assert self._sdist_meta_tox_env is not None # noqa: S101 with self._sdist_meta_tox_env.display_context(self._has_display_suspended): From c836ab2727992329ffa61330d1aeb524e6d265f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bern=C3=A1t=20G=C3=A1bor?= Date: Tue, 22 Jul 2025 23:15:58 -0700 Subject: [PATCH 4/4] release 4.28.1 --- docs/changelog.rst | 14 ++++++++++++++ docs/changelog/3565.bugfix.rst | 8 -------- 2 files changed, 14 insertions(+), 8 deletions(-) delete mode 100644 docs/changelog/3565.bugfix.rst diff --git a/docs/changelog.rst b/docs/changelog.rst index 0f1b249e9..e5c13aa21 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,20 @@ Release History .. towncrier release notes start +v4.28.1 (2025-07-22) +-------------------- + +Bugfixes - 4.28.1 +~~~~~~~~~~~~~~~~~ +- Use `tarfile.data_filter `_ with ``extractall`` + only on supported Python versions: + + - ``>= 3.11.4`` + - ``>= 3.10.12`` and ``< 3.11`` + - ``>= 3.9.17`` and ``< 3.10`` + + by :user:`gaborbernat`. (:issue:`3565`) + v4.28.0 (2025-07-20) -------------------- diff --git a/docs/changelog/3565.bugfix.rst b/docs/changelog/3565.bugfix.rst deleted file mode 100644 index f5a790a5c..000000000 --- a/docs/changelog/3565.bugfix.rst +++ /dev/null @@ -1,8 +0,0 @@ -Use `tarfile.data_filter `_ with ``extractall`` -only on supported Python versions: - -- ``>= 3.11.4`` -- ``>= 3.10.12`` and ``< 3.11`` -- ``>= 3.9.17`` and ``< 3.10`` - -by :user:`gaborbernat`.