Sitelet https://github.com/a2aproject/a2a-python/pull/1134
Skip to content

fix: make event queue sink removal idempotent - #1134

Merged
mykytanetipa merged 6 commits into
a2aproject:mainfrom
dorlugasigal:fix/idempotent-event-queue-sink-close
Aug 26, 2026
Merged

mykytanetipa merged 6 commits into
a2aproject:mainfrom
dorlugasigal:fix/idempotent-event-queue-sink-close

Conversation

@dorlugasigal

Copy link
Copy Markdown
Contributor

Description

Thank you for opening a Pull Request!

This pull request changed EventQueueSource.remove_sink() to use
set.discard(), so removing an already-absent sink completes without raising
KeyError. EventQueueSink.close() now delegates directly to that idempotent
operation instead of suppressing the exception after telemetry has recorded it.
A regression test closes the same sink twice and verifies that the mocked
OpenTelemetry span records neither an exception nor an error description.

Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

  • Follow the CONTRIBUTING Guide.
  • Make your Pull Request title in the https://www.conventionalcommits.org/ specification.
    • Important Prefixes for release-please:
      • fix: which represents bug fixes, and correlates to a SemVer patch.
      • feat: represents a new feature, and correlates to a SemVer minor.
      • feat!:, or fix!:, refactor!:, etc., which represent a breaking change (indicated by the !) and will result in a SemVer major.
  • Ensure the tests and linter pass (Run bash scripts/format.sh from the repository root to format)
  • Appropriate docs were updated (if necessary)

Fixes #1133 🦕

Use set.discard so repeated sink closure does not raise inside the traced
remove_sink method and export a false ERROR span.

Fixes a2aproject#1133

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 42ca73c6-08fb-4954-96f4-b7e32e46613a
@dorlugasigal
dorlugasigal requested a review from a team as a code owner July 13, 2026 15:53

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the remove_sink method in EventQueueSource to use discard instead of remove, making the operation idempotent and allowing the removal of a contextlib.suppress(KeyError) block in the close method. A new test is added to verify that closing a sink multiple times does not record exceptions on the telemetry span. The review feedback suggests asserting that the tracer mock's start_as_current_span method was actually called to prevent a vacuous test pass if the mock is not active during execution.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread tests/server/events/test_event_queue_v2.py
@github-actions

github-actions Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

🧪 Code Coverage (vs main)

⬇️ Download Full Report

Base PR Delta
src/a2a/server/events/event_queue_v2.py 91.83% 91.79% 🔴 -0.04%
Total 93.12% 93.12% ⚪️ -0.00%

Generated by coverage-comment.yml

dorlugasigal and others added 3 commits July 13, 2026 19:09
Assert that span creation uses the patched tracer so the regression cannot
pass silently if telemetry instrumentation changes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 42ca73c6-08fb-4954-96f4-b7e32e46613a

@astrogilda astrogilda left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outside contributor, not a maintainer, and I should declare an interest up front: I have an open PR against this same file (#1137) and a merged one next door (#1105), so I read this one carefully for my own reasons before deciding it was worth saying something. Short version: I think this is correct, minimal, and fixing the right layer, and I could not find anything wrong with it. Here is what I actually ran, so the confirmation is worth something rather than being another opinion on the pile.

It still applies cleanly to current main. The PR shows as behind from 3e6fa6a, but git merge-tree --write-tree against cff6727 exits 0 with no conflict stanzas, and applying the diff to a cff6727 worktree succeeds. On that rebased tree the full suite is 1769 passed, 90 skipped, 3 xfailed, 1 xpassed, versus 1768 passed on cff6727 alone, so the new test is the entire delta and nothing else moved. ruff check is clean on both changed files. I ran with --ignore=tests/integration/cross_version since that directory needs network I do not have.

The new test is not vacuous, which was @gemini-code-assist's concern in the earlier round and is the thing I most wanted to check. I reverted event_queue_v2.py to main while keeping the test, and it fails with AssertionError: Expected 'record_exception' to not have been called. Called 1 times. So it genuinely pins the reported symptom, and the tracer.start_as_current_span.assert_called() line you added does its job of ruling out a mock that was never active.

On the change itself, discard is the right place to fix this rather than widening the suppression at the call site. EventQueueSource carries @trace_class(kind=SpanKind.SERVER), so remove_sink gets its own span and the KeyError was recorded there before contextlib.suppress ever saw it in the caller. Suppressing at the caller could never have cleared the span; only not raising can. I also checked the blast radius of loosening remove to discard: remove_sink has exactly one caller in the tree, EventQueueSink.close at line 369, so there is no other path that was relying on the KeyError as a signal. And contextlib is still used at three other places in the file, so dropping that one block does not leave an unused import behind.

One small thought, take it or leave it. Since remove_sink is public and its contract is now genuinely idempotent, the docstring change to "if present" is doing real work and it might be worth saying "no-op if the sink is not registered" so a caller cannot read silence as success. Not a blocker.

Finally, for whoever picks this up: this does not collide with my #1137. git merge-tree --write-tree between #1137's head 83fdd8d and this branch exits 0 with a clean tree, and the two diffs touch disjoint regions, since #1137 changes tap and the dispatch path and leaves remove_sink and close untouched. If anything the two are complementary, because #1137's eviction path force-closes a sink that a subscriber's own finally may close concurrently, which is exactly the double-remove this PR stops recording as an error. Merge order between them should not matter, and if it turns out to I will rebase mine rather than the other way round.

@mykytanetipa mykytanetipa left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mykytanetipa
mykytanetipa merged commit 58c72c6 into a2aproject:main Aug 26, 2026
17 checks passed
mykytanetipa pushed a commit that referenced this pull request Sep 8, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.1.4](v1.1.3...v1.1.4)
(2026-09-07)


### Features

* **itk:** register itk-python-v10-agent as a uv workspace member and
update dependency version markers
([#1203](#1203))
([6eee895](6eee895))
* **itk:** use shared scenarios
([#1201](#1201))
([b4a0b21](b4a0b21))


### Bug Fixes

* make event queue sink removal idempotent
([#1134](#1134))
([58c72c6](58c72c6))
* omit artifacts from list tasks responses
([#1212](#1212))
([35ef52e](35ef52e))
* owner-scope cancel/subscribe and write terminal state on cancel
([#1159](#1159),
[#1170](#1170))
([#1172](#1172))
([ddbf853](ddbf853))
* prevent first-owner write loss in in-memory stores
([#1194](#1194))
([bcc489c](bcc489c))
* **server:** let subscriber taps evict on full instead of wedging
dispatch ([#1137](#1137))
([0c2126f](0c2126f))
* **server:** surface producer errors after failed tasks
([#1229](#1229))
([bc32d7e](bc32d7e))
* **server:** validate push-notification URLs at config creation
([#1173](#1173))
([3eb88e2](3eb88e2))
* **server:** validate push-notification URLs before dispatch (SSRF
hardening)
([#1164](#1164))
([57a9df3](57a9df3))
* **server:** warn when queue_manager is ignored in
DefaultRequestHandlerV2
([#1153](#1153))
([08fd223](08fd223))


### Documentation

* **server:** say what the evict-on-full check actually tests
([#1209](#1209))
([4b7b242](4b7b242))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Hemanth95 pushed a commit to Hemanth95/a2a-python that referenced this pull request Sep 30, 2026
Bumps the all group with 19 updates:

| Package | From | To |
| --- | --- | --- |
| [google-api-core](https://github.com/googleapis/google-cloud-python) |
`2.30.0` | `2.30.1` |
| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.2`
|
| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` |
`3.3.4` |
| [starlette](https://github.com/Kludex/starlette) | `0.52.1` | `1.0.0`
|
| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` |
`46.0.6` |
| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |
| [grpcio-tools](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |
| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |
|
[opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python)
| `1.39.1` | `1.40.0` |
|
[opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python)
| `1.39.1` | `1.40.0` |
| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |
|
[google-cloud-aiplatform](https://github.com/googleapis/python-aiplatform)
| `1.140.0` | `1.144.0` |
|
[datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator)
| `0.54.0` | `0.55.0` |
| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |
| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` |
`7.1.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.8` |
|
[uv-dynamic-versioning](https://github.com/ninoseki/uv-dynamic-versioning)
| `0.13.0` | `0.14.0` |
| [types-requests](https://github.com/python/typeshed) |
`2.32.4.20260107` | `2.33.0.20260327` |
| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |

Updates `google-api-core` from 2.30.0 to 2.30.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Freleases">google-api-core's
releases</a>.</em></p>
<blockquote>
<h2>grpc-google-iam-v1: v0.14.4</h2>
<h2><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcompare%2Fgrpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4">v0.14.4</a>
(2026-03-31)</h2>
<h2>google-cloud-compute-v1beta: v0.10.0</h2>
<h2><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcompare%2Fgoogle-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0">v0.10.0</a>
(2026-03-26)</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F4e80530190d3e3d7d0dec26b8daf97c2db15c2df"><code>4e80530</code></a>
chore: create a release (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fissues%2F16193">#16193</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F0f8d933cfeca182e00eb589da2ab0df61579c6f1"><code>0f8d933</code></a>
chore: add gapic-generator integration test presubmit (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fissues%2F16465">#16465</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2Fab44f7e4224b554e9365aafbd4ecb559ed975aa6"><code>ab44f7e</code></a>
chore(deps): update dependency requests to v2.33.0 [security] (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fissues%2F16464">#16464</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F943a979f14b1f39608cdb2658823f087a599e418"><code>943a979</code></a>
chore(migration): Migrate code from googleapis/sphinx-docfx-yaml into
package...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F8c6703da295ed30200bb38f637b745b64f34d690"><code>8c6703d</code></a>
chore(migration): Migrate code from googleapis/gapic-generator-python
into pa...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2Fe3731d58d5371f166e75742e257e2524d21e83cb"><code>e3731d5</code></a>
Merge branch 'main' into
migration.gapic-generator-python.migration.2026-03-2...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F20f57241d9f690abc31c1a19ee5a0d33c667f300"><code>20f5724</code></a>
Trigger CI</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F76a8b58e1f73328243ff838a4652bdcc4ead31b5"><code>76a8b58</code></a>
chore: skip spanner django presubmits using dorny filter (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fissues%2F16196">#16196</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081"><code>7a05a34</code></a>
chore: create a release (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fissues%2F16191">#16191</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcommit%2F46ee8a094fdb121f49fa600f91d1b8c0818a9253"><code>46ee8a0</code></a>
fix presubmit</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgoogleapis%2Fgoogle-cloud-python%2Fcompare%2Fgoogle-api-core-v2.30.0...google-api-core-v2.30.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `fastapi` from 0.135.1 to 0.135.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Freleases">fastapi's
releases</a>.</em></p>
<blockquote>
<h2>0.135.2</h2>
<h3>Upgrades</h3>
<ul>
<li>⬆️ Increase lower bound to <code>pydantic &gt;=2.9.0.</code> and fix
the test suite. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15139">#15139</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsvlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>📝 Add missing last release notes dates. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15202">#15202</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>📝 Update docs for contributors and team members regarding
translation PRs. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15200">#15200</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FYuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>💄 Fix code blocks in reference docs overflowing table width. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15094">#15094</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FYuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>📝 Fix duplicated words in docstrings. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15116">#15116</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FAhsanSheraz"><code>@​AhsanSheraz</code></a>.</li>
<li>📝 Add docs for <code>pyproject.toml</code> with
<code>entrypoint</code>. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15075">#15075</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>📝 Update links in docs to no longer use the classes external-link
and internal-link. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15061">#15061</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🔨 Add JS and CSS handling for automatic <code>target=_blank</code>
for links in docs. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15063">#15063</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>💄 Update styles for internal and external links in new tab. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15058">#15058</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>📝 Add documentation for the FastAPI VS Code extension. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15008">#15008</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsavannahostrowski"><code>@​savannahostrowski</code></a>.</li>
<li>📝 Fix doctrings for <code>max_digits</code> and
<code>decimal_places</code>. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F14944">#14944</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FYuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>📝 Add dates to release notes. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15001">#15001</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FYuriiMotov"><code>@​YuriiMotov</code></a>.</li>
</ul>
<h3>Translations</h3>
<ul>
<li>🌐 Update translations for zh (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15177">#15177</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for zh-hant (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15178">#15178</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for zh-hant (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15176">#15176</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for zh (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15175">#15175</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for ja (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15171">#15171</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for ko (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15170">#15170</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for tr (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15172">#15172</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for ko (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15168">#15168</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for ja (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15167">#15167</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for tr (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15169">#15169</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for fr (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15165">#15165</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for fr (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15163">#15163</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for uk (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15160">#15160</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for uk (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15158">#15158</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for pt (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15157">#15157</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for pt (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15159">#15159</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for es (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15155">#15155</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for es (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15154">#15154</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for de (update-outdated). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15156">#15156</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for ru (update-and-add). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15152">#15152</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
<li>🌐 Update translations for de (add-missing). PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15153">#15153</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>🔨 Exclude spam comments from statistics in
<code>scripts/people.py</code>. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15088">#15088</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FYuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>⬆ Bump authlib from 1.6.7 to 1.6.9. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15128">#15128</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fapps%2Fdependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pyasn1 from 0.6.2 to 0.6.3. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15143">#15143</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fapps%2Fdependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump ujson from 5.11.0 to 5.12.0. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15150">#15150</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fapps%2Fdependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>🔨 Tweak translation workflow and translation fixer tool. PR <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fpull%2F15166">#15166</a>
by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FYuriiMotov"><code>@​YuriiMotov</code></a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2F25a3697cedc6e7dfb84e93c8ff965801486f00f4"><code>25a3697</code></a>
🔖 Release version 0.135.2</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2Fab125daa4034435777853a2c5a6c47451414f9aa"><code>ab125da</code></a>
📝 Update release notes</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2F122b6d490f844b6f716855d55a3e11237b7fb61f"><code>122b6d4</code></a>
📝 Add missing last release notes dates (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fissues%2F15202">#15202</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2F68ac0ab91e9b14c418013790fc0e420a827686b5"><code>68ac0ab</code></a>
📝 Update release notes</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2Fea6e287eb398afe6a82c3ef71780e8451813f674"><code>ea6e287</code></a>
📝 Update docs for contributors and team members regarding translation
PRs (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fissues%2F1">#1</a>...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2Fd0a6f208c5cb5daaa1de5ea5187729e3789d1dce"><code>d0a6f20</code></a>
📝 Update release notes</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2Ffd9e192cf4fae399c0d51dd23e2a137052eb6087"><code>fd9e192</code></a>
💄 Fix code blocks in reference docs overflowing table width (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fissues%2F15094">#15094</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2Ffce9460f865928eb7d0393d8809bbc472e0c21cd"><code>fce9460</code></a>
📝 Update release notes</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2F0227991a01e61bf5cdd93cc00e9e243f52b47a4a"><code>0227991</code></a>
🔨 Exclude spam comments from statistics in
<code>scripts/people.py</code> (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Ffastapi%2Ffastapi%2Fissues%2F15088">#15088</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcommit%2Fcbd64b09a32681d3b0ea097608bc62eb0d1587e0"><code>cbd64b0</code></a>
📝 Update release notes</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Fcompare%2F0.135.1...0.135.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `sse-starlette` from 3.3.2 to 3.3.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Freleases">sse-starlette's
releases</a>.</em></p>
<blockquote>
<h2>v3.3.4</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump cbor2 from 5.8.0 to 5.9.0 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F177">sysid/sse-starlette#177</a></li>
<li>chore(deps): bump ujson from 5.11.0 to 5.12.0 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F176">sysid/sse-starlette#176</a></li>
<li>chore(deps): bump requests from 2.32.5 to 2.33.0 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F178">sysid/sse-starlette#178</a></li>
<li>chore(deps): bump cryptography from 46.0.5 to 46.0.6 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F179">sysid/sse-starlette#179</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcompare%2Fv3.3.3...v3.3.4">https://github.com/sysid/sse-starlette/compare/v3.3.3...v3.3.4</a></p>
<h2>v3.3.3</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(deps): bump astral-sh/setup-uv from 6 to 7 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F172">sysid/sse-starlette#172</a></li>
<li>chore(deps): bump pyopenssl from 25.3.0 to 26.0.0 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F174">sysid/sse-starlette#174</a></li>
<li>chore(deps): bump pyasn1 from 0.6.2 to 0.6.3 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fpull%2F175">sysid/sse-starlette#175</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcompare%2Fv0.0.0...v3.3.3">https://github.com/sysid/sse-starlette/compare/v0.0.0...v3.3.3</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2Fc938db3f6ea262f5f087c75d8631c3aab9cbf0ad"><code>c938db3</code></a>
Bump version to 3.3.4</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2Feefd6dcb106784960af02505a56686b362e9caab"><code>eefd6dc</code></a>
Merge pull request <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fissues%2F179">#179</a>
from sysid/dependabot/uv/cryptography-46.0.6</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2Fd9e9b822224b09c275c1905aaeb3cbab6c29f4f7"><code>d9e9b82</code></a>
chore(deps): bump cryptography from 46.0.5 to 46.0.6</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2F28cd775f51f138726d6c27f42ff4fdae91f482f0"><code>28cd775</code></a>
Merge pull request <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fissues%2F178">#178</a>
from sysid/dependabot/uv/requests-2.33.0</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2F2e52732f92665dd7ed83250af840bdef0ef1bc98"><code>2e52732</code></a>
Merge pull request <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fissues%2F176">#176</a>
from sysid/dependabot/uv/ujson-5.12.0</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2Fbac335e7dce0ee11f6585d6cfc1379079756b22c"><code>bac335e</code></a>
Merge pull request <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fsysid%2Fsse-starlette%2Fissues%2F177">#177</a>
from sysid/dependabot/uv/cbor2-5.9.0</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2Fd4654686c68f18e71d09f580a4acb10199858abc"><code>d465468</code></a>
chore(deps): bump requests from 2.32.5 to 2.33.0</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2F7434cd326b055077719df224b12d0d7ace3e4cfd"><code>7434cd3</code></a>
chore(deps): bump cbor2 from 5.8.0 to 5.9.0</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2Ffc2455af95ec26822d7ca0420c2c115f7489b7c4"><code>fc2455a</code></a>
chore(deps): bump ujson from 5.11.0 to 5.12.0</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcommit%2F5f845398db25a50889ef7a0f8214aa931aed7ac0"><code>5f84539</code></a>
Bump version to 3.3.3</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fsysid%2Fsse-starlette%2Fcompare%2Fv3.3.2...v3.3.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `starlette` from 0.52.1 to 1.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Freleases">starlette's
releases</a>.</em></p>
<blockquote>
<h2>Version 1.0.0</h2>
<p>Starlette 1.0 is here! 🎉</p>
<p>After nearly eight years since its creation, Starlette has reached
its first stable release.</p>
<p>A special thank you to <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Flovelydinosaur"><code>@​lovelydinosaur</code></a>,
the creator of Starlette, Uvicorn, HTTPX and MkDocs, whose work helped
to lay the foundation for the modern async Python ecosystem. 🙏</p>
<p>Thank you to <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fadriangb"><code>@​adriangb</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgraingert"><code>@​graingert</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fagronholm"><code>@​agronholm</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fflorimondmanca"><code>@​florimondmanca</code></a>,
<a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Faminalaee"><code>@​aminalaee</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Falex-oleshkevich"><code>@​alex-oleshkevich</code></a>,
<a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fabersheeran"><code>@​abersheeran</code></a>,
and <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FuSpike"><code>@​uSpike</code></a> for
helping make Starlette what it is today. And to all my sponsors -
especially <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fhuggingface"><code>@​huggingface</code></a>,
and <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Felevenlabs"><code>@​elevenlabs</code></a> -
thank you for your support!</p>
<p>Thank you to all <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fencode%2Fstarlette%2Fgraphs%2Fcontributors">290+
contributors</a> who have shaped Starlette over the years! ❤️</p>
<p>Read more on the <a href="/sitelet?url=https%3A%2F%2Fmarcelotryle.com%2Fblog%2F2026%2F03%2F22%2Fstarlette-10-is-here%2F">blog
post</a>.</p>
<p>Check out the full release notes at <a href="/sitelet?url=https%3A%2F%2Fwww.starlette.io%2Frelease-notes%2F%23100-march-22-2026">https://www.starlette.io/release-notes/#100-march-22-2026</a></p>
<hr />
<p><strong>Full Changelog</strong>: <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fencode%2Fstarlette%2Fcompare%2F1.0.0rc1...1.0.0">https://github.com/encode/starlette/compare/1.0.0rc1...1.0.0</a></p>
<h2>Version 1.0.0rc1</h2>
<p>We're ready! 🚀</p>
<p>The first release candidate for Starlette 1.0 is here! After years on
ZeroVer, we're finally making the jump.</p>
<p>This release removes all deprecated features marked for 1.0.0, along
with some last-minute bug fixes.</p>
<p>A special thank you to <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Flovelydinosaur"><code>@​lovelydinosaur</code></a>,
the creator of Starlette, Uvicorn, HTTPX and MkDocs, whose work helped
to lay the foundation for the modern async Python ecosystem. 🙏</p>
<p>Thank you to <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fadriangb"><code>@​adriangb</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgraingert"><code>@​graingert</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fagronholm"><code>@​agronholm</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fflorimondmanca"><code>@​florimondmanca</code></a>,
<a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Faminalaee"><code>@​aminalaee</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Falex-oleshkevich"><code>@​alex-oleshkevich</code></a>,
and <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fabersheeran"><code>@​abersheeran</code></a> for
helping make Starlette what it is today. And to all my sponsors -
especially <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fhuggingface"><code>@​huggingface</code></a>,
and <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Felevenlabs"><code>@​elevenlabs</code></a> -
thank you for your support!</p>
<p>Thank you to all <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fencode%2Fstarlette%2Fgraphs%2Fcontributors">290+
contributors</a> who have shaped Starlette over the years!</p>
<p>Check out the full release notes at <a href="/sitelet?url=https%3A%2F%2Fwww.starlette.io%2Frelease-notes%2F%23100rc1-february-23-2026">https://www.starlette.io/release-notes/#100rc1-february-23-2026</a></p>
<hr />
<p><strong>Full Changelog</strong>: <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcompare%2F0.52.1...1.0.0rc1">https://github.com/Kludex/starlette/compare/0.52.1...1.0.0rc1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fblob%2Fmain%2Fdocs%2Frelease-notes.md">starlette's
changelog</a>.</em></p>
<blockquote>
<h2>1.0.0 (March 22, 2026)</h2>
<p>Starlette 1.0 is here!</p>
<p>After nearly eight years since its creation, Starlette has reached
its first stable release.
Thank you to everyone who tested the release candidate and reported
issues.</p>
<p>You can read more on the <a href="/sitelet?url=https%3A%2F%2Fmarcelotryle.com%2Fblog%2F2026%2F03%2F22%2Fstarlette-10-is-here%2F">blog
post</a>.</p>
<h4>Added</h4>
<ul>
<li>Track session access and modification in
<code>SessionMiddleware</code> <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fencode%2Fstarlette%2Fpull%2F3166">#3166</a>.</li>
</ul>
<h4>Fixed</h4>
<ul>
<li>Handle websocket denial responses in <code>StreamingResponse</code>
and <code>FileResponse</code> <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fencode%2Fstarlette%2Fpull%2F3189">#3189</a>.</li>
<li>Use <code>bytearray</code> for field accumulation in
<code>FormParser</code> <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fencode%2Fstarlette%2Fpull%2F3179">#3179</a>.</li>
<li>Move <code>parser.finalize()</code> inside try/except in
<code>MultiPartParser.parse()</code> <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fencode%2Fstarlette%2Fpull%2F3153">#3153</a>.</li>
</ul>
<h2>1.0.0rc1 (February 23, 2026)</h2>
<p>We're ready! I'm thrilled to announce the first release candidate for
Starlette 1.0.</p>
<p>Starlette was created in June 2018 by Tom Christie, and has been on
ZeroVer for years. Today, it's downloaded
almost <a href="/sitelet?url=https%3A%2F%2Fpypistats.org%2Fpackages%2Fstarlette">10 million
times a day</a>, serves as the foundation for FastAPI,
and has inspired many other frameworks. In the age of AI, Starlette
continues to play an important role as a
dependency of the Python MCP SDK.</p>
<p>This release focuses on removing deprecated features that were marked
for removal in 1.0.0, along with some
last minute bug fixes. It's a release candidate, so we can gather
feedback from the community before the final
1.0.0 release soon.</p>
<p>A huge thank you to all the contributors who have helped make
Starlette what it is today.
In particular, I'd like to recognize:</p>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Flovelydinosaur">Kim Christie</a> - The
original creator of Starlette, Uvicorn, and MkDocs, and the
current maintainer of HTTPX. Kim's work helped lay the foundation for
the modern async Python ecosystem.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fadriangb">Adrian Garcia Badaracco</a> -
One of the smartest people I know, whom I have the pleasure of working
with at Pydantic.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgraingert">Thomas Grainger</a> - My
async teacher, always ready to help with questions.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fagronholm">Alex Grönholm</a> - Another
async mentor, always prompt to help with questions.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fflorimondmanca">Florimond Manca</a> -
Always present in the early days of both Starlette and Uvicorn, and
helped a lot in the ecosystem.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Faminalaee">Amin Alaee</a> - Contributed
a lot with file-related PRs.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo">Sebastián Ramírez</a> -
Maintains FastAPI upstream, and always in contact to help with upstream
issues.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Falex-oleshkevich">Alex Oleshkevich</a> -
Helped a lot on templates and many discussions.</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fabersheeran">abersheeran</a> - My go-to
person when I need help on many subjects.</li>
</ul>
<p>I'd also like to thank my sponsors for their support. A special
thanks to
<a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftiangolo"><code>@​tiangolo</code></a>, <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fhuggingface"><code>@​huggingface</code></a>,
and <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Felevenlabs"><code>@​elevenlabs</code></a> for
their generous sponsorship, and to all my other sponsors:</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2F0e88e92b592bfa11fd92e331869a8d49ba34b541"><code>0e88e92</code></a>
Version 1.0.0 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3178">#3178</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2F9ee951980bae776103715b66305f807d9e8245da"><code>9ee9519</code></a>
Handle websocket denial responses in streaming and file responses (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3189">#3189</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2Fa0bcc26612c9c344737cd59fb4ef847326adf37a"><code>a0bcc26</code></a>
chore(deps-dev): bump black from 26.1.0 to 26.3.1 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3183">#3183</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2F79b3f26a9a38791af14d15c058c0e8c54cd9b11e"><code>79b3f26</code></a>
chore(deps-dev): bump the python-packages group with 7 updates (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3168">#3168</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2F789b9269fd3f3d6ab28781624f151e44432463cd"><code>789b926</code></a>
Use <code>bytearray</code> for field accumulation in
<code>FormParser</code> (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3179">#3179</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2Fa1fd9d822dc49857e9f39ea5b0970aeed6c8f669"><code>a1fd9d8</code></a>
docs: fix typo in routing.md (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3176">#3176</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2Fc14d0f778010940ac40f97dbc23d8dbf99e87e23"><code>c14d0f7</code></a>
Document session cookie security flags (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3169">#3169</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2Fc2e28786d1e73da045fa84e622f65c314a7171c1"><code>c2e2878</code></a>
Move parser.finalize() inside try/except in MultiPartParser.parse() (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3153">#3153</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2F89630a8658ab8aac7cca8a0d6ec4b78dcc2fcb46"><code>89630a8</code></a>
chore(deps): bump the github-actions group with 3 updates (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3167">#3167</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcommit%2F4647e532bbed7a5f60c9972ddba3f5fb4a79e1f9"><code>4647e53</code></a>
Track session access and modification in <code>SessionMiddleware</code>
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2FKludex%2Fstarlette%2Fissues%2F3166">#3166</a>)</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2FKludex%2Fstarlette%2Fcompare%2F0.52.1...1.0.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `cryptography` from 46.0.5 to 46.0.6
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpyca%2Fcryptography%2Fblob%2Fmain%2FCHANGELOG.rst">cryptography's
changelog</a>.</em></p>
<blockquote>
<p>46.0.6 - 2026-03-25</p>
<pre><code>
* **SECURITY ISSUE**: Fixed a bug where name constraints were not
applied
  to peer names during verification when the leaf certificate contains a
wildcard DNS SAN. Ordinary X.509 topologies are not affected by this
bug,
including those used by the Web PKI. Credit to **Oleh Konko (1seal)**
for
  reporting the issue. **CVE-2026-34073**
<p>.. _v46-0-5:<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpyca%2Fcryptography%2Fcommit%2F91d728897bdad30cd5c79a2b23e207f1f050d587"><code>91d7288</code></a>
Cherry-pick <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fpyca%2Fcryptography%2Fissues%2F14542">#14542</a>
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fpyca%2Fcryptography%2Fissues%2F14543">#14543</a>)</li>
<li>See full diff in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpyca%2Fcryptography%2Fcompare%2F46.0.5...46.0.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `grpcio` from 1.78.0 to 1.80.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Freleases">grpcio's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.80.0</h2>
<p>This is release 1.80.0 (<a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fblob%2Fmaster%2Fdoc%2Fg_stands_for.md">glimmering</a>)
of gRPC Core.</p>
<p>For gRPC documentation, see <a href="/sitelet?url=https%3A%2F%2Fgrpc.io%2F">grpc.io</a>.
For previous releases, see <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Freleases">Releases</a>.</p>
<p>This release contains refinements, improvements, and bug fixes, with
highlights listed below.</p>
<h2>Core</h2>
<ul>
<li>[ssl] Implement TLS private key signer in Python. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41701">#41701</a>)</li>
<li>[TLS Credentials]: Private Key Offload Implementation. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41606">#41606</a>)</li>
<li>Fix max sockaddr struct size on OpenBSD. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F40454">#40454</a>)</li>
<li>[core] Enable EventEngine for Python by default, and EventEngine
fork support in Python and Ruby. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41432">#41432</a>)</li>
<li>[TLS Credentials]: Create InMemoryCertificateProvider to update
certificates independently. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41484">#41484</a>)</li>
<li>[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0
support. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41324">#41324</a>)</li>
<li>[EventEngine] Remove an incorrect std::move in DNSServiceResolver
constructor. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41502">#41502</a>)</li>
<li>[RR and WRR] enable change to connect from a random index. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41472">#41472</a>)</li>
<li>[xds] Implement gRFC A101. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41051">#41051</a>)</li>
</ul>
<h2>C++</h2>
<ul>
<li>[C++] Add SNI override option to C++ channel credentials options
API. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41460">#41460</a>)</li>
</ul>
<h2>C#</h2>
<ul>
<li>[C# tools] Option to append Async to server side method names <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F39010">#39010</a>.
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F39797">#39797</a>)</li>
<li>[C# tools] Fix Grpc.Tools 2.69.0 stops working on ARM64 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41543">#41543</a>)</li>
</ul>
<h2>Objective-C</h2>
<ul>
<li>[Fix][Compiler] Plugins fall back to the edition 2023 for older
protobuf. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41357">#41357</a>)</li>
</ul>
<h2>PHP</h2>
<ul>
<li>[PHP] Disable php infinite recursion check for callback from Core to
PHP. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41835">#41835</a>)</li>
<li>[PHP] Fix runtime error with PHp8.5 alpha because
zend_exception_get_defaul…. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F40337">#40337</a>)</li>
</ul>
<h2>Python</h2>
<ul>
<li>[Python] Fix <code>GRPC_TRACE</code> not working when absl log
initialized in cython. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41814">#41814</a>)</li>
<li>Revert &quot;[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in
core and python (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41455">#41455</a>)&quot;.
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41769">#41769</a>)</li>
<li>[Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement
preventing negative active_rpcs count. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41532">#41532</a>)</li>
<li>[Python] Docs: correct <code>grpc.Compression</code> references. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41705">#41705</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Ff5e2d6e856176c2f6b7691032adfefe21e5f64c1"><code>f5e2d6e</code></a>
[Release] Bump version to 1.80.0 (on v1.80.x branch) (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41857">#41857</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F938cfecaebfc28b5e6bcdb95d55aba3962d9b55b"><code>938cfec</code></a>
[subchannel connection scaling] fix when we reset backoff (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41935">#41935</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F91778bec667d7310864420f2b32aeb2e41e1b51c"><code>91778be</code></a>
[Backport][v1.80.x][Python] New <code>_create</code> method for
aio.Metadata (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41888">#41888</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Ff10b9f26933703c5fe3e080f50ef19c858d773e0"><code>f10b9f2</code></a>
[bzlmod] upgrade rules_swift to avoid BCR CI breakage on Windows with
bazel 7...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Fbe4c1c55b69493868241bfffd4bc318d3d592656"><code>be4c1c5</code></a>
[subchannel] fix crash in connection scaling code (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41853">#41853</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Fa71df73eafb18fa0210a13dd6a2ce2cb6594d427"><code>a71df73</code></a>
[Release] Bump version to 1.80.0-pre1 (on v1.80.x branch) (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41844">#41844</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F3ca09e4818f4362e75c9c224f1d4c2065db75a0a"><code>3ca09e4</code></a>
[Python] Fix GRPC_TRACE and add test to check the GRPC_TRACE logs print
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41814">#41814</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F260c6fd37c502e984836a446c5d90e4a1298036d"><code>260c6fd</code></a>
[PHP] Disable php infinite recursion check for callback from Core to PHP
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41">#41</a>...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F50957c5c47de1c85637fc9dafe6d4eb4c1224f6b"><code>50957c5</code></a>
[Flakiness] Delete flaky iomgr fd_conservation_posix_test and create an
Event...</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Fe1e1d0a8150b5178d4b75e15f4856a4d825a8999"><code>e1e1d0a</code></a>
[Bzlmod] Turn off bzlmod for PSM python tests. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41810">#41810</a>)</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcompare%2Fv1.78.0...v1.80.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `grpcio-tools` from 1.78.0 to 1.80.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Freleases">grpcio-tools's
releases</a>.</em></p>
<blockquote>
<h2>Release v1.80.0</h2>
<p>This is release 1.80.0 (<a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fblob%2Fmaster%2Fdoc%2Fg_stands_for.md">glimmering</a>)
of gRPC Core.</p>
<p>For gRPC documentation, see <a href="/sitelet?url=https%3A%2F%2Fgrpc.io%2F">grpc.io</a>.
For previous releases, see <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Freleases">Releases</a>.</p>
<p>This release contains refinements, improvements, and bug fixes, with
highlights listed below.</p>
<h2>Core</h2>
<ul>
<li>[ssl] Implement TLS private key signer in Python. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41701">#41701</a>)</li>
<li>[TLS Credentials]: Private Key Offload Implementation. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41606">#41606</a>)</li>
<li>Fix max sockaddr struct size on OpenBSD. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F40454">#40454</a>)</li>
<li>[core] Enable EventEngine for Python by default, and EventEngine
fork support in Python and Ruby. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41432">#41432</a>)</li>
<li>[TLS Credentials]: Create InMemoryCertificateProvider to update
certificates independently. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41484">#41484</a>)</li>
<li>[Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0
support. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41324">#41324</a>)</li>
<li>[EventEngine] Remove an incorrect std::move in DNSServiceResolver
constructor. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41502">#41502</a>)</li>
<li>[RR and WRR] enable change to connect from a random index. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41472">#41472</a>)</li>
<li>[xds] Implement gRFC A101. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41051">#41051</a>)</li>
</ul>
<h2>C++</h2>
<ul>
<li>[C++] Add SNI override option to C++ channel credentials options
API. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41460">#41460</a>)</li>
</ul>
<h2>C#</h2>
<ul>
<li>[C# tools] Option to append Async to server side method names <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F39010">#39010</a>.
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F39797">#39797</a>)</li>
<li>[C# tools] Fix Grpc.Tools 2.69.0 stops working on ARM64 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41543">#41543</a>)</li>
</ul>
<h2>Objective-C</h2>
<ul>
<li>[Fix][Compiler] Plugins fall back to the edition 2023 for older
protobuf. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41357">#41357</a>)</li>
</ul>
<h2>PHP</h2>
<ul>
<li>[PHP] Disable php infinite recursion check for callback from Core to
PHP. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41835">#41835</a>)</li>
<li>[PHP] Fix runtime error with PHp8.5 alpha because
zend_exception_get_defaul…. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F40337">#40337</a>)</li>
</ul>
<h2>Python</h2>
<ul>
<li>[Python] Fix <code>GRPC_TRACE</code> not working when absl log
initialized in cython. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41814">#41814</a>)</li>
<li>Revert &quot;[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in
core and python (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41455">#41455</a>)&quot;.
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41769">#41769</a>)</li>
<li>[Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement
preventing negative active_rpcs count. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41532">#41532</a>)</li>
<li>[Python] Docs: correct <code>grpc.Compression</code> references. (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fpull%2F41705">#41705</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Ff5e2d6e856176c2f6b7691032adfefe21e5f64c1"><code>f5e2d6e</code></a>
[Release] Bump version to 1.80.0 (on v1.80.x branch) (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41857">#41857</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2Fa71df73eafb18fa0210a13dd6a2ce2cb6594d427"><code>a71df73</code></a>
[Release] Bump version to 1.80.0-pre1 (on v1.80.x branch) (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41844">#41844</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F1299baa1d49383c92bd462cba0360838bba092b8"><code>1299baa</code></a>
[Python] Add language features to exported proto files (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41501">#41501</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcommit%2F522dbbbb25ab793ec65f5ec02de362a63c26e36a"><code>522dbbb</code></a>
[Release] Bump version to 1.79.0-dev (on master branch) (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fgrpc%2Fgrpc%2Fissues%2F41291">#41291</a>)</li>
<li>See full diff in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fgrpc%2Fgrpc%2Fcompare%2Fv1.78.0...v1.80.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `grpcio-reflection` from 1.78.0 to 1.80.0

Updates `opentelemetry-api` from 1.39.1 to 1.40.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fblob%2Fmain%2FCHANGELOG.md">opentelemetry-api's
changelog</a>.</em></p>
<blockquote>
<h2>Version 1.40.0/0.61b0 (2026-03-04)</h2>
<ul>
<li><code>opentelemetry-sdk</code>: deprecate
<code>LoggingHandler</code> in favor of
<code>opentelemetry-instrumentation-logging</code>, see
<code>opentelemetry-instrumentation-logging</code> documentation
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4919">#4919</a>)</li>
<li><code>opentelemetry-sdk</code>: Clarify log processor error handling
expectations in documentation
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4915">#4915</a>)</li>
<li>bump semantic-conventions to v1.40.0
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4941">#4941</a>)</li>
<li>Add stale PR GitHub Action
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4926">#4926</a>)</li>
<li><code>opentelemetry-sdk</code>: Drop unused Jaeger exporter
environment variables (exporter removed in 1.22.0)
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4918">#4918</a>)</li>
<li><code>opentelemetry-sdk</code>: Clarify timeout units in environment
variable documentation
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4906">#4906</a>)</li>
<li><code>opentelemetry-exporter-otlp-proto-grpc</code>: Fix
re-initialization of gRPC channel on UNAVAILABLE error
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4825">#4825</a>)</li>
<li><code>opentelemetry-exporter-prometheus</code>: Fix duplicate
HELP/TYPE declarations for metrics with different label sets
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4868">#4868</a>)</li>
<li>Allow loading all resource detectors by setting
<code>OTEL_EXPERIMENTAL_RESOURCE_DETECTORS</code> to <code>*</code>
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4819">#4819</a>)</li>
<li><code>opentelemetry-sdk</code>: Fix the type hint of the
<code>_metrics_data</code> property to allow <code>None</code>
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4837">#4837</a>).</li>
<li>Regenerate opentelemetry-proto code with v1.9.0 release
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4840">#4840</a>)</li>
<li>Add python 3.14 support
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4798">#4798</a>)</li>
<li>Silence events API warnings for internal users
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4847">#4847</a>)</li>
<li>opentelemetry-sdk: make it possible to override the default
processors in the SDK configurator
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4806">#4806</a>)</li>
<li>Prevent possible endless recursion from happening in
<code>SimpleLogRecordProcessor.on_emit</code>,
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4799">#4799</a>)
and (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4867">#4867</a>).</li>
<li>Implement span start/end metrics
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4880">#4880</a>)</li>
<li>Add environment variable carriers to API
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4609">#4609</a>)</li>
<li>Add experimental composable rule based sampler
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4882">#4882</a>)</li>
<li>Make ConcurrentMultiSpanProcessor fork safe
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4862">#4862</a>)</li>
<li><code>opentelemetry-exporter-otlp-proto-http</code>: fix retry logic
and error handling for connection failures in trace, metric, and log
exporters
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4709">#4709</a>)</li>
<li><code>opentelemetry-sdk</code>: avoid RuntimeError during iteration
of view instrument match dictionary in MetricReaderStorage.collect()
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4891">#4891</a>)</li>
<li>Implement experimental TracerConfigurator
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4861">#4861</a>)</li>
<li><code>opentelemetry-sdk</code>: Fix instrument creation race
condition
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4913">#4913</a>)</li>
<li>bump semantic-conventions to v1.39.0
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4914">#4914</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2Fdd2202172982d1b3cc896ddecc2bef27d7956acb"><code>dd22021</code></a>
Prepare release 1.40.0/0.61b0 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4949">#4949</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F26c716602cd5927a4ad1e36a77baefdeba5457a5"><code>26c7166</code></a>
api: add docstrings to core metrics instrument abstract methods (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4923">#4923</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2Fc17ba89fdf62e39221211c2110816daff09e4238"><code>c17ba89</code></a>
opentelemetry-sdk: deprecate logging handler (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4919">#4919</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F6ea15ffa5da5c4fa0b599e1c0c54644e42be20b3"><code>6ea15ff</code></a>
docs: Clarify log processor error handling expectations (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4915">#4915</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F24f4fb0ead320b8a1196f01612ce94b1ea959838"><code>24f4fb0</code></a>
bump semconv to v1.40.0 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4941">#4941</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F2308baf3ee7053d70ca3db8b9ba02a2387ef2aeb"><code>2308baf</code></a>
maint: Add stale github action (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4926">#4926</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F99b47df940a624523aecad88f54d7721beec6559"><code>99b47df</code></a>
config: generate model code from json schema (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4879">#4879</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F9a658ac86376a13ccf3a67d245a9f3edc5f19043"><code>9a658ac</code></a>
Add Lukas to approvers (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4939">#4939</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F1c64c149681d47c42506ccc7e9840aad049c755e"><code>1c64c14</code></a>
opentelemetry-sdk: change sdk metrics related parameters as named (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4937">#4937</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F7247af7f0f131541df5f3509e5ecd7e4f90f18c2"><code>7247af7</code></a>
opentelemetry-sdk: change sdk metrics related parameters as named (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4937">#4937</a>)</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcompare%2Fv1.39.1...v1.40.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `opentelemetry-sdk` from 1.39.1 to 1.40.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fblob%2Fmain%2FCHANGELOG.md">opentelemetry-sdk's
changelog</a>.</em></p>
<blockquote>
<h2>Version 1.40.0/0.61b0 (2026-03-04)</h2>
<ul>
<li><code>opentelemetry-sdk</code>: deprecate
<code>LoggingHandler</code> in favor of
<code>opentelemetry-instrumentation-logging</code>, see
<code>opentelemetry-instrumentation-logging</code> documentation
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4919">#4919</a>)</li>
<li><code>opentelemetry-sdk</code>: Clarify log processor error handling
expectations in documentation
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4915">#4915</a>)</li>
<li>bump semantic-conventions to v1.40.0
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4941">#4941</a>)</li>
<li>Add stale PR GitHub Action
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4926">#4926</a>)</li>
<li><code>opentelemetry-sdk</code>: Drop unused Jaeger exporter
environment variables (exporter removed in 1.22.0)
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4918">#4918</a>)</li>
<li><code>opentelemetry-sdk</code>: Clarify timeout units in environment
variable documentation
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4906">#4906</a>)</li>
<li><code>opentelemetry-exporter-otlp-proto-grpc</code>: Fix
re-initialization of gRPC channel on UNAVAILABLE error
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4825">#4825</a>)</li>
<li><code>opentelemetry-exporter-prometheus</code>: Fix duplicate
HELP/TYPE declarations for metrics with different label sets
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4868">#4868</a>)</li>
<li>Allow loading all resource detectors by setting
<code>OTEL_EXPERIMENTAL_RESOURCE_DETECTORS</code> to <code>*</code>
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4819">#4819</a>)</li>
<li><code>opentelemetry-sdk</code>: Fix the type hint of the
<code>_metrics_data</code> property to allow <code>None</code>
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4837">#4837</a>).</li>
<li>Regenerate opentelemetry-proto code with v1.9.0 release
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4840">#4840</a>)</li>
<li>Add python 3.14 support
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4798">#4798</a>)</li>
<li>Silence events API warnings for internal users
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4847">#4847</a>)</li>
<li>opentelemetry-sdk: make it possible to override the default
processors in the SDK configurator
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4806">#4806</a>)</li>
<li>Prevent possible endless recursion from happening in
<code>SimpleLogRecordProcessor.on_emit</code>,
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4799">#4799</a>)
and (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4867">#4867</a>).</li>
<li>Implement span start/end metrics
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4880">#4880</a>)</li>
<li>Add environment variable carriers to API
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4609">#4609</a>)</li>
<li>Add experimental composable rule based sampler
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4882">#4882</a>)</li>
<li>Make ConcurrentMultiSpanProcessor fork safe
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4862">#4862</a>)</li>
<li><code>opentelemetry-exporter-otlp-proto-http</code>: fix retry logic
and error handling for connection failures in trace, metric, and log
exporters
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4709">#4709</a>)</li>
<li><code>opentelemetry-sdk</code>: avoid RuntimeError during iteration
of view instrument match dictionary in MetricReaderStorage.collect()
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4891">#4891</a>)</li>
<li>Implement experimental TracerConfigurator
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4861">#4861</a>)</li>
<li><code>opentelemetry-sdk</code>: Fix instrument creation race
condition
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4913">#4913</a>)</li>
<li>bump semantic-conventions to v1.39.0
(<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fpull%2F4914">#4914</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2Fdd2202172982d1b3cc896ddecc2bef27d7956acb"><code>dd22021</code></a>
Prepare release 1.40.0/0.61b0 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4949">#4949</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F26c716602cd5927a4ad1e36a77baefdeba5457a5"><code>26c7166</code></a>
api: add docstrings to core metrics instrument abstract methods (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4923">#4923</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2Fc17ba89fdf62e39221211c2110816daff09e4238"><code>c17ba89</code></a>
opentelemetry-sdk: deprecate logging handler (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4919">#4919</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F6ea15ffa5da5c4fa0b599e1c0c54644e42be20b3"><code>6ea15ff</code></a>
docs: Clarify log processor error handling expectations (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4915">#4915</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F24f4fb0ead320b8a1196f01612ce94b1ea959838"><code>24f4fb0</code></a>
bump semconv to v1.40.0 (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4941">#4941</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F2308baf3ee7053d70ca3db8b9ba02a2387ef2aeb"><code>2308baf</code></a>
maint: Add stale github action (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4926">#4926</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F99b47df940a624523aecad88f54d7721beec6559"><code>99b47df</code></a>
config: generate model code from json schema (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4879">#4879</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F9a658ac86376a13ccf3a67d245a9f3edc5f19043"><code>9a658ac</code></a>
Add Lukas to approvers (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4939">#4939</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F1c64c149681d47c42506ccc7e9840aad049c755e"><code>1c64c14</code></a>
opentelemetry-sdk: change sdk metrics related parameters as named (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4937">#4937</a>)</li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcommit%2F7247af7f0f131541df5f3509e5ecd7e4f90f18c2"><code>7247af7</code></a>
opentelemetry-sdk: change sdk metrics related parameters as named (<a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fopen-telemetry%2Fopentelemetry-python%2Fissues%2F4937">#4937</a>)</li>
<li>Additional commits viewable in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fopen-telemetry%2Fopentelemetry-python%2Fcompare%2Fv1.39.1...v1.40.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `pyjwt` from 2.11.0 to 2.12.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla%2Fpyjwt%2Freleases">pyjwt's
releases</a>.</em></p>
<blockquote>
<h2>2.12.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Add typing_extensions dependency for Python &lt; 3.11 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla"><code>@​jpadilla</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1151">jpadilla/pyjwt#1151</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla%2Fpyjwt%2Fcompare%2F2.12.0...2.12.1">https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1</a></p>
<h2>2.12.0</h2>
<h2>Security</h2>
<ul>
<li>Validate the crit (Critical) Header Parameter defined in RFC 7515
§4.1.11. by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdmbs335"><code>@​dmbs335</code></a> in <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla%2Fpyjwt%2Fsecurity%2Fadvisories%2FGHSA-752w-5fwx-jx9f">GHSA-752w-5fwx-jx9f</a></li>
</ul>
<h2>What's Changed</h2>
<ul>
<li>[pre-commit.ci] pre-commit autoupdate by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1132">jpadilla/pyjwt#1132</a></li>
<li>chore(docs): fix docs build by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftamird"><code>@​tamird</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1137">jpadilla/pyjwt#1137</a></li>
<li>Annotate PyJWKSet.keys for pyright by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftamird"><code>@​tamird</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1134">jpadilla/pyjwt#1134</a></li>
<li>fix: close HTTPError to prevent ResourceWarning on Python 3.14 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fveeceey"><code>@​veeceey</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1133">jpadilla/pyjwt#1133</a></li>
<li>chore: remove superfluous constants by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftamird"><code>@​tamird</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1136">jpadilla/pyjwt#1136</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1135">jpadilla/pyjwt#1135</a></li>
<li>chore(tests): enable mypy by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftamird"><code>@​tamird</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1138">jpadilla/pyjwt#1138</a></li>
<li>Bump actions/download-artifact from 7 to 8 by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fdependabot"><code>@​dependabot</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1142">jpadilla/pyjwt#1142</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1141">jpadilla/pyjwt#1141</a></li>
<li>[pre-commit.ci] pre-commit autoupdate by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fpre-commit-ci"><code>@​pre-commit-ci</code></a>[bot]
in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1145">jpadilla/pyjwt#1145</a></li>
<li>fix: do not store reference to algorithms dict on PyJWK by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fakx"><code>@​akx</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1143">jpadilla/pyjwt#1143</a></li>
<li>Use PyJWK algorithm when encoding without explicit algorithm by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla"><code>@​jpadilla</code></a> in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1148">jpadilla/pyjwt#1148</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftamird"><code>@​tamird</code></a> made
their first contribution in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1137">jpadilla/pyjwt#1137</a></li>
<li><a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fveeceey"><code>@​veeceey</code></a> made
their first contribution in <a href="/sitelet?url=https%3A%2F%2Fredirect.github.com%2Fjpadilla%2Fpyjwt%2Fpull%2F1133">jpadilla/pyjwt#1133</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla%2Fpyjwt%2Fcompare%2F2.11.0...2.12.0">https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Fjpadilla%2Fpyjwt%2Fblob%2Fmaster%2FCHANGELOG.rst">pyjwt's
changelog</a>.</em></p>
<blockquote>
<h2><code>v2.12.1
&lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1&gt;</code>__</h2>
<p>Fixed</p>
<pre><code>
- Add missing ``typing_extensions`` dependency for Python &lt; 3.11 in
`[#1150](https://github.com/jpadilla/pyjwt/issues/1150)
&lt;https://github.com/jpadilla/pyjwt/issues/1150&gt;`__
<h2><code>v2.12.0
&amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0&amp;gt;</code>__</h2>
<p>Fixed
</code></pre></p>
<ul>
<li>Annotate PyJWKSet.keys for pyright by <a href="/sitelet?url=https%3A%2F%2Fgithub.com%2Ftamird"><code>@​tamird</code></a> in
<code>[#1134](https://github.com/jpadilla/pyjwt/issues/1134)
&lt;https://github.com/jpadilla/pyjwt/pull/1134&gt;</code>__</li>
<li>Clo…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Idempotent EventQueueSink.close records KeyError as ERROR span

3 participants