dependabot[bot] opened a new pull request, #68097:
URL: https://github.com/apache/airflow/pull/68097

   > [!WARNING]
   > Dependabot will stop supporting `python v3.9`!
   > 
   > Please upgrade to one of the following versions: `v3.9`, `v3.10`, `v3.11`, 
`v3.12`, `v3.13`, or `v3.14`.
   >
   
   Updates the requirements on 
[filelock](https://github.com/tox-dev/py-filelock), 
[packaging](https://github.com/pypa/packaging), 
[pathspec](https://github.com/cpburnz/python-pathspec), 
[platformdirs](https://github.com/tox-dev/platformdirs), 
[trove-classifiers](https://github.com/pypa/trove-classifiers), 
[virtualenv](https://github.com/pypa/virtualenv), 
[click](https://github.com/pallets/click), 
[jinja2](https://github.com/pallets/jinja), 
[pytest](https://github.com/pytest-dev/pytest), 
[requests](https://github.com/psf/requests) and 
[python-on-whales](https://github.com/gabrieldemarmiesse/python-on-whales) to 
permit the latest version.
   Updates `filelock` from 3.25.2 to 3.29.0
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/tox-dev/py-filelock/releases";>filelock's 
releases</a>.</em></p>
   <blockquote>
   <h2>3.29.0</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>🐛 fix(async): use single-thread executor for lock consistency by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/533";>tox-dev/filelock#533</a></li>
   <li>✨ feat(soft): enable stale lock detection on Windows by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/534";>tox-dev/filelock#534</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/tox-dev/filelock/compare/3.28.0...3.29.0";>https://github.com/tox-dev/filelock/compare/3.28.0...3.29.0</a></p>
   <h2>3.28.0</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>🐛 fix(ci): unbreak release workflow, publish to PyPI again by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/529";>tox-dev/filelock#529</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/tox-dev/filelock/compare/3.27.0...3.28.0";>https://github.com/tox-dev/filelock/compare/3.27.0...3.28.0</a></p>
   <h2>3.27.0</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/528";>tox-dev/filelock#528</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/tox-dev/filelock/compare/3.26.1...3.27.0";>https://github.com/tox-dev/filelock/compare/3.26.1...3.27.0</a></p>
   <h2>3.26.1</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>🐛 fix(asyncio): add <strong>exit</strong> to BaseAsyncFileLock and fix 
<strong>del</strong> loop handling by <a 
href="https://github.com/naarob";><code>@​naarob</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/518";>tox-dev/filelock#518</a></li>
   </ul>
   <h2>New Contributors</h2>
   <ul>
   <li><a href="https://github.com/naarob";><code>@​naarob</code></a> made their 
first contribution in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/518";>tox-dev/filelock#518</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/tox-dev/filelock/compare/3.26.0...3.26.1";>https://github.com/tox-dev/filelock/compare/3.26.0...3.26.1</a></p>
   <h2>3.26.0</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>🔒 ci(workflows): add zizmor security auditing by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/517";>tox-dev/filelock#517</a></li>
   <li>🔧 fix(ci): restore git credentials for release job by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/520";>tox-dev/filelock#520</a></li>
   <li>✨ feat(soft): add PID inspection and lock breaking by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/filelock/pull/524";>tox-dev/filelock#524</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/tox-dev/filelock/compare/3.25.2...3.26.0";>https://github.com/tox-dev/filelock/compare/3.25.2...3.26.0</a></p>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst";>filelock's
 changelog</a>.</em></p>
   <blockquote>
   <p>###########
   Changelog
   ###########</p>
   <hr />
   <p>3.29.1 (2026-06-03)</p>
   <hr />
   <ul>
   <li>🐛 fix(soft): refuse to follow symlinks when reading the lock file 
:pr:<code>548</code> - by :user:<code>dxbjavid</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>547</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>546</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>chore: improve filelock maintenance path :pr:<code>545</code> - by 
:user:<code>lphuc2250gma</code></li>
   <li>chore: improve filelock maintenance path :pr:<code>544</code> - by 
:user:<code>lphuc2250gma</code></li>
   <li>chore: improve filelock maintenance path :pr:<code>542</code> - by 
:user:<code>lphuc2250gma</code></li>
   <li>docs: clarify per-thread scope of FileLock configuration 
:pr:<code>543</code> - by :user:<code>Gares95</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>541</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>docs: fix API docs of <code>release()</code> :pr:<code>540</code> - by 
:user:<code>MrAnno</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>539</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>538</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>537</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>build(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 
:pr:<code>536</code> - by :user:<code>dependabot[bot]</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>535</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   </ul>
   <hr />
   <p>3.29.0 (2026-04-19)</p>
   <hr />
   <ul>
   <li>✨ feat(soft): enable stale lock detection on Windows 
:pr:<code>534</code></li>
   <li>🐛 fix(async): use single-thread executor for lock consistency 
:pr:<code>533</code></li>
   <li>build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 
:pr:<code>530</code> - by :user:<code>dependabot[bot]</code></li>
   </ul>
   <hr />
   <p>3.28.0 (2026-04-14)</p>
   <hr />
   <ul>
   <li>🐛 fix(ci): unbreak release workflow, publish to PyPI again 
:pr:<code>529</code></li>
   </ul>
   <hr />
   <p>3.26.1 (2026-04-09)</p>
   <hr />
   <ul>
   <li>🐛 fix(asyncio): add <strong>exit</strong> to BaseAsyncFileLock and fix 
<strong>del</strong> loop handling :pr:<code>518</code> - by 
:user:<code>naarob</code></li>
   <li>build(deps): bump pypa/gh-action-pypi-publish from 1.13.0 to 1.14.0 
:pr:<code>525</code> - by :user:<code>dependabot[bot]</code></li>
   </ul>
   <hr />
   <p>3.26.0 (2026-04-06)</p>
   <hr />
   <ul>
   <li>✨ feat(soft): add PID inspection and lock breaking 
:pr:<code>524</code></li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>523</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/469b47f192b0a9f8c8b795d9b9f57212c716959b";><code>469b47f</code></a>
 Release 3.29.0</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/e85d07281987e0855ba67c03dfdef342ec1097d5";><code>e85d072</code></a>
 ✨ feat(soft): enable stale lock detection on Windows (<a 
href="https://redirect.github.com/tox-dev/py-filelock/issues/534";>#534</a>)</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/f5ee1712ced6916b2768812ee378183319339944";><code>f5ee171</code></a>
 🐛 fix(async): use single-thread executor for lock consistency (<a 
href="https://redirect.github.com/tox-dev/py-filelock/issues/533";>#533</a>)</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/2a954588cdf462a786835eeb102240ce79fecc8b";><code>2a95458</code></a>
 build(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (<a 
href="https://redirect.github.com/tox-dev/py-filelock/issues/530";>#530</a>)</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/55de20c0819652362881906fa289feff5a323c19";><code>55de20c</code></a>
 Release 3.28.0</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/476b0e4a92776fe530b5d993247342f039004174";><code>476b0e4</code></a>
 🐛 fix(ci): unbreak release workflow, publish to PyPI again (<a 
href="https://redirect.github.com/tox-dev/py-filelock/issues/529";>#529</a>)</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/824713edc32b54efd66566907f97c1238502810e";><code>824713e</code></a>
 ✨ feat(rw): add SoftReadWriteLock for NFS and HPC clusters (<a 
href="https://redirect.github.com/tox-dev/py-filelock/issues/528";>#528</a>)</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/9879de9298db93ffba0a9f58d9de75e9e2a00fc1";><code>9879de9</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/tox-dev/py-filelock/issues/527";>#527</a>)</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/4cfab498b6916f89be46152efa4a72e9731be98f";><code>4cfab49</code></a>
 Release 3.26.1</li>
   <li><a 
href="https://github.com/tox-dev/filelock/commit/734c9f26e8107ad24886129fc68865f0b46cf71f";><code>734c9f2</code></a>
 🐛 fix(asyncio): add <strong>exit</strong> to BaseAsyncFileLock and fix 
<strong>del</strong> loop handli...</li>
   <li>Additional commits viewable in <a 
href="https://github.com/tox-dev/py-filelock/compare/3.25.2...3.29.0";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `packaging` from 26.0 to 26.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/pypa/packaging/releases";>packaging's 
releases</a>.</em></p>
   <blockquote>
   <h2>26.2</h2>
   <h2>What's Changed</h2>
   <p>Fixes:</p>
   <ul>
   <li>Fix incorrect sysconfig var name for pyemscripten by <a 
href="https://github.com/ryanking13";><code>@​ryanking13</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1160";>pypa/packaging#1160</a></li>
   <li>Make <code>Version</code>, <code>Specifier</code>, 
<code>SpecifierSet</code>, <code>Tag</code>, <code>Marker</code>, and 
<code>Requirement</code> pickle-safe
   and backward-compatible with pickles created in 25.0-26.1 (including 
references to the removed
   <code>packaging._structures</code> module) by <a 
href="https://github.com/eachimei";><code>@​eachimei</code></a> and <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1163";>pypa/packaging#1163</a>,
 <a 
href="https://redirect.github.com/pypa/packaging/pull/1168";>pypa/packaging#1168</a>,
 <a 
href="https://redirect.github.com/pypa/packaging/pull/1170";>pypa/packaging#1170</a>,
 and <a 
href="https://redirect.github.com/pypa/packaging/pull/1171";>pypa/packaging#1171</a></li>
   <li>fix: re-export ExceptionGroup for now by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1164";>pypa/packaging#1164</a></li>
   </ul>
   <p>Documentation:</p>
   <ul>
   <li>docs: add errors section and fix missing details by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1159";>pypa/packaging#1159</a></li>
   <li>docs(dev): document property-based test suite by <a 
href="https://github.com/r266-tech";><code>@​r266-tech</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1167";>pypa/packaging#1167</a></li>
   <li>Fix typo in DirectUrl documentation by <a 
href="https://github.com/sbidoul";><code>@​sbidoul</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1169";>pypa/packaging#1169</a></li>
   <li>docs(specifiers): add is_unsatisfiable() usage example by <a 
href="https://github.com/r266-tech";><code>@​r266-tech</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1166";>pypa/packaging#1166</a></li>
   </ul>
   <p>Internal:</p>
   <ul>
   <li>Enable the auditor persona on zizmor by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1158";>pypa/packaging#1158</a></li>
   <li>Test new pickle guarantees by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1174";>pypa/packaging#1174</a></li>
   <li>Use native uv integration in rtd by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1175";>pypa/packaging#1175</a></li>
   </ul>
   <h2>New Contributors</h2>
   <ul>
   <li><a href="https://github.com/ryanking13";><code>@​ryanking13</code></a> 
made their first contribution in <a 
href="https://redirect.github.com/pypa/packaging/pull/1160";>pypa/packaging#1160</a></li>
   <li><a href="https://github.com/eachimei";><code>@​eachimei</code></a> made 
their first contribution in <a 
href="https://redirect.github.com/pypa/packaging/pull/1163";>pypa/packaging#1163</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/pypa/packaging/compare/26.1...26.2";>https://github.com/pypa/packaging/compare/26.1...26.2</a></p>
   <h2>26.1</h2>
   <p>Features:</p>
   <ul>
   <li><del>PEP 783: add handling for Emscripten wheel tags by <a 
href="https://github.com/hoodmane";><code>@​hoodmane</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/804";>pypa/packaging#804</a></del>
 (old name used in implementation, will be fixed in next release)</li>
   <li>PEP 803: add handling for the <code>abi3.abi3t</code> free-threading tag 
by <a href="https://github.com/ngoldbaum";><code>@​ngoldbaum</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1099";>pypa/packaging#1099</a></li>
   <li>PEP 723: add <code>packaging.dependency_groups</code> module, based on 
the <code>dependency-groups</code> package by <a 
href="https://github.com/sirosen";><code>@​sirosen</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1065";>pypa/packaging#1065</a></li>
   <li>Add the <code>packaging.direct_url</code> module by <a 
href="https://github.com/sbidoul";><code>@​sbidoul</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/944";>pypa/packaging#944</a></li>
   <li>Add the <code>packaging.errors</code> module by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1071";>pypa/packaging#1071</a></li>
   <li>Add <code>SpecifierSet.is_unsatisfiable</code> using ranges (new 
internals that will be expanded in future versions) by <a 
href="https://github.com/notatallshaw";><code>@​notatallshaw</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1119";>pypa/packaging#1119</a></li>
   <li>Add <code>create_compatible_tags_selector</code> to select compatible 
tags by <a href="https://github.com/sbidoul";><code>@​sbidoul</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1110";>pypa/packaging#1110</a></li>
   <li>Add a <code>key</code> argument to <code>SpecifierSet.filter()</code> by 
<a href="https://github.com/frostming";><code>@​frostming</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1068";>pypa/packaging#1068</a></li>
   <li>Support <code>&amp;</code> and <code>|</code> for <code>Marker</code>'s 
by <a href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1146";>pypa/packaging#1146</a></li>
   <li>Normalize <code>Version.__replace__</code> and add 
<code>Version.from_parts</code> by <a 
href="https://github.com/henryiii";><code>@​henryiii</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1078";>pypa/packaging#1078</a></li>
   <li>Add an option to validate compressed tag set sort order in 
<code>parse_wheel_filename</code> by <a 
href="https://github.com/r266-tech";><code>@​r266-tech</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1150";>pypa/packaging#1150</a></li>
   </ul>
   <p>Behavior adaptations:</p>
   <ul>
   <li>Narrow exclusion of pre-releases for <code>&lt;V.postN</code> to match 
spec by <a 
href="https://github.com/notatallshaw";><code>@​notatallshaw</code></a> in <a 
href="https://redirect.github.com/pypa/packaging/pull/1140";>pypa/packaging#1140</a></li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/pypa/packaging/blob/main/CHANGELOG.rst";>packaging's 
changelog</a>.</em></p>
   <blockquote>
   <p>26.2 - 2026-04-24</p>
   <pre><code>
   Fixes:
   <ul>
   <li>Fix incorrect sysconfig var name for pyemscripten in 
(:pull:<code>1160</code>)</li>
   <li>Make <code>Version</code>, <code>Specifier</code>, 
<code>SpecifierSet</code>, <code>Tag</code>, <code>Marker</code>, and 
<code>Requirement</code> pickle-safe<br />
   and backward-compatible with pickles created in 25.0-26.1 (including 
references to the removed<br />
   <code>packaging._structures</code> module) (:pull:<code>1163</code>, 
:pull:<code>1168</code>, :pull:<code>1170</code>, :pull:<code>1171</code>)</li>
   <li>Re-export <code>ExceptionGroup</code> in metadata for now in 
(:pull:<code>1164</code>)</li>
   </ul>
   <p>Documentation:</p>
   <ul>
   <li>Add errors section and fix missing details in 
(:pull:<code>1159</code>)</li>
   <li>Document our property-based test suite in (:pull:<code>1167</code>)</li>
   <li>Fix a <code>DirectUrl</code> typo in (:pull:<code>1169</code>)</li>
   <li>Add example of <code>is_unsatisfiable</code> in 
(:pull:<code>1166</code>)</li>
   </ul>
   <p>Internal:</p>
   <ul>
   <li>Enable the auditor persona on zizmor in (:pull:<code>1158</code>)</li>
   <li>Test new pickle guarantees in (:pull:<code>1174</code>)</li>
   <li>Use new native ReadTheDocs uv integration in 
(:pull:<code>1175</code>)</li>
   </ul>
   <p>26.1 - 2026-04-14<br />
   </code></pre></p>
   <p>Features:</p>
   <ul>
   <li>PEP 783: add handling for Emscripten wheel tags in 
(:pull:<code>804</code>) (old name used in implementation, fixed in next 
release)</li>
   <li>PEP 803: add handling for the <code>abi3.abi3t</code> free-threading tag 
in (:pull:<code>1099</code>)</li>
   <li>PEP 723: add <code>packaging.dependency_groups</code> module, based on 
the <code>dependency-groups</code> package in (:pull:<code>1065</code>)</li>
   <li>Add the <code>packaging.direct_url</code> module in 
(:pull:<code>944</code>)</li>
   <li>Add the <code>packaging.errors</code> module in 
(:pull:<code>1071</code>)</li>
   <li>Add <code>SpecifierSet.is_unsatisfiable</code> using ranges (new 
internals that will be expanded in future versions) in 
(:pull:<code>1119</code>)</li>
   <li>Add <code>create_compatible_tags_selector</code> to select compatible 
tags in (:pull:<code>1110</code>)</li>
   <li>Add a <code>key</code> argument to <code>SpecifierSet.filter()</code> in 
(:pull:<code>1068</code>)</li>
   <li>Support <code>&amp;</code> and <code>|</code> for <code>Marker</code>'s 
in (:pull:<code>1146</code>)</li>
   <li>Normalize <code>Version.__replace__</code> and add 
<code>Version.from_parts</code> in (:pull:<code>1078</code>)</li>
   <li>Add an option to validate compressed tag set sort order in 
<code>parse_wheel_filename</code> in (:pull:<code>1150</code>)</li>
   </ul>
   <p>Behavior adaptations:</p>
   <ul>
   <li>Narrow exclusion of pre-releases for <code>&lt;V.postN</code> to match 
spec in (:pull:<code>1140</code>)</li>
   <li>Narrow exclusion of post-releases for <code>&gt;V</code> to match spec 
in (:pull:<code>1141</code>)</li>
   <li>Rename <code>format_full_version</code> to 
<code>_format_full_version</code> to make it visibly private in 
(:pull:<code>1125</code>)</li>
   <li>Restrict local version to ASCII in (:pull:<code>1102</code>)</li>
   </ul>
   <p>Pylock (PEP 751) updates:</p>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pypa/packaging/commit/84a87ee42483d7352f9502d78a9553da8859aa7a";><code>84a87ee</code></a>
 Bump for release</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/4a616b65bed23c8c6d58e6b0fc1a4434d4ff1f14";><code>4a616b6</code></a>
 docs: a few more updates to prepare for 26.2 (<a 
href="https://redirect.github.com/pypa/packaging/issues/1176";>#1176</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/9de6f44f1e82d4595edf3aad1c4f6f98c85935a0";><code>9de6f44</code></a>
 ci: use native uv integration in rtd (<a 
href="https://redirect.github.com/pypa/packaging/issues/1175";>#1175</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/bc76e14debd1a2799d1ca8f9d9c9823f35bfa466";><code>bc76e14</code></a>
 chore: update changelog for 26.2 (<a 
href="https://redirect.github.com/pypa/packaging/issues/1161";>#1161</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/3f00091c08f0aa830e33ed7db00f16f11c8ac97f";><code>3f00091</code></a>
 tests: add a pickle check (<a 
href="https://redirect.github.com/pypa/packaging/issues/1174";>#1174</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/48a8a069805291186522de3eff73ea80a8ca96ad";><code>48a8a06</code></a>
 fix: make Requirements/Markers pickle-safe (<a 
href="https://redirect.github.com/pypa/packaging/issues/1171";>#1171</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/823b44ed1f904084a77ae3adf0ef130af6365f84";><code>823b44e</code></a>
 fix: make Tags pickle-safe (<a 
href="https://redirect.github.com/pypa/packaging/issues/1170";>#1170</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/4bed32d920ca7211dd65fdf0a1ee06376e9c4733";><code>4bed32d</code></a>
 fix: make Specifier / SpecifierSet pickle-safe (<a 
href="https://redirect.github.com/pypa/packaging/issues/1168";>#1168</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/963118e37caae97bc8b72f72956c7fb4ca9857ec";><code>963118e</code></a>
 fix: re-export ExceptionGroup for now (<a 
href="https://redirect.github.com/pypa/packaging/issues/1164";>#1164</a>)</li>
   <li><a 
href="https://github.com/pypa/packaging/commit/66e34a80256c96dea11da143682950c84b8133bb";><code>66e34a8</code></a>
 docs(specifiers): add is_unsatisfiable() usage example (<a 
href="https://redirect.github.com/pypa/packaging/issues/1166";>#1166</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/pypa/packaging/compare/26.0...26.2";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pathspec` from 1.0.4 to 1.1.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/cpburnz/python-pathspec/releases";>pathspec's 
releases</a>.</em></p>
   <blockquote>
   <h2>v1.1.1</h2>
   <p>Release v1.1.1. See <a 
href="https://github.com/cpburnz/python-pathspec/blob/v1.1.1/CHANGES.rst";>CHANGES.rst</a>.</p>
   <h2>v1.1.0</h2>
   <p>Release v1.1.0. See <a 
href="https://github.com/cpburnz/python-pathspec/blob/v1.1.0/CHANGES.rst";>CHANGES.rst</a>.</p>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/cpburnz/python-pathspec/blob/master/CHANGES.rst";>pathspec's
 changelog</a>.</em></p>
   <blockquote>
   <h2>1.1.1 (2026-04-26)</h2>
   <p>Improvements:</p>
   <ul>
   <li>Improved type checking with mypy and pyright.</li>
   </ul>
   <p>Bug fixes:</p>
   <ul>
   <li>Fixed typing on <code>PathSpec[TPattern]</code> to 
<code>PathSpec[TPattern_co]</code>.</li>
   <li>Added missing variant type-hint <code>type[Pattern]</code> to 
<code>PathSpec.from_lines()</code> parameter <code>pattern_factory</code>.</li>
   <li>Fixed possible type error when using <code>+</code> and <code>+=</code> 
operators on <code>PathSpec</code>.</li>
   </ul>
   <h2>1.1.0 (2026-04-22)</h2>
   <p>New features:</p>
   <ul>
   <li><code>Issue 
[#108](https://github.com/cpburnz/python-pathspec/issues/108)</code>_: 
Specialize pattern type for <code>PathSpec</code> as 
<code>PathSpec[TPattern]</code> for better debugging of 
<code>PathSpec().patterns</code>.</li>
   </ul>
   <p>Bug fixes:</p>
   <ul>
   <li><code>Issue 
[#93](https://github.com/cpburnz/python-pathspec/issues/93)</code>_: Git 
discards invalid range notation. <code>GitIgnoreSpecPattern</code> now discards 
patterns with invalid range notation like Git.</li>
   <li><code>Pull 
[#106](https://github.com/cpburnz/python-pathspec/issues/106)</code>_: Fix 
escape() not escaping backslash characters.</li>
   </ul>
   <p>Improvements:</p>
   <ul>
   <li><code>Pull 
[#110](https://github.com/cpburnz/python-pathspec/issues/110)</code>_: Nicer 
debug print outs (and str for regex pattern).</li>
   </ul>
   <p>.. _<code>Pull 
[#106](https://github.com/cpburnz/python-pathspec/issues/106)</code>: <a 
href="https://redirect.github.com/cpburnz/python-pathspec/pull/106";>cpburnz/python-pathspec#106</a>
   .. _<code>Issue 
[#108](https://github.com/cpburnz/python-pathspec/issues/108)</code>: <a 
href="https://redirect.github.com/cpburnz/python-pathspec/issues/108";>cpburnz/python-pathspec#108</a>
   .. _<code>Pull 
[#110](https://github.com/cpburnz/python-pathspec/issues/110)</code>: <a 
href="https://redirect.github.com/cpburnz/python-pathspec/pull/110";>cpburnz/python-pathspec#110</a></p>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/ecf71a99ca739479d450b9830f43416ea0c519c7";><code>ecf71a9</code></a>
 Release v1.1.1</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/6727491ff877e570e450b078c345d9346db7e531";><code>6727491</code></a>
 Improve type checking with mypy and pyright</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/c9249c8b4ca165ca8c5eea191cea4c0e6f3aa827";><code>c9249c8</code></a>
 Release v1.1.0</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/a1abeba97f1fdbc3bc0e64e6c4d7ee9b63c4cf77";><code>a1abeba</code></a>
 Test Iron Proxy for CI</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/0b04daeafaea8c82a6fa3e86090061dc47c61ea6";><code>0b04dae</code></a>
 Test Iron Proxy for CI</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/ccaedca31c5cd904c5bb55df0f0045c675f77b7f";><code>ccaedca</code></a>
 Test Iron Proxy for CI</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/06391d861d68ba4763e8c377c8bb1b9392bcc76a";><code>06391d8</code></a>
 Test Iron Proxy for CI</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/45907bf50a5cabe525306b99e85779639d9ca55e";><code>45907bf</code></a>
 Test Iron Proxy for CI</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/0d7c7deb138050c8586000682134d820a176bc10";><code>0d7c7de</code></a>
 Pin all Github actions</li>
   <li><a 
href="https://github.com/cpburnz/python-pathspec/commit/36faddae807a997d04ccfc8cf00931819464260c";><code>36fadda</code></a>
 Specialize patterns</li>
   <li>Additional commits viewable in <a 
href="https://github.com/cpburnz/python-pathspec/compare/v1.0.4...v1.1.1";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `platformdirs` from 4.9.6 to 4.10.0
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/tox-dev/platformdirs/releases";>platformdirs's 
releases</a>.</em></p>
   <blockquote>
   <h2>4.10.0</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>chore: improve platformdirs maintenance path by <a 
href="https://github.com/lphuc2250gma";><code>@​lphuc2250gma</code></a> in <a 
href="https://redirect.github.com/tox-dev/platformdirs/pull/488";>tox-dev/platformdirs#488</a></li>
   <li>✨ feat: add user_projects_dir for $XDG_PROJECTS_DIR by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/platformdirs/pull/490";>tox-dev/platformdirs#490</a></li>
   <li>✨ feat: add user_publicshare_dir, user_templates_dir, user_fonts_dir, 
user_preference_dir by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/tox-dev/platformdirs/pull/491";>tox-dev/platformdirs#491</a></li>
   </ul>
   <h2>New Contributors</h2>
   <ul>
   <li><a 
href="https://github.com/lphuc2250gma";><code>@​lphuc2250gma</code></a> made 
their first contribution in <a 
href="https://redirect.github.com/tox-dev/platformdirs/pull/488";>tox-dev/platformdirs#488</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/tox-dev/platformdirs/compare/4.9.6...4.10.0";>https://github.com/tox-dev/platformdirs/compare/4.9.6...4.10.0</a></p>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst";>platformdirs's
 changelog</a>.</em></p>
   <blockquote>
   <p>###########
   Changelog
   ###########</p>
   <hr />
   <p>4.10.0 (2026-05-28)</p>
   <hr />
   <ul>
   <li>✨ feat: add user_publicshare_dir, user_templates_dir, user_fonts_dir, 
user_preference_dir :pr:<code>491</code></li>
   <li>✨ feat: add user_projects_dir for $XDG_PROJECTS_DIR 
:pr:<code>490</code></li>
   <li>chore: improve platformdirs maintenance path :pr:<code>488</code> - by 
:user:<code>lphuc2250gma</code></li>
   </ul>
   <hr />
   <p>4.9.6 (2026-04-09)</p>
   <hr />
   <ul>
   <li>🐛 fix(release): use double quotes for tag variable expansion 
:pr:<code>477</code></li>
   </ul>
   <hr />
   <p>4.9.5 (2026-04-06)</p>
   <hr />
   <ul>
   <li>📝 docs(appauthor): clarify None vs False on Windows 
:pr:<code>476</code></li>
   <li>Separates implementations of macOS dirs that share a default 
:pr:<code>473</code> - by :user:<code>Goddesen</code></li>
   <li>Remove persist-credentials: false from release job 
:pr:<code>472</code></li>
   <li>fix: do not duplicate site dirs in Unix.iter_{config,site}_dirs() when 
use_site_for_root is active :pr:<code>469</code> - by
   :user:<code>viccie30</code></li>
   <li>🔧 fix(type): resolve ty 0.0.25 type errors :pr:<code>468</code></li>
   <li>🔒 ci(workflows): add zizmor security auditing :pr:<code>467</code></li>
   <li>🐛 fix(release): generate docstrfmt-compatible changelog entries 
:pr:<code>463</code></li>
   </ul>
   <hr />
   <p>4.9.4 (2026-03-05)</p>
   <hr />
   <ul>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>461</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   <li>Update README.md</li>
   <li>📝 docs: add project logo to documentation :pr:<code>459</code></li>
   <li>Standardize .github files to .yaml suffix</li>
   <li>build(deps): bump the all group with 2 updates :pr:<code>457</code> - by 
:user:<code>dependabot[bot]</code></li>
   <li>Move SECURITY.md to .github/SECURITY.md</li>
   <li>Add permissions to workflows :pr:<code>455</code></li>
   <li>Add security policy</li>
   <li>[pre-commit.ci] pre-commit autoupdate :pr:<code>454</code> - by 
:user:<code>pre-commit-ci[bot]</code></li>
   </ul>
   <hr />
   <p>4.9.2 (2026-02-16)</p>
   <hr />
   <ul>
   <li>📝 docs: restructure following Diataxis framework 
:pr:<code>448</code></li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/04cb1361a064132102612ab05053351196a62b40";><code>04cb136</code></a>
 Release 4.10.0</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/078bc61171e1a0cfbb3f210ff0fd30795a359664";><code>078bc61</code></a>
 ✨ feat: add user_publicshare_dir, user_templates_dir, user_fonts_dir, 
user_pr...</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/d27974762005fa35cebcd4dd7236f8081e88ad75";><code>d279747</code></a>
 ✨ feat: add user_projects_dir for $XDG_PROJECTS_DIR (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/490";>#490</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/4116391f16178ee5c4b293761491519f9f3c9834";><code>4116391</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/489";>#489</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/dbc63f58261f1b109f2d75c7d35a485331dbbe6f";><code>dbc63f5</code></a>
 chore: improve platformdirs maintenance path (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/488";>#488</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/9265108d732233ce7fbb63a94cd389708ce5e102";><code>9265108</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/487";>#487</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/9f857ec172a1a09a9c608c28cfe2c460c3baac8e";><code>9f857ec</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/486";>#486</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/a76e77756278566e414eebbc03f789b3a21ea2fa";><code>a76e777</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/484";>#484</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/903fd9f321285c38d4741d2e5ea1881938405d16";><code>903fd9f</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/483";>#483</a>)</li>
   <li><a 
href="https://github.com/tox-dev/platformdirs/commit/a5da35d0d57cbcb5f30b18203aa7fbb44be69978";><code>a5da35d</code></a>
 build(deps): bump astral-sh/setup-uv from 8.0.0 to 8.1.0 in the all group (<a 
href="https://redirect.github.com/tox-dev/platformdirs/issues/482";>#482</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/tox-dev/platformdirs/compare/4.9.6...4.10.0";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `trove-classifiers` from 2026.1.14.14 to 2026.5.22.10
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pypa/trove-classifiers/commit/521e36a9d16f53a2fec5364e158047b73a4e3461";><code>521e36a</code></a>
 Add Plone 6.3 classifier. (<a 
href="https://redirect.github.com/pypa/trove-classifiers/issues/247";>#247</a>)</li>
   <li><a 
href="https://github.com/pypa/trove-classifiers/commit/d406a8b11b9dd3ee3725f5e4ad37b8e623a7deee";><code>d406a8b</code></a>
 Add classifier for Django 6.1 (<a 
href="https://redirect.github.com/pypa/trove-classifiers/issues/245";>#245</a>)</li>
   <li><a 
href="https://github.com/pypa/trove-classifiers/commit/19b58474c4461174d77fc54e75b6b752755411c5";><code>19b5847</code></a>
 Add classifier for Wagtail 8 (<a 
href="https://redirect.github.com/pypa/trove-classifiers/issues/244";>#244</a>)</li>
   <li><a 
href="https://github.com/pypa/trove-classifiers/commit/a1105aa00670c8fc241e0bc2149a236b8be43b7a";><code>a1105aa</code></a>
 Add Trove classifier for Python 3.16 (<a 
href="https://redirect.github.com/pypa/trove-classifiers/issues/243";>#243</a>)</li>
   <li><a 
href="https://github.com/pypa/trove-classifiers/commit/eca370658f6e81c8911567eab8209aaca2924493";><code>eca3706</code></a>
 feat: add <code>litestar</code> classifier (<a 
href="https://redirect.github.com/pypa/trove-classifiers/issues/148";>#148</a>)</li>
   <li>See full diff in <a 
href="https://github.com/pypa/trove-classifiers/compare/2026.1.14.14...2026.5.22.10";>compare
 view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `virtualenv` from 21.2.0 to 21.4.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/pypa/virtualenv/releases";>virtualenv's 
releases</a>.</em></p>
   <blockquote>
   <h2>21.4.2</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>🐛 fix(activation): silence deactivate hash -r under set -e by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3152";>pypa/virtualenv#3152</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/pypa/virtualenv/compare/21.4.1...21.4.2";>https://github.com/pypa/virtualenv/compare/21.4.1...21.4.2</a></p>
   <h2>21.4.1</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>🐛 fix(create): debug build venvlauncher lookup on Windows 3.13+ by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3151";>pypa/virtualenv#3151</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/pypa/virtualenv/compare/21.4.0...21.4.1";>https://github.com/pypa/virtualenv/compare/21.4.0...21.4.1</a></p>
   <h2>21.4.0</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>Fix Mermaid flowchart rendering by <a 
href="https://github.com/Herrtian";><code>@​Herrtian</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3147";>pypa/virtualenv#3147</a></li>
   <li>♻️ refactor(create): remove dead code and document droppable paths by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3149";>pypa/virtualenv#3149</a></li>
   <li>✨ feat(create): support Windows debug builds and remove dead code by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3150";>pypa/virtualenv#3150</a></li>
   </ul>
   <h2>New Contributors</h2>
   <ul>
   <li><a href="https://github.com/Herrtian";><code>@​Herrtian</code></a> made 
their first contribution in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3147";>pypa/virtualenv#3147</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/pypa/virtualenv/compare/21.3.3...21.4.0";>https://github.com/pypa/virtualenv/compare/21.3.3...21.4.0</a></p>
   <h2>21.3.3</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>Accept GraalPy implementation name. by <a 
href="https://github.com/timfel";><code>@​timfel</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3144";>pypa/virtualenv#3144</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/pypa/virtualenv/compare/21.3.2...21.3.3";>https://github.com/pypa/virtualenv/compare/21.3.2...21.3.3</a></p>
   <h2>21.3.2</h2>
   <!-- raw HTML omitted -->
   <h2>What's Changed</h2>
   <ul>
   <li>add 3.16 to embedded wheel versions by <a 
href="https://github.com/asottile";><code>@​asottile</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3140";>pypa/virtualenv#3140</a></li>
   <li>🐛 fix(upgrade): regen embedded init with correct MAX and 3.16 by <a 
href="https://github.com/gaborbernat";><code>@​gaborbernat</code></a> in <a 
href="https://redirect.github.com/pypa/virtualenv/pull/3143";>pypa/virtualenv#3143</a></li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/pypa/virtualenv/compare/21.3.1...21.3.2";>https://github.com/pypa/virtualenv/compare/21.3.1...21.3.2</a></p>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/pypa/virtualenv/blob/main/docs/changelog.rst";>virtualenv's
 changelog</a>.</em></p>
   <blockquote>
   <h1>Bugfixes - 21.4.2</h1>
   <ul>
   <li>Stop <code>deactivate</code> in the bash/zsh activation script from 
aborting under <code>set -e</code> when <code>hash -r</code> fails (for
   example with shell hashing disabled) by appending <code>|| true</code>, 
matching CPython <code>venv</code> (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/149701";>gh-149701</a>) 
and the existing
   non-deactivate call - by :user:<code>gaborbernat</code>. 
(:issue:<code>3152</code>)</li>
   </ul>
   <hr />
   <p>v21.4.1 (2026-05-28)</p>
   <hr />
   <h1>Bugfixes - 21.4.1</h1>
   <ul>
   <li>Fix Windows debug build <code>venvlauncher_d.exe</code> substitution 
never triggering because <code>executables()</code> compared the
   source executable name instead of the target name, and fix 
<code>AttributeError</code> on <code>debug_build</code> attribute for
   interpreter info objects missing the field - by 
:user:<code>gaborbernat</code>. (:issue:<code>3151</code>)</li>
   </ul>
   <hr />
   <p>v21.4.0 (2026-05-28)</p>
   <hr />
   <h1>Features - 21.4.0</h1>
   <ul>
   <li>Remove dead code targeting Python versions below the supported target 
range (PyPy 3.6, deprecated importlib APIs) and
   simplify the runtime import hook in <code>_virtualenv.py</code> - by 
:user:<code>gaborbernat</code>. (:issue:<code>3149</code>)</li>
   <li>Support Windows debug builds (<code>python_d.exe</code>, 
<code>venvlauncher_d.exe</code>) matching CPython venv behavior, remove dead
   <code>__SCRIPT_DIR__</code> replacement and <code>has_shim</code> version 
guard, drop unreachable Python 3.7 branch from
   <code>pyvenv_launch_patch_active</code>, and fix wheel deprecation message 
to say <code>&gt;= 3.9</code> - by :user:<code>gaborbernat</code>.
   (:issue:<code>3150</code>)</li>
   </ul>
   <hr />
   <p>v21.3.3 (2026-05-13)</p>
   <hr />
   <h1>Bugfixes - 21.3.3</h1>
   <ul>
   <li>recognize GraalPy interpreters using the normalized <code>GraalPy</code> 
name - by :user:<code>timfel</code>. (:issue:<code>3144</code>)</li>
   </ul>
   <hr />
   <p>v21.3.2 (2026-05-12)</p>
   <hr />
   <p>No significant changes.</p>
   <hr />
   <p>v21.3.1 (2026-05-05)</p>
   <hr />
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/3cf1a29a24ad7f93ecd2db8c7fbbf454a3607694";><code>3cf1a29</code></a>
 release 21.4.2</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/b724203e38ca810dc682126435c3ba756a8bd943";><code>b724203</code></a>
 🐛 fix(activation): silence deactivate hash -r under set -e (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3152";>#3152</a>)</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/e88f194c574fba787a9f44a0568042974d45a539";><code>e88f194</code></a>
 release 21.4.1</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/6a2d79cd8077035a8a9d08b8501975eead13b496";><code>6a2d79c</code></a>
 🐛 fix(create): debug build venvlauncher lookup on Windows 3.13+ (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3151";>#3151</a>)</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/30bcf62a65d262b85f3272a7f9b91397f712a13b";><code>30bcf62</code></a>
 release 21.4.0</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/61434984154e4474c478301e433071efd880ad8c";><code>6143498</code></a>
 ✨ feat(create): support Windows debug builds and remove dead code (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3150";>#3150</a>)</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/ceaf88f8736c253ca71d155bb08b8475deebda02";><code>ceaf88f</code></a>
 ♻️ refactor(create): remove dead code and document droppable paths (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3149";>#3149</a>)</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/d423ddcce98ad1c5b4529d2c9e947a7ccf09a968";><code>d423ddc</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3148";>#3148</a>)</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/f4a793600df5a660190fb55c57b9eed84fb09d68";><code>f4a7936</code></a>
 Fix Mermaid flowchart rendering (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3147";>#3147</a>)</li>
   <li><a 
href="https://github.com/pypa/virtualenv/commit/7189e8e018f3390f6ce217f2fe21a55af26f441e";><code>7189e8e</code></a>
 [pre-commit.ci] pre-commit autoupdate (<a 
href="https://redirect.github.com/pypa/virtualenv/issues/3145";>#3145</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/pypa/virtualenv/compare/21.2.0...21.4.2";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `click` to 8.4.1
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/pallets/click/releases";>click's releases</a>.</em></p>
   <blockquote>
   <h2>8.4.1</h2>
   <p>This is the Click 8.4.1 fix release, which fixes bugs but does not 
otherwise change behavior and should not result in breaking changes compared to 
the latest feature release.</p>
   <p>PyPI: <a 
href="https://pypi.org/project/click/8.4.1/";>https://pypi.org/project/click/8.4.1/</a>
   Changes: <a 
href="https://click.palletsprojects.com/page/changes/#version-8-4-1";>https://click.palletsprojects.com/page/changes/#version-8-4-1</a>
   Milestone: <a 
href="https://github.com/pallets/click/milestone/32?closed=1";>https://github.com/pallets/click/milestone/32?closed=1</a></p>
   <ul>
   <li><code>get_parameter_source()</code> is available during eager callbacks 
and type conversion again. <a 
href="https://redirect.github.com/pallets/click/issues/3458";>#3458</a> <a 
href="https://redirect.github.com/pallets/click/issues/3484";>#3484</a></li>
   <li>Zsh completion scripts parse correctly on Windows. <a 
href="https://redirect.github.com/pallets/click/issues/3277";>#3277</a> # 
3466</li>
   <li>Shell completion of <code>Choice</code> <code>Enum</code> values 
produces a valid completion result. <a 
href="https://redirect.github.com/pallets/click/issues/3015";>#3015</a></li>
   <li>Fix empty byte-string handling in echo. <a 
href="https://redirect.github.com/pallets/click/issues/3487";>#3487</a></li>
   <li>Fix closed file error with <code>echo_via_pager</code>. <a 
href="https://redirect.github.com/pallets/click/issues/3449";>#3449</a></li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/pallets/click/blob/main/CHANGES.rst";>click's 
changelog</a>.</em></p>
   <blockquote>
   <h2>Version 8.4.1</h2>
   <p>Released 2026-05-21</p>
   <ul>
   <li><code>get_parameter_source()</code> is available during eager callbacks 
and type
   conversion again. :issue:<code>3458</code> :issue:<code>3484</code></li>
   <li>Zsh completion scripts parse correctly on Windows. 
:issue:<code>3277</code> :pr:<code>3466</code></li>
   <li>Shell completion of <code>Choice</code> <code>Enum</code> values 
produces a valid completion
   result. :issue:<code>3015</code></li>
   <li>Fix empty byte-string handling in echo. :issue:<code>3487</code></li>
   <li>Fix closed file error with <code>echo_via_pager</code>. 
:issue:<code>3449</code></li>
   </ul>
   <h2>Version 8.4.0</h2>
   <p>Released 2026-05-17</p>
   <ul>
   <li>
   <p>:class:<code>ParamType</code> typing improvements. 
:pr:<code>3371</code></p>
   <ul>
   <li>:class:<code>ParamType</code> is now a generic abstract base class,
   parameterized by its converted value type.</li>
   <li>:meth:<code>~ParamType.convert</code> return types are narrowed on all
   concrete types (<code>str</code> for :class:<code>STRING</code>, 
<code>int</code> for
   :class:<code>INT</code>, etc.).</li>
   <li>:meth:<code>~ParamType.to_info_dict</code> returns specific
   :class:<code>~typing.TypedDict</code> subclasses instead of
   <code>dict[str, Any]</code>.</li>
   <li>:class:<code>CompositeParamType</code> and the number-range base are now
   generic with abstract methods.</li>
   </ul>
   </li>
   <li>
   <p>Refactor <code>convert_type</code> to extract type inference into a 
private
   <code>_guess_type</code> helper, and add :func:<code>typing.overload</code> 
signatures.
   :pr:<code>3372</code></p>
   </li>
   <li>
   <p>:class:<code>Parameter</code> typing improvements. 
:pr:<code>2805</code></p>
   <ul>
   <li>:class:<code>Parameter</code> is now an abstract base class, making 
explicit
   that it cannot be instantiated directly.</li>
   <li>:attr:<code>Parameter.name</code> is now <code>str</code> instead of 
<code>str | None</code>.
   When <code>expose_value=False</code>, the name is set to 
<code>&quot;&quot;</code> instead
   of <code>None</code>.</li>
   <li>The <code>ctx</code> parameter of 
:meth:<code>Parameter.get_error_hint</code> is now
   typed as <code>Context | None</code>, matching the runtime behavior.</li>
   </ul>
   </li>
   <li>
   <p>Split string values from <code>default_map</code> for parameters with 
<code>nargs &gt; 1</code>
   or :class:<code>Tuple</code> type, matching environment variable behavior.
   :issue:<code>2745</code> :pr:<code>3364</code></p>
   </li>
   <li>
   <p>Auto-detect <code>type=UNPROCESSED</code> for <code>flag_value</code> of 
non-basic types
   (not <code>str</code>, <code>int</code>, <code>float</code>, or 
<code>bool</code>), so programmer-provided
   Python objects like classes and enum members are passed through unchanged
   instead of being stringified. Previously <code>type=click.UNPROCESSED</code> 
had
   to be set explicitly. :issue:<code>2012</code> :pr:<code>3363</code></p>
   </li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pallets/click/commit/6eeb50e948ea136db145280f6f5dd52eca3fa7e5";><code>6eeb50e</code></a>
 release version 8.4.1</li>
   <li><a 
href="https://github.com/pallets/click/commit/67921d5b71584112eebcbf89596b5f0e6d14c49f";><code>67921d5</code></a>
 change log and doc fixes (<a 
href="https://redirect.github.com/pallets/click/issues/3495";>#3495</a>)</li>
   <li><a 
href="https://github.com/pallets/click/commit/9c41f46a4015700489ad009266edf1f3893d01d1";><code>9c41f46</code></a>
 Fix changelog and version admonitions</li>
   <li><a 
href="https://github.com/pallets/click/commit/6cb34774f20598aa288332f8da02c5aee85448a6";><code>6cb3477</code></a>
 fix skip condition</li>
   <li><a 
href="https://github.com/pallets/click/commit/5ee8e3123d8ddece6c47eff9a7a7d4ca478c4f37";><code>5ee8e31</code></a>
 fix I/O operation on closed file error with CliRunner and echo_via_pager (<a 
href="https://redirect.github.com/pallets/click/issues/3482";>#3482</a>)</li>
   <li><a 
href="https://github.com/pallets/click/commit/becbde5cf416441627f779e8dd34e57738ee1c1f";><code>becbde5</code></a>
 pager doesn't close std streams</li>
   <li><a 
href="https://github.com/pallets/click/commit/a5f5aa6d4012d256ccca24638f2642fc371e9f77";><code>a5f5aa6</code></a>
 Handle empty bytes in echo (<a 
href="https://redirect.github.com/pallets/click/issues/3493";>#3493</a>)</li>
   <li><a 
href="https://github.com/pallets/click/commit/4d3db84b251518e97299a38a5ca4bab3d01873a2";><code>4d3db84</code></a>
 handle empty bytes in echo</li>
   <li><a 
href="https://github.com/pallets/click/commit/d42f15b71757de791a5781fb179fd972da9169f5";><code>d42f15b</code></a>
 Fix <code>get_parameter_source()</code> during type conversion and eager 
callbacks (<a 
href="https://redirect.github.com/pallets/click/issues/3484";>#3484</a>)</li>
   <li><a 
href="https://github.com/pallets/click/commit/0baa8db07736fc7ad3d3eed97d4c73b0059c63e1";><code>0baa8db</code></a>
 Document ctx.params bypass with test and doc</li>
   <li>Additional commits viewable in <a 
href="https://github.com/pallets/click/compare/8.0.0...8.4.1";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `jinja2` to 3.1.6
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/pallets/jinja/releases";>jinja2's releases</a>.</em></p>
   <blockquote>
   <h2>3.1.6</h2>
   <p>This is the Jinja 3.1.6 security release, which fixes security issues but 
does not otherwise change behavior and should not result in breaking changes 
compared to the latest feature release.</p>
   <p>PyPI: <a 
href="https://pypi.org/project/Jinja2/3.1.6/";>https://pypi.org/project/Jinja2/3.1.6/</a>
   Changes: <a 
href="https://jinja.palletsprojects.com/en/stable/changes/#version-3-1-6";>https://jinja.palletsprojects.com/en/stable/changes/#version-3-1-6</a></p>
   <ul>
   <li>The <code>|attr</code> filter does not bypass the environment's 
attribute lookup, allowing the sandbox to apply its checks. <a 
href="https://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7";>https://github.com/pallets/jinja/security/advisories/GHSA-cpwx-vrp4-4pq7</a></li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/pallets/jinja/blob/main/CHANGES.rst";>jinja2's 
changelog</a>.</em></p>
   <blockquote>
   <h2>Version 3.1.6</h2>
   <p>Released 2025-03-05</p>
   <ul>
   <li>The <code>|attr</code> filter does not bypass the environment's 
attribute lookup,
   allowing the sandbox to apply its checks. 
:ghsa:<code>cpwx-vrp4-4pq7</code></li>
   </ul>
   <h2>Version 3.1.5</h2>
   <p>Released 2024-12-21</p>
   <ul>
   <li>The sandboxed environment handles indirect calls to 
<code>str.format</code>, such as
   by passing a stored reference to a filter that calls its argument.
   :ghsa:<code>q2x7-8rv6-6q7h</code></li>
   <li>Escape template name before formatting it into error messages, to avoid
   issues with names that contain f-string syntax.
   :issue:<code>1792</code>, :ghsa:<code>gmj6-6f8f-6699</code></li>
   <li>Sandbox does not allow <code>clear</code> and <code>pop</code> on known 
mutable sequence
   types. :issue:<code>2032</code></li>
   <li>Calling sync <code>render</code> for an async template uses 
<code>asyncio.run</code>.
   :pr:<code>1952</code></li>
   <li>Avoid unclosed <code>auto_aiter</code> warnings. 
:pr:<code>1960</code></li>
   <li>Return an <code>aclose</code>-able <code>AsyncGenerator</code> from
   <code>Template.generate_async</code>. :pr:<code>1960</code></li>
   <li>Avoid leaving <code>root_render_func()</code> unclosed in
   <code>Template.generate_async</code>. :pr:<code>1960</code></li>
   <li>Avoid leaving async generators unclosed in blocks, includes and extends.
   :pr:<code>1960</code></li>
   <li>The runtime uses the correct <code>concat</code> function for the 
current environment
   when calling block references. :issue:<code>1701</code></li>
   <li>Make <code>|unique</code> async-aware, allowing it to be used after 
another
   async-aware filter. :issue:<code>1781</code></li>
   <li><code>|int</code> filter handles <code>OverflowError</code> from 
scientific notation.
   :issue:<code>1921</code></li>
   <li>Make compiling deterministic for tuple unpacking in a <code>{% set ... 
%}</code>
   call. :issue:<code>2021</code></li>
   <li>Fix dunder protocol (<code>copy</code>/<code>pickle</code>/etc) 
interaction with <code>Undefined</code>
   objects. :issue:<code>2025</code></li>
   <li>Fix <code>copy</code>/<code>pickle</code> support for the internal 
<code>missing</code> object.
   :issue:<code>2027</code></li>
   <li><code>Environment.overlay(enable_async)</code> is applied correctly. 
:pr:<code>2061</code></li>
   <li>The error message from <code>FileSystemLoader</code> includes the paths 
that were
   searched. :issue:<code>1661</code></li>
   <li><code>PackageLoader</code> shows a clearer error message when the 
package does not
   contain the templates directory. :issue:<code>1705</code></li>
   <li>Improve annotations for methods returning copies. 
:pr:<code>1880</code></li>
   <li><code>urlize</code> does not add <code>mailto:</code> to values like 
<code>@a@b</code>. :pr:<code>1870</code></li>
   </ul>
   <!-- raw HTML omitted -->
   </blockquote>
   <p>... (truncated)</p>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pallets/jinja/commit/15206881c006c79667fe5154fe80c01c65410679";><code>1520688</code></a>
 release version 3.1.6</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/90457bbf33b8662926ae65cdde4c4c32e756e403";><code>90457bb</code></a>
 Merge commit from fork</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/065334d1ee5b7210e1a0a93c37238c86858f2af7";><code>065334d</code></a>
 attr filter uses env.getattr</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/033c20015c7ca899ab52eb921bb0f08e6d3dd145";><code>033c200</code></a>
 start version 3.1.6</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/bc68d4efa99c5f77334f0e519628558059ae8c35";><code>bc68d4e</code></a>
 use global contributing guide (<a 
href="https://redirect.github.com/pallets/jinja/issues/2070";>#2070</a>)</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/247de5e0c5062a792eb378e50e13e692885ee486";><code>247de5e</code></a>
 use global contributing guide</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/ab8218c7a1b66b62e0ad6b941bd514e3a64a358f";><code>ab8218c</code></a>
 use project advisory link instead of global</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/b4ffc8ff299dfd360064bea4cd2f862364601ad2";><code>b4ffc8f</code></a>
 release version 3.1.5 (<a 
href="https://redirect.github.com/pallets/jinja/issues/2066";>#2066</a>)</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/877f6e51be8e1765b06d911cfaa9033775f051d1";><code>877f6e5</code></a>
 release version 3.1.5</li>
   <li><a 
href="https://github.com/pallets/jinja/commit/8d588592653b052f957b720e1fc93196e06f207f";><code>8d58859</code></a>
 remove test pypi</li>
   <li>Additional commits viewable in <a 
href="https://github.com/pallets/jinja/compare/2.11.3...3.1.6";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `pytest` to 9.0.3
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/pytest-dev/pytest/releases";>pytest's 
releases</a>.</em></p>
   <blockquote>
   <h2>9.0.3</h2>
   <h1>pytest 9.0.3 (2026-04-07)</h1>
   <h2>Bug fixes</h2>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/12444";>#12444</a>: 
Fixed <code>pytest.approx</code> which now correctly takes into account 
<code>~collections.abc.Mapping</code> keys order to compare them.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/13634";>#13634</a>: 
Blocking a <code>conftest.py</code> file using the <code>-p no:</code> option 
is now explicitly disallowed.</p>
   <p>Previously this resulted in an internal assertion failure during plugin 
loading.</p>
   <p>Pytest now raises a clear <code>UsageError</code> explaining that 
conftest files are not plugins and cannot be disabled via <code>-p</code>.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/13734";>#13734</a>: 
Fixed crash when a test raises an exceptiongroup with <code>__tracebackhide__ = 
True</code>.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14195";>#14195</a>: 
Fixed an issue where non-string messages passed to <!-- raw HTML omitted 
-->unittest.TestCase.subTest()<!-- raw HTML omitted --> were not printed.</p>
   </li>
   <li>
   <p><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14343";>#14343</a>: 
Fixed use of insecure temporary directory (CVE-2025-71176).</p>
   </li>
   </ul>
   <h2>Improved documentation</h2>
   <ul>
   <li><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/13388";>#13388</a>: 
Clarified documentation for <code>-p</code> vs <code>PYTEST_PLUGINS</code> 
plugin loading and fixed an incorrect <code>-p</code> example.</li>
   <li><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/13731";>#13731</a>: 
Clarified that capture fixtures (e.g. <code>capsys</code> and 
<code>capfd</code>) take precedence over the <code>-s</code> / 
<code>--capture=no</code> command-line options in <code>Accessing captured 
output from a test function &lt;accessing-captured-output&gt;</code>.</li>
   <li><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14088";>#14088</a>: 
Clarified that the default <code>pytest_collection</code> hook sets 
<code>session.items</code> before it calls 
<code>pytest_collection_finish</code>, not after.</li>
   <li><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14255";>#14255</a>: 
TOML integer log levels must be quoted: Updating reference documentation.</li>
   </ul>
   <h2>Contributor-facing changes</h2>
   <ul>
   <li>
   <p><a 
href="https://redirect.github.com/pytest-dev/pytest/issues/12689";>#12689</a>: 
The test reports are now published to Codecov from GitHub Actions.
   The test statistics is visible <a 
href="https://app.codecov.io/gh/pytest-dev/pytest/tests";>on the web 
interface</a>.</p>
   <p>-- by <code>aleguy02</code></p>
   </li>
   </ul>
   </blockquote>
   </details>
   <details>
   <summary>Commits</summary>
   <ul>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e";><code>a7d58d7</code></a>
 Prepare release version 9.0.3</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22";><code>089d981</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14366";>#14366</a> 
from bluetech/revert-14193-backport</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac";><code>8127eaf</code></a>
 Revert &quot;Fix: assertrepr_compare respects dict insertion order (<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14050";>#14050</a>) 
(<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14193";>#14193</a>)&quot;</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241";><code>99a7e60</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14363";>#14363</a> 
from pytest-dev/patchback/backports/9.0.x/95d8423bd...</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95";><code>ddee02a</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14343";>#14343</a> 
from bluetech/cve-2025-71176-simple</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619";><code>74eac69</code></a>
 doc: Update training info (<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14298";>#14298</a>) 
(<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14301";>#14301</a>)</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869";><code>f92dee7</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14267";>#14267</a> 
from pytest-dev/patchback/backports/9.0.x/d6fa26c62...</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439";><code>7ee58ac</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest/issues/12378";>#12378</a> 
from Pierre-Sassoulas/fix-implicit-str-concat-and-d...</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8";><code>37da870</code></a>
 Merge pull request <a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14259";>#14259</a> 
from mitre88/patch-4 (<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14268";>#14268</a>)</li>
   <li><a 
href="https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed";><code>c34bfa3</code></a>
 Add explanation for string context diffs (<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14257";>#14257</a>) 
(<a 
href="https://redirect.github.com/pytest-dev/pytest/issues/14266";>#14266</a>)</li>
   <li>Additional commits viewable in <a 
href="https://github.com/pytest-dev/pytest/compare/8.2.0...9.0.3";>compare 
view</a></li>
   </ul>
   </details>
   <br />
   
   Updates `requests` to 2.34.2
   <details>
   <summary>Release notes</summary>
   <p><em>Sourced from <a 
href="https://github.com/psf/requests/releases";>requests's 
releases</a>.</em></p>
   <blockquote>
   <h2>v2.34.2</h2>
   <h2>2.34.2 (2026-05-14)</h2>
   <ul>
   <li>Moved <code>headers</code> input type back to <code>Mapping</code> to 
avoid invariance issues with <code>MutableMapping</code> and inferred dict 
types. Users calling <code>Request.headers.update()</code> may need to narrow 
typing in their code. (<a 
href="https://redirect.github.com/psf/requests/issues/7441";>#7441</a>)</li>
   </ul>
   <p><strong>Full Changelog</strong>: <a 
href="https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14";>https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14</a></p>
   </blockquote>
   </details>
   <details>
   <summary>Changelog</summary>
   <p><em>Sourced from <a 
href="https://github.com/psf/requests/blob/main/HISTORY.md";>requests's 
changelog</a>.</em></p>
   <blockquote>
   <h2>2.34.2 (2026-05-14)</h2>
   <ul>
   <li>Moved <code>headers</code> input type back to <code>Mapping</code> to 
avoid invariance issues
   with <code>MutableMapping</code> and inferred dict types. Users calling
   <code>Request.headers.update()</code> may need to narrow typing in their 
code. (<a 
href="https://redirect.github.com/psf/requests/issues/7441";>#7441</a>)</li>
   </ul>
   <h2>2.34.1 (2026-05-13)</h2>
   <p><strong>Bugfixes</strong></p>
   <ul>
   <li>Widened <code>json</code> input type from <code>dict</code> and 
<code>list</code> to <code>Mapping</code>
   and <code>Sequence</code>. (<a 
href="https://redirect.github.com/psf/requests/issues/7436";>#7436</a>)</li>
   <li>Changed <code>headers</code> input type to MutableMapping and removed 
<code>None</code> from
   <code>Request.headers</code> typing to improve handling for users. (<a 
href="https://redirect.github.com/psf/requests/issues/7431";>#7431</a>)</li>
   <li><code>Response.reason</code> moved from <code>str | None</code> to 
<code>str</code> to improve handling
   for users. (<a 
href="https://redirect.github.com/psf/requests/issues/7437";>#7437</a>)</li>
   <li>Fixed a bug where some bodies with custom <code>__getattr__</code> 
implementations
   weren't being properly detected as Iterables. (<a 
href="https://redirect.github.com/psf/requests/issues/7433";>#7433</a>)</li>
   </ul>
   <h2>2.34.0 (2026-05-11)</h2>
   <p><strong>Announcements</strong></p>
   <ul>
   <li>
   <p>Requests 2.34.0 introduces inline types, replacing those provided by
   typeshed. Public API types should be fully compatible with mypy, pyright,
   and ty. We believe types are comprehensive but if you find issues, please
   report them to the pinned tracking issue.</p>
   <p>Special thanks to <a 
href="https://github.com/bastimeyer";><code>@​bastimeyer</code></a>, <a 
href="https://github.com/cthoyt";><code>@​cthoyt</code></a>, <a 
href="https://github.com/edgarrmondragon";><code>@​edgarrmondragon</code></a>, 
and <a href="https://github.com/srittau";><code>@​srittau</code></a> for
   helping review and test the types ahead of the release. (<a 
href="https://redirect.github.com/psf/requests/issues/7272";>#7272</a>)</p>
   </li>
   </ul>
   <p><strong>Improvements</strong></p>
   <ul>
   <li>Digest Auth hashing algorithms have added 
<code>usedforsecurity=False</code> to clarify
   security considerations. (<a 
href="https://redirect.github.com/psf/requests/issues/7310";>#7310</a>)</li>
   <li>Requests added support for Python 3.15 based on beta1. Downstream 
projects
   should be able to start testing...
   
   _Description has been truncated_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to