Repository navigation
Fix subtest reruns with structured NodeId keys - #363
Merged
icemac merged 2 commits intoSep 8, 2026
Merged
Conversation
icemac
approved these changes
Sep 8, 2026
Contributor
|
Thank you for this PR. 😃 |
lukasmasuch
pushed a commit
to streamlit/streamlit
that referenced
this pull request
Sep 21, 2026
…roup (#17052) Bumps the python-testing group with 1 update: [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures). Updates `pytest-rerunfailures` from 16.6.1 to 16.7 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst">pytest-rerunfailures's changelog</a>.</em></p> <blockquote> <h2>16.7 (2026-09-17)</h2> <p>Features ++++++++</p> <ul> <li>Allow configuring <code>only_rerun</code> regular expressions in <code>pytest.ini</code> files. (<code>[#165](pytest-dev/pytest-rerunfailures#165) <https://github.com/pytest-dev/pytest-rerunfailures/issues/165></code>_)</li> <li>Show each rerun attempt and its final outcome in the rerun test summary info section. (<code>[#191](pytest-dev/pytest-rerunfailures#191) <https://github.com/pytest-dev/pytest-rerunfailures/issues/191></code>_)</li> <li>Allow flaky marker conditions to inspect the exception that caused a failed test phase, including when running with pytest-xdist. (<code>[#230](pytest-dev/pytest-rerunfailures#230) <https://github.com/pytest-dev/pytest-rerunfailures/issues/230></code>_)</li> </ul> <p>Bug Fixes +++++++++</p> <ul> <li>Match <code>only_rerun</code> against the full exception chain (<code>__cause__</code> and <code>__context__</code>), not only the outermost exception. Match <code>rerun_except</code> against explicit <code>__cause__</code> links only, so implicit <code>except</code> / <code>finally</code> context does not suppress reruns. (<code>[#353](pytest-dev/pytest-rerunfailures#353) <https://github.com/pytest-dev/pytest-rerunfailures/issues/353></code>_)</li> <li>Fix <code>INTERNALERROR</code> when <code>only_rerun</code> or <code>rerun_except</code> is given a bare exception class instead of a list. (<code>[#362](pytest-dev/pytest-rerunfailures#362) <https://github.com/pytest-dev/pytest-rerunfailures/issues/362></code>_)</li> <li>Fix subtest reruns with newer pytest versions that use structured <code>NodeId</code> values internally. (<code>[#363](pytest-dev/pytest-rerunfailures#363) <https://github.com/pytest-dev/pytest-rerunfailures/issues/363></code>_)</li> <li>Mark teardown failures from an attempt that is rerun as reruns, so a later successful attempt is not reported as an error. (<code>[#366](pytest-dev/pytest-rerunfailures#366) <https://github.com/pytest-dev/pytest-rerunfailures/issues/366></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Keep the test suite passing when pytest-randomly is installed, including when the outer pytest is started with <code>-p no:randomly</code>. (<code>[#218](pytest-dev/pytest-rerunfailures#218) <https://github.com/pytest-dev/pytest-rerunfailures/issues/218></code>_)</li> <li>Test the free-threaded Python 3.14 build in CI, via a new <code>py314t</code> tox environment and a matching workflow job. (<code>[#361](pytest-dev/pytest-rerunfailures#361) <https://github.com/pytest-dev/pytest-rerunfailures/issues/361></code>_)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/fead4c656301dae378897a10b8e8998e52d6bb2c"><code>fead4c6</code></a> Preparing release 16.7</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/ed62cfc3cafafc6d71bc97a9488cfa9f6601affb"><code>ed62cfc</code></a> Show each rerun attempt outcome in summary (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/370">#370</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/64687c9511133582d6647f3864eb111c8d52f93a"><code>64687c9</code></a> Add pytest.ini support for only_rerun (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/369">#369</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/1997015a4b7f334a5b2f55a2c953d5954ab53fce"><code>1997015</code></a> Preserve rerun status for teardown failures (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/367">#367</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/4220386e845dafeec8ef2261ae31c33b54f2431a"><code>4220386</code></a> Match only_rerun against wrapped exception causes (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/364">#364</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87d81b2b0924a9c59a729826cd19c0e1b285a93f"><code>87d81b2</code></a> Keep nested pytester sessions isolated from pytest-randomly (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/368">#368</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/be14a6bd94ec3da02a7ddfd20e5a7364188f587d"><code>be14a6b</code></a> Allow flaky conditions to inspect failure exceptions (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/365">#365</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/78561a50e6b1afdca9c937d109750001599ff76d"><code>78561a5</code></a> ci: test the free-threaded Python 3.14 build (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/361">#361</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/402afb4a4197de7a8f827b84f11a15f0b4ab1cdc"><code>402afb4</code></a> Fix bare exception class in only_rerun / rerun_except causing INTERNALERROR (...</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87a8b47de931f859712a1496dc49ac6a5aeba41d"><code>87a8b47</code></a> Fix subtest reruns with structured NodeId keys (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/363">#363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6.1...16.7">compare view</a></li> </ul> </details> <br /> [](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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Lockfile-only upgrade of a dev/CI pytest plugin; no production code changes, though CI flaky-test retry and reporting behavior may shift slightly. > > **Overview** > Updates the **python-testing** dependency lock so **pytest-rerunfailures** resolves to **16.7** instead of **16.6.1** (sdist/wheel URLs and hashes in `uv.lock` only). > > That release mainly improves pytest rerun behavior used in CI (`--reruns` on Playwright jobs): configurable `only_rerun` in `pytest.ini`, clearer per-attempt summary output, flaky conditions that can inspect failure exceptions (including with xdist), and fixes for exception-chain matching, bare exception classes causing `INTERNALERROR`, subtest reruns with newer pytest, and teardown failures on retried attempts. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d459911. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
svazquezco
added a commit
to softwareone-platform/mpt-api-python-client
that referenced
this pull request
Sep 21, 2026
Bumps the python-development group with 3 updates: [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures), [ruff](https://github.com/astral-sh/ruff) and [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide). Updates `pytest-rerunfailures` from 16.6.1 to 16.7 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst">pytest-rerunfailures's changelog</a>.</em></p> <blockquote> <h2>16.7 (2026-09-17)</h2> <p>Features ++++++++</p> <ul> <li>Allow configuring <code>only_rerun</code> regular expressions in <code>pytest.ini</code> files. (<code>[#165](pytest-dev/pytest-rerunfailures#165) <https://github.com/pytest-dev/pytest-rerunfailures/issues/165></code>_)</li> <li>Show each rerun attempt and its final outcome in the rerun test summary info section. (<code>[#191](pytest-dev/pytest-rerunfailures#191) <https://github.com/pytest-dev/pytest-rerunfailures/issues/191></code>_)</li> <li>Allow flaky marker conditions to inspect the exception that caused a failed test phase, including when running with pytest-xdist. (<code>[#230](pytest-dev/pytest-rerunfailures#230) <https://github.com/pytest-dev/pytest-rerunfailures/issues/230></code>_)</li> </ul> <p>Bug Fixes +++++++++</p> <ul> <li>Match <code>only_rerun</code> against the full exception chain (<code>__cause__</code> and <code>__context__</code>), not only the outermost exception. Match <code>rerun_except</code> against explicit <code>__cause__</code> links only, so implicit <code>except</code> / <code>finally</code> context does not suppress reruns. (<code>[#353](pytest-dev/pytest-rerunfailures#353) <https://github.com/pytest-dev/pytest-rerunfailures/issues/353></code>_)</li> <li>Fix <code>INTERNALERROR</code> when <code>only_rerun</code> or <code>rerun_except</code> is given a bare exception class instead of a list. (<code>[#362](pytest-dev/pytest-rerunfailures#362) <https://github.com/pytest-dev/pytest-rerunfailures/issues/362></code>_)</li> <li>Fix subtest reruns with newer pytest versions that use structured <code>NodeId</code> values internally. (<code>[#363](pytest-dev/pytest-rerunfailures#363) <https://github.com/pytest-dev/pytest-rerunfailures/issues/363></code>_)</li> <li>Mark teardown failures from an attempt that is rerun as reruns, so a later successful attempt is not reported as an error. (<code>[#366](pytest-dev/pytest-rerunfailures#366) <https://github.com/pytest-dev/pytest-rerunfailures/issues/366></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Keep the test suite passing when pytest-randomly is installed, including when the outer pytest is started with <code>-p no:randomly</code>. (<code>[#218](pytest-dev/pytest-rerunfailures#218) <https://github.com/pytest-dev/pytest-rerunfailures/issues/218></code>_)</li> <li>Test the free-threaded Python 3.14 build in CI, via a new <code>py314t</code> tox environment and a matching workflow job. (<code>[#361](pytest-dev/pytest-rerunfailures#361) <https://github.com/pytest-dev/pytest-rerunfailures/issues/361></code>_)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/fead4c656301dae378897a10b8e8998e52d6bb2c"><code>fead4c6</code></a> Preparing release 16.7</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/ed62cfc3cafafc6d71bc97a9488cfa9f6601affb"><code>ed62cfc</code></a> Show each rerun attempt outcome in summary (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/370">#370</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/64687c9511133582d6647f3864eb111c8d52f93a"><code>64687c9</code></a> Add pytest.ini support for only_rerun (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/369">#369</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/1997015a4b7f334a5b2f55a2c953d5954ab53fce"><code>1997015</code></a> Preserve rerun status for teardown failures (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/367">#367</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/4220386e845dafeec8ef2261ae31c33b54f2431a"><code>4220386</code></a> Match only_rerun against wrapped exception causes (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/364">#364</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87d81b2b0924a9c59a729826cd19c0e1b285a93f"><code>87d81b2</code></a> Keep nested pytester sessions isolated from pytest-randomly (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/368">#368</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/be14a6bd94ec3da02a7ddfd20e5a7364188f587d"><code>be14a6b</code></a> Allow flaky conditions to inspect failure exceptions (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/365">#365</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/78561a50e6b1afdca9c937d109750001599ff76d"><code>78561a5</code></a> ci: test the free-threaded Python 3.14 build (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/361">#361</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/402afb4a4197de7a8f827b84f11a15f0b4ab1cdc"><code>402afb4</code></a> Fix bare exception class in only_rerun / rerun_except causing INTERNALERROR (...</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87a8b47de931f859712a1496dc49ac6a5aeba41d"><code>87a8b47</code></a> Fix subtest reruns with structured NodeId keys (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/363">#363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6.1...16.7">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.7 to 0.16.8 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.16.8</h2> <h2>Release Notes</h2> <p>Released on 2026-09-16.</p> <h3>Bug fixes</h3> <ul> <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a href="https://redirect.github.com/astral-sh/ruff/pull/28584">#28584</a>)</li> <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> under sync parent (<code>SIM117</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27821">#27821</a>)</li> <li>[<code>flake8-simplify</code>] Preserve operand order in <code>SIM109</code> fix (<a href="https://redirect.github.com/astral-sh/ruff/pull/27824">#27824</a>)</li> <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline <code>UP040</code> fixes (<a href="https://redirect.github.com/astral-sh/ruff/pull/28164">#28164</a>)</li> <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and <code>ParamSpec</code> conversions with bounds or constraints (<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28505">#28505</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Add support for <code>__lazy_modules__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28459">#28459</a>)</li> <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a href="https://redirect.github.com/astral-sh/ruff/pull/28533">#28533</a>)</li> <li>Recognize quoted types in <code>typing.TypeForm</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28507">#28507</a>)</li> <li>Support conditional assignment to <code>__lazy_modules__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28491">#28491</a>)</li> <li>[<code>flake8-type-checking</code>] Prefer lazy imports over <code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, <code>TC002</code>, <code>TC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28541">#28541</a>)</li> <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always unsafe (<a href="https://redirect.github.com/astral-sh/ruff/pull/28526">#28526</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending deprecated <code>ByteString</code> aliases (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28498">#28498</a>)</li> <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the <code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28528">#28528</a>)</li> <li>[<code>ruff</code>] Detect <code>\Z</code> in <code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28598">#28598</a>)</li> </ul> <h3>CLI</h3> <ul> <li>Use rule name and code in formatter incompatibility warnings (<a href="https://redirect.github.com/astral-sh/ruff/pull/28571">#28571</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28644">#28644</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/VedantMadane"><code>@VedantMadane</code></a></li> <li><a href="https://github.com/alzeph"><code>@alzeph</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/fredrikblau"><code>@fredrikblau</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/Aniket-a14"><code>@Aniket-a14</code></a></li> <li><a href="https://github.com/r-b-1"><code>@r-b-1</code></a></li> </ul> <h2>Install ruff 0.16.8</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.8/ruff-installer.sh | sh </tr></table> </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.16.8</h2> <p>Released on 2026-09-16.</p> <h3>Bug fixes</h3> <ul> <li>Visit functional <code>TypedDict</code> keyword arguments correctly (<a href="https://redirect.github.com/astral-sh/ruff/pull/28584">#28584</a>)</li> <li>[<code>flake8-simplify</code>] Detect nested <code>async with</code> under sync parent (<code>SIM117</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27821">#27821</a>)</li> <li>[<code>flake8-simplify</code>] Preserve operand order in <code>SIM109</code> fix (<a href="https://redirect.github.com/astral-sh/ruff/pull/27824">#27824</a>)</li> <li>[<code>pyupgrade</code>] Preserve required parentheses in multiline <code>UP040</code> fixes (<a href="https://redirect.github.com/astral-sh/ruff/pull/28164">#28164</a>)</li> <li>[<code>pyupgrade</code>] Skip <code>TypeVarTuple</code> and <code>ParamSpec</code> conversions with bounds or constraints (<code>UP040</code>, <code>UP046</code>, <code>UP047</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28505">#28505</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Add support for <code>__lazy_modules__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28459">#28459</a>)</li> <li>Recognize PEP-728 <code>TypedDict</code> class keywords (<a href="https://redirect.github.com/astral-sh/ruff/pull/28533">#28533</a>)</li> <li>Recognize quoted types in <code>typing.TypeForm</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28507">#28507</a>)</li> <li>Support conditional assignment to <code>__lazy_modules__</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28491">#28491</a>)</li> <li>[<code>flake8-type-checking</code>] Prefer lazy imports over <code>TYPE_CHECKING</code> on Python 3.15 and later (<code>TC001</code>, <code>TC002</code>, <code>TC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28541">#28541</a>)</li> <li>[<code>pyupgrade</code>] Make the fix for <code>UP040</code> always unsafe (<a href="https://redirect.github.com/astral-sh/ruff/pull/28526">#28526</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending deprecated <code>ByteString</code> aliases (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28498">#28498</a>)</li> <li>[<code>ruff</code>, <code>flake8-use-pathlib</code>] Recognize the <code>parent_mode</code> argument (<code>RUF064</code>, <code>PTH103</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28528">#28528</a>)</li> <li>[<code>ruff</code>] Detect <code>\Z</code> in <code>pytest.raises()</code> match patterns (<code>RUF043</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28598">#28598</a>)</li> </ul> <h3>CLI</h3> <ul> <li>Use rule name and code in formatter incompatibility warnings (<a href="https://redirect.github.com/astral-sh/ruff/pull/28571">#28571</a>)</li> </ul> <h3>Configuration</h3> <ul> <li>[<code>flake8-tidy-imports</code>] Add <code>extend-banned-api</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28644">#28644</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/VedantMadane"><code>@VedantMadane</code></a></li> <li><a href="https://github.com/alzeph"><code>@alzeph</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/fredrikblau"><code>@fredrikblau</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/Aniket-a14"><code>@Aniket-a14</code></a></li> <li><a href="https://github.com/r-b-1"><code>@r-b-1</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/62914c4b9b79a9e5004374a9c482ad2ed69290e1"><code>62914c4</code></a> Bump version to 0.16.8 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28648">#28648</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/c47e0cdc665f56536ce7f7a8ac40fa0ff3f79482"><code>c47e0cd</code></a> [ty] Bound aliased intersection expansion during inference (<a href="https://redirect.github.com/astral-sh/ruff/issues/28546">#28546</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ff4747b509ab4fffbe5689fcae39caa7503d1dcf"><code>ff4747b</code></a> renovate: update uv hashes correctly with setup-uv (<a href="https://redirect.github.com/astral-sh/ruff/issues/28621">#28621</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/94efeaa28630d80b2a74adf3c3963de99ed4ee29"><code>94efeaa</code></a> [ty] Compact reachable binding and declaration histories (<a href="https://redirect.github.com/astral-sh/ruff/issues/28349">#28349</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/50020fb1e8aa83b0826fa6f5f33a1e93c10cc60e"><code>50020fb</code></a> [ty] Avoid storing constraint nodes twice (<a href="https://redirect.github.com/astral-sh/ruff/issues/28375">#28375</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/446bb68da50014bb75f5ce1504a80c5883e3b0b2"><code>446bb68</code></a> [ty] Compare bound-method receivers before signatures (<a href="https://redirect.github.com/astral-sh/ruff/issues/28384">#28384</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/304ab86be5de6507e276ab09f5b43f44aeb92469"><code>304ab86</code></a> [<code>flake8-type-checking</code>] Prefer lazy imports over <code>TYPE_CHECKING</code> on 3.15+ (`...</li> <li><a href="https://github.com/astral-sh/ruff/commit/d940b244f7512427b0d87c7953e88c60e69f9bdf"><code>d940b24</code></a> [ty] Watch script dependencies in CLI watch mode (<a href="https://redirect.github.com/astral-sh/ruff/issues/28125">#28125</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/fe9f065a504127b11da72c2ff6d7813ddf3ce8ac"><code>fe9f065</code></a> [flake8-tidy-imports] Add <code>extend-banned-api</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28644">#28644</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/31131db44f057cce68fa6b95552b7db54167b0b3"><code>31131db</code></a> [ty] Support <code>type[A & B]</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/27124">#27124</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.7...0.16.8">compare view</a></li> </ul> </details> <br /> Updates `wemake-python-styleguide` from 1.8.0 to 1.8.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/wemake-services/wemake-python-styleguide/releases">wemake-python-styleguide's releases</a>.</em></p> <blockquote> <h2>Version 1.8.1</h2> <h2>What's Changed</h2> <h3>Bugfixes</h3> <ul> <li>Count overused str and bytes separately for <code>WPS226</code>, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3782">#3782</a></li> <li>Do not count docstrings for <code>WPS226</code>, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3803">#3803</a></li> <li>Do not count attribute and type alias docstrings for <code>WPS226</code>, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3805">#3805</a></li> <li>Adds direct links to violations when searching by code, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3790">#3790</a></li> </ul> <h3>Misc</h3> <ul> <li>Fixed claude skill definition and metadata, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3780">#3780</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/TokenStyle"><code>@TokenStyle</code></a> made their first contribution in <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/pull/3784">wemake-services/wemake-python-styleguide#3784</a></li> <li><a href="https://github.com/webdevsamran"><code>@webdevsamran</code></a> made their first contribution in <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/pull/3794">wemake-services/wemake-python-styleguide#3794</a></li> <li><a href="https://github.com/AndreyGatsuk"><code>@AndreyGatsuk</code></a> made their first contribution in <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/pull/3792">wemake-services/wemake-python-styleguide#3792</a></li> <li><a href="https://github.com/vyhuholl"><code>@vyhuholl</code></a> made their first contribution in <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/pull/3804">wemake-services/wemake-python-styleguide#3804</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/wemake-services/wemake-python-styleguide/compare/1.8.0...1.8.1">https://github.com/wemake-services/wemake-python-styleguide/compare/1.8.0...1.8.1</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/wemake-services/wemake-python-styleguide/blob/master/CHANGELOG.md">wemake-python-styleguide's changelog</a>.</em></p> <blockquote> <h2>1.8.1</h2> <h3>Bugfixes</h3> <ul> <li>Count overused str and bytes separately for <code>WPS226</code>, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3782">#3782</a></li> <li>Do not count docstrings for <code>WPS226</code>, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3803">#3803</a></li> <li>Do not count attribute and type alias docstrings for <code>WPS226</code>, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3805">#3805</a></li> <li>Adds direct links to violations when searching by code, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3790">#3790</a></li> </ul> <h3>Misc</h3> <ul> <li>Fixed claude skill definition and metadata, <a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3780">#3780</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/7ae4ac712e133cdda143729e17f5fdcf2ed744bf"><code>7ae4ac7</code></a> Version 1.8.1 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3809">#3809</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/88e8395295729c4f38ee5e19e25513274bc96ba4"><code>88e8395</code></a> Do not count attribute docstrings for WPS226 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3806">#3806</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/b841755197231e26af00dd0a09698a715387d0b5"><code>b841755</code></a> chore(deps-dev): bump ruff from 0.16.5 to 0.16.6 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3807">#3807</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/0ee6dc93e0646b31417cadfbc96080d7cd59041b"><code>0ee6dc9</code></a> Do not count docstrings for WPS226 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3804">#3804</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/6e0b6b4c33c409a197d651f0dcfeced6798479c0"><code>6e0b6b4</code></a> chore(deps-dev): bump lxml from 6.1.2 to 6.1.3 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3802">#3802</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/aec757b47ee802032ff44588c007689e28f3fbac"><code>aec757b</code></a> chore(deps-dev): bump sphinxcontrib-mermaid from 2.1.0 to 2.1.1 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3800">#3800</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/fdd37895109c0591b4fba0e806be5bd1c20f71b4"><code>fdd3789</code></a> chore(deps-dev): bump pytest-randomly from 4.1.0 to 5.0.0 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3801">#3801</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/42ffc0684bdae3ee159ed48655d96fcb181632e9"><code>42ffc06</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3799">#3799</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/9960e2ce189b414cc4766f95d6f8b710019a2fa9"><code>9960e2c</code></a> chore(deps): bump reagento/relator from 1.7.0 to 1.7.1 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3796">#3796</a>)</li> <li><a href="https://github.com/wemake-services/wemake-python-styleguide/commit/1e8f17b27fc60266f65e0cc560378c17365ba764"><code>1e8f17b</code></a> chore(deps-dev): bump import-linter from 2.13 to 2.14 (<a href="https://redirect.github.com/wemake-services/wemake-python-styleguide/issues/3797">#3797</a>)</li> <li>Additional commits viewable in <a href="https://github.com/wemake-services/wemake-python-styleguide/compare/1.8.0...1.8.1">compare view</a></li> </ul> </details> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details>
jychp
added a commit
to cartography-cncf/cartography
that referenced
this pull request
Sep 30, 2026
Bumps the minor-and-patch group with 8 updates: | Package | From | To | | --- | --- | --- | | [neo4j](https://github.com/neo4j/neo4j-python-driver) | `6.3.0` | `6.3.1` | | [oci](https://github.com/oracle/oci-python-sdk) | `2.185.2` | `2.186.0` | | [urllib3](https://github.com/urllib3/urllib3) | `2.7.0` | `2.8.0` | | [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.30.1` | `12.30.2` | | [msgraph-sdk](https://github.com/microsoftgraph/msgraph-sdk-python) | `1.62.0` | `1.63.0` | | [workos](https://workos.com/docs/sdks/python) | `10.3.0` | `10.4.0` | | [neo4j-rust-ext](https://github.com/neo4j/neo4j-python-driver-rust-ext) | `6.3.0.0` | `6.3.1.0` | | [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.6.1` | `16.7` | Updates `neo4j` from 6.3.0 to 6.3.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/neo4j/neo4j-python-driver/releases">neo4j's releases</a>.</em></p> <blockquote> <h2>Neo4j Python Driver 6.3.1</h2> <p><a href="https://github.com/neo4j/neo4j-python-driver/wiki/6.x-changelog#631">https://github.com/neo4j/neo4j-python-driver/wiki/6.x-changelog#631</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/fc9562fb757f081d8edc11d8e225f5430ff1e1eb"><code>fc9562f</code></a> Bump dependencies (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1342">#1342</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/0d6040d16702f24bad74a56ba15f1dd0dc203cdb"><code>0d6040d</code></a> Bump setuptools from 82.0.1 to 83.0.0 in /benchmarks (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1324">#1324</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/7596d3c53cf0ac5451013c9607b311f48543b810"><code>7596d3c</code></a> CI: reduce log output (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1321">#1321</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/d7a37dd4e043482d0c6a3d5057aa032b6ca0d869"><code>d7a37dd</code></a> Fix application error desyncing auto-commit result (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1333">#1333</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/c10e27288cbc1ac6453c63bdfa2bc75536fc90d7"><code>c10e272</code></a> Fix BoltSocketBase.getpeercert pass-through (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1334">#1334</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/c38a144906c37d3dd80086da726d9b06560249f3"><code>c38a144</code></a> Benchkit: fix type-guard checking wrong variable (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1336">#1336</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/a3d4f4da8ebe13628520acbaeac2e46d70fa1310"><code>a3d4f4d</code></a> Clean up dead and broken code (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1335">#1335</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver/commit/73145ec595c36c2f77eb09177e7f3b00f6ba5763"><code>73145ec</code></a> Semgrep: ignore benchmark code (<a href="https://redirect.github.com/neo4j/neo4j-python-driver/issues/1332">#1332</a>)</li> <li>See full diff in <a href="https://github.com/neo4j/neo4j-python-driver/compare/6.3.0...6.3.1">compare view</a></li> </ul> </details> <br /> Updates `oci` from 2.185.2 to 2.186.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/oracle/oci-python-sdk/releases">oci's releases</a>.</em></p> <blockquote> <h2>2.186.0</h2> <h2>Added</h2> <ul> <li>Support for higher usage submission limits for metered SaaS listings and legacy subscription endpoints in the Service Enablement Lifecycle Framework service</li> <li>Support for customer-managed encryption keys for database systems and cross-region backup copies in the PostgreSQL service</li> <li>Support for listing available VMware binaries and generating download links in the Oracle Cloud VMware Solution service</li> <li>Support for data verification using database object counts, object statuses, and estimated table row counts in the Database Migration service</li> <li>Support for settings specific to online logical, offline logical, and online standby Oracle migrations in the Database Migration service</li> </ul> <h2>Breaking</h2> <ul> <li>The field <code>usage_record_id</code> was removed from the model <code>CreateSubscriptionUsageRecordDetails</code> in the Service Enablement Lifecycle Framework service</li> <li>Client-side decryption using a <code>KMSMasterKeyProvider</code> configured with a KMS master key now rejects encrypted payloads whose master key ID, vault ID, or region differs from the configured key. To decrypt data encrypted with different KMS keys, select the appropriate provider or use a <code>KMSMasterKeyProvider</code> without a configured master key.</li> <li>Client-side decryption using a <code>KMSMasterKeyProvider</code> without a configured master key now requires the region to be known independently of the encrypted payload through built-in SDK definitions, explicit configuration, registered region metadata, Oracle Alloy configuration, or opted-in Instance Metadata Service (IMDS). A region accepted only through endpoint fallback, such as a dotted domain, the implicit OC1 realm, or <code>OCI_DEFAULT_REALM</code>, is rejected. If a region is not yet included in this SDK release, configure or register it before decrypting.</li> </ul> <h2>File Checksums (SHA256)</h2> <p>oci-python-sdk-2.186.0.zip 16b29333b5dcd769ffff9b75c2d635f8658839e72bad85c833c5e2d3b61eea67</p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/oracle/oci-python-sdk/blob/master/CHANGELOG.rst">oci's changelog</a>.</em></p> <blockquote> <h1>2.186.0 - 2026-09-15</h1> <h2>Added</h2> <ul> <li>Support for higher usage submission limits for metered SaaS listings and legacy subscription endpoints in the Service Enablement Lifecycle Framework service</li> <li>Support for customer-managed encryption keys for database systems and cross-region backup copies in the PostgreSQL service</li> <li>Support for listing available VMware binaries and generating download links in the Oracle Cloud VMware Solution service</li> <li>Support for data verification using database object counts, object statuses, and estimated table row counts in the Database Migration service</li> <li>Support for settings specific to online logical, offline logical, and online standby Oracle migrations in the Database Migration service</li> </ul> <h2>Breaking</h2> <ul> <li>The field <code>usage_record_id</code> was removed from the model <code>CreateSubscriptionUsageRecordDetails</code> in the Service Enablement Lifecycle Framework service</li> <li>Client-side decryption using a <code>KMSMasterKeyProvider</code> configured with a KMS master key now rejects encrypted payloads whose master key ID, vault ID, or region differs from the configured key. To decrypt data encrypted with different KMS keys, select the appropriate provider or use a <code>KMSMasterKeyProvider</code> without a configured master key.</li> <li>Client-side decryption using a <code>KMSMasterKeyProvider</code> without a configured master key now requires the region to be known independently of the encrypted payload through built-in SDK definitions, explicit configuration, registered region metadata, Oracle Alloy configuration, or opted-in Instance Metadata Service (IMDS). A region accepted only through endpoint fallback, such as a dotted domain, the implicit OC1 realm, or <code>OCI_DEFAULT_REALM</code>, is rejected. If a region is not yet included in this SDK release, configure or register it before decrypting.</li> </ul> <p>====================</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/oracle/oci-python-sdk/commit/36163b8e415638cf56d13bad541e290c15130314"><code>36163b8</code></a> Releasing version 2.186.0</li> <li><a href="https://github.com/oracle/oci-python-sdk/commit/356cbef7c61e9b96537b3811757f0b46457b36c7"><code>356cbef</code></a> Releasing version 2.186.0</li> <li>See full diff in <a href="https://github.com/oracle/oci-python-sdk/compare/v2.185.2...v2.186.0">compare view</a></li> </ul> </details> <br /> Updates `urllib3` from 2.7.0 to 2.8.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/releases">urllib3's releases</a>.</em></p> <blockquote> <h2>2.8.0</h2> <h2>🚀 urllib3 is fundraising for HTTP/2 support</h2> <p><a href="https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support">urllib3 is raising ~$40,000 USD</a> to release HTTP/2 support and ensure long-term sustainable maintenance of the project. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects <a href="https://opencollective.com/urllib3">please consider contributing financially</a> to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.</p> <p>Thank you for your support.</p> <h2>Security</h2> <p>Fixed the following security issues:</p> <ul> <li>The TLS configuration for HTTPS proxies could be ignored or overridden. (High severity, GHSA-8988-9cw3-xx77)</li> <li><code>HTTPResponse.stream()</code> and <code>read_chunked()</code> could buffer a chunk-size line of unbounded length in memory. (High severity, GHSA-vxq7-64xx-v4gw)</li> <li>Chunked Deflate streaming could enter an infinite loop. (Medium severity, GHSA-gh4c-6fx4-qh6g)</li> </ul> <blockquote> <p>[!IMPORTANT] urllib3 2.8.0 fixes HTTPS proxy TLS configuration being ignored or overridden by destination settings. Configurations relying on that behavior may require changes.</p> <p>Configure proxy CA certificates and client certificates in <code>proxy_ssl_context</code>, and proxy identity checks with <code>proxy_assert_hostname</code> or <code>proxy_assert_fingerprint</code>. Destination client certificates and identity overrides no longer apply to HTTPS forwarding proxy connections.</p> </blockquote> <blockquote> <p>[!NOTE] CVE IDs had not yet been assigned to these advisories at the time of release due to a backlog at GitHub's CNA.</p> </blockquote> <h2>Deprecations & Removals</h2> <ul> <li>Deprecated using an empty collection as the <code>Retry</code> option <code>allowed_methods</code> to retry any verb. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5044">#5044</a>)</li> </ul> <h2>Features</h2> <ul> <li>Added <code>Url.auth_decoded</code> and <code>Url.auth_decoded_joined</code> convenience properties to the result of <code>parse_url()</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/4945">#4945</a>)</li> <li>Added <code>basic_auth_encoding</code> and <code>proxy_basic_auth_encoding</code> parameters to <code>urllib3.util.make_headers()</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5092">#5092</a>)</li> </ul> <h2>Bugfixes</h2> <ul> <li> <p>Fixed response header handling to replace obsolete folded header lines (<code>obs-fold</code>) with spaces in accordance with RFC 9112, preventing raw CRLF sequences from appearing in header values such as <code>Set-Cookie</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/1362">#1362</a>)</p> </li> <li> <p>Fixed usage of <code>proxy_ssl_context</code> with <code>ProxyManager</code> when <code>use_forwarding_for_https=True</code>. Passing <code>ssl_context</code> instead of <code>proxy_ssl_context</code> for HTTPS proxies in this configuration now emits a <code>FutureWarning</code> and will raise an error in v3.0. (<a href="https://redirect.github.com/urllib3/urllib3/issues/2577">#2577</a>)</p> </li> <li> <p>Changed behavior of the default <code>ConnectionPool.pool</code> initialization. <code>LifoQueue</code> is now resolved from the <code>queue</code> module after the <code>ConnectionPool</code> is instantiated instead of using the default cached <code>QueueCls</code> class property. This is done because sometimes the <code>queue.LifoQueue</code> is monkey-patched late in the program, such as by gevent. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3289">#3289</a>)</p> </li> <li> <p>Raised <code>UnrewindableBodyError</code> instead of <code>ValueError</code> when retrying a request whose body had <code>tell()</code> but not <code>seek()</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3779">#3779</a>)</p> </li> <li> <p>Decoded percent-encoded SOCKS proxy credentials before authenticating with the proxy server. (<a href="https://redirect.github.com/urllib3/urllib3/issues/3785">#3785</a>)</p> </li> <li> <p>Fixed <code>HTTPResponse.drain_conn()</code> to discard unread response data in 64 KiB chunks (same as the default <code>amt</code> when doing <code>HTTPResponse.stream(...)</code>). (<a href="https://redirect.github.com/urllib3/urllib3/issues/5019">#5019</a>)</p> </li> <li> <p>Fixed <code>is_ipaddress()</code> to detect non-standard IPv4 forms accepted by <code>socket.connect</code>, such as hex (<code>0x7f000001</code>), octal (<code>0177.0.0.1</code>), and decimal integers (<code>2130706433</code>), ensuring SSL certificate verification uses the correct mode for these addresses. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5029">#5029</a>)</p> </li> <li> <p>Fixed <code>HTTPConnectionPool.urlopen</code> raising a misleading <code>FullPoolError</code> instead of <code>ValueError</code> when called with an invalid <code>timeout</code> argument on a pool created with <code>block=True</code>. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5059">#5059</a>)</p> </li> <li> <p>Fixed port-zero handling to preserve explicit <code>:0</code> values instead of substituting the default ports 80 or 443 in URL parsing, pool selection, proxy configuration, <code>connection_from_url()</code>, and HTTP/2 request authority. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5071">#5071</a>, <a href="https://redirect.github.com/urllib3/urllib3/issues/5101">#5101</a>)</p> </li> <li> <p>Fixed a bug where <code>PoolManager</code> passed the <code>assert_hostname</code> and <code>assert_fingerprint</code> parameters to HTTP connection pools. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5077">#5077</a>)</p> </li> <li> <p>Fixed <code>HTTPConnectionPool.urlopen()</code> and HTTP proxy forwarding to strip URL fragments from absolute request targets before sending requests. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5079">#5079</a>)</p> </li> <li> <p>Added safeguards to the proxy tunneling code to prevent potential security issues when handling invalid characters in the proxy host and HTTP headers. This change affects users of Python 3.10, Python 3.11, and Python 3.12 when the standard library does not contain the fix; those on newer Python versions should upgrade to 3.13.14+ or 3.14.5+ to get the same security fixes. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5091">#5091</a>)</p> </li> <li> <p>Fixed <code>HTTPSConnection.connect()</code> overriding <code>ProxyConfig.ssl_context</code>'s certificate policy and proxy identity checks with the target connection's TLS settings when forwarding through an HTTPS proxy.</p> <p><code>HTTPSConnection</code> no longer applies target SNI, assertions, or client credentials to forwarding proxy handshakes and continues to use its <code>ssl_context</code> as a fallback when an HTTPS proxy forwards an HTTP target. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5093">#5093</a>)</p> </li> <li> <p>Fixed URL parsing to more strictly enforce RFC 3986 host syntax, rejecting invalid host input such as raw spaces and control characters, malformed percent-encodings, and percent-encoded control characters in HTTP(S) hosts and IPv6 zone identifiers, including proxy CONNECT tunnel targets. Host normalization now also follows RFC 3986 normalization rules for percent-encoded octets by decoding percent-encoded unreserved characters and uppercasing the hexadecimal digits of retained percent-encoded octets. (<a href="https://redirect.github.com/urllib3/urllib3/issues/5095">#5095</a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/urllib3/urllib3/blob/main/CHANGES.rst">urllib3's changelog</a>.</em></p> <blockquote> <h1>2.8.0 (2026-09-15)</h1> <h2>Security</h2> <p>Fixed the following security issues:</p> <ul> <li>The TLS configuration for HTTPS proxies could be ignored or overridden. (High severity, <code>GHSA-8988-9cw3-xx77 <https://github.com/urllib3/urllib3/security/advisories/GHSA-8988-9cw3-xx77></code>__)</li> <li><code>HTTPResponse.stream()</code> and <code>read_chunked()</code> could buffer a chunk-size line of unbounded length in memory. (High severity, <code>GHSA-vxq7-64xx-v4gw <https://github.com/urllib3/urllib3/security/advisories/GHSA-vxq7-64xx-v4gw></code>__)</li> <li>Chunked Deflate streaming could enter an infinite loop. (Medium severity, <code>GHSA-gh4c-6fx4-qh6g <https://github.com/urllib3/urllib3/security/advisories/GHSA-gh4c-6fx4-qh6g></code>__)</li> </ul> <p>.. caution::</p> <pre><code>urllib3 2.8.0 fixes HTTPS proxy TLS configuration being ignored or overridden by destination settings. Configurations relying on that behavior may require changes. <p>Configure proxy CA certificates and client certificates in <code>proxy_ssl_context</code>, and proxy identity checks with <code>proxy_assert_hostname</code> or <code>proxy_assert_fingerprint</code>. Destination client certificates and identity overrides no longer apply to HTTPS forwarding proxy connections. </code></pre></p> <h2>Deprecations & Removals</h2> <ul> <li>Deprecated using an empty collection as the <code>Retry</code> option <code>allowed_methods</code> to retry any verb. (<code>[#5044](urllib3/urllib3#5044) <https://github.com/urllib3/urllib3/issues/5044></code>__)</li> </ul> <h2>Features</h2> <ul> <li>Added <code>Url.auth_decoded</code> and <code>Url.auth_decoded_joined</code> convenience properties to the result of <code>parse_url()</code>. (<code>[#4945](urllib3/urllib3#4945) <https://github.com/urllib3/urllib3/issues/4945></code>__)</li> <li>Added <code>basic_auth_encoding</code> and <code>proxy_basic_auth_encoding</code> parameters to <code>urllib3.util.make_headers()</code>. (<code>[#5092](urllib3/urllib3#5092) <https://github.com/urllib3/urllib3/issues/5092></code>__)</li> </ul> <h2>Bugfixes</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/urllib3/urllib3/commit/b1d30ab61fe0db8f11092805e8c5ac43e091064a"><code>b1d30ab</code></a> Release 2.8.0</li> <li><a href="https://github.com/urllib3/urllib3/commit/9016d7e8afc68185496ef07f3c3a4a743d04922e"><code>9016d7e</code></a> Skip <code>test_read_chunked_with_trailing_data_does_not_hang</code> for brotlicffi (<a href="https://redirect.github.com/urllib3/urllib3/issues/5258">#5258</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/9101f581a8b3659af23b6ff335ae77200ca33533"><code>9101f58</code></a> Fix <code>nox -s docs</code> warning (<a href="https://redirect.github.com/urllib3/urllib3/issues/5256">#5256</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/cd770b059b543be29298ea5c52afb0b1b090f5ed"><code>cd770b0</code></a> Merge commit from fork</li> <li><a href="https://github.com/urllib3/urllib3/commit/ea2ad7b21a80da3632f80016526a18864586077f"><code>ea2ad7b</code></a> Merge commit from fork</li> <li><a href="https://github.com/urllib3/urllib3/commit/0716e31534345dc1599ea95d903c79f276239bd8"><code>0716e31</code></a> Fix loading unencrypted client keys with a password in pyOpenSSL (<a href="https://redirect.github.com/urllib3/urllib3/issues/5255">#5255</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/43c68c8b43a9dcb44ed2cf4ec91384ca0d46b37d"><code>43c68c8</code></a> Test pickling of <code>InvalidChunkLength</code> (<a href="https://redirect.github.com/urllib3/urllib3/issues/5247">#5247</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/308b279b3fb28e7bee952e152ec5baeb5bfd0817"><code>308b279</code></a> Share security policy between GitHub and Read the Docs (<a href="https://redirect.github.com/urllib3/urllib3/issues/5253">#5253</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/53fa0731b27d4b71ab0755ea5b896422d005d706"><code>53fa073</code></a> Add policy on duplicate pull requests (<a href="https://redirect.github.com/urllib3/urllib3/issues/5252">#5252</a>)</li> <li><a href="https://github.com/urllib3/urllib3/commit/5f2a6a843d0100d1351c3f94d58581ca98d17267"><code>5f2a6a8</code></a> Assert on the ALPN extension in test_tunnel_sets_http_11_alpn (<a href="https://redirect.github.com/urllib3/urllib3/issues/5232">#5232</a>)</li> <li>Additional commits viewable in <a href="https://github.com/urllib3/urllib3/compare/2.7.0...2.8.0">compare view</a></li> </ul> </details> <br /> Updates `azure-storage-blob` from 12.30.1 to 12.30.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Azure/azure-sdk-for-python/releases">azure-storage-blob's releases</a>.</em></p> <blockquote> <h2>azure-storage-blob_12.30.2</h2> <h2>12.30.2 (2026-09-16)</h2> <h3>Bugs Fixed</h3> <ul> <li>Fixed an issue where a header name or value containing a <code>\r</code> or <code>\n</code> was written directly into a batch request body. Such headers are now rejected with a <code>ValueError</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Azure/azure-sdk-for-python/commit/95fcf4d79bb233d9069b77b6b7261902dcb63794"><code>95fcf4d</code></a> [Storage] Prepare 12.30.2 release for azure-storage-blob (<a href="https://redirect.github.com/Azure/azure-sdk-for-python/issues/49047">#49047</a>)</li> <li>See full diff in <a href="https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.30.1...azure-storage-blob_12.30.2">compare view</a></li> </ul> </details> <br /> Updates `msgraph-sdk` from 1.62.0 to 1.63.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-python/releases">msgraph-sdk's releases</a>.</em></p> <blockquote> <h2>v1.63.0</h2> <h2><a href="https://github.com/microsoftgraph/msgraph-sdk-python/compare/v1.62.0...v1.63.0">1.63.0</a> (2026-09-15)</h2> <h3>Features</h3> <ul> <li><strong>generation:</strong> update request builders and models (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-python/issues/1573">#1573</a>) (<a href="https://github.com/microsoftgraph/msgraph-sdk-python/commit/dd13ff6b7171827f54a56782f8da3974664e324b">dd13ff6</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/microsoftgraph/msgraph-sdk-python/blob/main/CHANGELOG.md">msgraph-sdk's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/microsoftgraph/msgraph-sdk-python/compare/v1.62.0...v1.63.0">1.63.0</a> (2026-09-15)</h2> <h3>Features</h3> <ul> <li><strong>generation:</strong> update request builders and models (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-python/issues/1573">#1573</a>) (<a href="https://github.com/microsoftgraph/msgraph-sdk-python/commit/dd13ff6b7171827f54a56782f8da3974664e324b">dd13ff6</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/microsoftgraph/msgraph-sdk-python/commit/66910856182f71bfa36ebbfa6ee11f6d09100de3"><code>6691085</code></a> Merge pull request <a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-python/issues/1574">#1574</a> from microsoftgraph/release-please--branches--main--...</li> <li><a href="https://github.com/microsoftgraph/msgraph-sdk-python/commit/d9f5e6840b761a0c10e2d2601232cf6320f5064f"><code>d9f5e68</code></a> chore(main): release 1.63.0</li> <li><a href="https://github.com/microsoftgraph/msgraph-sdk-python/commit/dd13ff6b7171827f54a56782f8da3974664e324b"><code>dd13ff6</code></a> feat(generation): update request builders and models (<a href="https://redirect.github.com/microsoftgraph/msgraph-sdk-python/issues/1573">#1573</a>)</li> <li>See full diff in <a href="https://github.com/microsoftgraph/msgraph-sdk-python/compare/v1.62.0...v1.63.0">compare view</a></li> </ul> </details> <br /> Updates `workos` from 10.3.0 to 10.4.0 Updates `neo4j-rust-ext` from 6.3.0.0 to 6.3.1.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/blob/6.x/CHANGELOG.md">neo4j-rust-ext's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/tree/6.3.1.0">6.3.1.0</a> (2026-09-15)</h2> <hr /> <h3><strong>⭐️ New Features</strong></h3> <ul> <li>Target driver version 6.3.1 (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/110">#110</a>).</li> </ul> <p><a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/110">#110</a>: <a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/pull/110">neo4j/neo4j-python-driver-rust-ext#110</a></p> <h3><strong>👏️ Improvements</strong></h3> <ul> <li>Update <code>maturin</code> (Python package builder) from <code>~= 1.13.1</code> to <code>== 1.15.0</code> (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/109">#109</a>).</li> </ul> <p><a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/109">#109</a>: <a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/pull/109">neo4j/neo4j-python-driver-rust-ext#109</a></p> <h3><strong>🧑️💻️ Development</strong></h3> <ul> <li>Fix <code>test_bench_swap_endian</code> benchmark (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/107">#107</a>).</li> </ul> <p><a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/107">#107</a>: <a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/pull/107">neo4j/neo4j-python-driver-rust-ext#107</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/commit/e0c69103979dcf28010985e43a77813176b37449"><code>e0c6910</code></a> Port 5.28.6.0 changelog</li> <li><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/commit/da4b416fa0ab7097ee9abe280e599c740c689a92"><code>da4b416</code></a> Render 6.3.1.0 changelog</li> <li><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/commit/e346d7ed78053f6ce7a3dd10706ba742f8141883"><code>e346d7e</code></a> Target driver version 6.3.1 (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/110">#110</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/commit/246cc504de7286b7f58114a618987721d288831d"><code>246cc50</code></a> Bump maturin to 1.15.0 (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/109">#109</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/commit/8faf109ee8ae51ddc19ae32e8de74387465c3ffd"><code>8faf109</code></a> Tests: fix vector swap endian benchmark (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/107">#107</a>)</li> <li><a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/commit/a9270eccfad658547787049da8bebd8934ea4d92"><code>a9270ec</code></a> Changelog add 5.28.5.0 (<a href="https://redirect.github.com/neo4j/neo4j-python-driver-rust-ext/issues/105">#105</a>)</li> <li>See full diff in <a href="https://github.com/neo4j/neo4j-python-driver-rust-ext/compare/6.3.0.0...6.3.1.0">compare view</a></li> </ul> </details> <br /> Updates `pytest-rerunfailures` from 16.6.1 to 16.7 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst">pytest-rerunfailures's changelog</a>.</em></p> <blockquote> <h2>16.7 (2026-09-17)</h2> <p>Features ++++++++</p> <ul> <li>Allow configuring <code>only_rerun</code> regular expressions in <code>pytest.ini</code> files. (<code>[#165](pytest-dev/pytest-rerunfailures#165) <https://github.com/pytest-dev/pytest-rerunfailures/issues/165></code>_)</li> <li>Show each rerun attempt and its final outcome in the rerun test summary info section. (<code>[#191](pytest-dev/pytest-rerunfailures#191) <https://github.com/pytest-dev/pytest-rerunfailures/issues/191></code>_)</li> <li>Allow flaky marker conditions to inspect the exception that caused a failed test phase, including when running with pytest-xdist. (<code>[#230](pytest-dev/pytest-rerunfailures#230) <https://github.com/pytest-dev/pytest-rerunfailures/issues/230></code>_)</li> </ul> <p>Bug Fixes +++++++++</p> <ul> <li>Match <code>only_rerun</code> against the full exception chain (<code>__cause__</code> and <code>__context__</code>), not only the outermost exception. Match <code>rerun_except</code> against explicit <code>__cause__</code> links only, so implicit <code>except</code> / <code>finally</code> context does not suppress reruns. (<code>[#353](pytest-dev/pytest-rerunfailures#353) <https://github.com/pytest-dev/pytest-rerunfailures/issues/353></code>_)</li> <li>Fix <code>INTERNALERROR</code> when <code>only_rerun</code> or <code>rerun_except</code> is given a bare exception class instead of a list. (<code>[#362](pytest-dev/pytest-rerunfailures#362) <https://github.com/pytest-dev/pytest-rerunfailures/issues/362></code>_)</li> <li>Fix subtest reruns with newer pytest versions that use structured <code>NodeId</code> values internally. (<code>[#363](pytest-dev/pytest-rerunfailures#363) <https://github.com/pytest-dev/pytest-rerunfailures/issues/363></code>_)</li> <li>Mark teardown failures from an attempt that is rerun as reruns, so a later successful attempt is not reported as an error. (<code>[#366](pytest-dev/pytest-rerunfailures#366) <https://github.com/pytest-dev/pytest-rerunfailures/issues/366></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Keep the test suite passing when pytest-randomly is installed, including when the outer pytest is started with <code>-p no:randomly</code>. (<code>[#218](pytest-dev/pytest-rerunfailures#218) <https://github.com/pytest-dev/pytest-rerunfailures/issues/218></code>_)</li> <li>Test the free-threaded Python 3.14 build in CI, via a new <code>py314t</code> tox environment and a matching workflow job. (<code>[#361](pytest-dev/pytest-rerunfailures#361) <https://github.com/pytest-dev/pytest-rerunfailures/issues/361></code>_)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/fead4c656301dae378897a10b8e8998e52d6bb2c"><code>fead4c6</code></a> Preparing release 16.7</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/ed62cfc3cafafc6d71bc97a9488cfa9f6601affb"><code>ed62cfc</code></a> Show each rerun attempt outcome in summary (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/370">#370</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/64687c9511133582d6647f3864eb111c8d52f93a"><code>64687c9</code></a> Add pytest.ini support for only_rerun (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/369">#369</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/1997015a4b7f334a5b2f55a2c953d5954ab53fce"><code>1997015</code></a> Preserve rerun status for teardown failures (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/367">#367</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/4220386e845dafeec8ef2261ae31c33b54f2431a"><code>4220386</code></a> Match only_rerun against wrapped exception causes (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/364">#364</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87d81b2b0924a9c59a729826cd19c0e1b285a93f"><code>87d81b2</code></a> Keep nested pytester sessions isolated from pytest-randomly (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/368">#368</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/be14a6bd94ec3da02a7ddfd20e5a7364188f587d"><code>be14a6b</code></a> Allow flaky conditions to inspect failure exceptions (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/365">#365</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/78561a50e6b1afdca9c937d109750001599ff76d"><code>78561a5</code></a> ci: test the free-threaded Python 3.14 build (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/361">#361</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/402afb4a4197de7a8f827b84f11a15f0b4ab1cdc"><code>402afb4</code></a> Fix bare exception class in only_rerun / rerun_except causing INTERNALERROR (...</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87a8b47de931f859712a1496dc49ac6a5aeba41d"><code>87a8b47</code></a> Fix subtest reruns with structured NodeId keys (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/363">#363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6.1...16.7">compare view</a></li> </ul> </details> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jeremy Chapeau <113923302+jychp@users.noreply.github.com>
cbellini
pushed a commit
to cbellini/experimenter
that referenced
this pull request
Oct 2, 2026
…nter/tests (mozilla#17498) Bumps [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) from 16.6 to 16.7. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst">pytest-rerunfailures's changelog</a>.</em></p> <blockquote> <h2>16.7 (2026-09-17)</h2> <p>Features ++++++++</p> <ul> <li>Allow configuring <code>only_rerun</code> regular expressions in <code>pytest.ini</code> files. (<code>[mozilla#165](pytest-dev/pytest-rerunfailures#165) <https://github.com/pytest-dev/pytest-rerunfailures/issues/165></code>_)</li> <li>Show each rerun attempt and its final outcome in the rerun test summary info section. (<code>[mozilla#191](pytest-dev/pytest-rerunfailures#191) <https://github.com/pytest-dev/pytest-rerunfailures/issues/191></code>_)</li> <li>Allow flaky marker conditions to inspect the exception that caused a failed test phase, including when running with pytest-xdist. (<code>[mozilla#230](pytest-dev/pytest-rerunfailures#230) <https://github.com/pytest-dev/pytest-rerunfailures/issues/230></code>_)</li> </ul> <p>Bug Fixes +++++++++</p> <ul> <li>Match <code>only_rerun</code> against the full exception chain (<code>__cause__</code> and <code>__context__</code>), not only the outermost exception. Match <code>rerun_except</code> against explicit <code>__cause__</code> links only, so implicit <code>except</code> / <code>finally</code> context does not suppress reruns. (<code>[mozilla#353](pytest-dev/pytest-rerunfailures#353) <https://github.com/pytest-dev/pytest-rerunfailures/issues/353></code>_)</li> <li>Fix <code>INTERNALERROR</code> when <code>only_rerun</code> or <code>rerun_except</code> is given a bare exception class instead of a list. (<code>[mozilla#362](pytest-dev/pytest-rerunfailures#362) <https://github.com/pytest-dev/pytest-rerunfailures/issues/362></code>_)</li> <li>Fix subtest reruns with newer pytest versions that use structured <code>NodeId</code> values internally. (<code>[mozilla#363](pytest-dev/pytest-rerunfailures#363) <https://github.com/pytest-dev/pytest-rerunfailures/issues/363></code>_)</li> <li>Mark teardown failures from an attempt that is rerun as reruns, so a later successful attempt is not reported as an error. (<code>[mozilla#366](pytest-dev/pytest-rerunfailures#366) <https://github.com/pytest-dev/pytest-rerunfailures/issues/366></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Keep the test suite passing when pytest-randomly is installed, including when the outer pytest is started with <code>-p no:randomly</code>. (<code>[mozilla#218](pytest-dev/pytest-rerunfailures#218) <https://github.com/pytest-dev/pytest-rerunfailures/issues/218></code>_)</li> <li>Test the free-threaded Python 3.14 build in CI, via a new <code>py314t</code> tox environment and a matching workflow job. (<code>[mozilla#361](pytest-dev/pytest-rerunfailures#361) <https://github.com/pytest-dev/pytest-rerunfailures/issues/361></code>_)</li> </ul> <h2>16.6.1 (2026-09-03)</h2> <p>Bug Fixes</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/fead4c656301dae378897a10b8e8998e52d6bb2c"><code>fead4c6</code></a> Preparing release 16.7</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/ed62cfc3cafafc6d71bc97a9488cfa9f6601affb"><code>ed62cfc</code></a> Show each rerun attempt outcome in summary (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/370">#370</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/64687c9511133582d6647f3864eb111c8d52f93a"><code>64687c9</code></a> Add pytest.ini support for only_rerun (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/369">#369</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/1997015a4b7f334a5b2f55a2c953d5954ab53fce"><code>1997015</code></a> Preserve rerun status for teardown failures (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/367">#367</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/4220386e845dafeec8ef2261ae31c33b54f2431a"><code>4220386</code></a> Match only_rerun against wrapped exception causes (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/364">#364</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87d81b2b0924a9c59a729826cd19c0e1b285a93f"><code>87d81b2</code></a> Keep nested pytester sessions isolated from pytest-randomly (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/368">#368</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/be14a6bd94ec3da02a7ddfd20e5a7364188f587d"><code>be14a6b</code></a> Allow flaky conditions to inspect failure exceptions (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/365">#365</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/78561a50e6b1afdca9c937d109750001599ff76d"><code>78561a5</code></a> ci: test the free-threaded Python 3.14 build (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/361">#361</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/402afb4a4197de7a8f827b84f11a15f0b4ab1cdc"><code>402afb4</code></a> Fix bare exception class in only_rerun / rerun_except causing INTERNALERROR (...</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87a8b47de931f859712a1496dc49ac6a5aeba41d"><code>87a8b47</code></a> Fix subtest reruns with structured NodeId keys (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/363">#363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6...16.7">compare view</a></li> </ul> </details> <br /> [](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>
shanjiaz
added a commit
to vllm-project/speculators
that referenced
this pull request
Oct 2, 2026
…to ~=16.7 (#1191) Updates the requirements on [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) to permit the latest version. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst">pytest-rerunfailures's changelog</a>.</em></p> <blockquote> <h2>16.7 (2026-09-17)</h2> <p>Features ++++++++</p> <ul> <li>Allow configuring <code>only_rerun</code> regular expressions in <code>pytest.ini</code> files. (<code>[#165](pytest-dev/pytest-rerunfailures#165) <https://github.com/pytest-dev/pytest-rerunfailures/issues/165></code>_)</li> <li>Show each rerun attempt and its final outcome in the rerun test summary info section. (<code>[#191](pytest-dev/pytest-rerunfailures#191) <https://github.com/pytest-dev/pytest-rerunfailures/issues/191></code>_)</li> <li>Allow flaky marker conditions to inspect the exception that caused a failed test phase, including when running with pytest-xdist. (<code>[#230](pytest-dev/pytest-rerunfailures#230) <https://github.com/pytest-dev/pytest-rerunfailures/issues/230></code>_)</li> </ul> <p>Bug Fixes +++++++++</p> <ul> <li>Match <code>only_rerun</code> against the full exception chain (<code>__cause__</code> and <code>__context__</code>), not only the outermost exception. Match <code>rerun_except</code> against explicit <code>__cause__</code> links only, so implicit <code>except</code> / <code>finally</code> context does not suppress reruns. (<code>[#353](pytest-dev/pytest-rerunfailures#353) <https://github.com/pytest-dev/pytest-rerunfailures/issues/353></code>_)</li> <li>Fix <code>INTERNALERROR</code> when <code>only_rerun</code> or <code>rerun_except</code> is given a bare exception class instead of a list. (<code>[#362](pytest-dev/pytest-rerunfailures#362) <https://github.com/pytest-dev/pytest-rerunfailures/issues/362></code>_)</li> <li>Fix subtest reruns with newer pytest versions that use structured <code>NodeId</code> values internally. (<code>[#363](pytest-dev/pytest-rerunfailures#363) <https://github.com/pytest-dev/pytest-rerunfailures/issues/363></code>_)</li> <li>Mark teardown failures from an attempt that is rerun as reruns, so a later successful attempt is not reported as an error. (<code>[#366](pytest-dev/pytest-rerunfailures#366) <https://github.com/pytest-dev/pytest-rerunfailures/issues/366></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Keep the test suite passing when pytest-randomly is installed, including when the outer pytest is started with <code>-p no:randomly</code>. (<code>[#218](pytest-dev/pytest-rerunfailures#218) <https://github.com/pytest-dev/pytest-rerunfailures/issues/218></code>_)</li> <li>Test the free-threaded Python 3.14 build in CI, via a new <code>py314t</code> tox environment and a matching workflow job. (<code>[#361](pytest-dev/pytest-rerunfailures#361) <https://github.com/pytest-dev/pytest-rerunfailures/issues/361></code>_)</li> </ul> <h2>16.6.1 (2026-09-03)</h2> <p>Bug Fixes</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/fead4c656301dae378897a10b8e8998e52d6bb2c"><code>fead4c6</code></a> Preparing release 16.7</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/ed62cfc3cafafc6d71bc97a9488cfa9f6601affb"><code>ed62cfc</code></a> Show each rerun attempt outcome in summary (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/370">#370</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/64687c9511133582d6647f3864eb111c8d52f93a"><code>64687c9</code></a> Add pytest.ini support for only_rerun (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/369">#369</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/1997015a4b7f334a5b2f55a2c953d5954ab53fce"><code>1997015</code></a> Preserve rerun status for teardown failures (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/367">#367</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/4220386e845dafeec8ef2261ae31c33b54f2431a"><code>4220386</code></a> Match only_rerun against wrapped exception causes (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/364">#364</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87d81b2b0924a9c59a729826cd19c0e1b285a93f"><code>87d81b2</code></a> Keep nested pytester sessions isolated from pytest-randomly (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/368">#368</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/be14a6bd94ec3da02a7ddfd20e5a7364188f587d"><code>be14a6b</code></a> Allow flaky conditions to inspect failure exceptions (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/365">#365</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/78561a50e6b1afdca9c937d109750001599ff76d"><code>78561a5</code></a> ci: test the free-threaded Python 3.14 build (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/361">#361</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/402afb4a4197de7a8f827b84f11a15f0b4ab1cdc"><code>402afb4</code></a> Fix bare exception class in only_rerun / rerun_except causing INTERNALERROR (...</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87a8b47de931f859712a1496dc49ac6a5aeba41d"><code>87a8b47</code></a> Fix subtest reruns with structured NodeId keys (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/363">#363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.4...16.7">compare view</a></li> </ul> </details> <br /> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Helen Zhao <zsjwpianpian@gmail.com>
jkennedyvz
added a commit
to langchain-ai/langsmith-sdk
that referenced
this pull request
Oct 2, 2026
…tes (#3639) Bumps the py-minor-and-patch group in /python with 8 updates: | Package | From | To | | --- | --- | --- | | [httpx2](https://github.com/pydantic/httpx2) | `2.12.0` | `2.13.1` | | [anyio](https://github.com/agronholm/anyio) | `4.14.2` | `4.15.1` | | [cachetools](https://github.com/tkem/cachetools) | `7.1.7` | `7.2.0` | | [livekit-agents](https://github.com/livekit/agents) | `1.7.1` | `1.8.3` | | [google-genai](https://github.com/googleapis/python-genai) | `2.20.0` | `2.25.0` | | [strands-agents-tools](https://github.com/strands-agents/tools) | `0.8.7` | `0.8.9` | | [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) | `16.6` | `16.7` | | [debugpy](https://github.com/microsoft/debugpy) | `1.8.21` | `1.8.22` | Updates `httpx2` from 2.12.0 to 2.13.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/httpx2/releases">httpx2's releases</a>.</em></p> <blockquote> <h2>v2.13.1</h2> <h2>Highlights</h2> <h3>📤 Accurate file upload lengths</h3> <p>Passing a file as <code>content=</code> now calculates <code>Content-Length</code> from its remaining bytes, respecting the current file position (<a href="https://redirect.github.com/pydantic/httpx2/pull/1214">#1214</a>).</p> <h3>🔐 Reliable proxy TLS and HTTP/2 negotiation</h3> <p>TLS hostname overrides now apply inside HTTP proxy tunnels without affecting the proxy's own TLS connection (<a href="https://redirect.github.com/pydantic/httpx2/pull/1223">#1223</a>). HTTP/2 is advertised first when enabled, and HTTP/1.1 is omitted when disabled (<a href="https://redirect.github.com/pydantic/httpx2/pull/1155">#1155</a>).</p> <h3>🧹 Clean WebSocket shutdown</h3> <p>The sync WebSocket keepalive thread now exits cleanly when a ping races with connection shutdown (<a href="https://redirect.github.com/pydantic/httpx2/pull/1228">#1228</a>).</p> <h2>httpx2</h2> <h3>Fixed</h3> <ul> <li>Calculate <code>Content-Length</code> from the remaining bytes when a file is passed as <code>content=</code>, respecting its current position (<a href="https://redirect.github.com/pydantic/httpx2/pull/1214">#1214</a>).</li> <li>Stop the sync WebSocket keepalive thread cleanly when a ping races with connection shutdown (<a href="https://redirect.github.com/pydantic/httpx2/pull/1228">#1228</a>).</li> </ul> <h2>httpcore2</h2> <h3>Fixed</h3> <ul> <li>Honor the <code>sni_hostname</code> extension for TLS inside HTTP proxy tunnels without applying it to the proxy's TLS connection (<a href="https://redirect.github.com/pydantic/httpx2/pull/1223">#1223</a>).</li> <li>Prefer HTTP/2 during TLS protocol negotiation when enabled, and stop advertising HTTP/1.1 when it is disabled (<a href="https://redirect.github.com/pydantic/httpx2/pull/1155">#1155</a>).</li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/httpx2/compare/v2.13.0...v2.13.1">https://github.com/pydantic/httpx2/compare/v2.13.0...v2.13.1</a></p> <h2>v2.13.0</h2> <h2>Highlights</h2> <h3>🔐 Reliable TLS verification controls</h3> <p>The CLI <code>--no-verify</code> flag now disables TLS certificate verification as intended, and <code>--verify</code> provides an explicit counterpart (<a href="https://redirect.github.com/pydantic/httpx2/pull/1140">pydantic/httpx2#1140</a>, <a href="https://redirect.github.com/pydantic/httpx2/pull/1186">pydantic/httpx2#1186</a>).</p> <h3>🧹 Safer async stream cleanup</h3> <p>Stopping a streamed response early no longer risks a nested async generator finalization error (<a href="https://redirect.github.com/pydantic/httpx2/pull/1204">pydantic/httpx2#1204</a>).</p> <h2>httpx2</h2> <h3>Changed</h3> <ul> <li>Require <code>brotlicffi</code> 1.2.0.2 or later for the <code>brotli</code> extra on non-CPython implementations in <a href="https://redirect.github.com/pydantic/httpx2/pull/1179">pydantic/httpx2#1179</a></li> </ul> <h3>Fixed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pydantic/httpx2/blob/main/src/httpx2/CHANGELOG.md">httpx2's changelog</a>.</em></p> <blockquote> <h2>2.13.1 (September 23rd, 2026)</h2> <h3>Fixed</h3> <ul> <li>Calculate <code>Content-Length</code> from the remaining bytes when a file is passed as <code>content=</code>, respecting its current position. (<a href="https://redirect.github.com/pydantic/httpx2/pull/1214">#1214</a>)</li> <li>Stop the sync WebSocket keepalive thread cleanly when a ping races with connection shutdown. (<a href="https://redirect.github.com/pydantic/httpx2/pull/1228">#1228</a>)</li> </ul> <h2>2.13.0 (September 14th, 2026)</h2> <h3>Changed</h3> <ul> <li>Require <code>brotlicffi</code> 1.2.0.2 or later for the <code>brotli</code> extra on non-CPython implementations. (<a href="https://redirect.github.com/pydantic/httpx2/pull/1179">#1179</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Make the <code>--no-verify</code> CLI flag disable TLS certificate verification and add an explicit <code>--verify</code> counterpart. (<a href="https://redirect.github.com/pydantic/httpx2/pull/1140">#1140</a>, <a href="https://redirect.github.com/pydantic/httpx2/pull/1186">#1186</a>)</li> <li>Avoid nested async generator finalization errors when streamed responses are abandoned early. (<a href="https://redirect.github.com/pydantic/httpx2/pull/1204">#1204</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/httpx2/commit/d91c9f4236523eb5978ca800944fa0078f17409f"><code>d91c9f4</code></a> Correct the upcoming release version to 2.13.1 (<a href="https://redirect.github.com/pydantic/httpx2/issues/1228">#1228</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/62a607d0772ba567917a26afb4e7a83f104a10d6"><code>62a607d</code></a> Prepare version 2.14.0 (<a href="https://redirect.github.com/pydantic/httpx2/issues/1227">#1227</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/df9783d23b9508b7e6a2277217dae496e3435462"><code>df9783d</code></a> Respect file cursor positions when calculating raw content length (<a href="https://redirect.github.com/pydantic/httpx2/issues/1214">#1214</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/04d152ba8ef082f68feb21fe0e13e361215b942d"><code>04d152b</code></a> docs: correct stale URL.query example (<a href="https://redirect.github.com/pydantic/httpx2/issues/1222">#1222</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/f2951854442e78cb8f6d2256b7c1d83bd2b77d0b"><code>f295185</code></a> Prepare version 2.13.0 (<a href="https://redirect.github.com/pydantic/httpx2/issues/1208">#1208</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/8f215b5c9768ba8152c7aaf52fd85efb80ea992b"><code>8f215b5</code></a> Use portable links in API docstrings (<a href="https://redirect.github.com/pydantic/httpx2/issues/1202">#1202</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/36d636a002a42f961d1da4233546fe2f2c83c9c1"><code>36d636a</code></a> Group <code>httpx2.__all__</code> exports by source module (<a href="https://redirect.github.com/pydantic/httpx2/issues/1188">#1188</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/f1064aaf67dab1598bb817fa0bff871f5bb2d7fa"><code>f1064aa</code></a> Bump the python-packages group across 1 directory with 11 updates (<a href="https://redirect.github.com/pydantic/httpx2/issues/1179">#1179</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/bc27137977442cbfecb357046fd90f38c7f13108"><code>bc27137</code></a> Update uv-dynamic-versioning requirement from >=0.14.0 to >=0.14.1 (<a href="https://redirect.github.com/pydantic/httpx2/issues/1180">#1180</a>)</li> <li><a href="https://github.com/pydantic/httpx2/commit/62e08275346151351af60632a2258dea47218b6c"><code>62e0827</code></a> Restore <code>--no-verify</code> CLI flag (<a href="https://redirect.github.com/pydantic/httpx2/issues/1186">#1186</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/httpx2/compare/v2.12.0...v2.13.1">compare view</a></li> </ul> </details> <br /> Updates `anyio` from 4.14.2 to 4.15.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/agronholm/anyio/releases">anyio's releases</a>.</em></p> <blockquote> <h2>4.15.1</h2> <ul> <li>Implemented a compatibility fix for supporting direct access of <code>anyio.*</code> submodules from the main package even when those submodules were not directly imported first (<!-- raw HTML omitted --><a href="https://redirect.github.com/agronholm/anyio/issues/1311">#1311</a> <<a href="https://redirect.github.com/agronholm/anyio/issues/1311%5C%3E">agronholm/anyio#1311</a><!-- raw HTML omitted -->)</li> </ul> <h2>4.15.0</h2> <ul> <li> <p>Added support for the newer keyword-only arguments on <code>anyio.Path</code> methods to match the standard library <code>pathlib.Path</code>:</p> <ul> <li><code>follow_symlinks</code> on <code>exists()</code> (Python 3.12+)</li> <li><code>follow_symlinks</code> on <code>is_dir()</code> (Python 3.13+)</li> <li><code>follow_symlinks</code> on <code>is_file()</code> (Python 3.13+)</li> <li><code>follow_symlinks</code> on <code>owner()</code> (Python 3.13+)</li> <li><code>follow_symlinks</code> on <code>group()</code> (Python 3.13+)</li> <li><code>newline</code> on <code>read_text()</code> (Python 3.13+)</li> </ul> <p>(<a href="https://redirect.github.com/agronholm/anyio/pull/1286">#1286</a>, <a href="https://redirect.github.com/agronholm/anyio/pull/1293">#1293</a>; PR by <a href="https://github.com/jaideeppyne"><code>@jaideeppyne</code></a>)</p> </li> <li> <p>Added <code>amap</code>, <code>gather</code>, and <code>as_completed</code> utility functions to simplify common patterns (<a href="https://redirect.github.com/agronholm/anyio/pull/1173">#1173</a>; PR by <a href="https://github.com/Graeme22"><code>@Graeme22</code></a>)</p> </li> <li> <p>Added <code>--anyio-mode</code> command-line option as an alternative to the <code>anyio_mode</code> ini setting, and fix the pytest plugin's auto mode detection to recognize the mode when set via either mechanism(e.g: <code>pytest_asyncio</code>). (<a href="https://redirect.github.com/agronholm/anyio/pull/1242">#1242</a>; PR by <a href="https://github.com/EmmanuelNiyonshuti"><code>@EmmanuelNiyonshuti</code></a>)</p> </li> <li> <p>Added the <code>anyio.Future</code> synchronization primitive which behaves similar to <code>asyncio.Future</code>, allowing tasks to wait for a value (or exception) from another task (<a href="https://redirect.github.com/agronholm/anyio/pull/1146">#1146</a>; PR by <a href="https://github.com/Vizonex"><code>@Vizonex</code></a>)</p> </li> <li> <p>Added guidance for managing multiple memory object stream producers and consumers with cloned streams (<a href="https://redirect.github.com/agronholm/anyio/issues/330">#330</a>; PR by <a href="https://github.com/nightcityblade"><code>@nightcityblade</code></a>)</p> </li> <li> <p>Added <code>StapledObjectStream.send_nowait()</code> that delegates to the underlying <code>ObjectSendStream</code>, if it implements it (<a href="https://redirect.github.com/agronholm/anyio/pull/1241">#1241</a>; PR by <a href="https://github.com/davidbrochart"><code>@davidbrochart</code></a>)</p> </li> <li> <p>Added the <code>move_on_at()</code> and <code>fail_at()</code> functions to complement <code>move_on_after()</code> and <code>fail_after()</code></p> </li> <li> <p>Changed the default name for a task spawned with <code>TaskGroup.create_task(func())</code> to match the default task name for the analogous task spawned with <code>TaskGroup.start_soon(func)</code> or <code>TaskGroup.start(func)</code> in more situations. Previously, the default name of a <code>TaskGroup.create_task</code> task never included the module name. (The default name for a task spawned with <code>TaskGroup.start_soon</code> or <code>TaskGroup.start</code> typically includes the module name.) (<a href="https://redirect.github.com/agronholm/anyio/pull/1234">#1234</a>; PR by <a href="https://github.com/gschaffner"><code>@gschaffner</code></a>)</p> </li> <li> <p>Changed the <code>anyio</code> and <code>anyio.abc</code> modules to lazily (much like <code>810</code>) import the necessary submodules. This is done by parsing the AST of the module and building a lookup table from the <code>if TYPE_CHECKING:</code> block. A fallback mode has been provided for installations where the source code is unavailable (e.g. PyInstaller). (<a href="https://redirect.github.com/agronholm/anyio/pull/1169">#1169</a>)</p> </li> <li> <p>Fixed free-threading compatibility issues arising from the fact that on Python 3.14 free-threading builds, newly created threads inherit the current context by default, causing AnyIO to behave erroneously in relation to <code>start_blocking_portal()</code> and <code>anyio.to_thread.run_sync()</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/1224">#1224</a>; PR by <a href="https://github.com/EmmanuelNiyonshuti"><code>@EmmanuelNiyonshuti</code></a>)</p> </li> <li> <p>Fixed <code>SpooledTemporaryFile.readinto()</code> and <code>readinto1()</code> reading twice before rollover, so the destination buffer was overwritten by the second read and the file position advanced twice, silently losing data (<a href="https://redirect.github.com/agronholm/anyio/pull/1215">#1215</a>; PR by <a href="https://github.com/c-tonneslan"><code>@c-tonneslan</code></a>)</p> </li> <li> <p>Added a <code>reason</code> parameter to <code>fail_after</code> (and the new <code>fail_at</code>) allowing for added exception context when raising <code>TimeoutError</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/1227">#1227</a>; PR by <a href="https://github.com/Graeme22"><code>@Graeme22</code></a>)</p> </li> <li> <p>Fixed the default <code>TaskHandle.name</code> missing part of the task name for tasks started with <code>TaskGroup.start</code> on Trio (<a href="https://redirect.github.com/agronholm/anyio/issues/1231">#1231</a>; PR by <a href="https://github.com/gschaffner"><code>@gschaffner</code></a>)</p> </li> <li> <p>Fixed <code>anyio.run</code> leaking, or at least, delaying collection of loop and root_task due to the root task being cached in a <code>RunVar</code>. (<a href="https://redirect.github.com/agronholm/anyio/issues/1203">#1203</a>; PR by <a href="https://github.com/tapetersen"><code>@tapetersen</code></a>)</p> </li> <li> <p>Fixed <code>anyio.Path.with_stem()</code> silently producing a wrong path (e.g. <code>Path(".txt")</code>) instead of raising <code>ValueError</code> when given an empty stem on a path with a non-empty suffix, unlike <code>pathlib.PurePath.with_stem</code> (<a href="https://redirect.github.com/agronholm/anyio/pull/1200">#1200</a>; PR by <a href="https://github.com/Sanjays2402"><code>@Sanjays2402</code></a>)</p> </li> <li> <p>Fixed <code>UNIXSocketStream.aclose()</code> raising <code>asyncio.InvalidStateError</code> when a concurrent receive or send operation had just been cancelled on the asyncio backend (<a href="https://redirect.github.com/agronholm/anyio/issues/1267">#1267</a>; PR by <a href="https://github.com/alloutflo"><code>@alloutflo</code></a>)</p> </li> <li> <p>Fixed the pytest plugin importing the deprecated <code>_pytest.python.CallSpec2</code> alias, which triggers <code>PytestRemovedIn10Warning</code> on <code>pytest>=9.2</code> and crashes pytest at startup when <code>filterwarnings = error</code> is configured (<a href="https://redirect.github.com/agronholm/anyio/issues/1271">#1271</a>; PR by <a href="https://github.com/matthewfeickert"><code>@matthewfeickert</code></a>)</p> </li> <li> <p>Fixed an asyncio worker thread race that could raise <code>RuntimeError</code> when the event loop closed between checking its state and scheduling the worker result (<a href="https://redirect.github.com/agronholm/anyio/issues/1265">#1265</a>; PR by <a href="https://github.com/hansu650"><code>@hansu650</code></a>)</p> </li> <li> <p>Fixed <code>CapacityLimiter</code> on the asyncio backend over-granting tokens when <code>total_tokens</code> was raised while the limiter was over-subscribed (<a href="https://redirect.github.com/agronholm/anyio/pull/1223">#1223</a>; PR by <a href="https://github.com/zelinewang"><code>@zelinewang</code></a>)</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/agronholm/anyio/commit/ffcd1542cd6d127980205f90a0100078849dd703"><code>ffcd154</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/0ecf5ed98d294242509b043ebd1a0843e52d892f"><code>0ecf5ed</code></a> Added a workaround for third party code accessing unimported submodules (<a href="https://redirect.github.com/agronholm/anyio/issues/1309">#1309</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/928366259543412a2deb1e2ba09ea45ffa92ef4f"><code>9283662</code></a> Bumped up the version</li> <li><a href="https://github.com/agronholm/anyio/commit/d137692a90f76e4f71605e32ea5ca94cab3a539d"><code>d137692</code></a> Improved the instructions for AI agents</li> <li><a href="https://github.com/agronholm/anyio/commit/033fc52b8fa8e90c5d0ef24b10b3860e974a6265"><code>033fc52</code></a> Shield TemporaryDirectory cleanup from cancellation (<a href="https://redirect.github.com/agronholm/anyio/issues/1304">#1304</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/942e9a6552cc10b5aaa779d84bfc8e2c3d5fcffc"><code>942e9a6</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/agronholm/anyio/issues/1305">#1305</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/b825c3be7cb4ca1a8000b8065d4e147843deb704"><code>b825c3b</code></a> Fixed pyproject.toml changes not triggering the test suite</li> <li><a href="https://github.com/agronholm/anyio/commit/9727dc504681e2986b5bc285de9571fb467539af"><code>9727dc5</code></a> Fixed start inconsistencies between trio and asyncio (<a href="https://redirect.github.com/agronholm/anyio/issues/1198">#1198</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/b05fe6d160a640355c201363cab286a7d2581da8"><code>b05fe6d</code></a> Fixed wrong type in move_on_after (<a href="https://redirect.github.com/agronholm/anyio/issues/1297">#1297</a>)</li> <li><a href="https://github.com/agronholm/anyio/commit/44d0c93cc20079acbf38ba4dbed5ab9df323f153"><code>44d0c93</code></a> Fixed asyncio task group coroutine cleanup (<a href="https://redirect.github.com/agronholm/anyio/issues/1275">#1275</a>)</li> <li>Additional commits viewable in <a href="https://github.com/agronholm/anyio/compare/4.14.2...4.15.1">compare view</a></li> </ul> </details> <br /> Updates `cachetools` from 7.1.7 to 7.2.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst">cachetools's changelog</a>.</em></p> <blockquote> <h1>v7.2.0 (2026-09-16)</h1> <ul> <li> <p>Deprecate use of <code>cache=None</code> to suppress caching with the <code>@cached</code> decorator.</p> </li> <li> <p>Add support for Python 3.15.</p> </li> <li> <p>Minor test improvements.</p> </li> <li> <p>Minor documentation updates.</p> </li> </ul> <h1>v7.1.8 (2026-08-31)</h1> <ul> <li>Reject negative <code>maxsize</code> in <code>Cache.__init__</code>.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tkem/cachetools/commit/3c082c654c2804b9354e4b62dbd2994f1aac464d"><code>3c082c6</code></a> Release v7.2.0.</li> <li><a href="https://github.com/tkem/cachetools/commit/ff9a394f437eafcf2f6c079578638a326da6d0a7"><code>ff9a394</code></a> Minor documentation updates.</li> <li><a href="https://github.com/tkem/cachetools/commit/9b7fe6ca659382158897723205882f0b4126241e"><code>9b7fe6c</code></a> Deprecate <a href="https://github.com/cached"><code>@cached</code></a>(cache=None).</li> <li><a href="https://github.com/tkem/cachetools/commit/72adda62f911ff3fb635c4817635bf9c92b87289"><code>72adda6</code></a> Minor test improvements.</li> <li><a href="https://github.com/tkem/cachetools/commit/8275879f071bc1a9c117d68f33b92aae7aacab0a"><code>8275879</code></a> Update copilot instructions and review.</li> <li><a href="https://github.com/tkem/cachetools/commit/290c50b37e464ca5733131d86a7e521beeb386e8"><code>290c50b</code></a> Add support for Python 3.15.</li> <li><a href="https://github.com/tkem/cachetools/commit/4500e3d04288738d25acbb4973eb3c3e1bf41db9"><code>4500e3d</code></a> Release v7.1.8.</li> <li><a href="https://github.com/tkem/cachetools/commit/6e49bef559f20995d603830202afda0ea890bd1a"><code>6e49bef</code></a> Update copilot instructions and review.</li> <li><a href="https://github.com/tkem/cachetools/commit/defc58b02543ca0189fb37505827db4cc4e0565c"><code>defc58b</code></a> Prepare v7.1.8.</li> <li><a href="https://github.com/tkem/cachetools/commit/a39180bfced6e162614e23eaa9c3dc79d8ec74d6"><code>a39180b</code></a> Remove somewhat superfluous and slightly incorrect documentation note regardi...</li> <li>Additional commits viewable in <a href="https://github.com/tkem/cachetools/compare/v7.1.7...v7.2.0">compare view</a></li> </ul> </details> <br /> Updates `livekit-agents` from 1.7.1 to 1.8.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/livekit/agents/releases">livekit-agents's releases</a>.</em></p> <blockquote> <h2>livekit-agents@1.8.3</h2> <h2>What's Changed</h2> <ul> <li>chore: refine pii review instructions by <a href="https://github.com/chenghao-mou"><code>@chenghao-mou</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7267">livekit/agents#7267</a></li> <li>bithuman: resolve the SDK on Python 3.10 and 3.14 again by <a href="https://github.com/theomonnom"><code>@theomonnom</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7280">livekit/agents#7280</a></li> <li>add pid to log lines from parent process by <a href="https://github.com/andrewnitu"><code>@andrewnitu</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7290">livekit/agents#7290</a></li> <li>fix(tts): forward inner frames as-is in FallbackAdapter and StreamAdapter by <a href="https://github.com/theomonnom"><code>@theomonnom</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7273">livekit/agents#7273</a></li> <li>bithuman: type-check against bithuman 2.11 by <a href="https://github.com/longcw"><code>@longcw</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7301">livekit/agents#7301</a></li> <li>docs: add gemini-3.8-live models to google README model list by <a href="https://github.com/detail-app"><code>@detail-app</code></a>[bot] in <a href="https://redirect.github.com/livekit/agents/pull/7311">livekit/agents#7311</a></li> <li>stt: reset the retry budget once an attempt outlived the connect timeout by <a href="https://github.com/u9g"><code>@u9g</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7275">livekit/agents#7275</a></li> <li>fix(liveavatar): honor agent.state_updated for speaking and barge-in by <a href="https://github.com/cpruijsen"><code>@cpruijsen</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7245">livekit/agents#7245</a></li> <li>feat(elevenlabs): make realtime STT audio chunk duration configurable by <a href="https://github.com/stevensukma"><code>@stevensukma</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7183">livekit/agents#7183</a></li> <li>fix(liveavatar): register the plugin, interruption fix by <a href="https://github.com/tinalenguyen"><code>@tinalenguyen</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7313">livekit/agents#7313</a></li> <li>fix(google): send FunctionTool schemas as parameters_json_schema on the text API by <a href="https://github.com/JustinScitech"><code>@JustinScitech</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7312">livekit/agents#7312</a></li> <li>fix(mistralai): standardize API error handling by <a href="https://github.com/jeanprbt"><code>@jeanprbt</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7308">livekit/agents#7308</a></li> <li>fix: preserve configured elevenlabs stt language by <a href="https://github.com/chenghao-mou"><code>@chenghao-mou</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7306">livekit/agents#7306</a></li> <li>fix: report realtime transcription usage per session by <a href="https://github.com/chenghao-mou"><code>@chenghao-mou</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7303">livekit/agents#7303</a></li> <li>fix: initialize the otel example provider once per process by <a href="https://github.com/chenghao-mou"><code>@chenghao-mou</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7171">livekit/agents#7171</a></li> <li>worker: read agent name from livekit.toml as last fallback by <a href="https://github.com/u9g"><code>@u9g</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7295">livekit/agents#7295</a></li> <li>(meta muse stt): set heartbeat for the websocket by <a href="https://github.com/tinalenguyen"><code>@tinalenguyen</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7315">livekit/agents#7315</a></li> <li>fix(anam): retry retryable HTTP status failures when starting a session by <a href="https://github.com/tinalenguyen"><code>@tinalenguyen</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7314">livekit/agents#7314</a></li> <li>fix(voice): shield transcript rotation from cancellation by <a href="https://github.com/DeepanshuPal"><code>@DeepanshuPal</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7300">livekit/agents#7300</a></li> <li>fix: don't let a parallel tool cancel an agent handoff by <a href="https://github.com/simllll"><code>@simllll</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7321">livekit/agents#7321</a></li> <li>fix(google): default tool_behavior to NON_BLOCKING on Gemini 3.8 Live by <a href="https://github.com/longcw"><code>@longcw</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7329">livekit/agents#7329</a></li> <li>feat(openai): add GPTLiveModel.with_azure for Azure OpenAI by <a href="https://github.com/acharan-tech-200037"><code>@acharan-tech-200037</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7325">livekit/agents#7325</a></li> <li>fix: pair tool outputs with their call by call_id when copying a chat context by <a href="https://github.com/longcw"><code>@longcw</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7330">livekit/agents#7330</a></li> <li>Move OpenAI Realtime inference client into agents core by <a href="https://github.com/russellmartin-livekit"><code>@russellmartin-livekit</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7318">livekit/agents#7318</a></li> <li>fix(voice): report the error that stops a filler by <a href="https://github.com/longcw"><code>@longcw</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7334">livekit/agents#7334</a></li> <li>feat: support reply_required in tool results by <a href="https://github.com/chenghao-mou"><code>@chenghao-mou</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7340">livekit/agents#7340</a></li> <li>feat(assemblyai): surface language_confidence on transcript metadata by <a href="https://github.com/dlange-aai"><code>@dlange-aai</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7339">livekit/agents#7339</a></li> <li>feat(inference): add assemblyai/universal-3-6-pro to STT model types by <a href="https://github.com/dlange-aai"><code>@dlange-aai</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7347">livekit/agents#7347</a></li> <li>[Inference] Support realtime model literals by <a href="https://github.com/keepingitneil"><code>@keepingitneil</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7344">livekit/agents#7344</a></li> <li>fix(voice): honor the dict form of the deprecated preemptive_generation kwarg by <a href="https://github.com/JustinScitech"><code>@JustinScitech</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7348">livekit/agents#7348</a></li> <li>fix(voice): clamp the user_speaking span end to its start by <a href="https://github.com/longcw"><code>@longcw</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7332">livekit/agents#7332</a></li> <li>docs: fix LICENSE links in gnani plugin README by <a href="https://github.com/yetuge"><code>@yetuge</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7350">livekit/agents#7350</a></li> <li>fix(liveavatar): use the job's shared http session instead of an unclosed private one by <a href="https://github.com/Rehansanjay"><code>@Rehansanjay</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7341">livekit/agents#7341</a></li> <li>fix(respeecher): invalidate the pool on model change instead of retiring it by <a href="https://github.com/Rehansanjay"><code>@Rehansanjay</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7237">livekit/agents#7237</a></li> <li>fix(google): drop unsupported JSON Schema keywords before validating by <a href="https://github.com/feiiiiii5"><code>@feiiiiii5</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7353">livekit/agents#7353</a></li> <li>fix(tokenize): keep dotted numbers in one sentence by <a href="https://github.com/sxh313"><code>@sxh313</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7362">livekit/agents#7362</a></li> <li>telemetry: session_close covers the whole close by <a href="https://github.com/davidzhao"><code>@davidzhao</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7322">livekit/agents#7322</a></li> <li>fix(ipc): ThreadJobExecutor.aclose() hangs when the runner exits before its ack is read by <a href="https://github.com/pabloFuente"><code>@pabloFuente</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7225">livekit/agents#7225</a></li> <li>fix(google): report a bad tool schema instead of ending the session in silence by <a href="https://github.com/longcw"><code>@longcw</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7371">livekit/agents#7371</a></li> <li>examples(homepage): disconnect scripted callers on a known opening line by <a href="https://github.com/ShayneP"><code>@ShayneP</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7297">livekit/agents#7297</a></li> <li>fix(google): keep declared property order in Live API tool schemas by <a href="https://github.com/rosetta-livekit-bot"><code>@rosetta-livekit-bot</code></a>[bot] in <a href="https://redirect.github.com/livekit/agents/pull/7387">livekit/agents#7387</a></li> <li>fix(sarvam): drop orphan tool history when a turn declares no tools by <a href="https://github.com/dhruvladia-sarvam"><code>@dhruvladia-sarvam</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7382">livekit/agents#7382</a></li> <li>fix(xai): detect a silently dropped STT socket instead of hanging by <a href="https://github.com/sidxh"><code>@sidxh</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7364">livekit/agents#7364</a></li> <li>plugins/bithuman: let a session name the second-generation models by <a href="https://github.com/sgu-bithuman"><code>@sgu-bithuman</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7366">livekit/agents#7366</a></li> <li>fix(soniox): detect a silently dropped STT socket instead of hanging by <a href="https://github.com/sidxh"><code>@sidxh</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7357">livekit/agents#7357</a></li> <li>fix(simplismart): detect a silently dropped STT socket instead of hanging by <a href="https://github.com/sidxh"><code>@sidxh</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7369">livekit/agents#7369</a></li> <li>fix(telnyx): detect a silently dropped STT socket instead of hanging by <a href="https://github.com/sidxh"><code>@sidxh</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7359">livekit/agents#7359</a></li> <li>feat(phonic): add phonic_model option to select the phonic model version by <a href="https://github.com/arunwpm-work"><code>@arunwpm-work</code></a> in <a href="https://redirect.github.com/livekit/agents/pull/7393">livekit/agents#7393</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/livekit/agents/commit/1983c39bbd6c63cbce7ce33259caf22d6b1f2566"><code>1983c39</code></a> livekit-agents@1.8.3 (<a href="https://redirect.github.com/livekit/agents/issues/7429">#7429</a>)</li> <li><a href="https://github.com/livekit/agents/commit/e084dc2c26ef11464a956013d3df48e142d390b2"><code>e084dc2</code></a> feat: reset the user away timer on DTMF input (<a href="https://redirect.github.com/livekit/agents/issues/7395">#7395</a>)</li> <li><a href="https://github.com/livekit/agents/commit/45c4b17c45d3f49cfff06386e9b67d792a28e102"><code>45c4b17</code></a> (google tts): add new gemini-3.8 models and add to expressive mode (<a href="https://redirect.github.com/livekit/agents/issues/7425">#7425</a>)</li> <li><a href="https://github.com/livekit/agents/commit/5a5517d3bed0798aed2d714b4117ffe84e9aa414"><code>5a5517d</code></a> feat(workflows): add verify_spelling to GetEmailTask (<a href="https://redirect.github.com/livekit/agents/issues/7402">#7402</a>)</li> <li><a href="https://github.com/livekit/agents/commit/ec19ffeb68c46537b1cace3c7c23101ba9673fd4"><code>ec19ffe</code></a> fix: preserve custom span metadata inside jobs (<a href="https://redirect.github.com/livekit/agents/issues/7428">#7428</a>)</li> <li><a href="https://github.com/livekit/agents/commit/4f645e9e1d36cd2bcdd75ce7faec5d940a927f17"><code>4f645e9</code></a> fix: record exceptions consistently in the shared tracer (<a href="https://redirect.github.com/livekit/agents/issues/7376">#7376</a>)</li> <li><a href="https://github.com/livekit/agents/commit/c20d272aab5f3bae9944704f5dbc4b430dbb7b4e"><code>c20d272</code></a> fix: preserve fallback provider attribution on llm node spans (<a href="https://redirect.github.com/livekit/agents/issues/7374">#7374</a>)</li> <li><a href="https://github.com/livekit/agents/commit/b4df92eb743bb4981d74a52693822b72b126cb42"><code>b4df92e</code></a> fix(aws): fall back to auto tool_choice for Claude Opus 5.5 on Bedrock (<a href="https://redirect.github.com/livekit/agents/issues/7411">#7411</a>)</li> <li><a href="https://github.com/livekit/agents/commit/fd723ae15aaee2da6425464d4cb8cd48a1c15995"><code>fd723ae</code></a> fix: honor empty strings in word replacements (<a href="https://redirect.github.com/livekit/agents/issues/7407">#7407</a>)</li> <li><a href="https://github.com/livekit/agents/commit/5262b8249a7d6abd6c399f8c4b293d7ab831c002"><code>5262b82</code></a> fix(plugins/bithuman): drop the undeclared OpenCV import (<a href="https://redirect.github.com/livekit/agents/issues/7406">#7406</a>)</li> <li>Additional commits viewable in <a href="https://github.com/livekit/agents/compare/livekit-agents@1.7.1...livekit-agents@1.8.3">compare view</a></li> </ul> </details> <br /> Updates `google-genai` from 2.20.0 to 2.25.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-genai/releases">google-genai's releases</a>.</em></p> <blockquote> <h2>v2.25.0</h2> <h2><a href="https://github.com/googleapis/python-genai/compare/v2.24.0...v2.25.0">2.25.0</a> (2026-09-22)</h2> <h3>Features</h3> <ul> <li>Add sample_audio to Voice in GAOS SDK (<a href="https://github.com/googleapis/python-genai/commit/a011633c2db0078019162880764e06cd85a5c4ff">a011633</a>)</li> <li>Add Voices API resource to GAOS SDK (<a href="https://github.com/googleapis/python-genai/commit/c45b94e7a0e0dcd5dcc2590f62f5d223f8c90e99">c45b94e</a>)</li> <li>Expose SpeechMetadata, VoiceConfig.voice, and SpeechAnnotation in public GenAI SDKs (<a href="https://github.com/googleapis/python-genai/commit/a6d32434b848ada0a635dae38406811dbf4a7c67">a6d3243</a>)</li> <li>Support field.value_field syntax for map add_union_value annotations. (<a href="https://github.com/googleapis/python-genai/commit/ad00721acd27258ae45180dbb7dadfaa8f8bed71">ad00721</a>)</li> <li>Update discovery doc (<a href="https://github.com/googleapis/python-genai/commit/fa917165422ebd78f69bfd7a1b6285d2ad35780b">fa91716</a>)</li> <li>Wire voice into sdk (<a href="https://github.com/googleapis/python-genai/commit/e1d68b4855bc58eb30e455c37b4531ff09f4abb9">e1d68b4</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Sanitize path parameter descriptions in GAOS OpenAPI generation (<a href="https://github.com/googleapis/python-genai/commit/25b00947000778c45fd804dffee282f3bdd7e3e7">25b0094</a>)</li> </ul> <h2>v2.24.0</h2> <h2><a href="https://github.com/googleapis/python-genai/compare/v2.23.0...v2.24.0">2.24.0</a> (2026-09-16)</h2> <h3>Features</h3> <ul> <li>Add credential APIs resource to gaos. (<a href="https://github.com/googleapis/python-genai/commit/d301255a4d3f6799abd308fb4fb3d76a0a40a6fe">d301255</a>)</li> <li>Add RetrievalCallStep and RetrievalResultStep to interactions schema and SDKs. (<a href="https://github.com/googleapis/python-genai/commit/9052efddccae9f91e699d9b76e0d5a3e032637f5">9052efd</a>)</li> <li>Implement environments files upload and download across Python and TypeScript SDKs (<a href="https://github.com/googleapis/python-genai/commit/fc0834dbb95b8e70023caa5dfff7133e7ceb5a7a">fc0834d</a>)</li> <li>Wire credential APIs resource to sdk. (<a href="https://github.com/googleapis/python-genai/commit/bf0d457560c4782c7b07b2bf79348c5249f55307">bf0d457</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Do not run functions once the automatic function calling budget is spent (<a href="https://github.com/googleapis/python-genai/commit/2580638558b182b89abcfcb94bf2b164b7f81c7b">2580638</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Update GenAI SDK README files to use gemini-flash-latest (<a href="https://github.com/googleapis/python-genai/commit/1feb9991f8c3500e24214b61dabcc63995898dce">1feb999</a>)</li> <li>Update Python Gen AI SDK README for Gemini 3.8 Flash (<a href="https://github.com/googleapis/python-genai/commit/b88fded4adda37fcc8d1cc4bf49ef3fc11ecfec4">b88fded</a>)</li> </ul> <h2>v2.23.0</h2> <h2><a href="https://github.com/googleapis/python-genai/compare/v2.22.0...v2.23.0">2.23.0</a> (2026-09-10)</h2> <h3>Features</h3> <ul> <li>Add from_environment support for environment copying (<a href="https://github.com/googleapis/python-genai/commit/e6d316866aca21c7d05c5495ca6355f48ca040fc">e6d3168</a>)</li> <li>Support dynamic turn completion via interaction_status in live.py receive() (<a href="https://github.com/googleapis/python-genai/commit/455df80f3c308b6e0cb6f2e0d7583ab2146aee8f">455df80</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/googleapis/python-genai/blob/main/CHANGELOG.md">google-genai's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/python-genai/compare/v2.24.0...v2.25.0">2.25.0</a> (2026-09-22)</h2> <h3>Features</h3> <ul> <li>Add sample_audio to Voice in GAOS SDK (<a href="https://github.com/googleapis/python-genai/commit/a011633c2db0078019162880764e06cd85a5c4ff">a011633</a>)</li> <li>Add Voices API resource to GAOS SDK (<a href="https://github.com/googleapis/python-genai/commit/c45b94e7a0e0dcd5dcc2590f62f5d223f8c90e99">c45b94e</a>)</li> <li>Expose SpeechMetadata, VoiceConfig.voice, and SpeechAnnotation in public GenAI SDKs (<a href="https://github.com/googleapis/python-genai/commit/a6d32434b848ada0a635dae38406811dbf4a7c67">a6d3243</a>)</li> <li>Support field.value_field syntax for map add_union_value annotations. (<a href="https://github.com/googleapis/python-genai/commit/ad00721acd27258ae45180dbb7dadfaa8f8bed71">ad00721</a>)</li> <li>Update discovery doc (<a href="https://github.com/googleapis/python-genai/commit/fa917165422ebd78f69bfd7a1b6285d2ad35780b">fa91716</a>)</li> <li>Wire voice into sdk (<a href="https://github.com/googleapis/python-genai/commit/e1d68b4855bc58eb30e455c37b4531ff09f4abb9">e1d68b4</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Sanitize path parameter descriptions in GAOS OpenAPI generation (<a href="https://github.com/googleapis/python-genai/commit/25b00947000778c45fd804dffee282f3bdd7e3e7">25b0094</a>)</li> </ul> <h2><a href="https://github.com/googleapis/python-genai/compare/v2.23.0...v2.24.0">2.24.0</a> (2026-09-16)</h2> <h3>Features</h3> <ul> <li>Add credential APIs resource to gaos. (<a href="https://github.com/googleapis/python-genai/commit/d301255a4d3f6799abd308fb4fb3d76a0a40a6fe">d301255</a>)</li> <li>Add RetrievalCallStep and RetrievalResultStep to interactions schema and SDKs. (<a href="https://github.com/googleapis/python-genai/commit/9052efddccae9f91e699d9b76e0d5a3e032637f5">9052efd</a>)</li> <li>Implement environments files upload and download across Python and TypeScript SDKs (<a href="https://github.com/googleapis/python-genai/commit/fc0834dbb95b8e70023caa5dfff7133e7ceb5a7a">fc0834d</a>)</li> <li>Wire credential APIs resource to sdk. (<a href="https://github.com/googleapis/python-genai/commit/bf0d457560c4782c7b07b2bf79348c5249f55307">bf0d457</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Do not run functions once the automatic function calling budget is spent (<a href="https://github.com/googleapis/python-genai/commit/2580638558b182b89abcfcb94bf2b164b7f81c7b">2580638</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Update GenAI SDK README files to use gemini-flash-latest (<a href="https://github.com/googleapis/python-genai/commit/1feb9991f8c3500e24214b61dabcc63995898dce">1feb999</a>)</li> <li>Update Python Gen AI SDK README for Gemini 3.8 Flash (<a href="https://github.com/googleapis/python-genai/commit/b88fded4adda37fcc8d1cc4bf49ef3fc11ecfec4">b88fded</a>)</li> </ul> <h2><a href="https://github.com/googleapis/python-genai/compare/v2.22.0...v2.23.0">2.23.0</a> (2026-09-10)</h2> <h3>Features</h3> <ul> <li>Add from_environment support for environment copying (<a href="https://github.com/googleapis/python-genai/commit/e6d316866aca21c7d05c5495ca6355f48ca040fc">e6d3168</a>)</li> <li>Support dynamic turn completion via interaction_status in live.py receive() (<a href="https://github.com/googleapis/python-genai/commit/455df80f3c308b6e0cb6f2e0d7583ab2146aee8f">455df80</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Remove unused field from FunctionResultDelta (<a href="https://github.com/googleapis/python-genai/commit/28430799e32430265a1f8012383739a481d94629">2843079</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/python-genai/commit/2faba3c07bcabaa662d8bc4804d2f3f1994648d9"><code>2faba3c</code></a> chore(main): release 2.25.0 (<a href="https://redirect.github.com/googleapis/python-genai/issues/2977">#2977</a>)</li> <li><a href="https://github.com/googleapis/python-genai/commit/a6d32434b848ada0a635dae38406811dbf4a7c67"><code>a6d3243</code></a> feat: expose SpeechMetadata, VoiceConfig.voice, and SpeechAnnotation in publi...</li> <li><a href="https://github.com/googleapis/python-genai/commit/a011633c2db0078019162880764e06cd85a5c4ff"><code>a011633</code></a> feat: add sample_audio to Voice in GAOS SDK</li> <li><a href="https://github.com/googleapis/python-genai/commit/e1d68b4855bc58eb30e455c37b4531ff09f4abb9"><code>e1d68b4</code></a> feat: wire voice into sdk</li> <li><a href="https://github.com/googleapis/python-genai/commit/79a71680e2173ab28831aadf91e26f635aa4967f"><code>79a7168</code></a> chore: regenerate</li> <li><a href="https://github.com/googleapis/python-genai/commit/c45b94e7a0e0dcd5dcc2590f62f5d223f8c90e99"><code>c45b94e</code></a> feat: add Voices API resource to GAOS SDK</li> <li><a href="https://github.com/googleapis/python-genai/commit/ee59b1a9c732dd5afe165cee7786d6738816ede8"><code>ee59b1a</code></a> chore: Misc updates</li> <li><a href="https://github.com/googleapis/python-genai/commit/ad00721acd27258ae45180dbb7dadfaa8f8bed71"><code>ad00721</code></a> feat: support field.value_field syntax for map add_union_value annotations.</li> <li><a href="https://github.com/googleapis/python-genai/commit/25b00947000778c45fd804dffee282f3bdd7e3e7"><code>25b0094</code></a> fix: sanitize path parameter descriptions in GAOS OpenAPI generation</li> <li><a href="https://github.com/googleapis/python-genai/commit/140d3a9251aff762eccd8f258e53ab2a051d2eac"><code>140d3a9</code></a> test: add python and typescript environment file upload unit tests</li> <li>Additional commits viewable in <a href="https://github.com/googleapis/python-genai/compare/v2.20.0...v2.25.0">compare view</a></li> </ul> </details> <br /> Updates `strands-agents-tools` from 0.8.7 to 0.8.9 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/strands-agents/tools/releases">strands-agents-tools's releases</a>.</em></p> <blockquote> <h2>v0.8.9</h2> <p><em>Auto-drafted from commits in <code>v0.8.8..v0.8.9</code>, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website.</em></p> <h3>🚀 Features</h3> <ul> <li>feat: deprecate tavily, exa, video, and journal tools (<a href="https://redirect.github.com/strands-agents/tools/issues/604">#604</a>) (00251ae)</li> <li>feat: deprecate bright_data tool (<a href="https://redirect.github.com/strands-agents/tools/issues/603">#603</a>) (2533297)</li> <li>feat: deprecate http_request tool (<a href="https://redirect.github.com/strands-agents/tools/issues/602">#602</a>) (2921d64)</li> </ul> <h3>🐛 Fixes</h3> <ul> <li>fix: point deprecated tool migrations to shell (<a href="https://redirect.github.com/strands-agents/tools/issues/600">#600</a>) (5873303)</li> <li>fix: update mcp_client tool to use MCP 2.x client (<a href="https://redirect.github.com/strands-agents/tools/issues/601">#601</a>) (a64f773)</li> </ul> <h2>v0.8.8</h2> <p><em>Auto-drafted from commits in <code>v0.8.7..v0.8.8</code>, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website.</em></p> <h3>🐛 Fixes</h3> <ul> <li>fix(mem0): make memory_id ownership check fail-closed (<a href="https://redirect.github.com/strands-agents/tools/issues/596">#596</a>) (fd4feb0)</li> <li>fix(http_request): strip non-standard headers on cross-host redirects (<a href="https://redirect.github.com/strands-agents/tools/issues/595">#595</a>) (64db9d7)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/strands-agents/tools/commit/00251aec8a1074470297a42812776647ba1a8001"><code>00251ae</code></a> feat: deprecate tavily, exa, video, and journal tools (<a href="https://redirect.github.com/strands-agents/tools/issues/604">#604</a>)</li> <li><a href="https://github.com/strands-agents/tools/commit/2533297536596d45f7a3c97372a8021177f2e322"><code>2533297</code></a> feat: deprecate bright_data tool (<a href="https://redirect.github.com/strands-agents/tools/issues/603">#603</a>)</li> <li><a href="https://github.com/strands-agents/tools/commit/2921d6452190aec51264d716fe9738910b64b159"><code>2921d64</code></a> feat: deprecate http_request tool (<a href="https://redirect.github.com/strands-agents/tools/issues/602">#602</a>)</li> <li><a href="https://github.com/strands-agents/tools/commit/5873303de3f2d009cb821794ef557b2a8cadcde8"><code>5873303</code></a> fix: point deprecated tool migrations to shell (<a href="https://redirect.github.com/strands-agents/tools/issues/600">#600</a>)</li> <li><a href="https://github.com/strands-agents/tools/commit/a64f773311ca04373b1b92dbbb6bed61edecaaef"><code>a64f773</code></a> fix: update mcp_client tool to use MCP 2.x client (<a href="https://redirect.github.com/strands-agents/tools/issues/601">#601</a>)</li> <li><a href="https://github.com/strands-agents/tools/commit/fd4feb0a2336745e706ea16b4da2fde1823d95f3"><code>fd4feb0</code></a> fix(mem0): make memory_id ownership check fail-closed (<a href="https://redirect.github.com/strands-agents/tools/issues/596">#596</a>)</li> <li><a href="https://github.com/strands-agents/tools/commit/64db9d768a63f0a31e37c242829c6334f252ea08"><code>64db9d7</code></a> fix(http_request): strip non-standard headers on cross-host redirects (<a href="https://redirect.github.com/strands-agents/tools/issues/595">#595</a>)</li> <li>See full diff in <a href="https://github.com/strands-agents/tools/compare/v0.8.7...v0.8.9">compare view</a></li> </ul> </details> <br /> Updates `pytest-rerunfailures` from 16.6 to 16.7 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-rerunfailures/blob/master/CHANGES.rst">pytest-rerunfailures's changelog</a>.</em></p> <blockquote> <h2>16.7 (2026-09-17)</h2> <p>Features ++++++++</p> <ul> <li>Allow configuring <code>only_rerun</code> regular expressions in <code>pytest.ini</code> files. (<code>[#165](https://github.com/pytest-dev/pytest-rerunfailures/issues/165) <https://github.com/pytest-dev/pytest-rerunfailures/issues/165></code>_)</li> <li>Show each rerun attempt and its final outcome in the rerun test summary info section. (<code>[#191](https://github.com/pytest-dev/pytest-rerunfailures/issues/191) <https://github.com/pytest-dev/pytest-rerunfailures/issues/191></code>_)</li> <li>Allow flaky marker conditions to inspect the exception that caused a failed test phase, including when running with pytest-xdist. (<code>[#230](https://github.com/pytest-dev/pytest-rerunfailures/issues/230) <https://github.com/pytest-dev/pytest-rerunfailures/issues/230></code>_)</li> </ul> <p>Bug Fixes +++++++++</p> <ul> <li>Match <code>only_rerun</code> against the full exception chain (<code>__cause__</code> and <code>__context__</code>), not only the outermost exception. Match <code>rerun_except</code> against explicit <code>__cause__</code> links only, so implicit <code>except</code> / <code>finally</code> context does not suppress reruns. (<code>[#353](https://github.com/pytest-dev/pytest-rerunfailures/issues/353) <https://github.com/pytest-dev/pytest-rerunfailures/issues/353></code>_)</li> <li>Fix <code>INTERNALERROR</code> when <code>only_rerun</code> or <code>rerun_except</code> is given a bare exception class instead of a list. (<code>[#362](https://github.com/pytest-dev/pytest-rerunfailures/issues/362) <https://github.com/pytest-dev/pytest-rerunfailures/issues/362></code>_)</li> <li>Fix subtest reruns with newer pytest versions that use structured <code>NodeId</code> values internally. (<code>[#363](https://github.com/pytest-dev/pytest-rerunfailures/issues/363) <https://github.com/pytest-dev/pytest-rerunfailures/issues/363></code>_)</li> <li>Mark teardown failures from an attempt that is rerun as reruns, so a later successful attempt is not reported as an error. (<code>[#366](https://github.com/pytest-dev/pytest-rerunfailures/issues/366) <https://github.com/pytest-dev/pytest-rerunfailures/issues/366></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Keep the test suite passing when pytest-randomly is installed, including when the outer pytest is started with <code>-p no:randomly</code>. (<code>[#218](https://github.com/pytest-dev/pytest-rerunfailures/issues/218) <https://github.com/pytest-dev/pytest-rerunfailures/issues/218></code>_)</li> <li>Test the free-threaded Python 3.14 build in CI, via a new <code>py314t</code> tox environment and a matching workflow job. (<code>[#361](https://github.com/pytest-dev/pytest-rerunfailures/issues/361) <https://github.com/pytest-dev/pytest-rerunfailures/issues/361></code>_)</li> </ul> <h2>16.6.1 (2026-09-03)</h2> <p>Bug Fixes</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/fead4c656301dae378897a10b8e8998e52d6bb2c"><code>fead4c6</code></a> Preparing release 16.7</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/ed62cfc3cafafc6d71bc97a9488cfa9f6601affb"><code>ed62cfc</code></a> Show each rerun attempt outcome in summary (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/370">#370</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/64687c9511133582d6647f3864eb111c8d52f93a"><code>64687c9</code></a> Add pytest.ini support for only_rerun (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/369">#369</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/1997015a4b7f334a5b2f55a2c953d5954ab53fce"><code>1997015</code></a> Preserve rerun status for teardown failures (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/367">#367</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/4220386e845dafeec8ef2261ae31c33b54f2431a"><code>4220386</code></a> Match only_rerun against wrapped exception causes (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/364">#364</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87d81b2b0924a9c59a729826cd19c0e1b285a93f"><code>87d81b2</code></a> Keep nested pytester sessions isolated from pytest-randomly (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/368">#368</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/be14a6bd94ec3da02a7ddfd20e5a7364188f587d"><code>be14a6b</code></a> Allow flaky conditions to inspect failure exceptions (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/365">#365</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/78561a50e6b1afdca9c937d109750001599ff76d"><code>78561a5</code></a> ci: test the free-threaded Python 3.14 build (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/361">#361</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/402afb4a4197de7a8f827b84f11a15f0b4ab1cdc"><code>402afb4</code></a> Fix bare exception class in only_rerun / rerun_except causing INTERNALERROR (...</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/87a8b47de931f859712a1496dc49ac6a5aeba41d"><code>87a8b47</code></a> Fix subtest reruns with structured NodeId keys (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/363">#363</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6...16.7">compare view</a></li> </ul> </details> <br /> Updates `debugpy` from 1.8.21 to 1.8.22 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/microsoft/debugpy/releases">debugpy's releases</a>.</em></p> <blockquote> <h2>debugpy v1.8.22</h2> <h2>Fixes</h2> <ul> <li>Fix invalid type annotation in test_pydev_monkey comprehension by <a href="https://github.com/pdepetro"><code>@pdepetro</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2033">microsoft/debugpy#2033</a></li> <li>Fix PEP 768 code injection SyntaxError when temp path contains backslashes by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> with <a href="https://github.com/Copilot"><code>@Copilot</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2038">microsoft/debugpy#2038</a></li> <li>Fix race between adapter connection publication and session attachment by <a href="https://github.com/aperez"><code>@aperez</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2049">microsoft/debugpy#2049</a></li> <li>Fix debugger hang when expanding objects with blocking property getters (<a href="https://redirect.github.com/microsoft/debugpy/issues/2053">#2053</a>) by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2055">microsoft/debugpy#2055</a></li> <li>Fix duplicate stopped event when two threads hit a breakpoint at once by <a href="https://github.com/aperez"><code>@aperez</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2056">microsoft/debugpy#2056</a></li> <li>Avoid exceptions in environment diagnostics by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2059">microsoft/debugpy#2059</a></li> <li>Fix thread identity when the first traced call is another thread's is_alive() by <a href="https://github.com/aperez"><code>@aperez</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2061">microsoft/debugpy#2061</a></li> <li>Respect isolated mode when patching sys.path by <a href="https://github.com/karandhaodiyal28-hash"><code>@karandhaodiyal28-hash</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2050">microsoft/debugpy#2050</a></li> </ul> <h2>Enhancements</h2> <ul> <li>Add trigger_exception_handler() for post-mortem debugging of caught exceptions by <a href="https://github.com/nshepperd"><code>@nshepperd</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/1996">microsoft/debugpy#1996</a></li> <li>Add lldb attach-to-PID option for debugpy on Linux by <a href="https://github.com/pdepetro"><code>@pdepetro</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2052">microsoft/debugpy#2052</a></li> <li>Populate hitBreakpointIds in the DAP stopped event by <a href="https://github.com/aperez"><code>@aperez</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2060">microsoft/debugpy#2060</a></li> <li>Return the endpoint from listen() with the in-process adapter by <a href="https://github.com/karandhaodiyal28-hash"><code>@karandhaodiyal28-hash</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2051">microsoft/debugpy#2051</a></li> </ul> <h2>Infrastructure work</h2> <ul> <li>Add Dependabot configuration for pip and GitHub Actions by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2041">microsoft/debugpy#2041</a></li> <li>Update vendored pydevd 3.4.1 -> 3.5.0 (maintenance refresh) by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2044">microsoft/debugpy#2044</a></li> <li>Pin secure test dependency floors and drop EOL Python 3.9/3.8 by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2045">microsoft/debugpy#2045</a></li> <li>Add more typing to debugpy and switch to 'standard' type checking mode by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/1637">microsoft/debugpy#1637</a></li> <li>Add debugpy release agent by <a href="https://github.com/rchiodo"><code>@rchiodo</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2062">microsoft/debugpy#2062</a></li> <li>Pin GitHub Actions to full-length commit SHAs by <a href="https://github.com/danfiedler-msft"><code>@danfiedler-msft</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2063">microsoft/debugpy#2063</a></li> <li>Add python 3.15 to tests by <a href="https://github.com/finnagin"><code>@finnagin</code></a> in <a href="https://redirect.github.com/microsoft/debugpy/pull/2069">microsoft/debugpy#2069</a></li> </ul> <p>Thanks to <a href="https://github.com/pdepetro"><code>@pdepetro</code></a>, <a href="https://github.com/rchiodo"><code>@rchiodo</code></a>, <a href="https://github.com/nshepperd"><code>@nshepperd</code></a>, <a href="https://github.com/aperez"><code>@aperez</code></a>, <a href="https://github.com/karandhaodiyal28-hash"><code>@karandhaodiyal28-hash</code></a>, <a href="https://github.com/danfiedler-msft"><code>@danfiedler-msft</code></a>, and <a href="https://github.com/finnagin"><code>@finnagin</code></a> for the commits.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/microsoft/debugpy/compare/v1.8.21...v1.8.22">https://github.com/microsoft/debugpy/compare/v1.8.21...v1.8.22</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/microsoft/debugpy/commit/e2208059db34fa1055c809ff0b303ae1cf1868d7"><code>e220805</code></a> Add python 3.15 to tests (<a href="https://redirect.github.com/microsoft/debugpy/issues/2069">#2069</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/e5743d3a00c6dee7d8140275c7df7e719ebb132f"><code>e5743d3</code></a> Pin GitHub Actions to full-length commit SHAs (<a href="https://redirect.github.com/microsoft/debugpy/issues/2063">#2063</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/7959635126d23680e88e266b42ba7c1b91cf4b16"><code>7959635</code></a> Respect isolated mode when patching sys.path (<a href="https://redirect.github.com/microsoft/debugpy/issues/2050">#2050</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/6dd019a6fb8e45bf84ce9c648234ebc703f35dd5"><code>6dd019a</code></a> Add debugpy release agent (<a href="https://redirect.github.com/microsoft/debugpy/issues/2062">#2062</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/d98001c459bf01df0e285ecb5515dad483f776f8"><code>d98001c</code></a> Fix thread identity when the first traced call is another thread's is_alive()...</li> <li><a href="https://github.com/microsoft/debugpy/commit/7ca4578da46cf172a00994f4f327f733695bb955"><code>7ca4578</code></a> Return the endpoint from listen() with the in-process adapter (<a href="https://redirect.github.com/microsoft/debugpy/issues/2051">#2051</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/9832f3f99be7c5c12587ed0df122ce51b3fb735c"><code>9832f3f</code></a> Add more typing to debugpy and switch to 'standard' type checking mode (<a href="https://redirect.github.com/microsoft/debugpy/issues/1637">#1637</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/2f73444688e6d617c2fafb629e42c92133361e62"><code>2f73444</code></a> Populate hitBreakpointIds in the DAP stopped event (<a href="https://redirect.github.com/microsoft/debugpy/issues/2060">#2060</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/7d3f86119e5e9fc435983839ea732a58e86ceaeb"><code>7d3f861</code></a> Avoid exceptions in environment diagnostics (<a href="https://redirect.github.com/microsoft/debugpy/issues/2059">#2059</a>)</li> <li><a href="https://github.com/microsoft/debugpy/commit/f77d44824c13ca56f907155a940a5bafb1467d87"><code>f77d448</code></a> Fix duplicate stopped event when two threads hit a breakpoint at once (<a href="https://redirect.github.com/microsoft/debugpy/issues/2056">#2056</a>)</li> <li>Additional commits viewable in <a href="https://github.com/microsoft/debugpy/compare/v1.8.21...v1.8.22">compare view</a></li> </ul> </details> <br /> 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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
pytest-dev/pytest#14758 changed how pytest stores node IDs internally: instead of strings, it now uses
NodeIdobjects.Because of this, the private
failed_subtestsmapping usesNodeIdobjects as keys.pytest-rerunfailureswas still looking up failed subtests using string.nodeidvalues. So that failed subtests were not rerun with newer pytest versions.This change uses
.idwhenNodeIdis available, and falls back to.nodeidfor older pytest versions.Tested locally:
431f3e1f5,Only the
failed_subtestshandling was changed. Other uses of.nodeidstay the same.