From 2c483ceef002d2ebb0f3c4576a3158445786b42f Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com> Date: Fri, 27 Feb 2026 08:23:04 +0100 Subject: [PATCH 1/2] Better handling of linting/packaging dependencies - Basic support for PEP 639 requires flit version 3.11. Specify it in a single place, the [build-system] section - tox should be able to read it from there. - Intoduce a new dependency group for linting, and instruct tox to use it to install linting dependencies. Dependency groups require tox 4. --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 9b7ec873..8d10f343 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -42,6 +42,7 @@ wheel = "wheel._commands:main" bdist_wheel = "wheel.bdist_wheel:bdist_wheel" [dependency-groups] +lint = ["pre-commit"] test = [ "packaging >= 26.0", "pytest >= 6.0.0", @@ -121,6 +122,7 @@ mypy-init-return = true [tool.tox] env_list = ["py39", "py310", "py311", "py312", "py313", "py314", "pypy3", "lint", "pkg"] +requires = ["tox>=4"] skip_missing_interpreters = true [tool.tox.env_run_base] @@ -131,11 +133,9 @@ dependency_groups = ["test"] set_env = { PYTHONWARNDEFAULTENCODING = "1" } [tool.tox.env.lint] -depends = [] -deps = ["pre-commit"] +dependency_groups = "lint" package = "skip" commands = [["pre-commit", "run", "-a"]] [tool.tox.env.pkg] -deps = ["build", "flit >= 3.8"] commands = [["pytest", "tests/test_sdist.py", { replace = "posargs", extend = true }]] From 33dee00d6f2244389962743c453b4166bcf46061 Mon Sep 17 00:00:00 2001 From: Dimitri Papadopoulos Orfanos <3234522+DimitriPapadopoulos@users.noreply.github.com> Date: Fri, 27 Feb 2026 19:38:45 +0100 Subject: [PATCH 2/2] Dependency groups are supported only from v4.22 onwards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Alex Grönholm --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8d10f343..b591fd42 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -122,7 +122,7 @@ mypy-init-return = true [tool.tox] env_list = ["py39", "py310", "py311", "py312", "py313", "py314", "pypy3", "lint", "pkg"] -requires = ["tox>=4"] +requires = ["tox>=4.22"] skip_missing_interpreters = true [tool.tox.env_run_base]