Reset Polyfactory's default random state on each test - #735
Merged
Merged
Conversation
pctablet505
marked this pull request as ready for review
July 17, 2026 12:23
pctablet505
force-pushed
the
reseed-polyfactory
branch
2 times, most recently
from
August 21, 2026 15:24
4475650 to
0d570f8
Compare
Polyfactory maintains its own default random.Random() instance (polyfactory.constants.DEFAULT_RANDOM) separate from Faker's, so it wasn't being reseeded alongside the other supported libraries. Follows the existing pattern used for factory_boy, Faker, Model Bakery, and NumPy: reseed if the library is importable. Closes pytest-dev#720.
adamchainz
force-pushed
the
reseed-polyfactory
branch
from
August 31, 2026 22:55
0d570f8 to
0db268b
Compare
adamchainz
enabled auto-merge (squash)
August 31, 2026 22:55
ruben-sebrango
added a commit
to softwareone-platform/swo-aws-extension
that referenced
this pull request
Sep 9, 2026
Bumps the python-development group with 4 updates: [boto3-stubs](https://github.com/youtype/mypy_boto3_builder), [ipython](https://github.com/ipython/ipython), [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) and [ruff](https://github.com/astral-sh/ruff). Updates `boto3-stubs` from 1.43.82 to 1.43.88 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/youtype/mypy_boto3_builder/commits">compare view</a></li> </ul> </details> <br /> Updates `ipython` from 9.16.1 to 9.17.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ipython/ipython/commit/48ff02957a9a0cdb30a63e15f6493e583e9ec54b"><code>48ff029</code></a> release 9.17.1</li> <li><a href="https://github.com/ipython/ipython/commit/ed47107a5218bfc6419fe5f2a79ebda22a77d612"><code>ed47107</code></a> Have builin-lazy magics have a lower priority than registered on.</li> <li><a href="https://github.com/ipython/ipython/commit/19f9ae0a863c21cff52fa07c74b18fc5b482d9c3"><code>19f9ae0</code></a> back to dev</li> <li><a href="https://github.com/ipython/ipython/commit/3278f6f5b71b3152e084478cac8fa20405c49b5a"><code>3278f6f</code></a> release 9.17.0</li> <li><a href="https://github.com/ipython/ipython/commit/40cfb95e634b8807ff66dac1a269610794f7da66"><code>40cfb95</code></a> Update what's new for 9.17</li> <li><a href="https://github.com/ipython/ipython/commit/2ed42ae6a01e77c8a11ead7b168ceb920f4cb563"><code>2ed42ae</code></a> Fix RST formatting in display_functions.py</li> <li><a href="https://github.com/ipython/ipython/commit/a487a06bb1193f4d166210153e7068af694ec2ae"><code>a487a06</code></a> change emojis</li> <li><a href="https://github.com/ipython/ipython/commit/7f0ee55684f08f5af18190aa58d4bb3018fb20d2"><code>7f0ee55</code></a> Declare IPython's built-in magics lazily</li> <li><a href="https://github.com/ipython/ipython/commit/ee0239282e9439ea181a723187ede0cc55475414"><code>ee02392</code></a> Only run the psutil-free kitty detection test where /proc exists</li> <li><a href="https://github.com/ipython/ipython/commit/af386cf710668a2f81abdae3621a8c2fe7be3494"><code>af386cf</code></a> Annotate <code>_find_dunder</code> and put measured numbers in the whatsnew</li> <li>Additional commits viewable in <a href="https://github.com/ipython/ipython/compare/9.16.1...9.17.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.5 to 0.16.6 <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.6</h2> <h2>Release Notes</h2> <p>Released on 2026-09-03.</p> <h3>Preview features</h3> <ul> <li>Move <code>pytest-fixture-autouse</code> to the <code>restriction</code> category (<a href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li> <li>[<code>flake8-pytest-style</code>] Add an autofix for <code>PT020</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li> <li>[<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li> <li>[<code>isort</code>] Exclude pragma comments from line length calculation (<code>I001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Validate unary expressions when parsing (<a href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li> <li>[<code>flake8-async</code>, <code>pylint</code>] Recognize <code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li> <li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code> subjects (<code>B031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li> <li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for <code>datetime</code> bounds (<code>DTZ901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li> <li>[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li> <li>[<code>ruff</code>] Remove <code>lint.external</code> hint for Ruff-specific suppressions (<code>RUF102</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-use-pathlib</code>] Add display-only fix for <code>os.listdir</code> (<code>PTH208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add another example and glob reference for <code>lint.per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li> <li>Add duplicate work guidance (<a href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li> <li>[<code>flake8-async</code>] Document thread offloading (<code>ASYNC240</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li> <li>[<code>pyupgrade</code>] Clarify default <code>encoding</code> argument handling (<code>UP012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Allow unary plus in match patterns on Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/flying-sheep"><code>@flying-sheep</code></a></li> <li><a href="https://github.com/pikammmmm"><code>@pikammmmm</code></a></li> <li><a href="https://github.com/fly1d"><code>@fly1d</code></a></li> <li><a href="https://github.com/waterWang"><code>@waterWang</code></a></li> <li><a href="https://github.com/Pierre-Sassoulas"><code>@Pierre-Sassoulas</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/jelle-openai"><code>@jelle-openai</code></a></li> <li><a href="https://github.com/ericbuehl"><code>@ericbuehl</code></a></li> <li><a href="https://github.com/tjkuson"><code>@tjkuson</code></a></li> <li><a href="https://github.com/AbhinavMir"><code>@AbhinavMir</code></a></li> <li><a href="https://github.com/Whning0513"><code>@Whning0513</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> </ul> <!-- raw HTML omitted --> </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.6</h2> <p>Released on 2026-09-03.</p> <h3>Preview features</h3> <ul> <li>Move <code>pytest-fixture-autouse</code> to the <code>restriction</code> category (<a href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li> <li>[<code>flake8-pytest-style</code>] Add an autofix for <code>PT020</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li> <li>[<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li> <li>[<code>isort</code>] Exclude pragma comments from line length calculation (<code>I001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Validate unary expressions when parsing (<a href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li> <li>[<code>flake8-async</code>, <code>pylint</code>] Recognize <code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li> <li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code> subjects (<code>B031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li> <li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for <code>datetime</code> bounds (<code>DTZ901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li> <li>[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li> <li>[<code>ruff</code>] Remove <code>lint.external</code> hint for Ruff-specific suppressions (<code>RUF102</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-use-pathlib</code>] Add display-only fix for <code>os.listdir</code> (<code>PTH208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add another example and glob reference for <code>lint.per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li> <li>Add duplicate work guidance (<a href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li> <li>[<code>flake8-async</code>] Document thread offloading (<code>ASYNC240</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li> <li>[<code>pyupgrade</code>] Clarify default <code>encoding</code> argument handling (<code>UP012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Allow unary plus in match patterns on Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/flying-sheep"><code>@flying-sheep</code></a></li> <li><a href="https://github.com/pikammmmm"><code>@pikammmmm</code></a></li> <li><a href="https://github.com/fly1d"><code>@fly1d</code></a></li> <li><a href="https://github.com/waterWang"><code>@waterWang</code></a></li> <li><a href="https://github.com/Pierre-Sassoulas"><code>@Pierre-Sassoulas</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/jelle-openai"><code>@jelle-openai</code></a></li> <li><a href="https://github.com/ericbuehl"><code>@ericbuehl</code></a></li> <li><a href="https://github.com/tjkuson"><code>@tjkuson</code></a></li> <li><a href="https://github.com/AbhinavMir"><code>@AbhinavMir</code></a></li> <li><a href="https://github.com/Whning0513"><code>@Whning0513</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/22f65a2ab5052990503985c7c794de37598d531e"><code>22f65a2</code></a> Bump 0.16.6 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28280">#28280</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd"><code>7cc9f1e</code></a> [ty] Document <code>CallableTypeKind</code> variants (<a href="https://redirect.github.com/astral-sh/ruff/issues/28277">#28277</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078"><code>056ce07</code></a> Add UV_LOCKED to all workflows (<a href="https://redirect.github.com/astral-sh/ruff/issues/28261">#28261</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6"><code>6d6e35d</code></a> [<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/issues/27918">#27918</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a"><code>80b4891</code></a> [ty] Temporarily disable tuple types in property tests (<a href="https://redirect.github.com/astral-sh/ruff/issues/28275">#28275</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0"><code>3f7a54d</code></a> [<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28262">#28262</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d"><code>35656cf</code></a> [ty] Preserve deprecations on decorated callables (<a href="https://redirect.github.com/astral-sh/ruff/issues/28256">#28256</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf"><code>d2626c8</code></a> [ty] Reject missing attributes on <code>type[]</code> aliases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28267">#28267</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c"><code>ee6a6d1</code></a> [ty] Support ParamSpecs in <code>ConstraintSet</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28028">#28028</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d"><code>7f6a170</code></a> [ty] Move bound APIs to constraint owners (<a href="https://redirect.github.com/astral-sh/ruff/issues/28094">#28094</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6">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>
minhtule
pushed a commit
to Twingate/kubernetes-operator
that referenced
this pull request
Sep 9, 2026
Bumps [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) from 4.1.0 to 5.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">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>
github-actions Bot
pushed a commit
to rwydaegh/aegis
that referenced
this pull request
Sep 11, 2026
Updates the requirements on [pytest-randomly](https://github.com/pytest-dev/pytest-randomly), [hypothesis](https://github.com/HypothesisWorks/hypothesis) and [ruff](https://github.com/astral-sh/ruff) to permit the latest version. Updates `pytest-randomly` to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> <h2>4.1.0 (2026-04-20)</h2> <ul> <li> <p>Fix a crash with Faker installed when explicitly enabling and disabling the plugin (via <code>-p randomly -p no:randomly</code>).</p> <p>Thanks to mojosan77 for the report in <code>Issue [#718](pytest-dev/pytest-randomly#718) <https://github.com/pytest-dev/pytest-randomly/issues/718></code>__.</p> </li> <li> <p>Drop Python 3.9 support.</p> </li> </ul> <h2>4.0.1 (2025-09-12)</h2> <ul> <li> <p>Remove the random state caching, which would grow without bound, leaking memory in long test runs. The caching was added to slightly speed up re-using the same (final) seed, but since the final seed is now different for each test, it has no effect.</p> <p><code>PR [#690](pytest-dev/pytest-randomly#690) <https://github.com/pytest-dev/pytest-randomly/issues/687></code>__.</p> </li> <li> <p>Modify Numpy seed restriction, replacing hashing with a modulo operation. The extra work to hash is unnecessary now that we generate a final seed per test with CRC32.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `hypothesis` to 6.168.0 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/cd434f23be1a3598085cf096e28e6738c63b29b3"><code>cd434f2</code></a> Bump hypothesis version to 6.168.0 and update changelog</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/3187fb9804692357b773de8177af3c0e06dc6060"><code>3187fb9</code></a> Merge pull request <a href="https://redirect.github.com/HypothesisWorks/hypothesis/issues/4868">#4868</a> from Zac-HD/claude/hypothesis-datetime-strategy-ajzai0</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/a60dc77a404039c4afa93155e42138921e1c0975"><code>a60dc77</code></a> Reduce rate of tricky datetimes</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/67e5c04721dc8689d64ee831b0996b1b05ca9f82"><code>67e5c04</code></a> Merge pull request <a href="https://redirect.github.com/HypothesisWorks/hypothesis/issues/4875">#4875</a> from HypothesisWorks/create-pull-request/patch</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/ecaed93ac8009a9927b78413d2d90d27ec8d6431"><code>ecaed93</code></a> Merge remote-tracking branch 'upstream/master' into plait/review-hypothesis-4868</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/116ef8404b2d4c9f3fbf69b39273b769cf361077"><code>116ef84</code></a> Probe backwards for bound windows before the scan range</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/ef176517555daacccdff3990d643380124020b6a"><code>ef17651</code></a> Bound the cache of probed timezone transitions</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/6b35510b7532f18b723be87c06ee328831c25fd0"><code>6b35510</code></a> Skip transition probing for fixed-offset timezones</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/26df9dde16e15d2ae475c7a352ac94f522abddc3"><code>26df9dd</code></a> Simplify clamping of tricky-draw windows</li> <li><a href="https://github.com/HypothesisWorks/hypothesis/commit/6e9b74508a8463c1ef7ef9eb25542d5668fcf173"><code>6e9b745</code></a> Extract a _draw_ordinary_datetime helper</li> <li>Additional commits viewable in <a href="https://github.com/HypothesisWorks/hypothesis/compare/v6.167.1...v6.168.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` to 0.16.6 <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.6</h2> <h2>Release Notes</h2> <p>Released on 2026-09-03.</p> <h3>Preview features</h3> <ul> <li>Move <code>pytest-fixture-autouse</code> to the <code>restriction</code> category (<a href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li> <li>[<code>flake8-pytest-style</code>] Add an autofix for <code>PT020</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li> <li>[<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li> <li>[<code>isort</code>] Exclude pragma comments from line length calculation (<code>I001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Validate unary expressions when parsing (<a href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li> <li>[<code>flake8-async</code>, <code>pylint</code>] Recognize <code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li> <li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code> subjects (<code>B031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li> <li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for <code>datetime</code> bounds (<code>DTZ901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li> <li>[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li> <li>[<code>ruff</code>] Remove <code>lint.external</code> hint for Ruff-specific suppressions (<code>RUF102</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-use-pathlib</code>] Add display-only fix for <code>os.listdir</code> (<code>PTH208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add another example and glob reference for <code>lint.per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li> <li>Add duplicate work guidance (<a href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li> <li>[<code>flake8-async</code>] Document thread offloading (<code>ASYNC240</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li> <li>[<code>pyupgrade</code>] Clarify default <code>encoding</code> argument handling (<code>UP012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Allow unary plus in match patterns on Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/flying-sheep"><code>@flying-sheep</code></a></li> <li><a href="https://github.com/pikammmmm"><code>@pikammmmm</code></a></li> <li><a href="https://github.com/fly1d"><code>@fly1d</code></a></li> <li><a href="https://github.com/waterWang"><code>@waterWang</code></a></li> <li><a href="https://github.com/Pierre-Sassoulas"><code>@Pierre-Sassoulas</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/jelle-openai"><code>@jelle-openai</code></a></li> <li><a href="https://github.com/ericbuehl"><code>@ericbuehl</code></a></li> <li><a href="https://github.com/tjkuson"><code>@tjkuson</code></a></li> <li><a href="https://github.com/AbhinavMir"><code>@AbhinavMir</code></a></li> <li><a href="https://github.com/Whning0513"><code>@Whning0513</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> </ul> <!-- raw HTML omitted --> </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.6</h2> <p>Released on 2026-09-03.</p> <h3>Preview features</h3> <ul> <li>Move <code>pytest-fixture-autouse</code> to the <code>restriction</code> category (<a href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li> <li>[<code>flake8-pytest-style</code>] Add an autofix for <code>PT020</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li> <li>[<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li> <li>[<code>isort</code>] Exclude pragma comments from line length calculation (<code>I001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Validate unary expressions when parsing (<a href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li> <li>[<code>flake8-async</code>, <code>pylint</code>] Recognize <code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li> <li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code> subjects (<code>B031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li> <li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for <code>datetime</code> bounds (<code>DTZ901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li> <li>[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li> <li>[<code>ruff</code>] Remove <code>lint.external</code> hint for Ruff-specific suppressions (<code>RUF102</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-use-pathlib</code>] Add display-only fix for <code>os.listdir</code> (<code>PTH208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add another example and glob reference for <code>lint.per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li> <li>Add duplicate work guidance (<a href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li> <li>[<code>flake8-async</code>] Document thread offloading (<code>ASYNC240</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li> <li>[<code>pyupgrade</code>] Clarify default <code>encoding</code> argument handling (<code>UP012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Allow unary plus in match patterns on Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/flying-sheep"><code>@flying-sheep</code></a></li> <li><a href="https://github.com/pikammmmm"><code>@pikammmmm</code></a></li> <li><a href="https://github.com/fly1d"><code>@fly1d</code></a></li> <li><a href="https://github.com/waterWang"><code>@waterWang</code></a></li> <li><a href="https://github.com/Pierre-Sassoulas"><code>@Pierre-Sassoulas</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/jelle-openai"><code>@jelle-openai</code></a></li> <li><a href="https://github.com/ericbuehl"><code>@ericbuehl</code></a></li> <li><a href="https://github.com/tjkuson"><code>@tjkuson</code></a></li> <li><a href="https://github.com/AbhinavMir"><code>@AbhinavMir</code></a></li> <li><a href="https://github.com/Whning0513"><code>@Whning0513</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/22f65a2ab5052990503985c7c794de37598d531e"><code>22f65a2</code></a> Bump 0.16.6 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28280">#28280</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd"><code>7cc9f1e</code></a> [ty] Document <code>CallableTypeKind</code> variants (<a href="https://redirect.github.com/astral-sh/ruff/issues/28277">#28277</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078"><code>056ce07</code></a> Add UV_LOCKED to all workflows (<a href="https://redirect.github.com/astral-sh/ruff/issues/28261">#28261</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6"><code>6d6e35d</code></a> [<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/issues/27918">#27918</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a"><code>80b4891</code></a> [ty] Temporarily disable tuple types in property tests (<a href="https://redirect.github.com/astral-sh/ruff/issues/28275">#28275</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0"><code>3f7a54d</code></a> [<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28262">#28262</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d"><code>35656cf</code></a> [ty] Preserve deprecations on decorated callables (<a href="https://redirect.github.com/astral-sh/ruff/issues/28256">#28256</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf"><code>d2626c8</code></a> [ty] Reject missing attributes on <code>type[]</code> aliases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28267">#28267</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c"><code>ee6a6d1</code></a> [ty] Support ParamSpecs in <code>ConstraintSet</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28028">#28028</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d"><code>7f6a170</code></a> [ty] Move bound APIs to constraint owners (<a href="https://redirect.github.com/astral-sh/ruff/issues/28094">#28094</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6">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>
svazquezco
added a commit
to softwareone-platform/mpt-extension-sdk
that referenced
this pull request
Sep 14, 2026
…with 4 updates (#301) Bumps the python-development group with 4 updates in the / directory: [types-pyyaml](https://github.com/python/typeshed), [ipython](https://github.com/ipython/ipython), [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) and [ruff](https://github.com/astral-sh/ruff). Updates `types-pyyaml` from 6.0.12.20260815 to 6.0.12.20260906 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/python/typeshed/commits">compare view</a></li> </ul> </details> <br /> Updates `ipython` from 9.16.1 to 9.17.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ipython/ipython/commit/48ff02957a9a0cdb30a63e15f6493e583e9ec54b"><code>48ff029</code></a> release 9.17.1</li> <li><a href="https://github.com/ipython/ipython/commit/ed47107a5218bfc6419fe5f2a79ebda22a77d612"><code>ed47107</code></a> Have builin-lazy magics have a lower priority than registered on.</li> <li><a href="https://github.com/ipython/ipython/commit/19f9ae0a863c21cff52fa07c74b18fc5b482d9c3"><code>19f9ae0</code></a> back to dev</li> <li><a href="https://github.com/ipython/ipython/commit/3278f6f5b71b3152e084478cac8fa20405c49b5a"><code>3278f6f</code></a> release 9.17.0</li> <li><a href="https://github.com/ipython/ipython/commit/40cfb95e634b8807ff66dac1a269610794f7da66"><code>40cfb95</code></a> Update what's new for 9.17</li> <li><a href="https://github.com/ipython/ipython/commit/2ed42ae6a01e77c8a11ead7b168ceb920f4cb563"><code>2ed42ae</code></a> Fix RST formatting in display_functions.py</li> <li><a href="https://github.com/ipython/ipython/commit/a487a06bb1193f4d166210153e7068af694ec2ae"><code>a487a06</code></a> change emojis</li> <li><a href="https://github.com/ipython/ipython/commit/7f0ee55684f08f5af18190aa58d4bb3018fb20d2"><code>7f0ee55</code></a> Declare IPython's built-in magics lazily</li> <li><a href="https://github.com/ipython/ipython/commit/ee0239282e9439ea181a723187ede0cc55475414"><code>ee02392</code></a> Only run the psutil-free kitty detection test where /proc exists</li> <li><a href="https://github.com/ipython/ipython/commit/af386cf710668a2f81abdae3621a8c2fe7be3494"><code>af386cf</code></a> Annotate <code>_find_dunder</code> and put measured numbers in the whatsnew</li> <li>Additional commits viewable in <a href="https://github.com/ipython/ipython/compare/9.16.1...9.17.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.5 to 0.16.7 <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.7</h2> <h2>Release Notes</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> </ul> <!-- raw HTML omitted --> </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.7</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/nightt5879"><code>@nightt5879</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/b5dba861cc38e3f7fb4524c9ceba3e01a474ea13"><code>b5dba86</code></a> Bump version to 0.16.7 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28496">#28496</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/5992d0504697d86565d8fc3a4d8245a5f4047d24"><code>5992d05</code></a> Install rustfmt before linting releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28495">#28495</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/1713a1f4325494d883a080d590a25a1946f399e8"><code>1713a1f</code></a> ensure prepare release changes pass prek (<a href="https://redirect.github.com/astral-sh/ruff/issues/28488">#28488</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/18cdbb4f3d14058794420e758864795f55336334"><code>18cdbb4</code></a> use scoped token for release workflow (<a href="https://redirect.github.com/astral-sh/ruff/issues/28484">#28484</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/c3813a501faf887fd01948c98bb8d58ad26488bd"><code>c3813a5</code></a> add a workflow for preparing releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28486">#28486</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/00948c00a671b81f5358af9f038436bcbb993b38"><code>00948c0</code></a> Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/issues/28455">#28455</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/86a2eba7b48e3c10386f7ab8a5425c7275d2b427"><code>86a2eba</code></a> [<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (`UP...</li> <li><a href="https://github.com/astral-sh/ruff/commit/609e184aa35f0034b7ef63e3e04327081c484af6"><code>609e184</code></a> Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28476">#28476</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/859ff2f01670c43ffff1ea597c8a2e375ada0fbe"><code>859ff2f</code></a> [ty] Track symlinked directory status in listings (<a href="https://redirect.github.com/astral-sh/ruff/issues/28482">#28482</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/77f653825800ddaf3bc221ae6db49a500e1002d5"><code>77f6538</code></a> Use paid GitHub-hosted runners for Linux (<a href="https://redirect.github.com/astral-sh/ruff/issues/28478">#28478</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.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>
svazquezco
added a commit
to softwareone-platform/swo-adobe-vipm-extension
that referenced
this pull request
Sep 14, 2026
…with 4 updates (#977) Bumps the python-development group with 4 updates in the / directory: [ipython](https://github.com/ipython/ipython), [pytest-randomly](https://github.com/pytest-dev/pytest-randomly), [ruff](https://github.com/astral-sh/ruff) and [types-requests](https://github.com/python/typeshed). Updates `ipython` from 9.16.1 to 9.17.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ipython/ipython/commit/48ff02957a9a0cdb30a63e15f6493e583e9ec54b"><code>48ff029</code></a> release 9.17.1</li> <li><a href="https://github.com/ipython/ipython/commit/ed47107a5218bfc6419fe5f2a79ebda22a77d612"><code>ed47107</code></a> Have builin-lazy magics have a lower priority than registered on.</li> <li><a href="https://github.com/ipython/ipython/commit/19f9ae0a863c21cff52fa07c74b18fc5b482d9c3"><code>19f9ae0</code></a> back to dev</li> <li><a href="https://github.com/ipython/ipython/commit/3278f6f5b71b3152e084478cac8fa20405c49b5a"><code>3278f6f</code></a> release 9.17.0</li> <li><a href="https://github.com/ipython/ipython/commit/40cfb95e634b8807ff66dac1a269610794f7da66"><code>40cfb95</code></a> Update what's new for 9.17</li> <li><a href="https://github.com/ipython/ipython/commit/2ed42ae6a01e77c8a11ead7b168ceb920f4cb563"><code>2ed42ae</code></a> Fix RST formatting in display_functions.py</li> <li><a href="https://github.com/ipython/ipython/commit/a487a06bb1193f4d166210153e7068af694ec2ae"><code>a487a06</code></a> change emojis</li> <li><a href="https://github.com/ipython/ipython/commit/7f0ee55684f08f5af18190aa58d4bb3018fb20d2"><code>7f0ee55</code></a> Declare IPython's built-in magics lazily</li> <li><a href="https://github.com/ipython/ipython/commit/ee0239282e9439ea181a723187ede0cc55475414"><code>ee02392</code></a> Only run the psutil-free kitty detection test where /proc exists</li> <li><a href="https://github.com/ipython/ipython/commit/af386cf710668a2f81abdae3621a8c2fe7be3494"><code>af386cf</code></a> Annotate <code>_find_dunder</code> and put measured numbers in the whatsnew</li> <li>Additional commits viewable in <a href="https://github.com/ipython/ipython/compare/9.16.1...9.17.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.5 to 0.16.7 <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.7</h2> <h2>Release Notes</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> </ul> <!-- raw HTML omitted --> </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.7</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/nightt5879"><code>@nightt5879</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/b5dba861cc38e3f7fb4524c9ceba3e01a474ea13"><code>b5dba86</code></a> Bump version to 0.16.7 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28496">#28496</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/5992d0504697d86565d8fc3a4d8245a5f4047d24"><code>5992d05</code></a> Install rustfmt before linting releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28495">#28495</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/1713a1f4325494d883a080d590a25a1946f399e8"><code>1713a1f</code></a> ensure prepare release changes pass prek (<a href="https://redirect.github.com/astral-sh/ruff/issues/28488">#28488</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/18cdbb4f3d14058794420e758864795f55336334"><code>18cdbb4</code></a> use scoped token for release workflow (<a href="https://redirect.github.com/astral-sh/ruff/issues/28484">#28484</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/c3813a501faf887fd01948c98bb8d58ad26488bd"><code>c3813a5</code></a> add a workflow for preparing releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28486">#28486</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/00948c00a671b81f5358af9f038436bcbb993b38"><code>00948c0</code></a> Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/issues/28455">#28455</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/86a2eba7b48e3c10386f7ab8a5425c7275d2b427"><code>86a2eba</code></a> [<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (`UP...</li> <li><a href="https://github.com/astral-sh/ruff/commit/609e184aa35f0034b7ef63e3e04327081c484af6"><code>609e184</code></a> Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28476">#28476</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/859ff2f01670c43ffff1ea597c8a2e375ada0fbe"><code>859ff2f</code></a> [ty] Track symlinked directory status in listings (<a href="https://redirect.github.com/astral-sh/ruff/issues/28482">#28482</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/77f653825800ddaf3bc221ae6db49a500e1002d5"><code>77f6538</code></a> Use paid GitHub-hosted runners for Linux (<a href="https://redirect.github.com/astral-sh/ruff/issues/28478">#28478</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.7">compare view</a></li> </ul> </details> <br /> Updates `types-requests` from 2.33.0.20260712 to 2.33.0.20260906 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/python/typeshed/commits">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>
svazquezco
added a commit
to softwareone-platform/swo-marketplace-cli
that referenced
this pull request
Sep 14, 2026
…with 4 updates (#264) Bumps the python-development group with 4 updates in the / directory: [ipython](https://github.com/ipython/ipython), [pytest-randomly](https://github.com/pytest-dev/pytest-randomly), [ruff](https://github.com/astral-sh/ruff) and [types-requests](https://github.com/python/typeshed). Updates `ipython` from 9.16.1 to 9.17.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ipython/ipython/commit/48ff02957a9a0cdb30a63e15f6493e583e9ec54b"><code>48ff029</code></a> release 9.17.1</li> <li><a href="https://github.com/ipython/ipython/commit/ed47107a5218bfc6419fe5f2a79ebda22a77d612"><code>ed47107</code></a> Have builin-lazy magics have a lower priority than registered on.</li> <li><a href="https://github.com/ipython/ipython/commit/19f9ae0a863c21cff52fa07c74b18fc5b482d9c3"><code>19f9ae0</code></a> back to dev</li> <li><a href="https://github.com/ipython/ipython/commit/3278f6f5b71b3152e084478cac8fa20405c49b5a"><code>3278f6f</code></a> release 9.17.0</li> <li><a href="https://github.com/ipython/ipython/commit/40cfb95e634b8807ff66dac1a269610794f7da66"><code>40cfb95</code></a> Update what's new for 9.17</li> <li><a href="https://github.com/ipython/ipython/commit/2ed42ae6a01e77c8a11ead7b168ceb920f4cb563"><code>2ed42ae</code></a> Fix RST formatting in display_functions.py</li> <li><a href="https://github.com/ipython/ipython/commit/a487a06bb1193f4d166210153e7068af694ec2ae"><code>a487a06</code></a> change emojis</li> <li><a href="https://github.com/ipython/ipython/commit/7f0ee55684f08f5af18190aa58d4bb3018fb20d2"><code>7f0ee55</code></a> Declare IPython's built-in magics lazily</li> <li><a href="https://github.com/ipython/ipython/commit/ee0239282e9439ea181a723187ede0cc55475414"><code>ee02392</code></a> Only run the psutil-free kitty detection test where /proc exists</li> <li><a href="https://github.com/ipython/ipython/commit/af386cf710668a2f81abdae3621a8c2fe7be3494"><code>af386cf</code></a> Annotate <code>_find_dunder</code> and put measured numbers in the whatsnew</li> <li>Additional commits viewable in <a href="https://github.com/ipython/ipython/compare/9.16.1...9.17.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.5 to 0.16.7 <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.7</h2> <h2>Release Notes</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> </ul> <!-- raw HTML omitted --> </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.7</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/nightt5879"><code>@nightt5879</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/b5dba861cc38e3f7fb4524c9ceba3e01a474ea13"><code>b5dba86</code></a> Bump version to 0.16.7 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28496">#28496</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/5992d0504697d86565d8fc3a4d8245a5f4047d24"><code>5992d05</code></a> Install rustfmt before linting releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28495">#28495</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/1713a1f4325494d883a080d590a25a1946f399e8"><code>1713a1f</code></a> ensure prepare release changes pass prek (<a href="https://redirect.github.com/astral-sh/ruff/issues/28488">#28488</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/18cdbb4f3d14058794420e758864795f55336334"><code>18cdbb4</code></a> use scoped token for release workflow (<a href="https://redirect.github.com/astral-sh/ruff/issues/28484">#28484</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/c3813a501faf887fd01948c98bb8d58ad26488bd"><code>c3813a5</code></a> add a workflow for preparing releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28486">#28486</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/00948c00a671b81f5358af9f038436bcbb993b38"><code>00948c0</code></a> Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/issues/28455">#28455</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/86a2eba7b48e3c10386f7ab8a5425c7275d2b427"><code>86a2eba</code></a> [<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (`UP...</li> <li><a href="https://github.com/astral-sh/ruff/commit/609e184aa35f0034b7ef63e3e04327081c484af6"><code>609e184</code></a> Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28476">#28476</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/859ff2f01670c43ffff1ea597c8a2e375ada0fbe"><code>859ff2f</code></a> [ty] Track symlinked directory status in listings (<a href="https://redirect.github.com/astral-sh/ruff/issues/28482">#28482</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/77f653825800ddaf3bc221ae6db49a500e1002d5"><code>77f6538</code></a> Use paid GitHub-hosted runners for Linux (<a href="https://redirect.github.com/astral-sh/ruff/issues/28478">#28478</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.7">compare view</a></li> </ul> </details> <br /> Updates `types-requests` from 2.33.0.20260712 to 2.33.0.20260906 <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/python/typeshed/commits">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>
svazquezco
added a commit
to softwareone-platform/mpt-extension-python-contrib
that referenced
this pull request
Sep 14, 2026
Bumps the python-development group with 4 updates: [copier](https://github.com/copier-org/copier), [pytest-randomly](https://github.com/pytest-dev/pytest-randomly), [ruff](https://github.com/astral-sh/ruff) and [boto3](https://github.com/boto/boto3). Updates `copier` from 9.17.2 to 9.18.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/copier-org/copier/releases">copier's releases</a>.</em></p> <blockquote> <h2>v9.18.1 (2026-09-01)</h2> <h3>Fix</h3> <ul> <li>disambiguate Windows paths from SCP URLs in trust check</li> </ul> <h2>v9.18.0 (2026-09-01)</h2> <h3>Feat</h3> <ul> <li><strong>exclude</strong>: add support for multiple exclude patterns in a single entry (<a href="https://redirect.github.com/copier-org/copier/issues/2804">#2804</a>)</li> </ul> <h3>Fix</h3> <ul> <li>preserve the original error when cleanup fails (<a href="https://redirect.github.com/copier-org/copier/issues/2824">#2824</a>)</li> </ul> <h3>Security</h3> <ul> <li>prevent trust bypass via encoded URL traversal for alias and SCP-style URLs</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/copier-org/copier/blob/master/CHANGELOG.md">copier's changelog</a>.</em></p> <blockquote> <h2>v9.18.1 (2026-09-01)</h2> <h3>Fix</h3> <ul> <li>disambiguate Windows paths from SCP URLs in trust check</li> </ul> <h2>v9.18.0 (2026-09-01)</h2> <h3>Feat</h3> <ul> <li><strong>exclude</strong>: add support for multiple exclude patterns in a single entry (<a href="https://redirect.github.com/copier-org/copier/issues/2804">#2804</a>)</li> </ul> <h3>Fix</h3> <ul> <li>preserve the original error when cleanup fails (<a href="https://redirect.github.com/copier-org/copier/issues/2824">#2824</a>)</li> </ul> <h3>Security</h3> <ul> <li>prevent trust bypass via encoded URL traversal for alias and SCP-style URLs</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/copier-org/copier/commit/03c95e20d8cc8c8c1378cb562a8a7afc01eac1f0"><code>03c95e2</code></a> bump: version 9.18.0 → 9.18.1</li> <li><a href="https://github.com/copier-org/copier/commit/2a3e140b9484ae8ca1b462f8c973491b314c2d71"><code>2a3e140</code></a> fix: disambiguate Windows paths from SCP URLs in trust check</li> <li><a href="https://github.com/copier-org/copier/commit/b65cd70b7e0a1f9e5368677e6b4cc202dc89d3fc"><code>b65cd70</code></a> bump: version 9.17.2 → 9.18.0</li> <li><a href="https://github.com/copier-org/copier/commit/dcae6635f3fa126bc616f88409d28b898fb6b23f"><code>dcae663</code></a> fix: prevent trust bypass via encoded URL traversal for alias and SCP-style URLs</li> <li><a href="https://github.com/copier-org/copier/commit/bb956bb9c77dbbbe8f5c1c7e8d2a3638b1524496"><code>bb956bb</code></a> build(deps): update dependency ruff to v0.16.5</li> <li><a href="https://github.com/copier-org/copier/commit/27d36296c6143427dccc462c37055833560f65de"><code>27d3629</code></a> build(deps): lock file maintenance</li> <li><a href="https://github.com/copier-org/copier/commit/9adfa163cb86eb8760acde9cf5c6fa68dd73c3d1"><code>9adfa16</code></a> build(deps): update dependency platformdirs to v4.11.6</li> <li><a href="https://github.com/copier-org/copier/commit/a1db714ae1ec8d90dce4f114e76ce621f0495c02"><code>a1db714</code></a> build(deps): update dependency pydantic to v2.13.5</li> <li><a href="https://github.com/copier-org/copier/commit/b9e7c233a45f181a416d225ab4bf9b4322f98024"><code>b9e7c23</code></a> build(deps): update dependency commitizen to v4.18.0</li> <li><a href="https://github.com/copier-org/copier/commit/b755924b51a511851d3ed216b7dade6852e4ed67"><code>b755924</code></a> build(deps): update dependency types-pygments to v2.21.0.20260819</li> <li>Additional commits viewable in <a href="https://github.com/copier-org/copier/compare/v9.17.2...v9.18.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.5 to 0.16.6 <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.6</h2> <h2>Release Notes</h2> <p>Released on 2026-09-03.</p> <h3>Preview features</h3> <ul> <li>Move <code>pytest-fixture-autouse</code> to the <code>restriction</code> category (<a href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li> <li>[<code>flake8-pytest-style</code>] Add an autofix for <code>PT020</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li> <li>[<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li> <li>[<code>isort</code>] Exclude pragma comments from line length calculation (<code>I001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Validate unary expressions when parsing (<a href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li> <li>[<code>flake8-async</code>, <code>pylint</code>] Recognize <code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li> <li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code> subjects (<code>B031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li> <li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for <code>datetime</code> bounds (<code>DTZ901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li> <li>[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li> <li>[<code>ruff</code>] Remove <code>lint.external</code> hint for Ruff-specific suppressions (<code>RUF102</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-use-pathlib</code>] Add display-only fix for <code>os.listdir</code> (<code>PTH208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add another example and glob reference for <code>lint.per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li> <li>Add duplicate work guidance (<a href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li> <li>[<code>flake8-async</code>] Document thread offloading (<code>ASYNC240</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li> <li>[<code>pyupgrade</code>] Clarify default <code>encoding</code> argument handling (<code>UP012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Allow unary plus in match patterns on Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/flying-sheep"><code>@flying-sheep</code></a></li> <li><a href="https://github.com/pikammmmm"><code>@pikammmmm</code></a></li> <li><a href="https://github.com/fly1d"><code>@fly1d</code></a></li> <li><a href="https://github.com/waterWang"><code>@waterWang</code></a></li> <li><a href="https://github.com/Pierre-Sassoulas"><code>@Pierre-Sassoulas</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/jelle-openai"><code>@jelle-openai</code></a></li> <li><a href="https://github.com/ericbuehl"><code>@ericbuehl</code></a></li> <li><a href="https://github.com/tjkuson"><code>@tjkuson</code></a></li> <li><a href="https://github.com/AbhinavMir"><code>@AbhinavMir</code></a></li> <li><a href="https://github.com/Whning0513"><code>@Whning0513</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> </ul> <!-- raw HTML omitted --> </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.6</h2> <p>Released on 2026-09-03.</p> <h3>Preview features</h3> <ul> <li>Move <code>pytest-fixture-autouse</code> to the <code>restriction</code> category (<a href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li> <li>[<code>flake8-pytest-style</code>] Add an autofix for <code>PT020</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li> <li>[<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li> <li>[<code>isort</code>] Exclude pragma comments from line length calculation (<code>I001</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Validate unary expressions when parsing (<a href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li> <li>[<code>flake8-async</code>, <code>pylint</code>] Recognize <code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li> <li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code> subjects (<code>B031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li> <li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for <code>datetime</code> bounds (<code>DTZ901</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li> <li>[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li> <li>[<code>ruff</code>] Remove <code>lint.external</code> hint for Ruff-specific suppressions (<code>RUF102</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>[<code>flake8-use-pathlib</code>] Add display-only fix for <code>os.listdir</code> (<code>PTH208</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Add another example and glob reference for <code>lint.per-file-ignores</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li> <li>Add duplicate work guidance (<a href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li> <li>[<code>flake8-async</code>] Document thread offloading (<code>ASYNC240</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li> <li>[<code>pyupgrade</code>] Clarify default <code>encoding</code> argument handling (<code>UP012</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Allow unary plus in match patterns on Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/flying-sheep"><code>@flying-sheep</code></a></li> <li><a href="https://github.com/pikammmmm"><code>@pikammmmm</code></a></li> <li><a href="https://github.com/fly1d"><code>@fly1d</code></a></li> <li><a href="https://github.com/waterWang"><code>@waterWang</code></a></li> <li><a href="https://github.com/Pierre-Sassoulas"><code>@Pierre-Sassoulas</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/jelle-openai"><code>@jelle-openai</code></a></li> <li><a href="https://github.com/ericbuehl"><code>@ericbuehl</code></a></li> <li><a href="https://github.com/tjkuson"><code>@tjkuson</code></a></li> <li><a href="https://github.com/AbhinavMir"><code>@AbhinavMir</code></a></li> <li><a href="https://github.com/Whning0513"><code>@Whning0513</code></a></li> <li><a href="https://github.com/chirizxc"><code>@chirizxc</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/22f65a2ab5052990503985c7c794de37598d531e"><code>22f65a2</code></a> Bump 0.16.6 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28280">#28280</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd"><code>7cc9f1e</code></a> [ty] Document <code>CallableTypeKind</code> variants (<a href="https://redirect.github.com/astral-sh/ruff/issues/28277">#28277</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078"><code>056ce07</code></a> Add UV_LOCKED to all workflows (<a href="https://redirect.github.com/astral-sh/ruff/issues/28261">#28261</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6"><code>6d6e35d</code></a> [<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code> diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/issues/27918">#27918</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a"><code>80b4891</code></a> [ty] Temporarily disable tuple types in property tests (<a href="https://redirect.github.com/astral-sh/ruff/issues/28275">#28275</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0"><code>3f7a54d</code></a> [<code>flake8-tidy-imports</code>] Prevent fix loop between <code>TID254</code> and <code>TID255</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28262">#28262</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d"><code>35656cf</code></a> [ty] Preserve deprecations on decorated callables (<a href="https://redirect.github.com/astral-sh/ruff/issues/28256">#28256</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf"><code>d2626c8</code></a> [ty] Reject missing attributes on <code>type[]</code> aliases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28267">#28267</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c"><code>ee6a6d1</code></a> [ty] Support ParamSpecs in <code>ConstraintSet</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/28028">#28028</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d"><code>7f6a170</code></a> [ty] Move bound APIs to constraint owners (<a href="https://redirect.github.com/astral-sh/ruff/issues/28094">#28094</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6">compare view</a></li> </ul> </details> <br /> Updates `boto3` from 1.43.82 to 1.43.88 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/boto/boto3/commit/bb429b1d8d255e7ebd01e2ad8371ac8c449fa018"><code>bb429b1</code></a> Merge branch 'release-1.43.88'</li> <li><a href="https://github.com/boto/boto3/commit/e373d8d9e73a5764d22ce6776404fb35d8d7fa94"><code>e373d8d</code></a> Bumping version to 1.43.88</li> <li><a href="https://github.com/boto/boto3/commit/6ce83dedf2bcf7089c3ab5fbae5347e384e43a6d"><code>6ce83de</code></a> Add changelog entries from botocore</li> <li><a href="https://github.com/boto/boto3/commit/d5740c2e1387ccd20b7028361a1d3b3e766b7f0e"><code>d5740c2</code></a> Merge branch 'release-1.43.87'</li> <li><a href="https://github.com/boto/boto3/commit/bd30961ebda9a9d63e9f9f1cbb4645f96082cd74"><code>bd30961</code></a> Merge branch 'release-1.43.87' into develop</li> <li><a href="https://github.com/boto/boto3/commit/316b72cad4fd915c6e6a2e081336a1a473018a72"><code>316b72c</code></a> Bumping version to 1.43.87</li> <li><a href="https://github.com/boto/boto3/commit/17409b462b0111734cfde68b5d90730b7a5d34e2"><code>17409b4</code></a> Add changelog entries from botocore</li> <li><a href="https://github.com/boto/boto3/commit/81ae04772b0cb5ef0547f19f52d61836677f8569"><code>81ae047</code></a> Merge branch 'release-1.43.86'</li> <li><a href="https://github.com/boto/boto3/commit/0e52e63f32af72a113d6c49c8084500b48010c74"><code>0e52e63</code></a> Merge branch 'release-1.43.86' into develop</li> <li><a href="https://github.com/boto/boto3/commit/938cd05abce739ff491c302a269e628f9de72849"><code>938cd05</code></a> Bumping version to 1.43.86</li> <li>Additional commits viewable in <a href="https://github.com/boto/boto3/compare/1.43.82...1.43.88">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>
svazquezco
added a commit
to softwareone-platform/mpt-api-python-client
that referenced
this pull request
Sep 14, 2026
…with 4 updates (#415) Bumps the python-development group with 4 updates in the / directory: [ipython](https://github.com/ipython/ipython), [pytest-randomly](https://github.com/pytest-dev/pytest-randomly), [pytest-rerunfailures](https://github.com/pytest-dev/pytest-rerunfailures) and [ruff](https://github.com/astral-sh/ruff). Updates `ipython` from 9.16.1 to 9.17.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ipython/ipython/commit/48ff02957a9a0cdb30a63e15f6493e583e9ec54b"><code>48ff029</code></a> release 9.17.1</li> <li><a href="https://github.com/ipython/ipython/commit/ed47107a5218bfc6419fe5f2a79ebda22a77d612"><code>ed47107</code></a> Have builin-lazy magics have a lower priority than registered on.</li> <li><a href="https://github.com/ipython/ipython/commit/19f9ae0a863c21cff52fa07c74b18fc5b482d9c3"><code>19f9ae0</code></a> back to dev</li> <li><a href="https://github.com/ipython/ipython/commit/3278f6f5b71b3152e084478cac8fa20405c49b5a"><code>3278f6f</code></a> release 9.17.0</li> <li><a href="https://github.com/ipython/ipython/commit/40cfb95e634b8807ff66dac1a269610794f7da66"><code>40cfb95</code></a> Update what's new for 9.17</li> <li><a href="https://github.com/ipython/ipython/commit/2ed42ae6a01e77c8a11ead7b168ceb920f4cb563"><code>2ed42ae</code></a> Fix RST formatting in display_functions.py</li> <li><a href="https://github.com/ipython/ipython/commit/a487a06bb1193f4d166210153e7068af694ec2ae"><code>a487a06</code></a> change emojis</li> <li><a href="https://github.com/ipython/ipython/commit/7f0ee55684f08f5af18190aa58d4bb3018fb20d2"><code>7f0ee55</code></a> Declare IPython's built-in magics lazily</li> <li><a href="https://github.com/ipython/ipython/commit/ee0239282e9439ea181a723187ede0cc55475414"><code>ee02392</code></a> Only run the psutil-free kitty detection test where /proc exists</li> <li><a href="https://github.com/ipython/ipython/commit/af386cf710668a2f81abdae3621a8c2fe7be3494"><code>af386cf</code></a> Annotate <code>_find_dunder</code> and put measured numbers in the whatsnew</li> <li>Additional commits viewable in <a href="https://github.com/ipython/ipython/compare/9.16.1...9.17.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare view</a></li> </ul> </details> <br /> Updates `pytest-rerunfailures` from 16.6 to 16.6.1 <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.6.1 (2026-09-03)</h2> <p>Bug Fixes +++++++++</p> <ul> <li>Ensure teardown reports are passed to <code>pytest_runtest_logreport</code> for rerun attempts. (<code>[#237](pytest-dev/pytest-rerunfailures#237) <https://github.com/pytest-dev/pytest-rerunfailures/issues/237></code>_)</li> <li>Prevent superseded built-in subtest failures from remaining in the final test result when rerunning tests with pytest-xdist. (<code>[#350](pytest-dev/pytest-rerunfailures#350) <https://github.com/pytest-dev/pytest-rerunfailures/issues/350></code>_)</li> <li>Restore module, class, and session scoped fixture teardown when a <code>flaky</code> marker condition is falsy. (<code>[#351](pytest-dev/pytest-rerunfailures#351) <https://github.com/pytest-dev/pytest-rerunfailures/issues/351></code>_)</li> <li>Restore module, class, and session scoped fixture teardown when an error raised during teardown rules out a re-run. (<code>[#356](pytest-dev/pytest-rerunfailures#356) <https://github.com/pytest-dev/pytest-rerunfailures/issues/356></code>_)</li> <li>Keep module, class, and session scoped fixtures alive across re-runs of a test whose call phase failed through subtests only. (<code>[#357](pytest-dev/pytest-rerunfailures#357) <https://github.com/pytest-dev/pytest-rerunfailures/issues/357></code>_)</li> <li>Authenticate xdist StatusDB connections with a per-session token. (<code>[#358](pytest-dev/pytest-rerunfailures#358) <https://github.com/pytest-dev/pytest-rerunfailures/issues/358></code>_)</li> <li>Ensure negative rerun counts do not skip the initial test execution. (<code>[#359](pytest-dev/pytest-rerunfailures#359) <https://github.com/pytest-dev/pytest-rerunfailures/issues/359></code>_)</li> </ul> <p>Misc ++++</p> <ul> <li>Replace deprecated <code>Config.getvalue()</code> calls with <code>Config.getoption()</code>. (<code>[#345](pytest-dev/pytest-rerunfailures#345) <https://github.com/pytest-dev/pytest-rerunfailures/issues/345></code>_)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/dad07a7f360e96c0cbbc4301e36cdc439eb9a36b"><code>dad07a7</code></a> Preparing release 16.6.1</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/968fb6c1d3982ea35f041ecb62024e79016324bb"><code>968fb6c</code></a> Prevent negative reruns from skipping initial execution (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/360">#360</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/367df9044cbcf3bbf153269bdab995e1f9eb113c"><code>367df90</code></a> Keep higher-scoped fixtures alive across re-runs of failed subtests (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/357">#357</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/69ac0a7e66f1f55c1e94a2f237e2659250795ef7"><code>69ac0a7</code></a> Authenticate xdist StatusDB connections (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/358">#358</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/20decd37b22736b1a92ecb7a6ed598e7fd70cff1"><code>20decd3</code></a> Restore higher-scoped teardown when a teardown error rules out a re-run (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/356">#356</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/84af73d63c1ac3eeeeba73a5e3ac91a44078c7bb"><code>84af73d</code></a> Fix subtest rerun reporting with xdist (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/352">#352</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/d784cdda0b946c8788939255b6b72df67da82a19"><code>d784cdd</code></a> Test with pytest-xdist on CI (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/354">#354</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/9f85e063dac5387cb0b17ffcb8aadeca545292a8"><code>9f85e06</code></a> Restore higher-scoped teardown when a flaky condition is falsy (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/351">#351</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/eab650fb2a2665d61539aafda81ae549440c2834"><code>eab650f</code></a> Test rerun-except for setup errors (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/349">#349</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-rerunfailures/commit/0b0843a83fb7e79c37e626092a77c5f7cd49f4df"><code>0b0843a</code></a> Fix only_rerun marker precedence test (<a href="https://redirect.github.com/pytest-dev/pytest-rerunfailures/issues/348">#348</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-rerunfailures/compare/16.6...16.6.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.5 to 0.16.7 <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.7</h2> <h2>Release Notes</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> </ul> <!-- raw HTML omitted --> </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.7</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> <li>[<code>ruff</code>] Recognize <code>re.prefixmatch</code> (<code>RUF039</code>, <code>RUF055</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28311">#28311</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Alternate nested quotes inside format spec interpolations (<a href="https://redirect.github.com/astral-sh/ruff/pull/28259">#28259</a>)</li> <li>[<code>flake8-implicit-str-concat</code>] Mark fix unsafe when it creates a docstring (<code>ISC003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/27981">#27981</a>)</li> <li>[<code>flake8-tidy-imports</code>] Skip fixes for multi-member imports (<code>TID254</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26584">#26584</a>)</li> <li>[<code>pylint</code>] Gate <code>ImportCycleError</code> on Python 3.15 (<code>PLW0133</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28310">#28310</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Correct <code>D211</code> and <code>D203</code> rule conflict diagnostic (<a href="https://redirect.github.com/astral-sh/ruff/pull/28444">#28444</a>)</li> <li>Recognize <code>slice</code> and <code>frozendict</code> generics (<a href="https://redirect.github.com/astral-sh/ruff/pull/28477">#28477</a>)</li> <li>Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28476">#28476</a>)</li> <li>[<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (<code>UP035</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28475">#28475</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Reuse parser name lookups when interning (<a href="https://redirect.github.com/astral-sh/ruff/pull/28399">#28399</a>)</li> <li>Speed up inherited configuration resolution (<a href="https://redirect.github.com/astral-sh/ruff/pull/28299">#28299</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>Fix <code>line-length</code> path in <code>--config</code> example (<a href="https://redirect.github.com/astral-sh/ruff/pull/28392">#28392</a>)</li> <li>Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/pull/28455">#28455</a>)</li> </ul> <h3>Other changes</h3> <ul> <li>Embed archive checksums in the shell installer (<a href="https://redirect.github.com/astral-sh/ruff/pull/28281">#28281</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/The-Compiler"><code>@The-Compiler</code></a></li> <li><a href="https://github.com/mdiniz97"><code>@mdiniz97</code></a></li> <li><a href="https://github.com/zsol"><code>@zsol</code></a></li> <li><a href="https://github.com/gorewilliams"><code>@gorewilliams</code></a></li> <li><a href="https://github.com/RafaelJohn9"><code>@RafaelJohn9</code></a></li> <li><a href="https://github.com/qatcod"><code>@qatcod</code></a></li> <li><a href="https://github.com/zanieb"><code>@zanieb</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/ntBre"><code>@ntBre</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/nightt5879"><code>@nightt5879</code></a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/b5dba861cc38e3f7fb4524c9ceba3e01a474ea13"><code>b5dba86</code></a> Bump version to 0.16.7 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28496">#28496</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/5992d0504697d86565d8fc3a4d8245a5f4047d24"><code>5992d05</code></a> Install rustfmt before linting releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28495">#28495</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/1713a1f4325494d883a080d590a25a1946f399e8"><code>1713a1f</code></a> ensure prepare release changes pass prek (<a href="https://redirect.github.com/astral-sh/ruff/issues/28488">#28488</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/18cdbb4f3d14058794420e758864795f55336334"><code>18cdbb4</code></a> use scoped token for release workflow (<a href="https://redirect.github.com/astral-sh/ruff/issues/28484">#28484</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/c3813a501faf887fd01948c98bb8d58ad26488bd"><code>c3813a5</code></a> add a workflow for preparing releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/28486">#28486</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/00948c00a671b81f5358af9f038436bcbb993b38"><code>00948c0</code></a> Remove the "Who’s Using Ruff?" list (<a href="https://redirect.github.com/astral-sh/ruff/issues/28455">#28455</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/86a2eba7b48e3c10386f7ab8a5425c7275d2b427"><code>86a2eba</code></a> [<code>pyupgrade</code>] Stop recommending removed <code>typing.no_type_check_decorator</code> (`UP...</li> <li><a href="https://github.com/astral-sh/ruff/commit/609e184aa35f0034b7ef63e3e04327081c484af6"><code>609e184</code></a> Stop defining <code>__cached__</code> for Python 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/issues/28476">#28476</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/859ff2f01670c43ffff1ea597c8a2e375ada0fbe"><code>859ff2f</code></a> [ty] Track symlinked directory status in listings (<a href="https://redirect.github.com/astral-sh/ruff/issues/28482">#28482</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/77f653825800ddaf3bc221ae6db49a500e1002d5"><code>77f6538</code></a> Use paid GitHub-hosted runners for Linux (<a href="https://redirect.github.com/astral-sh/ruff/issues/28478">#28478</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.7">compare view</a></li> </ul> </details> <br />
Sinity
pushed a commit
to Sinity/polylogue
that referenced
this pull request
Sep 14, 2026
Bumps [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) from 4.1.0 to 5.0.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](pytest-dev/pytest-randomly#746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](pytest-dev/pytest-randomly#735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">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>
worgarside
added a commit
to worganisation/backplane
that referenced
this pull request
Sep 19, 2026
Bumps the uv-dependencies group with 7 updates: | Package | From | To | | --- | --- | --- | | [fastmcp](https://github.com/PrefectHQ/fastmcp) | `3.4.7` | `4.0.4` | | [pydantic-ai](https://github.com/pydantic/pydantic-ai) | `2.37.0` | `2.43.0` | | [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.14.5` | `3.14.6` | | [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.4` | `0.53.0` | | [basedpyright](https://github.com/detachhead/basedpyright) | `1.39.10` | `1.40.1` | | [pytest-env](https://github.com/pytest-dev/pytest-env) | `1.7.0` | `1.7.1` | | [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.1.0` | `5.0.0` | Updates `fastmcp` from 3.4.7 to 4.0.4 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/PrefectHQ/fastmcp/releases">fastmcp's releases</a>.</em></p> <blockquote> <h2>v4.0.4: Here Be No Dragons</h2> <p>OpenAPI request bodies get most of the attention in this patch: multipart string arrays are sent as repeated fields, whole-body arguments no longer clobber same-named HTTP parameters, dictionary bodies and raw content types survive intact, and JSON scalar bodies are encoded. On the auth side, OAuthProxy rejects ID-JAG tokens unless identity assertion is configured and refuses non-positive upstream token expiries. Clients now follow empty pagination cursors and servers reject malformed ones.</p> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>Enhancements ✨</h3> <ul> <li>Refresh the smart-home example with Hue V2 and native effects by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5009">PrefectHQ/fastmcp#5009</a></li> <li>Update CodeMode for pydantic-monty 0.0.21 by <a href="https://github.com/strawgate"><code>@strawgate</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5033">PrefectHQ/fastmcp#5033</a></li> <li>Keep linked contributor PRs open while awaiting assignment by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5048">PrefectHQ/fastmcp#5048</a></li> <li>Reduce redundant CI execution while preserving required checks by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5049">PrefectHQ/fastmcp#5049</a></li> <li>Share and streamline repository skills by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5013">PrefectHQ/fastmcp#5013</a></li> <li>Support anthropic 1.x alongside 0.x by <a href="https://github.com/tdsmith"><code>@tdsmith</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5066">PrefectHQ/fastmcp#5066</a></li> <li>renovate: cap routine PRs at 5 concurrent and 5 per hour by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5110">PrefectHQ/fastmcp#5110</a></li> <li>Give docs quality checks a corpus-wide timeout by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5109">PrefectHQ/fastmcp#5109</a></li> <li>Resolve ty 0.0.79 warnings from upgrade checks by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5123">PrefectHQ/fastmcp#5123</a></li> </ul> <h3>Security 🔒</h3> <ul> <li>Fix <a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5115">#5115</a>: OAuthProxy accepts self-contained ID-JAG tokens even when identity_ass by <a href="https://github.com/nandanadileep"><code>@nandanadileep</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5119">PrefectHQ/fastmcp#5119</a></li> </ul> <h3>Fixes 🐞</h3> <ul> <li>Fix upgrade checks for the M2M storage warning test by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5040">PrefectHQ/fastmcp#5040</a></li> <li>Fix OpenAPI query explode defaults by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5065">PrefectHQ/fastmcp#5065</a></li> <li>fix(openapi): encode JSON scalar request bodies by <a href="https://github.com/Gonghan-Princess"><code>@Gonghan-Princess</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5052">PrefectHQ/fastmcp#5052</a></li> <li>fix(versions): deterministic meta.fastmcp.versions ordering by <a href="https://github.com/feiiiiii5"><code>@feiiiiii5</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4880">PrefectHQ/fastmcp#4880</a></li> <li>Parse skills frontmatter with yaml.safe_load, falling back to the line parser by <a href="https://github.com/vishnujayvel"><code>@vishnujayvel</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4701">PrefectHQ/fastmcp#4701</a></li> <li>Keep client data out of tool validation warnings by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5106">PrefectHQ/fastmcp#5106</a></li> <li>fix: follow empty pagination cursors in client lists by <a href="https://github.com/sicauzxl"><code>@sicauzxl</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5026">PrefectHQ/fastmcp#5026</a></li> <li>fix: reject non-positive upstream token expiry by <a href="https://github.com/sui-ni2"><code>@sui-ni2</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4849">PrefectHQ/fastmcp#4849</a></li> <li>fix(server): reject a malformed pagination cursor offset by <a href="https://github.com/L4XB"><code>@L4XB</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5071">PrefectHQ/fastmcp#5071</a></li> <li>fix(openapi): preserve dictionary request bodies by <a href="https://github.com/asts-top"><code>@asts-top</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5097">PrefectHQ/fastmcp#5097</a></li> <li>Preserve OpenAPI raw body content types by <a href="https://github.com/pentaoa"><code>@pentaoa</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5093">PrefectHQ/fastmcp#5093</a></li> <li>fix(openapi): preserve HTTP parameters that match whole-body names by <a href="https://github.com/asts-top"><code>@asts-top</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5113">PrefectHQ/fastmcp#5113</a></li> <li>fix(local-provider): apply transforms in get_tasks by <a href="https://github.com/BlueX888"><code>@BlueX888</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5117">PrefectHQ/fastmcp#5117</a></li> <li>Fix multipart string-array default encoding by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5121">PrefectHQ/fastmcp#5121</a></li> </ul> <h3>Other Changes 🦾</h3> <ul> <li>chore(deps): Update github actions (major) by <a href="https://github.com/prefect-renovate"><code>@prefect-renovate</code></a>[bot] in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4890">PrefectHQ/fastmcp#4890</a></li> <li>docs: add v4.0.4 changelog entries by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5127">PrefectHQ/fastmcp#5127</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Gonghan-Princess"><code>@Gonghan-Princess</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5052">PrefectHQ/fastmcp#5052</a></li> <li><a href="https://github.com/tdsmith"><code>@tdsmith</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5066">PrefectHQ/fastmcp#5066</a></li> <li><a href="https://github.com/feiiiiii5"><code>@feiiiiii5</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4880">PrefectHQ/fastmcp#4880</a></li> <li><a href="https://github.com/vishnujayvel"><code>@vishnujayvel</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4701">PrefectHQ/fastmcp#4701</a></li> <li><a href="https://github.com/sicauzxl"><code>@sicauzxl</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5026">PrefectHQ/fastmcp#5026</a></li> <li><a href="https://github.com/sui-ni2"><code>@sui-ni2</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4849">PrefectHQ/fastmcp#4849</a></li> <li><a href="https://github.com/L4XB"><code>@L4XB</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5071">PrefectHQ/fastmcp#5071</a></li> <li><a href="https://github.com/asts-top"><code>@asts-top</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5097">PrefectHQ/fastmcp#5097</a></li> <li><a href="https://github.com/pentaoa"><code>@pentaoa</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5093">PrefectHQ/fastmcp#5093</a></li> <li><a href="https://github.com/BlueX888"><code>@BlueX888</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5117">PrefectHQ/fastmcp#5117</a></li> <li><a href="https://github.com/nandanadileep"><code>@nandanadileep</code></a> made their first contribution in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5119">PrefectHQ/fastmcp#5119</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx">fastmcp's changelog</a>.</em></p> <blockquote> <hr /> <h2>title: "Changelog" icon: "list-check" rss: true tag: NEW</h2> <!-- raw HTML omitted --> <p><strong><a href="https://github.com/PrefectHQ/fastmcp/releases/tag/v4.0.5">v4.0.5: No Country for Loose Ints</a></strong></p> <p>Tool parameters declared strict with <code>Field(strict=True)</code>, <code>StrictInt</code>, or a strict model config are honored again, on both direct calls and task submission. Since the SDK v2 migration the server's lax default overrode them and silently coerced values.</p> <h3>Security 🔒</h3> <ul> <li>Add regression test for the unconfigured ID-JAG guard by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5146">#5146</a></li> </ul> <h3>Fixes 🐞</h3> <ul> <li>Preserve field-level strict validation in lax mode by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5141">#5141</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/PrefectHQ/fastmcp/compare/v4.0.4...v4.0.5">v4.0.4...v4.0.5</a></p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <p><strong><a href="https://github.com/PrefectHQ/fastmcp/releases/tag/v4.0.4">v4.0.4: Here Be No Dragons</a></strong></p> <p>OpenAPI request bodies get most of the attention in this patch: multipart string arrays are sent as repeated fields, whole-body arguments no longer clobber same-named HTTP parameters, dictionary bodies and raw content types survive intact, and JSON scalar bodies are encoded. On the auth side, OAuthProxy rejects ID-JAG tokens unless identity assertion is configured and refuses non-positive upstream token expiries. Clients now follow empty pagination cursors and servers reject malformed ones.</p> <h3>Enhancements ✨</h3> <ul> <li>Refresh the smart-home example with Hue V2 and native effects by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5009">#5009</a></li> <li>Update CodeMode for pydantic-monty 0.0.21 by <a href="https://github.com/strawgate"><code>@strawgate</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5033">#5033</a></li> <li>Keep linked contributor PRs open while awaiting assignment by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5048">#5048</a></li> <li>Reduce redundant CI execution while preserving required checks by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5049">#5049</a></li> <li>Share and streamline repository skills by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5013">#5013</a></li> <li>Support anthropic 1.x alongside 0.x by <a href="https://github.com/tdsmith"><code>@tdsmith</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5066">#5066</a></li> <li>renovate: cap routine PRs at 5 concurrent and 5 per hour by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5110">#5110</a></li> <li>Give docs quality checks a corpus-wide timeout by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5109">#5109</a></li> <li>Resolve ty 0.0.79 warnings from upgrade checks by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5123">#5123</a></li> </ul> <h3>Security 🔒</h3> <ul> <li>Fix <a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5115">#5115</a>: OAuthProxy accepts self-contained ID-JAG tokens even when identity_ass by <a href="https://github.com/nandanadileep"><code>@nandanadileep</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5119">#5119</a></li> </ul> <h3>Fixes 🐞</h3> <ul> <li>Fix upgrade checks for the M2M storage warning test by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5040">#5040</a></li> <li>Fix OpenAPI query explode defaults by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5065">#5065</a></li> <li>fix(openapi): encode JSON scalar request bodies by <a href="https://github.com/Gonghan-Princess"><code>@Gonghan-Princess</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5052">#5052</a></li> <li>fix(versions): deterministic meta.fastmcp.versions ordering by <a href="https://github.com/feiiiiii5"><code>@feiiiiii5</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4880">#4880</a></li> <li>Parse skills frontmatter with yaml.safe_load, falling back to the line parser by <a href="https://github.com/vishnujayvel"><code>@vishnujayvel</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4701">#4701</a></li> <li>Keep client data out of tool validation warnings by <a href="https://github.com/zzstoatzz"><code>@zzstoatzz</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5106">#5106</a></li> <li>fix: follow empty pagination cursors in client lists by <a href="https://github.com/sicauzxl"><code>@sicauzxl</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/5026">#5026</a></li> <li>fix: reject non-positive upstream token expiry by <a href="https://github.com/sui-ni2"><code>@sui-ni2</code></a> in <a href="https://redirect.github.com/PrefectHQ/fastmcp/pull/4849">#4849</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/490049f0f9742922f4af16c937db0b898dc9802b"><code>490049f</code></a> docs: add v4.0.4 changelog entries (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5127">#5127</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/ef851de3fed3ae2947b9b440caf096e367d42d1f"><code>ef851de</code></a> chore: Update SDK documentation (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5126">#5126</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/7ae9d6ea59d345d23818ea37eee058edaa6efe4b"><code>7ae9d6e</code></a> chore: Update SDK documentation (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5043">#5043</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/73ad4abd1a636afb14b6edb34ff47ed80b999440"><code>73ad4ab</code></a> ty: resolve warnings surfaced by ty 0.0.79 (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5123">#5123</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/a01f83520286a977c9a93ca540c6709869af28eb"><code>a01f835</code></a> Fix <a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5115">#5115</a>: OAuthProxy accepts self-contained ID-JAG tokens even when iden (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5">#5</a>...</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/f21e00dd47b4225a51807e457f8f90df98ff1e5c"><code>f21e00d</code></a> Fix multipart string-array default encoding (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5121">#5121</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/f044b9dba4c085e3a5bef4df655f6dbc9c4fda77"><code>f044b9d</code></a> fix(local-provider): apply transforms in get_tasks (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5117">#5117</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/e0129eaa6fb3825e2cfc6387cda0e8bcebb3436b"><code>e0129ea</code></a> fix(openapi): preserve HTTP parameters that match whole-body names (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5113">#5113</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/258d5ef3d61fc6ad51fc6c3581f5508f39fc36eb"><code>258d5ef</code></a> Give docs quality checks a corpus-wide timeout (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5109">#5109</a>)</li> <li><a href="https://github.com/PrefectHQ/fastmcp/commit/119339e90f804388ea939bcc761fce54e3b1d4e7"><code>119339e</code></a> Preserve OpenAPI raw body content types (<a href="https://redirect.github.com/PrefectHQ/fastmcp/issues/5093">#5093</a>)</li> <li>Additional commits viewable in <a href="https://github.com/PrefectHQ/fastmcp/compare/v3.4.7...v4.0.4">compare view</a></li> </ul> </details> <br /> Updates `pydantic-ai` from 2.37.0 to 2.43.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic-ai/releases">pydantic-ai's releases</a>.</em></p> <blockquote> <h2>v2.43.0 (2026-09-11)</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>🚀 Features</h3> <ul> <li>Add a first-run banner describing the run, and open <code>clai</code> sessions with it by <a href="https://github.com/DouweM"><code>@DouweM</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/7447">pydantic/pydantic-ai#7447</a></li> </ul> <h3>🐛 Bug Fixes</h3> <ul> <li>Preserve text part boundaries after tool calls in <code>OpenAIChatModel</code> by <a href="https://github.com/KaranJayakumar"><code>@KaranJayakumar</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8235">pydantic/pydantic-ai#8235</a></li> <li>fix(temporal): key tool opt-out checks on operation kind, not an MCP import by <a href="https://github.com/adtyavrdhn"><code>@adtyavrdhn</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8257">pydantic/pydantic-ai#8257</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/KaranJayakumar"><code>@KaranJayakumar</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8235">pydantic/pydantic-ai#8235</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic-ai/compare/v2.42.0...v2.43.0">https://github.com/pydantic/pydantic-ai/compare/v2.42.0...v2.43.0</a></p> <h2>v2.42.0 (2026-09-08)</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>⚠️ Compatibility Notes</h3> <ul> <li>Reject invalid <code>DeferredToolResults.approvals</code> values by <a href="https://github.com/adtyavrdhn"><code>@adtyavrdhn</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8081">pydantic/pydantic-ai#8081</a></li> </ul> <h3>🚀 Features</h3> <ul> <li>Add a <code>GitHubCopilotProvider</code> for GitHub Copilot's OpenAI-compatible API by <a href="https://github.com/dsfaccini"><code>@dsfaccini</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8059">pydantic/pydantic-ai#8059</a></li> </ul> <h3>🐛 Bug Fixes</h3> <ul> <li>Honor <code>anthropic_disallows_sampling_settings</code> in <code>BedrockConverseModel</code> by <a href="https://github.com/rscholz98"><code>@rscholz98</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/7961">pydantic/pydantic-ai#7961</a></li> <li>Resolve non-object <code>$ref</code> definitions inline in code-mode function signatures by <a href="https://github.com/apps/pydanty"><code>@pydanty</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8056">pydantic/pydantic-ai#8056</a></li> <li>Validate <code>ToolReturnContent</code> without a Python call per JSON node by <a href="https://github.com/dsfaccini"><code>@dsfaccini</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/7823">pydantic/pydantic-ai#7823</a></li> <li>Preserve Anthropic recovery across normalized history by <a href="https://github.com/dsfaccini"><code>@dsfaccini</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8040">pydantic/pydantic-ai#8040</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/StarsExpress"><code>@StarsExpress</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8155">pydantic/pydantic-ai#8155</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic-ai/compare/v2.41.0...v2.42.0">https://github.com/pydantic/pydantic-ai/compare/v2.41.0...v2.42.0</a></p> <h2>v2.41.0 (2026-09-07)</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <h3>🚀 Features</h3> <ul> <li>Deprecate <code>fallback_model</code> in favor of <code>fallback_subagent_model</code> on <code>ImageGeneration</code> and <code>XSearch</code> by <a href="https://github.com/dsfaccini"><code>@dsfaccini</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8077">pydantic/pydantic-ai#8077</a></li> <li>Add <code>openai-codex</code> provider for ChatGPT/Codex subscription authentication by <a href="https://github.com/mpfaffenberger"><code>@mpfaffenberger</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/7769">pydantic/pydantic-ai#7769</a></li> <li>Add a direct image generation API with <code>ImageGenerator</code> by <a href="https://github.com/EgonFerri"><code>@EgonFerri</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/5357">pydantic/pydantic-ai#5357</a></li> </ul> <h3>🐛 Bug Fixes</h3> <ul> <li>Report Anthropic native web searches in <code>RequestUsage.details</code> and price them in <code>cost</code> by <a href="https://github.com/adtyavrdhn"><code>@adtyavrdhn</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8169">pydantic/pydantic-ai#8169</a></li> <li>Wrap botocore transport errors in <code>ModelAPIError</code> in <code>BedrockConverseModel</code> by <a href="https://github.com/kimnamu"><code>@kimnamu</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8131">pydantic/pydantic-ai#8131</a></li> <li>Snap Gemini thinking levels to the nearest supported level by <a href="https://github.com/dsfaccini"><code>@dsfaccini</code></a> in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8165">pydantic/pydantic-ai#8165</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/kimnamu"><code>@kimnamu</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/8131">pydantic/pydantic-ai#8131</a></li> <li><a href="https://github.com/EgonFerri"><code>@EgonFerri</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic-ai/pull/5357">pydantic/pydantic-ai#5357</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic-ai/commit/86b250f3d5e26f4cb25617a82904c720f690193d"><code>86b250f</code></a> Add a Comparisons section covering 10 agent frameworks (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8260">#8260</a>)</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/fbd2beb0b549dcfa2e0bca3a2ac549093e51ea64"><code>fbd2beb</code></a> Add a first-run banner describing the run, and open <code>clai</code> sessions with it (...</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/f6afee204181ad6514e3e34f2296c925063e5adf"><code>f6afee2</code></a> fix(temporal): key tool opt-out checks on operation kind, not an MCP import (...</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/f998089a30c03c8df9ed6da98353fa4c225a9770"><code>f998089</code></a> Preserve text part boundaries after tool calls in <code>OpenAIChatModel</code> (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8235">#8235</a>)</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/23a48cf2f9fe906029342852af9d10853f6d798d"><code>23a48cf</code></a> Fix realtime and durable-execution skill guidance (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8086">#8086</a>)</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/cda77a79cdfde33cca6491d7f4e1b5f63facd57b"><code>cda77a7</code></a> Revert the <code>instrumenting-pydantic-ai</code> skill (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8267">#8267</a>)</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/5aecb14f3eac5c9cbbab9dba676779be7132ad66"><code>5aecb14</code></a> Add an <code>instrumenting-pydantic-ai</code> skill for the first-run banner to point at...</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/a2f32722d9a95fb3c50d8191bb73e046f15396ad"><code>a2f3272</code></a> Use client ID for docs workflows (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8256">#8256</a>)</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/5facbe5dbc57b3384d265600454dd4db404304e7"><code>5facbe5</code></a> Raise the JSON call budget above the noise it flakes on (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8245">#8245</a>)</li> <li><a href="https://github.com/pydantic/pydantic-ai/commit/0ec8a5dcc9c30e82e91d63af20e5d92f1456fac5"><code>0ec8a5d</code></a> Preserve Anthropic recovery across normalized history (<a href="https://redirect.github.com/pydantic/pydantic-ai/issues/8040">#8040</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic-ai/compare/v2.37.0...v2.43.0">compare view</a></li> </ul> </details> <br /> Updates `rapidfuzz` from 3.14.5 to 3.14.6 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rapidfuzz/RapidFuzz/releases">rapidfuzz's releases</a>.</em></p> <blockquote> <h2>Release 3.14.6</h2> <h2>Fixed</h2> <ul> <li>fix some divergences in the pure Python fallback</li> <li>fix compatibility with new Cython versions</li> <li>fixed potential out of bound access inside Editops.remove_subsequence</li> <li>fixed handling python fallback implementation of Editops.remove_subsequence</li> </ul> <h2>Removed</h2> <ul> <li>dropped support for Python 3.10</li> <li>dropped wheels for experimental Python 3.13 free threaded</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rapidfuzz/RapidFuzz/blob/main/CHANGELOG.rst">rapidfuzz's changelog</a>.</em></p> <blockquote> <h2>Changelog</h2> <p>[3.14.6] - 2026-08-30 ^^^^^^^^^^^^^^^^^^^^^ Fixed</p> <pre><code>* fix some divergences in the pure Python fallback * fix compatibility with new Cython versions * fixed potential out of bound access inside Editops.remove_subsequence * fixed handling python fallback implementation of Editops.remove_subsequence <p>Removed </code></pre></p> <ul> <li>dropped support for Python 3.10</li> <li>dropped wheels for experimental Python 3.13 free threaded</li> </ul> <p>[3.14.5] - 2026-04-07 ^^^^^^^^^^^^^^^^^^^^^ Fixed</p> <pre><code>* fix release ci attempting to upload a pyodide wheel <p>[3.14.4] - 2026-04-06 ^^^^^^^^^^^^^^^^^^^^^ Added </code></pre></p> <ul> <li>add risc64 wheels</li> <li>add support for taskflow 4.0.0</li> </ul> <p>Changed</p> <pre><code>* upgrade to ``Cython==3.2.4``. <p>Fixed</p> <pre><code>* fix type hints for extractOne when no score_cutoff is provided [3.14.3] - 2025-11-01 ^^^^^^^^^^^^^^^^^^^^^ Fixed </code></pre> <ul> <li>add missing pypy and freethreaded linux wheels</li> </ul> <p>Removed </code></pre></p> <ul> <li>drop s390x and ppc64le wheels since they are virtually unused and require extremely long to build under emulation</li> </ul> <p>[3.14.2] - 2025-10-30 ^^^^^^^^^^^^^^^^^^^^^</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/d1b4a183f9ee445134989f4ebbf1e4acfacd4ed7"><code>d1b4a18</code></a> fix cython call</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/f7be71b006ebc7bfeb836a18b7e33fc7412f699b"><code>f7be71b</code></a> fix typo</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/3199c87e7309ed6a2779e658dbddcfc0ba654963"><code>3199c87</code></a> fix version tag</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/7b57e516d59948d4d7e349e88ffafd99668aa2d2"><code>7b57e51</code></a> update date</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/15e68d7b195bca227e9992efe928a01d40bd3553"><code>15e68d7</code></a> update rapidfuzz-cpp</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/b637f9f689ef12749d97be87056704cfbc4c2d7c"><code>b637f9f</code></a> don't hand out references to internal elements</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/868a451a6eb8b111fd97bbd3b3413fcf14ee88e4"><code>868a451</code></a> fix Editops.remove_subsequence</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/83b8b8468f3a0bef8fbee0a118c6ad85df325ac8"><code>83b8b84</code></a> fix compatibility with new Cython versions</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/24f2ac526bf1ec91db90e7ff02e52816e6bcb603"><code>24f2ac5</code></a> Bump pypa/cibuildwheel from 4.1.1 to 4.2.0 in the github-actions group</li> <li><a href="https://github.com/rapidfuzz/RapidFuzz/commit/03a5137851aab675b430389235d73bb18873dafe"><code>03a5137</code></a> Bump pypa/gh-action-pypi-publish in the github-actions group</li> <li>Additional commits viewable in <a href="https://github.com/rapidfuzz/RapidFuzz/compare/v3.14.5...v3.14.6">compare view</a></li> </ul> </details> <br /> Updates `uvicorn` from 0.52.4 to 0.53.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/Kludex/uvicorn/releases">uvicorn's releases</a>.</em></p> <blockquote> <h2>Version 0.53.0</h2> <h2>🌐 Opt-in HTTP/2 support</h2> <p><code>uvicorn</code> 0.53.0 adds experimental HTTP/2 through <code>zttp</code>, alongside a new <code>zuvloop</code> integration and connection-handling improvements.</p> <pre lang="console"><code>uv add uvicorn==0.53.0 </code></pre> <ul> <li><strong>Serve HTTP/1.1 and HTTP/2 with <code>zttp</code></strong> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/2982">#2982</a>, <a href="https://redirect.github.com/Kludex/uvicorn/pull/3101">#3101</a>). Install <code>zttp</code>, then enable HTTP/2 with <code>--http zttp --http2</code>. Uvicorn negotiates HTTP/2 over TLS with ALPN and supports cleartext prior knowledge.</li> <li><strong>HTTP/2 remains experimental.</strong> Upgrade-based h2c and WebSockets over HTTP/2 are not supported.</li> </ul> <h2>⚙️ More event loop choice</h2> <ul> <li><strong>Run Uvicorn with <code>zuvloop</code></strong> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3104">#3104</a>). Install <code>zuvloop</code> separately and select it explicitly with <code>--loop zuvloop</code> on CPython 3.14 or newer.</li> </ul> <h2>🛡️ More reliable connections and proxies</h2> <ul> <li><strong>Honor <code>Connection: close</code> token lists</strong> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3103">#3103</a>). Uvicorn now parses comma-separated tokens case-insensitively across HTTP implementations.</li> <li><strong>Trust IPv6 loopback proxies by default</strong> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3119">#3119</a>). The default <code>FORWARDED_ALLOW_IPS</code> value now includes <code>::1</code>.</li> <li><strong>Keep upgraded WebSockets alive</strong> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3107">#3107</a>). Uvicorn cancels the HTTP keep-alive timer when the connection becomes a WebSocket.</li> </ul> <p><strong>Full changelog:</strong> <a href="https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0">0.52.4...0.53.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md">uvicorn's changelog</a>.</em></p> <blockquote> <h2>0.53.0 (September 14, 2026)</h2> <p>This release adds experimental HTTP/2 support through <code>zttp</code>. Enable it with <code>--http zttp --http2</code>. Upgrade-based h2c and WebSockets over HTTP/2 are not supported.</p> <h3>Added</h3> <ul> <li>Add experimental HTTP/2 support through <code>zttp</code> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/2982">#2982</a>, <a href="https://redirect.github.com/Kludex/uvicorn/pull/3101">#3101</a>)</li> <li>Add support for <code>zuvloop</code> (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3104">#3104</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Handle comma-separated, case-insensitive <code>Connection: close</code> tokens across HTTP implementations (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3103">#3103</a>)</li> <li>Trust IPv6 loopback in the default <code>FORWARDED_ALLOW_IPS</code> value (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3119">#3119</a>)</li> <li>Cancel the HTTP keep-alive timer when upgrading to WebSocket (<a href="https://redirect.github.com/Kludex/uvicorn/pull/3107">#3107</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee"><code>421708f</code></a> Version 0.53.0 (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3136">#3136</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23"><code>f1a1bff</code></a> Unset the keep-alive timer when upgrading to WebSocket (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3107">#3107</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc"><code>63971ed</code></a> Document HTTP/2 support (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3130">#3130</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a"><code>7d1a005</code></a> Remove race from multiprocess health check test (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3128">#3128</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9"><code>5ac6265</code></a> Add ::1 to FORWARDED_ALLOW_IPS (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3119">#3119</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/098b206ff7b01098561956ff4e7746d05e02acc6"><code>098b206</code></a> Remove timing race from SIGHUP supervisor test (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3127">#3127</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/968f15e5d09df5f6b8959975f18687b9d755862d"><code>968f15e</code></a> chore(deps): bump the github-actions group with 4 updates (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3113">#3113</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/7d4c08cce9eeabf64695c326b0e45c47c6a0337b"><code>7d4c08c</code></a> chore(deps): bump the python-packages group across 1 directory with 11 update...</li> <li><a href="https://github.com/Kludex/uvicorn/commit/fe528a480c0aec3aea3ee8ef13251b5216c47ae9"><code>fe528a4</code></a> Require explicit opt-in for zttp HTTP/2 (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3101">#3101</a>)</li> <li><a href="https://github.com/Kludex/uvicorn/commit/fa324a415364563cf45908966435e2480a6b46bf"><code>fa324a4</code></a> chore(deps-dev): bump httpx2 from 2.10.0 to 2.12.0 (<a href="https://redirect.github.com/Kludex/uvicorn/issues/3121">#3121</a>)</li> <li>Additional commits viewable in <a href="https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0">compare view</a></li> </ul> </details> <br /> Updates `basedpyright` from 1.39.10 to 1.40.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/detachhead/basedpyright/releases">basedpyright's releases</a>.</em></p> <blockquote> <h2>v1.40.1 (pyright 1.1.414)</h2> <h2>What's Changed</h2> <ul> <li>Merge 1.1.414 by <a href="https://github.com/DetachHead"><code>@DetachHead</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1883">DetachHead/basedpyright#1883</a></li> <li>fix multi-line display of indented lines in builtin docstrings by <a href="https://github.com/tommyming"><code>@tommyming</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1882">DetachHead/basedpyright#1882</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/DetachHead/basedpyright/compare/v1.40.0...v1.40.1">https://github.com/DetachHead/basedpyright/compare/v1.40.0...v1.40.1</a></p> <h2>v1.40.0 (pyright 1.1.412)</h2> <h2>What's Changed</h2> <ul> <li>drop support for python 3.8 and 3.9 in the pypi package, which are EOL by <a href="https://github.com/DetachHead"><code>@DetachHead</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1876">DetachHead/basedpyright#1876</a> <ul> <li>users who still need to use unsupported Python versions can still install <a href="https://npmjs.com/basedpyright">the basedpyright npm package</a></li> </ul> </li> <li>fix rendering of newlines for builtin docstrings by <a href="https://github.com/tommyming"><code>@tommyming</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1871">DetachHead/basedpyright#1871</a></li> <li>migrate the docs site to zensical by <a href="https://github.com/DetachHead"><code>@DetachHead</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1795">DetachHead/basedpyright#1795</a></li> <li>move locale env variable docs to the more appropriate "Environment Variables" page by <a href="https://github.com/DetachHead"><code>@DetachHead</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1878">DetachHead/basedpyright#1878</a></li> <li>Support new Python Environments API when enabled by <a href="https://github.com/Weidav"><code>@Weidav</code></a> in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1860">DetachHead/basedpyright#1860</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/tommyming"><code>@tommyming</code></a> made their first contribution in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1871">DetachHead/basedpyright#1871</a></li> <li><a href="https://github.com/Weidav"><code>@Weidav</code></a> made their first contribution in <a href="https://redirect.github.com/DetachHead/basedpyright/pull/1860">DetachHead/basedpyright#1860</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/DetachHead/basedpyright/compare/v1.39.10...v1.40.0">https://github.com/DetachHead/basedpyright/compare/v1.39.10...v1.40.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/DetachHead/basedpyright/commit/e7fca69a08abb7cb28fc6bc5e30e24a387066694"><code>e7fca69</code></a> 1.40.1</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/f7b6ad01edff0b53cd523a176c99ba62bf44156e"><code>f7b6ad0</code></a> add checks when there are multiline indents for doc strings, update (<a href="https://redirect.github.com/detachhead/basedpyright/issues/1882">#1882</a>)</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/1bc4879cb2a1cffea9ec6009eaa290b301ba4414"><code>1bc4879</code></a> fix broken docs links</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/845bfe14f2862b3747c8146ebd53bef7644368e8"><code>845bfe1</code></a> move and baseline basedpyright errors in new build scripts from upstream</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/a9189ef5e15182e0627dd5a0f28fd2cede4f2bbc"><code>a9189ef</code></a> prettier fix</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/756bfaa06709cd32c100a3fe3d15156ff3faef6a"><code>756bfaa</code></a> fix <code>build:extension:dev</code> script</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/a7a2efdab70c919436ff593bdbd8c3b4acaa96b0"><code>a7a2efd</code></a> syncpack fix</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/5f6749f16bc38608fbf6f0d48b216320676996b8"><code>5f6749f</code></a> fix tests</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/bb9b24fddf007c547baafbd013270f2a6cb7a2cb"><code>bb9b24f</code></a> fix zizmor errors in new workflows from upstream</li> <li><a href="https://github.com/DetachHead/basedpyright/commit/b8ccd0e8cd6cc79be5158e7c4ec2691d9c332594"><code>b8ccd0e</code></a> fix compile errors from merge</li> <li>Additional commits viewable in <a href="https://github.com/detachhead/basedpyright/compare/v1.39.10...v1.40.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-env` from 1.7.0 to 1.7.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-env/releases">pytest-env's releases</a>.</em></p> <blockquote> <h2>1.7.1</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>🔧 chore: batch dependency updates weekly on Tuesday by <a href="https://github.com/gaborbernat"><code>@gaborbernat</code></a> in <a href="https://redirect.github.com/pytest-dev/pytest-env/pull/256">pytest-dev/pytest-env#256</a></li> <li>Keep pyproject environment settings visible beside native pytest configuration by <a href="https://github.com/oyeong011"><code>@oyeong011</code></a> in <a href="https://redirect.github.com/pytest-dev/pytest-env/pull/260">pytest-dev/pytest-env#260</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/oyeong011"><code>@oyeong011</code></a> made their first contribution in <a href="https://redirect.github.com/pytest-dev/pytest-env/pull/260">pytest-dev/pytest-env#260</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pytest-dev/pytest-env/compare/1.7.0...1.7.1">https://github.com/pytest-dev/pytest-env/compare/1.7.0...1.7.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-env/commit/7ddd152601728be7635fb5063ac5eec70a044a1c"><code>7ddd152</code></a> Keep pyproject environment settings visible beside native pytest configuratio...</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/29288479fe1514df92c1276928b6f94ccdd2e947"><code>2928847</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/259">#259</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/15fcc548c99cfb6d756857c0057091eb88b4b115"><code>15fcc54</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/258">#258</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/e4e515d7c57a546194a66481e5f2b5ca68f7fbc5"><code>e4e515d</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/257">#257</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/fc6704a04d43f53698248da12f670ca2307ca182"><code>fc6704a</code></a> 🔧 chore: batch dependency updates weekly on Tuesday (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/256">#256</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/6161609f748582179c0f6b88f4dfc6bca0f5cd6c"><code>6161609</code></a> build(deps): bump astral-sh/setup-uv from 10.0.0 to 10.0.1 (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/255">#255</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/42e277c6aa49a4807f8bf7ee465cc6ac25017043"><code>42e277c</code></a> build(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.0 (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/254">#254</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/f0570543703639d1de589d13a86dcd752ffa2185"><code>f057054</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/253">#253</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/ce98a5efd0d9f23867821570ca3b0bdaaf89a4c4"><code>ce98a5e</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/252">#252</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-env/commit/b3676c72a1287be6c1a19aa5e8eafd0b82be7376"><code>b3676c7</code></a> build(deps): bump pypa/gh-action-pypi-publish from 1.14.1 to 1.14.2 (<a href="https://redirect.github.com/pytest-dev/pytest-env/issues/251">#251</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-env/compare/1.7.0...1.7.1">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](https://github.com/pytest-dev/pytest-randomly/issues/746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](https://github.com/pytest-dev/pytest-randomly/issues/701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](https://github.com/pytest-dev/pytest-randomly/issues/746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](https://github.com/pytest-dev/pytest-randomly/issues/735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">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> <!-- pr-review:summary:start --> Updates seven direct dependencies, including FastMCP 4, and synchronizes the hook environments with the project lock. Integrated current main and updated the OAuth registration test to assert FastMCP’s public-client response (auth method none and no client secret), confirmed against the installed upstream implementation. All 287 integrated tests and local lint/type checks pass; deployment will also verify the existing authenticated MCP connection and private API. <!-- pr-review:summary:end --> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Will Garside <worgarside@gmail.com>
jmsmkn
pushed a commit
to DIAGNijmegen/rse-sagemaker-shim
that referenced
this pull request
Sep 22, 2026
Bumps the python group with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [fastapi](https://github.com/fastapi/fastapi) | `0.136.3` | `0.141.1`
|
| [uvicorn](https://github.com/Kludex/uvicorn) | `0.49.0` | `0.53.0` |
| [click](https://github.com/pallets/click) | `8.4.1` | `8.5.0` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.0.3` | `9.1.1` |
| [docker](https://github.com/docker/docker-py) | `7.1.0` | `7.2.0` |
| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) |
`4.1.0` | `5.0.0` |
| [pyinstaller](https://github.com/pyinstaller/pyinstaller) | `6.20.0` |
`6.22.3` |
Updates `fastapi` from 0.136.3 to 0.141.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fastapi/fastapi/releases">fastapi's
releases</a>.</em></p>
<blockquote>
<h2>0.141.1</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix support for background tasks and headers from dependencies in
<code>app.frontend()</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16105">#16105</a>
by <a
href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>📝 Document <code>FASTAPI_ENV</code> in FastAPI CLI guide. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16104">#16104</a>
by <a
href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li>
</ul>
<h2>0.141.0</h2>
<h3>Features</h3>
<ul>
<li>✨ Add <code>app.frontend(check_dir="auto")</code>, to make
local development more convenient with <code>fastapi dev</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16102">#16102</a>
by <a
href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li>
</ul>
<h2>0.140.13</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix <code>status_code</code> being ignored for SSE and JSONL
streaming endpoints. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/15937">#15937</a>
by <a
href="https://github.com/SAURABHSALVE"><code>@SAURABHSALVE</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>📝 Fix <code>format_sse_event</code> docstring rendering of
<code>\n\n</code> terminator. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/15613">#15613</a>
by <a
href="https://github.com/AshNicolus"><code>@AshNicolus</code></a>.</li>
<li>📝 Add API reference page for fastapi.sse. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/15930">#15930</a>
by <a
href="https://github.com/SAURABHSALVE"><code>@SAURABHSALVE</code></a>.</li>
</ul>
<h2>0.140.12</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix line splitting in <code>format_sse_event</code> to comply with
SSE spec. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/15515">#15515</a>
by <a
href="https://github.com/Zawwarsami16"><code>@Zawwarsami16</code></a>.</li>
</ul>
<h2>0.140.11</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix <code>response_model_*</code> params ignored for non-generator
endpoints with <code>Iterable[..]</code> return type. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/15093">#15093</a>
by <a
href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li>
</ul>
<h2>0.140.10</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix handling sequences with nested Annotated types. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/14874">#14874</a>
by <a
href="https://github.com/YuriiMotov"><code>@YuriiMotov</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>🐛 Accept any base test failure as regression. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16092">#16092</a>
by <a
href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li>
<li>🐛 Preserve pytest exit code in regression check. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16091">#16091</a>
by <a
href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li>
<li>✅ Test PR regressions against base code. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16090">#16090</a>
by <a
href="https://github.com/tiangolo"><code>@tiangolo</code></a>.</li>
</ul>
<h2>0.140.9</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Fix <code>exclude_defaults</code> not propagated to dict keys and
values in <code>jsonable_encoder</code>. PR <a
href="https://redirect.github.com/fastapi/fastapi/pull/16043">#16043</a>
by <a href="https://github.com/MBGrao"><code>@MBGrao</code></a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fastapi/fastapi/commit/95f8322ee1dcda7ceace7b1c4f6c9915b36d748f"><code>95f8322</code></a>
🔖 Release version 0.141.1 (<a
href="https://redirect.github.com/fastapi/fastapi/issues/16106">#16106</a>)</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/f137944c435cff4e4b30ea7d12855ea88ddb868c"><code>f137944</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/d62354434b2e508fe89024213b220ca8e67dea5e"><code>d623544</code></a>
🐛 Fix support for background tasks and headers from dependencies in
`app.fron...</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/1d211b9c1009d577f39fa2b19b10d9a93a72a0ed"><code>1d211b9</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/8a1f8768411e62093e70ce142ea10863a485643c"><code>8a1f876</code></a>
📝 Document <code>FASTAPI_ENV</code> in FastAPI CLI guide (<a
href="https://redirect.github.com/fastapi/fastapi/issues/16104">#16104</a>)</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/c7e7b651d6946c07cc9f675f39c9501d08319e57"><code>c7e7b65</code></a>
🔖 Release version 0.141.0 (<a
href="https://redirect.github.com/fastapi/fastapi/issues/16103">#16103</a>)</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/6bceb84053eb2405e9c000aad30ea13367b5ee32"><code>6bceb84</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/5429fed84e84e32672c25a953eca3429b841ce90"><code>5429fed</code></a>
✨ Add <code>app.frontend(check_dir="auto")</code>, to make
local development more conven...</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/628663f4f899c465da423bce681c7adf9a218948"><code>628663f</code></a>
🔖 Release version 0.140.13 (<a
href="https://redirect.github.com/fastapi/fastapi/issues/16096">#16096</a>)</li>
<li><a
href="https://github.com/fastapi/fastapi/commit/0b54fd00273019034dd30b120ac842e65d80690e"><code>0b54fd0</code></a>
📝 Update release notes</li>
<li>Additional commits viewable in <a
href="https://github.com/fastapi/fastapi/compare/0.136.3...0.141.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `uvicorn` from 0.49.0 to 0.53.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/uvicorn/releases">uvicorn's
releases</a>.</em></p>
<blockquote>
<h2>Version 0.53.0</h2>
<h2>🌐 Opt-in HTTP/2 support</h2>
<p><code>uvicorn</code> 0.53.0 adds experimental HTTP/2 through
<code>zttp</code>, alongside a new <code>zuvloop</code> integration and
connection-handling improvements.</p>
<pre lang="console"><code>uv add uvicorn==0.53.0
</code></pre>
<ul>
<li><strong>Serve HTTP/1.1 and HTTP/2 with <code>zttp</code></strong>
(<a
href="https://redirect.github.com/Kludex/uvicorn/pull/2982">#2982</a>,
<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3101">#3101</a>).
Install <code>zttp</code>, then enable HTTP/2 with <code>--http zttp
--http2</code>. Uvicorn negotiates HTTP/2 over TLS with ALPN and
supports cleartext prior knowledge.</li>
<li><strong>HTTP/2 remains experimental.</strong> Upgrade-based h2c and
WebSockets over HTTP/2 are not supported.</li>
</ul>
<h2>⚙️ More event loop choice</h2>
<ul>
<li><strong>Run Uvicorn with <code>zuvloop</code></strong> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3104">#3104</a>).
Install <code>zuvloop</code> separately and select it explicitly with
<code>--loop zuvloop</code> on CPython 3.14 or newer.</li>
</ul>
<h2>🛡️ More reliable connections and proxies</h2>
<ul>
<li><strong>Honor <code>Connection: close</code> token lists</strong>
(<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3103">#3103</a>).
Uvicorn now parses comma-separated tokens case-insensitively across HTTP
implementations.</li>
<li><strong>Trust IPv6 loopback proxies by default</strong> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3119">#3119</a>).
The default <code>FORWARDED_ALLOW_IPS</code> value now includes
<code>::1</code>.</li>
<li><strong>Keep upgraded WebSockets alive</strong> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3107">#3107</a>).
Uvicorn cancels the HTTP keep-alive timer when the connection becomes a
WebSocket.</li>
</ul>
<p><strong>Full changelog:</strong> <a
href="https://github.com/Kludex/uvicorn/compare/0.52.4...0.53.0">0.52.4...0.53.0</a></p>
<h2>Version 0.52.4</h2>
<h3>Fixed</h3>
<ul>
<li>Remove duplicate <code>Date</code> headers from accepted WebSocket
handshakes with <code>websockets-sansio</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3078">#3078</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4">https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4</a></p>
<h2>Version 0.52.3</h2>
<h3>Changed</h3>
<ul>
<li>Update <code>zttp</code> to 0.0.24 and use its combined receive
path, improving HTTP/1.1 request parsing performance (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3067">#3067</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.52.2...0.52.3">https://github.com/Kludex/uvicorn/compare/0.52.2...0.52.3</a></p>
<h2>Version 0.52.2</h2>
<h3>Fixed</h3>
<ul>
<li>Update <code>zttp</code> to 0.0.22, fixing bodyless request receives
and improving HTTP/1 request parsing performance (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3063">#3063</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.52.1...0.52.2">https://github.com/Kludex/uvicorn/compare/0.52.1...0.52.2</a></p>
<h2>Version 0.52.1</h2>
<h3>Fixed</h3>
<ul>
<li>Complete the closing handshake on server-initiated WebSocket closes
in the <code>websockets-sansio</code> and <code>wsproto</code>
implementations, waiting for the client's close reply with a 10 second
timeout instead of resetting the connection (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3053">#3053</a>)</li>
<li>Add missing write flow control to the <code>websockets-sansio</code>
implementation, preventing data truncation on server-initiated closes
with large in-flight payloads (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3048">#3048</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md">uvicorn's
changelog</a>.</em></p>
<blockquote>
<h2>0.53.0 (September 14, 2026)</h2>
<p>This release adds experimental HTTP/2 support through
<code>zttp</code>. Enable it with <code>--http zttp --http2</code>.
Upgrade-based h2c and WebSockets over HTTP/2 are not supported.</p>
<h3>Added</h3>
<ul>
<li>Add experimental HTTP/2 support through <code>zttp</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/2982">#2982</a>,
<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3101">#3101</a>)</li>
<li>Add support for <code>zuvloop</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3104">#3104</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handle comma-separated, case-insensitive <code>Connection:
close</code> tokens across HTTP implementations (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3103">#3103</a>)</li>
<li>Trust IPv6 loopback in the default <code>FORWARDED_ALLOW_IPS</code>
value (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3119">#3119</a>)</li>
<li>Cancel the HTTP keep-alive timer when upgrading to WebSocket (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3107">#3107</a>)</li>
</ul>
<h2>0.52.4 (August 18, 2026)</h2>
<h3>Fixed</h3>
<ul>
<li>Remove duplicate <code>Date</code> headers from accepted WebSocket
handshakes with <code>websockets-sansio</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3078">#3078</a>)</li>
</ul>
<h2>0.52.3 (August 13, 2026)</h2>
<h3>Changed</h3>
<ul>
<li>Update <code>zttp</code> to 0.0.24 and use its combined receive
path, improving HTTP/1.1 request parsing performance (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3067">#3067</a>)</li>
</ul>
<h2>0.52.2 (August 13, 2026)</h2>
<h3>Fixed</h3>
<ul>
<li>Update <code>zttp</code> to 0.0.22, fixing bodyless request receives
and improving HTTP/1 request parsing performance (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3063">#3063</a>)</li>
</ul>
<h2>0.52.1 (August 1, 2026)</h2>
<h3>Fixed</h3>
<ul>
<li>Complete the closing handshake on server-initiated WebSocket closes
in the <code>websockets-sansio</code> and <code>wsproto</code>
implementations, waiting for the client's close reply with a 10 second
timeout instead of resetting the connection (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3053">#3053</a>)</li>
<li>Add missing write flow control to the <code>websockets-sansio</code>
implementation, preventing data truncation on server-initiated closes
with large in-flight payloads (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3048">#3048</a>)</li>
<li>Handle connection loss while a WebSocket write is waiting on
backpressure (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3050">#3050</a>)</li>
<li>Remove duplicate <code>Content-Type</code> and
<code>Content-Length</code> headers from WebSocket denial responses on
the <code>websockets-sansio</code> implementation, and deliver non-UTF-8
denial bodies intact (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3041">#3041</a>)</li>
</ul>
<h2>0.52.0 (July 29, 2026)</h2>
<p>This release adds an experimental HTTP/1.1 implementation backed by
<a href="https://zttp.marcelotryle.com/">zttp</a>, a sans-IO HTTP parser
I've been developing on the side: a core written in Zig, with bindings
to Python. It has been running under a fuzzer for some weeks now, and
has been through multiple rounds of security auditing.</p>
<p>It is still <strong>experimental</strong>, so don't put it in front
of production traffic yet. Try it with <code>--http zttp</code>, and
please send any feedback to the <a
href="https://github.com/Kludex/uvicorn/issues">issue tracker</a>.</p>
<h3>Added</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Kludex/uvicorn/commit/421708fbc1a704dac8bd4053a7c4c0bf4d3704ee"><code>421708f</code></a>
Version 0.53.0 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3136">#3136</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/f1a1bff7be819f5724d6fdf86dfd448a97c62e23"><code>f1a1bff</code></a>
Unset the keep-alive timer when upgrading to WebSocket (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3107">#3107</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/63971ed952090438896e6eba7d07178b616d97cc"><code>63971ed</code></a>
Document HTTP/2 support (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3130">#3130</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/7d1a0055aee5e281accc646b559ddd147486bf8a"><code>7d1a005</code></a>
Remove race from multiprocess health check test (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3128">#3128</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/5ac6265a01ff6dcadb0e4250152c3deaf8a168a9"><code>5ac6265</code></a>
Add ::1 to FORWARDED_ALLOW_IPS (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3119">#3119</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/098b206ff7b01098561956ff4e7746d05e02acc6"><code>098b206</code></a>
Remove timing race from SIGHUP supervisor test (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3127">#3127</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/968f15e5d09df5f6b8959975f18687b9d755862d"><code>968f15e</code></a>
chore(deps): bump the github-actions group with 4 updates (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3113">#3113</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/7d4c08cce9eeabf64695c326b0e45c47c6a0337b"><code>7d4c08c</code></a>
chore(deps): bump the python-packages group across 1 directory with 11
update...</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/fe528a480c0aec3aea3ee8ef13251b5216c47ae9"><code>fe528a4</code></a>
Require explicit opt-in for zttp HTTP/2 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3101">#3101</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/fa324a415364563cf45908966435e2480a6b46bf"><code>fa324a4</code></a>
chore(deps-dev): bump httpx2 from 2.10.0 to 2.12.0 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3121">#3121</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Kludex/uvicorn/compare/0.49.0...0.53.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `click` from 8.4.1 to 8.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/click/releases">click's
releases</a>.</em></p>
<blockquote>
<h2>8.5.0</h2>
<p>This is the Click 8.5.0 feature release. A feature release may
include new features, remove previously deprecated code, add new
deprecation, or introduce potentially breaking changes.</p>
<p>We encourage everyone to upgrade. You can read more about our <a
href="https://palletsprojects.com/versions">Version Support Policy</a>
on our website.</p>
<p>PyPI: <a
href="https://pypi.org/project/click/8.5.0/">https://pypi.org/project/click/8.5.0/</a>
Changes: <a
href="https://click.palletsprojects.com/page/changes/#version-8-5-0">https://click.palletsprojects.com/page/changes/#version-8-5-0</a>
Milestone <a
href="https://github.com/pallets/click/milestone/33">https://github.com/pallets/click/milestone/33</a></p>
<ul>
<li>Add built-in shell completion support for PowerShell (Windows
PowerShell
5.1+ and pwsh 7+) alongside the existing <code>bash</code>,
<code>zsh</code>, and <code>fish</code>
completers. Use <code>_FOO_BAR_COMPLETE=powershell_source foo-bar</code>
to generate
the completion script. <a
href="https://redirect.github.com/pallets/click/issues/2672">#2672</a>
<a
href="https://redirect.github.com/pallets/click/issues/3637">#3637</a></li>
<li>Supported versions of Windows enable ANSI terminal styles by
default.
Colorama is no longer a dependency and is not used. <a
href="https://redirect.github.com/pallets/click/issues/2986">#2986</a>
<a
href="https://redirect.github.com/pallets/click/issues/3505">#3505</a></li>
<li>{class}<code>Argument</code> accepts a <code>help</code> parameter,
and help output includes
a <code>Positional arguments</code> section when argument help is
available. <a
href="https://redirect.github.com/pallets/click/issues/2983">#2983</a>
<a
href="https://redirect.github.com/pallets/click/issues/3473">#3473</a></li>
<li><code>confirm()</code> and <code>prompt()</code> strip ANSI color
and style codes from the
prompt when the output stream does not support them, matching
<code>echo()</code>.
This stripping was lost in <code>8.4.0</code> when <a
href="https://redirect.github.com/pallets/click/issues/2969">#2969</a>
began writing the
prompt with <code>input()</code> directly. <a
href="https://redirect.github.com/pallets/click/issues/3572">#3572</a>
<a
href="https://redirect.github.com/pallets/click/issues/3653">#3653</a></li>
<li>{class}<code>Path</code> with <code>allow_dash=True</code> no longer
triggers a <code>BytesWarning</code>,
an error under <code>python -bb</code>, when checking a value against
the <code>-</code>
convention. <a
href="https://redirect.github.com/pallets/click/issues/2877">#2877</a>
<a
href="https://redirect.github.com/pallets/click/issues/3642">#3642</a></li>
<li>Add {func}<code>custom_version_option</code>, a
<code>--version</code> option whose output is
produced by a callback, covering cases {func}<code>version_option</code>
intentionally
does not. The feature set of {func}<code>version_option</code> is now
frozen; see
[discussion <a
href="https://redirect.github.com/pallets/click/issues/3527">#3527</a>](<a
href="https://github.com/pallets/click/discussions/3527">https://github.com/pallets/click/discussions/3527</a>).
<a
href="https://redirect.github.com/pallets/click/issues/3581">#3581</a></li>
<li><code>style()</code> and <code>secho()</code> no longer silently
drop the 256-color index <code>0</code>
(black) passed as <code>fg</code> or <code>bg</code>, and now validate
color arguments. Invalid
colors raise a <code>ValueError</code> instead of a
<code>TypeError</code>. <a
href="https://redirect.github.com/pallets/click/issues/3677">#3677</a></li>
<li>The automatic help option stores its value under the reserved name
<code>_click_default_help</code> instead of <code>help</code>, so a
parameter named <code>help</code> no
longer breaks parsing. The new name is visible in
{meth}<code>Command.to_info_dict</code> output. Parameters that
overwrite each other's
value trigger a warning: an argument sharing its name with another
parameter, or any parameter claiming the reserved name. Options may
still
share a name to compete for the same value (feature switches).
<a
href="https://redirect.github.com/pallets/click/issues/2819">#2819</a>
<a
href="https://redirect.github.com/pallets/click/issues/3678">#3678</a></li>
<li><code>unstyle</code> and the ANSI handling behind help-text wrapping
now strip the full
CSI escape-sequence grammar. <a
href="https://redirect.github.com/pallets/click/issues/3681">#3681</a></li>
<li>Streamline <code>Option</code> flag handling: the flag-kind, type,
lazy-default and
validation steps in <code>Option.__init__</code> move into focused
helpers, and
<code>flag_value</code> and <code>default</code> keep their unset
sentinel at construction
(resolved lazily on read) so <code>is UNSET</code> reliably tells a
user-supplied value
from an auto-derived one. Runtime behavior is unchanged, but
{meth}<code>Parameter.to_info_dict</code> now resolves
<code>default=True</code> on a feature
switch to its <code>flag_value</code>, matching what the function
receives at call</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/click/blob/main/CHANGES.md">click's
changelog</a>.</em></p>
<blockquote>
<h2>Version 8.5.0</h2>
<p>Released 2026-08-24</p>
<ul>
<li>Add built-in shell completion support for PowerShell (Windows
PowerShell
5.1+ and pwsh 7+) alongside the existing <code>bash</code>,
<code>zsh</code>, and <code>fish</code>
completers. Use <code>_FOO_BAR_COMPLETE=powershell_source foo-bar</code>
to generate
the completion script. {issue}<code>2672</code>
{pr}<code>3637</code></li>
<li>Supported versions of Windows enable ANSI terminal styles by
default.
Colorama is no longer a dependency and is not used.
{issue}<code>2986</code> {pr}<code>3505</code></li>
<li>{class}<code>Argument</code> accepts a <code>help</code> parameter,
and help output includes
a <code>Positional arguments</code> section when argument help is
available. {issue}<code>2983</code> {pr}<code>3473</code></li>
<li><code>confirm()</code> and <code>prompt()</code> strip ANSI color
and style codes from the
prompt when the output stream does not support them, matching
<code>echo()</code>.
This stripping was lost in <code>8.4.0</code> when {pr}<code>2969</code>
began writing the
prompt with <code>input()</code> directly. {issue}<code>3572</code>
{pr}<code>3653</code></li>
<li>Fix test failures when using pytest >= 9.1.
{pr}<code>3656</code></li>
<li>{class}<code>Path</code> with <code>allow_dash=True</code> no longer
triggers a <code>BytesWarning</code>,
an error under <code>python -bb</code>, when checking a value against
the <code>-</code>
convention. {issue}<code>2877</code> {pr}<code>3642</code></li>
<li>Add {func}<code>custom_version_option</code>, a
<code>--version</code> option whose output is
produced by a callback, covering cases {func}<code>version_option</code>
intentionally
does not. The feature set of {func}<code>version_option</code> is now
frozen; see
[discussion <a
href="https://redirect.github.com/pallets/click/issues/3527">#3527</a>](<a
href="https://github.com/pallets/click/discussions/3527">https://github.com/pallets/click/discussions/3527</a>).
{pr}<code>3581</code></li>
<li><code>style()</code> and <code>secho()</code> no longer silently
drop the 256-color index <code>0</code>
(black) passed as <code>fg</code> or <code>bg</code>, and now validate
color arguments. Invalid
colors raise a <code>ValueError</code> instead of a
<code>TypeError</code>. {pr}<code>3677</code></li>
<li>The automatic help option stores its value under the reserved name
<code>_click_default_help</code> instead of <code>help</code>, so a
parameter named <code>help</code> no
longer breaks parsing. The new name is visible in
{meth}<code>Command.to_info_dict</code> output. Parameters that
overwrite each other's
value trigger a warning: an argument sharing its name with another
parameter, or any parameter claiming the reserved name. Options may
still
share a name to compete for the same value (feature switches).
{issue}<code>2819</code> {pr}<code>3678</code></li>
<li><code>unstyle</code> and the ANSI handling behind help-text wrapping
now strip the full
CSI escape-sequence grammar. {pr}<code>3681</code></li>
<li>Streamline <code>Option</code> flag handling: the flag-kind, type,
lazy-default and
validation steps in <code>Option.__init__</code> move into focused
helpers, and
<code>flag_value</code> and <code>default</code> keep their unset
sentinel at construction
(resolved lazily on read) so <code>is UNSET</code> reliably tells a
user-supplied value
from an auto-derived one. Runtime behavior is unchanged, but
{meth}<code>Parameter.to_info_dict</code> now resolves
<code>default=True</code> on a feature
switch to its <code>flag_value</code>, matching what the function
receives at call
time. {pr}<code>3641</code></li>
<li>{func}<code>get_binary_stream</code> and
{func}<code>get_text_stream</code> are deprecated and
will be removed in Click 9.0. {issue}<code>3481</code>
{pr}<code>3695</code></li>
<li>The following <code>click.utils</code> names were never
intentionally public and are
now private (<code>_</code>-prefixed). The old names remain available
with a
<code>DeprecationWarning</code> until Click 9.0: <code>LazyFile</code>,
<code>KeepOpenFile</code>,</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d"><code>8b19813</code></a>
Release version 8.5.0</li>
<li><a
href="https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369"><code>2c8cd3a</code></a>
Add FAQ entry about <code>UnicodeEncodeError</code> on Windows (<a
href="https://redirect.github.com/pallets/click/issues/3778">#3778</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac"><code>131c86a</code></a>
Add FAQ entry about <code>UnicodeEncodeError</code> on Windows</li>
<li><a
href="https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb"><code>e1fd594</code></a>
Add support of <code>pathlib.Path</code> to <code>edit</code> (<a
href="https://redirect.github.com/pallets/click/issues/3781">#3781</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781"><code>a1d8785</code></a>
Add support of <code>pathlib.Path</code> to <code>edit</code></li>
<li><a
href="https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4"><code>2103e15</code></a>
Forward all user's parameters set in <code>PAGER</code> and improve flag
detection (<a
href="https://redirect.github.com/pallets/click/issues/3777">#3777</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4"><code>a6256bf</code></a>
Forwards all user's parameters set in <code>PAGER</code></li>
<li><a
href="https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e"><code>61b69e9</code></a>
Resolve the pager command once, in <code>_pager_contextmanager</code>
(<a
href="https://redirect.github.com/pallets/click/issues/3776">#3776</a>)</li>
<li><a
href="https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8"><code>9835b0f</code></a>
Resolve the pager command once, in
<code>_pager_contextmanager</code></li>
<li><a
href="https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7"><code>f36d58b</code></a>
Refactor pager stream handling (<a
href="https://redirect.github.com/pallets/click/issues/3767">#3767</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/click/compare/8.4.1...8.5.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `pytest` from 9.0.3 to 9.1.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest/releases">pytest's
releases</a>.</em></p>
<blockquote>
<h2>9.1.1</h2>
<h1>pytest 9.1.1 (2026-06-19)</h1>
<h2>Bug fixes</h2>
<ul>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a>:
Fixed a logic bug in <code>pytest.RaisesGroup</code> which would might
cause it to display incorrect "It matches <!-- raw HTML omitted
-->FooError()<!-- raw HTML omitted --> which was paired with <!-- raw
HTML omitted -->BarError<!-- raw HTML omitted -->" messages.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/14591">#14591</a>:
Fixed a regression in pytest 9.1.0 which caused overriding a
parametrized fixture with an indirect <!-- raw HTML omitted --><a
href="https://github.com/pytest"><code>@pytest</code></a>.mark.parametrize<!--
raw HTML omitted --> to fail with "duplicate parametrization of
'<fixture name>'".</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/14606">#14606</a>:
Fixed <code>list-item</code> typing errors from mypy in
<code>@pytest.mark.parametrize <pytest.mark.parametrize
ref></code> <code>argvalues</code> parameter.</li>
<li><a
href="https://redirect.github.com/pytest-dev/pytest/issues/14608">#14608</a>:
Fixed a regression in pytest 9.1.0 where <code>conftest.py</code> files
located in <code><invocation dir>/test*</code> were no longer
loaded as initial conftests when invoked without arguments.
This could cause certain hooks (like <code>pytest_addoption</code>) in
these files to not fire.</li>
</ul>
<h2>9.1.0</h2>
<h1>pytest 9.1.0 (2026-06-13)</h1>
<h2>Removals and backward incompatible breaking changes</h2>
<ul>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/14533">#14533</a>:
When using <code>--doctest-modules</code>, autouse fixtures with
<code>module</code>, <code>package</code> or <code>session</code> scope
that are defined inline in Python test modules (not plugins or
conftests) will now possibly execute twice.</p>
<p>If this is undesirable, move the fixture definition to a
<code>conftest.py</code> file if possible.</p>
<p>Technical explanation for those interested:
When using <!-- raw HTML omitted -->--doctest-modules<!-- raw HTML
omitted -->, pytest possibly collects Python modules twice, once as
<code>pytest.Module</code> and once as a <code>DoctestModule</code>
(depending on the configuration).
Due to improvements in pytest's fixture implementation, if e.g. the
<code>DoctestModule</code> collects a fixture, it is now visible to it
only, and not to the <code>Module</code>.
This means that both need to register the fixtures independently.</p>
</li>
</ul>
<h2>Deprecations (removal in next major release)</h2>
<ul>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/10819">#10819</a>:
Added a deprecation warning for class-scoped fixtures defined as
instance methods (without <code>@classmethod</code>). Such fixtures set
attributes on a different instance than the test methods use, leading to
unexpected behavior. Use <code>@classmethod</code> decorator instead --
by <code>yastcher</code>.</p>
<p>See <code>10819</code> and <code>14011</code>.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/12882">#12882</a>:
Calling <code>request.getfixturevalue()
<pytest.FixtureRequest.getfixturevalue></code> during teardown to
request a fixture that was not already requested is now deprecated and
will become an error in pytest 10.</p>
<p>See <code>dynamic-fixture-request-during-teardown</code> for
details.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/13409">#13409</a>:
Using non-<code>~collections.abc.Collection</code> iterables (such as
generators, iterators, or custom iterable objects) for the
<code>argvalues</code> parameter in <code>@pytest.mark.parametrize
<pytest.mark.parametrize ref></code> and
<code>metafunc.parametrize <pytest.Metafunc.parametrize></code> is
now deprecated.</p>
<p>These iterables get exhausted after the first iteration,
leading to tests getting unexpectedly skipped in cases such as running
<code>pytest.main()</code> multiple times,
using class-level parametrize decorators,
or collecting tests multiple times.</p>
<p>See <code>parametrize-iterators</code> for details and
suggestions.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/13946">#13946</a>:
The private <code>config.inicfg</code> attribute is now deprecated.
Use <code>config.getini() <pytest.Config.getini></code> to access
configuration values instead.</p>
<p>See <code>config-inicfg</code> for more details.</p>
</li>
<li>
<p><a
href="https://redirect.github.com/pytest-dev/pytest/issues/14004">#14004</a>:
Passing <code>baseid</code> to <code>~pytest.FixtureDef</code> or
<code>nodeid</code> strings to fixture registration APIs is now
deprecated. These are internal pytest APIs that are used by some
plugins.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest/commit/cf470ec0bf7eb89cd97dd56df4859eae5db46447"><code>cf470ec</code></a>
Prepare release version 9.1.1</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/e0c8ce6cc5db1f08363be6f152c32e6838df2690"><code>e0c8ce6</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14625">#14625</a>
from pytest-dev/patchback/backports/9.1.x/a07c31a97...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/1b82d1694fce22385ee7a4287917fbafbaf2e757"><code>1b82d16</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14624">#14624</a>
from pytest-dev/patchback/backports/9.1.x/b375b79ec...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/501c4bc784da3b08bfcaa64858eba5d15dc59e53"><code>501c4bc</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14596">#14596</a>
from bluetech/doc-classmethod</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/b61f588e36e9377c3d1d3f06bece1da0fc31d9ca"><code>b61f588</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14622">#14622</a>
from chrisburr/fix-14608-initial-conftest-test-subdir</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/9a567e009f4d2da3ce1721c6db3109cb5744d40a"><code>9a567e0</code></a>
[automated] Update plugin list (<a
href="https://redirect.github.com/pytest-dev/pytest/issues/14617">#14617</a>)
(<a
href="https://redirect.github.com/pytest-dev/pytest/issues/14618">#14618</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/ef8b2993e5b48639e4a3d97d0525df9760781384"><code>ef8b299</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14620">#14620</a>
from pytest-dev/patchback/backports/9.1.x/680f9f3ed...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/66abd0784d4cb7c1ba44ab9a8896506cd4985acc"><code>66abd07</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14220">#14220</a>
from bysiber/fix-stale-iexp-raisesgroup</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/79fbf93b666cac5f27c9dad047943d47b766c8d5"><code>79fbf93</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14612">#14612</a>
from pytest-dev/patchback/backports/9.1.x/974ed48b6...</li>
<li><a
href="https://github.com/pytest-dev/pytest/commit/0d312eb876177e9f1c04262b54060a41034ebf5c"><code>0d312eb</code></a>
Merge pull request <a
href="https://redirect.github.com/pytest-dev/pytest/issues/14611">#14611</a>
from bluetech/parametrize-argvalues-typing</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest/compare/9.0.3...9.1.1">compare
view</a></li>
</ul>
</details>
<br />
Updates `docker` from 7.1.0 to 7.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/docker/docker-py/releases">docker's
releases</a>.</em></p>
<blockquote>
<h2>7.2.0</h2>
<h2>Upgrade Notes</h2>
<ul>
<li><code>docker.from_env()</code> now honors the active Docker CLI
context when <code>DOCKER_HOST</code> is not set.
<ul>
<li>This means the client may connect to the daemon selected by
<code>DOCKER_CONTEXT</code> or the current context in
<code>~/.docker/config.json</code>, matching Docker CLI behavior more
closely.</li>
<li>If your application relied on the previous default connection
behavior, set <code>DOCKER_HOST</code> explicitly, set
<code>DOCKER_CONTEXT=default</code>, or pass
<code>use_context=False</code> to
<code>DockerClient.from_env()</code>.</li>
</ul>
</li>
<li>Added <code>docker.from_context()</code> /
<code>DockerClient.from_context()</code> for explicitly creating a
client from a Docker CLI context.</li>
</ul>
<h2>Features</h2>
<ul>
<li>Added support for Docker contexts when creating the default
client</li>
<li>Added subpath support for volumes</li>
</ul>
<h2>Bugfixes</h2>
<ul>
<li>Fixed <code>exec_run</code> documentation for the
<code>stream</code> parameter</li>
<li>Fixed image loading to avoid depending on the deprecated
<code>JSONMessage.error</code> field</li>
<li>Preserved the rotated unlock key in swarm integration tests</li>
<li>Fixed SSL certificate generation in tests</li>
<li>Fixed IPv6 integration tests by explicitly enabling IPv6 where
required</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>Updated tests for newer Docker Engine behavior</li>
<li>CI and build updates</li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>tests/exec: expect 127 exit code for missing executable by <a
href="https://github.com/laurazard"><code>@laurazard</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3290">docker/docker-py#3290</a></li>
<li>fixing doc for stream param in exec_run by <a
href="https://github.com/yasonk"><code>@yasonk</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3292">docker/docker-py#3292</a></li>
<li>Bump default API version to 1.45 (Moby 26.0/26.1) by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3261">docker/docker-py#3261</a></li>
<li>Set a dummy-version if none set, and remove unused APT_MIRROR
build-arg by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3267">docker/docker-py#3267</a></li>
<li>test_service_logs: stop testing experimental versions by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/2442">docker/docker-py#2442</a></li>
<li>Makefile: fix circular reference for integration-dind by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3297">docker/docker-py#3297</a></li>
<li>image load: don't depend on deprecated JSONMessage.error field by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3307">docker/docker-py#3307</a></li>
<li>integration: test_create_volume_invalid_driver allow either 400 or
404 by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3296">docker/docker-py#3296</a></li>
<li>integration: adjust tests for omitted "OnBuild" by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3336">docker/docker-py#3336</a></li>
<li>Implement Subpath Support for Volumes in Docker-Py (<a
href="https://redirect.github.com/docker/docker-py/issues/3243">#3243</a>)
by <a href="https://github.com/Khushiyant"><code>@Khushiyant</code></a>
in <a
href="https://redirect.github.com/docker/docker-py/pull/3270">docker/docker-py#3270</a></li>
<li>tests: fix ssl generation by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3365">docker/docker-py#3365</a></li>
<li>test/integration: don't check for deprecated Networks field by <a
href="https://github.com/thaJeztah"><code>@thaJeztah</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3362">docker/docker-py#3362</a></li>
<li>test: Skip from_env_unix tests if DOCKER_HOST is network socket by
<a
href="https://github.com/ricardobranco777"><code>@ricardobranco777</code></a>
in <a
href="https://redirect.github.com/docker/docker-py/pull/3366">docker/docker-py#3366</a></li>
<li>test_connect_with_ipv6_address: enable IPv6 by <a
href="https://github.com/robmry"><code>@robmry</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3372">docker/docker-py#3372</a></li>
<li>test_create_with_ipv6_address: enable IPv6 by <a
href="https://github.com/robmry"><code>@robmry</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3373">docker/docker-py#3373</a></li>
<li>tests: Migrate off gpg2 and regenerate key ed25519 by <a
href="https://github.com/vvoland"><code>@vvoland</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3399">docker/docker-py#3399</a></li>
<li>gha: Pin to digests by <a
href="https://github.com/vvoland"><code>@vvoland</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3408">docker/docker-py#3408</a></li>
<li>Fix integration tests on non-amd64 hosts and add ARM64 CI by <a
href="https://github.com/vvoland"><code>@vvoland</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3407">docker/docker-py#3407</a></li>
<li>integration/swarm: Preserve rotated unlock key by <a
href="https://github.com/vvoland"><code>@vvoland</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3410">docker/docker-py#3410</a></li>
<li>[DKP-2535] Honour context if present for default client, add
contexts support by <a
href="https://github.com/ebriney"><code>@ebriney</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3401">docker/docker-py#3401</a></li>
<li>docs: 7.2.0 changelog by <a
href="https://github.com/vvoland"><code>@vvoland</code></a> in <a
href="https://redirect.github.com/docker/docker-py/pull/3415">docker/docker-py#3415</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/laurazard"><code>@laurazard</code></a>
made their first contribution in <a
href="https://redirect.github.com/docker/docker-py/pull/3290">docker/docker-py#3290</a></li>
<li><a href="https://github.com/yasonk"><code>@yasonk</code></a> made
their first contribution in <a
href="https://redirect.github.com/docker/docker-py/pull/3292">docker/docker-py#3292</a></li>
<li><a
href="https://github.com/ricardobranco777"><code>@ricardobranco777</code></a>
made their first contribution in <a
href="https://redirect.github.com/docker/docker-py/pull/3366">docker/docker-py#3366</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/docker/docker-py/commit/5ad5327fba623897ee9a527d7eee1b01703e0726"><code>5ad5327</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/docker-py/issues/3415">#3415</a>
from vvoland/update-changelog</li>
<li><a
href="https://github.com/docker/docker-py/commit/d2422303703cf33f604018d0601d8e4b71a2131e"><code>d242230</code></a>
docs: 7.2.0 changelog</li>
<li><a
href="https://github.com/docker/docker-py/commit/ba01cc7291a00a96260792c27046cfaedd9a61dc"><code>ba01cc7</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/docker-py/issues/3401">#3401</a>
from ebriney/client-from-context</li>
<li><a
href="https://github.com/docker/docker-py/commit/ae5dfe9111b1f4e9fafd4107a8ac4a3fa52644dc"><code>ae5dfe9</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/docker-py/issues/3410">#3410</a>
from vvoland/fix-flaky</li>
<li><a
href="https://github.com/docker/docker-py/commit/aa999998eded49919086be7fc4448f5dc9eac689"><code>aa99999</code></a>
integration/swarm: Preserve rotated unlock key</li>
<li><a
href="https://github.com/docker/docker-py/commit/059d371b576b9f324a16753e2a775b1f7731b6d0"><code>059d371</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/docker-py/issues/3407">#3407</a>
from vvoland/fix-arm64</li>
<li><a
href="https://github.com/docker/docker-py/commit/9b4b9b8461966e5b54638490e66c91e45f25ea19"><code>9b4b9b8</code></a>
gha: Add arm64 integration CI</li>
<li><a
href="https://github.com/docker/docker-py/commit/9e9f8ff315fe405d7f7e89b394d6269217c51dfe"><code>9e9f8ff</code></a>
Skip tests incompatible with host architecture</li>
<li><a
href="https://github.com/docker/docker-py/commit/e0542d9ee4b564822722a3c49d9948484ffb37bc"><code>e0542d9</code></a>
Merge pull request <a
href="https://redirect.github.com/docker/docker-py/issues/3408">#3408</a>
from vvoland/gha-pin</li>
<li><a
href="https://github.com/docker/docker-py/commit/578a11dd65e167b0421b9f9af143635ce93abe83"><code>578a11d</code></a>
gha: Pin to digests</li>
<li>Additional commits viewable in <a
href="https://github.com/docker/docker-py/compare/7.1.0...7.2.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `pytest-randomly` from 4.1.0 to 5.0.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's
changelog</a>.</em></p>
<blockquote>
<h2>5.0.0 (2026-09-01)</h2>
<ul>
<li>
<p>Support Python 3.15.</p>
</li>
<li>
<p>Shuffle tests in a wrapper around the
<code>pytest_collection_modifyitems</code> hook, guaranteeing that the
shuffle runs before all other plugins’ implementations of the hook.</p>
<p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code>
hook implementation.
When another plugin also implemented the hook with
<code>tryfirst</code>, as pytest-django does, whichever plugin pytest
happened to register later ran first.
Registration order comes from package metadata on disk, which can differ
between seemingly identical environments — even two containers built
from the same <code>Dockerfile</code>, or the same virtual environment
after reinstalling a package.
As a result, the same seed could yield different test orders in
different environments.
Worse, in environments where pytest-randomly ended up shuffling last, it
silently destroyed the other plugin’s ordering — for pytest-django, the
grouping of database tests that mirrors Django’s test runner
(non-transactional database tests, then transactional ones, then the
rest).</p>
<p>Now the shuffle always runs first, and plugins that group tests with
a stable sort apply their grouping on top of the shuffled order, so the
final order is reproducible from the seed alone.
In environments that previously hit the reversed hook order, upgrading
changes the test order for a given seed — restoring both reproducibility
and other plugins’ grouping.</p>
<p><code>PR
[#746](https://github.com/pytest-dev/pytest-randomly/issues/746)
<https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>.
Thanks to milssky for the report in <code>Issue
[#701](https://github.com/pytest-dev/pytest-randomly/issues/701)
<https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p>
</li>
<li>
<p>Require pytest 8+, the first version to require a version of pluggy
that supports hook wrappers, as used by the above fix.</p>
<p><code>PR
[#746](https://github.com/pytest-dev/pytest-randomly/issues/746)
<https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p>
</li>
<li>
<p>Reset <code>Polyfactory
<https://polyfactory.litestar.dev/></code>__\’s default random
state at the start of every test, if it is installed.</p>
<p>Thanks to Rahul Kumar in <code>PR
[#735](https://github.com/pytest-dev/pytest-randomly/issues/735)
<https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p>
</li>
<li>
<p>Switch package build backend from setuptools to <code>uv_build
<https://docs.astral.sh/uv/concepts/build-backend/></code>__.
This makes builds with uv about nine times faster, since uv runs the
backend natively, without creating a build environment or spawning a
Python process.
Additionally, source distributions no longer include test files, which
setuptools previously included incompletely, missing the files needed to
actually run them.</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a>
Version 5.0.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a>
Shuffle before other plugins' collection hooks (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a>
Upgrade dependencies (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a>
Fix podcast link in README (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a>
Reset Polyfactory's default random state on each test (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a>
Upgrade dependencies (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a>
Upgrade dependencies (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a>
Support Python 3.15 (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a>
Switch build backend to uv_build (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `pyinstaller` from 6.20.0 to 6.22.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pyinstaller/pyinstaller/releases">pyinstaller's
releases</a>.</em></p>
<blockquote>
<h2>v6.22.3</h2>
<p>Please see the <a
href="https://pyinstaller.org/en/v6.22.3/CHANGES.html#id1">v6.22.3
section of the changelog</a> for a list of the changes since
v6.22.2.</p>
<h2>v6.22.2</h2>
<p>Please see the <a
href="https://pyinstaller.org/en/v6.22.2/CHANGES.html#id1">v6.22.2
section of the changelog</a> for a list of the changes since
v6.22.1.</p>
<h2>v6.22.1</h2>
<p>Please see the <a
href="https://pyinstaller.org/en/v6.22.1/CHANGES.html#id1">v6.22.1
section of the changelog</a> for a list of the changes since
v6.22.0.</p>
<h2>v6.22.0</h2>
<p>Please see the <a
href="https://pyinstaller.org/en/v6.22.0/CHANGES.html#id1">v6.22.0
section of the changelog</a> for a list of the changes since
v6.21.0.</p>
<h2>v6.21.0</h2>
<p>Please see the <a
href="https://pyinstaller.org/en/v6.21.0/CHANGES.html#id1">v6.21.0
section of the changelog</a> for a list of the changes since
v6.20.0.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyinstaller/pyinstaller/blob/develop/doc/CHANGES.rst">pyinstaller's
changelog</a>.</em></p>
<blockquote>
<h2>6.22.3 (2026-09-12)</h2>
<p>Bugfix</p>
<pre><code>
* (Windows) Revise earlier fix for :issue:`9508` to avoid breaking
executables located on ImDisk RAMDISK volumes. (:issue:`9510`)
* Compare the icon file suffix case-insensitively, so an icon named with
an
upper-case suffix such as ``MyApp.ICO`` is recognised as already being
in the
right format instead of being rejected or silently re-encoded.
(:issue:`9521`)
* Fix ``onefile`` parent-process validation to allow intermixed nested
sub-processes. (:issue:`9513`)
<p>Bootloader
</code></pre></p>
<ul>
<li>(POSIX) Enable <code>onefile</code> parent-process validation for
POSIX executables
that have <code>setgid</code> bit set, and for Linux executables that
have file
capabilities set (i.e., have a <code>security.capability</code> extended
file
attribute). (:issue:<code>9524</code>)</li>
<li>(POSIX) Revise the validation of owner and permissions of
<code>onedir</code>
application's contents directory when the executable has either
<code>setuid</code>
or <code>setgid</code> bit set. If <code>setuid</code> bit is set, the
owner ID of the
application's contents directory must match the owner ID of the
executable
itself, and only owner is allowed to have write permissions on the
directory.
If <code>setgid</code> bit is set, the group ID of the application's
contents
directory must match the group ID of the executable itself, and only
owner and the group are allowed to have write permissions on the
directory.
(:issue:<code>9524</code>)</li>
<li>Limit <code>onefile</code> parent-process validation only to
executables that are
running with elevated privileges while inheriting environment variables
set by unprivileged user. On POSIX systems, this corresponds to
executables
with <code>setuid</code> bit set, while on Windows, it corresponds to
UAC-elevated
processes (running with <code>TokenElevationTypeFull</code> token).
(:issue:<code>9520</code>)</li>
</ul>
<h2>6.22.2 (2026-08-17)</h2>
<p>Bugfix</p>
<pre><code>
* (Windows) Fix spurious security validation error when a ``onefile``
executable is launched from a symlinked directory or a junction.
(:issue:`9508`)
<p></tr></table>
</code></pre></p>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/ecd7993d65c43b254f4e3f718e36d5b4a70a3ed5"><code>ecd7993</code></a>
Release v6.22.3. [skip ci]</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/88072960122b8b423a47ae0fdd862ccdb945629c"><code>8807296</code></a>
doc: update documentation section on onefile/onedir security
verification</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/bda61107955c76db4abc64214c2af209798d1ed8"><code>bda6110</code></a>
bootloader: security: improve owner/permissions check in onedir
mode</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/e3fc240e72bff80bd44ffb2386c60d33326c7552"><code>e3fc240</code></a>
bootloader: security: add detection of file capabilities on linux</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/3d73d326db168635a5450826e18af0496f540c2d"><code>3d73d32</code></a>
bootloader: security: enable security checks for setgid executables</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/10c62c50ea2b5293c003ba2ee6d050ef24159b8f"><code>10c62c5</code></a>
bootloader: security: make early-error message a bit more generic</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/1919af17b23ffc2e7203ae5cb6799be642492c22"><code>1919af1</code></a>
Tests: Requirements: Scheduled weekly dependency update for week 36 (<a
href="https://redirect.github.com/pyinstaller/pyinstaller/issues/9522">#9522</a>)</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/77907b5f2967bc9e2cd92ffaac85245e0f14b161"><code>77907b5</code></a>
doc: update documentation section on onefile security verification</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/a36324b4bdf438dd2692c10211748b8140c84dc2"><code>a36324b</code></a>
ci: freebsd: mount /proc</li>
<li><a
href="https://github.com/pyinstaller/pyinstaller/commit/012e15044acb2832d9e3a8d015c09265d292e54c"><code>012e150</code></a>
tests: security: adjust for platforms without parent-process
verification</li>
<li>Additional commits viewable in <a
href="https://github.com/pyinstaller/pyinstaller/compare/v6.20.0...v6.22.3">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>
souliane
added a commit
to souliane/teatree
that referenced
this pull request
Sep 23, 2026
…ates (#4825) Bumps the python-deps group with 8 updates in the / directory: | Package | From | To | | --- | --- | --- | | [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.2.152` | `0.2.156` | | [click](https://github.com/pallets/click) | `8.4.2` | `8.5.0` | | [django](https://github.com/django/django) | `6.0.8` | `6.1.1` | | [django-tasks-db](https://github.com/RealOrangeOne/django-tasks-db) | `0.12.0` | `0.13.0` | | [mcp](https://github.com/modelcontextprotocol/python-sdk) | `2.0.1` | `2.2.0` | | [prek](https://github.com/j178/prek) | `0.4.14` | `0.5.3` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.1` | `0.16.8` | | [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `4.1.0` | `5.0.0` | Updates `claude-agent-sdk` from 0.2.152 to 0.2.156 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/anthropics/claude-agent-sdk-python/releases">claude-agent-sdk's releases</a>.</em></p> <blockquote> <h2>v0.2.156</h2> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.276</li> </ul> <hr /> <p><strong>PyPI:</strong> <a href="https://pypi.org/project/claude-agent-sdk/0.2.156/">https://pypi.org/project/claude-agent-sdk/0.2.156/</a></p> <pre lang="bash"><code>pip install claude-agent-sdk==0.2.156 </code></pre> <h2>v0.2.155</h2> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.275</li> </ul> <hr /> <p><strong>PyPI:</strong> <a href="https://pypi.org/project/claude-agent-sdk/0.2.155/">https://pypi.org/project/claude-agent-sdk/0.2.155/</a></p> <pre lang="bash"><code>pip install claude-agent-sdk==0.2.155 </code></pre> <h2>v0.2.154</h2> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.274</li> </ul> <hr /> <p><strong>PyPI:</strong> <a href="https://pypi.org/project/claude-agent-sdk/0.2.154/">https://pypi.org/project/claude-agent-sdk/0.2.154/</a></p> <pre lang="bash"><code>pip install claude-agent-sdk==0.2.154 </code></pre> <h2>v0.2.153</h2> <h3>New Features</h3> <ul> <li><strong><code>snapshot</code> option for system prompts</strong>: Added a <code>snapshot</code> field to <code>SystemPromptPreset</code> and a new <code>SystemPromptCustom</code> typed dict. When <code>snapshot</code> is True, the session keeps the system prompt recorded on its first request, improving prompt-caching behavior across resumed sessions. When False, the prompt is rebuilt on every request, useful for iterating on <code>append</code> text. Requires CLI 2.1.257+ (<a href="https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/1268">#1268</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md">claude-agent-sdk's changelog</a>.</em></p> <blockquote> <h2>0.2.156</h2> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.276</li> </ul> <h2>0.2.155</h2> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.275</li> </ul> <h2>0.2.154</h2> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.274</li> </ul> <h2>0.2.153</h2> <h3>New Features</h3> <ul> <li><strong><code>snapshot</code> option for system prompts</strong>: Added a <code>snapshot</code> field to <code>SystemPromptPreset</code> and a new <code>SystemPromptCustom</code> typed dict. When <code>snapshot</code> is True, the session keeps the system prompt recorded on its first request, improving prompt-caching behavior across resumed sessions. When False, the prompt is rebuilt on every request, useful for iterating on <code>append</code> text. Requires CLI 2.1.257+ (<a href="https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/1268">#1268</a>)</li> </ul> <h3>Internal/Other Changes</h3> <ul> <li>Updated bundled Claude CLI to version 2.1.273</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/e9af0778559032afca55ac200608c24f18af86ca"><code>e9af077</code></a> docs: update changelog for v0.2.156</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/35a7407694d0b1a711fbd89cd67999d0e2fe3cd4"><code>35a7407</code></a> chore: release v0.2.156</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/875178a0b737e62f32fbf979d1a88ba2769cb580"><code>875178a</code></a> chore: bump bundled CLI version to 2.1.276</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/aab27972499f7d5c0d1868ff78b5e57b630ac1ce"><code>aab2797</code></a> docs: update changelog for v0.2.155</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/bb15ef07b37204a1ad3f1f2021e1539d2a8a0124"><code>bb15ef0</code></a> chore: release v0.2.155</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/facf2fe30f178c12860741b5eda5deaf2699d947"><code>facf2fe</code></a> chore: bump bundled CLI version to 2.1.275</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/9d398b6b7ed8a1bf9527c8939f75a8abfa6f165b"><code>9d398b6</code></a> docs: update changelog for v0.2.154</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/2a5bdcc4cffa69e1184b9664f6abf7aac02f1c40"><code>2a5bdcc</code></a> chore: release v0.2.154</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/efcd177bf63c1bd29c4d77929c348787f474ed4d"><code>efcd177</code></a> chore: bump bundled CLI version to 2.1.274</li> <li><a href="https://github.com/anthropics/claude-agent-sdk-python/commit/763922b0de2c9fb5371504d73ae54cde49536fe1"><code>763922b</code></a> docs: update changelog for v0.2.153</li> <li>Additional commits viewable in <a href="https://github.com/anthropics/claude-agent-sdk-python/compare/v0.2.152...v0.2.156">compare view</a></li> </ul> </details> <br /> Updates `click` from 8.4.2 to 8.5.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/releases">click's releases</a>.</em></p> <blockquote> <h2>8.5.0</h2> <p>This is the Click 8.5.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.</p> <p>We encourage everyone to upgrade. You can read more about our <a href="https://palletsprojects.com/versions">Version Support Policy</a> on our website.</p> <p>PyPI: <a href="https://pypi.org/project/click/8.5.0/">https://pypi.org/project/click/8.5.0/</a> Changes: <a href="https://click.palletsprojects.com/page/changes/#version-8-5-0">https://click.palletsprojects.com/page/changes/#version-8-5-0</a> Milestone <a href="https://github.com/pallets/click/milestone/33">https://github.com/pallets/click/milestone/33</a></p> <ul> <li>Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing <code>bash</code>, <code>zsh</code>, and <code>fish</code> completers. Use <code>_FOO_BAR_COMPLETE=powershell_source foo-bar</code> to generate the completion script. <a href="https://redirect.github.com/pallets/click/issues/2672">#2672</a> <a href="https://redirect.github.com/pallets/click/issues/3637">#3637</a></li> <li>Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. <a href="https://redirect.github.com/pallets/click/issues/2986">#2986</a> <a href="https://redirect.github.com/pallets/click/issues/3505">#3505</a></li> <li>{class}<code>Argument</code> accepts a <code>help</code> parameter, and help output includes a <code>Positional arguments</code> section when argument help is available. <a href="https://redirect.github.com/pallets/click/issues/2983">#2983</a> <a href="https://redirect.github.com/pallets/click/issues/3473">#3473</a></li> <li><code>confirm()</code> and <code>prompt()</code> strip ANSI color and style codes from the prompt when the output stream does not support them, matching <code>echo()</code>. This stripping was lost in <code>8.4.0</code> when <a href="https://redirect.github.com/pallets/click/issues/2969">#2969</a> began writing the prompt with <code>input()</code> directly. <a href="https://redirect.github.com/pallets/click/issues/3572">#3572</a> <a href="https://redirect.github.com/pallets/click/issues/3653">#3653</a></li> <li>{class}<code>Path</code> with <code>allow_dash=True</code> no longer triggers a <code>BytesWarning</code>, an error under <code>python -bb</code>, when checking a value against the <code>-</code> convention. <a href="https://redirect.github.com/pallets/click/issues/2877">#2877</a> <a href="https://redirect.github.com/pallets/click/issues/3642">#3642</a></li> <li>Add {func}<code>custom_version_option</code>, a <code>--version</code> option whose output is produced by a callback, covering cases {func}<code>version_option</code> intentionally does not. The feature set of {func}<code>version_option</code> is now frozen; see [discussion <a href="https://redirect.github.com/pallets/click/issues/3527">#3527</a>](<a href="https://github.com/pallets/click/discussions/3527">https://github.com/pallets/click/discussions/3527</a>). <a href="https://redirect.github.com/pallets/click/issues/3581">#3581</a></li> <li><code>style()</code> and <code>secho()</code> no longer silently drop the 256-color index <code>0</code> (black) passed as <code>fg</code> or <code>bg</code>, and now validate color arguments. Invalid colors raise a <code>ValueError</code> instead of a <code>TypeError</code>. <a href="https://redirect.github.com/pallets/click/issues/3677">#3677</a></li> <li>The automatic help option stores its value under the reserved name <code>_click_default_help</code> instead of <code>help</code>, so a parameter named <code>help</code> no longer breaks parsing. The new name is visible in {meth}<code>Command.to_info_dict</code> output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). <a href="https://redirect.github.com/pallets/click/issues/2819">#2819</a> <a href="https://redirect.github.com/pallets/click/issues/3678">#3678</a></li> <li><code>unstyle</code> and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. <a href="https://redirect.github.com/pallets/click/issues/3681">#3681</a></li> <li>Streamline <code>Option</code> flag handling: the flag-kind, type, lazy-default and validation steps in <code>Option.__init__</code> move into focused helpers, and <code>flag_value</code> and <code>default</code> keep their unset sentinel at construction (resolved lazily on read) so <code>is UNSET</code> reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}<code>Parameter.to_info_dict</code> now resolves <code>default=True</code> on a feature switch to its <code>flag_value</code>, matching what the function receives at call</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pallets/click/blob/main/CHANGES.md">click's changelog</a>.</em></p> <blockquote> <h2>Version 8.5.0</h2> <p>Released 2026-08-24</p> <ul> <li>Add built-in shell completion support for PowerShell (Windows PowerShell 5.1+ and pwsh 7+) alongside the existing <code>bash</code>, <code>zsh</code>, and <code>fish</code> completers. Use <code>_FOO_BAR_COMPLETE=powershell_source foo-bar</code> to generate the completion script. {issue}<code>2672</code> {pr}<code>3637</code></li> <li>Supported versions of Windows enable ANSI terminal styles by default. Colorama is no longer a dependency and is not used. {issue}<code>2986</code> {pr}<code>3505</code></li> <li>{class}<code>Argument</code> accepts a <code>help</code> parameter, and help output includes a <code>Positional arguments</code> section when argument help is available. {issue}<code>2983</code> {pr}<code>3473</code></li> <li><code>confirm()</code> and <code>prompt()</code> strip ANSI color and style codes from the prompt when the output stream does not support them, matching <code>echo()</code>. This stripping was lost in <code>8.4.0</code> when {pr}<code>2969</code> began writing the prompt with <code>input()</code> directly. {issue}<code>3572</code> {pr}<code>3653</code></li> <li>Fix test failures when using pytest >= 9.1. {pr}<code>3656</code></li> <li>{class}<code>Path</code> with <code>allow_dash=True</code> no longer triggers a <code>BytesWarning</code>, an error under <code>python -bb</code>, when checking a value against the <code>-</code> convention. {issue}<code>2877</code> {pr}<code>3642</code></li> <li>Add {func}<code>custom_version_option</code>, a <code>--version</code> option whose output is produced by a callback, covering cases {func}<code>version_option</code> intentionally does not. The feature set of {func}<code>version_option</code> is now frozen; see [discussion <a href="https://redirect.github.com/pallets/click/issues/3527">#3527</a>](<a href="https://github.com/pallets/click/discussions/3527">https://github.com/pallets/click/discussions/3527</a>). {pr}<code>3581</code></li> <li><code>style()</code> and <code>secho()</code> no longer silently drop the 256-color index <code>0</code> (black) passed as <code>fg</code> or <code>bg</code>, and now validate color arguments. Invalid colors raise a <code>ValueError</code> instead of a <code>TypeError</code>. {pr}<code>3677</code></li> <li>The automatic help option stores its value under the reserved name <code>_click_default_help</code> instead of <code>help</code>, so a parameter named <code>help</code> no longer breaks parsing. The new name is visible in {meth}<code>Command.to_info_dict</code> output. Parameters that overwrite each other's value trigger a warning: an argument sharing its name with another parameter, or any parameter claiming the reserved name. Options may still share a name to compete for the same value (feature switches). {issue}<code>2819</code> {pr}<code>3678</code></li> <li><code>unstyle</code> and the ANSI handling behind help-text wrapping now strip the full CSI escape-sequence grammar. {pr}<code>3681</code></li> <li>Streamline <code>Option</code> flag handling: the flag-kind, type, lazy-default and validation steps in <code>Option.__init__</code> move into focused helpers, and <code>flag_value</code> and <code>default</code> keep their unset sentinel at construction (resolved lazily on read) so <code>is UNSET</code> reliably tells a user-supplied value from an auto-derived one. Runtime behavior is unchanged, but {meth}<code>Parameter.to_info_dict</code> now resolves <code>default=True</code> on a feature switch to its <code>flag_value</code>, matching what the function receives at call time. {pr}<code>3641</code></li> <li>{func}<code>get_binary_stream</code> and {func}<code>get_text_stream</code> are deprecated and will be removed in Click 9.0. {issue}<code>3481</code> {pr}<code>3695</code></li> <li>The following <code>click.utils</code> names were never intentionally public and are now private (<code>_</code>-prefixed). The old names remain available with a <code>DeprecationWarning</code> until Click 9.0: <code>LazyFile</code>, <code>KeepOpenFile</code>,</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pallets/click/commit/8b19813f2bfca99f1018a587a8cf54fc959f2e5d"><code>8b19813</code></a> Release version 8.5.0</li> <li><a href="https://github.com/pallets/click/commit/2c8cd3ac958a7eb316d67f2d316c27086c4c0369"><code>2c8cd3a</code></a> Add FAQ entry about <code>UnicodeEncodeError</code> on Windows (<a href="https://redirect.github.com/pallets/click/issues/3778">#3778</a>)</li> <li><a href="https://github.com/pallets/click/commit/131c86aadddfa5cb6dca8339c9d6294c4eacb8ac"><code>131c86a</code></a> Add FAQ entry about <code>UnicodeEncodeError</code> on Windows</li> <li><a href="https://github.com/pallets/click/commit/e1fd5946ab26aaf372009eaff1acf947140b40fb"><code>e1fd594</code></a> Add support of <code>pathlib.Path</code> to <code>edit</code> (<a href="https://redirect.github.com/pallets/click/issues/3781">#3781</a>)</li> <li><a href="https://github.com/pallets/click/commit/a1d87858abd77fa8e3ffc204670ccd75b96c4781"><code>a1d8785</code></a> Add support of <code>pathlib.Path</code> to <code>edit</code></li> <li><a href="https://github.com/pallets/click/commit/2103e157683c5e4cadc8ee1838df526a54bde9a4"><code>2103e15</code></a> Forward all user's parameters set in <code>PAGER</code> and improve flag detection (<a href="https://redirect.github.com/pallets/click/issues/3777">#3777</a>)</li> <li><a href="https://github.com/pallets/click/commit/a6256bfb5971d5e58585fe7b6c656134e1ade5a4"><code>a6256bf</code></a> Forwards all user's parameters set in <code>PAGER</code></li> <li><a href="https://github.com/pallets/click/commit/61b69e967e525bd502f5bf42def4d551e761fe0e"><code>61b69e9</code></a> Resolve the pager command once, in <code>_pager_contextmanager</code> (<a href="https://redirect.github.com/pallets/click/issues/3776">#3776</a>)</li> <li><a href="https://github.com/pallets/click/commit/9835b0f7612d1b1ea180a975fd6d24cf16791ba8"><code>9835b0f</code></a> Resolve the pager command once, in <code>_pager_contextmanager</code></li> <li><a href="https://github.com/pallets/click/commit/f36d58bbd7f188178de2d4fe1d0292c510375ca7"><code>f36d58b</code></a> Refactor pager stream handling (<a href="https://redirect.github.com/pallets/click/issues/3767">#3767</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pallets/click/compare/8.4.2...8.5.0">compare view</a></li> </ul> </details> <br /> Updates `django` from 6.0.8 to 6.1.1 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/django/django/commit/249b13d6e93ee3164dee8ed1775395622a50c337"><code>249b13d</code></a> [6.1.x] Bumped version for 6.1.1 release.</li> <li><a href="https://github.com/django/django/commit/5f26fa88415db2268dcc3d865c5c1062c0a1d751"><code>5f26fa8</code></a> [6.1.x] Added release date for 6.1.1.</li> <li><a href="https://github.com/django/django/commit/fdcf78a14109a28433cf2b0983a75322baf5d0f7"><code>fdcf78a</code></a> [6.1.x] Added remaining community package mentions to the documentation.</li> <li><a href="https://github.com/django/django/commit/72415689785fdf68238a288e71338a2f7b8deb2a"><code>7241568</code></a> [6.1.x] Fixed <a href="https://redirect.github.com/django/django/issues/37222">#37222</a> -- Fixed QuerySet.distinct() crash on duplicated selecti...</li> <li><a href="https://github.com/django/django/commit/ef3fc8054fea8a728cfb879375a858a6f181b8d9"><code>ef3fc80</code></a> [6.1.x] Fixed <a href="https://redirect.github.com/django/django/issues/37312">#37312</a>, Refs <a href="https://redirect.github.com/django/django/issues/36605">#36605</a> -- Fixed annotation preservation and key se...</li> <li><a href="https://github.com/django/django/commit/b09cb6bb9489dda57969108d058ac40e15d6584e"><code>b09cb6b</code></a> [6.1.x] Clarified scope of object-level admin view permissions.</li> <li><a href="https://github.com/django/django/commit/a6d3aa22a5ca5a3519cee39cf358ebdfa9fa1756"><code>a6d3aa2</code></a> [6.1.x] Corrected heading hierarchy in the admin actions documentation.</li> <li><a href="https://github.com/django/django/commit/9031d4185a7eaf4056dc3161859b8fe5874f0c28"><code>9031d41</code></a> [6.1.x] Clarified object-level permission checks in admin actions.</li> <li><a href="https://github.com/django/django/commit/fc805c6f3416c626074fdfaf992df09c02502737"><code>fc805c6</code></a> [6.1.x] Fixed <a href="https://redirect.github.com/django/django/issues/37311">#37311</a> -- Prevented consumption of rhs iterators in annotation ...</li> <li><a href="https://github.com/django/django/commit/4b0185a5fb02a8c691bee4ce82e70174e061a228"><code>4b0185a</code></a> [6.1.x] Fixed <a href="https://redirect.github.com/django/django/issues/37300">#37300</a> -- Preserved parent instance hints on custom Prefetch qu...</li> <li>Additional commits viewable in <a href="https://github.com/django/django/compare/6.0.8...6.1.1">compare view</a></li> </ul> </details> <br /> Updates `django-tasks-db` from 0.12.0 to 0.13.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/RealOrangeOne/django-tasks-db/releases">django-tasks-db's releases</a>.</em></p> <blockquote> <h2>0.13.0</h2> <h2>Breaking changes</h2> <ul> <li>Remove django-tasks dependency by <a href="https://github.com/jrd"><code>@jrd</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/46">RealOrangeOne/django-tasks-db#46</a></li> <li>Drop support for unsupported versions of Django</li> </ul> <h2>What's Changed</h2> <ul> <li>Update package installation instructions by <a href="https://github.com/decadecity"><code>@decadecity</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/11">RealOrangeOne/django-tasks-db#11</a></li> <li>Hide magic run_after value in DBTaskResult admin page by <a href="https://github.com/abnerpc"><code>@abnerpc</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/17">RealOrangeOne/django-tasks-db#17</a></li> <li>Fix: Prevent OperationalError from dropped connections during worker sleep by <a href="https://github.com/Ju5t1nL3"><code>@Ju5t1nL3</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/22">RealOrangeOne/django-tasks-db#22</a></li> <li>Fix linter issues and improve contributing text by <a href="https://github.com/abnerpc"><code>@abnerpc</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/26">RealOrangeOne/django-tasks-db#26</a></li> <li>fix: defer DBTaskResult import to avoid AppRegistryNotReady by <a href="https://github.com/hieusats"><code>@hieusats</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/31">RealOrangeOne/django-tasks-db#31</a></li> <li>fix(prune): handle failed_min_age_days=0 correctly and add regression test by <a href="https://github.com/jibaku"><code>@jibaku</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/39">RealOrangeOne/django-tasks-db#39</a></li> <li>Execute tasks in enqueue order by <a href="https://github.com/diesieben07"><code>@diesieben07</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/37">RealOrangeOne/django-tasks-db#37</a></li> <li>feat(db_worker): add support for excluding queues by <a href="https://github.com/tampueroc"><code>@tampueroc</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/45">RealOrangeOne/django-tasks-db#45</a></li> <li>Remove Django 4.2 from test matrix, as LTS support has ended. by <a href="https://github.com/FlipperPA"><code>@FlipperPA</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/41">RealOrangeOne/django-tasks-db#41</a></li> <li>Clarify validation for worker task limits and intervals by <a href="https://github.com/imcatta"><code>@imcatta</code></a> in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/43">RealOrangeOne/django-tasks-db#43</a></li> <li>Fix migration trying rename a non-existant index on MySQL or MariaDB</li> <li>Add support for newer versions of MySQL, and test on MariaDB</li> <li>Improve performance on some versions of MySQL and MariaDB which don't support partial indexes. This is done by adding a full index, which may notably increase storage usage.</li> <li>Use Django's native transaction handling on SQLite</li> <li>Remove old codepaths to support older versions of Django</li> <li>Improved lock handling when claiming tasks, particularly in SQLite and MySQL</li> <li>Don't exit worker if the database is locked and there may still be tasks in <code>--batch</code> mode.</li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/decadecity"><code>@decadecity</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/11">RealOrangeOne/django-tasks-db#11</a></li> <li><a href="https://github.com/abnerpc"><code>@abnerpc</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/17">RealOrangeOne/django-tasks-db#17</a></li> <li><a href="https://github.com/Ju5t1nL3"><code>@Ju5t1nL3</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/22">RealOrangeOne/django-tasks-db#22</a></li> <li><a href="https://github.com/hieusats"><code>@hieusats</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/31">RealOrangeOne/django-tasks-db#31</a></li> <li><a href="https://github.com/jibaku"><code>@jibaku</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/39">RealOrangeOne/django-tasks-db#39</a></li> <li><a href="https://github.com/diesieben07"><code>@diesieben07</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/37">RealOrangeOne/django-tasks-db#37</a></li> <li><a href="https://github.com/tampueroc"><code>@tampueroc</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/45">RealOrangeOne/django-tasks-db#45</a></li> <li><a href="https://github.com/FlipperPA"><code>@FlipperPA</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/41">RealOrangeOne/django-tasks-db#41</a></li> <li><a href="https://github.com/imcatta"><code>@imcatta</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/43">RealOrangeOne/django-tasks-db#43</a></li> <li><a href="https://github.com/jrd"><code>@jrd</code></a> made their first contribution in <a href="https://redirect.github.com/RealOrangeOne/django-tasks-db/pull/46">RealOrangeOne/django-tasks-db#46</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/RealOrangeOne/django-tasks-db/compare/0.12.0...0.13.0">https://github.com/RealOrangeOne/django-tasks-db/compare/0.12.0...0.13.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/59702622d316a311b0f398a30b410b4e4e863c12"><code>5970262</code></a> Version 0.13.0</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/91091edcc75c1e774818c58c56ea001a30f4d129"><code>91091ed</code></a> Handle MySQL locked exceptions</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/32bb59b4816c31c6a6da439fd29b4ccad12712d1"><code>32bb59b</code></a> Don't exit gracefully if database is locked</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/f31466b5a0f8921b91778259213903abbb3494b8"><code>f31466b</code></a> Update ignore in tests for <code>get_locked</code> return value</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/f7983f19018861580f5a44beb7e225ff489f1fa0"><code>f7983f1</code></a> Fix locked database handling on SQLite</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/5c763ed1afcc5fd4ceefa5b341fe64938de477a2"><code>5c763ed</code></a> Add timeout in tests for SQLite</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/b768363a6ac89a8c2e49d4d3001a913e475d509e"><code>b768363</code></a> Remove legacy behaviour needed to support now-unsupported Django</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/846c732e4a0c36dee08ba8232160db6ea643e7eb"><code>846c732</code></a> Add conditionless ordering index for backends which don't support</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/0678497fec34d28f8d62b0256067a1cd73a28aee"><code>0678497</code></a> Only rename index if it exists</li> <li><a href="https://github.com/RealOrangeOne/django-tasks-db/commit/1dd3c49af3a5d3da878599034086ce0616b11512"><code>1dd3c49</code></a> Pin linters</li> <li>Additional commits viewable in <a href="https://github.com/RealOrangeOne/django-tasks-db/compare/0.12.0...0.13.0">compare view</a></li> </ul> </details> <br /> Updates `mcp` from 2.0.1 to 2.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/modelcontextprotocol/python-sdk/releases">mcp's releases</a>.</em></p> <blockquote> <h2>v2.2.0</h2> <p><code>pip install -U mcp</code>. Docs: <a href="https://py.sdk.modelcontextprotocol.io/">https://py.sdk.modelcontextprotocol.io/</a></p> <p>A few defaults changed in this release. If you run a server or client on 2.x, skim these first:</p> <h2>Behaviour changes</h2> <p><strong>HTTP client redirects are only followed within the endpoint's origin</strong> (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3397">#3397</a>)</p> <ul> <li><code>Client("https://...")</code>, <code>streamable_http_client</code> and <code>sse_client</code> follow a redirect only if it stays on the same scheme, host and port (or upgrades <code>http</code> to <code>https</code> on the same host).</li> <li>A redirect anywhere else is not followed: the call fails with <code>MCPError</code> and the session stays usable (an SSE connect fails with <code>httpx2.HTTPStatusError</code>). If that other URL is the server you meant, use it as the endpoint URL.</li> <li>The <code>follow_redirects</code> setting on an <code>httpx2.AsyncClient</code> you pass in is no longer used for MCP requests, so you don't need it for the trailing-slash redirect any more.</li> <li>The OAuth providers apply the same rule to their own requests.</li> </ul> <p><strong>Idle Streamable HTTP sessions now expire (legacy <=2025-11-25 spec(</strong> (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3395">#3395</a>)</p> <ul> <li>A stateful session with nothing in flight for 30 minutes is closed. The client's next request gets a 404 and it has to initialize again.</li> <li>Clients that keep the GET stream open (the SDK's <code>Client</code> does) are not affected. Neither are stateless servers or 2026-07-28 connections.</li> <li>A server also holds at most 10 000 sessions at once; beyond that, new sessions get a 503.</li> <li>To turn either off: <code>mcp.run(transport="streamable-http", session_idle_timeout=None, max_sessions=None)</code> (also on <code>streamable_http_app()</code> and <code>run_streamable_http_async()</code>).</li> </ul> <p><strong>The OAuth client checks the authorization server's <code>issuer</code> on the legacy path too</strong> (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3398">#3398</a>)</p> <ul> <li>For servers without protected resource metadata, authorization server metadata whose <code>issuer</code> isn't the server's own origin is now rejected with <code>OAuthFlowError: Authorization server metadata issuer mismatch</code>. The protected-resource-metadata path has done this since 2.0.</li> <li>A 403 that isn't an <code>insufficient_scope</code> challenge is returned to the caller instead of retried.</li> <li>If protected resource metadata can't be fetched because of a 5xx/429, the flow now stops instead of falling back to the legacy endpoints.</li> </ul> <p><strong>Two new <code>MCPDeprecationWarning</code>s</strong> (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3435">#3435</a>, <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3447">#3447</a>)</p> <ul> <li><code>ClientCredentialsOAuthProvider</code> / <code>PrivateKeyJWTOAuthProvider</code> without <code>issuer=</code>. Pass your authorization server's issuer URL; 3.0 will require it.</li> <li><code>AuthSettings</code> with <code>resource_server_url</code> set but <code>validate_token_resource</code> unset. Set it to <code>True</code> or <code>False</code>; 3.0 defaults it to <code>True</code>.</li> <li>Both keep working as before in 2.x; this mostly matters if your tests turn warnings into errors.</li> </ul> <h2>New</h2> <ul> <li><code>AuthSettings.validate_token_resource</code>: only accept tokens your <code>TokenVerifier</code> reports as issued for this server (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3447">#3447</a>).</li> <li><code>issuer=</code> on <code>ClientCredentialsOAuthProvider</code> and <code>PrivateKeyJWTOAuthProvider</code> (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3398">#3398</a>).</li> <li><code>session_idle_timeout=</code> and <code>max_sessions=</code> on the Streamable HTTP server entry points (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3395">#3395</a>).</li> </ul> <h2>Fixes</h2> <ul> <li>A client <code>DELETE</code> frees its session immediately, and a refused opening request no longer leaves a session behind (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/2455">#2455</a>, <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3228">#3228</a>, <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3300">#3300</a>).</li> <li><code>$ref</code>s in a tool's <code>outputSchema</code> resolve within that schema only; an unresolvable one surfaces as <code>RuntimeError: Invalid schema for tool ...</code> (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3394">#3394</a>).</li> </ul> <h2>Known gaps</h2> <p>The tasks extension (SEP-2663), DPoP (SEP-1932) and the <code>jwt-bearer</code> grant are not implemented yet; <a href="https://github.com/modelcontextprotocol/python-sdk/blob/main/ROADMAP.md">https://github.com/modelcontextprotocol/python-sdk/blob/main/ROADMAP.md</a> tracks them.</p> <h2>What's Changed</h2> <ul> <li>Gate draft PRs too and rewrite the auto-close comment by <a href="https://github.com/maxisbey"><code>@maxisbey</code></a> in <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/pull/3378">modelcontextprotocol/python-sdk#3378</a></li> <li>Resolve tool output-schema references within the schema document only by <a href="https://github.com/maxisbey"><code>@maxisbey</code></a> in <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/pull/3394">modelcontextprotocol/python-sdk#3394</a></li> <li>Expire idle Streamable HTTP sessions by default and cap concurrent sessions by <a href="https://github.com/maxisbey"><code>@maxisbey</code></a> in <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/pull/3395">modelcontextprotocol/python-sdk#3395</a></li> <li>Validate the authorization server metadata issuer on every discovery path by <a href="https://github.com/maxisbey"><code>@maxisbey</code></a> in <a href="https://redirect.github.com/modelcontextprotocol/python-sdk/pull/3398">modelcontextprotocol/python-sdk#3398</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/9972c21aa42054fb1450c5fc614761ed11847ec6"><code>9972c21</code></a> Replace RootModel wrappers with type aliases and TypeAdapter validation (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3470">#3470</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/fd66270926b98b28e6cca21b35ec5ba0e4855892"><code>fd66270</code></a> docs: refresh translations, and translate pages in parallel (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3458">#3458</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/08a3bc8eaf5bb69a6cb05ac708a86f5325977c20"><code>08a3bc8</code></a> docs: ask for AI disclosure on comments too (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3459">#3459</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/7bb486a10fa68681b262f063e36438cc45260f7d"><code>7bb486a</code></a> docs: stop presenting the in-memory client as the way to connect (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3443">#3443</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/0c9136841ff092987a20700ff9c2c9789bda2f40"><code>0c91368</code></a> Add AuthSettings.validate_token_resource to check a bearer token's resource (...</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/9771e6b59c775ecb2584849d389ce9efba23a541"><code>9771e6b</code></a> Keep following a relative redirect when the endpoint URL carries userinfo (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3">#3</a>...</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/a925e558938720d2a0f032c05ee3d72d26b80546"><code>a925e55</code></a> Bump the locked versions of eight dev and test dependencies (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3449">#3449</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/e8b94867acee4d2752e22c8b7008d703ba694b32"><code>e8b9486</code></a> Bump pymdown-extensions from 11.0 to 11.0.1 (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3285">#3285</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/c6762e821c527925f0b617db216d00fbd1d0bf99"><code>c6762e8</code></a> Follow redirects only within the MCP endpoint's origin (<a href="https://redirect.github.com/modelcontextprotocol/python-sdk/issues/3397">#3397</a>)</li> <li><a href="https://github.com/modelcontextprotocol/python-sdk/commit/5fd3abc5481de7891a2c27145e8289bca3f0da3a"><code>5fd3abc</code></a> Skip automatic docs previews for fork PRs and drop the setup-uv retry steps (...</li> <li>Additional commits viewable in <a href="https://github.com/modelcontextprotocol/python-sdk/compare/v2.0.1...v2.2.0">compare view</a></li> </ul> </details> <br /> Updates `prek` from 0.4.14 to 0.5.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/j178/prek/releases">prek's releases</a>.</em></p> <blockquote> <h2>0.5.3</h2> <h2>Release Notes</h2> <p>Released on 2026-09-13.</p> <h3>Enhancements</h3> <ul> <li>Add PEP 740 attestations for PyPI releases (<a href="https://redirect.github.com/j178/prek/pull/2705">#2705</a>)</li> <li>Add a <code>check-jsonc</code> builtin hook (<a href="https://redirect.github.com/j178/prek/pull/2682">#2682</a>)</li> <li>Allow disabling automatic uv installation (<a href="https://redirect.github.com/j178/prek/pull/2702">#2702</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix Julia additional dependency specifiers (<a href="https://redirect.github.com/j178/prek/pull/2703">#2703</a>)</li> <li>Update <code>granit-parser</code> to fix YAML flow indentation (<a href="https://redirect.github.com/j178/prek/pull/2707">#2707</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/clbarnes"><code>@clbarnes</code></a></li> <li><a href="https://github.com/j178"><code>@j178</code></a></li> <li><a href="https://github.com/tisonkun"><code>@tisonkun</code></a></li> </ul> <h2>Install prek 0.5.3</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.5.3/prek-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.5.3/prek-installer.ps1 | iex" </code></pre> <h3>Install prebuilt binaries via Homebrew</h3> <pre lang="sh"><code>brew install prek </code></pre> <h2>Download prek 0.5.3</h2> <table> <thead> <tr> <th>File</th> <th>Platform</th> <th>Checksum</th> </tr> </thead> <tbody> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-aarch64-apple-darwin.tar.gz">prek-aarch64-apple-darwin.tar.gz</a></td> <td>Apple Silicon macOS</td> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-x86_64-apple-darwin.tar.gz">prek-x86_64-apple-darwin.tar.gz</a></td> <td>Intel macOS</td> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-aarch64-pc-windows-msvc.zip">prek-aarch64-pc-windows-msvc.zip</a></td> <td>ARM64 Windows</td> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> <tr> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-x86_64-pc-windows-msvc.zip">prek-x86_64-pc-windows-msvc.zip</a></td> <td>x64 Windows</td> <td><a href="https://github.com/j178/prek/releases/download/v0.5.3/prek-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td> </tr> </tbody> </table> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/j178/prek/blob/master/CHANGELOG.md">prek's changelog</a>.</em></p> <blockquote> <h2>0.5.3</h2> <p>Released on 2026-09-13.</p> <h3>Enhancements</h3> <ul> <li>Add PEP 740 attestations for PyPI releases (<a href="https://redirect.github.com/j178/prek/pull/2705">#2705</a>)</li> <li>Add a <code>check-jsonc</code> builtin hook (<a href="https://redirect.github.com/j178/prek/pull/2682">#2682</a>)</li> <li>Allow disabling automatic uv installation (<a href="https://redirect.github.com/j178/prek/pull/2702">#2702</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix Julia additional dependency specifiers (<a href="https://redirect.github.com/j178/prek/pull/2703">#2703</a>)</li> <li>Update <code>granit-parser</code> to fix YAML flow indentation (<a href="https://redirect.github.com/j178/prek/pull/2707">#2707</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/clbarnes"><code>@clbarnes</code></a></li> <li><a href="https://github.com/j178"><code>@j178</code></a></li> <li><a href="https://github.com/tisonkun"><code>@tisonkun</code></a></li> </ul> <h2>0.5.2</h2> <p>Released on 2026-09-03.</p> <h3>Enhancements</h3> <ul> <li>Allow unknown tags by default in <code>check-yaml</code> (<a href="https://redirect.github.com/j178/prek/pull/2678">#2678</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/j178"><code>@j178</code></a></li> </ul> <h2>0.5.1</h2> <p>Released on 2026-09-01.</p> <h3>Enhancements</h3> <ul> <li>Add <code>--hide-status <passed|failed|skipped></code> for hook reports (<a href="https://redirect.github.com/j178/prek/pull/2644">#2644</a>)</li> <li>Add <code>prek init</code> for repository setup (<a href="https://redirect.github.com/j178/prek/pull/2636">#2636</a>)</li> <li>Apply hook <code>env</code> during environment creation (<a href="https://redirect.github.com/j178/prek/pull/2650">#2650</a>)</li> <li>Disable error snippets in <code>check-yaml</code> diagnostics (<a href="https://redirect.github.com/j178/prek/pull/2664">#2664</a>)</li> <li>Show hooks excluded by skip selectors (<a href="https://redirect.github.com/j178/prek/pull/2645">#2645</a>)</li> <li>Support Pixi for Conda environments (<a href="https://redirect.github.com/j178/prek/pull/2667">#2667</a>)</li> <li>Support <code>cargo-binstall</code> for Rust CLI dependencies (<a href="https://redirect.github.com/j178/prek/pull/2658">#2658</a>)</li> <li>Warn about unused keys in user settings (<a href="https://redirect.github.com/j178/prek/pull/2665">#2665</a>)</li> </ul> <h3>Bug fixes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/j178/prek/commit/b7eb6027125de7e3b67dd94039a4f69abf3a5fb0"><code>b7eb602</code></a> Bump version to 0.5.3 (<a href="https://redirect.github.com/j178/prek/issues/2708">#2708</a>)</li> <li><a href="https://github.com/j178/prek/commit/4644f81e1c86eeb8e22a1ba4aaa6dec99b4266c5"><code>4644f81</code></a> Update granit-parser to fix YAML flow indentation (<a href="https://redirect.github.com/j178/prek/issues/2707">#2707</a>)</li> <li><a href="https://github.com/j178/prek/commit/87f2ea44c258dc6606ca5556a7b3ff0d9a0a601e"><code>87f2ea4</code></a> Use self-repository syntax in CI workflows</li> <li><a href="https://github.com/j178/prek/commit/f39abae3cafd9ff245843b790fdd9b7c2e933b5c"><code>f39abae</code></a> Add PEP 740 attestations for PyPI releases (<a href="https://redirect.github.com/j178/prek/issues/2705">#2705</a>)</li> <li><a href="https://github.com/j178/prek/commit/f4924dccacd86afab22ae45e634d7f9ca12dd59e"><code>f4924dc</code></a> Allow disabling automatic uv installation (<a href="https://redirect.github.com/j178/prek/issues/2702">#2702</a>)</li> <li><a href="https://github.com/j178/prek/commit/156c0cec12847513ba764d1d87543ab6d0785c64"><code>156c0ce</code></a> Fix Julia additional dependency specifiers (<a href="https://redirect.github.com/j178/prek/issues/2703">#2703</a>)</li> <li><a href="https://github.com/j178/prek/commit/c3ede77b83e7d578e31d076863b755b296256a21"><code>c3ede77</code></a> Add a <code>check-jsonc</code> builtin hook (<a href="https://redirect.github.com/j178/prek/issues/2682">#2682</a>)</li> <li><a href="https://github.com/j178/prek/commit/c0b9749c3ee43f42efd0116624a7922feded3fc2"><code>c0b9749</code></a> Verify checksums for PyPI/mirror wheel installs (<a href="https://redirect.github.com/j178/prek/issues/2688">#2688</a>)</li> <li><a href="https://github.com/j178/prek/commit/fbe5c66737e679f31018dd438d16774c19c6774d"><code>fbe5c66</code></a> Update prek hooks (<a href="https://redirect.github.com/j178/prek/issues/2690">#2690</a>)</li> <li><a href="https://github.com/j178/prek/commit/4687a2c57f8ae58cf0e66b65baf49ea72ccb62ba"><code>4687a2c</code></a> Fix <code>check-hooks-apply</code> for builtin Windows filename checks</li> <li>Additional commits viewable in <a href="https://github.com/j178/prek/compare/v0.4.14...v0.5.3">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.1 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> <h2>0.16.7</h2> <p>Released on 2026-09-10.</p> <h3>Preview features</h3> <ul> <li>[<code>ruff</code>] Add rule for default values on method receivers (<code>RUF077</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/26700">#26700</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </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.15.1...0.16.8">compare view</a></li> </ul> </details> <br /> Updates `pytest-randomly` from 4.1.0 to 5.0.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's changelog</a>.</em></p> <blockquote> <h2>5.0.0 (2026-09-01)</h2> <ul> <li> <p>Support Python 3.15.</p> </li> <li> <p>Shuffle tests in a wrapper around the <code>pytest_collection_modifyitems</code> hook, guaranteeing that the shuffle runs before all other plugins’ implementations of the hook.</p> <p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code> hook implementation. When another plugin also implemented the hook with <code>tryfirst</code>, as pytest-django does, whichever plugin pytest happened to register later ran first. Registration order comes from package metadata on disk, which can differ between seemingly identical environments — even two containers built from the same <code>Dockerfile</code>, or the same virtual environment after reinstalling a package. As a result, the same seed could yield different test orders in different environments. Worse, in environments where pytest-randomly ended up shuffling last, it silently destroyed the other plugin’s ordering — for pytest-django, the grouping of database tests that mirrors Django’s test runner (non-transactional database tests, then transactional ones, then the rest).</p> <p>Now the shuffle always runs first, and plugins that group tests with a stable sort apply their grouping on top of the shuffled order, so the final order is reproducible from the seed alone. In environments that previously hit the reversed hook order, upgrading changes the test order for a given seed — restoring both reproducibility and other plugins’ grouping.</p> <p><code>PR [#746](https://github.com/pytest-dev/pytest-randomly/issues/746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](https://github.com/pytest-dev/pytest-randomly/issues/701) <https://github.com/pytest-dev/pytest-randomly/issues/701></code></strong>.</p> </li> <li> <p>Require pytest 8+, the first version to require a version of pluggy that supports hook wrappers, as used by the above fix.</p> <p><code>PR [#746](https://github.com/pytest-dev/pytest-randomly/issues/746) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></code>__\’s default random state at the start of every test, if it is installed.</p> <p>Thanks to Rahul Kumar in <code>PR [#735](https://github.com/pytest-dev/pytest-randomly/issues/735) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></code>__. This makes builds with uv about nine times faster, since uv runs the backend natively, without creating a build environment or spawning a Python process. Additionally, source distributions no longer include test files, which setuptools previously included incompletely, missing the files needed to actually run them.</p> </li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a> Version 5.0.0</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a> Shuffle before other plugins' collection hooks (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a> Fix podcast link in README (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a> Reset Polyfactory's default random state on each test (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a> Upgrade dependencies (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a> Support Python 3.15 (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a> Switch build backend to uv_build (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">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 o…
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.
Polyfactory keeps its own default
random.Random()instance (polyfactory.constants.DEFAULT_RANDOM) separate from Faker's, so it wasn't being reseeded along with the other libraries pytest-randomly already supports.This adds Polyfactory to the same try/except reseed pattern used for factory_boy, Faker, Model Bakery, and NumPy, so factories using the default random generator get deterministic, per-test values under
--randomly-seed. Factories that callseed_random()themselves are unaffected, same as before.Closes #720.