From 8e7907d78f6a7db89af0988bd4e5c90e9601825e Mon Sep 17 00:00:00 2001 From: Kai Schwarz Date: Wed, 14 Oct 2026 16:53:53 +0200 Subject: [PATCH 1/2] fix(deps): pin idna to 3.18, the last release with transitional processing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit idna 3.19 turns uts46_remap(transitional=True) into a no-op, so IDNAProcessor silently stops mapping e.g. faß.de to fass.de for the TLDs it treats as transitional. The floor of 3.19 (#335, unreleased) has kept every build red since; the released >=3.18 already lets fresh installs resolve to 3.20. Registries have not converged on one IDNA standard, so the SDK keeps that behaviour. Refs: RSRMID-3125 --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c5c14b7..2258ed8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,9 @@ dependencies = [ "pytest-cov>=7.1.0", "twine>=7.0.0,<8", "black>=26.5.1,<27", - "idna>=3.19" + # idna 3.19 ignores uts46_remap(transitional=True), which IDNAProcessor relies on + # for the registries that still expect transitional processing. (RSRMID-3125) + "idna>=3.18,<3.19" ] classifiers = [ "Programming Language :: Python :: 3", From 6eb872068a9e8cbf91d142bbe0d6ed615cccd10d Mon Sep 17 00:00:00 2001 From: Kai Schwarz Date: Wed, 14 Oct 2026 16:53:53 +0200 Subject: [PATCH 2/2] ci(dependabot): ignore idna 3.19 and later, held back by the pin Refs: RSRMID-3125 --- .github/dependabot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ab97e73..1d66ffc 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -25,3 +25,7 @@ updates: prefix: "fix" prefix-development: "chore" include: "scope" + ignore: + # idna 3.19 dropped transitional processing; pinned in pyproject.toml. (RSRMID-3125) + - dependency-name: "idna" + versions: [">=3.19"]