Repository navigation
Commit 4eb2156
authored
Build(deps-dev): Bump the minor group with 3 updates (#290)
Bumps the minor group with 3 updates:
[mypy](https://github.com/python/mypy),
[uv](https://github.com/astral-sh/uv) and
[nox](https://github.com/wntrblm/nox).
Updates `mypy` from 2.1.0 to 2.3.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's
changelog</a>.</em></p>
<blockquote>
<h1>Mypy Release Notes</h1>
<h2>Next Release</h2>
<h3>Packaging changes</h3>
<ul>
<li>No longer provide mypyc-accelerated wheels for macOS x86_64
[mypyc-wheels <a
href="https://redirect.github.com/python/mypy/issues/119">#119</a>](<a
href="https://redirect.github.com/mypyc/mypy_mypyc-wheels/pull/119">mypyc/mypy_mypyc-wheels#119</a>)</li>
</ul>
<h2>Mypy 2.3</h2>
<p>We've just uploaded mypy 2.3.0 to the Python Package Index (<a
href="https://pypi.org/project/mypy/">PyPI</a>).
Mypy is a static type checker for Python. This release includes new
features, performance
improvements and bug fixes. You can install it as follows:</p>
<pre><code>python3 -m pip install -U mypy
</code></pre>
<p>You can read the full documentation for this release on <a
href="http://mypy.readthedocs.io">Read the Docs</a>.</p>
<h3>The Upcoming Switch to the New Native Parser</h3>
<p>We are planning to enable the new native parser
(<code>--native-parser</code>) by
default soon. We recommend that you test the native parser in your
projects and report
any issues in the <a href="https://github.com/python/mypy/issues">mypy
issue tracker</a>.</p>
<h3>Mypyc Free-threading Memory Safety</h3>
<p>Free-threaded Python builds that don't have the GIL require
additional synchronization
primitives or lock-free algorithms to ensure memory safety when there
are race conditions
(for example, when a thread reads a list item while another thread
writes the same list
item concurrently). This release greatly improves memory safety of free
threading.</p>
<p>List operations are now memory-safe on free threaded Python builds,
even in the presence of
race conditions. This has some performance cost. For list-heavy
workloads, using
<code>librt.vecs.vec</code> instead of list is often significantly
faster, but note that <code>vec</code> is not
(and likely won't be) fully memory safe, and the user is expected to
avoid race conditions.
The newly introduced <code>librt.threading.Lock</code> helps with this.
Using variable-length tuples
can also be more efficient than lists, since tuples are immutable and
don't require
expensive synchronization to ensure memory safety.</p>
<p>Instance attribute access is also (mostly) memory safe now on
free-threaded builds in
the presence of race conditions. We are planning to fix the remaining
unsafe cases in a
future release.</p>
<p>Full list of changes:</p>
<ul>
<li>Make attribute access memory safe on free-threaded builds (Jukka
Lehtosalo, PR <a
href="https://redirect.github.com/python/mypy/pull/21705">21705</a>)</li>
<li>Fix unsafe borrowing of instance attributes with free-threading
(Jukka Lehtosalo, PR <a
href="https://redirect.github.com/python/mypy/pull/21688">21688</a>)</li>
<li>Make list get/set item more memory safe on free-threaded builds
(Jukka Lehtosalo, PR <a
href="https://redirect.github.com/python/mypy/pull/21683">21683</a>)</li>
<li>Don't borrow list items on free-threaded builds (Jukka Lehtosalo, PR
<a
href="https://redirect.github.com/python/mypy/pull/21679">21679</a>)</li>
<li>Make multiple assignment from list memory-safe on free-threaded
builds (Jukka Lehtosalo, PR <a
href="https://redirect.github.com/python/mypy/pull/21684">21684</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python/mypy/commit/8aabf8435357eaffceca7237f371e293b8168e54"><code>8aabf84</code></a>
Drop +dev from version</li>
<li><a
href="https://github.com/python/mypy/commit/4d8ad2ab5e86c99581b73775f2c00b9b8265b589"><code>4d8ad2a</code></a>
Update changelog for 2.3 release (<a
href="https://redirect.github.com/python/mypy/issues/21728">#21728</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/2c2154672040c52e481f423854d104e6cf172585"><code>2c21546</code></a>
[mypyc] Update documentation of race conditions under free threading (<a
href="https://redirect.github.com/python/mypy/issues/21726">#21726</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/a9f62a3cf98a58a7a2607b7c81695802b39f5edc"><code>a9f62a3</code></a>
[mypyc] Make attribute access memory safe on free-threaded builds (<a
href="https://redirect.github.com/python/mypy/issues/21705">#21705</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/0faa413ebf7c924a864ef5dabd70303d898e7766"><code>0faa413</code></a>
Use <code>PYODIDE</code> environment variable for Emscripten
cross-compilation detection...</li>
<li><a
href="https://github.com/python/mypy/commit/3d75cdb09f0928fa8b83e5ef03572ed878ac8d09"><code>3d75cdb</code></a>
[mypyc] Borrow final attributes more aggressively (<a
href="https://redirect.github.com/python/mypy/issues/21702">#21702</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/24c237d85b48f618e655ffff1dc0f19089d9b599"><code>24c237d</code></a>
[mypyc] Improve documentation of Final (<a
href="https://redirect.github.com/python/mypy/issues/21713">#21713</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/b5be217392b9b2771d1764066b9d600bf93ce7a8"><code>b5be217</code></a>
[mypyc] Update free threading Python compatibility docs (<a
href="https://redirect.github.com/python/mypy/issues/21711">#21711</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/cbcb51add3094ec91b29cdd4c624943bf251b63f"><code>cbcb51a</code></a>
Narrow for frozendict membership check (<a
href="https://redirect.github.com/python/mypy/issues/21709">#21709</a>)</li>
<li><a
href="https://github.com/python/mypy/commit/af2bc0f3cc7f2f129f0c11294158d0c292692c3d"><code>af2bc0f</code></a>
Sync typeshed (<a
href="https://redirect.github.com/python/mypy/issues/21707">#21707</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/python/mypy/compare/v2.1.0...v2.3.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `uv` from 0.11.26 to 0.12.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/uv/releases">uv's
releases</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<h2>Release Notes</h2>
<p>Released on 2026-07-28.</p>
<p>Since we released uv <a
href="https://github.com/astral-sh/uv/releases/tag/0.11.0">0.11.0</a> in
March, we've accumulated changes that improve correctness, safety, and
compatibility with specifications, but could break some workflows. This
release contains those changes; many have been marked as breaking out of
an abundance of caution.</p>
<p><strong>We expect most users to be able to upgrade without making
changes.</strong></p>
<p>There are no breaking changes to the configuration of the <a
href="https://docs.astral.sh/uv/concepts/build-backend/">uv build
backend</a>. If your <code>[build-system]</code> table includes an upper
bound on <code>uv_build</code>, update it to allow <code>uv_build</code>
0.12, e.g., <code>uv_build>=0.11.32,<0.13</code>.</p>
<h3>Breaking changes</h3>
<ul>
<li>
<p><strong>Define build systems by default with <code>uv
init</code></strong> (<a
href="https://redirect.github.com/astral-sh/uv/pull/19197">#19197</a>)</p>
<p>Projects created with <code>uv init</code> now declare a build system
and are packaged by default. This was the default project layout all the
way back in <a
href="https://github.com/astral-sh/uv/releases/tag/0.3.0">v0.3</a>, but
we found that the use of the <code>hatchling</code> build system was
confusing to newcomers and consequently dropped use of a build system by
default in <a
href="https://github.com/astral-sh/uv/releases/tag/0.4.0">v0.4</a>.
Since then, we've created our own build system (<code>uv_build</code>)
with tight integration with uv and are excited to restore the default to
a best-practice project layout.</p>
<p>Previously, <code>uv init example</code> created an unpackaged layout
containing <code>main.py</code> and a <code>pyproject.toml</code>
without a build system. The project could declare dependencies but was
not itself installed into its virtual environment.</p>
<p>Now, <code>uv init example</code> defines a
<code>[build-system]</code> using <code>uv_build</code>, places
application source code in <code>src/example</code>, and includes a
<code>[project.scripts]</code> entry named <code>example</code>.
Defining a build system allows the project to be imported from tests or
other code, installed as a dependency, and run as a command:</p>
<pre lang="console"><code>$ uv init example
$ cd example
$ uv run example
Hello from example!
</code></pre>
<p>Existing projects are unaffected. Use <a
href="https://docs.astral.sh/uv/concepts/projects/init/#creating-a-project-without-a-build-system"><code>uv
init --no-package example</code></a> to create the previous unpackaged
layout without a build system.</p>
<p>See the <a
href="https://docs.astral.sh/uv/concepts/projects/init/#applications">project
creation documentation</a> for more details.</p>
<p>This stabilizes the <code>packaged-init</code> preview feature.</p>
</li>
<li>
<p><strong>Reject unsupported source distribution and wheel archive
formats</strong> (<a
href="https://redirect.github.com/astral-sh/uv/pull/18927">#18927</a>)</p>
<p><a href="https://peps.python.org/pep-0625/">PEP 625</a> requires <a
href="https://docs.astral.sh/uv/concepts/resolution/#source-distribution">source
distributions</a> to use <code>.tar.gz</code> archives. Previously, uv
also accepted legacy formats such as <code>.tar.bz2</code> and
<code>.tar.xz</code>. Those formats are now rejected, including when
referenced by an existing lockfile. Legacy <code>.zip</code> source
distributions remain supported for backwards compatibility.</p>
<p>Wheels and other ZIP archives can no longer contain entries
compressed with bzip2, LZMA, or XZ. Entries must use the stored,
DEFLATE, or zstd compression methods.</p>
<p>Removing support for uncommon compression methods reduces uv's
compression dependencies and the attack surface exposed when processing
untrusted packages.</p>
<p>You cannot opt out of this behavior. If you depend on a legacy source
distribution that uses an unsupported format, we recommend rebuilding it
as a <code>.tar.gz</code> archive and regenerating any lockfile
containing references to the legacy archive.</p>
</li>
<li>
<p><strong>Reject wheel files that could replace the Python
interpreter</strong> (<a
href="https://redirect.github.com/astral-sh/uv/pull/20748">#20748</a>,
<a
href="https://redirect.github.com/astral-sh/uv/pull/20749">#20749</a>)</p>
<p>uv already rejected wheel entry points named <code>python</code>, but
case variants such as <code>Python</code> were still accepted. On
case-insensitive filesystems, including common macOS and Windows setups,
these entry points could overwrite the virtual environment's
interpreter.</p>
<p>Wheels could also place interpreter files in their
<code>.data/scripts</code> directory or in paths such as
<code>.data/data/bin/python</code>, bypassing the entry-point check and
replacing the interpreter during installation.</p>
</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/uv/blob/main/CHANGELOG.md">uv's
changelog</a>.</em></p>
<blockquote>
<h2>0.12.0</h2>
<p>Released on 2026-07-28.</p>
<p>Since we released uv <a
href="https://github.com/astral-sh/uv/releases/tag/0.11.0">0.11.0</a> in
March, we've accumulated changes that improve correctness, safety, and
compatibility with specifications, but could break some workflows. This
release contains those changes; many have been marked as breaking out of
an abundance of caution.</p>
<p><strong>We expect most users to be able to upgrade without making
changes.</strong></p>
<p>There are no breaking changes to the configuration of the <a
href="https://docs.astral.sh/uv/concepts/build-backend/">uv build
backend</a>. If your <code>[build-system]</code> table includes an upper
bound on <code>uv_build</code>, update it to allow <code>uv_build</code>
0.12, e.g., <code>uv_build>=0.11.32,<0.13</code>.</p>
<h3>Breaking changes</h3>
<ul>
<li>
<p><strong>Define build systems by default with <code>uv
init</code></strong> (<a
href="https://redirect.github.com/astral-sh/uv/pull/19197">#19197</a>)</p>
<p>Projects created with <code>uv init</code> now declare a build system
and are packaged by default. This was the default project layout all the
way back in <a
href="https://github.com/astral-sh/uv/releases/tag/0.3.0">v0.3</a>, but
we found that the use of the <code>hatchling</code> build system was
confusing to newcomers and consequently dropped use of a build system by
default in <a
href="https://github.com/astral-sh/uv/releases/tag/0.4.0">v0.4</a>.
Since then, we've created our own build system (<code>uv_build</code>)
with tight integration with uv and are excited to restore the default to
a best-practice project layout.</p>
<p>Previously, <code>uv init example</code> created an unpackaged layout
containing <code>main.py</code> and a <code>pyproject.toml</code>
without a build system. The project could declare dependencies but was
not itself installed into its virtual environment.</p>
<p>Now, <code>uv init example</code> defines a
<code>[build-system]</code> using <code>uv_build</code>, places
application source code in <code>src/example</code>, and includes a
<code>[project.scripts]</code> entry named <code>example</code>.
Defining a build system allows the project to be imported from tests or
other code, installed as a dependency, and run as a command:</p>
<pre lang="console"><code>$ uv init example
$ cd example
$ uv run example
Hello from example!
</code></pre>
<p>Existing projects are unaffected. Use <a
href="https://docs.astral.sh/uv/concepts/projects/init/#creating-a-project-without-a-build-system"><code>uv
init --no-package example</code></a> to create the previous unpackaged
layout without a build system.</p>
<p>See the <a
href="https://docs.astral.sh/uv/concepts/projects/init/#applications">project
creation documentation</a> for more details.</p>
<p>This stabilizes the <code>packaged-init</code> preview feature.</p>
</li>
<li>
<p><strong>Reject unsupported source distribution and wheel archive
formats</strong> (<a
href="https://redirect.github.com/astral-sh/uv/pull/18927">#18927</a>)</p>
<p><a href="https://peps.python.org/pep-0625/">PEP 625</a> requires <a
href="https://docs.astral.sh/uv/concepts/resolution/#source-distribution">source
distributions</a> to use <code>.tar.gz</code> archives. Previously, uv
also accepted legacy formats such as <code>.tar.bz2</code> and
<code>.tar.xz</code>. Those formats are now rejected, including when
referenced by an existing lockfile. Legacy <code>.zip</code> source
distributions remain supported for backwards compatibility.</p>
<p>Wheels and other ZIP archives can no longer contain entries
compressed with bzip2, LZMA, or XZ. Entries must use the stored,
DEFLATE, or zstd compression methods.</p>
<p>Removing support for uncommon compression methods reduces uv's
compression dependencies and the attack surface exposed when processing
untrusted packages.</p>
<p>You cannot opt out of this behavior. If you depend on a legacy source
distribution that uses an unsupported format, we recommend rebuilding it
as a <code>.tar.gz</code> archive and regenerating any lockfile
containing references to the legacy archive.</p>
</li>
<li>
<p><strong>Reject wheel files that could replace the Python
interpreter</strong> (<a
href="https://redirect.github.com/astral-sh/uv/pull/20748">#20748</a>,
<a
href="https://redirect.github.com/astral-sh/uv/pull/20749">#20749</a>)</p>
<p>uv already rejected wheel entry points named <code>python</code>, but
case variants such as <code>Python</code> were still accepted. On
case-insensitive filesystems, including common macOS and Windows setups,
these entry points could overwrite the virtual environment's
interpreter.</p>
<p>Wheels could also place interpreter files in their
<code>.data/scripts</code> directory or in paths such as
<code>.data/data/bin/python</code>, bypassing the entry-point check and
replacing the interpreter during installation.</p>
<p>uv now rejects case-insensitive variants of reserved interpreter
names and wheel data files that would be installed over an interpreter.
This includes names such as <code>Python</code>, <code>python.py</code>,
and <code>Python.exe</code>, along with other reserved interpreter names
and their versioned variants.</p>
<p>You cannot opt out of these checks. Rename conflicting entry points
or wheel data files and rebuild the affected wheel.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/uv/commit/b88d7c5c46cbe3c9896544f10255f85a8f0a8a5e"><code>b88d7c5</code></a>
Archive the 0.11.x changelog (<a
href="https://redirect.github.com/astral-sh/uv/issues/20777">#20777</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/faff95263911ccb5cb846d1bbb0720d86d96c37c"><code>faff952</code></a>
Update Rust crate jiff to v0.2.34 (<a
href="https://redirect.github.com/astral-sh/uv/issues/20710">#20710</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/4c28d9cdb23fd441aa833f3196e10a3f42f94c4b"><code>4c28d9c</code></a>
Keep changelog paragraphs on single lines (<a
href="https://redirect.github.com/astral-sh/uv/issues/20778">#20778</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/43a128899b35926ed74e40009b6612ebab49af71"><code>43a1288</code></a>
Bump version to 0.12.0 (<a
href="https://redirect.github.com/astral-sh/uv/issues/20775">#20775</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/8fe5f805a47965ae00f58f30e795f6a56e77e4cd"><code>8fe5f80</code></a>
Sync latest Python releases (<a
href="https://redirect.github.com/astral-sh/uv/issues/20682">#20682</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/b187a5124c8168ce0876ccd8c076a1b9744a213b"><code>b187a51</code></a>
Honor certificate overrides when running remote scripts (<a
href="https://redirect.github.com/astral-sh/uv/issues/20767">#20767</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/6e79013a8f424b091292e7d0b7dccd48797f6bbd"><code>6e79013</code></a>
Package explicitly requested applications by default (<a
href="https://redirect.github.com/astral-sh/uv/issues/20773">#20773</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/e4602dee768f062c900afb465057cd360f1d2c26"><code>e4602de</code></a>
Reject broken <code>.venv</code> symlinks and surface metadata errors
(<a
href="https://redirect.github.com/astral-sh/uv/issues/20433">#20433</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/9391f97f1a7907f82c4c60032b0ea5bec81c4277"><code>9391f97</code></a>
Reject multi-dot pylock filenames (<a
href="https://redirect.github.com/astral-sh/uv/issues/20440">#20440</a>)</li>
<li><a
href="https://github.com/astral-sh/uv/commit/06bba1204e12383a7683eb01e53e09f47de3f9ba"><code>06bba12</code></a>
Honor explicit certificate sources even when empty (<a
href="https://redirect.github.com/astral-sh/uv/issues/20741">#20741</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/uv/compare/0.11.26...0.12.0">compare
view</a></li>
</ul>
</details>
<br />
Updates `nox` from 2026.4.10 to 2026.7.11
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/wntrblm/nox/releases">nox's
releases</a>.</em></p>
<blockquote>
<h2>2026.07.11 🏪</h2>
<p>This release drops Python 3.9 and brings a batch of performance
improvements, like caching uv detection and interpreter discovery, plus
lazy module imports on Python 3.15. Various bugs were fixed as well.</p>
<p>We'd like to thank the following folks who contributed to this
release:</p>
<ul>
<li><a
href="https://github.com/henryiii"><code>@henryiii</code></a></li>
<li><a
href="https://github.com/davidhewitt"><code>@davidhewitt</code></a></li>
<li><a href="https://github.com/SAY-5"><code>@SAY-5</code></a> (first
contribution)</li>
<li><a
href="https://github.com/Himanshuagrawal4"><code>@Himanshuagrawal4</code></a>
(first contribution)</li>
<li><a href="https://github.com/TejasAmle"><code>@TejasAmle</code></a>
(first contribution)</li>
<li><a
href="https://github.com/felixfontein"><code>@felixfontein</code></a>
(first contribution)</li>
</ul>
<p>Features:</p>
<ul>
<li>Drop Python 3.9 by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1049">wntrblm/nox#1049</a></li>
<li>Add <code>return_code</code> property to <code>CommandFailed</code>
exception by <a
href="https://github.com/felixfontein"><code>@felixfontein</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1129">wntrblm/nox#1129</a></li>
</ul>
<p>Performance:</p>
<ul>
<li>Cache session-name normalization, uv detection, interpreter
discovery, and metadata reads by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1113">wntrblm/nox#1113</a></li>
<li>Lazy modules on Python 3.15 by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1115">wntrblm/nox#1115</a></li>
</ul>
<p>Fixes:</p>
<ul>
<li>Script-mode pip resolution on Windows and
<code>--download-python</code> fallback by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1110">wntrblm/nox#1110</a></li>
<li>Don't crash when a parametrized session has an empty parameter list
by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1109">wntrblm/nox#1109</a></li>
<li>Hash fully non-ASCII session names instead of returning the envdir
by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1108">wntrblm/nox#1108</a></li>
<li>Interpreter-resolution edge cases in <code>virtualenv.py</code> by
<a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1111">wntrblm/nox#1111</a></li>
<li>Create missing parent directories for the session cache dir by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1104">wntrblm/nox#1104</a></li>
<li>Enforce <code>--error-on-external-run</code> even when
<code>log=False</code> by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1107">wntrblm/nox#1107</a></li>
<li>Handle <code>=</code> in <code>set_env</code> values and out-of-tree
<code>change_dir</code> in <code>tox-to-nox</code> by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1105">wntrblm/nox#1105</a></li>
<li>Return empty dict from <code>load_toml</code> when script file is
missing by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1096">wntrblm/nox#1096</a></li>
<li>Show envvars in CLI help by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1085">wntrblm/nox#1085</a></li>
</ul>
<p>Documentation:</p>
<ul>
<li>Add PyO3 as a user by <a
href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1123">wntrblm/nox#1123</a></li>
<li>List micromamba in <code>--default-venv-backend</code> supported
names by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1092">wntrblm/nox#1092</a></li>
<li>Clarify <code>session.notify</code> target docs by <a
href="https://github.com/Himanshuagrawal4"><code>@Himanshuagrawal4</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1099">wntrblm/nox#1099</a></li>
<li>Document venv backend for EOL Python by <a
href="https://github.com/Himanshuagrawal4"><code>@Himanshuagrawal4</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1101">wntrblm/nox#1101</a></li>
<li>Fix typo in README installation section by <a
href="https://github.com/TejasAmle"><code>@TejasAmle</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1097">wntrblm/nox#1097</a></li>
</ul>
<p>Internal changes:</p>
<ul>
<li>Add Python 3.15 to the test matrix and classifiers by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1133">wntrblm/nox#1133</a></li>
<li>Isolate <code>run_nox</code> envdir to fix flaky
<code>test_main_requires</code> by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1134">wntrblm/nox#1134</a></li>
<li>Assorted simplifications and dead-code removal by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1112">wntrblm/nox#1112</a></li>
<li>Remove Python 3.9-era pins/backports and tighten generator
annotations by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1106">wntrblm/nox#1106</a></li>
<li>Run tests in parallel by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/965">wntrblm/nox#965</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/wntrblm/nox/blob/main/CHANGELOG.md">nox's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>2026.07.11</h2>
<p>This release drops Python 3.9 and brings a batch of performance
improvements,
like caching uv detection and interpreter discovery, plus lazy module
imports
on Python 3.15. Various bugs were fixed as well.</p>
<p>We'd like to thank the following folks who contributed to this
release:</p>
<ul>
<li><a
href="https://github.com/henryiii"><code>@henryiii</code></a></li>
<li><a
href="https://github.com/davidhewitt"><code>@davidhewitt</code></a></li>
<li><a href="https://github.com/SAY-5"><code>@SAY-5</code></a> (first
contribution)</li>
<li><a
href="https://github.com/Himanshuagrawal4"><code>@Himanshuagrawal4</code></a>
(first contribution)</li>
<li><a href="https://github.com/TejasAmle"><code>@TejasAmle</code></a>
(first contribution)</li>
<li><a
href="https://github.com/felixfontein"><code>@felixfontein</code></a>
(first contribution)</li>
</ul>
<p>Features:</p>
<ul>
<li>Drop Python 3.9 by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1049">wntrblm/nox#1049</a></li>
<li>Add <code>return_code</code> property to <code>CommandFailed</code>
exception by <a
href="https://github.com/felixfontein"><code>@felixfontein</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1129">wntrblm/nox#1129</a></li>
</ul>
<p>Performance:</p>
<ul>
<li>Cache session-name normalization, uv detection, interpreter
discovery, and metadata reads by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1113">wntrblm/nox#1113</a></li>
<li>Lazy modules on Python 3.15 by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1115">wntrblm/nox#1115</a></li>
</ul>
<p>Fixes:</p>
<ul>
<li>Script-mode pip resolution on Windows and
<code>--download-python</code> fallback by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1110">wntrblm/nox#1110</a></li>
<li>Don't crash when a parametrized session has an empty parameter list
by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1109">wntrblm/nox#1109</a></li>
<li>Hash fully non-ASCII session names instead of returning the envdir
by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1108">wntrblm/nox#1108</a></li>
<li>Interpreter-resolution edge cases in <code>virtualenv.py</code> by
<a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1111">wntrblm/nox#1111</a></li>
<li>Create missing parent directories for the session cache dir by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1104">wntrblm/nox#1104</a></li>
<li>Enforce <code>--error-on-external-run</code> even when
<code>log=False</code> by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1107">wntrblm/nox#1107</a></li>
<li>Handle <code>=</code> in <code>set_env</code> values and out-of-tree
<code>change_dir</code> in <code>tox-to-nox</code> by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1105">wntrblm/nox#1105</a></li>
<li>Return empty dict from <code>load_toml</code> when script file is
missing by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1096">wntrblm/nox#1096</a></li>
<li>Show envvars in CLI help by <a
href="https://github.com/henryiii"><code>@henryiii</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1085">wntrblm/nox#1085</a></li>
</ul>
<p>Documentation:</p>
<ul>
<li>Add PyO3 as a user by <a
href="https://github.com/davidhewitt"><code>@davidhewitt</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1123">wntrblm/nox#1123</a></li>
<li>List micromamba in <code>--default-venv-backend</code> supported
names by <a href="https://github.com/SAY-5"><code>@SAY-5</code></a> in
<a
href="https://redirect.github.com/wntrblm/nox/pull/1092">wntrblm/nox#1092</a></li>
<li>Clarify <code>session.notify</code> target docs by <a
href="https://github.com/Himanshuagrawal4"><code>@Himanshuagrawal4</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1099">wntrblm/nox#1099</a></li>
<li>Document venv backend for EOL Python by <a
href="https://github.com/Himanshuagrawal4"><code>@Himanshuagrawal4</code></a>
in <a
href="https://redirect.github.com/wntrblm/nox/pull/1101">wntrblm/nox#1101</a></li>
<li>Fix typo in README installation section by <a
href="https://github.com/TejasAmle"><code>@TejasAmle</code></a> in <a
href="https://redirect.github.com/wntrblm/nox/pull/1097">wntrblm/nox#1097</a></li>
</ul>
<p>Internal changes:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/wntrblm/nox/commit/3284968a16fa5bd7fc0cc64a69a531404ccb4756"><code>3284968</code></a>
chore: prepare release 2026.07.11 (<a
href="https://redirect.github.com/wntrblm/nox/issues/1132">#1132</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/d73f96a257af685c948326cd37a3125ffbe778dc"><code>d73f96a</code></a>
ci: add Python 3.15 to the test matrix and classifiers (<a
href="https://redirect.github.com/wntrblm/nox/issues/1133">#1133</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/53919851d49123393a6502df05a1350b0c2cfe0b"><code>5391985</code></a>
test: isolate run_nox envdir to fix flaky test_main_requires (<a
href="https://redirect.github.com/wntrblm/nox/issues/1134">#1134</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/390d8170819d239b278137503e691419c065fa6d"><code>390d817</code></a>
feat: add return_code to CommandFailed. (<a
href="https://redirect.github.com/wntrblm/nox/issues/1129">#1129</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/f1d521079f2c8d9d22494ce30d0f31e8a9cd7b86"><code>f1d5210</code></a>
chore(deps): bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/wntrblm/nox/issues/1125">#1125</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/0894b7340d4012220e146bd56657edde41d91000"><code>0894b73</code></a>
chore(deps): bump the pre-commit group with 4 updates (<a
href="https://redirect.github.com/wntrblm/nox/issues/1126">#1126</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/9b747edbc2c72f147325742add03c2c201d7f018"><code>9b747ed</code></a>
ci: experimental MSYS2/MinGW test run (<a
href="https://redirect.github.com/wntrblm/nox/issues/1122">#1122</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/8a44270d63c7d232bf4dd0773a12e1d8b43649d4"><code>8a44270</code></a>
docs: add PyO3 as a user (<a
href="https://redirect.github.com/wntrblm/nox/issues/1123">#1123</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/5bd0f8357ef4bee910b03373b1cdb24de0a71f35"><code>5bd0f83</code></a>
perf: lazy modules on Python 3.15 (<a
href="https://redirect.github.com/wntrblm/nox/issues/1115">#1115</a>)</li>
<li><a
href="https://github.com/wntrblm/nox/commit/982fcfa6a5a5fa10c7777be0d60acd784121e319"><code>982fcfa</code></a>
chore(deps): bump dependency-groups in the pre-commit group (<a
href="https://redirect.github.com/wntrblm/nox/issues/1121">#1121</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/wntrblm/nox/compare/2026.04.10...2026.07.11">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>1 file changed
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
| 75 | + | |
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
83 | | - | |
84 | | - | |
| 83 | + | |
| 84 | + | |
85 | 85 | | |
86 | 86 | | |
87 | 87 | | |
| |||
0 commit comments