build(deps): bump idna from 3.19 to 3.20 in /tools/publish (#4170)

Bumps [idna](https://github.com/kjd/idna) from 3.19 to 3.20.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/kjd/idna/releases">idna's
releases</a>.</em></p>
<blockquote>
<h2>v3.20</h2>
<ul>
<li>Update to Unicode 18.0.0.</li>
<li>Better enforcement of the domain length limit in the incremental
codec.</li>
<li>Add support for Python 3.15.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/kjd/idna/blob/master/HISTORY.md">idna's
changelog</a>.</em></p>
<blockquote>
<h2>3.20 (2026-09-17)</h2>
<ul>
<li>Update to Unicode 18.0.0.</li>
<li>Better enforcement of the domain length limit in the incremental
codec.</li>
<li>Add support for Python 3.15.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/kjd/idna/commit/d55e65e1a3b1ede7f556bc202738066f5597e249"><code>d55e65e</code></a>
Release 3.20</li>
<li><a
href="https://github.com/kjd/idna/commit/0c0824a928e50048e59d4ce55fe760dba30528bc"><code>0c0824a</code></a>
Pre-release 3.20rc0</li>
<li><a
href="https://github.com/kjd/idna/commit/bd7c316a08761c79ba557b5b9e6a3da24d71fa88"><code>bd7c316</code></a>
Note Python 3.15 support in the 3.20 changelog</li>
<li><a
href="https://github.com/kjd/idna/commit/b6cce8523eae3442aba976f01607b1cdf797c6ff"><code>b6cce85</code></a>
Merge pull request <a
href="https://redirect.github.com/kjd/idna/issues/276">#276</a> from
kjd/unicode-18</li>
<li><a
href="https://github.com/kjd/idna/commit/9a4bc59e9d5ab89e7916fc0a50650cb55e3faf26"><code>9a4bc59</code></a>
Update to Unicode 18.0.0</li>
<li><a
href="https://github.com/kjd/idna/commit/dfab5a06affddcc7781a7bbab1cac1bb7d3b4e05"><code>dfab5a0</code></a>
Merge branch 'python-3.15'</li>
<li><a
href="https://github.com/kjd/idna/commit/417c35496ccbffad4b0a434ac9b563ee6f8fa0a9"><code>417c354</code></a>
Read the latest Unicode version from the DerivedAge.txt header instead
of the...</li>
<li><a
href="https://github.com/kjd/idna/commit/cd1739200f3bf07871372bcb31c271de136eaccf"><code>cd17392</code></a>
Merge pull request <a
href="https://redirect.github.com/kjd/idna/issues/274">#274</a> from
kjd/fix-decode-length-check</li>
<li><a
href="https://github.com/kjd/idna/commit/c5796d79d44c76a54f03e8938dd22edaa1221c27"><code>c5796d7</code></a>
Skip the decode round-trip check for domains past encode's length
limit</li>
<li><a
href="https://github.com/kjd/idna/commit/d6ee690bf133e874351103b9fe838fdda2a7a09f"><code>d6ee690</code></a>
Update to Python 3.15 release candidate in CI and add trove
classifier</li>
<li>Additional commits viewable in <a
href="https://github.com/kjd/idna/compare/v3.19...v3.20">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=idna&package-manager=pip&previous-version=3.19&new-version=3.20)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
diff --git a/tools/publish/requirements_darwin.txt b/tools/publish/requirements_darwin.txt
index eb97048..9368554 100644
--- a/tools/publish/requirements_darwin.txt
+++ b/tools/publish/requirements_darwin.txt
@@ -192,9 +192,9 @@
     --hash=sha256:d0732d624fb46fd4e7bc4e5152f00214450953b9e772c182c1c22964def1a069 \
     --hash=sha256:f5ec41ed2629a508f5d0988eda142e190c9c6da971100612c4de9ad9f9b237ca
     # via twine
-idna==3.19 \
-    --hash=sha256:5e0811a4383b21dc5838069f801c4fb62113b7447663d2530d2bd6e77b49bf15 \
-    --hash=sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4
+idna==3.20 \
+    --hash=sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44 \
+    --hash=sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c
     # via requests
 importlib-metadata==9.0.1 \
     --hash=sha256:ab830580bc0ef3db61ce8fae716389e5462b67e033018bab6d8f80ef17172f99 \
diff --git a/tools/publish/requirements_linux.txt b/tools/publish/requirements_linux.txt
index a9caddb..bb67382 100644
--- a/tools/publish/requirements_linux.txt
+++ b/tools/publish/requirements_linux.txt
@@ -342,9 +342,9 @@
     --hash=sha256:d0732d624fb46fd4e7bc4e5152f00214450953b9e772c182c1c22964def1a069 \
     --hash=sha256:f5ec41ed2629a508f5d0988eda142e190c9c6da971100612c4de9ad9f9b237ca
     # via twine
-idna==3.19 \
-    --hash=sha256:5e0811a4383b21dc5838069f801c4fb62113b7447663d2530d2bd6e77b49bf15 \
-    --hash=sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4
+idna==3.20 \
+    --hash=sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44 \
+    --hash=sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c
     # via requests
 importlib-metadata==9.0.1 \
     --hash=sha256:ab830580bc0ef3db61ce8fae716389e5462b67e033018bab6d8f80ef17172f99 \
diff --git a/tools/publish/requirements_universal.txt b/tools/publish/requirements_universal.txt
index a0a2809..7113fad 100644
--- a/tools/publish/requirements_universal.txt
+++ b/tools/publish/requirements_universal.txt
@@ -342,9 +342,9 @@
     --hash=sha256:d0732d624fb46fd4e7bc4e5152f00214450953b9e772c182c1c22964def1a069 \
     --hash=sha256:f5ec41ed2629a508f5d0988eda142e190c9c6da971100612c4de9ad9f9b237ca
     # via twine
-idna==3.19 \
-    --hash=sha256:5e0811a4383b21dc5838069f801c4fb62113b7447663d2530d2bd6e77b49bf15 \
-    --hash=sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4
+idna==3.20 \
+    --hash=sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44 \
+    --hash=sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c
     # via requests
 importlib-metadata==9.0.1 ; python_full_version < '3.12' and platform_machine != 'ppc64le' and platform_machine != 's390x' \
     --hash=sha256:ab830580bc0ef3db61ce8fae716389e5462b67e033018bab6d8f80ef17172f99 \
diff --git a/tools/publish/requirements_windows.txt b/tools/publish/requirements_windows.txt
index 95de3ce..cc9a4d9 100644
--- a/tools/publish/requirements_windows.txt
+++ b/tools/publish/requirements_windows.txt
@@ -192,9 +192,9 @@
     --hash=sha256:d0732d624fb46fd4e7bc4e5152f00214450953b9e772c182c1c22964def1a069 \
     --hash=sha256:f5ec41ed2629a508f5d0988eda142e190c9c6da971100612c4de9ad9f9b237ca
     # via twine
-idna==3.19 \
-    --hash=sha256:5e0811a4383b21dc5838069f801c4fb62113b7447663d2530d2bd6e77b49bf15 \
-    --hash=sha256:815e7be7a7806d54abb586dc943addc79e8b2ee16915059658cbeff4b1b43bf4
+idna==3.20 \
+    --hash=sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44 \
+    --hash=sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c
     # via requests
 importlib-metadata==9.0.1 \
     --hash=sha256:ab830580bc0ef3db61ce8fae716389e5462b67e033018bab6d8f80ef17172f99 \