Skip to content

[pull] master from aio-libs:master - #779

Merged
pull[bot] merged 2 commits into
tj-python:masterfrom
aio-libs:master
Sep 25, 2026
Merged

pull[bot] merged 2 commits into
tj-python:masterfrom
aio-libs:master

Conversation

@pull

@pull pull Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

Bumps [platformdirs](https://github.com/tox-dev/platformdirs) from
4.11.11 to 4.11.12.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/tox-dev/platformdirs/releases">platformdirs's
releases</a>.</em></p>
<blockquote>
<h2>4.11.12</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>docs: preserve nested directories in the migration recipe by <a
href="https://github.com/agammann"><code>@​agammann</code></a> in <a
href="https://redirect.github.com/tox-dev/platformdirs/pull/553">tox-dev/platformdirs#553</a></li>
<li>fix: ignore broken sphinx-llm release by <a
href="https://github.com/gaborbernat"><code>@​gaborbernat</code></a> in
<a
href="https://redirect.github.com/tox-dev/platformdirs/pull/556">tox-dev/platformdirs#556</a></li>
<li>fix: ignore relative XDG user directory environment variables by <a
href="https://github.com/darrenhuai"><code>@​darrenhuai</code></a> in <a
href="https://redirect.github.com/tox-dev/platformdirs/pull/554">tox-dev/platformdirs#554</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/agammann"><code>@​agammann</code></a>
made their first contribution in <a
href="https://redirect.github.com/tox-dev/platformdirs/pull/553">tox-dev/platformdirs#553</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/tox-dev/platformdirs/compare/4.11.11...4.11.12">https://github.com/tox-dev/platformdirs/compare/4.11.11...4.11.12</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst">platformdirs's
changelog</a>.</em></p>
<blockquote>
<p>###########
Changelog
###########</p>
<p>.. towncrier-draft-entries:: Unreleased</p>
<p>.. towncrier release notes start</p>
<hr />
<p>4.11.13 (2026-09-25)</p>
<hr />
<ul>
<li>With <code>ensure_exists</code>, the media directories such as
<code>user_documents_dir</code> are created on Unix, and on macOS when
an
XDG variable sets them - by :user:<code>ekanshul</code>.
:pr:<code>560</code></li>
</ul>
<hr />
<p>4.11.12 (2026-09-22)</p>
<hr />
<ul>
<li>Ignore relative paths in the XDG user directory environment
variables, so <code>XDG_DOCUMENTS_DIR=Documents</code> no longer
makes :func:<code>~platformdirs.user_documents_dir</code> and the other
media directories return a path relative to the working
directory. They now fall back to the platform default like the XDG Base
Directory variables, and like the same keys
read from <code>user-dirs.dirs</code> - by
:user:<code>darrenhuai</code>. :pr:<code>554</code></li>
<li>Copy nested directories in the versioned data migration recipe.
:pr:<code>553</code></li>
<li>Exclude sphinx-llm 1.1.0 from documentation dependencies because its
Markdown builder emits unknown-node warnings.
:pr:<code>556</code></li>
</ul>
<hr />
<p>4.11.11 (2026-09-19)</p>
<hr />
<ul>
<li>Reject <code>appname</code>, <code>appauthor</code> and
<code>version</code> values that leave the platform base directory (a
<code>..</code> segment, a
leading separator, a drive or a UNC share) with <code>ValueError</code>,
so <code>ensure_exists</code> cannot create directories outside
it - by :user:<code>Pitchfork-and-Torch</code>.
:pr:<code>552</code></li>
</ul>
<hr />
<p>4.11.10 (2026-09-18)</p>
<hr />
<ul>
<li>With <code>ensure_exists</code>, the <code>site_*_dir</code> and
<code>site_*_path</code> properties and the <code>iter_*_dirs</code>
iterators only
create the site directories they return or yield, instead of every entry
in the site list - by :user:<code>darrenhuai</code>.
:pr:<code>550</code></li>
</ul>
<hr />
<p>4.11.9 (2026-09-16)</p>
<hr />
<ul>
<li>Accept <code>multipath</code> in
:func:<code>~platformdirs.site_cache_dir</code> and
:func:<code>~platformdirs.site_cache_path</code>. Without it,
the function API could not return the Homebrew cache prefix that
:attr:<code>~platformdirs.macos.MacOS.site_cache_dir</code> adds
under <code>multipath</code> - by :user:<code>darrenhuai</code>.
:pr:<code>544</code></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tox-dev/platformdirs/commit/09759494b7726a8fe8b2c9ff8eb76200ac9bc327"><code>0975949</code></a>
Release 4.11.12</li>
<li><a
href="https://github.com/tox-dev/platformdirs/commit/f0f5667e99ec0eaf90cac781ee1a8563fc18b3ee"><code>f0f5667</code></a>
fix: ignore relative XDG user directory environment variables (<a
href="https://redirect.github.com/tox-dev/platformdirs/issues/554">#554</a>)</li>
<li><a
href="https://github.com/tox-dev/platformdirs/commit/1f944d0e6a33aee9bee9cb24d58a8980f79ca972"><code>1f944d0</code></a>
fix: ignore broken sphinx-llm release (<a
href="https://redirect.github.com/tox-dev/platformdirs/issues/556">#556</a>)</li>
<li><a
href="https://github.com/tox-dev/platformdirs/commit/3e2e590ffd5264a6521d2b2cde9cddb68f81c66a"><code>3e2e590</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/tox-dev/platformdirs/issues/555">#555</a>)</li>
<li><a
href="https://github.com/tox-dev/platformdirs/commit/897097b21fa6bd43522c01287ebf09d47cdc304e"><code>897097b</code></a>
docs: preserve nested directories in the migration recipe (<a
href="https://redirect.github.com/tox-dev/platformdirs/issues/553">#553</a>)</li>
<li>See full diff in <a
href="https://github.com/tox-dev/platformdirs/compare/4.11.11...4.11.12">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=platformdirs&package-manager=pip&previous-version=4.11.11&new-version=4.11.12)](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>
Bumps [multidict](https://github.com/aio-libs/multidict) from 6.9.0 to
6.9.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/multidict/releases">multidict's
releases</a>.</em></p>
<blockquote>
<h2>6.9.1</h2>
<h2>Bug fixes</h2>
<ul>
<li>
<p>Fixed the C extension reading freed memory on free-threaded builds
when a
list handed to :py:meth:<code>~multidict.MultiDict.update</code>,
:py:meth:<code>~multidict.MultiDict.extend</code>,
:py:meth:<code>~multidict.MultiDict.merge</code>
or the :py:class:<code>~multidict.MultiDict</code> and
:py:class:<code>~multidict.CIMultiDict</code>
constructors, a <code>[key, value]</code> item inside any iterable
handed to them, or a
list tested with <code>in</code> against
:py:meth:<code>~multidict.MultiDict.items</code>, is
changed by another thread; a call that catches the list shrinking under
it
now raises :py:exc:<code>RuntimeError</code> -- by
:user:<code>rodrigobnogueira</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/multidict/issues/1437">#1437</a>.</p>
</li>
<li>
<p>Fixed a data race on the free-threaded build where a retired hash
table's
reader count used relaxed atomics, letting a lock-free
<code>get()</code>/<code>getone()</code>/
<code>__getitem__()</code> read race a concurrent free of that table.
The reader-exit
decrement and the drain's free check now use release/acquire ordering
instead -- by :user:<code>asvetlov</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/multidict/issues/1481">#1481</a>.</p>
</li>
<li>
<p>Fixed a free-threaded build bug where two threads calling
<code>update()</code>,
<code>merge()</code>, or <code>__setitem__()</code> on the same key at
the same time could lose
the key entirely instead of just racing on which value wins. A decref of
the
replaced value could transiently suspend the writer's critical section,
letting a second writer for the same key observe the first writer's
in-progress entry as absent and, once both settled, mistake it for a
stale
duplicate and delete it. Every such decref is now deferred until the
writer
has released its critical section, so the window can no longer open.
<code>setdefault()</code> had an unrelated instance of the same blind
spot (it could
insert a duplicate rather than recognizing an in-flight key), fixed
alongside
it -- by :user:<code>asvetlov</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/multidict/issues/1483">#1483</a>.</p>
</li>
<li>
<p>Fixed a free-threaded build bug where <code>getall()</code> and the
<code>items()</code>/
<code>keys()</code>/<code>values()</code> equality path could raise
<code>KeyError</code> or report a
present, never-deleted key as missing. A concurrent
<code>update()</code>/<code>extend()</code>/
<code>__setitem__()</code> call can have its critical section
transiently suspended
(a decref triggering a blocking allocator call) while an entry is marked
as
part of its own bookkeeping; a reader landing in that window used to
treat
the mark as &quot;not found&quot; instead of &quot;still there, in
flight&quot; -- by
:user:<code>asvetlov</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/multidict/blob/master/CHANGES.rst">multidict's
changelog</a>.</em></p>
<blockquote>
<h1>6.9.1</h1>
<p><em>(2026-09-21)</em></p>
<h2>Bug fixes</h2>
<ul>
<li>
<p>Fixed the C extension reading freed memory on free-threaded builds
when a
list handed to :py:meth:<code>~multidict.MultiDict.update</code>,
:py:meth:<code>~multidict.MultiDict.extend</code>,
:py:meth:<code>~multidict.MultiDict.merge</code>
or the :py:class:<code>~multidict.MultiDict</code> and
:py:class:<code>~multidict.CIMultiDict</code>
constructors, a <code>[key, value]</code> item inside any iterable
handed to them, or a
list tested with <code>in</code> against
:py:meth:<code>~multidict.MultiDict.items</code>, is
changed by another thread; a call that catches the list shrinking under
it
now raises :py:exc:<code>RuntimeError</code> -- by
:user:<code>rodrigobnogueira</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>1437</code>.</p>
</li>
<li>
<p>Fixed a data race on the free-threaded build where a retired hash
table's
reader count used relaxed atomics, letting a lock-free
<code>get()</code>/<code>getone()</code>/
<code>__getitem__()</code> read race a concurrent free of that table.
The reader-exit
decrement and the drain's free check now use release/acquire ordering
instead -- by :user:<code>asvetlov</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>1481</code>.</p>
</li>
<li>
<p>Fixed a free-threaded build bug where two threads calling
<code>update()</code>,
<code>merge()</code>, or <code>__setitem__()</code> on the same key at
the same time could lose
the key entirely instead of just racing on which value wins. A decref of
the
replaced value could transiently suspend the writer's critical section,
letting a second writer for the same key observe the first writer's
in-progress entry as absent and, once both settled, mistake it for a
stale
duplicate and delete it. Every such decref is now deferred until the
writer
has released its critical section, so the window can no longer open.
<code>setdefault()</code> had an unrelated instance of the same blind
spot (it could
insert a duplicate rather than recognizing an in-flight key), fixed
alongside
it -- by :user:<code>asvetlov</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>1483</code>.</p>
</li>
<li>
<p>Fixed a free-threaded build bug where <code>getall()</code> and the
<code>items()</code>/
<code>keys()</code>/<code>values()</code> equality path could raise
<code>KeyError</code> or report a
present, never-deleted key as missing. A concurrent
<code>update()</code>/<code>extend()</code>/
<code>__setitem__()</code> call can have its critical section
transiently suspended
(a decref triggering a blocking allocator call) while an entry is marked
as</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/multidict/commit/0a1770c7e69845c8ef2000b3707cd7f1917a6944"><code>0a1770c</code></a>
Release 6.9.1 (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1504">#1504</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/d220522b54b1989c90a96aa50c42bb0264d46210"><code>d220522</code></a>
Upload release assets one at a time to avoid the secondary rate limit
(<a
href="https://redirect.github.com/aio-libs/multidict/issues/1503">#1503</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/30cd596f945ed7b69f5502c693339224043eb9e9"><code>30cd596</code></a>
Stop a GIL-releasing <strong>del</strong> from segfaulting the standard
C extension build ...</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/d1c331ab2617299a1385fff29ef4da64e50bd071"><code>d1c331a</code></a>
Recheck the reader gate after taking the retired list (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1502">#1502</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/b37f07c1a16122f95208936f2e58f55ea99cdbaf"><code>b37f07c</code></a>
Allocate deferred decrefs in fixed-size blocks (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1501">#1501</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/563f667307c376744ca345802ca835f8b84ba947"><code>563f667</code></a>
Run CodSpeed benchmarks on Python 3.14 and loop the smallest ones (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1498">#1498</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/157c87c6cecbeac0011b085e8f6c2496754c17e6"><code>157c87c</code></a>
Cancel superseded CI runs on pull requests (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1500">#1500</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/d43adfe27f759a2810a900db73fc85ab3660e75b"><code>d43adfe</code></a>
Drop -I from the ASan test command so PYTHONMALLOC takes effect (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1499">#1499</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/2a68472db036f199ecb1c1a0c66872eeb03a3135"><code>2a68472</code></a>
Stop items() iteration from reading a freed entry in CIMultiDict (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1496">#1496</a>)</li>
<li><a
href="https://github.com/aio-libs/multidict/commit/cd528d6d82dc1465042459b3cc143dc58c5ce6ab"><code>cd528d6</code></a>
Rename GHSA-54p9-h82j-f925 changelog fragment to the merged commit (<a
href="https://redirect.github.com/aio-libs/multidict/issues/1495">#1495</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/multidict/compare/v6.9.0...v6.9.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=multidict&package-manager=pip&previous-version=6.9.0&new-version=6.9.1)](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>
@pull pull Bot locked and limited conversation to collaborators Sep 25, 2026
@pull pull Bot added the ⤵️ pull label Sep 25, 2026
@pull
pull Bot merged commit 1133ceb into tj-python:master Sep 25, 2026
6 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants