build(deps-dev): Bump the "dev-only" group with 1 update across multiple ecosystems (#4479)

Bumps the dev-only group with 1 update in the /examples/wheel directory:
[pypiserver](https://github.com/pypiserver/pypiserver).
Bumps the dev-only group with 1 update in the
/tests/integration/unified_pypi directory:
[colorama](https://github.com/tartley/colorama).
Bumps the dev-only group with 1 update in the /tests/multi_pypi/alpha
directory:
[more-itertools](https://github.com/more-itertools/more-itertools).
Bumps the dev-only group with 1 update in the /tests/multi_pypi/beta
directory:
[more-itertools](https://github.com/more-itertools/more-itertools).

Updates `pypiserver` from 2.4.2 to 2.4.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pypiserver/pypiserver/releases">pypiserver's
releases</a>.</em></p>
<blockquote>
<h2>v2.4.3</h2>
<blockquote>
<p>[!NOTE]
A few maintenance updates and fixes.
Thanks to all who helped improving the repo these times!</p>
</blockquote>
<h2>Summary:</h2>
<p>Core focus:</p>
<ol>
<li>important version updates</li>
<li>bug fixes in version lookup</li>
<li>update in documentation</li>
</ol>
<h2>What's Changed</h2>
<ul>
<li>chore: Bump urllib3 from 2.7.0 to 2.8.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/737">pypiserver/pypiserver#737</a></li>
<li>chore: Bump setuptools from 80.10.2 to 84.1.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/739">pypiserver/pypiserver#739</a></li>
<li>chore: Bump certifi from 2026.2.25 to 2026.10.19 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/738">pypiserver/pypiserver#738</a></li>
<li>Docs: update ad-hoc authentication example to use roots by <a
href="https://github.com/rohansharmacode"><code>@​rohansharmacode</code></a>
in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/734">pypiserver/pypiserver#734</a></li>
<li>fix: normalize project names in find_version for remove_pkg by <a
href="https://github.com/r3wretrhy"><code>@​r3wretrhy</code></a> in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/735">pypiserver/pypiserver#735</a></li>
<li>chore(auto-release-candidate-2026-11-08) by <a
href="https://github.com/github-actions"><code>@​github-actions</code></a>[bot]
in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/742">pypiserver/pypiserver#742</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/rohansharmacode"><code>@​rohansharmacode</code></a>
made their first contribution in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/734">pypiserver/pypiserver#734</a></li>
<li><a href="https://github.com/r3wretrhy"><code>@​r3wretrhy</code></a>
made their first contribution in <a
href="https://redirect.github.com/pypiserver/pypiserver/pull/735">pypiserver/pypiserver#735</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pypiserver/pypiserver/compare/v2.4.2...v2.4.3">https://github.com/pypiserver/pypiserver/compare/v2.4.2...v2.4.3</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pypiserver/pypiserver/blob/main/CHANGES.rst">pypiserver's
changelog</a>.</em></p>
<blockquote>
<h2>2.4.3 (2026-11-08)</h2>
<ul>
<li>deedae4 FIX: fix: passing formatting flags in CI</li>
<li>4885eea FIX: fix: normalize project names in find_version for
remove_pkg (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/735">#735</a>)</li>
<li>af839b9 MAINT: Docs: update ad-hoc authentication example to use
roots (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/734">#734</a>)</li>
<li>57eb6a6 MAINT: chore: Bump certifi from 2026.2.25 to 2026.10.19 (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/738">#738</a>)</li>
<li>37dc266 MAINT: chore: Bump setuptools from 80.10.2 to 84.1.0 (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/739">#739</a>)</li>
<li>69f750c MAINT: chore: Bump urllib3 from 2.7.0 to 2.8.0 (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/737">#737</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/14d1e994dc4160ffb1cd36191a72dc5005cb9aef"><code>14d1e99</code></a>
chore(ver): bump 2.4.2--&gt;2.4.3</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/7ebc668a04bcfa6869482e75aa2d838b40a462cd"><code>7ebc668</code></a>
chore(auto-release-candidate-2026-11-08) (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/742">#742</a>)</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/deedae4f2a9c6a0a4f582d98bc58622febc1fcbb"><code>deedae4</code></a>
fix: passing formatting flags in CI</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/4885eea587675d26bd60c81a543b9fed3cd062c9"><code>4885eea</code></a>
fix: normalize project names in find_version for remove_pkg (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/735">#735</a>)</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/af839b9d80b4103b83cbbc32c6de80358aaaddaf"><code>af839b9</code></a>
Docs: update ad-hoc authentication example to use roots (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/734">#734</a>)</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/57eb6a6d4d802e63f280403e34ee53c4d0fb6fa1"><code>57eb6a6</code></a>
chore: Bump certifi from 2026.2.25 to 2026.10.19 (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/738">#738</a>)</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/37dc26619d0ad94e313a3879ec74525b0d64f5e5"><code>37dc266</code></a>
chore: Bump setuptools from 80.10.2 to 84.1.0 (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/739">#739</a>)</li>
<li><a
href="https://github.com/pypiserver/pypiserver/commit/69f750cd8fe5d8ad827fb4a19ee7b37ad0147622"><code>69f750c</code></a>
chore: Bump urllib3 from 2.7.0 to 2.8.0 (<a
href="https://redirect.github.com/pypiserver/pypiserver/issues/737">#737</a>)</li>
<li>See full diff in <a
href="https://github.com/pypiserver/pypiserver/compare/v2.4.2...v2.4.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `colorama` from 0.4.5 to 0.4.6
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tartley/colorama/blob/master/CHANGELOG.rst">colorama's
changelog</a>.</em></p>
<blockquote>
<p>0.4.6 Current release</p>
<ul>
<li><a
href="https://redirect.github.com/tartley/colorama/pull/139">tartley/colorama#139</a>
Add alternative to 'init()',
called 'just_fix_windows_console'. This fixes many longstanding problems
with 'init', such as working incorrectly on modern Windows terminals,
and
wonkiness when init gets called multiple times. The intention is that it
just makes all Windows terminals treat ANSI the same way as other
terminals
do. Many thanks the njsmith for fixing our messes.</li>
<li><a
href="https://redirect.github.com/tartley/colorama/pull/352">tartley/colorama#352</a>
Support Windows 10's ANSI/VT
console. This didn't exist when Colorama was created, and avoiding us
causing havok there is long overdue. Thanks to segeviner for the initial
approach, and to njsmith for getting it merged.</li>
<li><a
href="https://redirect.github.com/tartley/colorama/pull/338">tartley/colorama#338</a>
Internal overhaul of package
metadata declaration, which abolishes our use of the now heavily
discouraged setuptools (and hence setup.py, setup.cfg and MANIFEST.in),
in
favor of hatchling (and hence pyproject.toml), generously contributed by
ofek (author of hatchling). This includes dropping support Python3.5 and
3.6, which are EOL, and were already dropped from setuptools, so this
should not affect our users.</li>
<li><a
href="https://redirect.github.com/tartley/colorama/pull/353">tartley/colorama#353</a>
Attention to detail award to
LqdBcnAtWork for a spelling fix in demo06</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tartley/colorama/commit/3de9f013df4b470069d03d250224062e8cf15c49"><code>3de9f01</code></a>
bump version 0.4.6</li>
<li><a
href="https://github.com/tartley/colorama/commit/a45949b3252633060261c9666b6aada4b2f2f020"><code>a45949b</code></a>
Format the CHANGELOG bullet list, no content change</li>
<li><a
href="https://github.com/tartley/colorama/commit/f55f72e9d3950276679da91ba6dc713cefc603db"><code>f55f72e</code></a>
comment need for a fix after recent MP broke it</li>
<li><a
href="https://github.com/tartley/colorama/commit/cb83041b25a6962d8124647e8741cfa0ab139994"><code>cb83041</code></a>
fix test-release after recent MPs broke it</li>
<li><a
href="https://github.com/tartley/colorama/commit/832f14ce9a4d00c2dfb88e8cb02e2defadb76ba9"><code>832f14c</code></a>
README tweaks</li>
<li><a
href="https://github.com/tartley/colorama/commit/54b89c33b2448a1a0fab67ab020a902622b9a932"><code>54b89c3</code></a>
Bump version to 0.4.6rc1</li>
<li><a
href="https://github.com/tartley/colorama/commit/7991d34773c72db791eb09d9ec349212d080fbc0"><code>7991d34</code></a>
'make bootstrap' uses system python3, not pinned v3.8</li>
<li><a
href="https://github.com/tartley/colorama/commit/0ae5ef2f9ab89335fb5b50933b75323178cb38bc"><code>0ae5ef2</code></a>
CHANGELOG updates for upcoming 0.4.6 release</li>
<li><a
href="https://github.com/tartley/colorama/commit/52f4cfd7af3a779b0ba8a7ee320d99c0bfec9ce8"><code>52f4cfd</code></a>
Tweak ordering of release checklist</li>
<li><a
href="https://github.com/tartley/colorama/commit/ab64cfac23fd70b9bf2944acd985e3673a1f09e1"><code>ab64cfa</code></a>
Merge pull request <a
href="https://redirect.github.com/tartley/colorama/issues/353">#353</a>
from LqdBcnAtWork/patch-1</li>
<li>Additional commits viewable in <a
href="https://github.com/tartley/colorama/compare/0.4.5...0.4.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `more-itertools` from 9.1.0 to 11.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/more-itertools/more-itertools/releases">more-itertools's
releases</a>.</em></p>
<blockquote>
<h2>Version 11.2.1</h2>
<p>This release includes <a
href="https://redirect.github.com/more-itertools/more-itertools/issues/1331">#1331</a>,
a packaging-related change. No module code changed.</p>
<h2>Version 11.2.0</h2>
<p>Highlights:</p>
<ul>
<li>New <code>random_ordered_range</code> function</li>
<li>New <code>subfactorial</code> function</li>
<li>Python 3.10 is no longer officially supported</li>
<li>Python 3.15 is now officially supported</li>
</ul>
<p>See the <a
href="https://raw.githubusercontent.com/more-itertools/more-itertools/737c261c21271e1a6eb949f7d188297bebe8b125/docs/versions.rst">release
notes</a> for details.</p>
<h2>Version 11.1.0</h2>
<p>Changes:</p>
<ul>
<li><code>numeric_range</code> was updated to fix its handling of empty
ranges (thanks to rhettinger)</li>
<li><code>peekable</code> was updated to fix typing issues (thanks to
DORI2001, powellnorma, Pandede, m9810223, and rhettinger)</li>
<li><code>islice_extended</code> was optimized for memory usage and
speed (thanks to ben42code, rhettinger, and pochmann)</li>
<li><code>serialize</code> now supports the generator methods
<code>throw</code>, <code>send</code>, and <code>close</code> (thanks to
rhettinger)</li>
<li><code>seekable</code> now supports implements
<code>__getitem__</code> for cached elements (thanks to SAY-5,
jenstroeger, and JamesParrott)</li>
</ul>
<h2>Version 11.0.2</h2>
<ul>
<li>The changes to the type hints for <code>always_iterable</code> in
11.0.0 have been reverted due to reported problems (thanks to ngoldbaum
and rhettinger)</li>
<li><code>zip_equal</code> was removed in 11.0.0. It had been deprecated
and raising <code>DeprecationWarning</code> since 2021, but it's removal
shoul have been documented in 11.0.0's release notes. We regret the
error.</li>
<li><code>running_statistics</code> has been moved from
<code>more_itertools.more</code> to <code>more_itertools.recipes</code>.
Its docstring was also improved (thanks to mastash3ff and
rhettinger)</li>
</ul>
<h2>Version 11.0.1</h2>
<p>This release restores <code>pairwise</code>, which was mistakenly
removed in 11.0.0 instead of being deprecated. It is now marked as
deprecated and will be removed in a future major release. Use
<code>itertools.pairwise</code> as a replacement.</p>
<h2>Version 11.0.0</h2>
<h3>Potentially breaking changes</h3>
<ul>
<li>Python 3.9 support was dropped, since it went EOL on 2025-10-31</li>
<li><code>callback_iter</code> is deprecated. It will be removed in a
future major release.</li>
<li><code>iequals</code> no longer returns <code>True</code> when called
with <code>([], [ANY])</code> (thanks to rhettinger and pochmann3)</li>
<li>The <code>pred</code> argument for <code>locate</code> and
<code>replace</code> must now be able to
handle a variable number of arguments. See their docstrings for details.
(thanks to veeceey, james-wasson, and pochmann3)</li>
<li><code>unique_everseen</code> now raises <code>TypeError</code> when
input elements are not hashable.
The silent fallback mechanism for unhashable inputs has been removed.
(thanks to rhettinger and karlicoss)</li>
<li><code>windowed</code> now raises <code>ValueError</code> when given
a window size of <code>0</code> (thanks to rhettinger and brevzin)</li>
<li>Parameter names for <code>flatten</code>, <code>iter_except</code>,
<code>repeatfunc</code>, <code>prepend</code>, <code>transpose</code>,
and <code>sum_of_squares</code> have been changed. Code that uses these
functions will need to be updated if it
uses keywords for positional arguments. (thanks to rhettinger)</li>
</ul>
<h3>New functions</h3>
<ul>
<li><code>concurrent_tee</code>: similar to <code>tee</code>, but with
guaranteed threading
semantics (thanks to rhettinger)</li>
<li><code>random_derangement</code>: returns a random derangement of
elements from an
iterable (thanks to rhettinger)</li>
<li><code>running_mean</code>: yields the mean of values in an iterable,
or in a sliding</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/4aeb4338ae1407d8da9723e86da99efeb446f719"><code>4aeb433</code></a>
Merge pull request <a
href="https://redirect.github.com/more-itertools/more-itertools/issues/1331">#1331</a>
from more-itertools/flit-4-sdist</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/da864da6d8beaa49d693b719cbc21a5d88dfb475"><code>da864da</code></a>
Version 11.2.1: Include additional files in sdist</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/737c261c21271e1a6eb949f7d188297bebe8b125"><code>737c261</code></a>
Merge pull request <a
href="https://redirect.github.com/more-itertools/more-itertools/issues/1314">#1314</a>
from more-itertools/version-11.2.0</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/909b70336ce229088bbc253d300190c99fb8411a"><code>909b703</code></a>
Bump version to 11.2.0</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/6ad55cbedd2cd722a9c029e5823177622910771a"><code>6ad55cb</code></a>
Swap 310 for 315 in tox</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/787bcb5c9faf800da3fdc72c1023c1aab24572dc"><code>787bcb5</code></a>
Drop typing_extensions for more.pyi</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/68a52e07369f3515bd9a0d5f31555429e16fcc54"><code>68a52e0</code></a>
Update versions.rst</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/be6ecc015e03f48c0a50f07ce6079f636c9753a4"><code>be6ecc0</code></a>
Changelog tweaks</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/45c65a3dc532dadf014d53bcaa0c2f38cbeacfe1"><code>45c65a3</code></a>
Even more WIP release notes for 11.2.0</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/56a469cd7f3522d2f391060957b02be81809afb5"><code>56a469c</code></a>
More WIP release ntoes 11.2.0</li>
<li>Additional commits viewable in <a
href="https://github.com/more-itertools/more-itertools/compare/v9.1.0...v11.2.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `more-itertools` from 9.0.0 to 11.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/more-itertools/more-itertools/releases">more-itertools's
releases</a>.</em></p>
<blockquote>
<h2>Version 11.2.1</h2>
<p>This release includes <a
href="https://redirect.github.com/more-itertools/more-itertools/issues/1331">#1331</a>,
a packaging-related change. No module code changed.</p>
<h2>Version 11.2.0</h2>
<p>Highlights:</p>
<ul>
<li>New <code>random_ordered_range</code> function</li>
<li>New <code>subfactorial</code> function</li>
<li>Python 3.10 is no longer officially supported</li>
<li>Python 3.15 is now officially supported</li>
</ul>
<p>See the <a
href="https://raw.githubusercontent.com/more-itertools/more-itertools/737c261c21271e1a6eb949f7d188297bebe8b125/docs/versions.rst">release
notes</a> for details.</p>
<h2>Version 11.1.0</h2>
<p>Changes:</p>
<ul>
<li><code>numeric_range</code> was updated to fix its handling of empty
ranges (thanks to rhettinger)</li>
<li><code>peekable</code> was updated to fix typing issues (thanks to
DORI2001, powellnorma, Pandede, m9810223, and rhettinger)</li>
<li><code>islice_extended</code> was optimized for memory usage and
speed (thanks to ben42code, rhettinger, and pochmann)</li>
<li><code>serialize</code> now supports the generator methods
<code>throw</code>, <code>send</code>, and <code>close</code> (thanks to
rhettinger)</li>
<li><code>seekable</code> now supports implements
<code>__getitem__</code> for cached elements (thanks to SAY-5,
jenstroeger, and JamesParrott)</li>
</ul>
<h2>Version 11.0.2</h2>
<ul>
<li>The changes to the type hints for <code>always_iterable</code> in
11.0.0 have been reverted due to reported problems (thanks to ngoldbaum
and rhettinger)</li>
<li><code>zip_equal</code> was removed in 11.0.0. It had been deprecated
and raising <code>DeprecationWarning</code> since 2021, but it's removal
shoul have been documented in 11.0.0's release notes. We regret the
error.</li>
<li><code>running_statistics</code> has been moved from
<code>more_itertools.more</code> to <code>more_itertools.recipes</code>.
Its docstring was also improved (thanks to mastash3ff and
rhettinger)</li>
</ul>
<h2>Version 11.0.1</h2>
<p>This release restores <code>pairwise</code>, which was mistakenly
removed in 11.0.0 instead of being deprecated. It is now marked as
deprecated and will be removed in a future major release. Use
<code>itertools.pairwise</code> as a replacement.</p>
<h2>Version 11.0.0</h2>
<h3>Potentially breaking changes</h3>
<ul>
<li>Python 3.9 support was dropped, since it went EOL on 2025-10-31</li>
<li><code>callback_iter</code> is deprecated. It will be removed in a
future major release.</li>
<li><code>iequals</code> no longer returns <code>True</code> when called
with <code>([], [ANY])</code> (thanks to rhettinger and pochmann3)</li>
<li>The <code>pred</code> argument for <code>locate</code> and
<code>replace</code> must now be able to
handle a variable number of arguments. See their docstrings for details.
(thanks to veeceey, james-wasson, and pochmann3)</li>
<li><code>unique_everseen</code> now raises <code>TypeError</code> when
input elements are not hashable.
The silent fallback mechanism for unhashable inputs has been removed.
(thanks to rhettinger and karlicoss)</li>
<li><code>windowed</code> now raises <code>ValueError</code> when given
a window size of <code>0</code> (thanks to rhettinger and brevzin)</li>
<li>Parameter names for <code>flatten</code>, <code>iter_except</code>,
<code>repeatfunc</code>, <code>prepend</code>, <code>transpose</code>,
and <code>sum_of_squares</code> have been changed. Code that uses these
functions will need to be updated if it
uses keywords for positional arguments. (thanks to rhettinger)</li>
</ul>
<h3>New functions</h3>
<ul>
<li><code>concurrent_tee</code>: similar to <code>tee</code>, but with
guaranteed threading
semantics (thanks to rhettinger)</li>
<li><code>random_derangement</code>: returns a random derangement of
elements from an
iterable (thanks to rhettinger)</li>
<li><code>running_mean</code>: yields the mean of values in an iterable,
or in a sliding</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/4aeb4338ae1407d8da9723e86da99efeb446f719"><code>4aeb433</code></a>
Merge pull request <a
href="https://redirect.github.com/more-itertools/more-itertools/issues/1331">#1331</a>
from more-itertools/flit-4-sdist</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/da864da6d8beaa49d693b719cbc21a5d88dfb475"><code>da864da</code></a>
Version 11.2.1: Include additional files in sdist</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/737c261c21271e1a6eb949f7d188297bebe8b125"><code>737c261</code></a>
Merge pull request <a
href="https://redirect.github.com/more-itertools/more-itertools/issues/1314">#1314</a>
from more-itertools/version-11.2.0</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/909b70336ce229088bbc253d300190c99fb8411a"><code>909b703</code></a>
Bump version to 11.2.0</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/6ad55cbedd2cd722a9c029e5823177622910771a"><code>6ad55cb</code></a>
Swap 310 for 315 in tox</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/787bcb5c9faf800da3fdc72c1023c1aab24572dc"><code>787bcb5</code></a>
Drop typing_extensions for more.pyi</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/68a52e07369f3515bd9a0d5f31555429e16fcc54"><code>68a52e0</code></a>
Update versions.rst</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/be6ecc015e03f48c0a50f07ce6079f636c9753a4"><code>be6ecc0</code></a>
Changelog tweaks</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/45c65a3dc532dadf014d53bcaa0c2f38cbeacfe1"><code>45c65a3</code></a>
Even more WIP release notes for 11.2.0</li>
<li><a
href="https://github.com/more-itertools/more-itertools/commit/56a469cd7f3522d2f391060957b02be81809afb5"><code>56a469c</code></a>
More WIP release ntoes 11.2.0</li>
<li>Additional commits viewable in <a
href="https://github.com/more-itertools/more-itertools/compare/v9.1.0...v11.2.1">compare
view</a></li>
</ul>
</details>
<br />


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

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

---

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

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


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Richard Levasseur <richardlev@gmail.com>
9 files changed
tree: 05ad4e4c850e63274862a660b9e03fb1c4aea872
  1. .agents/
  2. .bazelci/
  3. .bcr/
  4. .ci/
  5. .github/
  6. command_line_option/
  7. crates/
  8. dev/
  9. docs/
  10. examples/
  11. gazelle/
  12. news/
  13. python/
  14. sphinxdocs/
  15. tests/
  16. tools/
  17. .bazelignore
  18. .bazelrc
  19. .bazelrc.deleted_packages
  20. .bazelversion
  21. .clippy.toml
  22. .editorconfig
  23. .git-blame-ignore-revs
  24. .gitattributes
  25. .gitignore
  26. .pre-commit-config.yaml
  27. .python-version
  28. .readthedocs.yml
  29. addlicense.sh
  30. AGENTS.md
  31. AUTHORS
  32. BUILD.bazel
  33. buildbuddy.bazelrc
  34. BZLMOD_SUPPORT.md
  35. CHANGELOG.md
  36. CLAUDE.md
  37. CONTRIBUTING.md
  38. CONTRIBUTORS
  39. downloader_config.cfg
  40. GEMINI.md
  41. internal_dev_deps.bzl
  42. internal_dev_setup.bzl
  43. LICENSE
  44. MODULE.bazel
  45. README.md
  46. RELEASING.md
  47. replicate_ci
  48. ruff.toml
  49. specialized_configs.bazelrc
  50. version.bzl
  51. WORKSPACE
  52. WORKSPACE.bzlmod
  53. workspace_bazel9.bzl
README.md

Python Rules for Bazel

Build status GitHub CI status

Overview

This repository is the home of the core Python rules -- py_library, py_binary, py_test, and related symbols that provide the basis for Python support in Bazel. It also contains package installation rules for integrating with PyPI and other indices.

Documentation for rules_python is at https://rules-python.readthedocs.io and in the Bazel Build Encyclopedia.

Examples live in the examples directory.

The core rules are stable. Their implementation is subject to Bazel's backward compatibility policy. This repository aims to follow semantic versioning.

The Bazel community maintains this repository. Neither Google nor the Bazel team provides support for the code. However, this repository is part of the test suite used to vet new Bazel releases. See How to contribute page for information on our development workflow.

Design

  • Supported OSes - as per our supported platform policy, we strive for support on all of the platforms that we have CI for. Some platforms do not have the same backwards compatibility guarantees, but we hope the community can step in where needed to make the support more robust.
  • requirements.txt is how users have been defining dependencies for a long time. We support this to support legacy usecases or package managers that we don't support directly. Any additional information that we need will be retrieved from the SimpleAPI during the bzlmod extension evaluation phase. Then it will be written to the MODULE.bazel.lock file for future reuse. We also support uv.lock files directly under bzlmod, which already contain cross-platform distribution URLs and hashes and do not require SimpleAPI queries or storing distribution hashes in MODULE.bazel.lock. uv is recommended for generating uv.lock or a fully locked requirements.txt file, and we provide a rule for it.
  • The py_binary, py_test rules should scale to large monorepos and we work hard to minimize the work done during analysis and build phase. What is more, the space requirements for should be minimal, so we strive to use symlinks rather than extracting wheels at build time. This means that for different configurations of the same build, we are not extracting the wheel multiple times thus scaling better over the time. From 2.0 onwards we are creating a virtual env for each target by creating an actual minimal virtual environment using symlinks. We plan on creating the traditional site-packages layout in the future by default.
  • Support for standards - we strive to first implement any standards needed within rules_python and this has resulted in a few PEPs supported within pure starlark - PEP440, PEP509.

Common misconceptions:

  • rules_python has to keep backwards compatibility with google3. Whilst this might have been true in the past, rules_python is an open source project and any compatibility needs should come from the community - we have no requirement to keep this compatibility and are allowed to make our decisions. However, we do want to keep backwards compatibility as long as possible to not upset users with never ending migrations.
  • rules_python is not caching pip downloads. With 2.0, we use Bazel's downloader by default and rely on bazel to provide the repository caching mechanisms. This means that for simpler setups this should result in transparent and scalable caching with the most recent bazel versions unless there are issues in the bazel itself.

Documentation

For detailed documentation, see https://rules-python.readthedocs.io

Bzlmod support

See Bzlmod support for more details.