From f538a68235fe677c31b311e364398cbea04290b4 Mon Sep 17 00:00:00 2001 From: zariiii9003 Date: Mon, 7 Oct 2024 22:29:37 +0200 Subject: [PATCH 1/2] use canonicalize_name() on extras identifier --- src/tox/tox_env/python/virtual_env/package/pyproject.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/tox/tox_env/python/virtual_env/package/pyproject.py b/src/tox/tox_env/python/virtual_env/package/pyproject.py index b70fc677ca..f9d9cc4ff0 100644 --- a/src/tox/tox_env/python/virtual_env/package/pyproject.py +++ b/src/tox/tox_env/python/virtual_env/package/pyproject.py @@ -13,6 +13,7 @@ from cachetools import cached from packaging.requirements import Requirement +from packaging.utils import canonicalize_name from pyproject_api import ( BackendFailed, CmdStatus, @@ -313,7 +314,7 @@ def _load_deps_from_static(self, for_env: EnvConfigSet) -> list[Requirement] | N ] optional_deps = project.get("optional-dependencies", {}) for extra, reqs in optional_deps.items(): - deps_with_markers.extend((Requirement(req), {extra}) for req in (reqs or [])) + deps_with_markers.extend((Requirement(req), {canonicalize_name(extra)}) for req in (reqs or [])) return dependencies_with_extras_from_markers( deps_with_markers=deps_with_markers, extras=extras, From 13c1c731377480d8b8caa9bba3611ec0958362ed Mon Sep 17 00:00:00 2001 From: zariiii9003 Date: Mon, 7 Oct 2024 23:01:25 +0200 Subject: [PATCH 2/2] add changelog entry --- docs/changelog/3396.bugfix.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/changelog/3396.bugfix.rst diff --git a/docs/changelog/3396.bugfix.rst b/docs/changelog/3396.bugfix.rst new file mode 100644 index 0000000000..cb13f44bd0 --- /dev/null +++ b/docs/changelog/3396.bugfix.rst @@ -0,0 +1 @@ +Fix a bug, that prevented the installation of extra dependencies, which contain an underscore in their identifier.