chore(deps): update python minor/patch #31

Open
renovate-bot wants to merge 1 commit from renovate/python-minorpatch into main
Contributor

This PR contains the following updates:

Package Change Age Confidence
Pillow (changelog) ==11.0.0==11.3.0 age confidence
alembic (changelog) ==1.14.0==1.18.5 age confidence
apscheduler (changelog) ==3.10.4==3.11.3 age confidence
asyncpg ==0.30.0==0.31.0 age confidence
authlib ==1.3.2==1.7.2 age confidence
discord.py ==2.4.0==2.7.1 age confidence
fastapi (changelog) ==0.115.5==0.139.0 age confidence
httpx (changelog) ==0.28.0==0.28.1 age confidence
jinja2 (changelog) ==3.1.4==3.1.6 age confidence
pydantic-settings (changelog) ==2.6.1==2.14.2 age confidence
python-dotenv ==1.0.1==1.2.2 age confidence
python-multipart (changelog) ==0.0.12==0.0.32 age confidence
sqlalchemy (changelog) ==2.0.36==2.0.51 age confidence
starlette (changelog) ==0.41.3==0.52.1 age confidence
timezonefinder ==6.5.3==6.6.3 age confidence
twilio ==9.3.7==9.10.9 age confidence
uvicorn (changelog) ==0.32.1==0.51.0 age confidence

Release Notes

python-pillow/Pillow (Pillow)

v11.3.0

Compare Source

https://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html

Deprecations

Documentation

Dependencies

Testing

Type hints

Other changes

v11.2.1

Compare Source

https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html

Deprecations

Documentation

Dependencies

Testing

Type hints

Other changes

v11.1.0

Compare Source

See GitHub Releases:

agronholm/apscheduler (apscheduler)

v3.11.3

Compare Source

  • Fixed sub-minute interval jobs stalling for the duration of a DST spring-forward gap when the scheduler was configured with a ZoneInfo time zone, caused by the wakeup delay being computed from the naive wall-clock difference instead of the actual UTC difference (#​1103)
  • Fixed imported jobs missing their scheduler and job store links (#​1119)

v3.11.2

Compare Source

  • Fixed an issue where a job using a CronTrigger scheduled in a repeated time interval during DST transitions could cause the scheduler to get stuck in an infinite loop (#​1021; PR by @​soulofakuma)

v3.11.1

Compare Source

  • Fixed scheduler.shutdown() not raising SchedulerNotRunning (or raising the wrong exception) for asynchronous schedulers when the scheduler is in fact not running
  • Fixed CronTrigger sticking on a folded datetime during the fall-back DST transition (#​1021 <#​1021>_; PR by @​berianjames)`

v3.11.0

Compare Source

  • Dropped support for Python 3.6 and 3.7
  • Added support for ZoneInfo time zones and deprecated support for pytz time zones
  • Added CalendarIntervalTrigger, backported from the 4.x series
  • Added the ability to export and import jobs via scheduler.export_jobs() and scheduler.import_jobs(), respectively
  • Removed the dependency on six
  • Changed ProcessPoolExecutor to spawn new subprocesses from scratch instead of forking on all platform
  • Fixed AsyncIOScheduler inadvertently creating a defunct event loop at start, leading to the scheduler not working at all
  • Fixed ProcessPoolExecutor not respecting the passed keyword arguments when a broken pool was being replaced
MagicStack/asyncpg (asyncpg)

v0.31.0

Compare Source

Enable Python 3.14 with experimental subinterpreter/freethreading
support.

Improvements

Fixes

Other

authlib/authlib (authlib)

v1.7.2

Compare Source

What's Changed

Full Changelog: https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2

v1.7.1

Compare Source

What's Changed

  • Fix authlib.jose deprecation warning poping from _joserfc_helpers by @​azmeuk in #​881
  • Fix redirecting to unvalidated redirect_uri on InvalidScopeError in OpenIDImplicitGrant and OpenIDHybridGrant.

Full Changelog: https://github.com/authlib/authlib/compare/v1.7.0...v1.7.1

v1.7.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.10...v1.7.0

v1.6.12

Compare Source

v1.6.11

Compare Source

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.10...v1.6.11

  • Fix CSRF issue with starlette client

v1.6.10

Compare Source

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10

  • Fix redirecting to unvalidated redirect_uri on UnsupportedResponseTypeError.

v1.6.9

Compare Source

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9

Changes in jose module

  • Not using header's jwk automatically
  • Add ES256K into default jwt algorithms
  • Remove deprecated algorithm from default registry
  • Generate random cek when cek length doesn't match

v1.6.8

Compare Source

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.7...v1.6.8

  • Add EdDSA to default jwt instance.

v1.6.7

Compare Source

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7

Set supported algorithms for the default jwt instance.

v1.6.6

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.5...v1.6.6

v1.6.5

Compare Source

What's Changed

  • Add a request param to RFC7591 generate_client_info and generate_client_secret methods by @​azmeuk in #​825
  • feat: support list params in prepare_grant_uri by @​lisongmin in #​827
  • chore(deps): bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows by @​dependabot[bot] in #​828
  • fix(jose): add max size for JWE zip=DEF decompression by @​lepture in #​830

New Contributors

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.4...v1.6.5

v1.6.4

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.3...v1.6.4

v1.6.3: Version 1.6.3

Compare Source

What's Changed

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3

v1.6.2: Version 1.6.2

Compare Source

What's Changed

Full Changelog: https://github.com/authlib/authlib/compare/v1.6.1...v1.6.2

v1.6.1: Version 1.6.1

Compare Source

  • Filter key set with additional "alg" and "use" parameters.

v1.6.0: Version 1.6.0

Compare Source

v1.5.2: Version 1.5.2

Compare Source

Released on Apr 1, 2025

  • Forbid fragments in redirect_uris. #​714
  • Fix invalid characters in error_description. #​720
  • Add claims_cls parameter for client's parse_id_token method. #​725

v1.5.1: Version 1.5.1

Compare Source

Released on Feb 28, 2025

  • Fix RFC9207 iss parameter. #​715

v1.5.0: Version 1.5.0

Compare Source

  • Fix token introspection auth method for clients. #​662
  • Optional typ claim in JWT tokens. #​696
  • JWT validation leeway. #​689
  • Implement server-side RFC9207. #​700 #​701
  • generate_id_token can take a kid parameter. #​702
  • More detailed InvalidClientError. #​706
  • OpenID Connect Dynamic Client Registration implementation. #​707

v1.4.1: Version 1.4.1

Compare Source

  • Improve garbage collection on OAuth clients. #​698
  • Fix client parameters for httpx. #​694

v1.4.0: Version 1.4.0

Compare Source

Bugfixes

  • Fix id_token decoding when kid is null. #​659
  • Support for Python 3.13. #​682
  • Force login if the prompt parameter value is login. #​637
  • Support for httpx 0.28. #​695

Breaking changes

  • Stop support for Python 3.8. #​682
fastapi/fastapi (fastapi)

v0.139.0

Compare Source

Features
  • Support dependencies in app.frontend(), e.g. for automatic cookie authentication for the frontend. PR #​15908 by @​tiangolo.
Translations
Internal

v0.138.2

Compare Source

Refactors
  • ♻️ Make app.frontend() return 404 for methods other than GET or HEAD with no static file matches. PR #​15863 by @​tiangolo.
Internal

v0.138.1

Compare Source

Refactors
Internal

v0.138.0

Compare Source

Features
  • Add support for app.frontend("/", directory="dist") and router.frontend("/", directory="dist"). PR #​15800 by @​tiangolo.
Docs
Translations
Internal

v0.137.2

Compare Source

Features
  • Add iter_route_contexts() for advanced use cases that used to use router.routes (e.g. Jupyverse). PR #​15785 by @​tiangolo.
Translations
Internal

v0.137.1

Compare Source

Fixes

v0.137.0

Compare Source

Breaking Changes

Unblocks SO MANY THINGS

Before this, router.include_router(other_router) would take each path operation from other_router and "clone" it, or recreate it from scratch.

This would mean that in the end there was only one top level router, part of the app.

The way it is structured here is that there are a few additional classes to handle intermediate metadata for router and route inclusion. That way the information of "router X includes Y and Y includes Z" is stored somewhere, without affecting (recreating / clonning) the final route.

Non Objectives

Dependencies for 404: previously I intended to support dependencies that would be executed even for 404, but that would conflict with the fact that a router could not find a match, but the next router did find a match. Executing dependencies in the router that did not find a match would not make sense, they could consume the request, body, etc. This original idea was discarded.

Specific Breaking Changes

Now router.routes is no longer a plain list of APIRoute objects, it can contain these intermediate objects that can contain additional routers, forming a tree.

Any logic that depended on iterating on the router.routes directly would be affected, that logic cannot expect to be able to extract data from a plain list of routes, as it's no longer a plain list but a tree.

Additionally, any logic that iterated on router.routes to modify them would now also see these new objects, and would not see all the routes in the app.

router.routes should be considered an internal implementation detail, only passed around to the FastAPI functions that need it.

Features
  • Adding routes (path operations) after a router is included now works, they are reflected as they are not copied.
  • Including subrouter in mainrouter can be done before adding routes (path operations) to subrouter, because now the the entire object is stored instead of copying the routes.
  • As routes are not copied, in some cases that might save some memory.
Alpha Features

This is not documented yet, so it's not officially supported yet and could change in the future.

But, as APIRoute and APIRouter instances are now preserved, they could be customized.

APIRouter has two new methods, .matches() and .handle(), counterpart to the existing ones in APIRoute. With this a router could customize how it matches and handles requests. For example, it could match only requests that include some specific header, for example for handling versions in headers.

Still, for now, consider this very experimental and potentially changing and breaking in the future.

Future Features Enabled
  • Custom APIRoute subclasses (undocumented, but alraedy works as desccribed above)
  • Custom APIRouter subclasses (undocumented, but already works as described above)
  • Dependencies per router
  • Exception handlers per router
  • Middleware per router
  • Other features planned
Docs
Translations
Internal

v0.136.3

Compare Source

Refactors
  • ♻️ Do not accept underscore headers when using convert_underscores=True (the default). PR #​15589 by @​tiangolo.

v0.136.1

Compare Source

Upgrades
Internal

v0.136.0

Compare Source

Upgrades

v0.135.4

Compare Source

Refactors
Internal

v0.135.3

Compare Source

Features
Docs
Internal

v0.135.2

Compare Source

Upgrades
Docs
Translations
Internal

v0.135.1

Compare Source

Fixes
  • 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR #​15038 by @​tiangolo.
Docs
Internal

v0.135.0

Compare Source

Features

v0.134.0

Compare Source

Features
  • Add support for streaming JSON Lines and binary data with yield. PR #​15022 by @​tiangolo.
    • This also upgrades Starlette from >=0.40.0 to >=0.46.0, as it's needed to properly unrwap and re-raise exceptions from exception groups.
    • New docs: Stream JSON Lines.
    • And new docs: Stream Data.
Docs
Internal

v0.133.1

Compare Source

Features
Internal

v0.133.0

Compare Source

Upgrades

v0.132.1

Compare Source

Refactors
Internal

v0.132.0

Compare Source

Breaking Changes
  • 🔒️ Add strict_content_type checking for JSON requests. PR #​14978 by @​tiangolo.
    • Now FastAPI checks, by default, that JSON requests have a Content-Type header with a valid JSON value, like application/json, and rejects requests that don't.
    • If the clients for your app don't send a valid Content-Type header you can disable this with strict_content_type=False.
    • Check the new docs: Strict Content-Type Checking.
Internal

v0.131.0

Compare Source

Breaking Changes

v0.130.0

Compare Source

Features

v0.129.2

Compare Source

Internal

v0.129.1

Compare Source

Fixes
  • ♻️ Fix JSON Schema for bytes, use "contentMediaType": "application/octet-stream" instead of "format": "binary". PR #​14953 by @​tiangolo.
Docs
Translations
Internal

v0.129.0

Compare Source

Breaking Changes
Refactors
Docs
Internal

v0.128.8

Compare Source

Docs
Internal

v0.128.7

Compare Source

Features
Refactors
  • ♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR #​14884 by @​tiangolo.
Docs
Internal

v0.128.6

Compare Source

Fixes
Translations
Internal

v0.128.5

Compare Source

Refactors
  • ♻️ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR #​14862 by @​tiangolo.
Internal
  • Add inline snapshot tests for OpenAPI before changes from Pydantic v2. PR #​14864 by @​tiangolo.

v0.128.4

Compare Source

Refactors
  • ♻️ Refactor internals, simplify Pydantic v2/v1 utils, create_model_field, better types for lenient_issubclass. PR #​14860 by @​tiangolo.
  • ♻️ Simplify internals, remove Pydantic v1 only logic, no longer needed. PR #​14857 by @​tiangolo.
  • ♻️ Refactor internals, cleanup unneeded Pydantic v1 specific logic. PR #​14856 by @​tiangolo.
Translations
Internal

v0.128.3

Compare Source

Refactors
  • ♻️ Re-implement on_event in FastAPI for compatibility with the next Starlette, while keeping backwards compatibility. PR #​14851 by @​tiangolo.
Upgrades
  • ⬆️ Upgrade Starlette supported version range to starlette>=0.40.0,<1.0.0. PR #​14853 by @​tiangolo.
Translations
Internal
  • 👷 Run tests with Starlette from git. PR #​14849 by @​tiangolo.
  • 👷 Run tests with lower bound uv sync, upgrade fastapi[all] minimum dependencies: ujson >=5.8.0, orjson >=3.9.3. PR #​14846 by @​tiangolo.

v0.128.2

Compare Source

Features
Fixes
Docs
Translations
Internal

v0.128.1

Compare Source

Features
  • Add viewport meta tag to improve Swagger UI on mobile devices. PR #​14777 by @​Joab0.
  • 🚸 Improve error message for invalid query parameter type annotations. PR #​14479 by @​retwish.
Fixes
Refactors
Docs
Translations
Internal

v0.128.0

Compare Source

Breaking Changes
Internal

v0.127.1

Compare Source

Refactors
Docs
Translations
Internal

v0.127.0

Compare Source

Breaking Changes
Translations
  • 🔧 Add LLM prompt file for Korean, generated from the existing translations. PR #​14546 by @​tiangolo.
  • 🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR #​14545 by @​tiangolo.
Internal

v0.126.0

Compare Source

Upgrades
  • Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's pydantic.v1. PR #​14575 by @​tiangolo.
    • The minimum version of Pydantic installed is now pydantic >=2.7.0.
    • The standard dependencies now include pydantic-settings >=2.0.0 and pydantic-extra-types >=2.0.0.
Docs
Translations
  • 🔧 Add LLM prompt file for Ukrainian, generated from the existing translations. PR #​14548 by @​tiangolo.
Internal

v0.125.0

Compare Source

Breaking Changes
  • 🔧 Drop support for Python 3.8. PR #​14563 by @​tiangolo.
    • This would actually not be a breaking change as no code would really break. Any Python 3.8 installer would just refuse to install the latest version of FastAPI and would only install 0.124.4. Only marking it as a "breaking change" to make it visible.
Refactors
Docs
Translations
Internal

v0.124.4

Compare Source

Fixes

v0.124.3

Compare Source

Fixes
  • 🐛 Fix support for tagged union with discriminator inside of Annotated with Body(). PR #​14512 by @​tiangolo.
Refactors
Docs
Translations
Internal

v0.124.2

Compare Source

Fixes
  • 🐛 Fix support for if TYPE_CHECKING, non-evaluated stringified annotations. PR #​14485 by @​tiangolo.

v0.124.1

Compare Source

Fixes
  • 🐛 Fix handling arbitrary types when using arbitrary_types_allowed=True. PR #​14482 by @​tiangolo.
Docs
Internal

v0.124.0

Compare Source

Features
Internal

v0.123.10

Compare Source

Fixes

v0.123.9

Compare Source

Fixes
  • 🐛 Fix OAuth2 scopes in OpenAPI in extra corner cases, parent dependency with scopes, sub-dependency security scheme without scopes. PR #​14459 by @​tiangolo.

v0.123.8

Compare Source

Fixes
  • 🐛 Fix OpenAPI security scheme OAuth2 scopes declaration, deduplicate security schemes with different scopes. PR #​14455 by @​tiangolo.

v0.123.7

Compare Source

Fixes

v0.123.6

Compare Source

Fixes
  • 🐛 Fix support for functools wraps and partial combined, for async and regular functions and classes in path operations and dependencies. PR #​14448 by @​tiangolo.

v0.123.5

Compare Source

Features
Fixes
  • 🐛 Fix optional sequence handling with new union syntax from Python 3.10. PR #​14430 by @​Viicos.
Refactors
  • 🔥 Remove dangling extra condiitonal no longer needed. PR #​14435 by @​tiangolo.
  • ♻️ Refactor internals, update is_coroutine check to reuse internal supported variants (unwrap, check class). PR #​14434 by @​tiangolo.
Translations

v0.123.4

Compare Source

Fixes
  • 🐛 Fix OpenAPI schema support for computed fields when using separate_input_output_schemas=False. PR #​13207 by @​vgrafe.
Docs

v0.123.3

Compare Source

Fixes

v0.123.2

Compare Source

Fixes
Docs

v0.123.1

Compare Source

Fixes
Internal

v0.123.0

Compare Source

Fixes
  • 🐛 Cache dependencies that don't use scopes and don't have sub-dependencies with scopes. PR #​14419 by @​tiangolo.

v0.122.1

Compare Source

Fixes
Docs
Internal

v0.122.0

Compare Source

Fixes
Internal

v0.121.3

Compare Source

0.121.3

Refactors
  • ♻️ Make the result of Depends() and Security() hashable, as a workaround for other tools interacting with these internal parts. PR #​14372 by @​tiangolo.
Upgrades
Docs

v0.121.2

Compare Source

Fixes
Docs
Translations

v0.121.1

Compare Source

Fixes
  • 🐛 Fix Depends(func, scope='function') for top level (parameterless) dependencies. PR #​14301 by @​luzzodev.
Docs
  • 📝 Upate docs for advanced dependencies with yield, noting the changes in 0.121.0, adding scope. PR #​14287 by @​tiangolo.
Internal

v0.121.0

Compare Source

Features
Internal

v0.120.4

Compare Source

Fixes

v0.120.3

Compare Source

Refactors
  • ♻️ Reduce internal cyclic recursion in dependencies, from 2 functions calling each other to 1 calling itself. PR #​14256 by @​tiangolo.
  • ♻️ Refactor internals of dependencies, simplify code and remove get_param_sub_dependant. PR #​14255 by @​tiangolo.
  • ♻️ Refactor internals of dependencies, simplify using dataclasses. PR #​14254 by @​tiangolo.
Docs

v0.120.2

Compare Source

Fixes
Internal

v0.120.1

Compare Source

Upgrades
Internal
  • 🔧 Add license and license-files to pyproject.toml, remove License from classifiers. PR #​14230 by @​YuriiMotov.

v0.120.0

Compare Source

There are no major nor breaking changes in this release.

The internal reference documentation now uses annotated_doc.Doc instead of typing_extensions.Doc, this adds a new (very small) dependency on annotated-doc, a package made just to provide that Doc documentation utility class.

I would expect typing_extensions.Doc to be deprecated and then removed at some point from typing_extensions, for that reason there's the new annotated-doc micro-package. If you are curious about this, you can read more in the repo for annotated-doc.

This new version 0.120.0 only contains that transition to the new home package for that utility class Doc.

Translations
Internal

v0.119.1

Compare Source

Fixes
  • 🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1. PR #​14186 by @​svlandeg.
Docs
  • 📝 Replace starlette.io by starlette.dev and uvicorn.org by uvicorn.dev. PR #​14176 by @​Kludex.
Internal

v0.119.0

Compare Source

FastAPI now (temporarily) supports both Pydantic v2 models and pydantic.v1 models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly migrate to Pydantic v2.

from fastapi import FastAPI
from pydantic import BaseModel as BaseModelV2
from pydantic.v1 import BaseModel

class Item(BaseModel):
    name: str
    description: str | None = None

class ItemV2(BaseModelV2):
    title: str
    summary: str | None = None

app = FastAPI()

@&#8203;app.post("/items/", response_model=ItemV2)
def create_item(item: Item):
    return {"title": item.name, "summary": item.description}

Adding this feature was a big effort with the main objective of making it easier for the few applications still stuck in Pydantic v1 to migrate to Pydantic v2.

And with this, support for Pydantic v1 is now deprecated and will be removed from FastAPI in a future version soon.

Note: have in mind that the Pydantic team already stopped supporting Pydantic v1 for recent versions of Python, starting with Python 3.14.

You can read in the docs more about how to Migrate from Pydantic v1 to Pydantic v2.

Features
  • Add support for from pydantic.v1 import BaseModel, mixed Pydantic v1 and v2 models in the same app. PR #​14168 by @​tiangolo.

v0.118.3

Compare Source

Upgrades

v0.118.2

Compare Source

Fixes
Internal

v0.118.1

Compare Source

Upgrades
Docs
Translations
Internal

v0.118.0

Compare Source

0.118.0

Fixes
  • 🐛 Fix support for StreamingResponses with dependencies with yield or UploadFiles, close after the response is done. PR #​14099 by @​tiangolo.

Before FastAPI 0.118.0, if you used a dependency with yield, it would run the exit code after the path operation function returned but right before sending the response.

This change also meant that if you returned a StreamingResponse, the exit code of the dependency with yield would have been already run.

For example, if you had a database session in a dependency with yield, the StreamingResponse would not be able to use that session while streaming data because the session would have already been closed in the exit code after yield.

This behavior was reverted in 0.118.0, to make the exit code after yield be executed after the response is sent.

You can read more about it in the docs for Advanced Dependencies - Dependencies with yield, HTTPException, except and Background Tasks. Including what you could do if you wanted to close a database session earlier, before returning the response to the client.

Docs
Translations
Internal

v0.117.1

Compare Source

Fixes

v0.117.0

Compare Source

Features
Fixes
  • ️ Fix default_factory for response model field with Pydantic V1. PR #​9704 by @​vvanglro.
  • 🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR #​6039 by @​MaxwellPayne.
  • 🐛 Fix jsonable_encoder alters json_encoders of Pydantic v1 objects. PR #​4972 by @​aboubacs.
  • 🐛 Reenable allow_arbitrary_types when only 1 argument is used on the API endpoint. PR #​13694 by @​rmawatson.
  • 🐛 Fix inspect.getcoroutinefunction() can break testing with unittest.mock.patch(). PR #​14022 by @​secrett2633.
Refactors
Docs
Translations
Internal

v0.116.2

Compare Source

Upgrades
Docs
Translations
Internal

v0.116.1

Compare Source

Upgrades
Docs
  • 📝 Add notification about impending changes in Translations to docs/en/docs/contributing.md. PR #​13886 by @​YuriiMotov.
Internal

v0.116.0

Compare Source

Features

Installing fastapi[standard] now includes fastapi-cloud-cli.

This will allow you to deploy to FastAPI Cloud with the fastapi deploy command.

If you want to install fastapi with the standard dependencies but without fastapi-cloud-cli, you can install instead fastapi[standard-no-fastapi-cloud-cli].

Translations
Internal

v0.115.14

Compare Source

Fixes
Docs
Translations
Internal

v0.115.13

Compare Source

Fixes
  • 🐛 Fix truncating the model's description with form feed (\f) character for Pydantic V2. PR #​13698 by @​YuriiMotov.
Refactors
Upgrades
Docs
Translations
Internal

v0.115.12

Compare Source

Fixes
Docs
Translations
Internal

v0.115.11

Compare Source

Fixes
Translations
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/middleware.md. PR #​13412 by @​alv2017.
Internal

v0.115.10

Compare Source

Fixes
  • ♻️ Update internal annotation usage for compatibility with Pydantic 2.11. PR #​13314 by @​Viicos.
Upgrades
Translations

v0.115.9

Compare Source

Fixes
  • 🐛 Ensure that HTTPDigest only raises an exception when auto_error is True. PR #​2939 by @​arthurio.
Refactors
Docs
Translations
Internal

v0.115.8

Compare Source

Fixes
  • 🐛 Fix OAuth2PasswordRequestForm and OAuth2PasswordRequestFormStrict fixed grant_type "password" RegEx. PR #​9783 by @​skarfie123.
Refactors
Docs
Translations
  • 🌐 Add Japanese translation for docs/ja/docs/environment-variables.md. PR #​13226 by @​k94-ishi.
  • 🌐 Add Russian translation for docs/ru/docs/advanced/async-tests.md. PR #​13227 by @​Rishat-F.
  • 🌐 Update Russian translation for docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md. PR #​13252 by @​Rishat-F.
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/bigger-applications.md. PR #​13154 by @​alv2017.
Internal

v0.115.7

Compare Source

Upgrades
Refactors
Docs
Translations
Internal

v0.115.6

Compare Source

Fixes
  • 🐛 Preserve traceback when an exception is raised in sync dependency with yield. PR #​5823 by @​sombek.
Refactors
  • ♻️ Update tests and internals for compatibility with Pydantic >=2.10. PR #​12971 by @​tamird.
Docs
Translations
  • 🌐 Add Traditional Chinese translation for docs/zh-hant/docs/async.md. PR #​12990 by @​ILoveSorasakiHina.
  • 🌐 Add Traditional Chinese translation for docs/zh-hant/docs/tutorial/query-param-models.md. PR #​12932 by @​Vincy1230.
  • 🌐 Add Korean translation for docs/ko/docs/advanced/testing-dependencies.md. PR #​12992 by @​Limsunoh.
  • 🌐 Add Korean translation for docs/ko/docs/advanced/websockets.md. PR #​12991 by @​kwang1215.
  • 🌐 Add Portuguese translation for docs/pt/docs/tutorial/response-model.md. PR #​12933 by @​AndreBBM.
  • 🌐 Add Korean translation for docs/ko/docs/advanced/middlewares.md. PR #​12753 by @​nahyunkeem.
  • 🌐 Add Korean translation for docs/ko/docs/advanced/openapi-webhooks.md. PR #​12752 by @​saeye.
  • 🌐 Add Chinese translation for docs/zh/docs/tutorial/query-param-models.md. PR #​12931 by @​Vincy1230.
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/query-param-models.md. PR #​12445 by @​gitgernit.
  • 🌐 Add Korean translation for docs/ko/docs/tutorial/query-param-models.md. PR #​12940 by @​jts8257.
  • 🔥 Remove obsolete tutorial translation to Chinese for docs/zh/docs/tutorial/sql-databases.md, it references files that are no longer on the repo. PR #​12949 by @​tiangolo.
Internal
encode/httpx (httpx)

v0.28.1

Compare Source

  • Fix SSL case where verify=False together with client side certificates.
pallets/jinja (jinja2)

v3.1.6

Compare Source

Released 2025-03-05

  • The |attr filter does not bypass the environment's attribute lookup,
    allowing the sandbox to apply its checks. :ghsa:cpwx-vrp4-4pq7

v3.1.5

Compare Source

Released 2024-12-21

  • The sandboxed environment handles indirect calls to str.format, such as
    by passing a stored reference to a filter that calls its argument.
    :ghsa:q2x7-8rv6-6q7h
  • Escape template name before formatting it into error messages, to avoid
    issues with names that contain f-string syntax.
    :issue:1792, :ghsa:gmj6-6f8f-6699
  • Sandbox does not allow clear and pop on known mutable sequence
    types. :issue:2032
  • Calling sync render for an async template uses asyncio.run.
    :pr:1952
  • Avoid unclosed auto_aiter warnings. :pr:1960
  • Return an aclose-able AsyncGenerator from
    Template.generate_async. :pr:1960
  • Avoid leaving root_render_func() unclosed in
    Template.generate_async. :pr:1960
  • Avoid leaving async generators unclosed in blocks, includes and extends.
    :pr:1960
  • The runtime uses the correct concat function for the current environment
    when calling block references. :issue:1701
  • Make |unique async-aware, allowing it to be used after another
    async-aware filter. :issue:1781
  • |int filter handles OverflowError from scientific notation.
    :issue:1921
  • Make compiling deterministic for tuple unpacking in a {% set ... %}
    call. :issue:2021
  • Fix dunder protocol (copy/pickle/etc) interaction with Undefined
    objects. :issue:2025
  • Fix copy/pickle support for the internal missing object.
    :issue:2027
  • Environment.overlay(enable_async) is applied correctly. :pr:2061
  • The error message from FileSystemLoader includes the paths that were
    searched. :issue:1661
  • PackageLoader shows a clearer error message when the package does not
    contain the templates directory. :issue:1705
  • Improve annotations for methods returning copies. :pr:1880
  • urlize does not add mailto: to values like @a@b. :pr:1870
  • Tests decorated with @pass_context`` can be used with the ``|select`` filter. :issue:1624`
  • Using set for multiple assignment (a, b = 1, 2) does not fail when the
    target is a namespace attribute. :issue:1413
  • Using set in all branches of {% if %}{% elif %}{% else %} blocks
    does not cause the variable to be considered initially undefined.
    :issue:1253
pydantic/pydantic-settings (pydantic-settings)

v2.14.2

Compare Source

What's Changed

This is a security patch release.

Security

Fixes GHSA-4xgf-cpjx-pc3j: NestedSecretsSettingsSource with secrets_nested_subdir=True could follow a symbolic link inside secrets_dir pointing outside it, reading out-of-tree files into settings values and bypassing the secrets_dir_max_size cap. Affected versions: >= 2.12.0, < 2.14.2.

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2

v2.14.1

Compare Source

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1

v2.14.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0

v2.13.1

Compare Source

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.13.0...v2.13.1

v2.13.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0

v2.12.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0

v2.11.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0

v2.10.1

Compare Source

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1

v2.10.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0

v2.9.1

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.9.0...v2.9.1

v2.9.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.8.1...v2.9.0

v2.8.1

Compare Source

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.8.0...v2.8.1

v2.8.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.7.1...v2.8.0

v2.7.1

Compare Source

What's Changed

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.7.0...v2.7.1

v2.7.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/pydantic/pydantic-settings/compare/v2.6.1...v2.7.0

theskumar/python-dotenv (python-dotenv)

v1.2.2

Compare Source

Added
  • Support for Python 3.14, including the free-threaded (3.14t) build. (#​588)
Changed
  • The dotenv run command now forwards flags directly to the specified command by [@​bbc2] in [#​607]
  • Improved documentation clarity regarding override behavior and the reference page.
  • Updated PyPy support to version 3.11.
  • Documentation for FIFO file support.
  • Dropped Support for Python 3.9.
Fixed
  • Improved set_key and unset_key behavior when interacting with symlinks by [@​bbc2] in [790c5c0]
  • Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by [@​JYOuyang] in [#​590]
Breaking Changes
  • dotenv.set_key and dotenv.unset_key used to follow symlinks in some
    situations. This is no longer the case. For that behavior to be restored in
    all cases, follow_symlinks=True should be used.

  • In the CLI, set and unset used to follow symlinks in some situations. This
    is no longer the case.

  • dotenv.set_key, dotenv.unset_key and the CLI commands set and unset
    used to reset the file mode of the modified .env file to 0o600 in some
    situations. This is no longer the case: The original mode of the file is now
    preserved. Is the file needed to be created or wasn't a regular file, mode
    0o600 is used.

v1.2.1

Compare Source

  • Move more config to pyproject.toml, removed setup.cfg
  • Add support for reading .env from FIFOs (Unix) by [@​sidharth-sudhir] in [#​586]

v1.2.0

Compare Source

v1.1.1

Compare Source

Fixed

v1.1.0

Compare Source

Added
  • Add support for python 3.13
  • Enhance dotenv run, switch to execvpe for better resource management and signal handling ([#​523]) by [@​eekstunt]
Fixed
  • find_dotenv and load_dotenv now correctly looks up at the current directory when running in debugger or pdb ([#​553] by [@​randomseed42])
Misc
  • Drop support for Python 3.8
Kludex/python-multipart (python-multipart)

v0.0.32

Compare Source

  • Speed up partial-boundary scanning for CR/LF-dense part data #​300.

v0.0.31

Compare Source

  • Speed up multipart header parsing and callback dispatch #​295.
  • Bound header field name size before validating #​296.
  • Validate Content-Length is non-negative in parse_form #​297.

v0.0.30

Compare Source

  • Parse application/x-www-form-urlencoded bodies per the WHATWG URL standard, treating only & as a field separator #​290.
  • Ignore RFC 2231/5987 extended parameters (name*, filename*) in parse_options_header, keeping the plain parameter authoritative per RFC 7578 §4.2 #​291.

v0.0.29

Compare Source

  • Handle malformed RFC 2231 continuations in parse_options_header #​270.

v0.0.28

Compare Source

  • Speed up partial-boundary tail scan via bytes.find #​281.
  • Cap multipart boundary length at 256 bytes #​282.

v0.0.27

Compare Source

  • Add multipart header limits #​267.
  • Pass parse offsets via constructors #​268.

v0.0.26

Compare Source

  • Skip preamble before the first multipart boundary more efficiently #​262.
  • Silently discard epilogue data after the closing multipart boundary #​259.

v0.0.25

Compare Source

  • Add MIME content type info to File #​143.
  • Handle CTE values case-insensitively #​258.
  • Remove custom FormParser classes #​257.
  • Add UPLOAD_DELETE_TMP to FormParser config #​254.
  • Emit field_end for trailing bare field names on finalize #​230.
  • Handle multipart headers case-insensitively #​252.
  • Apply Apache-2.0 properly #​247.

v0.0.24

Compare Source

  • Validate chunk_size in parse_form() #​244.

v0.0.23

Compare Source

  • Remove unused trust_x_headers parameter and X-File-Name fallback #​196.
  • Return processed length from QuerystringParser._internal_write #​229.
  • Cleanup metadata dunders from __init__.py #​227.

v0.0.22

Compare Source

  • Drop directory path from filename in File 9433f4b.

v0.0.21

Compare Source

  • Add support for Python 3.14 and drop EOL 3.8 and 3.9 #​216.

v0.0.20

Compare Source

  • Handle messages containing only end boundary #​142.

v0.0.19

Compare Source

  • Don't warn when CRLF is found after last boundary on MultipartParser #​193.

v0.0.18

Compare Source

  • Hard break if found data after last boundary on MultipartParser #​189.

v0.0.17

Compare Source

  • Handle PermissionError in fallback code for old import name #​182.

v0.0.16

Compare Source

  • Add dunder attributes to multipart package #​177.

v0.0.15

Compare Source

  • Replace FutureWarning to PendingDeprecationWarning #​174.
  • Add missing files to SDist #​171.

v0.0.14

Compare Source

  • Fix import scheme for multipart module (#​168).

v0.0.13

Compare Source

  • Rename import to python_multipart #​166.
Kludex/starlette (starlette)

v0.52.1: Version 0.52.1

Compare Source

What's Changed


Full Changelog: https://github.com/Kludex/starlette/compare/0.52.0...0.52.1

v0.52.0: Version 0.52.0

Compare Source

In this release, State can be accessed using dictionary-style syntax for improved type safety (#​3036).

from collections.abc import AsyncIterator
from contextlib import asynccontextmanager
from typing import TypedDict

import httpx

from starlette.applications import Starlette
from starlette.requests import Request

class State(TypedDict):
    http_client: httpx.AsyncClient

@&#8203;asynccontextmanager
async def lifespan(app: Starlette) -> AsyncIterator[State]:
    async with httpx.AsyncClient() as client:
        yield {"http_client": client}

async def homepage(request: Request[State]):
    client = request.state["http_client"]
    # If you run the below line with mypy or pyright, it will reveal the correct type.
    reveal_type(client)  # Revealed type is 'httpx.AsyncClient'

See Accessing State for more details.


Full Changelog: https://github.com/Kludex/starlette/compare/0.51.0...0.52.0

v0.51.0: Version 0.51.0

Compare Source

Added

  • Add allow_private_network in CORSMiddleware #​3065.

Changed

  • Increase warning stacklevel on DeprecationWarning for wsgi module #​3082.

New Contributors

Full Changelog: https://github.com/Kludex/starlette/compare/0.50.0...0.51.0

v0.50.0: Version 0.50.0

Compare Source

Removed


Full Changelog: https://github.com/Kludex/starlette/compare/0.49.3...0.50.0

v0.49.3: Version 0.49.3

Compare Source

Fixed

  • Relax strictness on Middleware type #​3059.

Full Changelog: https://github.com/Kludex/starlette/compare/0.49.2...0.49.3

v0.49.2: Version 0.49.2

Compare Source

Fixed

  • Ignore if-modified-since header if if-none-match is present in StaticFiles #​3044.

Full Changelog: https://github.com/Kludex/starlette/compare/0.49.1...0.49.2

v0.49.1: Version 0.49.1

Compare Source

This release fixes a security vulnerability in the parsing logic of the Range header in FileResponse.

You can view the full security advisory: GHSA-7f5h-v6xp-fcq8

Fixed


Full Changelog: https://github.com/Kludex/starlette/compare/0.49.0...0.49.1

v0.49.0: Version 0.49.0

Compare Source

Added

  • Add encoding parameter to Config class #​2996.
  • Support multiple cookie headers in Request.cookies #​3029.
  • Use Literal type for WebSocketEndpoint encoding values #​3027.

Changed

  • Do not pollute exception context in Middleware when using BaseHTTPMiddleware #​2976.

New Contributors

Full Changelog: https://github.com/Kludex/starlette/compare/0.48.0...0.49.0

v0.48.0: Version 0.48.0

Compare Source

Added

  • Add official Python 3.14 support #​3013.

Changed


New Contributors

Full Changelog: https://github.com/Kludex/starlette/compare/0.47.3...0.48.0

v0.47.3: Version 0.47.3

Compare Source

Fixed


New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.47.2...0.47.3

v0.47.2

Compare Source

Fixed

  • Make UploadFile check for future rollover #​2962.

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.47.1...0.47.2

v0.47.1: Version 0.47.1

Compare Source

Fixed

  • Use Self in TestClient.__enter__ #​2951
  • Allow async exception handlers to type-check #​2949

Full Changelog: https://github.com/encode/starlette/compare/0.47.0...0.47.1

v0.47.0: Version 0.47.0

Compare Source

Added

  • Add support for ASGI pathsend extension #​2671.
  • Add partitioned attribute to Response.set_cookie #​2501.

Changed

  • Change methods parameter type from list[str] to Collection[str] #​2903.
  • Replace import typing by from typing import ... in the whole codebase #​2867.

Fixed

  • Mark ExceptionMiddleware.http_exception as async to prevent thread creation #​2922.

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.46.2...0.47.0

v0.46.2: Version 0.46.2

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.46.1...0.46.2

v0.46.1: Version 0.46.1

Compare Source

Fixed

  • Allow relative directory path when follow_symlinks=True #​2896.

Full Changelog: https://github.com/encode/starlette/compare/0.46.0...0.46.1

v0.46.0: Version 0.46.0

Compare Source

Added

  • GZipMiddleware: Make sure Vary header is always added if a response can be compressed #​2865.

Fixed

  • Raise exception from background task on BaseHTTPMiddleware #​2812.
  • GZipMiddleware: Don't compress on server sent events #​2871.

Changed

  • MultiPartParser: Rename max_file_size to spool_max_size #​2780.

Deprecated

  • Add deprecated warning to TestClient(timeout=...) #​2840.

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.45.3...0.46.0

v0.45.3: Version 0.45.3

Compare Source

Fixed


Full Changelog: https://github.com/encode/starlette/compare/0.45.2...0.45.3

v0.45.2: Version 0.45.2

Compare Source

Fixed
  • Make create_memory_object_stream compatible with old anyio versions once again, and bump anyio minimum version to 3.6.2 by @​graingert in #​2833.

Full Changelog: https://github.com/encode/starlette/compare/0.45.1...0.45.2

v0.45.1: Version 0.45.1

Compare Source

Fixed
Refactor

Full Changelog: https://github.com/encode/starlette/compare/0.45.0...0.45.1

v0.45.0: Version 0.45.0

Compare Source

Removed


Full Changelog: https://github.com/encode/starlette/compare/0.44.0...0.45.0

v0.44.0: Version 0.44.0

Compare Source

Added

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.43.0...0.44.0

v0.43.0: Version 0.43.0

Compare Source

Removed

  • Remove deprecated allow_redirects argument from TestClient #​2808.

Added

  • Make UUID path parameter conversion more flexible #​2806.

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.42.0...0.43.0

v0.42.0: Version 0.42.0

Compare Source

Added

  • Raise ClientDisconnect on StreamingResponse #​2732.

Fixed

  • Use ETag from headers when parsing If-Range in FileResponse #​2761.
  • Follow directory symlinks in StaticFiles when follow_symlinks=True #​2711.
  • Bump minimum python-multipart version to 0.0.18 0ba8395.
  • Bump minimum httpx version to 0.27.0 #​2773.

New Contributors

Full Changelog: https://github.com/encode/starlette/compare/0.41.3...0.42.0

jannikmi/timezonefinder (timezonefinder)

v6.6.3

Compare Source

  • when in_memory=True, all polygon numpy arrays are constructed once during startup rather than repeatedly on demand. This should significantly improve performance for applications that make frequent polygons queries.
  • Created a coord_accessors.py module for abstracting access to polygon coordinates, allowing for both in-memory and file-based access.
  • added auto-generated data report to the documentation. thanks to ARYAN RAJ <https://github.com/nikkhilaaryan>__ for the PR.

v6.6.2

Compare Source

  • hotfix missing hole_registry.json in the distributions
  • added integration tests in CI/CD. Thanks to theirix <https://github.com/theirix>__

v6.5.9

Compare Source

  • updated the timezone boundary data to version 2025b <https://github.com/evansiroky/timezone-boundary-builder/releases/tag/2025b>. Thanks to WestonReed <https://github.com/WestonReed>

v6.5.8

Compare Source

  • updated the data to 2025a <https://github.com/evansiroky/timezone-boundary-builder/releases/tag/2025a>__
  • internal: updated file_converter.py for h3>=4

v6.5.7

Compare Source

  • improved error handling to catch ValueError: not enough values to unpack (Issue #&#8203;209 <https://github.com/jannikmi/timezonefinder/issues/209>__)

v6.5.6

Compare Source

  • add musllinux Wheels for Linux. Thanks to Pxli9130 <https://github.com/Pxli9130>__

v6.5.5

Compare Source

  • using setuptools only as a build dependency. Thanks to Kristian Sloth Lauszus <https://github.com/Lauszus>__

v6.5.4

Compare Source

  • using the dependency h3>4. Thanks to Greg Meyer <https://github.com/gmmeyer>__
twilio/twilio-python (twilio)

v9.10.9

Compare Source

Conversations

  • update actions api visibility

Memory

  • 2026-05-07

  • Content updates:
  • include store api

v9.10.7

Compare Source

Library - Chore

v9.10.6

Compare Source

Library - Chore

Twiml

  • Set recording_configuration_id attribute to public visibility in <Conference>, <Dial>, <Record> verbs and <Recording> noun

Api

  • Add RecordingConfigurationId parameter for CreateCall, CreateCallRecording, CreateConferenceRecording, and CreateParticipant endpoints

Authy

  • Changelog

  • v1

  • Added Authy API v1 under /v1 — initial onboarding of Public API (/v1/protected/*), Device API (/v1/json/*), and Dashboard API (/v1/dashboard/*) behind REST Proxy using transparent proxy mode.

Data-ingress

  • 2026-04-21

  • Content updates:
  • Updated description for CreateDataSync
  • Updated description for DeleteCloudAppDataset
  • Updated description for DeleteWarehouseDataset
  • 2026-04-20

  • Minor updates (formatting, metadata)
  • 2026-04-17

  • updated operationId for dataplane APIs,Minor updates (formatting, metadata)
  • 2026-04-15

  • libraryVisibility to private
  • 2026-04-14

  • Added 1 new path(s):
  • /v1/DataSyncs/Latest (GetLatestDataSyncs)

Memory

  • 2026-04-21

  • Content updates:
  • Remove Prefer/Async-Operation headers
  • 2026-04-21

  • Content updates:
  • Added 301 response for ListIdentifiers and GetIdentifier
  • Added 308 response for DeleteProfile, CreateIdentifier, PatchIdentifier, and DeleteIdentifier
  • 2026-04-14

  • Modified 1 path(s):
  • /v1/ControlPlane/Stores/{storeId} (added delete)
  • Minor updates (formatting, metadata)

Voice

  • 2026-04-17

  • Added I-Twilio-Auth-Account to downstreamRequest headers in POST /v3/Transcriptions transactions to document RestProxy account header injection
  • 2026-04-10

  • Added initial version of Transcriptions V3 API
  • Added POST /v3/Transcriptions endpoint to create a new transcription from a source ID or media URL

v9.10.5

Compare Source

Twiml

  • Add backgroundNoiseReduction, speechTimeout, deepgramSmartFormat, ignoreBackchannel, events attributes to <ConversationRelay>

Api

  • Enabled incoming phone numbers(IPN) public apis in stage-ie1

Data-ingress

  • 2026-04-09

  • Content updates:
  • Added parameter(s) to GetDataSync: datasetId
  • 2026-04-09

  • Minor updates (formatting, metadata)
  • 2026-04-06

  • Minor updates (formatting, metadata)
  • 2026-04-06

  • Minor updates (formatting, metadata)
  • 2026-04-06

  • Minor updates (formatting, metadata)
  • 2026-04-06

  • Minor updates (formatting, metadata)
  • 2026-04-06

  • Content updates:
  • Added properties to CloudAppSourceUpdate: config
  • Added properties to CloudAppDatasetUpdate: schedule
  • Added properties to WarehouseSourceUpdate: config
  • Added properties to WarehouseDatasetUpdate: schedule
  • 2026-04-06

  • Content updates:
  • Updated description for GetCloudAppPreviewResult
  • Updated description for GetWarehousePreviewResult
  • Updated description for GetDataSampleResult
  • 2026-03-27

  • Add schema oneOf back without discriminator
  • 2026-03-26

  • Minor updates (formatting, metadata)
  • 2026-03-26

  • Added prod-us1 to supportedRealms for all endpoints
  • 2026-03-25

  • Minor updates (formatting, metadata)
  • 2026-03-24

  • Minor updates (formatting, metadata)
  • 2026-03-24

  • Minor updates (formatting, metadata)
  • 2026-03-24

  • Minor updates (formatting, metadata)
  • 2026-03-24

  • Added 10 new path(s):
  • /v1/DataSyncs (ListDataSyncs, TriggerDataSync)
  • /v1/DataSyncs/{SyncId} (GetDataSync)
  • /v1/CloudAppSources/{SourceId}/Objects (ListCloudAppObjects)
  • /v1/CloudAppSources/{SourceId}/Objects/{Name}/Properties (ListCloudAppObjectProperties)
  • /v1/CloudAppSources/{SourceId}/Objects/{Name}/Preview (PreviewCloudAppObjectData)
  • /v1/CloudAppSources/{SourceId}/Objects/{Name}/Preview/{OperationId} (GetCloudAppPreviewResult)
  • /v1/WarehouseSources/{SourceId}/Preview (PreviewWarehouseData)
  • /v1/WarehouseSources/{SourceId}/Preview/{OperationId} (GetWarehousePreviewResult)
  • /v1/DataSample (TriggerDataSample)
  • /v1/DataSample/{OperationId} (GetDataSampleResult)
  • 2026-03-24

  • Minor updates (formatting, metadata)
  • 2026-03-24

  • Use explode: true for query params when getting by ids and limit max items to 25
  • Make schema description for Schema more specific by using oneOf without discriminator for now.

Insights

  • Added Insights Domains endpoints under /v3/InsightsDomains/* (Query + Metadata) to provide a versioned, GA-ready namespace alongside existing /preview endpoints.

Mcp

  • API Changes

  • 2026-04-07

  • Added 1 new path(s):
  • /v1/docs (InvokeDocsMcp)

Memory

  • 2026-04-09

  • Removed 2 path(s):
  • /v1/Stores/{storeId}/Profiles/Import (ListProfileImports, CreateProfilesImport)
  • /v1/Stores/{storeId}/Profiles/Import/{importId} (FetchProfileImport)
  • libraryVisibility: private, docsVisibility: private
  • 2026-04-08

  • Content updates:
  • Added 301 response for GetProfile and GetProfileTraits
  • Added canonical ID header to response for GetProfile and GetProfileTraits
  • Add 308 response for PatchProfile
  • 2026-04-07

  • Added AGENT and UNKNOWN values to ParticipantType enum
  • 2026-04-06

  • Content updates:
  • Added async operation support to UpdateTraitGroup 202 response (Operation-Id, Location, Retry-After headers; statusUrl in body)
  • Added async operation support to CreateDataMapping, UpdateDataMapping, DeleteDataMapping 202 responses (Operation-Id, Location, Retry-After headers; statusUrl in body)
  • 2026-03-30

  • Content updates:
  • Updated description for FetchProfileMemory
  • 2026-03-27

  • Content updates:
  • Updated schema description for TraitGroupCore
  • 2026-03-25

  • Content updates:
  • Removed properties from TraitDefinition: displayName
  • 2026-03-25

  • Content updates:
  • Updated description for UpdateProfileTraits
  • Updated description for FetchIdentityResolutionSettings
  • Updated description for UpdateIdentityResolutionSettings
  • Updated schema description for IdentityResolutionSettingsCore
  • Updated schema description for TraitGroupCore
  • Made all fields besides idType optional w/ defaults for schema IdentifierConfig
  • 2026-03-24

  • Content updates:
  • Added properties to OperationStatus: result

v9.10.4

Compare Source

Data-ingress

  • API Changes

  • 2026-03-23

  • Added stage-us1 to supportedRealms for all endpoints
  • 2026-03-20

  • Content updates:
  • Removed estimatedCompletionTime from LongRunningOperationResponse
  • Moved operationId from LongRunningOperationResponse to headers
  • 2026-03-18

  • Added 1 new path(s):
  • /v1/ControlPlane/Operations/{OperationId} (GetControlPlaneOperationStatus)
  • 2026-03-11

  • Minor updates (formatting, metadata)
  • 2026-03-11

  • Minor updates (formatting, metadata)
  • 2026-03-11

  • Minor updates (formatting, metadata)
  • 2026-03-11

  • Minor updates (formatting, metadata)
  • 2026-03-11

  • Minor updates (formatting, metadata)
  • 2026-03-05

  • Initial release with 10 paths and 22 operations

Memory

  • 2026-03-19

  • Added 1 new path(s):
  • /v1/ControlPlane/Operations/{operationId} (FetchOperation)
  • 2026-03-11

  • Minor updates (formatting, metadata)

v9.10.3

Compare Source

Twiml

  • Rename recording_configuration to recording_configuration_id attribute in <Conference>, <Dial>, <Record> verbs and <Recording> noun

Ace

  • ACE Signals API Changes

  • 2026-02-18

  • Initial release: POST /signals, GET/POST /signals/{signal_id}/results, GET /health
  • Enables OneAdmin integration for synchronous signal ingestion and policy result polling
  • Supports permission-based authorization for signal operations
  • Health endpoint available for monitoring without authentication

Api

  • Added optional parameter Confirmation to Payments create endpoint to enable payment confirmation prompt before gateway submission
  • Added optional parameter RequireMatchingInputs to Payments create endpoint for input confirmation in agent-assisted payment flows
  • Added matcher capture types (payment-card-number-matcher, expiration-date-matcher, security-code-matcher, postal-code-matcher) to Payments update endpoint

Memory

  • 2026-03-06

  • Modified 1 path(s):
  • /v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId} (added patch, get)

v9.10.2

Compare Source

Api

  • Remove inequality examples from Calls StartTime and EndTime filter descriptions

Memory

  • 2026-02-06

  • Minor updates (formatting, metadata)
  • 2026-02-06

  • Minor updates (formatting, metadata)
  • 2026-02-06

  • 2026-01-23

  • 2026-01-23

  • Added 3 new path(s):
  • /v1/Stores/{storeId}/Profiles/Imports (ListProfileImportsV2, CreateProfilesImportV2)
  • /v1/Stores/{storeId}/Profiles/Imports/{importId} (FetchProfileImportV2)
  • Removed 6 path(s):
  • /v1/KnowledgeBases/{kbId}/Knowledge (ListKnowledge, CreateKnowledge)
  • /v1/KnowledgeBases/{kbId}/Search (KnowledgeSearch)
  • /v1/KnowledgeBases/{kbId}/Knowledge/{knowledgeId} (RetrieveKnowledge, PatchKnowledge, DeleteKnowledge)
  • /v1/KnowledgeBases/{kbId}/Knowledge/{knowledgeId}/Chunks (ListKnowledgeChunks)
  • /v1/ControlPlane/KnowledgeBases (ListKnowledgeBases, CreateKnowledgeBase)
  • /v1/ControlPlane/KnowledgeBases/{kbId} (GetKnowledgeBase, UpdateKnowledgeBase, DeleteKnowledgeBase)
  • 2026-01-05

  • 2026-01-05

  • Initial release with 26 paths and 48 operations

v9.10.1

Compare Source

Library - Fix

Twiml

  • Add recording_configuration attribute to <Recording> noun

Api

  • Clarify the behavior of date filters with the Calls API
  • Added Phone Number type property to /IncomingPhoneNumbers resource

Memory

  • 2026-01-23

  • No path changes (updated metadata only)
  • 2026-01-22

  • No path changes (updated metadata only)
  • 2026-01-22

  • Modified 1 path(s):
  • /v1/Stores/{storeId}/Profiles/{profileId} (added delete)

v9.10.0

Compare Source

Library - Feature

Library - Chore

Library - Fix

Twiml

  • Added support for and inside

Assistants

  • AI Assistants v1 release

Autopilot

  • Remove Export resource from Autopilot Assistant
  • Add dialogue_sid param to Query list resource
  • Add Restore resource to Autopilot Assistant
  • Add one new property in Query i.e dialogue_sid
  • Add Export resource to Autopilot Assistant.
  • Adds two new properties in Assistant i.e needs_model_build and development_stage
  • Add Webhooks resource to Autopilot Assistant.
  • Introduce autopilot subdomain with all resources from preview.understand

Compliance

  • Added the new InventoryComplianceInsights API under version /v1.

Content

  • changes for adding v2 endpoints

Marketplace

  • Initial transition to Marketplace domain

Memory

  • API Changes

  • 2026-01-15

  • No path changes (updated metadata only)
  • 2026-01-13

  • Added 1 new path(s):
  • /v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId} (DeleteProfileConversationSummary)
  • 2026-01-12

  • No path changes (updated metadata only)
  • 2026-01-12

  • No path changes (updated metadata only)
  • 2026-01-12

  • No path changes (updated metadata only)
  • 2026-01-12

  • Added 2 new path(s):
  • /v1/Stores/{storeId}/Profiles/Imports (ListProfileImportsV2, ImportProfilesV2)
  • /v1/Stores/{storeId}/Profiles/Imports/{importId} (GetProfileImportV2)
  • 2026-01-13

  • No path changes (updated metadata only)
  • 2026-01-07

  • No path changes (updated metadata only)
  • 2026-01-05

  • No path changes (updated metadata only)
  • 2025-12-17

  • No path changes (updated metadata only)
  • 2025-12-17

  • No path changes (updated metadata only)
  • 2025-12-17

  • Added 1 new path(s):
  • /v1/Stores/{storeId}/Profiles/{profileId}/Observations/{observationId}/Revisions (ListObservationRevisions)

Sender-ids

  • Added all v2 sender-id-service endpoints

Trusthub

  • Add new delete endpoint for compliance_registration.

Voice

  • Add ProvisioningStatus public API endpoints.

Wise_owl

  • Init API as open-api spec
  • Updated Get Chat, Send Message and Create Chat to include contexts in Message, instead of root Chat

Www

v9.9.1

Compare Source

Api

  • Added optional parameter clientNotificationUrl for create call api
  • Added optional parameter clientNotificationUrl for create participant api

v9.9.0

Compare Source

Library - Fix

Trunking

  • Corrected the type used for phone number capabilities when accessed through a Trunk. (breaking change)
  • Corrected the type used for phone number capabilities when accessed through a Trunk. (breaking change)

Trusthub

  • Added new parameters in in toll-free initialize api payload.
  • Remove the invalid status transition to Draft from the examples
  • Change the value of email to a valid one in the examples.

v9.8.8

Compare Source

Library - Fix

Api

  • Add twiml_session resource for calls
  • Add twiml_session resource for calls

Monitor

  • Update default output properties

Trusthub

  • Added customer_profile_sid in toll-free initialize api payload.

v9.8.7

Compare Source

Memory

  • Memory API Changes

  • Added initial Memory API endpoints with darkseagreen badge status

v9.8.6

Compare Source

Twiml

  • Add new noun <ConversationRelaySession>
  • Add support for <Recording> noun under <Start> verb

v9.8.5

Compare Source

Ai

  • Add error as possible transcript status
  • Add error as possible transcript status

Chat

  • Updated v2 UserChannel channel_status from not_participating to notParticipating

Intelligence

  • Make intelligence work with RestProxy
  • Add additional enums to better represent the possible states
  • Add error enum to transcription status to better align with possible outputs
  • Add json output type to text classification

Trusthub

  • Remove required parameter Primary Profile Sid from compliance_inquiry and compliance_inquiry_individual

Accounts

  • Add Messaging GeoPermissions API changes

v9.8.4

Compare Source

Library - Chore

Library - Docs

Api

  • Updated description for property CallerDisplayName for participant create request
  • Updated description for property CallerDisplayName for participant create request

Accounts

  • FILE_IS_AUTO_GENERATED: false

v9.8.3

Compare Source

Library - Chore

Insights

  • Replace field with key in Request Filters and Response Metadata Filters and for Reports API

v9.8.2

Compare Source

Api

  • Added optional parameter CallerDisplayName for conference participant outbound
  • Updated description for property to in the participant create request

v9.8.1

Compare Source

Api

  • Add date_created property to media resource and date_created filtering parameters for read action
  • Updated the Recordings Resource channels property to clarify channels = # of channels in the recording resource and how to specify the # of channels in recording download

Intelligence

  • Add encryption_credential_sid field in transcripts and services in v2

Trusthub

  • Remove beta feature flag for all TH APIs
  • Remove beta feature flag for ComplianceInquiries API to support OneConsole traffic

Twiml

  • Add new noun <AiSession>

v9.8.0

Compare Source

Api

  • Remove usage category enum from usage record and usage triggers API (breaking change)

v9.7.2

Compare Source

Studio

  • Add type to Step resource APIs

Verify

  • Allow to update all passkeys parameters in the service update

v9.7.1

Compare Source

Accounts

  • Update beta feature flag for consent and contact bulk upsert APIs

Api

  • Add multiple missing usage categories to usage records and usage triggers api
  • Add channels-whatsapp-template-marketing and channels-whatsapp-template-utility to usage categories

Conversations

  • Fix state spelling for initializing enum value
  • Update state to include intializing for ServiceConversationWithParticipants and ConversationWithParticipants

Flex

  • Adding new optional parameter identity to web_channels API in version v2

Trusthub

  • Add required Permissions to the ComplianceInquiries API

Verify

  • Add passkeys support to Verify API creating and updating services.
  • Update ienum type for Factor creation
  • Add passkeys as challenge and factor type

v9.7.0

Compare Source

Library - Fix

Events

  • Remove SinkSid parameter when updating subscriptions. (breaking change)

Twiml

  • Remove Duplicates.
  • Add Polly Generative voices.
  • Add Latest Google (Chirp3-HD) voices.

v9.6.5

Compare Source

Library - Fix

Flex

  • update team name for web_channel, webchat_init_token, webchat_refresh_token

v9.6.4

Compare Source

Library - Chore

Bulkexports

  • Changed the type of 'details' field to be a list of objects instead of a single object

Conversations

  • Updates to method casing for ConfgurationAddress, ConversationScopedWebhook, and ServiceConversationScopedWebhook for RestProxy compatibility

Proxy

  • remove shortcodes resource as its no longer used

Serverless

  • Change log field level from type ienum to string in Logs api

Taskrouter

  • Remove URL-encoded from attributes param definition in tasks

Trunking

  • Added symmetric_rtp_enabled property on Trunks.

Twiml

  • Add support for <WhatsApp> noun under <Dial> verb

v9.6.3

Compare Source

Library - Chore

Api

  • Change DependentPhoneNumber capabilities type object and date_created, date_updated to date_time<rfc2822>
  • Updated the Default value from 0 to 1 in the Recordings Resource channels property

Serverless

  • Update ienum type level in Logs api

Verify

  • Update Channel list in Verify Attempst API
  • Update ienum type for Conversion_Status in Verify Attempts API

Twiml

  • Add us2 to the list of supported values for the region attribute in the <Conference> TwiML noun.

v9.6.2

Compare Source

Library - Chore

Api

  • Added several usage category enums to usage_record API

Numbers

  • Update the porting documentation

Verify

  • Update ienum type for Channels in Verify Attempts API

v9.6.1

Compare Source

Accounts

  • Changes to add date_of_consent param in Bulk Consent API

Api

  • Change friendly_name, date_created and date_updated properties to type string.

Twiml

  • Update twiml definition for <ConversationRelay> and <Assistant>

v9.6.0

Compare Source

Library - Fix

Library - Chore

Library - Docs

Api

  • Add response_key for Usage Triggers fetch endpoint.

Flex

  • Add Update Interaction API
  • Adding webhook_ttid as optional parameter in Interactions API

Serverless

  • Add node22 as a valid Build runtime
  • Add node20 as a valid Build runtime

Video

  • removed transcribe_participants_on_connect and transcriptions_configuration from the room resource (breaking change)
  • Added transcribe_participants_on_connect and transcriptions_configuration to the room resource

v9.5.2

Compare Source

Studio

  • Add documentation for parent_step_sid field in Step resource

v9.5.1

Compare Source

Accounts

  • Update Safelist API docs as part of prefix supoort

Flex

  • Removing first_name, last_name, and friendly_name from the Flex User API

Messaging

  • Add missing tests under transaction/phone_numbers and transaction/short_code

v9.5.0

Compare Source

Library - Feature

Library - Fix

Api

  • Add the missing emergency_enabled field for Address Service endpoints

Messaging

  • Add missing enums for A2P and TF

Numbers

  • add missing enum values to hosted_number_order_status

Twiml

  • Convert Twiml Attribute speechModel of type enum to string (breaking change)

v9.4.6

Compare Source

Library - Chore

Flex

  • Adding Digital Transfers APIs under v1/Interactions

Numbers

  • Convert webhook_type to ienum type in v1/Porting/Configuration/Webhook/{webhook_type}

Trusthub

  • Changing TrustHub SupportingDocument status enum from lowercase to uppercase since kyc-orch returns status capitalized and rest proxy requires strict casing

v9.4.5

Compare Source

Api

  • Change downstream url and change media type for file base/api/v2010/validation_request.json.

Intelligence

  • Add json_results for Generative JSON operator results

Messaging

  • Add DestinationAlphaSender API to support Country-Specific Alpha Senders

Video

  • Change codec type from enum to case-insensitive enum in recording and room_recording apis

v9.4.4

Compare Source

Library - Fix

Library - Chore

Api

  • Add open-api file tag to conference/call recordings and recording_transcriptions.

Events

  • Add support for subaccount subscriptions (beta)

Insights

  • add new region to conference APIs

Lookups

  • Add new parnter_sub_id query parameter to the lookup request

v9.4.3

Compare Source

Messaging

  • Adds validity period Default value in service resource documentation

v9.4.2

Compare Source

Library - Chore

Numbers

  • Change beta feature flag to use v2/BulkHostedNumberOrders

v9.4.1

Compare Source

Library - Fix

Library - Chore

v9.4.0

Compare Source

Library - Feature

v9.3.8

Compare Source

Api

  • Add optional parameter intelligence_service to transcription
  • Updated phone_number_sid to be populated for sip trunking terminating calls.

Numbers

  • Add Update Hosted Number Order V2 API endpoint
  • Update Port in docs

Twiml

  • Add optional parameter intelligence_service to <Transcription>
  • Add support for new <ConversationRelay> and <Assistant> noun
  • Add events attribute to <Dial> verb
Kludex/uvicorn (uvicorn)

v0.51.0: Version 0.51.0

Compare Source

What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.50.2...0.51.0

v0.50.2: Version 0.50.2

Compare Source

What's Changed

  • Require websockets>=13.0 for the default sansio implementation by @​Kludex in #​3021

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.50.1...0.50.2

v0.50.1: Version 0.50.1

Compare Source

What's Changed

  • Split comma-separated Sec-WebSocket-Protocol values in the websockets-sansio implementation by @​Aayush7352 in #​3019

New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.50.0...0.50.1

v0.50.0: Version 0.50.0

Compare Source

What's Changed

  • Memoize trusted host checks to avoid re-parsing the client IP per request by @​Kludex in #​2970
  • Cache the asgi scope sub-dict per connection by @​Kludex in #​2976
  • Build a fresh asgi scope dict per request by @​Kludex in #​2977
  • Replace click.style with an internal ANSI style helper by @​Kludex in #​2981
  • Avoid copying single-frame WebSocket payloads in websockets-sansio by @​Kludex in #​2983
  • Deprecate the legacy websockets implementation and default auto to websockets-sansio by @​Kludex in #​2985
  • Exit with a dedicated code on startup failure and stop the supervisor when a worker can't boot by @​Kludex in #​3001
  • Skip the eager app import in the parent when spawning workers by @​Kludex in #​3012

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.49.0...0.50.0

v0.49.0: Version 0.49.0

Compare Source

What's Changed

  • Bump httptools minimum version to 0.8.0 by @​Kludex in #​2962
  • Consume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by @​Kludex in #​2971

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0

v0.48.0: Version 0.48.0

Compare Source

What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0

v0.47.0: Version 0.47.0

Compare Source

What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0

v0.46.0: Version 0.46.0

Compare Source

What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0

v0.45.0: Version 0.45.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0

v0.44.0: Version 0.44.0

Compare Source

What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0

v0.43.0: Version 0.43.0

Compare Source

Changed

  • Emit http.disconnect ASGI receive() event on server shutting down for streaming responses (#​2829)
  • Use native context parameter for create_task on Python 3.11+ (#​2859)
  • Drop cast in ASGI types (#​2875)

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0

v0.42.0: Version 0.42.0

Compare Source

Changed

  • Use bytearray for request body accumulation to avoid O(n^2) allocation on fragmented bodies (#​2845)

Fixed

  • Escape brackets and backslash in httptools HEADER_RE regex (#​2824)
  • Fix multiple issues in websockets sans-io implementation (#​2825)

New Contributors


Full Changelog: https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0

v0.41.0: Version 0.41.0

Compare Source

Added

  • Add --limit-max-requests-jitter to stagger worker restarts (#​2707)
  • Add socket path to scope["server"] (#​2561)

Changed

  • Rename LifespanOn.error_occured to error_occurred (#​2776)

Fixed

  • Ignore permission denied errors in watchfiles reloader (#​2817)
  • Ensure lifespan shutdown runs when should_exit is set during startup (#​2812)
  • Reduce the log level of 'request limit exceeded' messages (#​2788)

New Contributors


Full Changelog: https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0

v0.40.0: Version 0.40.0

Compare Source

What's Changed

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0

v0.39.0: Version 0.39.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0

v0.38.0: Version 0.38.0

Compare Source

What's Changed


New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0

v0.37.0: Version 0.37.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0

v0.36.1: Version 0.36.1

Compare Source

What's Changed

  • Raise an exception when calling removed Config.setup_event_loop() by @​Kludex in #​2709

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1

v0.36.0: Version 0.36.0

Compare Source

Added


New Contributors

Full Changelog: https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0

v0.35.0: Version 0.35.0

Compare Source

Added

Changed

New Contributors

Full Changelog: https://github.com/encode/uvicorn/compare/0.34.3...0.35.0

v0.34.3: Version 0.34.3

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/encode/uvicorn/compare/0.34.2...0.34.3

v0.34.2: Version 0.34.2

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/encode/uvicorn/compare/0.34.1...0.34.2

v0.34.1: Version 0.34.1

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/encode/uvicorn/compare/0.34.0...0.34.1

v0.34.0: Version 0.34.0

Compare Source

What's Changed


Full Changelog: https://github.com/encode/uvicorn/compare/0.33.0...0.34.0

v0.33.0: Version 0.33.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/encode/uvicorn/compare/0.32.1...0.33.0


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • "before 6am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [Pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `==11.0.0` → `==11.3.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pillow/11.3.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pillow/11.0.0/11.3.0?slim=true) | | [alembic](https://github.com/sqlalchemy/alembic) ([changelog](https://alembic.sqlalchemy.org/en/latest/changelog.html)) | `==1.14.0` → `==1.18.5` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/alembic/1.18.5?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/alembic/1.14.0/1.18.5?slim=true) | | [apscheduler](https://github.com/agronholm/apscheduler) ([changelog](https://apscheduler.readthedocs.io/en/3.x/versionhistory.html)) | `==3.10.4` → `==3.11.3` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/apscheduler/3.11.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/apscheduler/3.10.4/3.11.3?slim=true) | | [asyncpg](https://github.com/MagicStack/asyncpg) | `==0.30.0` → `==0.31.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/asyncpg/0.31.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/asyncpg/0.30.0/0.31.0?slim=true) | | [authlib](https://github.com/authlib/authlib) | `==1.3.2` → `==1.7.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/authlib/1.7.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/authlib/1.3.2/1.7.2?slim=true) | | discord.py | `==2.4.0` → `==2.7.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/discord-py/2.7.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/discord-py/2.4.0/2.7.1?slim=true) | | [fastapi](https://github.com/fastapi/fastapi) ([changelog](https://fastapi.tiangolo.com/release-notes/)) | `==0.115.5` → `==0.139.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/fastapi/0.139.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/fastapi/0.115.5/0.139.0?slim=true) | | [httpx](https://github.com/encode/httpx) ([changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)) | `==0.28.0` → `==0.28.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/httpx/0.28.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/httpx/0.28.0/0.28.1?slim=true) | | [jinja2](https://github.com/pallets/jinja) ([changelog](https://jinja.palletsprojects.com/changes/)) | `==3.1.4` → `==3.1.6` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/jinja2/3.1.6?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/jinja2/3.1.4/3.1.6?slim=true) | | [pydantic-settings](https://github.com/pydantic/pydantic-settings) ([changelog](https://github.com/pydantic/pydantic-settings/releases)) | `==2.6.1` → `==2.14.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/pydantic-settings/2.14.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pydantic-settings/2.6.1/2.14.2?slim=true) | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `==1.0.1` → `==1.2.2` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/python-dotenv/1.2.2?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/python-dotenv/1.0.1/1.2.2?slim=true) | | [python-multipart](https://github.com/Kludex/python-multipart) ([changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md)) | `==0.0.12` → `==0.0.32` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/python-multipart/0.0.32?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/python-multipart/0.0.12/0.0.32?slim=true) | | [sqlalchemy](https://www.sqlalchemy.org) ([changelog](https://docs.sqlalchemy.org/en/latest/changelog/)) | `==2.0.36` → `==2.0.51` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/sqlalchemy/2.0.51?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/sqlalchemy/2.0.36/2.0.51?slim=true) | | [starlette](https://github.com/Kludex/starlette) ([changelog](https://starlette.dev/release-notes/)) | `==0.41.3` → `==0.52.1` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/starlette/0.52.1?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/starlette/0.41.3/0.52.1?slim=true) | | [timezonefinder](https://github.com/jannikmi/timezonefinder) | `==6.5.3` → `==6.6.3` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/timezonefinder/6.6.3?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/timezonefinder/6.5.3/6.6.3?slim=true) | | [twilio](https://github.com/twilio/twilio-python) | `==9.3.7` → `==9.10.9` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/twilio/9.10.9?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/twilio/9.3.7/9.10.9?slim=true) | | [uvicorn](https://github.com/Kludex/uvicorn) ([changelog](https://uvicorn.dev/release-notes)) | `==0.32.1` → `==0.51.0` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/uvicorn/0.51.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/uvicorn/0.32.1/0.51.0?slim=true) | --- ### Release Notes <details> <summary>python-pillow/Pillow (Pillow)</summary> ### [`v11.3.0`](https://github.com/python-pillow/Pillow/releases/tag/11.3.0) [Compare Source](https://github.com/python-pillow/Pillow/compare/11.2.1...11.3.0) <https://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html> #### Deprecations - Deprecate fromarray mode argument [#&#8203;9018](https://github.com/python-pillow/Pillow/issues/9018) \[[@&#8203;radarhere](https://github.com/radarhere)] - Deprecate saving I mode images as PNG [#&#8203;9023](https://github.com/python-pillow/Pillow/issues/9023) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Documentation - Added release notes for [#&#8203;9041](https://github.com/python-pillow/Pillow/issues/9041) [#&#8203;9042](https://github.com/python-pillow/Pillow/issues/9042) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add release notes for [#&#8203;8912](https://github.com/python-pillow/Pillow/issues/8912) and [#&#8203;8969](https://github.com/python-pillow/Pillow/issues/8969) [#&#8203;9019](https://github.com/python-pillow/Pillow/issues/9019) \[[@&#8203;radarhere](https://github.com/radarhere)] - ImageFont does not handle multiline text [#&#8203;9000](https://github.com/python-pillow/Pillow/issues/9000) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated Ubuntu CI targets [#&#8203;8988](https://github.com/python-pillow/Pillow/issues/8988) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update MinGW package names [#&#8203;8987](https://github.com/python-pillow/Pillow/issues/8987) \[[@&#8203;H4M5TER](https://github.com/H4M5TER)] - Updated docstring [#&#8203;8943](https://github.com/python-pillow/Pillow/issues/8943) \[[@&#8203;radarhere](https://github.com/radarhere)] - Mention that tobytes() with the raw encoder uses Pack.c [#&#8203;8878](https://github.com/python-pillow/Pillow/issues/8878) \[[@&#8203;radarhere](https://github.com/radarhere)] - Refactor docs `Makefile` [#&#8203;8933](https://github.com/python-pillow/Pillow/issues/8933) \[[@&#8203;hugovk](https://github.com/hugovk)] - Add template for quarterly release issue [#&#8203;8932](https://github.com/python-pillow/Pillow/issues/8932) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Add list of third party plugins [#&#8203;8910](https://github.com/python-pillow/Pillow/issues/8910) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update redirected URL [#&#8203;8919](https://github.com/python-pillow/Pillow/issues/8919) \[[@&#8203;radarhere](https://github.com/radarhere)] - Docs: use sentence case for headers [#&#8203;8914](https://github.com/python-pillow/Pillow/issues/8914) \[[@&#8203;hugovk](https://github.com/hugovk)] - Docs: remove unused Makefile targets [#&#8203;8917](https://github.com/python-pillow/Pillow/issues/8917) \[[@&#8203;hugovk](https://github.com/hugovk)] - Remove indentation from lists [#&#8203;8915](https://github.com/python-pillow/Pillow/issues/8915) \[[@&#8203;radarhere](https://github.com/radarhere)] - Python 3.13 is tested on Arch [#&#8203;8894](https://github.com/python-pillow/Pillow/issues/8894) \[[@&#8203;radarhere](https://github.com/radarhere)] - Move XV Thumbnails to read only section [#&#8203;8893](https://github.com/python-pillow/Pillow/issues/8893) \[[@&#8203;aclark4life](https://github.com/aclark4life)] - Updated macOS tested Pillow versions [#&#8203;8890](https://github.com/python-pillow/Pillow/issues/8890) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Dependencies - Add AVIF to wheels using only aomenc and dav1d AVIF codecs for reduced size [#&#8203;8858](https://github.com/python-pillow/Pillow/issues/8858) \[[@&#8203;fdintino](https://github.com/fdintino)] - Use same AVIF URL when fetching dependency [#&#8203;8871](https://github.com/python-pillow/Pillow/issues/8871) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency mypy to v1.16.1 [#&#8203;9026](https://github.com/python-pillow/Pillow/issues/9026) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Update libpng to 1.6.49 [#&#8203;9014](https://github.com/python-pillow/Pillow/issues/9014) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency cibuildwheel to v3 [#&#8203;9010](https://github.com/python-pillow/Pillow/issues/9010) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated libjpeg-turbo to 3.1.1 [#&#8203;9009](https://github.com/python-pillow/Pillow/issues/9009) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency mypy to v1.16.0 [#&#8203;8991](https://github.com/python-pillow/Pillow/issues/8991) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated libpng to 1.6.48 [#&#8203;8940](https://github.com/python-pillow/Pillow/issues/8940) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated Ghostscript to 10.5.1 [#&#8203;8939](https://github.com/python-pillow/Pillow/issues/8939) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated harfbuzz to 11.2.1 [#&#8203;8937](https://github.com/python-pillow/Pillow/issues/8937) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libavif to 1.3.0 [#&#8203;8949](https://github.com/python-pillow/Pillow/issues/8949) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency cibuildwheel to v2.23.3 [#&#8203;8931](https://github.com/python-pillow/Pillow/issues/8931) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated harfbuzz to 11.1.0 [#&#8203;8904](https://github.com/python-pillow/Pillow/issues/8904) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Testing - Add `match` parameter to `pytest.warns()` [#&#8203;9038](https://github.com/python-pillow/Pillow/issues/9038) \[[@&#8203;hugovk](https://github.com/hugovk)] - Increase pytest verbosity [#&#8203;9040](https://github.com/python-pillow/Pillow/issues/9040) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve SgiImagePlugin test coverage [#&#8203;8896](https://github.com/python-pillow/Pillow/issues/8896) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update ruff pre-commit ID [#&#8203;8994](https://github.com/python-pillow/Pillow/issues/8994) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only check DHT marker for libjpeg-turbo [#&#8203;9025](https://github.com/python-pillow/Pillow/issues/9025) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve BLP tests [#&#8203;9020](https://github.com/python-pillow/Pillow/issues/9020) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix warning [#&#8203;9016](https://github.com/python-pillow/Pillow/issues/9016) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test Python 3.14t on macOS and Linux [#&#8203;9011](https://github.com/python-pillow/Pillow/issues/9011) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only accept missing tkinter when building wheels on Windows [#&#8203;8981](https://github.com/python-pillow/Pillow/issues/8981) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix test [#&#8203;8996](https://github.com/python-pillow/Pillow/issues/8996) \[[@&#8203;radarhere](https://github.com/radarhere)] - Stop testing deprecated Windows Server 2019 runner image [#&#8203;8989](https://github.com/python-pillow/Pillow/issues/8989) \[[@&#8203;radarhere](https://github.com/radarhere)] - Run slow tests on valgrind, but without timeout [#&#8203;8975](https://github.com/python-pillow/Pillow/issues/8975) \[[@&#8203;radarhere](https://github.com/radarhere)] - Close file pointer earlier [#&#8203;8895](https://github.com/python-pillow/Pillow/issues/8895) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added Fedora 42 [#&#8203;8899](https://github.com/python-pillow/Pillow/issues/8899) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed Fedora 40 [#&#8203;8887](https://github.com/python-pillow/Pillow/issues/8887) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Type hints - Assert palette is not None [#&#8203;8877](https://github.com/python-pillow/Pillow/issues/8877) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not import type checking [#&#8203;8854](https://github.com/python-pillow/Pillow/issues/8854) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve type hints [#&#8203;8883](https://github.com/python-pillow/Pillow/issues/8883) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency mypy to v1.16.0 [#&#8203;8991](https://github.com/python-pillow/Pillow/issues/8991) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] #### Other changes - Updated check script paths [#&#8203;9052](https://github.com/python-pillow/Pillow/issues/9052) \[[@&#8203;radarhere](https://github.com/radarhere)] - Raise FileNotFoundError when opening an empty path [#&#8203;9048](https://github.com/python-pillow/Pillow/issues/9048) \[[@&#8203;radarhere](https://github.com/radarhere)] - Handle IPTC TIFF tags with incorrect type [#&#8203;8925](https://github.com/python-pillow/Pillow/issues/8925) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not update palette for L mode GIF frame [#&#8203;8924](https://github.com/python-pillow/Pillow/issues/8924) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use save parameters as encoderinfo defaults [#&#8203;9001](https://github.com/python-pillow/Pillow/issues/9001) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add support for iOS [#&#8203;9030](https://github.com/python-pillow/Pillow/issues/9030) \[[@&#8203;freakboy3742](https://github.com/freakboy3742)] - Fix qtables and quality scaling [#&#8203;8879](https://github.com/python-pillow/Pillow/issues/8879) \[[@&#8203;Kyliroco](https://github.com/Kyliroco)] - Read 16-bit McIdas images into I;16B mode to allow for memory mapping [#&#8203;9046](https://github.com/python-pillow/Pillow/issues/9046) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support ttb multiline text [#&#8203;8730](https://github.com/python-pillow/Pillow/issues/8730) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use unpacking [#&#8203;9044](https://github.com/python-pillow/Pillow/issues/9044) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix saving MPO with more than one appended image [#&#8203;8979](https://github.com/python-pillow/Pillow/issues/8979) \[[@&#8203;radarhere](https://github.com/radarhere)] - Restore original encoderinfo after saving [#&#8203;8942](https://github.com/python-pillow/Pillow/issues/8942) \[[@&#8203;radarhere](https://github.com/radarhere)] - Return PixelAccess from first load of ICO and IPTC images [#&#8203;8922](https://github.com/python-pillow/Pillow/issues/8922) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve justifying text [#&#8203;8905](https://github.com/python-pillow/Pillow/issues/8905) \[[@&#8203;radarhere](https://github.com/radarhere)] - Set color table fourth channel to zero for 1 and L mode when saving BMP [#&#8203;8889](https://github.com/python-pillow/Pillow/issues/8889) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve reading XPM images [#&#8203;8874](https://github.com/python-pillow/Pillow/issues/8874) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix buffer overflow when saving compressed DDS images [#&#8203;9041](https://github.com/python-pillow/Pillow/issues/9041) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use PEP 489 multi-phase initialization [#&#8203;8983](https://github.com/python-pillow/Pillow/issues/8983) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support saving I;16L TIFF images [#&#8203;9015](https://github.com/python-pillow/Pillow/issues/9015) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not call sys.executable in ImageShow in PyInstaller application [#&#8203;9028](https://github.com/python-pillow/Pillow/issues/9028) \[[@&#8203;radarhere](https://github.com/radarhere)] - Search for libtiff library file first on Windows and macOS [#&#8203;9034](https://github.com/python-pillow/Pillow/issues/9034) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fix libtiff cleanup [#&#8203;9002](https://github.com/python-pillow/Pillow/issues/9002) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use percent formatting for \_dbg calls [#&#8203;9035](https://github.com/python-pillow/Pillow/issues/9035) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed ImageCmsProfile.\_set method [#&#8203;9032](https://github.com/python-pillow/Pillow/issues/9032) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added Python 3.14 macOS x86-64 wheels [#&#8203;9031](https://github.com/python-pillow/Pillow/issues/9031) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support writing QOI images [#&#8203;9007](https://github.com/python-pillow/Pillow/issues/9007) \[[@&#8203;thisismypassport](https://github.com/thisismypassport)] - Simplify C error handling [#&#8203;9021](https://github.com/python-pillow/Pillow/issues/9021) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add Python 3.14 beta wheels [#&#8203;9012](https://github.com/python-pillow/Pillow/issues/9012) \[[@&#8203;hugovk](https://github.com/hugovk)] - Remove padding between interleaved PCX palette data [#&#8203;9005](https://github.com/python-pillow/Pillow/issues/9005) \[[@&#8203;radarhere](https://github.com/radarhere)] - Start QOI decoding with a zero-initialized array of previously seen pixels [#&#8203;9008](https://github.com/python-pillow/Pillow/issues/9008) \[[@&#8203;radarhere](https://github.com/radarhere)] - Correct drawing I;16 horizontal lines [#&#8203;8985](https://github.com/python-pillow/Pillow/issues/8985) \[[@&#8203;radarhere](https://github.com/radarhere)] - Reduce number of bytes read for PCX header [#&#8203;9004](https://github.com/python-pillow/Pillow/issues/9004) \[[@&#8203;radarhere](https://github.com/radarhere)] - Handle XMP data from an UNDEFINED TIFF tag [#&#8203;8997](https://github.com/python-pillow/Pillow/issues/8997) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not decode bytes in PPM error message [#&#8203;8958](https://github.com/python-pillow/Pillow/issues/8958) \[[@&#8203;radarhere](https://github.com/radarhere)] - Parse XMP tag bytes without decoding to string [#&#8203;8960](https://github.com/python-pillow/Pillow/issues/8960) \[[@&#8203;radarhere](https://github.com/radarhere)] - Clear TIFF core image if memory mapping was used for last load [#&#8203;8962](https://github.com/python-pillow/Pillow/issues/8962) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use mask in C when drawing wide polygon lines [#&#8203;8984](https://github.com/python-pillow/Pillow/issues/8984) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify code [#&#8203;8863](https://github.com/python-pillow/Pillow/issues/8863) \[[@&#8203;radarhere](https://github.com/radarhere)] - Call startswith once with a tuple [#&#8203;8998](https://github.com/python-pillow/Pillow/issues/8998) \[[@&#8203;radarhere](https://github.com/radarhere)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;8993](https://github.com/python-pillow/Pillow/issues/8993) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Use ImageFile.MAXBLOCK in tobytes() [#&#8203;8906](https://github.com/python-pillow/Pillow/issues/8906) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed unreachable code [#&#8203;8918](https://github.com/python-pillow/Pillow/issues/8918) \[[@&#8203;radarhere](https://github.com/radarhere)] - Valgrind Memory Leak Checking [#&#8203;8954](https://github.com/python-pillow/Pillow/issues/8954) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Add parallel test target, using pytest-xdist [#&#8203;8972](https://github.com/python-pillow/Pillow/issues/8972) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Add support for flat uint8 arrow arrays for multi channel images [#&#8203;8908](https://github.com/python-pillow/Pillow/issues/8908) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Removed CMAKE\_POLICY\_VERSION\_MINIMUM=3.5 for libavif [#&#8203;8973](https://github.com/python-pillow/Pillow/issues/8973) \[[@&#8203;radarhere](https://github.com/radarhere)] - Reduced number of bytes read in WMF header [#&#8203;8964](https://github.com/python-pillow/Pillow/issues/8964) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not build against libavif < 1 [#&#8203;8969](https://github.com/python-pillow/Pillow/issues/8969) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved support for Python 3.14 [#&#8203;8948](https://github.com/python-pillow/Pillow/issues/8948) \[[@&#8203;radarhere](https://github.com/radarhere)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;8944](https://github.com/python-pillow/Pillow/issues/8944) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Allow loading ImageFile state from Pillow < 11.2.1 [#&#8203;8938](https://github.com/python-pillow/Pillow/issues/8938) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove outdated comment [#&#8203;8929](https://github.com/python-pillow/Pillow/issues/8929) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add support for Grim in Wayland sessions ImageGrab [#&#8203;8912](https://github.com/python-pillow/Pillow/issues/8912) \[[@&#8203;AdianKozlica](https://github.com/AdianKozlica)] - Add `make [-C docs] htmllive` to rebuild and reload HTML files [#&#8203;8913](https://github.com/python-pillow/Pillow/issues/8913) \[[@&#8203;hugovk](https://github.com/hugovk)] - Build Windows arm64 wheels on arm64 runner [#&#8203;8898](https://github.com/python-pillow/Pillow/issues/8898) \[[@&#8203;radarhere](https://github.com/radarhere)] ### [`v11.2.1`](https://github.com/python-pillow/Pillow/releases/tag/11.2.1) [Compare Source](https://github.com/python-pillow/Pillow/compare/11.1.0...11.2.1) <https://pillow.readthedocs.io/en/stable/releasenotes/11.2.1.html> #### Deprecations - Moved get\_child\_images() to ImageFile [#&#8203;8689](https://github.com/python-pillow/Pillow/issues/8689) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Documentation - Add 11.2.1 release notes [#&#8203;8885](https://github.com/python-pillow/Pillow/issues/8885) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added avif to config settings [#&#8203;8875](https://github.com/python-pillow/Pillow/issues/8875) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added release notes for [#&#8203;8330](https://github.com/python-pillow/Pillow/issues/8330) [#&#8203;8853](https://github.com/python-pillow/Pillow/issues/8853) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added release notes for [#&#8203;8781](https://github.com/python-pillow/Pillow/issues/8781) and [#&#8203;8837](https://github.com/python-pillow/Pillow/issues/8837) [#&#8203;8843](https://github.com/python-pillow/Pillow/issues/8843) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added media\_white\_point to ImageCms documentation [#&#8203;8829](https://github.com/python-pillow/Pillow/issues/8829) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed FIXME [#&#8203;8825](https://github.com/python-pillow/Pillow/issues/8825) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated comment [#&#8203;8822](https://github.com/python-pillow/Pillow/issues/8822) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added release notes for [#&#8203;8807](https://github.com/python-pillow/Pillow/issues/8807) [#&#8203;8824](https://github.com/python-pillow/Pillow/issues/8824) \[[@&#8203;radarhere](https://github.com/radarhere)] - DXT3 images are read in RGBA mode [#&#8203;8817](https://github.com/python-pillow/Pillow/issues/8817) \[[@&#8203;radarhere](https://github.com/radarhere)] - JPEG comments are from the COM marker [#&#8203;8788](https://github.com/python-pillow/Pillow/issues/8788) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update Sphinx to 8.2 to remove nitpick ignore [#&#8203;8763](https://github.com/python-pillow/Pillow/issues/8763) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated AffineTransform docstring to mention it uses the inverse matrix [#&#8203;8735](https://github.com/python-pillow/Pillow/issues/8735) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added MozJPEG documentation [#&#8203;8699](https://github.com/python-pillow/Pillow/issues/8699) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added Sphinx configuration key [#&#8203;8691](https://github.com/python-pillow/Pillow/issues/8691) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated macOS tested Pillow versions [#&#8203;8654](https://github.com/python-pillow/Pillow/issues/8654) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Dependencies - Updated xz to 5.8.1 [#&#8203;8868](https://github.com/python-pillow/Pillow/issues/8868) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated harfbuzz to 11.0.1 [#&#8203;8870](https://github.com/python-pillow/Pillow/issues/8870) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update scientific-python/upload-nightly-action action to v0.6.2 [#&#8203;8865](https://github.com/python-pillow/Pillow/issues/8865) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated xz to 5.8.0 in macOS and Linux wheels, but not on manylinux2014 [#&#8203;8836](https://github.com/python-pillow/Pillow/issues/8836) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency cibuildwheel to v2.23.2 [#&#8203;8832](https://github.com/python-pillow/Pillow/issues/8832) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated harfbuzz to 11.0.0 [#&#8203;8830](https://github.com/python-pillow/Pillow/issues/8830) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency cibuildwheel to v2.23.1 [#&#8203;8818](https://github.com/python-pillow/Pillow/issues/8818) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated Ghostscript to 10.5.0 [#&#8203;8814](https://github.com/python-pillow/Pillow/issues/8814) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libtiff to 4.7.0 [#&#8203;8812](https://github.com/python-pillow/Pillow/issues/8812) \[[@&#8203;radarhere](https://github.com/radarhere)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;8795](https://github.com/python-pillow/Pillow/issues/8795) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Updated harfbuzz to 10.4.0 [#&#8203;8770](https://github.com/python-pillow/Pillow/issues/8770) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency mypy to v1.15.0 [#&#8203;8791](https://github.com/python-pillow/Pillow/issues/8791) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated libpng to 1.6.47 [#&#8203;8764](https://github.com/python-pillow/Pillow/issues/8764) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated lcms2 to 2.17 [#&#8203;8742](https://github.com/python-pillow/Pillow/issues/8742) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update dependency cibuildwheel to v2.23.0 [#&#8203;8785](https://github.com/python-pillow/Pillow/issues/8785) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - Updated zlib-ng to 2.2.4 [#&#8203;8745](https://github.com/python-pillow/Pillow/issues/8745) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libimagequant to 4.3.4 on Windows [#&#8203;8744](https://github.com/python-pillow/Pillow/issues/8744) \[[@&#8203;radarhere](https://github.com/radarhere)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;8729](https://github.com/python-pillow/Pillow/issues/8729) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Updated harfbuzz to 10.2.0 [#&#8203;8688](https://github.com/python-pillow/Pillow/issues/8688) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated xz to 5.6.4 [#&#8203;8711](https://github.com/python-pillow/Pillow/issues/8711) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libpng to 1.6.46 [#&#8203;8712](https://github.com/python-pillow/Pillow/issues/8712) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libimagequant to 4.3.4 [#&#8203;8710](https://github.com/python-pillow/Pillow/issues/8710) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated libpng to 1.6.45 [#&#8203;8670](https://github.com/python-pillow/Pillow/issues/8670) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update cygwin/cygwin-install-action action to v5 [#&#8203;8675](https://github.com/python-pillow/Pillow/issues/8675) \[@&#8203;[renovate\[bot\]](https://github.com/apps/renovate)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;8665](https://github.com/python-pillow/Pillow/issues/8665) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Updated freetype to 2.13.3 in macOS and Linux wheels [#&#8203;8653](https://github.com/python-pillow/Pillow/issues/8653) \[[@&#8203;radarhere](https://github.com/radarhere)] - Upgrade zlib-ng to 2.2.3 [#&#8203;8656](https://github.com/python-pillow/Pillow/issues/8656) \[[@&#8203;hugovk](https://github.com/hugovk)] #### Testing - Fixed unclosed file warning [#&#8203;8847](https://github.com/python-pillow/Pillow/issues/8847) \[[@&#8203;radarhere](https://github.com/radarhere)] - Assert image type [#&#8203;8619](https://github.com/python-pillow/Pillow/issues/8619) \[[@&#8203;radarhere](https://github.com/radarhere)] - Parametrize tests [#&#8203;8838](https://github.com/python-pillow/Pillow/issues/8838) \[[@&#8203;radarhere](https://github.com/radarhere)] - Change back to actions/setup-python [#&#8203;8833](https://github.com/python-pillow/Pillow/issues/8833) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplified test code [#&#8203;8823](https://github.com/python-pillow/Pillow/issues/8823) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved FliImagePlugin test coverage [#&#8203;8806](https://github.com/python-pillow/Pillow/issues/8806) \[[@&#8203;radarhere](https://github.com/radarhere)] - Install libtiff-dev on Ubuntu GitHub Actions [#&#8203;8816](https://github.com/python-pillow/Pillow/issues/8816) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test using \_seek to skip frames [#&#8203;8804](https://github.com/python-pillow/Pillow/issues/8804) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved PcxImagePlugin test coverage [#&#8203;8797](https://github.com/python-pillow/Pillow/issues/8797) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use match argument [#&#8203;8801](https://github.com/python-pillow/Pillow/issues/8801) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved BdfFontFile test coverage [#&#8203;8783](https://github.com/python-pillow/Pillow/issues/8783) \[[@&#8203;radarhere](https://github.com/radarhere)] - Revert "Do not install libimagequant" [#&#8203;8778](https://github.com/python-pillow/Pillow/issues/8778) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved FtexImagePlugin test coverage [#&#8203;8766](https://github.com/python-pillow/Pillow/issues/8766) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved FontFile test coverage [#&#8203;8771](https://github.com/python-pillow/Pillow/issues/8771) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved MpoImagePlugin test coverage [#&#8203;8765](https://github.com/python-pillow/Pillow/issues/8765) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved SunImagePlugin coverage [#&#8203;8762](https://github.com/python-pillow/Pillow/issues/8762) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve TarIO test coverage [#&#8203;8759](https://github.com/python-pillow/Pillow/issues/8759) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve type checking in tests [#&#8203;8618](https://github.com/python-pillow/Pillow/issues/8618) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add PyPy3.11 to CI [#&#8203;8758](https://github.com/python-pillow/Pillow/issues/8758) \[[@&#8203;hugovk](https://github.com/hugovk)] - Don't call `make clean` or `pip` in tox [#&#8203;8754](https://github.com/python-pillow/Pillow/issues/8754) \[[@&#8203;hugovk](https://github.com/hugovk)] - Don't shadow builtin open [#&#8203;8756](https://github.com/python-pillow/Pillow/issues/8756) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed unused test code [#&#8203;8752](https://github.com/python-pillow/Pillow/issues/8752) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use monkeypatch [#&#8203;8747](https://github.com/python-pillow/Pillow/issues/8747) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not install libimagequant on MinGW [#&#8203;8724](https://github.com/python-pillow/Pillow/issues/8724) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use getpixel() instead of load() [#&#8203;8727](https://github.com/python-pillow/Pillow/issues/8727) \[[@&#8203;radarhere](https://github.com/radarhere)] - Revert "Ignore brew dependencies for libraqm on macOS 13" [#&#8203;8725](https://github.com/python-pillow/Pillow/issues/8725) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed exceptions when closing AppendingTiffWriter [#&#8203;8723](https://github.com/python-pillow/Pillow/issues/8723) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed unclosed file warnings [#&#8203;8705](https://github.com/python-pillow/Pillow/issues/8705) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use monkeypatch [#&#8203;8707](https://github.com/python-pillow/Pillow/issues/8707) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use Ubuntu 22.04 for 24.04 ppc64le and s390x [#&#8203;8713](https://github.com/python-pillow/Pillow/issues/8713) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated Ubuntu arm to 24.04 with arm64 runner [#&#8203;8700](https://github.com/python-pillow/Pillow/issues/8700) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test oldest Python on 32-bit Windows 2019 and remove AppVeyor [#&#8203;8525](https://github.com/python-pillow/Pillow/issues/8525) \[[@&#8203;hugovk](https://github.com/hugovk)] - Corrected argument types [#&#8203;8681](https://github.com/python-pillow/Pillow/issues/8681) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test Python 3.14 pre-release [#&#8203;8690](https://github.com/python-pillow/Pillow/issues/8690) \[[@&#8203;radarhere](https://github.com/radarhere)] - Skip test\_embeddable if compiler cannot be initialized [#&#8203;8686](https://github.com/python-pillow/Pillow/issues/8686) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved test coverage [#&#8203;8679](https://github.com/python-pillow/Pillow/issues/8679) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed xfail for test\_embeddable on Python 3.13 [#&#8203;8683](https://github.com/python-pillow/Pillow/issues/8683) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use python-numpy and python-olefile instead of virtual python3 packages [#&#8203;8682](https://github.com/python-pillow/Pillow/issues/8682) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use python-pip instead of python3-pip in MinGW [#&#8203;8678](https://github.com/python-pillow/Pillow/issues/8678) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use ImageFile.\_Tile [#&#8203;8666](https://github.com/python-pillow/Pillow/issues/8666) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved SPIDER test coverage [#&#8203;8668](https://github.com/python-pillow/Pillow/issues/8668) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed unused image open [#&#8203;8649](https://github.com/python-pillow/Pillow/issues/8649) \[[@&#8203;radarhere](https://github.com/radarhere)] - PngImageFile text is a property [#&#8203;8648](https://github.com/python-pillow/Pillow/issues/8648) \[[@&#8203;radarhere](https://github.com/radarhere)] - Trigger wheel builds from changes in pyproject.toml [#&#8203;8674](https://github.com/python-pillow/Pillow/issues/8674) \[[@&#8203;radarhere](https://github.com/radarhere)] #### Type hints - Added fromarrow type hints [#&#8203;8867](https://github.com/python-pillow/Pillow/issues/8867) \[[@&#8203;radarhere](https://github.com/radarhere)] - Assert image type [#&#8203;8619](https://github.com/python-pillow/Pillow/issues/8619) \[[@&#8203;radarhere](https://github.com/radarhere)] - Check that \_fp type is not DeferredError before use [#&#8203;8640](https://github.com/python-pillow/Pillow/issues/8640) \[[@&#8203;radarhere](https://github.com/radarhere)] - Corrected type check [#&#8203;8760](https://github.com/python-pillow/Pillow/issues/8760) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improve type checking in tests [#&#8203;8618](https://github.com/python-pillow/Pillow/issues/8618) \[[@&#8203;radarhere](https://github.com/radarhere)] - Corrected argument types [#&#8203;8681](https://github.com/python-pillow/Pillow/issues/8681) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use ImageFile.\_Tile [#&#8203;8666](https://github.com/python-pillow/Pillow/issues/8666) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added return types [#&#8203;8639](https://github.com/python-pillow/Pillow/issues/8639) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add overloads for exif\_transpose [#&#8203;8657](https://github.com/python-pillow/Pillow/issues/8657) \[[@&#8203;cdce8p](https://github.com/cdce8p)] #### Other changes - Do not include libavif in wheels [#&#8203;8876](https://github.com/python-pillow/Pillow/issues/8876) \[[@&#8203;radarhere](https://github.com/radarhere)] - Remove GPL v2 from FreeType license [#&#8203;8884](https://github.com/python-pillow/Pillow/issues/8884) \[[@&#8203;radarhere](https://github.com/radarhere)] - \[pre-commit.ci] pre-commit autoupdate [#&#8203;8873](https://github.com/python-pillow/Pillow/issues/8873) \[@&#8203;[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)] - Replace deprecated classifier with licence expression (PEP 639) [#&#8203;8850](https://github.com/python-pillow/Pillow/issues/8850) \[[@&#8203;hugovk](https://github.com/hugovk)] - Fixed conversion of AVIF image rotation property to EXIF orientation [#&#8203;8866](https://github.com/python-pillow/Pillow/issues/8866) \[[@&#8203;fdintino](https://github.com/fdintino)] - Removed condition that is always true [#&#8203;8862](https://github.com/python-pillow/Pillow/issues/8862) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use multibuild build\_github [#&#8203;8861](https://github.com/python-pillow/Pillow/issues/8861) \[[@&#8203;radarhere](https://github.com/radarhere)] - Include filename in ImageFile state [#&#8203;8859](https://github.com/python-pillow/Pillow/issues/8859) \[[@&#8203;radarhere](https://github.com/radarhere)] - Add KDE Wayland support for ImageGrab [#&#8203;8842](https://github.com/python-pillow/Pillow/issues/8842) \[[@&#8203;AdianKozlica](https://github.com/AdianKozlica)] - Only change readonly if saved filename matches opened filename [#&#8203;8852](https://github.com/python-pillow/Pillow/issues/8852) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow HWND to be passed to ImageGrab.grab() on Windows [#&#8203;8516](https://github.com/python-pillow/Pillow/issues/8516) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow cmake<4 when building libavif and libtiff [#&#8203;8851](https://github.com/python-pillow/Pillow/issues/8851) \[[@&#8203;radarhere](https://github.com/radarhere)] - Image -> Arrow support [#&#8203;8330](https://github.com/python-pillow/Pillow/issues/8330) \[[@&#8203;wiredfool](https://github.com/wiredfool)] - Add AVIF plugin (decoder + encoder using libavif) [#&#8203;5201](https://github.com/python-pillow/Pillow/issues/5201) \[[@&#8203;fdintino](https://github.com/fdintino)] - Updated xz to 5.8.0 on manylinux2014 by removing po4a dependency [#&#8203;8848](https://github.com/python-pillow/Pillow/issues/8848) \[[@&#8203;radarhere](https://github.com/radarhere)] - Revert to zlib on macOS < 10.15 [#&#8203;8772](https://github.com/python-pillow/Pillow/issues/8772) \[[@&#8203;radarhere](https://github.com/radarhere)] - Close TarIO file handle on error [#&#8203;8846](https://github.com/python-pillow/Pillow/issues/8846) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not import TYPE\_CHECKING [#&#8203;8844](https://github.com/python-pillow/Pillow/issues/8844) \[[@&#8203;radarhere](https://github.com/radarhere)] - Enable memory mapping on PyPy [#&#8203;8840](https://github.com/python-pillow/Pillow/issues/8840) \[[@&#8203;radarhere](https://github.com/radarhere)] - Corrected Palm P mode save [#&#8203;8685](https://github.com/python-pillow/Pillow/issues/8685) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved connecting discontiguous corners [#&#8203;8659](https://github.com/python-pillow/Pillow/issues/8659) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only read until the offset of the next tile [#&#8203;8609](https://github.com/python-pillow/Pillow/issues/8609) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added USE\_RAW\_ALPHA for BMP images [#&#8203;8602](https://github.com/python-pillow/Pillow/issues/8602) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed orientation when opening YCbCr TIFF images [#&#8203;8556](https://github.com/python-pillow/Pillow/issues/8556) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow loading of EMF images at a given DPI [#&#8203;8536](https://github.com/python-pillow/Pillow/issues/8536) \[[@&#8203;radarhere](https://github.com/radarhere)] - Skip failing records when rendering WMF images [#&#8203;8506](https://github.com/python-pillow/Pillow/issues/8506) \[[@&#8203;radarhere](https://github.com/radarhere)] - If append\_images is populated, default save\_all to True [#&#8203;8781](https://github.com/python-pillow/Pillow/issues/8781) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added GimpPaletteFile frombytes() to allow for unlimited parsing [#&#8203;8826](https://github.com/python-pillow/Pillow/issues/8826) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not load image during save if file extension is unknown [#&#8203;8835](https://github.com/python-pillow/Pillow/issues/8835) \[[@&#8203;radarhere](https://github.com/radarhere)] - Do not convert BC1 LUT to UINT32 [#&#8203;8837](https://github.com/python-pillow/Pillow/issues/8837) \[[@&#8203;radarhere](https://github.com/radarhere)] - Start from zero index when reading GimpPaletteFile [#&#8203;8805](https://github.com/python-pillow/Pillow/issues/8805) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support saving DDS images with pixel formats [#&#8203;8807](https://github.com/python-pillow/Pillow/issues/8807) \[[@&#8203;radarhere](https://github.com/radarhere)] - If every TIFF tile covers the image, only use the last offset [#&#8203;8820](https://github.com/python-pillow/Pillow/issues/8820) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use docker/setup-qemu-action [#&#8203;8819](https://github.com/python-pillow/Pillow/issues/8819) \[[@&#8203;radarhere](https://github.com/radarhere)] - Replace deprecated Renovate schedule with cron syntax [#&#8203;8810](https://github.com/python-pillow/Pillow/issues/8810) \[[@&#8203;hugovk](https://github.com/hugovk)] - Allow coords to be sequence of lists [#&#8203;8800](https://github.com/python-pillow/Pillow/issues/8800) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use ABCMeta in classes with abstractmethod [#&#8203;8803](https://github.com/python-pillow/Pillow/issues/8803) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support reading grayscale JPEG2000 images with 4 channels [#&#8203;8786](https://github.com/python-pillow/Pillow/issues/8786) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow encoderconfig and encoderinfo to be set for appended TIFF images [#&#8203;8780](https://github.com/python-pillow/Pillow/issues/8780) \[[@&#8203;radarhere](https://github.com/radarhere)] - Call `startswith`/`endswith` once with a tuple, and `range` without `start=0` [#&#8203;8799](https://github.com/python-pillow/Pillow/issues/8799) \[[@&#8203;hugovk](https://github.com/hugovk)] - Corrected exif\_transpose error when XMP is tuple [#&#8203;8792](https://github.com/python-pillow/Pillow/issues/8792) \[[@&#8203;radarhere](https://github.com/radarhere)] - Fixed loading GD images [#&#8203;8793](https://github.com/python-pillow/Pillow/issues/8793) \[[@&#8203;radarhere](https://github.com/radarhere)] - Image.core.outline will no longer raise an AttributeError [#&#8203;8794](https://github.com/python-pillow/Pillow/issues/8794) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed ImageTk.\_show [#&#8203;8782](https://github.com/python-pillow/Pillow/issues/8782) \[[@&#8203;radarhere](https://github.com/radarhere)] - \_seek\_check already raises an EOFError [#&#8203;8773](https://github.com/python-pillow/Pillow/issues/8773) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only set mode when necessary in FtexImagePlugin [#&#8203;8767](https://github.com/python-pillow/Pillow/issues/8767) \[[@&#8203;radarhere](https://github.com/radarhere)] - Build PyPy3.11 wheel for macOS 10.15 x86\_64 [#&#8203;8789](https://github.com/python-pillow/Pillow/issues/8789) \[[@&#8203;hugovk](https://github.com/hugovk)] - Replace slice and comparison with `startswith`/`endswith` [#&#8203;8761](https://github.com/python-pillow/Pillow/issues/8761) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use member names to initialize PyTypeObjects [#&#8203;8741](https://github.com/python-pillow/Pillow/issues/8741) \[[@&#8203;radarhere](https://github.com/radarhere)] - Pass CFLAGS to build\_simple directly [#&#8203;8738](https://github.com/python-pillow/Pillow/issues/8738) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only crop GIF frames when saving with disposal method 2 if transparency is present [#&#8203;8748](https://github.com/python-pillow/Pillow/issues/8748) \[[@&#8203;radarhere](https://github.com/radarhere)] - Update `pythoncapi_compat.h` to fix building with PyPy3.11 [#&#8203;8757](https://github.com/python-pillow/Pillow/issues/8757) \[[@&#8203;mgorny](https://github.com/mgorny)] - Rewrite the install\_name of the ZLIB-NG library on macOS [#&#8203;8673](https://github.com/python-pillow/Pillow/issues/8673) \[[@&#8203;freakboy3742](https://github.com/freakboy3742)] - Remove debug `Image._wedge` [#&#8203;8755](https://github.com/python-pillow/Pillow/issues/8755) \[[@&#8203;hugovk](https://github.com/hugovk)] - Remove unused `bdf_slant` and `bdf_spacing` variables [#&#8203;8753](https://github.com/python-pillow/Pillow/issues/8753) \[[@&#8203;hugovk](https://github.com/hugovk)] - Use boolean format argument for irreversible [#&#8203;8739](https://github.com/python-pillow/Pillow/issues/8739) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify Python code by receiving tuple from C [#&#8203;8740](https://github.com/python-pillow/Pillow/issues/8740) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use member names to initialize modules [#&#8203;8734](https://github.com/python-pillow/Pillow/issues/8734) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplify Python code by passing tuples to C [#&#8203;8733](https://github.com/python-pillow/Pillow/issues/8733) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed redundant argument parsing [#&#8203;8732](https://github.com/python-pillow/Pillow/issues/8732) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added "justify" align for multiline text [#&#8203;8721](https://github.com/python-pillow/Pillow/issues/8721) \[[@&#8203;radarhere](https://github.com/radarhere)] - Seek relative to current position [#&#8203;8709](https://github.com/python-pillow/Pillow/issues/8709) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only use outside border of stroke in text() [#&#8203;8701](https://github.com/python-pillow/Pillow/issues/8701) \[[@&#8203;radarhere](https://github.com/radarhere)] - Support saving PNG cICP chunk [#&#8203;8704](https://github.com/python-pillow/Pillow/issues/8704) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use Py\_RETURN\_NONE macro when possible [#&#8203;8717](https://github.com/python-pillow/Pillow/issues/8717) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added ImageFile close() [#&#8203;8702](https://github.com/python-pillow/Pillow/issues/8702) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use arm64 Linux runners for wheels [#&#8203;8698](https://github.com/python-pillow/Pillow/issues/8698) \[[@&#8203;radarhere](https://github.com/radarhere)] - Test Windows amd64 wheels with NumPy [#&#8203;8696](https://github.com/python-pillow/Pillow/issues/8696) \[[@&#8203;radarhere](https://github.com/radarhere)] - Added logging to TiffImagePlugin fixIFD() [#&#8203;8568](https://github.com/python-pillow/Pillow/issues/8568) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed miniconda CPPFLAGS [#&#8203;8695](https://github.com/python-pillow/Pillow/issues/8695) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved comment [#&#8203;8694](https://github.com/python-pillow/Pillow/issues/8694) \[[@&#8203;radarhere](https://github.com/radarhere)] - Only F mode starts with F [#&#8203;8684](https://github.com/python-pillow/Pillow/issues/8684) \[[@&#8203;radarhere](https://github.com/radarhere)] - Allow saving multiple frames as BigTIFF [#&#8203;8663](https://github.com/python-pillow/Pillow/issues/8663) \[[@&#8203;radarhere](https://github.com/radarhere)] - Simplified converting to char \* [#&#8203;8662](https://github.com/python-pillow/Pillow/issues/8662) \[[@&#8203;radarhere](https://github.com/radarhere)] - Use namedtuple \_replace [#&#8203;8652](https://github.com/python-pillow/Pillow/issues/8652) \[[@&#8203;radarhere](https://github.com/radarhere)] - Updated TIFF decode error message string [#&#8203;8660](https://github.com/python-pillow/Pillow/issues/8660) \[[@&#8203;HarmvandenBrand](https://github.com/HarmvandenBrand)] - Added compile-time mozjpeg feature flag [#&#8203;8645](https://github.com/python-pillow/Pillow/issues/8645) \[[@&#8203;radarhere](https://github.com/radarhere)] - Improved Docker coverage reporting [#&#8203;8664](https://github.com/python-pillow/Pillow/issues/8664) \[[@&#8203;radarhere](https://github.com/radarhere)] - Removed giflib as webp dependency [#&#8203;8661](https://github.com/python-pillow/Pillow/issues/8661) \[[@&#8203;radarhere](https://github.com/radarhere)] - Corrected installing ImageMagick on cifuzz [#&#8203;8658](https://github.com/python-pillow/Pillow/issues/8658) \[[@&#8203;radarhere](https://github.com/radarhere)] ### [`v11.1.0`](https://github.com/python-pillow/Pillow/blob/HEAD/CHANGES.rst#1110-and-newer) [Compare Source](https://github.com/python-pillow/Pillow/compare/11.0.0...11.1.0) See GitHub Releases: - <https://github.com/python-pillow/Pillow/releases> </details> <details> <summary>agronholm/apscheduler (apscheduler)</summary> ### [`v3.11.3`](https://github.com/agronholm/apscheduler/releases/tag/3.11.3) [Compare Source](https://github.com/agronholm/apscheduler/compare/3.11.2...3.11.3) - Fixed sub-minute interval jobs stalling for the duration of a DST spring-forward gap when the scheduler was configured with a `ZoneInfo` time zone, caused by the wakeup delay being computed from the naive wall-clock difference instead of the actual UTC difference ([#&#8203;1103](https://github.com/agronholm/apscheduler/issues/1103)) - Fixed imported jobs missing their scheduler and job store links ([#&#8203;1119](https://github.com/agronholm/apscheduler/issues/1119)) ### [`v3.11.2`](https://github.com/agronholm/apscheduler/releases/tag/3.11.2) [Compare Source](https://github.com/agronholm/apscheduler/compare/3.11.1...3.11.2) - Fixed an issue where a job using a `CronTrigger` scheduled in a repeated time interval during DST transitions could cause the scheduler to get stuck in an infinite loop ([#&#8203;1021](https://github.com/agronholm/apscheduler/issues/1021); PR by [@&#8203;soulofakuma](https://github.com/soulofakuma)) ### [`v3.11.1`](https://github.com/agronholm/apscheduler/releases/tag/3.11.1) [Compare Source](https://github.com/agronholm/apscheduler/compare/3.11.0...3.11.1) - Fixed `scheduler.shutdown()` not raising `SchedulerNotRunning` (or raising the wrong exception) for asynchronous schedulers when the scheduler is in fact not running - Fixed `CronTrigger` sticking on a folded datetime during the fall-back DST transition ([#&#8203;1021](https://github.com/agronholm/apscheduler/issues/1021) <[#&#8203;1021](https://github.com/agronholm/apscheduler/issues/1021)>\_; PR by [@&#8203;berianjames](https://github.com/berianjames))\` ### [`v3.11.0`](https://github.com/agronholm/apscheduler/releases/tag/3.11.0) [Compare Source](https://github.com/agronholm/apscheduler/compare/3.10.4...3.11.0) - Dropped support for Python 3.6 and 3.7 - Added support for `ZoneInfo` time zones and deprecated support for pytz time zones - Added `CalendarIntervalTrigger`, backported from the 4.x series - Added the ability to export and import jobs via `scheduler.export_jobs()` and `scheduler.import_jobs()`, respectively - Removed the dependency on `six` - Changed `ProcessPoolExecutor` to spawn new subprocesses from scratch instead of forking on all platform - Fixed `AsyncIOScheduler` inadvertently creating a defunct event loop at start, leading to the scheduler not working at all - Fixed `ProcessPoolExecutor` not respecting the passed keyword arguments when a broken pool was being replaced </details> <details> <summary>MagicStack/asyncpg (asyncpg)</summary> ### [`v0.31.0`](https://github.com/MagicStack/asyncpg/releases/tag/v0.31.0) [Compare Source](https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0) Enable Python 3.14 with experimental subinterpreter/freethreading support. # Improvements - Add Python 3.14 support, experimental subinterpreter/freethreading support ([#&#8203;1279](https://github.com/MagicStack/asyncpg/issues/1279)) (by [@&#8203;elprans](https://github.com/elprans) in [`9e42642`](https://github.com/MagicStack/asyncpg/commit/9e42642b)) - Avoid performing type introspection on known types ([#&#8203;1243](https://github.com/MagicStack/asyncpg/issues/1243)) (by [@&#8203;elprans](https://github.com/elprans) in [`5c9986c`](https://github.com/MagicStack/asyncpg/commit/5c9986c4)) - Make `prepare()` not use named statements by default when cache is disabled ([#&#8203;1245](https://github.com/MagicStack/asyncpg/issues/1245)) (by [@&#8203;elprans](https://github.com/elprans) in [`5b14653`](https://github.com/MagicStack/asyncpg/commit/5b14653e)) - Implement connection service file functionality ([#&#8203;1223](https://github.com/MagicStack/asyncpg/issues/1223)) (by [@&#8203;AndrewJackson2020](https://github.com/AndrewJackson2020) in [`1d63bb1`](https://github.com/MagicStack/asyncpg/commit/1d63bb15)) # Fixes - Fix multi port connection string issue ([#&#8203;1222](https://github.com/MagicStack/asyncpg/issues/1222)) (by [@&#8203;AndrewJackson2020](https://github.com/AndrewJackson2020) in [`01c0db7`](https://github.com/MagicStack/asyncpg/commit/01c0db7b)) - Avoid leaking connections if \_can\_use\_connection fails ([#&#8203;1269](https://github.com/MagicStack/asyncpg/issues/1269)) (by [@&#8203;yuliy-openai](https://github.com/yuliy-openai) in [`e94302d`](https://github.com/MagicStack/asyncpg/commit/e94302d2)) # Other - Drop support for EOL Python 3.8 ([#&#8203;1281](https://github.com/MagicStack/asyncpg/issues/1281)) (by [@&#8203;elprans](https://github.com/elprans) in [`6c2c490`](https://github.com/MagicStack/asyncpg/commit/6c2c4904)) </details> <details> <summary>authlib/authlib (authlib)</summary> ### [`v1.7.2`](https://github.com/authlib/authlib/releases/tag/v1.7.2) [Compare Source](https://github.com/authlib/authlib/compare/1.7.1...v1.7.2) #### What's Changed - Fix the readme links by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;886](https://github.com/authlib/authlib/pull/886) - Allow non-recommended algorithms in ClientSecretJWT and PrivateKey by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;887](https://github.com/authlib/authlib/pull/887) - Validate BCP47 language tags with a regex by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;873](https://github.com/authlib/authlib/pull/873) - Fix RFC7523 signing with non RSA keys by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;884](https://github.com/authlib/authlib/pull/884) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2> ### [`v1.7.1`](https://github.com/authlib/authlib/releases/tag/v1.7.1) [Compare Source](https://github.com/authlib/authlib/compare/v1.7.0...1.7.1) #### What's Changed - Fix authlib.jose deprecation warning poping from \_joserfc\_helpers by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;881](https://github.com/authlib/authlib/pull/881) - Fix redirecting to unvalidated `redirect_uri` on `InvalidScopeError` in `OpenIDImplicitGrant` and `OpenIDHybridGrant`. **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.7.0...v1.7.1> ### [`v1.7.0`](https://github.com/authlib/authlib/releases/tag/v1.7.0) [Compare Source](https://github.com/authlib/authlib/compare/1.6.12...v1.7.0) #### What's Changed - Authorization and token endpoints request empty scope parameter management by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;847](https://github.com/authlib/authlib/pull/847) - Support from Python 3.10 to 3.14 by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;850](https://github.com/authlib/authlib/pull/850) - Allow composition of AuthorizationServerMetadata by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;853](https://github.com/authlib/authlib/pull/853) - Make require\_oauth parenthesis optional by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;855](https://github.com/authlib/authlib/pull/855) - Fix `expires_at` behavior when its value is 0 by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;854](https://github.com/authlib/authlib/pull/854) - Migration to joserfc by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;852](https://github.com/authlib/authlib/pull/852) - RP-initiated logout by [@&#8203;frohrlich](https://github.com/frohrlich) in [#&#8203;849](https://github.com/authlib/authlib/pull/849) - Fix `get_jwt_config` by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;858](https://github.com/authlib/authlib/pull/858) - chore(ci): Update PyPy version from 3.10 to 3.11 by [@&#8203;cclauss](https://github.com/cclauss) in [#&#8203;863](https://github.com/authlib/authlib/pull/863) - fix: remove "none" from default authlib.jose.jwt algorithms by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;860](https://github.com/authlib/authlib/pull/860) - fix: normalize resolve\_client\_public\_key method by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;861](https://github.com/authlib/authlib/pull/861) - Implement rfc9700 PKCE downgrade countermeasure by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;864](https://github.com/authlib/authlib/pull/864) - Use correct syntax for tox.requires in tox.ini by [@&#8203;alex-ball](https://github.com/alex-ball) in [#&#8203;868](https://github.com/authlib/authlib/pull/868) - Set client session User-Agent when fetching server metadata and JWKs by [@&#8203;alex-ball](https://github.com/alex-ball) in [#&#8203;867](https://github.com/authlib/authlib/pull/867) - fix: use the real application object for Flask by [@&#8203;nblock](https://github.com/nblock) in [#&#8203;869](https://github.com/authlib/authlib/pull/869) - Accept the issuer URL as a valid audience by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;865](https://github.com/authlib/authlib/pull/865) - Don't nest InvalidTokenError extra attribute by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;872](https://github.com/authlib/authlib/pull/872) - Documentation overhaul by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;875](https://github.com/authlib/authlib/pull/875) - Update README.md docs.authlib.org/en/latest => docs.authlib.org/en/stable by [@&#8203;guillett](https://github.com/guillett) in [#&#8203;876](https://github.com/authlib/authlib/pull/876) - Merge release/1.6 branch by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;877](https://github.com/authlib/authlib/pull/877) #### New Contributors - [@&#8203;frohrlich](https://github.com/frohrlich) made their first contribution in [#&#8203;849](https://github.com/authlib/authlib/pull/849) - [@&#8203;cclauss](https://github.com/cclauss) made their first contribution in [#&#8203;863](https://github.com/authlib/authlib/pull/863) - [@&#8203;alex-ball](https://github.com/alex-ball) made their first contribution in [#&#8203;868](https://github.com/authlib/authlib/pull/868) - [@&#8203;nblock](https://github.com/nblock) made their first contribution in [#&#8203;869](https://github.com/authlib/authlib/pull/869) - [@&#8203;guillett](https://github.com/guillett) made their first contribution in [#&#8203;876](https://github.com/authlib/authlib/pull/876) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.10...v1.7.0> ### [`v1.6.12`](https://github.com/authlib/authlib/releases/tag/v1.6.12) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.11...1.6.12) - - Fix redirecting to unvalidated `redirect_uri` on `InvalidScopeError` in `OpenIDImplicitGrant` and `OpenIDHybridGrant`. **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.11...v1.6.12> ### [`v1.6.11`](https://github.com/authlib/authlib/releases/tag/v1.6.11) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.10...v1.6.11) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.10...v1.6.11> - Fix CSRF issue with starlette client ### [`v1.6.10`](https://github.com/authlib/authlib/releases/tag/v1.6.10) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.9...v1.6.10> - Fix redirecting to unvalidated `redirect_uri` on `UnsupportedResponseTypeError`. ### [`v1.6.9`](https://github.com/authlib/authlib/releases/tag/v1.6.9) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9> #### Changes in `jose` module - Not using header's `jwk` automatically - Add `ES256K` into default jwt algorithms - Remove deprecated algorithm from default registry - Generate random `cek` when `cek` length doesn't match ### [`v1.6.8`](https://github.com/authlib/authlib/releases/tag/v1.6.8) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.7...v1.6.8) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.7...v1.6.8> - Add `EdDSA` to default `jwt` instance. ### [`v1.6.7`](https://github.com/authlib/authlib/releases/tag/v1.6.7) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7> Set supported algorithms for the default `jwt` instance. ### [`v1.6.6`](https://github.com/authlib/authlib/releases/tag/v1.6.6) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.5...v1.6.6) #### What's Changed - fix(ClientAuth): fix incorrect signature when Content-Type is x-www-form-urlencoded by [@&#8203;shc261392](https://github.com/shc261392) in [#&#8203;778](https://github.com/authlib/authlib/pull/778) - Fix: Use `expires_in` when `expires_at` is unparsable by [@&#8203;bendavis78](https://github.com/bendavis78) in [#&#8203;842](https://github.com/authlib/authlib/pull/842) - `get_jwt_config` takes a `client` parameter. by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;844](https://github.com/authlib/authlib/pull/844) #### New Contributors - [@&#8203;shc261392](https://github.com/shc261392) made their first contribution in [#&#8203;778](https://github.com/authlib/authlib/pull/778) - [@&#8203;bendavis78](https://github.com/bendavis78) made their first contribution in [#&#8203;842](https://github.com/authlib/authlib/pull/842) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.5...v1.6.6> ### [`v1.6.5`](https://github.com/authlib/authlib/releases/tag/v1.6.5) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.4...v1.6.5) #### What's Changed - Add a `request` param to RFC7591 `generate_client_info` and `generate_client_secret` methods by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;825](https://github.com/authlib/authlib/pull/825) - feat: support list params in prepare\_grant\_uri by [@&#8203;lisongmin](https://github.com/lisongmin) in [#&#8203;827](https://github.com/authlib/authlib/pull/827) - chore(deps): bump SonarSource/sonarqube-scan-action from 5 to 6 in /.github/workflows by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;828](https://github.com/authlib/authlib/pull/828) - fix(jose): add max size for JWE zip=DEF decompression by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;830](https://github.com/authlib/authlib/pull/830) #### New Contributors - [@&#8203;lisongmin](https://github.com/lisongmin) made their first contribution in [#&#8203;827](https://github.com/authlib/authlib/pull/827) - [@&#8203;dependabot](https://github.com/dependabot)\[bot] made their first contribution in [#&#8203;828](https://github.com/authlib/authlib/pull/828) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.4...v1.6.5> ### [`v1.6.4`](https://github.com/authlib/authlib/releases/tag/v1.6.4) [Compare Source](https://github.com/authlib/authlib/compare/v1.6.3...v1.6.4) #### What's Changed - fix(jose): prevent public/unprotected header overwriting protected header by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;809](https://github.com/authlib/authlib/pull/809) - Fix `InsecureTransportError` raising by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;810](https://github.com/authlib/authlib/pull/810) - Add conventional-commits pre-commit hook by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;811](https://github.com/authlib/authlib/pull/811) - Fix response\_mode=form\_post with Starlette client by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;812](https://github.com/authlib/authlib/pull/812) - Specify README.md as project long description by [@&#8203;EpicWink](https://github.com/EpicWink) in [#&#8203;817](https://github.com/authlib/authlib/pull/817) - Migrate tests to pytest paradigm by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;813](https://github.com/authlib/authlib/pull/813) - jose/jws: Reject unprotected ‘crit’ and enforce type; add tests by [@&#8203;AL-Cybision](https://github.com/AL-Cybision) in [#&#8203;823](https://github.com/authlib/authlib/pull/823) - Use explicit \*.test urls in unit tests by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;824](https://github.com/authlib/authlib/pull/824) #### New Contributors - [@&#8203;EpicWink](https://github.com/EpicWink) made their first contribution in [#&#8203;817](https://github.com/authlib/authlib/pull/817) - [@&#8203;AL-Cybision](https://github.com/AL-Cybision) made their first contribution in [#&#8203;823](https://github.com/authlib/authlib/pull/823) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.3...v1.6.4> ### [`v1.6.3`](https://github.com/authlib/authlib/releases/tag/v1.6.3): Version 1.6.3 [Compare Source](https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3) #### What's Changed - Add diff-cover check in GHA by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;803](https://github.com/authlib/authlib/pull/803) - Run GHA unit tests with uv by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;805](https://github.com/authlib/authlib/pull/805) - Move from pre-commit to prek by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;804](https://github.com/authlib/authlib/pull/804) - Sign OIDC id\_token according to `id_token_signed_response_alg` client metadata by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;802](https://github.com/authlib/authlib/pull/802) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.2...v1.6.3> ### [`v1.6.2`](https://github.com/authlib/authlib/releases/tag/v1.6.2): Version 1.6.2 [Compare Source](https://github.com/authlib/authlib/compare/v1.6.1...v1.6.2) #### What's Changed - Allow insecure transport for 127.0.0.1 for debugging by [@&#8203;geigerzaehler](https://github.com/geigerzaehler) in [#&#8203;788](https://github.com/authlib/authlib/pull/788) - Raise a MissingCodeError when code parameter is missing by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;786](https://github.com/authlib/authlib/pull/786) - Temporarily restore OAuth2Request body parameter by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;791](https://github.com/authlib/authlib/pull/791) - Raise MissingCodeException when code parameter is missing by [@&#8203;lepture](https://github.com/lepture) in [#&#8203;794](https://github.com/authlib/authlib/pull/794) - Fix id\_token generation with EdDSA alg by [@&#8203;azmeuk](https://github.com/azmeuk) in [#&#8203;800](https://github.com/authlib/authlib/pull/800) **Full Changelog**: <https://github.com/authlib/authlib/compare/v1.6.1...v1.6.2> ### [`v1.6.1`](https://github.com/authlib/authlib/releases/tag/v1.6.1): Version 1.6.1 [Compare Source](https://github.com/authlib/authlib/compare/v1.6.0...v1.6.1) - Filter key set with additional "alg" and "use" parameters. ### [`v1.6.0`](https://github.com/authlib/authlib/releases/tag/v1.6.0): Version 1.6.0 [Compare Source](https://github.com/authlib/authlib/compare/v1.5.2...v1.6.0) - Fix issue when [RFC9207](https://datatracker.ietf.org/doc/html/rfc9207.html) is enabled and the authorization endpoint response is not a redirection. [pull request #&#8203;733](https://github.com/authlib/authlib/pull/733) - Fix missing state parameter in authorization error responses. [issue #&#8203;525](https://github.com/authlib/authlib/issues/525) - Support for acr and amr claims in id\_token. [issue #&#8203;734](https://github.com/authlib/authlib/issues/734) - Support for the none JWS algorithm. - Fix response\_types strict order during dynamic client registration. [issue #&#8203;760](https://github.com/authlib/authlib/issues/760) - Implement [RFC9101 The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)](https://datatracker.ietf.org/doc/html/rfc9101.html). [issue #&#8203;723](https://github.com/authlib/authlib/issues/723) - OIDC [UserInfo endpoint](https://docs.authlib.org/en/latest/specs/oidc.html#authlib.oidc.core.UserInfoEndpoint) support. [issue #&#8203;459](https://github.com/authlib/authlib/issues/459) ### [`v1.5.2`](https://github.com/authlib/authlib/releases/tag/v1.5.2): Version 1.5.2 [Compare Source](https://github.com/authlib/authlib/compare/v1.5.1...v1.5.2) Released on Apr 1, 2025 - Forbid fragments in redirect\_uris. [#&#8203;714](https://github.com/authlib/authlib/issues/714) - Fix invalid characters in error\_description. [#&#8203;720](https://github.com/authlib/authlib/issues/720) - Add `claims_cls` parameter for client's parse\_id\_token method. [#&#8203;725](https://github.com/authlib/authlib/issues/725) ### [`v1.5.1`](https://github.com/authlib/authlib/releases/tag/v1.5.1): Version 1.5.1 [Compare Source](https://github.com/authlib/authlib/compare/v1.5.0...v1.5.1) Released on Feb 28, 2025 - Fix RFC9207 iss parameter. [#&#8203;715](https://github.com/authlib/authlib/issues/715) ### [`v1.5.0`](https://github.com/authlib/authlib/releases/tag/v1.5.0): Version 1.5.0 [Compare Source](https://github.com/authlib/authlib/compare/v1.4.1...v1.5.0) - Fix token introspection auth method for clients. [#&#8203;662](https://github.com/lepture/authlib/pull/662) - Optional typ claim in JWT tokens. [#&#8203;696](https://github.com/lepture/authlib/pull/696) - JWT validation leeway. [#&#8203;689](https://github.com/lepture/authlib/pull/689) - Implement server-side [RFC9207](https://datatracker.ietf.org/doc/html/rfc9207.html). [#&#8203;700](https://github.com/lepture/authlib/issues/700) [#&#8203;701](https://github.com/lepture/authlib/pull/701) - generate\_id\_token can take a kid parameter. [#&#8203;702](https://github.com/lepture/authlib/pull/702) - More detailed InvalidClientError. [#&#8203;706](https://github.com/lepture/authlib/pull/706) - OpenID Connect Dynamic Client Registration implementation. [#&#8203;707](https://github.com/lepture/authlib/pull/707) ### [`v1.4.1`](https://github.com/authlib/authlib/releases/tag/v1.4.1): Version 1.4.1 [Compare Source](https://github.com/authlib/authlib/compare/v1.4.0...v1.4.1) - Improve garbage collection on OAuth clients. [#&#8203;698](https://github.com/authlib/authlib/issues/698) - Fix client parameters for httpx. [#&#8203;694](https://github.com/authlib/authlib/issues/694) ### [`v1.4.0`](https://github.com/authlib/authlib/releases/tag/v1.4.0): Version 1.4.0 [Compare Source](https://github.com/authlib/authlib/compare/v1.3.2...v1.4.0) **Bugfixes** - Fix id\_token decoding when kid is null. [#&#8203;659](https://github.com/authlib/authlib/issues/659) - Support for Python 3.13. [#&#8203;682](https://github.com/authlib/authlib/issues/682) - Force login if the prompt parameter value is login. [#&#8203;637](https://github.com/authlib/authlib/issues/637) - Support for httpx 0.28. [#&#8203;695](https://github.com/authlib/authlib/issues/695) **Breaking changes** - Stop support for Python 3.8. [#&#8203;682](https://github.com/authlib/authlib/issues/682) </details> <details> <summary>fastapi/fastapi (fastapi)</summary> ### [`v0.139.0`](https://github.com/fastapi/fastapi/releases/tag/0.139.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.138.2...0.139.0) ##### Features - ✨ Support dependencies in `app.frontend()`, e.g. for automatic cookie authentication for the frontend. PR [#&#8203;15908](https://github.com/fastapi/fastapi/pull/15908) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Update translations for fr (update-outdated). PR [#&#8203;15897](https://github.com/fastapi/fastapi/pull/15897) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ja (update-outdated). PR [#&#8203;15895](https://github.com/fastapi/fastapi/pull/15895) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh-hant (update-outdated). PR [#&#8203;15896](https://github.com/fastapi/fastapi/pull/15896) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (update-outdated). PR [#&#8203;15899](https://github.com/fastapi/fastapi/pull/15899) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;15892](https://github.com/fastapi/fastapi/pull/15892) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (update-outdated). PR [#&#8203;15891](https://github.com/fastapi/fastapi/pull/15891) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;15893](https://github.com/fastapi/fastapi/pull/15893) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh (update-outdated). PR [#&#8203;15898](https://github.com/fastapi/fastapi/pull/15898) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update-outdated). PR [#&#8203;15900](https://github.com/fastapi/fastapi/pull/15900) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (update-outdated). PR [#&#8203;15890](https://github.com/fastapi/fastapi/pull/15890) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ru (update-outdated). PR [#&#8203;15894](https://github.com/fastapi/fastapi/pull/15894) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (add-missing). PR [#&#8203;15888](https://github.com/fastapi/fastapi/pull/15888) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (add-missing). PR [#&#8203;15880](https://github.com/fastapi/fastapi/pull/15880) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh-hant (add-missing). PR [#&#8203;15889](https://github.com/fastapi/fastapi/pull/15889) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (add-missing). PR [#&#8203;15883](https://github.com/fastapi/fastapi/pull/15883) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh (add-missing). PR [#&#8203;15885](https://github.com/fastapi/fastapi/pull/15885) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ja (add-missing). PR [#&#8203;15882](https://github.com/fastapi/fastapi/pull/15882) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (add-missing). PR [#&#8203;15887](https://github.com/fastapi/fastapi/pull/15887) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (add-missing). PR [#&#8203;15886](https://github.com/fastapi/fastapi/pull/15886) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for fr (add-missing). PR [#&#8203;15881](https://github.com/fastapi/fastapi/pull/15881) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (add-missing). PR [#&#8203;15884](https://github.com/fastapi/fastapi/pull/15884) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ru (add-missing). PR [#&#8203;15879](https://github.com/fastapi/fastapi/pull/15879) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 👥 Update FastAPI People - Experts. PR [#&#8203;15909](https://github.com/fastapi/fastapi/pull/15909) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;15906](https://github.com/fastapi/fastapi/pull/15906) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;15878](https://github.com/fastapi/fastapi/pull/15878) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Remove not needed `allow-unsafe-pr-checkout: true`. PR [#&#8203;15876](https://github.com/fastapi/fastapi/pull/15876) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ Bump the github-actions group with 5 updates. PR [#&#8203;15872](https://github.com/fastapi/fastapi/pull/15872) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump the python-packages group across 1 directory with 10 updates. PR [#&#8203;15870](https://github.com/fastapi/fastapi/pull/15870) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump CodSpeedHQ/action from 4.17.0 to 4.17.5 in the github-actions group. PR [#&#8203;15826](https://github.com/fastapi/fastapi/pull/15826) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.138.2`](https://github.com/fastapi/fastapi/releases/tag/0.138.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.138.1...0.138.2) ##### Refactors - ♻️ Make `app.frontend()` return 404 for methods other than `GET` or `HEAD` with no static file matches. PR [#&#8203;15863](https://github.com/fastapi/fastapi/pull/15863) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔧 Update sponsors: remove Stainless. PR [#&#8203;15862](https://github.com/fastapi/fastapi/pull/15862) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Refactor how sponsors data is handled for banners. PR [#&#8203;15852](https://github.com/fastapi/fastapi/pull/15852) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.138.1`](https://github.com/fastapi/fastapi/releases/tag/0.138.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.138.0...0.138.1) ##### Refactors - ♻️ Refactor Library Skills, make info easier to find for agents. PR [#&#8203;15841](https://github.com/fastapi/fastapi/pull/15841) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 👷 Simplify pull request workflow triggers. PR [#&#8203;15836](https://github.com/fastapi/fastapi/pull/15836) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Update issue-manager to 0.7.1. PR [#&#8203;15833](https://github.com/fastapi/fastapi/pull/15833) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆️ Update issue-manager to 0.7.0. PR [#&#8203;15831](https://github.com/fastapi/fastapi/pull/15831) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: Add TestMu again. PR [#&#8203;15830](https://github.com/fastapi/fastapi/pull/15830) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔒️ Update zizmor workflow security checks. PR [#&#8203;15820](https://github.com/fastapi/fastapi/pull/15820) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump pydantic-settings from 2.14.1 to 2.14.2. PR [#&#8203;15799](https://github.com/fastapi/fastapi/pull/15799) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.138.0`](https://github.com/fastapi/fastapi/releases/tag/0.138.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.137.2...0.138.0) ##### Features - ✨ Add support for `app.frontend("/", directory="dist")` and `router.frontend("/", directory="dist")`. PR [#&#8203;15800](https://github.com/fastapi/fastapi/pull/15800) by [@&#8203;tiangolo](https://github.com/tiangolo). - Read the docs: [Frontend](https://fastapi.tiangolo.com/tutorial/frontend/). ##### Docs - 📝 Fix typo in release notes. PR [#&#8203;15807](https://github.com/fastapi/fastapi/pull/15807) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Add `app.frontend()` instructions to Agent Library Skill. PR [#&#8203;15805](https://github.com/fastapi/fastapi/pull/15805) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update release notes link. PR [#&#8203;15802](https://github.com/fastapi/fastapi/pull/15802) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✏️ Update white space characters in bigger apps. PR [#&#8203;15801](https://github.com/fastapi/fastapi/pull/15801) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✏️ Fix grammar, typos, and broken links in docs. PR [#&#8203;15694](https://github.com/fastapi/fastapi/pull/15694) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Translations - 🌐 Enable Hindi docs translations. PR [#&#8203;15554](https://github.com/fastapi/fastapi/pull/15554) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - 🐛 Fix failing test, update format for raised errors. PR [#&#8203;15804](https://github.com/fastapi/fastapi/pull/15804) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Fix test-alls-green. PR [#&#8203;15803](https://github.com/fastapi/fastapi/pull/15803) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Enable checking `release-notes.md` for typos. PR [#&#8203;15796](https://github.com/fastapi/fastapi/pull/15796) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Tweak wording about deploying to FastAPI Cloud. PR [#&#8203;15793](https://github.com/fastapi/fastapi/pull/15793) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Use `gpt-5.5` model in `translate.py`, specify `-chat` to avoid warnings. PR [#&#8203;15792](https://github.com/fastapi/fastapi/pull/15792) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.137.2`](https://github.com/fastapi/fastapi/releases/tag/0.137.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.137.1...0.137.2) ##### Features - ✨ Add `iter_route_contexts()` for advanced use cases that used to use `router.routes` (e.g. Jupyverse). PR [#&#8203;15785](https://github.com/fastapi/fastapi/pull/15785) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Fix broken Markdown in Korean custom response docs. PR [#&#8203;15774](https://github.com/fastapi/fastapi/pull/15774) by [@&#8203;kooqooo](https://github.com/kooqooo). - 🌐 Update translations for fr (update-outdated). PR [#&#8203;15761](https://github.com/fastapi/fastapi/pull/15761) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh-hant (update-outdated). PR [#&#8203;15760](https://github.com/fastapi/fastapi/pull/15760) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (update-outdated). PR [#&#8203;15759](https://github.com/fastapi/fastapi/pull/15759) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (update-outdated). PR [#&#8203;15757](https://github.com/fastapi/fastapi/pull/15757) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update-outdated). PR [#&#8203;15756](https://github.com/fastapi/fastapi/pull/15756) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh (update-outdated). PR [#&#8203;15755](https://github.com/fastapi/fastapi/pull/15755) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (update-outdated). PR [#&#8203;15754](https://github.com/fastapi/fastapi/pull/15754) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;15753](https://github.com/fastapi/fastapi/pull/15753) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;15752](https://github.com/fastapi/fastapi/pull/15752) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ja (update-outdated). PR [#&#8203;15751](https://github.com/fastapi/fastapi/pull/15751) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ru (update-outdated). PR [#&#8203;15758](https://github.com/fastapi/fastapi/pull/15758) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔧 Update sponsors: add BairesDev. PR [#&#8203;15787](https://github.com/fastapi/fastapi/pull/15787) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update sponsors script to simplify previews. PR [#&#8203;15786](https://github.com/fastapi/fastapi/pull/15786) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump the python-packages group across 1 directory with 7 updates. PR [#&#8203;15777](https://github.com/fastapi/fastapi/pull/15777) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump cryptography from 46.0.7 to 48.0.1. PR [#&#8203;15779](https://github.com/fastapi/fastapi/pull/15779) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump aiohttp from 3.14.0 to 3.14.1. PR [#&#8203;15781](https://github.com/fastapi/fastapi/pull/15781) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump starlette from 1.2.1 to 1.3.1. PR [#&#8203;15780](https://github.com/fastapi/fastapi/pull/15780) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump astral-sh/setup-uv from 8.1.0 to 8.2.0 in the github-actions group. PR [#&#8203;15776](https://github.com/fastapi/fastapi/pull/15776) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump <https://github.com/crate-ci/typos> from v1.47.1 to v1.47.2 in the pre-commit group. PR [#&#8203;15775](https://github.com/fastapi/fastapi/pull/15775) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump python-multipart from 0.0.30 to 0.0.32. PR [#&#8203;15778](https://github.com/fastapi/fastapi/pull/15778) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⏪️ Revert removing scripts, only remove `coverage.sh`. PR [#&#8203;15772](https://github.com/fastapi/fastapi/pull/15772) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove unused scripts. PR [#&#8203;15771](https://github.com/fastapi/fastapi/pull/15771) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add ty configs to check docs sources. PR [#&#8203;15770](https://github.com/fastapi/fastapi/pull/15770) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add ty configs to check docs sources. PR [#&#8203;15769](https://github.com/fastapi/fastapi/pull/15769) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.137.1`](https://github.com/fastapi/fastapi/releases/tag/0.137.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.137.0...0.137.1) ##### Fixes - 🚨 Fix typing checks for APIRoute. PR [#&#8203;15765](https://github.com/fastapi/fastapi/pull/15765) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🐛 Fix bug, allow empty path in path operation in prefixless router. PR [#&#8203;15763](https://github.com/fastapi/fastapi/pull/15763) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.137.0`](https://github.com/fastapi/fastapi/releases/tag/0.137.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.136.3...0.137.0) ##### Breaking Changes - ♻️ Refactor internals to preserve `APIRouter` and `APIRoute` instances. PR [#&#8203;15745](https://github.com/fastapi/fastapi/pull/15745) by [@&#8203;tiangolo](https://github.com/tiangolo). Unblocks ✨ SO MANY THINGS ✨ Before this, `router.include_router(other_router)` would take each path operation from `other_router` and "clone" it, or recreate it from scratch. This would mean that in the end there was only one top level router, part of the app. The way it is structured here is that there are a few additional classes to handle intermediate metadata for router and route inclusion. That way the information of "router X includes Y and Y includes Z" is stored somewhere, without affecting (recreating / clonning) the final route. ##### Non Objectives Dependencies for 404: previously I intended to support dependencies that would be executed even for 404, but that would conflict with the fact that a router could *not* find a match, but the next router *did* find a match. Executing dependencies in the router that did not find a match would not make sense, they could consume the request, body, etc. This original idea was discarded. ##### Specific Breaking Changes Now `router.routes` is no longer a plain list of `APIRoute` objects, it can contain these intermediate objects that can contain additional routers, forming a tree. Any logic that depended on iterating on the `router.routes` directly would be affected, that logic cannot expect to be able to extract data from a plain list of routes, as it's no longer a plain list but a tree. Additionally, any logic that iterated on `router.routes` to modify them would now also see these new objects, and would not see all the routes in the app. `router.routes` should be considered an internal implementation detail, only passed around to the FastAPI functions that need it. ##### Features - Adding routes (path operations) after a router is included now works, they are reflected as they are not copied. - Including `subrouter` in `mainrouter` can be done before adding routes (path operations) to `subrouter`, because now the the entire object is stored instead of copying the routes. - As routes are not copied, in some cases that might save some memory. ##### Alpha Features This is not documented yet, so it's not officially supported yet and could change in the future. But, as `APIRoute` and `APIRouter` instances are now preserved, they could be customized. `APIRouter` has two new methods, `.matches()` and `.handle()`, counterpart to the existing ones in `APIRoute`. With this a router could customize how it matches and handles requests. For example, it could match only requests that include some specific header, for example for handling versions in headers. Still, for now, consider this very experimental and potentially changing and breaking in the future. ##### Future Features Enabled - Custom `APIRoute` subclasses (undocumented, but alraedy works as desccribed above) - Custom `APIRouter` subclasses (undocumented, but already works as described above) - Dependencies per router - Exception handlers per router - Middleware per router - Other features planned ##### Docs - 📝 Update release notes. PR [#&#8203;15747](https://github.com/fastapi/fastapi/pull/15747) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update FastAPI Cloud deployment instructions. PR [#&#8203;15724](https://github.com/fastapi/fastapi/pull/15724) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✏️ Use `Annotated` in inline example in `docs/en/docs/tutorial/body-multiple-params.md`. PR [#&#8203;15591](https://github.com/fastapi/fastapi/pull/15591) by [@&#8203;TheArchons](https://github.com/TheArchons). - 📝 Remove "NGINX Unit" from the list of ASGI-servers in docs. PR [#&#8203;15475](https://github.com/fastapi/fastapi/pull/15475) by [@&#8203;angryfoxx](https://github.com/angryfoxx). - 📝 Update `docs/en/docs/tutorial/security/oauth2-jwt.md`. PR [#&#8203;14781](https://github.com/fastapi/fastapi/pull/14781) by [@&#8203;zadevhub](https://github.com/zadevhub). ##### Translations - 🌐 Update translations for zh-hant (update-outdated). PR [#&#8203;15671](https://github.com/fastapi/fastapi/pull/15671) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;15670](https://github.com/fastapi/fastapi/pull/15670) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for fr (update-outdated). PR [#&#8203;15669](https://github.com/fastapi/fastapi/pull/15669) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ja (update-outdated). PR [#&#8203;15668](https://github.com/fastapi/fastapi/pull/15668) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;15667](https://github.com/fastapi/fastapi/pull/15667) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (update-outdated). PR [#&#8203;15666](https://github.com/fastapi/fastapi/pull/15666) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh (update-outdated). PR [#&#8203;15665](https://github.com/fastapi/fastapi/pull/15665) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (update-outdated). PR [#&#8203;15664](https://github.com/fastapi/fastapi/pull/15664) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (update-outdated). PR [#&#8203;15673](https://github.com/fastapi/fastapi/pull/15673) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update-outdated). PR [#&#8203;15672](https://github.com/fastapi/fastapi/pull/15672) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ru (update-outdated). PR [#&#8203;15674](https://github.com/fastapi/fastapi/pull/15674) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔧 Update sponsors: remove TalorData. PR [#&#8203;15744](https://github.com/fastapi/fastapi/pull/15744) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove ExoFlare. PR [#&#8203;15736](https://github.com/fastapi/fastapi/pull/15736) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove InterviewPal. PR [#&#8203;15735](https://github.com/fastapi/fastapi/pull/15735) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove Liblab. PR [#&#8203;15731](https://github.com/fastapi/fastapi/pull/15731) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove Scalar. PR [#&#8203;15730](https://github.com/fastapi/fastapi/pull/15730) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump the python-packages group across 1 directory with 6 updates. PR [#&#8203;15721](https://github.com/fastapi/fastapi/pull/15721) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump python-multipart from 0.0.29 to 0.0.30. PR [#&#8203;15723](https://github.com/fastapi/fastapi/pull/15723) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump the github-actions group with 3 updates. PR [#&#8203;15720](https://github.com/fastapi/fastapi/pull/15720) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump starlette from 1.1.0 to 1.2.1. PR [#&#8203;15722](https://github.com/fastapi/fastapi/pull/15722) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump <https://github.com/crate-ci/typos> from v1.46.0 to v1.47.1 in the pre-commit group. PR [#&#8203;15719](https://github.com/fastapi/fastapi/pull/15719) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update sponsors, add Rapidproxy. PR [#&#8203;15689](https://github.com/fastapi/fastapi/pull/15689) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: Remove TestMu. PR [#&#8203;15688](https://github.com/fastapi/fastapi/pull/15688) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump the python-packages group across 1 directory with 11 updates. PR [#&#8203;15683](https://github.com/fastapi/fastapi/pull/15683) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump aiohttp from 3.13.4 to 3.14.0. PR [#&#8203;15681](https://github.com/fastapi/fastapi/pull/15681) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump the github-actions group with 2 updates. PR [#&#8203;15682](https://github.com/fastapi/fastapi/pull/15682) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump starlette from 1.0.0 to 1.1.0. PR [#&#8203;15684](https://github.com/fastapi/fastapi/pull/15684) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Experts. PR [#&#8203;15677](https://github.com/fastapi/fastapi/pull/15677) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;15675](https://github.com/fastapi/fastapi/pull/15675) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;15662](https://github.com/fastapi/fastapi/pull/15662) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Automate release preparation. PR [#&#8203;15661](https://github.com/fastapi/fastapi/pull/15661) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove slim package stub, deprecated for a while. PR [#&#8203;15649](https://github.com/fastapi/fastapi/pull/15649) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump authlib from 1.6.11 to 1.7.2. PR [#&#8203;15512](https://github.com/fastapi/fastapi/pull/15512) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pymdown-extensions from 10.21.2 to 10.21.3. PR [#&#8203;15569](https://github.com/fastapi/fastapi/pull/15569) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump CodSpeedHQ/action from 4.14.0 to 4.15.1. PR [#&#8203;15513](https://github.com/fastapi/fastapi/pull/15513) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump python-multipart from 0.0.26 to 0.0.29. PR [#&#8203;15595](https://github.com/fastapi/fastapi/pull/15595) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔒️ Improve GitHub actions security. PR [#&#8203;15607](https://github.com/fastapi/fastapi/pull/15607) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⚰️ Remove ruff and coverage ignores for non-existing files. PR [#&#8203;15610](https://github.com/fastapi/fastapi/pull/15610) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ✅ Use custom `changing_dir` instead of `CLIRunner.isolated_filesystem` to set working dir. PR [#&#8203;15616](https://github.com/fastapi/fastapi/pull/15616) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ✅ Add `httpx2` test dependency to avoid deprecation warning. PR [#&#8203;15603](https://github.com/fastapi/fastapi/pull/15603) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ Bump the python-packages group with 15 updates. PR [#&#8203;15594](https://github.com/fastapi/fastapi/pull/15594) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👷 Configure Dependabot to group updates and update weekly. PR [#&#8203;15560](https://github.com/fastapi/fastapi/pull/15560) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.136.3`](https://github.com/fastapi/fastapi/releases/tag/0.136.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3) ##### Refactors - ♻️ Do not accept underscore headers when using `convert_underscores=True` (the default). PR [#&#8203;15589](https://github.com/fastapi/fastapi/pull/15589) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.136.1`](https://github.com/fastapi/fastapi/releases/tag/0.136.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.136.0...0.136.1) ##### Upgrades - ⬆️ Update Pydantic v2 code to address deprecations. PR [#&#8203;15101](https://github.com/fastapi/fastapi/pull/15101) by [@&#8203;svlandeg](https://github.com/svlandeg). ##### Internal - 🔨 Tweak translation script. PR [#&#8203;15174](https://github.com/fastapi/fastapi/pull/15174) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR [#&#8203;15408](https://github.com/fastapi/fastapi/pull/15408) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR [#&#8203;15409](https://github.com/fastapi/fastapi/pull/15409) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR [#&#8203;15407](https://github.com/fastapi/fastapi/pull/15407) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR [#&#8203;15406](https://github.com/fastapi/fastapi/pull/15406) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR [#&#8203;15405](https://github.com/fastapi/fastapi/pull/15405) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump mypy from 1.19.1 to 1.20.1. PR [#&#8203;15410](https://github.com/fastapi/fastapi/pull/15410) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR [#&#8203;15400](https://github.com/fastapi/fastapi/pull/15400) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump starlette from 0.52.1 to 1.0.0. PR [#&#8203;15397](https://github.com/fastapi/fastapi/pull/15397) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pygithub from 2.8.1 to 2.9.1. PR [#&#8203;15396](https://github.com/fastapi/fastapi/pull/15396) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR [#&#8203;15393](https://github.com/fastapi/fastapi/pull/15393) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump zizmor from 1.23.1 to 1.24.1. PR [#&#8203;15394](https://github.com/fastapi/fastapi/pull/15394) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR [#&#8203;15395](https://github.com/fastapi/fastapi/pull/15395) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR [#&#8203;15360](https://github.com/fastapi/fastapi/pull/15360) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump authlib from 1.6.9 to 1.6.11. PR [#&#8203;15373](https://github.com/fastapi/fastapi/pull/15373) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR [#&#8203;15282](https://github.com/fastapi/fastapi/pull/15282) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pygments from 2.19.2 to 2.20.0. PR [#&#8203;15263](https://github.com/fastapi/fastapi/pull/15263) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR [#&#8203;15391](https://github.com/fastapi/fastapi/pull/15391) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ Bump pillow from 12.1.1 to 12.2.0. PR [#&#8203;15333](https://github.com/fastapi/fastapi/pull/15333) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pytest from 9.0.2 to 9.0.3. PR [#&#8203;15334](https://github.com/fastapi/fastapi/pull/15334) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR [#&#8203;15374](https://github.com/fastapi/fastapi/pull/15374) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR [#&#8203;15385](https://github.com/fastapi/fastapi/pull/15385) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update sponsors: remove Zuplo. PR [#&#8203;15369](https://github.com/fastapi/fastapi/pull/15369) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove Speakeasy. PR [#&#8203;15368](https://github.com/fastapi/fastapi/pull/15368) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔒️ Add zizmor and fix audit findings. PR [#&#8203;15316](https://github.com/fastapi/fastapi/pull/15316) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.136.0`](https://github.com/fastapi/fastapi/releases/tag/0.136.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.135.4...0.136.0) ##### Upgrades - ⬆️ Support free-threaded Python 3.14t. PR [#&#8203;15149](https://github.com/fastapi/fastapi/pull/15149) by [@&#8203;svlandeg](https://github.com/svlandeg). ### [`v0.135.4`](https://github.com/fastapi/fastapi/releases/tag/0.135.4) [Compare Source](https://github.com/fastapi/fastapi/compare/0.135.3...0.135.4) ##### Refactors - 🔥 Remove April Fool's `@app.vibe()` 🤪. PR [#&#8203;15363](https://github.com/fastapi/fastapi/pull/15363) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬆ Bump cryptography from 46.0.5 to 46.0.7. PR [#&#8203;15314](https://github.com/fastapi/fastapi/pull/15314) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR [#&#8203;15309](https://github.com/fastapi/fastapi/pull/15309) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔨 Add pre-commit hook to ensure latest release header has date. PR [#&#8203;15293](https://github.com/fastapi/fastapi/pull/15293) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.135.3`](https://github.com/fastapi/fastapi/releases/tag/0.135.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.135.2...0.135.3) ##### Features - ✨ Add support for `@app.vibe()`. PR [#&#8203;15280](https://github.com/fastapi/fastapi/pull/15280) by [@&#8203;tiangolo](https://github.com/tiangolo). - New docs: [Vibe Coding](https://fastapi.tiangolo.com/advanced/vibe/). ##### Docs - ✏️ Fix typo for `client_secret` in OAuth2 form docstrings. PR [#&#8203;14946](https://github.com/fastapi/fastapi/pull/14946) by [@&#8203;bysiber](https://github.com/bysiber). ##### Internal - 👥 Update FastAPI People - Experts. PR [#&#8203;15279](https://github.com/fastapi/fastapi/pull/15279) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump orjson from 3.11.7 to 3.11.8. PR [#&#8203;15276](https://github.com/fastapi/fastapi/pull/15276) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump ruff from 0.15.0 to 0.15.8. PR [#&#8203;15277](https://github.com/fastapi/fastapi/pull/15277) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;15274](https://github.com/fastapi/fastapi/pull/15274) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR [#&#8203;15267](https://github.com/fastapi/fastapi/pull/15267) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;15270](https://github.com/fastapi/fastapi/pull/15270) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump requests from 2.32.5 to 2.33.0. PR [#&#8203;15228](https://github.com/fastapi/fastapi/pull/15228) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👷 Add ty check to `lint.sh`. PR [#&#8203;15136](https://github.com/fastapi/fastapi/pull/15136) by [@&#8203;svlandeg](https://github.com/svlandeg). ### [`v0.135.2`](https://github.com/fastapi/fastapi/releases/tag/0.135.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.135.1...0.135.2) ##### Upgrades - ⬆️ Increase lower bound to `pydantic >=2.9.0.` and fix the test suite. PR [#&#8203;15139](https://github.com/fastapi/fastapi/pull/15139) by [@&#8203;svlandeg](https://github.com/svlandeg). ##### Docs - 📝 Add missing last release notes dates. PR [#&#8203;15202](https://github.com/fastapi/fastapi/pull/15202) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for contributors and team members regarding translation PRs. PR [#&#8203;15200](https://github.com/fastapi/fastapi/pull/15200) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 💄 Fix code blocks in reference docs overflowing table width. PR [#&#8203;15094](https://github.com/fastapi/fastapi/pull/15094) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Fix duplicated words in docstrings. PR [#&#8203;15116](https://github.com/fastapi/fastapi/pull/15116) by [@&#8203;AhsanSheraz](https://github.com/AhsanSheraz). - 📝 Add docs for `pyproject.toml` with `entrypoint`. PR [#&#8203;15075](https://github.com/fastapi/fastapi/pull/15075) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update links in docs to no longer use the classes external-link and internal-link. PR [#&#8203;15061](https://github.com/fastapi/fastapi/pull/15061) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Add JS and CSS handling for automatic `target=_blank` for links in docs. PR [#&#8203;15063](https://github.com/fastapi/fastapi/pull/15063) by [@&#8203;tiangolo](https://github.com/tiangolo). - 💄 Update styles for internal and external links in new tab. PR [#&#8203;15058](https://github.com/fastapi/fastapi/pull/15058) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Add documentation for the FastAPI VS Code extension. PR [#&#8203;15008](https://github.com/fastapi/fastapi/pull/15008) by [@&#8203;savannahostrowski](https://github.com/savannahostrowski). - 📝 Fix doctrings for `max_digits` and `decimal_places`. PR [#&#8203;14944](https://github.com/fastapi/fastapi/pull/14944) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Add dates to release notes. PR [#&#8203;15001](https://github.com/fastapi/fastapi/pull/15001) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Translations - 🌐 Update translations for zh (update-outdated). PR [#&#8203;15177](https://github.com/fastapi/fastapi/pull/15177) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh-hant (update-outdated). PR [#&#8203;15178](https://github.com/fastapi/fastapi/pull/15178) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh-hant (add-missing). PR [#&#8203;15176](https://github.com/fastapi/fastapi/pull/15176) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh (add-missing). PR [#&#8203;15175](https://github.com/fastapi/fastapi/pull/15175) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ja (update-outdated). PR [#&#8203;15171](https://github.com/fastapi/fastapi/pull/15171) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (update-outdated). PR [#&#8203;15170](https://github.com/fastapi/fastapi/pull/15170) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (update-outdated). PR [#&#8203;15172](https://github.com/fastapi/fastapi/pull/15172) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (add-missing). PR [#&#8203;15168](https://github.com/fastapi/fastapi/pull/15168) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ja (add-missing). PR [#&#8203;15167](https://github.com/fastapi/fastapi/pull/15167) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (add-missing). PR [#&#8203;15169](https://github.com/fastapi/fastapi/pull/15169) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for fr (update-outdated). PR [#&#8203;15165](https://github.com/fastapi/fastapi/pull/15165) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for fr (add-missing). PR [#&#8203;15163](https://github.com/fastapi/fastapi/pull/15163) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update-outdated). PR [#&#8203;15160](https://github.com/fastapi/fastapi/pull/15160) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (add-missing). PR [#&#8203;15158](https://github.com/fastapi/fastapi/pull/15158) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (add-missing). PR [#&#8203;15157](https://github.com/fastapi/fastapi/pull/15157) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;15159](https://github.com/fastapi/fastapi/pull/15159) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;15155](https://github.com/fastapi/fastapi/pull/15155) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (add-missing). PR [#&#8203;15154](https://github.com/fastapi/fastapi/pull/15154) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (update-outdated). PR [#&#8203;15156](https://github.com/fastapi/fastapi/pull/15156) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ru (update-and-add). PR [#&#8203;15152](https://github.com/fastapi/fastapi/pull/15152) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (add-missing). PR [#&#8203;15153](https://github.com/fastapi/fastapi/pull/15153) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔨 Exclude spam comments from statistics in `scripts/people.py`. PR [#&#8203;15088](https://github.com/fastapi/fastapi/pull/15088) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ Bump authlib from 1.6.7 to 1.6.9. PR [#&#8203;15128](https://github.com/fastapi/fastapi/pull/15128) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pyasn1 from 0.6.2 to 0.6.3. PR [#&#8203;15143](https://github.com/fastapi/fastapi/pull/15143) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump ujson from 5.11.0 to 5.12.0. PR [#&#8203;15150](https://github.com/fastapi/fastapi/pull/15150) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔨 Tweak translation workflow and translation fixer tool. PR [#&#8203;15166](https://github.com/fastapi/fastapi/pull/15166) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🔨 Fix `commit_in_place` passed via env variable in `translate.yml` workflow. PR [#&#8203;15151](https://github.com/fastapi/fastapi/pull/15151) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🔨 Update translation general prompt to enforce link style in translation matches the original link style. PR [#&#8203;15148](https://github.com/fastapi/fastapi/pull/15148) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Re-enable translation workflow run by cron in CI (twice a month). PR [#&#8203;15145](https://github.com/fastapi/fastapi/pull/15145) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Add `ty` to precommit. PR [#&#8203;15091](https://github.com/fastapi/fastapi/pull/15091) by [@&#8203;svlandeg](https://github.com/svlandeg). - ⬆ Bump dorny/paths-filter from 3 to 4. PR [#&#8203;15106](https://github.com/fastapi/fastapi/pull/15106) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump cairosvg from 2.8.2 to 2.9.0. PR [#&#8203;15108](https://github.com/fastapi/fastapi/pull/15108) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pyjwt from 2.11.0 to 2.12.0. PR [#&#8203;15110](https://github.com/fastapi/fastapi/pull/15110) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump black from 26.1.0 to 26.3.1. PR [#&#8203;15100](https://github.com/fastapi/fastapi/pull/15100) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔨 Update script to autofix permalinks to account for headers with Markdown links. PR [#&#8203;15062](https://github.com/fastapi/fastapi/pull/15062) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📌 Pin Click for MkDocs live reload. PR [#&#8203;15057](https://github.com/fastapi/fastapi/pull/15057) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump werkzeug from 3.1.5 to 3.1.6. PR [#&#8203;14948](https://github.com/fastapi/fastapi/pull/14948) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pydantic-ai from 1.62.0 to 1.63.0. PR [#&#8203;15035](https://github.com/fastapi/fastapi/pull/15035) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pytest-codspeed from 4.2.0 to 4.3.0. PR [#&#8203;15034](https://github.com/fastapi/fastapi/pull/15034) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump strawberry-graphql from 0.291.2 to 0.307.1. PR [#&#8203;15033](https://github.com/fastapi/fastapi/pull/15033) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump typer from 0.21.1 to 0.24.1. PR [#&#8203;15032](https://github.com/fastapi/fastapi/pull/15032) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/download-artifact from 7 to 8. PR [#&#8203;15020](https://github.com/fastapi/fastapi/pull/15020) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/upload-artifact from 6 to 7. PR [#&#8203;15019](https://github.com/fastapi/fastapi/pull/15019) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.135.1`](https://github.com/fastapi/fastapi/releases/tag/0.135.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.135.0...0.135.1) ##### Fixes - 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR [#&#8203;15038](https://github.com/fastapi/fastapi/pull/15038) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - ✏️ Fix typo in `docs/en/docs/_llm-test.md`. PR [#&#8203;15007](https://github.com/fastapi/fastapi/pull/15007) by [@&#8203;adityagiri3600](https://github.com/adityagiri3600). - 📝 Update Skill, optimize context, trim and refactor into references. PR [#&#8203;15031](https://github.com/fastapi/fastapi/pull/15031) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 👥 Update FastAPI People - Experts. PR [#&#8203;15037](https://github.com/fastapi/fastapi/pull/15037) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;15029](https://github.com/fastapi/fastapi/pull/15029) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;15036](https://github.com/fastapi/fastapi/pull/15036) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.135.0`](https://github.com/fastapi/fastapi/releases/tag/0.135.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.134.0...0.135.0) ##### Features - ✨ Add support for Server Sent Events. PR [#&#8203;15030](https://github.com/fastapi/fastapi/pull/15030) by [@&#8203;tiangolo](https://github.com/tiangolo). - New docs: [Server-Sent Events (SSE)](https://fastapi.tiangolo.com/tutorial/server-sent-events/). ### [`v0.134.0`](https://github.com/fastapi/fastapi/releases/tag/0.134.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.133.1...0.134.0) ##### Features - ✨ Add support for streaming JSON Lines and binary data with `yield`. PR [#&#8203;15022](https://github.com/fastapi/fastapi/pull/15022) by [@&#8203;tiangolo](https://github.com/tiangolo). - This also upgrades Starlette from `>=0.40.0` to `>=0.46.0`, as it's needed to properly unrwap and re-raise exceptions from exception groups. - New docs: [Stream JSON Lines](https://fastapi.tiangolo.com/tutorial/stream-json-lines/). - And new docs: [Stream Data](https://fastapi.tiangolo.com/advanced/stream-data/). ##### Docs - 📝 Update Library Agent Skill with streaming responses. PR [#&#8203;15024](https://github.com/fastapi/fastapi/pull/15024) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for responses and new stream with `yield`. PR [#&#8203;15023](https://github.com/fastapi/fastapi/pull/15023) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Add `await` in `StreamingResponse` code example to allow cancellation. PR [#&#8203;14681](https://github.com/fastapi/fastapi/pull/14681) by [@&#8203;casperdcl](https://github.com/casperdcl). - 📝 Rename `docs_src/websockets` to `docs_src/websockets_` to avoid import errors. PR [#&#8203;14979](https://github.com/fastapi/fastapi/pull/14979) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - 🔨 Run tests with `pytest-xdist` and `pytest-cov`. PR [#&#8203;14992](https://github.com/fastapi/fastapi/pull/14992) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.133.1`](https://github.com/fastapi/fastapi/releases/tag/0.133.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.133.0...0.133.1) ##### Features - 🔧 Add FastAPI Agent Skill. PR [#&#8203;14982](https://github.com/fastapi/fastapi/pull/14982) by [@&#8203;tiangolo](https://github.com/tiangolo). - Read more about it in [Library Agent Skills](https://tiangolo.com/ideas/library-agent-skills/). ##### Internal - ✅ Fix all tests are skipped on Windows. PR [#&#8203;14994](https://github.com/fastapi/fastapi/pull/14994) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.133.0`](https://github.com/fastapi/fastapi/releases/tag/0.133.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.132.1...0.133.0) ##### Upgrades - ⬆️ Add support for Starlette 1.0.0+. PR [#&#8203;14987](https://github.com/fastapi/fastapi/pull/14987) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.132.1`](https://github.com/fastapi/fastapi/releases/tag/0.132.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.132.0...0.132.1) ##### Refactors - ♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data. PR [#&#8203;14986](https://github.com/fastapi/fastapi/pull/14986) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 👥 Update FastAPI People - Experts. PR [#&#8203;14972](https://github.com/fastapi/fastapi/pull/14972) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Allow skipping `benchmark` job in `test` workflow. PR [#&#8203;14974](https://github.com/fastapi/fastapi/pull/14974) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.132.0`](https://github.com/fastapi/fastapi/releases/tag/0.132.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.131.0...0.132.0) ##### Breaking Changes - 🔒️ Add `strict_content_type` checking for JSON requests. PR [#&#8203;14978](https://github.com/fastapi/fastapi/pull/14978) by [@&#8203;tiangolo](https://github.com/tiangolo). - Now FastAPI checks, by default, that JSON requests have a `Content-Type` header with a valid JSON value, like `application/json`, and rejects requests that don't. - If the clients for your app don't send a valid `Content-Type` header you can disable this with `strict_content_type=False`. - Check the new docs: [Strict Content-Type Checking](https://fastapi.tiangolo.com/advanced/strict-content-type/). ##### Internal - ⬆ Bump flask from 3.1.2 to 3.1.3. PR [#&#8203;14949](https://github.com/fastapi/fastapi/pull/14949) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Update all dependencies to use `griffelib` instead of `griffe`. PR [#&#8203;14973](https://github.com/fastapi/fastapi/pull/14973) by [@&#8203;svlandeg](https://github.com/svlandeg). - 🔨 Fix `FastAPI People` workflow. PR [#&#8203;14951](https://github.com/fastapi/fastapi/pull/14951) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Do not run codspeed with coverage as it's not tracked. PR [#&#8203;14966](https://github.com/fastapi/fastapi/pull/14966) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Do not include benchmark tests in coverage to speed up coverage processing. PR [#&#8203;14965](https://github.com/fastapi/fastapi/pull/14965) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.131.0`](https://github.com/fastapi/fastapi/releases/tag/0.131.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.130.0...0.131.0) ##### Breaking Changes - 🗑️ Deprecate `ORJSONResponse` and `UJSONResponse`. PR [#&#8203;14964](https://github.com/fastapi/fastapi/pull/14964) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.130.0`](https://github.com/fastapi/fastapi/releases/tag/0.130.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.129.2...0.130.0) ##### Features - ✨ Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model. PR [#&#8203;14962](https://github.com/fastapi/fastapi/pull/14962) by [@&#8203;tiangolo](https://github.com/tiangolo). - This results in 2x (or more) performance increase for JSON responses. - New docs: [Custom Response - JSON Performance](https://fastapi.tiangolo.com/advanced/custom-response/#json-performance). ### [`v0.129.2`](https://github.com/fastapi/fastapi/releases/tag/0.129.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.129.1...0.129.2) ##### Internal - ⬆️ Upgrade pytest. PR [#&#8203;14959](https://github.com/fastapi/fastapi/pull/14959) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Fix CI, do not attempt to publish `fastapi-slim`. PR [#&#8203;14958](https://github.com/fastapi/fastapi/pull/14958) by [@&#8203;tiangolo](https://github.com/tiangolo). - ➖ Drop support for `fastapi-slim`, no more versions will be released, use only `"fastapi[standard]"` or `fastapi`. PR [#&#8203;14957](https://github.com/fastapi/fastapi/pull/14957) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update pyproject.toml, remove unneeded lines. PR [#&#8203;14956](https://github.com/fastapi/fastapi/pull/14956) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.129.1`](https://github.com/fastapi/fastapi/releases/tag/0.129.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.129.0...0.129.1) ##### Fixes - ♻️ Fix JSON Schema for bytes, use `"contentMediaType": "application/octet-stream"` instead of `"format": "binary"`. PR [#&#8203;14953](https://github.com/fastapi/fastapi/pull/14953) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 🔨 Add Kapa.ai widget (AI chatbot). PR [#&#8203;14938](https://github.com/fastapi/fastapi/pull/14938) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove Python 3.9 specific files, no longer needed after updating translations. PR [#&#8203;14931](https://github.com/fastapi/fastapi/pull/14931) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for JWT to prevent timing attacks. PR [#&#8203;14908](https://github.com/fastapi/fastapi/pull/14908) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - ✏️ Fix several typos in ru translations. PR [#&#8203;14934](https://github.com/fastapi/fastapi/pull/14934) by [@&#8203;argoarsiks](https://github.com/argoarsiks). - 🌐 Update translations for ko (update-all and add-missing). PR [#&#8203;14923](https://github.com/fastapi/fastapi/pull/14923) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for uk (add-missing). PR [#&#8203;14922](https://github.com/fastapi/fastapi/pull/14922) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for zh-hant (update-all and add-missing). PR [#&#8203;14921](https://github.com/fastapi/fastapi/pull/14921) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for fr (update-all and add-missing). PR [#&#8203;14920](https://github.com/fastapi/fastapi/pull/14920) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for de (update-all) . PR [#&#8203;14910](https://github.com/fastapi/fastapi/pull/14910) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for ja (update-all). PR [#&#8203;14916](https://github.com/fastapi/fastapi/pull/14916) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for pt (update-all). PR [#&#8203;14912](https://github.com/fastapi/fastapi/pull/14912) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for es (update-all and add-missing). PR [#&#8203;14911](https://github.com/fastapi/fastapi/pull/14911) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for zh (update-all). PR [#&#8203;14917](https://github.com/fastapi/fastapi/pull/14917) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for uk (update-all). PR [#&#8203;14914](https://github.com/fastapi/fastapi/pull/14914) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for tr (update-all). PR [#&#8203;14913](https://github.com/fastapi/fastapi/pull/14913) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for ru (update-outdated). PR [#&#8203;14909](https://github.com/fastapi/fastapi/pull/14909) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - 👷 Always run tests on push to `master` branch and when run by scheduler. PR [#&#8203;14940](https://github.com/fastapi/fastapi/pull/14940) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🎨 Upgrade typing syntax for Python 3.10. PR [#&#8203;14932](https://github.com/fastapi/fastapi/pull/14932) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump cryptography from 46.0.4 to 46.0.5. PR [#&#8203;14892](https://github.com/fastapi/fastapi/pull/14892) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pillow from 12.1.0 to 12.1.1. PR [#&#8203;14899](https://github.com/fastapi/fastapi/pull/14899) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.129.0`](https://github.com/fastapi/fastapi/releases/tag/0.129.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.8...0.129.0) ##### Breaking Changes - ➖ Drop support for Python 3.9. PR [#&#8203;14897](https://github.com/fastapi/fastapi/pull/14897) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Refactors - 🎨 Update internal types for Python 3.10. PR [#&#8203;14898](https://github.com/fastapi/fastapi/pull/14898) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Update highlights in webhooks docs. PR [#&#8203;14905](https://github.com/fastapi/fastapi/pull/14905) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update source examples and docs from Python 3.9 to 3.10. PR [#&#8203;14900](https://github.com/fastapi/fastapi/pull/14900) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔨 Update docs.py scripts to migrate Python 3.9 to Python 3.10. PR [#&#8203;14906](https://github.com/fastapi/fastapi/pull/14906) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.8`](https://github.com/fastapi/fastapi/releases/tag/0.128.8) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.7...0.128.8) ##### Docs - 📝 Fix grammar in `docs/en/docs/tutorial/first-steps.md`. PR [#&#8203;14708](https://github.com/fastapi/fastapi/pull/14708) by [@&#8203;SanjanaS10](https://github.com/SanjanaS10). ##### Internal - 🔨 Tweak PDM hook script. PR [#&#8203;14895](https://github.com/fastapi/fastapi/pull/14895) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Update build setup for `fastapi-slim`, deprecate it, and make it only depend on `fastapi`. PR [#&#8203;14894](https://github.com/fastapi/fastapi/pull/14894) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.7`](https://github.com/fastapi/fastapi/releases/tag/0.128.7) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.6...0.128.7) ##### Features - ✨ Show a clear error on attempt to include router into itself. PR [#&#8203;14258](https://github.com/fastapi/fastapi/pull/14258) by [@&#8203;JavierSanchezCastro](https://github.com/JavierSanchezCastro). - ✨ Replace `dict` by `Mapping` on `HTTPException.headers`. PR [#&#8203;12997](https://github.com/fastapi/fastapi/pull/12997) by [@&#8203;rijenkii](https://github.com/rijenkii). ##### Refactors - ♻️ Simplify reading files in memory, do it sequentially instead of (fake) parallel. PR [#&#8203;14884](https://github.com/fastapi/fastapi/pull/14884) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Use `dfn` tag for definitions instead of `abbr` in docs. PR [#&#8203;14744](https://github.com/fastapi/fastapi/pull/14744) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - ✅ Tweak comment in test to reference PR. PR [#&#8203;14885](https://github.com/fastapi/fastapi/pull/14885) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update LLM-prompt for `abbr` and `dfn` tags. PR [#&#8203;14747](https://github.com/fastapi/fastapi/pull/14747) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ✅ Test order for the submitted byte Files. PR [#&#8203;14828](https://github.com/fastapi/fastapi/pull/14828) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🔧 Configure `test` workflow to run tests with `inline-snapshot=review`. PR [#&#8203;14876](https://github.com/fastapi/fastapi/pull/14876) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.128.6`](https://github.com/fastapi/fastapi/releases/tag/0.128.6) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.5...0.128.6) ##### Fixes - 🐛 Fix `on_startup` and `on_shutdown` parameters of `APIRouter`. PR [#&#8203;14873](https://github.com/fastapi/fastapi/pull/14873) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Translations - 🌐 Update translations for zh (update-outdated). PR [#&#8203;14843](https://github.com/fastapi/fastapi/pull/14843) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ✅ Fix parameterized tests with snapshots. PR [#&#8203;14875](https://github.com/fastapi/fastapi/pull/14875) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.128.5`](https://github.com/fastapi/fastapi/releases/tag/0.128.5) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.4...0.128.5) ##### Refactors - ♻️ Refactor and simplify Pydantic v2 (and v1) compatibility internal utils. PR [#&#8203;14862](https://github.com/fastapi/fastapi/pull/14862) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ✅ Add inline snapshot tests for OpenAPI before changes from Pydantic v2. PR [#&#8203;14864](https://github.com/fastapi/fastapi/pull/14864) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.4`](https://github.com/fastapi/fastapi/releases/tag/0.128.4) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.3...0.128.4) ##### Refactors - ♻️ Refactor internals, simplify Pydantic v2/v1 utils, `create_model_field`, better types for `lenient_issubclass`. PR [#&#8203;14860](https://github.com/fastapi/fastapi/pull/14860) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Simplify internals, remove Pydantic v1 only logic, no longer needed. PR [#&#8203;14857](https://github.com/fastapi/fastapi/pull/14857) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Refactor internals, cleanup unneeded Pydantic v1 specific logic. PR [#&#8203;14856](https://github.com/fastapi/fastapi/pull/14856) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Update translations for fr (outdated pages). PR [#&#8203;14839](https://github.com/fastapi/fastapi/pull/14839) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for tr (outdated and missing). PR [#&#8203;14838](https://github.com/fastapi/fastapi/pull/14838) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - ⬆️ Upgrade development dependencies. PR [#&#8203;14854](https://github.com/fastapi/fastapi/pull/14854) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.3`](https://github.com/fastapi/fastapi/releases/tag/0.128.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.2...0.128.3) ##### Refactors - ♻️ Re-implement `on_event` in FastAPI for compatibility with the next Starlette, while keeping backwards compatibility. PR [#&#8203;14851](https://github.com/fastapi/fastapi/pull/14851) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Upgrades - ⬆️ Upgrade Starlette supported version range to `starlette>=0.40.0,<1.0.0`. PR [#&#8203;14853](https://github.com/fastapi/fastapi/pull/14853) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Update translations for ru (update-outdated). PR [#&#8203;14834](https://github.com/fastapi/fastapi/pull/14834) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 👷 Run tests with Starlette from git. PR [#&#8203;14849](https://github.com/fastapi/fastapi/pull/14849) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Run tests with lower bound uv sync, upgrade `fastapi[all]` minimum dependencies: `ujson >=5.8.0`, `orjson >=3.9.3`. PR [#&#8203;14846](https://github.com/fastapi/fastapi/pull/14846) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.2`](https://github.com/fastapi/fastapi/releases/tag/0.128.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.1...0.128.2) ##### Features - ✨ Add support for PEP695 `TypeAliasType`. PR [#&#8203;13920](https://github.com/fastapi/fastapi/pull/13920) by [@&#8203;cstruct](https://github.com/cstruct). - ✨ Allow `Response` type hint as dependency annotation. PR [#&#8203;14794](https://github.com/fastapi/fastapi/pull/14794) by [@&#8203;jonathan-fulton](https://github.com/jonathan-fulton). ##### Fixes - 🐛 Fix using `Json[list[str]]` type (issue [#&#8203;10997](https://github.com/fastapi/fastapi/issues/10997)). PR [#&#8203;14616](https://github.com/fastapi/fastapi/pull/14616) by [@&#8203;mkanetsuna](https://github.com/mkanetsuna). ##### Docs - 📝 Update docs for translations. PR [#&#8203;14830](https://github.com/fastapi/fastapi/pull/14830) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Fix duplicate word in `advanced-dependencies.md`. PR [#&#8203;14815](https://github.com/fastapi/fastapi/pull/14815) by [@&#8203;Rayyan-Oumlil](https://github.com/Rayyan-Oumlil). ##### Translations - 🌐 Enable Traditional Chinese translations. PR [#&#8203;14842](https://github.com/fastapi/fastapi/pull/14842) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Enable French docs translations. PR [#&#8203;14841](https://github.com/fastapi/fastapi/pull/14841) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for fr (translate-page). PR [#&#8203;14837](https://github.com/fastapi/fastapi/pull/14837) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for de (update-outdated). PR [#&#8203;14836](https://github.com/fastapi/fastapi/pull/14836) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;14833](https://github.com/fastapi/fastapi/pull/14833) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (update-outdated). PR [#&#8203;14835](https://github.com/fastapi/fastapi/pull/14835) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;14832](https://github.com/fastapi/fastapi/pull/14832) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (update-outdated). PR [#&#8203;14831](https://github.com/fastapi/fastapi/pull/14831) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for tr (add-missing). PR [#&#8203;14790](https://github.com/fastapi/fastapi/pull/14790) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for fr (update-outdated). PR [#&#8203;14826](https://github.com/fastapi/fastapi/pull/14826) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for zh-hant (update-outdated). PR [#&#8203;14825](https://github.com/fastapi/fastapi/pull/14825) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update-outdated). PR [#&#8203;14822](https://github.com/fastapi/fastapi/pull/14822) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update docs and translations scripts, enable Turkish. PR [#&#8203;14824](https://github.com/fastapi/fastapi/pull/14824) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔨 Add max pages to translate to configs. PR [#&#8203;14840](https://github.com/fastapi/fastapi/pull/14840) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.1`](https://github.com/fastapi/fastapi/releases/tag/0.128.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.128.0...0.128.1) ##### Features - ✨ Add `viewport` meta tag to improve Swagger UI on mobile devices. PR [#&#8203;14777](https://github.com/fastapi/fastapi/pull/14777) by [@&#8203;Joab0](https://github.com/Joab0). - 🚸 Improve error message for invalid query parameter type annotations. PR [#&#8203;14479](https://github.com/fastapi/fastapi/pull/14479) by [@&#8203;retwish](https://github.com/retwish). ##### Fixes - 🐛 Update `ValidationError` schema to include `input` and `ctx`. PR [#&#8203;14791](https://github.com/fastapi/fastapi/pull/14791) by [@&#8203;jonathan-fulton](https://github.com/jonathan-fulton). - 🐛 Fix TYPE\_CHECKING annotations for Python 3.14 (PEP 649). PR [#&#8203;14789](https://github.com/fastapi/fastapi/pull/14789) by [@&#8203;mgu](https://github.com/mgu). - 🐛 Strip whitespaces from `Authorization` header credentials. PR [#&#8203;14786](https://github.com/fastapi/fastapi/pull/14786) by [@&#8203;WaveTheory1](https://github.com/WaveTheory1). - 🐛 Fix OpenAPI duplication of `anyOf` refs for app-level responses with specified `content` and `model` as `Union`. PR [#&#8203;14463](https://github.com/fastapi/fastapi/pull/14463) by [@&#8203;DJMcoder](https://github.com/DJMcoder). ##### Refactors - 🎨 Tweak types for mypy. PR [#&#8203;14816](https://github.com/fastapi/fastapi/pull/14816) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🏷️ Re-export `IncEx` type from Pydantic instead of duplicating it. PR [#&#8203;14641](https://github.com/fastapi/fastapi/pull/14641) by [@&#8203;mvanderlee](https://github.com/mvanderlee). - 💡 Update comment for Pydantic internals. PR [#&#8203;14814](https://github.com/fastapi/fastapi/pull/14814) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Update docs for contributing translations, simplify title. PR [#&#8203;14817](https://github.com/fastapi/fastapi/pull/14817) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Fix typing issue in `docs_src/app_testing/app_b` code example. PR [#&#8203;14573](https://github.com/fastapi/fastapi/pull/14573) by [@&#8203;timakaa](https://github.com/timakaa). - 📝 Fix example of license identifier in documentation. PR [#&#8203;14492](https://github.com/fastapi/fastapi/pull/14492) by [@&#8203;johnson-earls](https://github.com/johnson-earls). - 📝 Add banner to translated pages. PR [#&#8203;14809](https://github.com/fastapi/fastapi/pull/14809) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Add links to related sections of docs to docstrings. PR [#&#8203;14776](https://github.com/fastapi/fastapi/pull/14776) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Update embedded code examples to Python 3.10 syntax. PR [#&#8203;14758](https://github.com/fastapi/fastapi/pull/14758) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Fix dependency installation command in `docs/en/docs/contributing.md`. PR [#&#8203;14757](https://github.com/fastapi/fastapi/pull/14757) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Use return type annotation instead of `response_model` when possible. PR [#&#8203;14753](https://github.com/fastapi/fastapi/pull/14753) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Use `WSGIMiddleware` from `a2wsgi` instead of deprecated `fastapi.middleware.wsgi.WSGIMiddleware`. PR [#&#8203;14756](https://github.com/fastapi/fastapi/pull/14756) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Fix minor typos in release notes. PR [#&#8203;14780](https://github.com/fastapi/fastapi/pull/14780) by [@&#8203;whyvineet](https://github.com/whyvineet). - 🐛 Fix copy button in custom.js. PR [#&#8203;14722](https://github.com/fastapi/fastapi/pull/14722) by [@&#8203;fcharrier](https://github.com/fcharrier). - 📝 Add contribution instructions about LLM generated code and comments and automated tools for PRs. PR [#&#8203;14706](https://github.com/fastapi/fastapi/pull/14706) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for management tasks. PR [#&#8203;14705](https://github.com/fastapi/fastapi/pull/14705) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs about managing translations. PR [#&#8203;14704](https://github.com/fastapi/fastapi/pull/14704) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for contributing with translations. PR [#&#8203;14701](https://github.com/fastapi/fastapi/pull/14701) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Specify language code for code block. PR [#&#8203;14656](https://github.com/fastapi/fastapi/pull/14656) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Translations - 🌐 Improve LLM prompt of `uk` documentation. PR [#&#8203;14795](https://github.com/fastapi/fastapi/pull/14795) by [@&#8203;roli2py](https://github.com/roli2py). - 🌐 Update translations for ja (update-outdated). PR [#&#8203;14588](https://github.com/fastapi/fastapi/pull/14588) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update outdated, found by fixer tool). PR [#&#8203;14739](https://github.com/fastapi/fastapi/pull/14739) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for tr (update-outdated). PR [#&#8203;14745](https://github.com/fastapi/fastapi/pull/14745) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update `llm-prompt.md` for Korean language. PR [#&#8203;14763](https://github.com/fastapi/fastapi/pull/14763) by [@&#8203;seuthootDev](https://github.com/seuthootDev). - 🌐 Update translations for ko (update outdated, found by fixer tool). PR [#&#8203;14738](https://github.com/fastapi/fastapi/pull/14738) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for de (update-outdated). PR [#&#8203;14690](https://github.com/fastapi/fastapi/pull/14690) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update LLM prompt for Russian translations. PR [#&#8203;14733](https://github.com/fastapi/fastapi/pull/14733) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update translations for ru (update-outdated). PR [#&#8203;14693](https://github.com/fastapi/fastapi/pull/14693) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;14724](https://github.com/fastapi/fastapi/pull/14724) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update Korean LLM prompt. PR [#&#8203;14740](https://github.com/fastapi/fastapi/pull/14740) by [@&#8203;hard-coders](https://github.com/hard-coders). - 🌐 Improve LLM prompt for Turkish translations. PR [#&#8203;14728](https://github.com/fastapi/fastapi/pull/14728) by [@&#8203;Kadermiyanyedi](https://github.com/Kadermiyanyedi). - 🌐 Update portuguese llm-prompt.md. PR [#&#8203;14702](https://github.com/fastapi/fastapi/pull/14702) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Update LLM prompt instructions file for French. PR [#&#8203;14618](https://github.com/fastapi/fastapi/pull/14618) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (add-missing). PR [#&#8203;14699](https://github.com/fastapi/fastapi/pull/14699) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for ko (update-outdated). PR [#&#8203;14589](https://github.com/fastapi/fastapi/pull/14589) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for uk (update-outdated). PR [#&#8203;14587](https://github.com/fastapi/fastapi/pull/14587) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;14686](https://github.com/fastapi/fastapi/pull/14686) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add LLM prompt file for Turkish, generated from the existing translations. PR [#&#8203;14547](https://github.com/fastapi/fastapi/pull/14547) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add LLM prompt file for Traditional Chinese, generated from the existing translations. PR [#&#8203;14550](https://github.com/fastapi/fastapi/pull/14550) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add LLM prompt file for Simplified Chinese, generated from the existing translations. PR [#&#8203;14549](https://github.com/fastapi/fastapi/pull/14549) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬇️ Downgrade LLM translations model to GPT-5 to reduce mistakes. PR [#&#8203;14823](https://github.com/fastapi/fastapi/pull/14823) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🐛 Fix translation script commit in place. PR [#&#8203;14818](https://github.com/fastapi/fastapi/pull/14818) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update translation script to retry if LLM-response doesn't pass validation with Translation Fixer tool. PR [#&#8203;14749](https://github.com/fastapi/fastapi/pull/14749) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Run tests only on relevant code changes (not on docs). PR [#&#8203;14813](https://github.com/fastapi/fastapi/pull/14813) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Run mypy by pre-commit. PR [#&#8203;14806](https://github.com/fastapi/fastapi/pull/14806) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ Bump ruff from 0.14.3 to 0.14.14. PR [#&#8203;14798](https://github.com/fastapi/fastapi/pull/14798) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pyasn1 from 0.6.1 to 0.6.2. PR [#&#8203;14804](https://github.com/fastapi/fastapi/pull/14804) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump sqlmodel from 0.0.27 to 0.0.31. PR [#&#8203;14802](https://github.com/fastapi/fastapi/pull/14802) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump mkdocs-macros-plugin from 1.4.1 to 1.5.0. PR [#&#8203;14801](https://github.com/fastapi/fastapi/pull/14801) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump gitpython from 3.1.45 to 3.1.46. PR [#&#8203;14800](https://github.com/fastapi/fastapi/pull/14800) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump typer from 0.16.0 to 0.21.1. PR [#&#8203;14799](https://github.com/fastapi/fastapi/pull/14799) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;14803](https://github.com/fastapi/fastapi/pull/14803) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;14796](https://github.com/fastapi/fastapi/pull/14796) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Ensure that an edit to `uv.lock` gets the `internal` label. PR [#&#8203;14759](https://github.com/fastapi/fastapi/pull/14759) by [@&#8203;svlandeg](https://github.com/svlandeg). - 🔧 Update sponsors: remove Requestly. PR [#&#8203;14735](https://github.com/fastapi/fastapi/pull/14735) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors, LambdaTest changes to TestMu AI. PR [#&#8203;14734](https://github.com/fastapi/fastapi/pull/14734) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump actions/cache from 4 to 5. PR [#&#8203;14511](https://github.com/fastapi/fastapi/pull/14511) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/upload-artifact from 5 to 6. PR [#&#8203;14525](https://github.com/fastapi/fastapi/pull/14525) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/download-artifact from 6 to 7. PR [#&#8203;14526](https://github.com/fastapi/fastapi/pull/14526) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👷 Tweak CI input names. PR [#&#8203;14688](https://github.com/fastapi/fastapi/pull/14688) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Refactor translation script to allow committing in place. PR [#&#8203;14687](https://github.com/fastapi/fastapi/pull/14687) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🐛 Fix translation script path. PR [#&#8203;14685](https://github.com/fastapi/fastapi/pull/14685) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✅ Enable tests in CI for scripts. PR [#&#8203;14684](https://github.com/fastapi/fastapi/pull/14684) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add pre-commit local script to fix language translations. PR [#&#8203;14683](https://github.com/fastapi/fastapi/pull/14683) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆️ Migrate to uv. PR [#&#8203;14676](https://github.com/fastapi/fastapi/pull/14676) by [@&#8203;DoctorJohn](https://github.com/DoctorJohn). - 🔨 Add LLM translations tool fixer. PR [#&#8203;14652](https://github.com/fastapi/fastapi/pull/14652) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;14626](https://github.com/fastapi/fastapi/pull/14626) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;14630](https://github.com/fastapi/fastapi/pull/14630) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;14625](https://github.com/fastapi/fastapi/pull/14625) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translation prompts. PR [#&#8203;14619](https://github.com/fastapi/fastapi/pull/14619) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update LLM translation script to guide reviewers to change the prompt. PR [#&#8203;14614](https://github.com/fastapi/fastapi/pull/14614) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Do not run translations on cron while finishing updating existing languages. PR [#&#8203;14613](https://github.com/fastapi/fastapi/pull/14613) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove test variants for Pydantic v1 in test\_request\_params. PR [#&#8203;14612](https://github.com/fastapi/fastapi/pull/14612) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove Pydantic v1 specific test variants. PR [#&#8203;14611](https://github.com/fastapi/fastapi/pull/14611) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.128.0`](https://github.com/fastapi/fastapi/releases/tag/0.128.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.127.1...0.128.0) ##### Breaking Changes - ➖ Drop support for `pydantic.v1`. PR [#&#8203;14609](https://github.com/fastapi/fastapi/pull/14609) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ✅ Run performance tests only on Pydantic v2. PR [#&#8203;14608](https://github.com/fastapi/fastapi/pull/14608) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.127.1`](https://github.com/fastapi/fastapi/releases/tag/0.127.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.127.0...0.127.1) ##### Refactors - 🔊 Add a custom `FastAPIDeprecationWarning`. PR [#&#8203;14605](https://github.com/fastapi/fastapi/pull/14605) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Add documentary to website. PR [#&#8203;14600](https://github.com/fastapi/fastapi/pull/14600) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Update translations for de (update-outdated). PR [#&#8203;14602](https://github.com/fastapi/fastapi/pull/14602) by [@&#8203;nilslindemann](https://github.com/nilslindemann). - 🌐 Update translations for de (update-outdated). PR [#&#8203;14581](https://github.com/fastapi/fastapi/pull/14581) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ##### Internal - 🔧 Update pre-commit to use local Ruff instead of hook. PR [#&#8203;14604](https://github.com/fastapi/fastapi/pull/14604) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✅ Add missing tests for code examples. PR [#&#8203;14569](https://github.com/fastapi/fastapi/pull/14569) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Remove `lint` job from `test` CI workflow. PR [#&#8203;14593](https://github.com/fastapi/fastapi/pull/14593) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Update secrets check. PR [#&#8203;14592](https://github.com/fastapi/fastapi/pull/14592) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR [#&#8203;14586](https://github.com/fastapi/fastapi/pull/14586) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update scripts and pre-commit to autofix files. PR [#&#8203;14585](https://github.com/fastapi/fastapi/pull/14585) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.127.0`](https://github.com/fastapi/fastapi/releases/tag/0.127.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.126.0...0.127.0) ##### Breaking Changes - 🔊 Add deprecation warnings when using `pydantic.v1`. PR [#&#8203;14583](https://github.com/fastapi/fastapi/pull/14583) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🔧 Add LLM prompt file for Korean, generated from the existing translations. PR [#&#8203;14546](https://github.com/fastapi/fastapi/pull/14546) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR [#&#8203;14545](https://github.com/fastapi/fastapi/pull/14545) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR [#&#8203;14579](https://github.com/fastapi/fastapi/pull/14579) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.126.0`](https://github.com/fastapi/fastapi/releases/tag/0.126.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.125.0...0.126.0) ##### Upgrades - ➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's `pydantic.v1`. PR [#&#8203;14575](https://github.com/fastapi/fastapi/pull/14575) by [@&#8203;tiangolo](https://github.com/tiangolo). - The minimum version of Pydantic installed is now `pydantic >=2.7.0`. - The `standard` dependencies now include `pydantic-settings >=2.0.0` and `pydantic-extra-types >=2.0.0`. ##### Docs - 📝 Fix duplicated variable in `docs_src/python_types/tutorial005_py39.py`. PR [#&#8203;14565](https://github.com/fastapi/fastapi/pull/14565) by [@&#8203;paras-verma7454](https://github.com/paras-verma7454). ##### Translations - 🔧 Add LLM prompt file for Ukrainian, generated from the existing translations. PR [#&#8203;14548](https://github.com/fastapi/fastapi/pull/14548) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔧 Tweak pre-commit to allow committing release-notes. PR [#&#8203;14577](https://github.com/fastapi/fastapi/pull/14577) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆️ Use prek as a pre-commit alternative. PR [#&#8203;14572](https://github.com/fastapi/fastapi/pull/14572) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Add performance tests with CodSpeed. PR [#&#8203;14558](https://github.com/fastapi/fastapi/pull/14558) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.125.0`](https://github.com/fastapi/fastapi/releases/tag/0.125.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.124.4...0.125.0) ##### Breaking Changes - 🔧 Drop support for Python 3.8. PR [#&#8203;14563](https://github.com/fastapi/fastapi/pull/14563) by [@&#8203;tiangolo](https://github.com/tiangolo). - This would actually not be a *breaking* change as no code would really break. Any Python 3.8 installer would just refuse to install the latest version of FastAPI and would only install 0.124.4. Only marking it as a "breaking change" to make it visible. ##### Refactors - ♻️ Upgrade internal syntax to Python 3.9+ 🎉. PR [#&#8203;14564](https://github.com/fastapi/fastapi/pull/14564) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - ⚰️ Remove Python 3.8 from CI and remove Python 3.8 examples from source docs. PR [#&#8203;14559](https://github.com/fastapi/fastapi/pull/14559) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov) and [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Update translations for pt (add-missing). PR [#&#8203;14539](https://github.com/fastapi/fastapi/pull/14539) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Add LLM prompt file for French, generated from the existing French docs. PR [#&#8203;14544](https://github.com/fastapi/fastapi/pull/14544) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Sync Portuguese docs (pages found with script). PR [#&#8203;14554](https://github.com/fastapi/fastapi/pull/14554) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Sync Spanish docs (outdated pages found with script). PR [#&#8203;14553](https://github.com/fastapi/fastapi/pull/14553) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Sync German docs. PR [#&#8203;14519](https://github.com/fastapi/fastapi/pull/14519) by [@&#8203;nilslindemann](https://github.com/nilslindemann). - 🔥 Remove inactive/scarce translations to Vietnamese. PR [#&#8203;14543](https://github.com/fastapi/fastapi/pull/14543) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove inactive/scarce translations to Persian. PR [#&#8203;14542](https://github.com/fastapi/fastapi/pull/14542) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove translation to emoji to simplify the new setup with LLM autotranslations. PR [#&#8203;14541](https://github.com/fastapi/fastapi/pull/14541) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for pt (update-outdated). PR [#&#8203;14537](https://github.com/fastapi/fastapi/pull/14537) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (update-outdated). PR [#&#8203;14532](https://github.com/fastapi/fastapi/pull/14532) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update translations for es (add-missing). PR [#&#8203;14533](https://github.com/fastapi/fastapi/pull/14533) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Remove translations for removed docs. PR [#&#8203;14516](https://github.com/fastapi/fastapi/pull/14516) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬆ Bump `markdown-include-variants` from 0.0.7 to 0.0.8. PR [#&#8203;14556](https://github.com/fastapi/fastapi/pull/14556) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🔧 Temporarily disable translations still in progress, being migrated to the new LLM setup. PR [#&#8203;14555](https://github.com/fastapi/fastapi/pull/14555) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🔧 Update test workflow config, remove commented code. PR [#&#8203;14540](https://github.com/fastapi/fastapi/pull/14540) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Configure coverage, error on main tests, don't wait for Smokeshow. PR [#&#8203;14536](https://github.com/fastapi/fastapi/pull/14536) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Run Smokeshow always, even on test failures. PR [#&#8203;14538](https://github.com/fastapi/fastapi/pull/14538) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Make Pydantic versions customizable in CI. PR [#&#8203;14535](https://github.com/fastapi/fastapi/pull/14535) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Fix checkout GitHub Action fetch-depth for LLM translations, enable cron monthly. PR [#&#8203;14531](https://github.com/fastapi/fastapi/pull/14531) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Fix Typer command for CI LLM translations. PR [#&#8203;14530](https://github.com/fastapi/fastapi/pull/14530) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Update LLM translation CI, add language matrix and extra commands, prepare for scheduled run. PR [#&#8203;14529](https://github.com/fastapi/fastapi/pull/14529) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Update github-actions user for GitHub Actions workflows. PR [#&#8203;14528](https://github.com/fastapi/fastapi/pull/14528) by [@&#8203;tiangolo](https://github.com/tiangolo). - ➕ Add requirements for translations. PR [#&#8203;14515](https://github.com/fastapi/fastapi/pull/14515) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.124.4`](https://github.com/fastapi/fastapi/releases/tag/0.124.4) [Compare Source](https://github.com/fastapi/fastapi/compare/0.124.3...0.124.4) ##### Fixes - 🐛 Fix parameter aliases. PR [#&#8203;14371](https://github.com/fastapi/fastapi/pull/14371) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.124.3`](https://github.com/fastapi/fastapi/releases/tag/0.124.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.124.2...0.124.3) ##### Fixes - 🐛 Fix support for tagged union with discriminator inside of `Annotated` with `Body()`. PR [#&#8203;14512](https://github.com/fastapi/fastapi/pull/14512) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Refactors - ✅ Add set of tests for request parameters and alias. PR [#&#8203;14358](https://github.com/fastapi/fastapi/pull/14358) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Docs - 📝 Tweak links format. PR [#&#8203;14505](https://github.com/fastapi/fastapi/pull/14505) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs about re-raising validation errors, do not include string as is to not leak information. PR [#&#8203;14487](https://github.com/fastapi/fastapi/pull/14487) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔥 Remove external links section. PR [#&#8203;14486](https://github.com/fastapi/fastapi/pull/14486) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Sync Russian docs. PR [#&#8203;14509](https://github.com/fastapi/fastapi/pull/14509) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Sync German docs. PR [#&#8203;14488](https://github.com/fastapi/fastapi/pull/14488) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ##### Internal - 👷 Tweak coverage to not pass Smokeshow max file size limit. PR [#&#8203;14507](https://github.com/fastapi/fastapi/pull/14507) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✅ Expand test matrix to include Windows and MacOS. PR [#&#8203;14171](https://github.com/fastapi/fastapi/pull/14171) by [@&#8203;svlandeg](https://github.com/svlandeg). ### [`v0.124.2`](https://github.com/fastapi/fastapi/releases/tag/0.124.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.124.1...0.124.2) ##### Fixes - 🐛 Fix support for `if TYPE_CHECKING`, non-evaluated stringified annotations. PR [#&#8203;14485](https://github.com/fastapi/fastapi/pull/14485) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.124.1`](https://github.com/fastapi/fastapi/releases/tag/0.124.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.124.0...0.124.1) ##### Fixes - 🐛 Fix handling arbitrary types when using `arbitrary_types_allowed=True`. PR [#&#8203;14482](https://github.com/fastapi/fastapi/pull/14482) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Add variants for code examples in "Advanced User Guide". PR [#&#8203;14413](https://github.com/fastapi/fastapi/pull/14413) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Update tech stack in project generation docs. PR [#&#8203;14472](https://github.com/fastapi/fastapi/pull/14472) by [@&#8203;alejsdev](https://github.com/alejsdev). ##### Internal - ✅ Add test for Pydantic v2, dataclasses, UUID, and `__annotations__`. PR [#&#8203;14477](https://github.com/fastapi/fastapi/pull/14477) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.124.0`](https://github.com/fastapi/fastapi/releases/tag/0.124.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.10...0.124.0) ##### Features - 🚸 Improve tracebacks by adding endpoint metadata. PR [#&#8203;14306](https://github.com/fastapi/fastapi/pull/14306) by [@&#8203;savannahostrowski](https://github.com/savannahostrowski). ##### Internal - ✏️ Fix typo in `scripts/mkdocs_hooks.py`. PR [#&#8203;14457](https://github.com/fastapi/fastapi/pull/14457) by [@&#8203;yujiteshima](https://github.com/yujiteshima). ### [`v0.123.10`](https://github.com/fastapi/fastapi/releases/tag/0.123.10) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.9...0.123.10) ##### Fixes - 🐛 Fix using class (not instance) dependency that has `__call__` method. PR [#&#8203;14458](https://github.com/fastapi/fastapi/pull/14458) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🐛 Fix `separate_input_output_schemas=False` with `computed_field`. PR [#&#8203;14453](https://github.com/fastapi/fastapi/pull/14453) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.123.9`](https://github.com/fastapi/fastapi/releases/tag/0.123.9) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.8...0.123.9) ##### Fixes - 🐛 Fix OAuth2 scopes in OpenAPI in extra corner cases, parent dependency with scopes, sub-dependency security scheme without scopes. PR [#&#8203;14459](https://github.com/fastapi/fastapi/pull/14459) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.123.8`](https://github.com/fastapi/fastapi/releases/tag/0.123.8) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.7...0.123.8) ##### Fixes - 🐛 Fix OpenAPI security scheme OAuth2 scopes declaration, deduplicate security schemes with different scopes. PR [#&#8203;14455](https://github.com/fastapi/fastapi/pull/14455) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.123.7`](https://github.com/fastapi/fastapi/releases/tag/0.123.7) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.6...0.123.7) ##### Fixes - 🐛 Fix evaluating stringified annotations in Python 3.10. PR [#&#8203;11355](https://github.com/fastapi/fastapi/pull/11355) by [@&#8203;chaen](https://github.com/chaen). ### [`v0.123.6`](https://github.com/fastapi/fastapi/releases/tag/0.123.6) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.5...0.123.6) ##### Fixes - 🐛 Fix support for functools wraps and partial combined, for async and regular functions and classes in path operations and dependencies. PR [#&#8203;14448](https://github.com/fastapi/fastapi/pull/14448) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.123.5`](https://github.com/fastapi/fastapi/releases/tag/0.123.5) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.4...0.123.5) ##### Features - ✨ Allow using dependables with `functools.partial()`. PR [#&#8203;9753](https://github.com/fastapi/fastapi/pull/9753) by [@&#8203;lieryan](https://github.com/lieryan). - ✨ Add support for wrapped functions (e.g. `@functools.wraps()`) used with forward references. PR [#&#8203;5077](https://github.com/fastapi/fastapi/pull/5077) by [@&#8203;lucaswiman](https://github.com/lucaswiman). - ✨ Handle wrapped dependencies. PR [#&#8203;9555](https://github.com/fastapi/fastapi/pull/9555) by [@&#8203;phy1729](https://github.com/phy1729). ##### Fixes - 🐛 Fix optional sequence handling with new union syntax from Python 3.10. PR [#&#8203;14430](https://github.com/fastapi/fastapi/pull/14430) by [@&#8203;Viicos](https://github.com/Viicos). ##### Refactors - 🔥 Remove dangling extra condiitonal no longer needed. PR [#&#8203;14435](https://github.com/fastapi/fastapi/pull/14435) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Refactor internals, update `is_coroutine` check to reuse internal supported variants (unwrap, check class). PR [#&#8203;14434](https://github.com/fastapi/fastapi/pull/14434) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Sync German docs. PR [#&#8203;14367](https://github.com/fastapi/fastapi/pull/14367) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ### [`v0.123.4`](https://github.com/fastapi/fastapi/releases/tag/0.123.4) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.3...0.123.4) ##### Fixes - 🐛 Fix OpenAPI schema support for computed fields when using `separate_input_output_schemas=False`. PR [#&#8203;13207](https://github.com/fastapi/fastapi/pull/13207) by [@&#8203;vgrafe](https://github.com/vgrafe). ##### Docs - 📝 Fix docstring of `servers` parameter. PR [#&#8203;14405](https://github.com/fastapi/fastapi/pull/14405) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.123.3`](https://github.com/fastapi/fastapi/releases/tag/0.123.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.2...0.123.3) ##### Fixes - 🐛 Fix Query\Header\Cookie parameter model alias. PR [#&#8203;14360](https://github.com/fastapi/fastapi/pull/14360) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🐛 Fix optional sequence handling in `serialize sequence value` with Pydantic V2. PR [#&#8203;14297](https://github.com/fastapi/fastapi/pull/14297) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.123.2`](https://github.com/fastapi/fastapi/releases/tag/0.123.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.1...0.123.2) ##### Fixes - 🐛 Fix unformatted `{type_}` in FastAPIError. PR [#&#8203;14416](https://github.com/fastapi/fastapi/pull/14416) by [@&#8203;Just-Helpful](https://github.com/Just-Helpful). - 🐛 Fix parsing extra non-body parameter list. PR [#&#8203;14356](https://github.com/fastapi/fastapi/pull/14356) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🐛 Fix parsing extra `Form` parameter list. PR [#&#8203;14303](https://github.com/fastapi/fastapi/pull/14303) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🐛 Fix support for form values with empty strings interpreted as missing (`None` if that's the default), for compatibility with HTML forms. PR [#&#8203;13537](https://github.com/fastapi/fastapi/pull/13537) by [@&#8203;MarinPostma](https://github.com/MarinPostma). ##### Docs - 📝 Add tip on how to install `pip` in case of `No module named pip` error in `virtual-environments.md`. PR [#&#8203;14211](https://github.com/fastapi/fastapi/pull/14211) by [@&#8203;zadevhub](https://github.com/zadevhub). - 📝 Update Primary Key notes for the SQL databases tutorial to avoid confusion. PR [#&#8203;14120](https://github.com/fastapi/fastapi/pull/14120) by [@&#8203;FlaviusRaducu](https://github.com/FlaviusRaducu). - 📝 Clarify estimation note in documentation. PR [#&#8203;14070](https://github.com/fastapi/fastapi/pull/14070) by [@&#8203;SaisakthiM](https://github.com/SaisakthiM). ### [`v0.123.1`](https://github.com/fastapi/fastapi/releases/tag/0.123.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.123.0...0.123.1) ##### Fixes - 🐛 Avoid accessing non-existing "$ref" key for Pydantic v2 compat remapping. PR [#&#8203;14361](https://github.com/fastapi/fastapi/pull/14361) by [@&#8203;svlandeg](https://github.com/svlandeg). - 🐛 Fix `TypeError` when encoding a decimal with a `NaN` or `Infinity` value. PR [#&#8203;12935](https://github.com/fastapi/fastapi/pull/12935) by [@&#8203;kentwelcome](https://github.com/kentwelcome). ##### Internal - 🐛 Fix Windows UnicodeEncodeError in CLI test. PR [#&#8203;14295](https://github.com/fastapi/fastapi/pull/14295) by [@&#8203;hemanth-thirthahalli](https://github.com/hemanth-thirthahalli). - 🔧 Update sponsors: add Greptile. PR [#&#8203;14429](https://github.com/fastapi/fastapi/pull/14429) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;14426](https://github.com/fastapi/fastapi/pull/14426) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump markdown-include-variants from 0.0.6 to 0.0.7. PR [#&#8203;14423](https://github.com/fastapi/fastapi/pull/14423) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;14422](https://github.com/fastapi/fastapi/pull/14422) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;14420](https://github.com/fastapi/fastapi/pull/14420) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.123.0`](https://github.com/fastapi/fastapi/releases/tag/0.123.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.122.1...0.123.0) ##### Fixes - 🐛 Cache dependencies that don't use scopes and don't have sub-dependencies with scopes. PR [#&#8203;14419](https://github.com/fastapi/fastapi/pull/14419) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.122.1`](https://github.com/fastapi/fastapi/releases/tag/0.122.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.122.0...0.122.1) ##### Fixes - 🐛 Fix hierarchical security scope propagation. PR [#&#8203;5624](https://github.com/fastapi/fastapi/pull/5624) by [@&#8203;kristjanvalur](https://github.com/kristjanvalur). ##### Docs - 💅 Update CSS to explicitly use emoji font. PR [#&#8203;14415](https://github.com/fastapi/fastapi/pull/14415) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬆ Bump markdown-include-variants from 0.0.5 to 0.0.6. PR [#&#8203;14418](https://github.com/fastapi/fastapi/pull/14418) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.122.0`](https://github.com/fastapi/fastapi/releases/tag/0.122.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.121.3...0.122.0) ##### Fixes - 🐛 Use `401` status code in security classes when credentials are missing. PR [#&#8203;13786](https://github.com/fastapi/fastapi/pull/13786) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - If your code depended on these classes raising the old (less correct) `403` status code, check the new docs about how to override the classes, to use the same old behavior: [Use Old 403 Authentication Error Status Codes](https://fastapi.tiangolo.com/how-to/authentication-error-status-code/). ##### Internal - 🔧 Configure labeler to exclude files that start from underscore for `lang-all` label. PR [#&#8203;14213](https://github.com/fastapi/fastapi/pull/14213) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 👷 Add pre-commit config with local script for permalinks. PR [#&#8203;14398](https://github.com/fastapi/fastapi/pull/14398) by [@&#8203;tiangolo](https://github.com/tiangolo). - 💄 Use font Fira Code to fix display of Rich panels in docs in Windows. PR [#&#8203;14387](https://github.com/fastapi/fastapi/pull/14387) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Add custom pre-commit CI. PR [#&#8203;14397](https://github.com/fastapi/fastapi/pull/14397) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump actions/checkout from 5 to 6. PR [#&#8203;14381](https://github.com/fastapi/fastapi/pull/14381) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👷 Upgrade `latest-changes` GitHub Action and pin `actions/checkout@v5`. PR [#&#8203;14403](https://github.com/fastapi/fastapi/pull/14403) by [@&#8203;svlandeg](https://github.com/svlandeg). - 🛠️ Add `add-permalinks` and `add-permalinks-page` to `scripts/docs.py`. PR [#&#8203;14033](https://github.com/fastapi/fastapi/pull/14033) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🔧 Upgrade Material for MkDocs and remove insiders. PR [#&#8203;14375](https://github.com/fastapi/fastapi/pull/14375) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.121.3`](https://github.com/fastapi/fastapi/releases/tag/0.121.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.121.2...0.121.3) #### 0.121.3 ##### Refactors - ♻️ Make the result of `Depends()` and `Security()` hashable, as a workaround for other tools interacting with these internal parts. PR [#&#8203;14372](https://github.com/fastapi/fastapi/pull/14372) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Upgrades - ⬆️ Bump Starlette to <`0.51.0`. PR [#&#8203;14282](https://github.com/fastapi/fastapi/pull/14282) by [@&#8203;musicinmybrain](https://github.com/musicinmybrain). ##### Docs - 📝 Add missing hash part. PR [#&#8203;14369](https://github.com/fastapi/fastapi/pull/14369) by [@&#8203;nilslindemann](https://github.com/nilslindemann). - 📝 Fix typos in code comments. PR [#&#8203;14364](https://github.com/fastapi/fastapi/pull/14364) by [@&#8203;Edge-Seven](https://github.com/Edge-Seven). - 📝 Add docs for using FastAPI Cloud. PR [#&#8203;14359](https://github.com/fastapi/fastapi/pull/14359) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.121.2`](https://github.com/fastapi/fastapi/releases/tag/0.121.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.121.1...0.121.2) ##### Fixes - 🐛 Fix handling of JSON Schema attributes named "$ref". PR [#&#8203;14349](https://github.com/fastapi/fastapi/pull/14349) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Add EuroPython talk & podcast episode with Sebastián Ramírez. PR [#&#8203;14260](https://github.com/fastapi/fastapi/pull/14260) by [@&#8203;clytaemnestra](https://github.com/clytaemnestra). - ✏️ Fix links and add missing permalink in docs. PR [#&#8203;14217](https://github.com/fastapi/fastapi/pull/14217) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Translations - 🌐 Update Portuguese translations with LLM prompt. PR [#&#8203;14228](https://github.com/fastapi/fastapi/pull/14228) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🔨 Add Portuguese translations LLM prompt. PR [#&#8203;14208](https://github.com/fastapi/fastapi/pull/14208) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Sync Russian docs. PR [#&#8203;14331](https://github.com/fastapi/fastapi/pull/14331) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Sync German docs. PR [#&#8203;14317](https://github.com/fastapi/fastapi/pull/14317) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ### [`v0.121.1`](https://github.com/fastapi/fastapi/releases/tag/0.121.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.121.0...0.121.1) ##### Fixes - 🐛 Fix `Depends(func, scope='function')` for top level (parameterless) dependencies. PR [#&#8203;14301](https://github.com/fastapi/fastapi/pull/14301) by [@&#8203;luzzodev](https://github.com/luzzodev). ##### Docs - 📝 Upate docs for advanced dependencies with `yield`, noting the changes in 0.121.0, adding `scope`. PR [#&#8203;14287](https://github.com/fastapi/fastapi/pull/14287) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬆ Bump ruff from 0.13.2 to 0.14.3. PR [#&#8203;14276](https://github.com/fastapi/fastapi/pull/14276) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14289](https://github.com/fastapi/fastapi/pull/14289) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). ### [`v0.121.0`](https://github.com/fastapi/fastapi/releases/tag/0.121.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.120.4...0.121.0) ##### Features - ✨ Add support for dependencies with scopes, support `scope="request"` for dependencies with `yield` that exit before the response is sent. PR [#&#8203;14262](https://github.com/fastapi/fastapi/pull/14262) by [@&#8203;tiangolo](https://github.com/tiangolo). - New docs: [Dependencies with `yield` - Early exit and `scope`](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/#early-exit-and-scope). ##### Internal - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;14273](https://github.com/fastapi/fastapi/pull/14273) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;14274](https://github.com/fastapi/fastapi/pull/14274) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;14280](https://github.com/fastapi/fastapi/pull/14280) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump mkdocs-macros-plugin from 1.4.0 to 1.4.1. PR [#&#8203;14277](https://github.com/fastapi/fastapi/pull/14277) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump mkdocstrings\[python] from 0.26.1 to 0.30.1. PR [#&#8203;14279](https://github.com/fastapi/fastapi/pull/14279) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.120.4`](https://github.com/fastapi/fastapi/releases/tag/0.120.4) [Compare Source](https://github.com/fastapi/fastapi/compare/0.120.3...0.120.4) ##### Fixes - 🐛 Fix security schemes in OpenAPI when added at the top level app. PR [#&#8203;14266](https://github.com/fastapi/fastapi/pull/14266) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.120.3`](https://github.com/fastapi/fastapi/releases/tag/0.120.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.120.2...0.120.3) ##### Refactors - ♻️ Reduce internal cyclic recursion in dependencies, from 2 functions calling each other to 1 calling itself. PR [#&#8203;14256](https://github.com/fastapi/fastapi/pull/14256) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Refactor internals of dependencies, simplify code and remove `get_param_sub_dependant`. PR [#&#8203;14255](https://github.com/fastapi/fastapi/pull/14255) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Refactor internals of dependencies, simplify using dataclasses. PR [#&#8203;14254](https://github.com/fastapi/fastapi/pull/14254) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Update note for untranslated pages. PR [#&#8203;14257](https://github.com/fastapi/fastapi/pull/14257) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.120.2`](https://github.com/fastapi/fastapi/releases/tag/0.120.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.120.1...0.120.2) ##### Fixes - 🐛 Fix separation of schemas with nested models introduced in 0.119.0. PR [#&#8203;14246](https://github.com/fastapi/fastapi/pull/14246) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔧 Add sponsor: SerpApi. PR [#&#8203;14248](https://github.com/fastapi/fastapi/pull/14248) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump actions/download-artifact from 5 to 6. PR [#&#8203;14236](https://github.com/fastapi/fastapi/pull/14236) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14237](https://github.com/fastapi/fastapi/pull/14237) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump actions/upload-artifact from 4 to 5. PR [#&#8203;14235](https://github.com/fastapi/fastapi/pull/14235) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.120.1`](https://github.com/fastapi/fastapi/releases/tag/0.120.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.120.0...0.120.1) ##### Upgrades - ⬆️ Bump Starlette to <`0.50.0`. PR [#&#8203;14234](https://github.com/fastapi/fastapi/pull/14234) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - 🔧 Add `license` and `license-files` to `pyproject.toml`, remove `License` from `classifiers`. PR [#&#8203;14230](https://github.com/fastapi/fastapi/pull/14230) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.120.0`](https://github.com/fastapi/fastapi/releases/tag/0.120.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.119.1...0.120.0) There are no major nor breaking changes in this release. ☕️ The internal reference documentation now uses `annotated_doc.Doc` instead of `typing_extensions.Doc`, this adds a new (very small) dependency on [`annotated-doc`](https://github.com/fastapi/annotated-doc), a package made just to provide that `Doc` documentation utility class. I would expect `typing_extensions.Doc` to be deprecated and then removed at some point from `typing_extensions`, for that reason there's the new `annotated-doc` micro-package. If you are curious about this, you can read more in the repo for [`annotated-doc`](https://github.com/fastapi/annotated-doc). This new version `0.120.0` only contains that transition to the new home package for that utility class `Doc`. ##### Translations - 🌐 Sync German docs. PR [#&#8203;14188](https://github.com/fastapi/fastapi/pull/14188) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ##### Internal - ➕ Migrate internal reference documentation from `typing_extensions.Doc` to `annotated_doc.Doc`. PR [#&#8203;14222](https://github.com/fastapi/fastapi/pull/14222) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🛠️ Update German LLM prompt and test file. PR [#&#8203;14189](https://github.com/fastapi/fastapi/pull/14189) by [@&#8203;nilslindemann](https://github.com/nilslindemann). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14181](https://github.com/fastapi/fastapi/pull/14181) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). ### [`v0.119.1`](https://github.com/fastapi/fastapi/releases/tag/0.119.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.119.0...0.119.1) ##### Fixes - 🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1. PR [#&#8203;14186](https://github.com/fastapi/fastapi/pull/14186) by [@&#8203;svlandeg](https://github.com/svlandeg). ##### Docs - 📝 Replace `starlette.io` by `starlette.dev` and `uvicorn.org` by `uvicorn.dev`. PR [#&#8203;14176](https://github.com/fastapi/fastapi/pull/14176) by [@&#8203;Kludex](https://github.com/Kludex). ##### Internal - 🔧 Add sponsor Requestly. PR [#&#8203;14205](https://github.com/fastapi/fastapi/pull/14205) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Configure reminder for `waiting` label in `issue-manager`. PR [#&#8203;14156](https://github.com/fastapi/fastapi/pull/14156) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.119.0`](https://github.com/fastapi/fastapi/releases/tag/0.119.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.118.3...0.119.0) FastAPI now (temporarily) supports both Pydantic v2 models and `pydantic.v1` models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly **migrate to Pydantic v2**. ```Python from fastapi import FastAPI from pydantic import BaseModel as BaseModelV2 from pydantic.v1 import BaseModel class Item(BaseModel): name: str description: str | None = None class ItemV2(BaseModelV2): title: str summary: str | None = None app = FastAPI() @&#8203;app.post("/items/", response_model=ItemV2) def create_item(item: Item): return {"title": item.name, "summary": item.description} ``` Adding this feature was a big effort with the main objective of making it easier for the few applications still stuck in Pydantic v1 to migrate to Pydantic v2. And with this, support for **Pydantic v1 is now deprecated** and will be **removed** from FastAPI in a future version soon. **Note**: have in mind that the Pydantic team already stopped supporting Pydantic v1 for recent versions of Python, starting with Python 3.14. You can read in the docs more about how to [Migrate from Pydantic v1 to Pydantic v2](https://fastapi.tiangolo.com/how-to/migrate-from-pydantic-v1-to-pydantic-v2/). ##### Features - ✨ Add support for `from pydantic.v1 import BaseModel`, mixed Pydantic v1 and v2 models in the same app. PR [#&#8203;14168](https://github.com/fastapi/fastapi/pull/14168) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.118.3`](https://github.com/fastapi/fastapi/releases/tag/0.118.3) [Compare Source](https://github.com/fastapi/fastapi/compare/0.118.2...0.118.3) ##### Upgrades - ⬆️ Add support for Python 3.14. PR [#&#8203;14165](https://github.com/fastapi/fastapi/pull/14165) by [@&#8203;svlandeg](https://github.com/svlandeg). ### [`v0.118.2`](https://github.com/fastapi/fastapi/releases/tag/0.118.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.118.1...0.118.2) ##### Fixes - 🐛 Fix tagged discriminated union not recognized as body field. PR [#&#8203;12942](https://github.com/fastapi/fastapi/pull/12942) by [@&#8203;frankie567](https://github.com/frankie567). ##### Internal - ⬆ Bump astral-sh/setup-uv from 6 to 7. PR [#&#8203;14167](https://github.com/fastapi/fastapi/pull/14167) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.118.1`](https://github.com/fastapi/fastapi/releases/tag/0.118.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.118.0...0.118.1) ##### Upgrades - 👽️ Ensure compatibility with Pydantic 2.12.0. PR [#&#8203;14036](https://github.com/fastapi/fastapi/pull/14036) by [@&#8203;cjwatson](https://github.com/cjwatson). ##### Docs - 📝 Add External Link: Getting started with logging in FastAPI. PR [#&#8203;14152](https://github.com/fastapi/fastapi/pull/14152) by [@&#8203;itssimon](https://github.com/itssimon). ##### Translations - 🔨 Add Russian translations LLM prompt. PR [#&#8203;13936](https://github.com/fastapi/fastapi/pull/13936) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Sync German docs. PR [#&#8203;14149](https://github.com/fastapi/fastapi/pull/14149) by [@&#8203;nilslindemann](https://github.com/nilslindemann). - 🌐 Add Russian translations for missing pages (LLM-generated). PR [#&#8203;14135](https://github.com/fastapi/fastapi/pull/14135) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Update Russian translations for existing pages (LLM-generated). PR [#&#8203;14123](https://github.com/fastapi/fastapi/pull/14123) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🌐 Remove configuration files for inactive translations. PR [#&#8203;14130](https://github.com/fastapi/fastapi/pull/14130) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - 🔨 Move local coverage logic to its own script. PR [#&#8203;14166](https://github.com/fastapi/fastapi/pull/14166) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14161](https://github.com/fastapi/fastapi/pull/14161) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump griffe-typingdoc from 0.2.8 to 0.2.9. PR [#&#8203;14144](https://github.com/fastapi/fastapi/pull/14144) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump mkdocs-macros-plugin from 1.3.9 to 1.4.0. PR [#&#8203;14145](https://github.com/fastapi/fastapi/pull/14145) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump markdown-include-variants from 0.0.4 to 0.0.5. PR [#&#8203;14146](https://github.com/fastapi/fastapi/pull/14146) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14126](https://github.com/fastapi/fastapi/pull/14126) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;14150](https://github.com/fastapi/fastapi/pull/14150) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;14139](https://github.com/fastapi/fastapi/pull/14139) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;14138](https://github.com/fastapi/fastapi/pull/14138) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump ruff from 0.12.7 to 0.13.2. PR [#&#8203;14147](https://github.com/fastapi/fastapi/pull/14147) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump sqlmodel from 0.0.24 to 0.0.25. PR [#&#8203;14143](https://github.com/fastapi/fastapi/pull/14143) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump tiangolo/issue-manager from 0.5.1 to 0.6.0. PR [#&#8203;14148](https://github.com/fastapi/fastapi/pull/14148) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👷 Update docs previews comment, single comment, add failure status. PR [#&#8203;14129](https://github.com/fastapi/fastapi/pull/14129) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Modify `mkdocs_hooks.py` to add `title` to page's metadata (remove permalinks in social cards). PR [#&#8203;14125](https://github.com/fastapi/fastapi/pull/14125) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ### [`v0.118.0`](https://github.com/fastapi/fastapi/releases/tag/0.118.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.117.1...0.118.0) #### 0.118.0 ##### Fixes - 🐛 Fix support for `StreamingResponse`s with dependencies with `yield` or `UploadFile`s, close after the response is done. PR [#&#8203;14099](https://github.com/fastapi/fastapi/pull/14099) by [@&#8203;tiangolo](https://github.com/tiangolo). Before FastAPI 0.118.0, if you used a dependency with `yield`, it would run the exit code after the *path operation function* returned but right before sending the response. This change also meant that if you returned a `StreamingResponse`, the exit code of the dependency with `yield` would have been already run. For example, if you had a database session in a dependency with `yield`, the `StreamingResponse` would not be able to use that session while streaming data because the session would have already been closed in the exit code after `yield`. This behavior was reverted in 0.118.0, to make the exit code after `yield` be executed after the response is sent. You can read more about it in the docs for [Advanced Dependencies - Dependencies with `yield`, `HTTPException`, `except` and Background Tasks](https://fastapi.tiangolo.com/advanced/advanced-dependencies#dependencies-with-yield-httpexception-except-and-background-tasks). Including what you could do if you wanted to close a database session earlier, before returning the response to the client. ##### Docs - 📝 Update `tutorial/security/oauth2-jwt/` to use `pwdlib` with Argon2 instead of `passlib`. PR [#&#8203;13917](https://github.com/fastapi/fastapi/pull/13917) by [@&#8203;Neizvestnyj](https://github.com/Neizvestnyj). - ✏️ Fix typos in OAuth2 password request forms. PR [#&#8203;14112](https://github.com/fastapi/fastapi/pull/14112) by [@&#8203;alv2017](https://github.com/alv2017). - 📝 Update contributing guidelines for installing requirements. PR [#&#8203;14095](https://github.com/fastapi/fastapi/pull/14095) by [@&#8203;alejsdev](https://github.com/alejsdev). ##### Translations - 🌐 Sync German docs. PR [#&#8203;14098](https://github.com/fastapi/fastapi/pull/14098) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ##### Internal - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14103](https://github.com/fastapi/fastapi/pull/14103) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ♻️ Refactor sponsor image handling. PR [#&#8203;14102](https://github.com/fastapi/fastapi/pull/14102) by [@&#8203;alejsdev](https://github.com/alejsdev). - 🐛 Fix sponsor display issue by hiding element on image error. PR [#&#8203;14097](https://github.com/fastapi/fastapi/pull/14097) by [@&#8203;alejsdev](https://github.com/alejsdev). - 🐛 Hide sponsor badge when sponsor image is not displayed. PR [#&#8203;14096](https://github.com/fastapi/fastapi/pull/14096) by [@&#8203;alejsdev](https://github.com/alejsdev). ### [`v0.117.1`](https://github.com/fastapi/fastapi/releases/tag/0.117.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.117.0...0.117.1) ##### Fixes - 🐛 Fix validation error when `File` is declared after `Form` parameter. PR [#&#8203;11194](https://github.com/fastapi/fastapi/pull/11194) by [@&#8203;thomasleveil](https://github.com/thomasleveil). ### [`v0.117.0`](https://github.com/fastapi/fastapi/releases/tag/0.117.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.116.2...0.117.0) ##### Features - ✨ Allow `None` as return type for bodiless responses. PR [#&#8203;9425](https://github.com/fastapi/fastapi/pull/9425) by [@&#8203;hofrob](https://github.com/hofrob). - ✨ Allow array values for OpenAPI schema `type` field. PR [#&#8203;13639](https://github.com/fastapi/fastapi/pull/13639) by [@&#8203;sammasak](https://github.com/sammasak). - ✨ Add OpenAPI `external_docs` parameter to `FastAPI`. PR [#&#8203;13713](https://github.com/fastapi/fastapi/pull/13713) by [@&#8203;cmtoro](https://github.com/cmtoro). ##### Fixes - ⚡️ Fix `default_factory` for response model field with Pydantic V1. PR [#&#8203;9704](https://github.com/fastapi/fastapi/pull/9704) by [@&#8203;vvanglro](https://github.com/vvanglro). - 🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR [#&#8203;6039](https://github.com/fastapi/fastapi/pull/6039) by [@&#8203;MaxwellPayne](https://github.com/MaxwellPayne). - 🐛 Fix `jsonable_encoder` alters `json_encoders` of Pydantic v1 objects. PR [#&#8203;4972](https://github.com/fastapi/fastapi/pull/4972) by [@&#8203;aboubacs](https://github.com/aboubacs). - 🐛 Reenable `allow_arbitrary_types` when only 1 argument is used on the API endpoint. PR [#&#8203;13694](https://github.com/fastapi/fastapi/pull/13694) by [@&#8203;rmawatson](https://github.com/rmawatson). - 🐛 Fix `inspect.getcoroutinefunction()` can break testing with `unittest.mock.patch()`. PR [#&#8203;14022](https://github.com/fastapi/fastapi/pull/14022) by [@&#8203;secrett2633](https://github.com/secrett2633). ##### Refactors - ♻️ Create `dependency-cache` dict in `solve_dependencies` only if `None` (don't re-create if empty). PR [#&#8203;13689](https://github.com/fastapi/fastapi/pull/13689) by [@&#8203;bokshitsky](https://github.com/bokshitsky). - ✅ Enable test case for duplicated headers in `test_tutorial/test_header_params/test_tutorial003.py`. PR [#&#8203;13864](https://github.com/fastapi/fastapi/pull/13864) by [@&#8203;Amogha-ark](https://github.com/Amogha-ark). - 📌 Pin `httpx` to `>=0.23.0,<1.0.0`. PR [#&#8203;14086](https://github.com/fastapi/fastapi/pull/14086) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Docs - 📝 Add note about Cookies and JavaScript on `tutorial/cookie-params.md`. PR [#&#8203;13510](https://github.com/fastapi/fastapi/pull/13510) by [@&#8203;Kludex](https://github.com/Kludex). - 📝 Remove outdated formatting from `path-params-numeric-validations.md` for languages `en`, `es` and `uk`.. PR [#&#8203;14059](https://github.com/fastapi/fastapi/pull/14059) by [@&#8203;svlandeg](https://github.com/svlandeg). - 📝 Fix and Improve English Documentation. PR [#&#8203;14048](https://github.com/fastapi/fastapi/pull/14048) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ##### Translations - 📝 Update prompts and German translation. PR [#&#8203;14015](https://github.com/fastapi/fastapi/pull/14015) by [@&#8203;nilslindemann](https://github.com/nilslindemann). ##### Internal - ✅ Simplify tests for response\_model. PR [#&#8203;14062](https://github.com/fastapi/fastapi/pull/14062) by [@&#8203;dynamicy](https://github.com/dynamicy). - 🚨 Install pydantic.mypy plugin. PR [#&#8203;14081](https://github.com/fastapi/fastapi/pull/14081) by [@&#8203;svlandeg](https://github.com/svlandeg). - ✅ Add LLM test file. PR [#&#8203;14049](https://github.com/fastapi/fastapi/pull/14049) by [@&#8203;nilslindemann](https://github.com/nilslindemann). - 🔨 Update translations script. PR [#&#8203;13968](https://github.com/fastapi/fastapi/pull/13968) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🛠️ Update `docs.py generate-readme` command to remove permalinks from headers. PR [#&#8203;14055](https://github.com/fastapi/fastapi/pull/14055) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆️ Update mypy to 1.14.1. PR [#&#8203;12970](https://github.com/fastapi/fastapi/pull/12970) by [@&#8203;tamird](https://github.com/tamird). ### [`v0.116.2`](https://github.com/fastapi/fastapi/releases/tag/0.116.2) [Compare Source](https://github.com/fastapi/fastapi/compare/0.116.1...0.116.2) ##### Upgrades - ⬆️ Upgrade Starlette supported version range to >=0.40.0,<0.49.0. PR [#&#8203;14077](https://github.com/fastapi/fastapi/pull/14077) by [@&#8203;musicinmybrain](https://github.com/musicinmybrain). ##### Docs - 📝 Add documentation for Behind a Proxy - Proxy Forwarded Headers, using `--forwarded-allow-ips="*"`. PR [#&#8203;14028](https://github.com/fastapi/fastapi/pull/14028) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Add deprecation info block about `dict()` in `docs/tutorial/body.md`. PR [#&#8203;13906](https://github.com/fastapi/fastapi/pull/13906) by [@&#8203;jomkv](https://github.com/jomkv). - 📝 Fix Twitter to be X (Twitter) everywhere in documentation. PR [#&#8203;13809](https://github.com/fastapi/fastapi/pull/13809) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🐛 Prevent scroll-to-top on restart/fast buttons in `termynal.js`. PR [#&#8203;13714](https://github.com/fastapi/fastapi/pull/13714) by [@&#8203;Ashish-Pandey62](https://github.com/Ashish-Pandey62). - 📝 Update testing events documentation. PR [#&#8203;13259](https://github.com/fastapi/fastapi/pull/13259) by [@&#8203;z0z0r4](https://github.com/z0z0r4). - 📝 Remove obsolete `url` field in error responses in docs. PR [#&#8203;13655](https://github.com/fastapi/fastapi/pull/13655) by [@&#8203;Taoup](https://github.com/Taoup). - 📝 Bring the `scope` claim in line with the standard in `docs_src/security/tutorial005.py`. PR [#&#8203;11189](https://github.com/fastapi/fastapi/pull/11189) by [@&#8203;DurandA](https://github.com/DurandA). - 📝 Update TrustedHostMiddleware Documentation. PR [#&#8203;11441](https://github.com/fastapi/fastapi/pull/11441) by [@&#8203;soulee-dev](https://github.com/soulee-dev). - 📝 Remove links to site callbackhell.com that doesn't exist anymore. PR [#&#8203;14006](https://github.com/fastapi/fastapi/pull/14006) by [@&#8203;dennybiasiolli](https://github.com/dennybiasiolli). - 📝 Add permalinks to headers in English docs. PR [#&#8203;13993](https://github.com/fastapi/fastapi/pull/13993) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 📝 Update `docs/en/docs/advanced/generate-clients.md`. PR [#&#8203;13793](https://github.com/fastapi/fastapi/pull/13793) by [@&#8203;mrlubos](https://github.com/mrlubos). - 📝 Add discussion template for new language translation requests. PR [#&#8203;13535](https://github.com/fastapi/fastapi/pull/13535) by [@&#8203;alejsdev](https://github.com/alejsdev). ##### Translations - 📝 Fix code include for Pydantic models example in `docs/zh/docs/python-types.md`. PR [#&#8203;13997](https://github.com/fastapi/fastapi/pull/13997) by [@&#8203;anfreshman](https://github.com/anfreshman). - 🌐 Update Portuguese Translation for `docs/pt/docs/async.md`. PR [#&#8203;13863](https://github.com/fastapi/fastapi/pull/13863) by [@&#8203;EdmilsonRodrigues](https://github.com/EdmilsonRodrigues). - 📝 Fix highlight line in `docs/ja/docs/tutorial/body.md`. PR [#&#8203;13927](https://github.com/fastapi/fastapi/pull/13927) by [@&#8203;KoyoMiyazaki](https://github.com/KoyoMiyazaki). - 🌐 Add Persian translation for `docs/fa/docs/environment-variables.md`. PR [#&#8203;13923](https://github.com/fastapi/fastapi/pull/13923) by [@&#8203;Mohammad222PR](https://github.com/Mohammad222PR). - 🌐 Add Persian translation for `docs/fa/docs/python-types.md`. PR [#&#8203;13524](https://github.com/fastapi/fastapi/pull/13524) by [@&#8203;Mohammad222PR](https://github.com/Mohammad222PR). - 🌐 Update Portuguese Translation for `docs/pt/docs/project-generation.md`. PR [#&#8203;13875](https://github.com/fastapi/fastapi/pull/13875) by [@&#8203;EdmilsonRodrigues](https://github.com/EdmilsonRodrigues). - 🌐 Add Persian translation for `docs/fa/docs/async.md`. PR [#&#8203;13541](https://github.com/fastapi/fastapi/pull/13541) by [@&#8203;Mohammad222PR](https://github.com/Mohammad222PR). - 🌐 Add Bangali translation for `docs/bn/about/index.md`. PR [#&#8203;13882](https://github.com/fastapi/fastapi/pull/13882) by [@&#8203;sajjadrahman56](https://github.com/sajjadrahman56). ##### Internal - ⬆ Bump pyjwt from 2.8.0 to 2.9.0. PR [#&#8203;13960](https://github.com/fastapi/fastapi/pull/13960) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14080](https://github.com/fastapi/fastapi/pull/14080) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump actions/setup-python from 5 to 6. PR [#&#8203;14042](https://github.com/fastapi/fastapi/pull/14042) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump actions/labeler from 5 to 6. PR [#&#8203;14046](https://github.com/fastapi/fastapi/pull/14046) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14056](https://github.com/fastapi/fastapi/pull/14056) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14035](https://github.com/fastapi/fastapi/pull/14035) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0. PR [#&#8203;14041](https://github.com/fastapi/fastapi/pull/14041) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;14029](https://github.com/fastapi/fastapi/pull/14029) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;14030](https://github.com/fastapi/fastapi/pull/14030) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;14031](https://github.com/fastapi/fastapi/pull/14031) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Experts. PR [#&#8203;14034](https://github.com/fastapi/fastapi/pull/14034) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Detect and label merge conflicts on PRs automatically. PR [#&#8203;14045](https://github.com/fastapi/fastapi/pull/14045) by [@&#8203;svlandeg](https://github.com/svlandeg). - 🔧 Update sponsors: remove Platform.sh. PR [#&#8203;14027](https://github.com/fastapi/fastapi/pull/14027) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove Mobb. PR [#&#8203;14026](https://github.com/fastapi/fastapi/pull/14026) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🛠️ Update `mkdocs_hooks` to handle headers with permalinks when building docs. PR [#&#8203;14025](https://github.com/fastapi/fastapi/pull/14025) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;14016](https://github.com/fastapi/fastapi/pull/14016) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump `mkdocs-macros-plugin` from 1.3.7 to 1.3.9. PR [#&#8203;14003](https://github.com/fastapi/fastapi/pull/14003) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13999](https://github.com/fastapi/fastapi/pull/13999) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13983](https://github.com/fastapi/fastapi/pull/13983) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump actions/checkout from 4 to 5. PR [#&#8203;13986](https://github.com/fastapi/fastapi/pull/13986) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update Speakeasy sponsor graphic. PR [#&#8203;13971](https://github.com/fastapi/fastapi/pull/13971) by [@&#8203;chailandau](https://github.com/chailandau). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13969](https://github.com/fastapi/fastapi/pull/13969) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump actions/download-artifact from 4 to 5. PR [#&#8203;13975](https://github.com/fastapi/fastapi/pull/13975) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Experts. PR [#&#8203;13963](https://github.com/fastapi/fastapi/pull/13963) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump ruff from 0.11.2 to 0.12.7. PR [#&#8203;13957](https://github.com/fastapi/fastapi/pull/13957) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump cairosvg from 2.7.1 to 2.8.2. PR [#&#8203;13959](https://github.com/fastapi/fastapi/pull/13959) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pydantic-ai from 0.0.30 to 0.4.10. PR [#&#8203;13958](https://github.com/fastapi/fastapi/pull/13958) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13962](https://github.com/fastapi/fastapi/pull/13962) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump mkdocs-material from 9.6.15 to 9.6.16. PR [#&#8203;13961](https://github.com/fastapi/fastapi/pull/13961) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump tiangolo/latest-changes from 0.3.2 to 0.4.0. PR [#&#8203;13952](https://github.com/fastapi/fastapi/pull/13952) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13956](https://github.com/fastapi/fastapi/pull/13956) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13955](https://github.com/fastapi/fastapi/pull/13955) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: Databento link and sponsors\_badge data. PR [#&#8203;13954](https://github.com/fastapi/fastapi/pull/13954) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: Add Railway. PR [#&#8203;13953](https://github.com/fastapi/fastapi/pull/13953) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⚒️ Update translate script, update prompt to minimize generated diff. PR [#&#8203;13947](https://github.com/fastapi/fastapi/pull/13947) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13943](https://github.com/fastapi/fastapi/pull/13943) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⚒️ Tweak translate script and CI. PR [#&#8203;13939](https://github.com/fastapi/fastapi/pull/13939) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Add CI to translate with LLMs. PR [#&#8203;13937](https://github.com/fastapi/fastapi/pull/13937) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⚒️ Update translate script, show and update outdated translations. PR [#&#8203;13933](https://github.com/fastapi/fastapi/pull/13933) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Refactor translate script with extra feedback (prints). PR [#&#8203;13932](https://github.com/fastapi/fastapi/pull/13932) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update translations script to remove old (removed) files. PR [#&#8203;13928](https://github.com/fastapi/fastapi/pull/13928) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13894](https://github.com/fastapi/fastapi/pull/13894) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Update httpx requirement to >=0.23.0,<0.29.0. PR [#&#8203;13114](https://github.com/fastapi/fastapi/pull/13114) by [@&#8203;yan12125](https://github.com/yan12125). - 🔧 Update sponsors: Add Mobb. PR [#&#8203;13916](https://github.com/fastapi/fastapi/pull/13916) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Experts. PR [#&#8203;13889](https://github.com/fastapi/fastapi/pull/13889) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update FastAPI People sleep interval, use external settings. PR [#&#8203;13888](https://github.com/fastapi/fastapi/pull/13888) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.116.1`](https://github.com/fastapi/fastapi/releases/tag/0.116.1) [Compare Source](https://github.com/fastapi/fastapi/compare/0.116.0...0.116.1) ##### Upgrades - ⬆️ Upgrade Starlette supported version range to `>=0.40.0,<0.48.0`. PR [#&#8203;13884](https://github.com/fastapi/fastapi/pull/13884) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Add notification about impending changes in Translations to `docs/en/docs/contributing.md`. PR [#&#8203;13886](https://github.com/fastapi/fastapi/pull/13886) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Internal - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13871](https://github.com/fastapi/fastapi/pull/13871) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). ### [`v0.116.0`](https://github.com/fastapi/fastapi/releases/tag/0.116.0) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.14...0.116.0) ##### Features - ✨ Add support for deploying to FastAPI Cloud with `fastapi deploy`. PR [#&#8203;13870](https://github.com/fastapi/fastapi/pull/13870) by [@&#8203;tiangolo](https://github.com/tiangolo). Installing `fastapi[standard]` now includes `fastapi-cloud-cli`. This will allow you to deploy to [FastAPI Cloud](https://fastapicloud.com) with the `fastapi deploy` command. If you want to install `fastapi` with the standard dependencies but without `fastapi-cloud-cli`, you can install instead `fastapi[standard-no-fastapi-cloud-cli]`. ##### Translations - 🌐 Add Russian translation for `docs/ru/docs/advanced/response-directly.md`. PR [#&#8203;13801](https://github.com/fastapi/fastapi/pull/13801) by [@&#8203;NavesSapnis](https://github.com/NavesSapnis). - 🌐 Add Russian translation for `docs/ru/docs/advanced/additional-status-codes.md`. PR [#&#8203;13799](https://github.com/fastapi/fastapi/pull/13799) by [@&#8203;NavesSapnis](https://github.com/NavesSapnis). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/body-updates.md`. PR [#&#8203;13804](https://github.com/fastapi/fastapi/pull/13804) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). ##### Internal - ⬆ Bump pillow from 11.1.0 to 11.3.0. PR [#&#8203;13852](https://github.com/fastapi/fastapi/pull/13852) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13846](https://github.com/fastapi/fastapi/pull/13846) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13848](https://github.com/fastapi/fastapi/pull/13848) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump mkdocs-material from 9.6.1 to 9.6.15. PR [#&#8203;13849](https://github.com/fastapi/fastapi/pull/13849) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13843](https://github.com/fastapi/fastapi/pull/13843) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13845](https://github.com/fastapi/fastapi/pull/13845) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.115.14`](https://github.com/fastapi/fastapi/releases/tag/0.115.14) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.13...0.115.14) ##### Fixes - 🐛 Fix support for unions when using `Form`. PR [#&#8203;13827](https://github.com/fastapi/fastapi/pull/13827) by [@&#8203;patrick91](https://github.com/patrick91). ##### Docs - ✏️ Fix grammar mistake in `docs/en/docs/advanced/response-directly.md`. PR [#&#8203;13800](https://github.com/fastapi/fastapi/pull/13800) by [@&#8203;NavesSapnis](https://github.com/NavesSapnis). - 📝 Update Speakeasy URL to Speakeasy Sandbox. PR [#&#8203;13697](https://github.com/fastapi/fastapi/pull/13697) by [@&#8203;ndimares](https://github.com/ndimares). ##### Translations - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/response-model.md`. PR [#&#8203;13792](https://github.com/fastapi/fastapi/pull/13792) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/security/index.md`. PR [#&#8203;13805](https://github.com/fastapi/fastapi/pull/13805) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - ✏️ Fix typo in `docs/ja/docs/tutorial/encoder.md`. PR [#&#8203;13815](https://github.com/fastapi/fastapi/pull/13815) by [@&#8203;ruzia](https://github.com/ruzia). - ✏️ Fix typo in `docs/ja/docs/tutorial/handling-errors.md`. PR [#&#8203;13814](https://github.com/fastapi/fastapi/pull/13814) by [@&#8203;ruzia](https://github.com/ruzia). - ✏️ Fix typo in `docs/ja/docs/tutorial/body-fields.md`. PR [#&#8203;13802](https://github.com/fastapi/fastapi/pull/13802) by [@&#8203;ruzia](https://github.com/ruzia). - 🌐 Add Russian translation for `docs/ru/docs/advanced/index.md`. PR [#&#8203;13797](https://github.com/fastapi/fastapi/pull/13797) by [@&#8203;NavesSapnis](https://github.com/NavesSapnis). ##### Internal - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13823](https://github.com/fastapi/fastapi/pull/13823) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). ### [`v0.115.13`](https://github.com/fastapi/fastapi/releases/tag/0.115.13) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.12...0.115.13) ##### Fixes - 🐛 Fix truncating the model's description with form feed (`\f`) character for Pydantic V2. PR [#&#8203;13698](https://github.com/fastapi/fastapi/pull/13698) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). ##### Refactors - ✨ Add `refreshUrl` parameter in `OAuth2PasswordBearer`. PR [#&#8203;11460](https://github.com/fastapi/fastapi/pull/11460) by [@&#8203;snosratiershad](https://github.com/snosratiershad). - 🚸 Set format to password for fields `password` and `client_secret` in `OAuth2PasswordRequestForm`, make docs show password fields for passwords. PR [#&#8203;11032](https://github.com/fastapi/fastapi/pull/11032) by [@&#8203;Thodoris1999](https://github.com/Thodoris1999). - ✅ Simplify tests for `settings`. PR [#&#8203;13505](https://github.com/fastapi/fastapi/pull/13505) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - ✅ Simplify tests for `validate_response_recursive`. PR [#&#8203;13507](https://github.com/fastapi/fastapi/pull/13507) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). ##### Upgrades - ⬆️ Update ReDoc to version 2.x. PR [#&#8203;9700](https://github.com/fastapi/fastapi/pull/9700) by [@&#8203;joakimnordling](https://github.com/joakimnordling). ##### Docs - 📝 Add annotations to HTTP middleware example. PR [#&#8203;11530](https://github.com/fastapi/fastapi/pull/11530) by [@&#8203;Kilo59](https://github.com/Kilo59). - 📝 Clarify in CORS docs that wildcards and credentials are mutually exclusive. PR [#&#8203;9829](https://github.com/fastapi/fastapi/pull/9829) by [@&#8203;dfioravanti](https://github.com/dfioravanti). - ✏️ Fix typo in docstring. PR [#&#8203;13532](https://github.com/fastapi/fastapi/pull/13532) by [@&#8203;comp64](https://github.com/comp64). - 📝 Clarify guidance on using `async def` without `await`. PR [#&#8203;13642](https://github.com/fastapi/fastapi/pull/13642) by [@&#8203;swastikpradhan1999](https://github.com/swastikpradhan1999). - 📝 Update exclude-parameters-from-openapi documentation links. PR [#&#8203;13600](https://github.com/fastapi/fastapi/pull/13600) by [@&#8203;timonrieger](https://github.com/timonrieger). - 📝 Clarify the middleware execution order in docs. PR [#&#8203;13699](https://github.com/fastapi/fastapi/pull/13699) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov). - 🍱 Update Drawio diagrams SVGs, single file per diagram, sans-serif font. PR [#&#8203;13706](https://github.com/fastapi/fastapi/pull/13706) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for "Help FastAPI", simplify and reduce "sponsor" section. PR [#&#8203;13670](https://github.com/fastapi/fastapi/pull/13670) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Remove unnecessary bullet from docs. PR [#&#8203;13641](https://github.com/fastapi/fastapi/pull/13641) by [@&#8203;Adamowoc](https://github.com/Adamowoc). - ✏️ Fix syntax error in `docs/en/docs/tutorial/handling-errors.md`. PR [#&#8203;13623](https://github.com/fastapi/fastapi/pull/13623) by [@&#8203;gsheni](https://github.com/gsheni). - 📝 Fix typo in documentation. PR [#&#8203;13599](https://github.com/fastapi/fastapi/pull/13599) by [@&#8203;Taoup](https://github.com/Taoup). - 📝 Fix liblab client generation doc link. PR [#&#8203;13571](https://github.com/fastapi/fastapi/pull/13571) by [@&#8203;EFord36](https://github.com/EFord36). - ✏️ Fix talk information typo. PR [#&#8203;13544](https://github.com/fastapi/fastapi/pull/13544) by [@&#8203;blueswen](https://github.com/blueswen). - 📝 Add External Link: Taiwanese talk on FastAPI with observability . PR [#&#8203;13527](https://github.com/fastapi/fastapi/pull/13527) by [@&#8203;blueswen](https://github.com/blueswen). ##### Translations - 🌐 Add Russian Translation for `docs/ru/docs/advanced/response-change-status-code.md`. PR [#&#8203;13791](https://github.com/fastapi/fastapi/pull/13791) by [@&#8203;NavesSapnis](https://github.com/NavesSapnis). - 🌐 Add Persian translation for `docs/fa/docs/learn/index.md`. PR [#&#8203;13518](https://github.com/fastapi/fastapi/pull/13518) by [@&#8203;Mohammad222PR](https://github.com/Mohammad222PR). - 🌐 Add Korean translation for `docs/ko/docs/advanced/sub-applications.md`. PR [#&#8203;4543](https://github.com/fastapi/fastapi/pull/4543) by [@&#8203;NinaHwang](https://github.com/NinaHwang). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/schema-extra-example.md`. PR [#&#8203;13769](https://github.com/fastapi/fastapi/pull/13769) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - ✏️ Remove redundant words in docs/zh/docs/python-types.md. PR [#&#8203;13774](https://github.com/fastapi/fastapi/pull/13774) by [@&#8203;CharleeWa](https://github.com/CharleeWa). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/query-param-models.md`. PR [#&#8203;13748](https://github.com/fastapi/fastapi/pull/13748) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Bengali translation for `docs/bn/docs/environment-variables.md`. PR [#&#8203;13629](https://github.com/fastapi/fastapi/pull/13629) by [@&#8203;SakibSibly](https://github.com/SakibSibly). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/query-params-str-validations.md` page. PR [#&#8203;13546](https://github.com/fastapi/fastapi/pull/13546) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/cookie-param-models.md`. PR [#&#8203;13616](https://github.com/fastapi/fastapi/pull/13616) by [@&#8203;EgorOnishchuk](https://github.com/EgorOnishchuk). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/extra-models.md`. PR [#&#8203;13063](https://github.com/fastapi/fastapi/pull/13063) by [@&#8203;timothy-jeong](https://github.com/timothy-jeong). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/path-params-numeric-validations.md` page. PR [#&#8203;13548](https://github.com/fastapi/fastapi/pull/13548) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/middleware.md` page. PR [#&#8203;13520](https://github.com/fastapi/fastapi/pull/13520) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/background-tasks.md` page. PR [#&#8203;13502](https://github.com/fastapi/fastapi/pull/13502) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/cors.md` page. PR [#&#8203;13519](https://github.com/fastapi/fastapi/pull/13519) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Update Korean translation for `docs/ko/docs/advanced/events.md`. PR [#&#8203;13487](https://github.com/fastapi/fastapi/pull/13487) by [@&#8203;bom1215](https://github.com/bom1215). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/handling-errors.md` page. PR [#&#8203;13420](https://github.com/fastapi/fastapi/pull/13420) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/request-form-models.md`. PR [#&#8203;13552](https://github.com/fastapi/fastapi/pull/13552) by [@&#8203;EgorOnishchuk](https://github.com/EgorOnishchuk). - 📝 Fix internal anchor link in Spanish deployment docs. PR [#&#8203;13737](https://github.com/fastapi/fastapi/pull/13737) by [@&#8203;fabianfalon](https://github.com/fabianfalon). - 🌐 Update Korean translation for `docs/ko/docs/virtual-environments.md`. PR [#&#8203;13630](https://github.com/fastapi/fastapi/pull/13630) by [@&#8203;sungchan1](https://github.com/sungchan1). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/header-param-models.md`. PR [#&#8203;13526](https://github.com/fastapi/fastapi/pull/13526) by [@&#8203;minaton-ru](https://github.com/minaton-ru). - 🌐 Update Chinese translation for `docs/zh/docs/tutorial/index.md`. PR [#&#8203;13374](https://github.com/fastapi/fastapi/pull/13374) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Update Chinese translation for `docs/zh/docs/deployment/manually.md`. PR [#&#8203;13324](https://github.com/fastapi/fastapi/pull/13324) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Update Chinese translation for `docs/zh/docs/deployment/server-workers.md`. PR [#&#8203;13292](https://github.com/fastapi/fastapi/pull/13292) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Update Chinese translation for `docs/zh/docs/tutorial/first-steps.md`. PR [#&#8203;13348](https://github.com/fastapi/fastapi/pull/13348) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). ##### Internal - 🔨 Resolve Pydantic deprecation warnings in internal script. PR [#&#8203;13696](https://github.com/fastapi/fastapi/pull/13696) by [@&#8203;emmanuel-ferdman](https://github.com/emmanuel-ferdman). - 🔧 Update sponsors: remove Porter. PR [#&#8203;13783](https://github.com/fastapi/fastapi/pull/13783) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13781](https://github.com/fastapi/fastapi/pull/13781) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13757](https://github.com/fastapi/fastapi/pull/13757) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ Bump griffe-typingdoc from 0.2.7 to 0.2.8. PR [#&#8203;13751](https://github.com/fastapi/fastapi/pull/13751) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🍱 Update sponsors: Dribia badge size. PR [#&#8203;13773](https://github.com/fastapi/fastapi/pull/13773) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: add Dribia. PR [#&#8203;13771](https://github.com/fastapi/fastapi/pull/13771) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump typer from 0.15.3 to 0.16.0. PR [#&#8203;13752](https://github.com/fastapi/fastapi/pull/13752) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13754](https://github.com/fastapi/fastapi/pull/13754) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13750](https://github.com/fastapi/fastapi/pull/13750) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13749](https://github.com/fastapi/fastapi/pull/13749) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13736](https://github.com/fastapi/fastapi/pull/13736) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 🔧 Update sponsors: Add InterviewPal. PR [#&#8203;13728](https://github.com/fastapi/fastapi/pull/13728) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Remove Google Analytics. PR [#&#8203;13727](https://github.com/fastapi/fastapi/pull/13727) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove MongoDB. PR [#&#8203;13725](https://github.com/fastapi/fastapi/pull/13725) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13711](https://github.com/fastapi/fastapi/pull/13711) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 🔧 Update sponsors: add Subtotal. PR [#&#8203;13701](https://github.com/fastapi/fastapi/pull/13701) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove deepset / Haystack. PR [#&#8203;13700](https://github.com/fastapi/fastapi/pull/13700) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13688](https://github.com/fastapi/fastapi/pull/13688) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 👥 Update FastAPI People - Experts. PR [#&#8203;13671](https://github.com/fastapi/fastapi/pull/13671) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump typer from 0.12.5 to 0.15.3. PR [#&#8203;13666](https://github.com/fastapi/fastapi/pull/13666) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump sqlmodel from 0.0.23 to 0.0.24. PR [#&#8203;13665](https://github.com/fastapi/fastapi/pull/13665) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update Sponsors: Zuplo logo and alt text. PR [#&#8203;13645](https://github.com/fastapi/fastapi/pull/13645) by [@&#8203;martyndavies](https://github.com/martyndavies). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13667](https://github.com/fastapi/fastapi/pull/13667) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update links for LinkedIn and bottom. PR [#&#8203;13669](https://github.com/fastapi/fastapi/pull/13669) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: remove Bump.sh and Coherence. PR [#&#8203;13668](https://github.com/fastapi/fastapi/pull/13668) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13664](https://github.com/fastapi/fastapi/pull/13664) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13662](https://github.com/fastapi/fastapi/pull/13662) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13656](https://github.com/fastapi/fastapi/pull/13656) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ✅ Use `inline-snapshot` to support different Pydantic versions in the test suite. PR [#&#8203;12534](https://github.com/fastapi/fastapi/pull/12534) by [@&#8203;15r10nk](https://github.com/15r10nk). - ⬆ Bump astral-sh/setup-uv from 5 to 6. PR [#&#8203;13648](https://github.com/fastapi/fastapi/pull/13648) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13634](https://github.com/fastapi/fastapi/pull/13634) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13619](https://github.com/fastapi/fastapi/pull/13619) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;13594](https://github.com/fastapi/fastapi/pull/13594) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). - 👥 Update FastAPI People - Experts. PR [#&#8203;13568](https://github.com/fastapi/fastapi/pull/13568) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13565](https://github.com/fastapi/fastapi/pull/13565) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13559](https://github.com/fastapi/fastapi/pull/13559) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13558](https://github.com/fastapi/fastapi/pull/13558) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump dirty-equals from 0.8.0 to 0.9.0. PR [#&#8203;13561](https://github.com/fastapi/fastapi/pull/13561) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Clean up `docs/en/mkdocs.yml` configuration file. PR [#&#8203;13542](https://github.com/fastapi/fastapi/pull/13542) by [@&#8203;svlandeg](https://github.com/svlandeg). - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;12986](https://github.com/fastapi/fastapi/pull/12986) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). ### [`v0.115.12`](https://github.com/fastapi/fastapi/releases/tag/0.115.12) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.11...0.115.12) ##### Fixes - 🐛 Fix `convert_underscores=False` for header Pydantic models. PR [#&#8203;13515](https://github.com/fastapi/fastapi/pull/13515) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - 📝 Update `docs/en/docs/tutorial/middleware.md`. PR [#&#8203;13444](https://github.com/fastapi/fastapi/pull/13444) by [@&#8203;Rishat-F](https://github.com/Rishat-F). - 👥 Update FastAPI People - Experts. PR [#&#8203;13493](https://github.com/fastapi/fastapi/pull/13493) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/metadata.md` page. PR [#&#8203;13459](https://github.com/fastapi/fastapi/pull/13459) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/response-status-code.md` page. PR [#&#8203;13462](https://github.com/fastapi/fastapi/pull/13462) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/cookie-param-models.md` page. PR [#&#8203;13460](https://github.com/fastapi/fastapi/pull/13460) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/header-param-models.md` page. PR [#&#8203;13461](https://github.com/fastapi/fastapi/pull/13461) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Japanese translation for `docs/ja/docs/virtual-environments.md`. PR [#&#8203;13304](https://github.com/fastapi/fastapi/pull/13304) by [@&#8203;k94-ishi](https://github.com/k94-ishi). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/security/oauth2-jwt.md`. PR [#&#8203;13333](https://github.com/fastapi/fastapi/pull/13333) by [@&#8203;yes0ng](https://github.com/yes0ng). - 🌐 Add Vietnamese translation for `docs/vi/docs/deployment/cloud.md`. PR [#&#8203;13407](https://github.com/fastapi/fastapi/pull/13407) by [@&#8203;ptt3199](https://github.com/ptt3199). ##### Internal - ⬆ Bump pydantic-ai from 0.0.15 to 0.0.30. PR [#&#8203;13438](https://github.com/fastapi/fastapi/pull/13438) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump sqlmodel from 0.0.22 to 0.0.23. PR [#&#8203;13437](https://github.com/fastapi/fastapi/pull/13437) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump black from 24.10.0 to 25.1.0. PR [#&#8203;13436](https://github.com/fastapi/fastapi/pull/13436) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump ruff to 0.9.4. PR [#&#8203;13299](https://github.com/fastapi/fastapi/pull/13299) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update sponsors: pause TestDriven. PR [#&#8203;13446](https://github.com/fastapi/fastapi/pull/13446) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.115.11`](https://github.com/fastapi/fastapi/releases/tag/0.115.11) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.10...0.115.11) ##### Fixes - 🐛 Add docs examples and tests (support) for `Annotated` custom validations, like `AfterValidator`, revert [#&#8203;13440](https://github.com/fastapi/fastapi/pull/13440). PR [#&#8203;13442](https://github.com/fastapi/fastapi/pull/13442) by [@&#8203;tiangolo](https://github.com/tiangolo). - New docs: [Query Parameters and String Validations - Custom Validation](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#custom-validation). ##### Translations - 🌐 Add Russian translation for `docs/ru/docs/tutorial/middleware.md`. PR [#&#8203;13412](https://github.com/fastapi/fastapi/pull/13412) by [@&#8203;alv2017](https://github.com/alv2017). ##### Internal - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13439](https://github.com/fastapi/fastapi/pull/13439) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13432](https://github.com/fastapi/fastapi/pull/13432) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13433](https://github.com/fastapi/fastapi/pull/13433) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.115.10`](https://github.com/fastapi/fastapi/releases/tag/0.115.10) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.9...0.115.10) ##### Fixes - ♻️ Update internal annotation usage for compatibility with Pydantic 2.11. PR [#&#8203;13314](https://github.com/fastapi/fastapi/pull/13314) by [@&#8203;Viicos](https://github.com/Viicos). ##### Upgrades - ⬆️ Bump Starlette to allow up to 0.46.0: `>=0.40.0,<0.47.0`. PR [#&#8203;13426](https://github.com/fastapi/fastapi/pull/13426) by [@&#8203;musicinmybrain](https://github.com/musicinmybrain). ##### Translations - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/debugging.md`. PR [#&#8203;13370](https://github.com/fastapi/fastapi/pull/13370) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/query-params.md`. PR [#&#8203;13362](https://github.com/fastapi/fastapi/pull/13362) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/path-params.md`. PR [#&#8203;13354](https://github.com/fastapi/fastapi/pull/13354) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Japanese translation for `docs/ja/docs/tutorial/cookie-param-models.md`. PR [#&#8203;13330](https://github.com/fastapi/fastapi/pull/13330) by [@&#8203;k94-ishi](https://github.com/k94-ishi). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/body-multiple-params.md`. PR [#&#8203;13408](https://github.com/fastapi/fastapi/pull/13408) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Japanese translation for `docs/ja/docs/tutorial/query-param-models.md`. PR [#&#8203;13323](https://github.com/fastapi/fastapi/pull/13323) by [@&#8203;k94-ishi](https://github.com/k94-ishi). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/body-nested-models.md`. PR [#&#8203;13409](https://github.com/fastapi/fastapi/pull/13409) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Vietnamese translation for `docs/vi/docs/deployment/versions.md`. PR [#&#8203;13406](https://github.com/fastapi/fastapi/pull/13406) by [@&#8203;ptt3199](https://github.com/ptt3199). - 🌐 Add Vietnamese translation for `docs/vi/docs/deployment/index.md`. PR [#&#8203;13405](https://github.com/fastapi/fastapi/pull/13405) by [@&#8203;ptt3199](https://github.com/ptt3199). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/request-forms.md`. PR [#&#8203;13383](https://github.com/fastapi/fastapi/pull/13383) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/testing.md`. PR [#&#8203;13371](https://github.com/fastapi/fastapi/pull/13371) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). ### [`v0.115.9`](https://github.com/fastapi/fastapi/releases/tag/0.115.9) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.8...0.115.9) ##### Fixes - 🐛 Ensure that `HTTPDigest` only raises an exception when `auto_error is True`. PR [#&#8203;2939](https://github.com/fastapi/fastapi/pull/2939) by [@&#8203;arthurio](https://github.com/arthurio). ##### Refactors - ✅ Simplify tests for `query_params_str_validations`. PR [#&#8203;13218](https://github.com/fastapi/fastapi/pull/13218) by [@&#8203;alv2017](https://github.com/alv2017). - ✅ Simplify tests for `app_testing`. PR [#&#8203;13220](https://github.com/fastapi/fastapi/pull/13220) by [@&#8203;alv2017](https://github.com/alv2017). - ✅ Simplify tests for `dependency_testing`. PR [#&#8203;13223](https://github.com/fastapi/fastapi/pull/13223) by [@&#8203;alv2017](https://github.com/alv2017). ##### Docs - 🍱 Update sponsors: CodeRabbit logo. PR [#&#8203;13424](https://github.com/fastapi/fastapi/pull/13424) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🩺 Unify the badges across all tutorial translations. PR [#&#8203;13329](https://github.com/fastapi/fastapi/pull/13329) by [@&#8203;svlandeg](https://github.com/svlandeg). - 📝 Fix typos in virtual environments documentation. PR [#&#8203;13396](https://github.com/fastapi/fastapi/pull/13396) by [@&#8203;bullet-ant](https://github.com/bullet-ant). - 🐛 Fix issue with Swagger theme change example in the official tutorial. PR [#&#8203;13289](https://github.com/fastapi/fastapi/pull/13289) by [@&#8203;Zerohertz](https://github.com/Zerohertz). - 📝 Add more precise description of HTTP status code range in docs. PR [#&#8203;13347](https://github.com/fastapi/fastapi/pull/13347) by [@&#8203;DanielYang59](https://github.com/DanielYang59). - 🔥 Remove manual type annotations in JWT tutorial to avoid typing expectations (JWT doesn't provide more types). PR [#&#8203;13378](https://github.com/fastapi/fastapi/pull/13378) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update docs for Query Params and String Validations, remove obsolete Ellipsis docs (`...`). PR [#&#8203;13377](https://github.com/fastapi/fastapi/pull/13377) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✏️ Remove duplicate title in docs `body-multiple-params`. PR [#&#8203;13345](https://github.com/fastapi/fastapi/pull/13345) by [@&#8203;DanielYang59](https://github.com/DanielYang59). - 📝 Fix test badge. PR [#&#8203;13313](https://github.com/fastapi/fastapi/pull/13313) by [@&#8203;esadek](https://github.com/esadek). ##### Translations - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/header-params.md`. PR [#&#8203;13381](https://github.com/fastapi/fastapi/pull/13381) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/request-files.md`. PR [#&#8203;13395](https://github.com/fastapi/fastapi/pull/13395) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/request-form-models.md`. PR [#&#8203;13384](https://github.com/fastapi/fastapi/pull/13384) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/request-forms-and-files.md`. PR [#&#8203;13386](https://github.com/fastapi/fastapi/pull/13386) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Update Korean translation for `docs/ko/docs/help-fastapi.md`. PR [#&#8203;13262](https://github.com/fastapi/fastapi/pull/13262) by [@&#8203;Zerohertz](https://github.com/Zerohertz). - 🌐 Add Korean translation for `docs/ko/docs/advanced/custom-response.md`. PR [#&#8203;13265](https://github.com/fastapi/fastapi/pull/13265) by [@&#8203;11kkw](https://github.com/11kkw). - 🌐 Update Korean translation for `docs/ko/docs/tutorial/security/simple-oauth2.md`. PR [#&#8203;13335](https://github.com/fastapi/fastapi/pull/13335) by [@&#8203;yes0ng](https://github.com/yes0ng). - 🌐 Add Russian translation for `docs/ru/docs/advanced/response-cookies.md`. PR [#&#8203;13327](https://github.com/fastapi/fastapi/pull/13327) by [@&#8203;Stepakinoyan](https://github.com/Stepakinoyan). - 🌐 Add Vietnamese translation for `docs/vi/docs/tutorial/static-files.md`. PR [#&#8203;11291](https://github.com/fastapi/fastapi/pull/11291) by [@&#8203;ptt3199](https://github.com/ptt3199). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/dependencies/dependencies-with-yield.md`. PR [#&#8203;13257](https://github.com/fastapi/fastapi/pull/13257) by [@&#8203;11kkw](https://github.com/11kkw). - 🌐 Add Vietnamese translation for `docs/vi/docs/virtual-environments.md`. PR [#&#8203;13282](https://github.com/fastapi/fastapi/pull/13282) by [@&#8203;ptt3199](https://github.com/ptt3199). - 🌐 Add Ukrainian translation for `docs/uk/docs/tutorial/static-files.md`. PR [#&#8203;13285](https://github.com/fastapi/fastapi/pull/13285) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Vietnamese translation for `docs/vi/docs/environment-variables.md`. PR [#&#8203;13287](https://github.com/fastapi/fastapi/pull/13287) by [@&#8203;ptt3199](https://github.com/ptt3199). - 🌐 Add Vietnamese translation for `docs/vi/docs/fastapi-cli.md`. PR [#&#8203;13294](https://github.com/fastapi/fastapi/pull/13294) by [@&#8203;ptt3199](https://github.com/ptt3199). - 🌐 Add Ukrainian translation for `docs/uk/docs/features.md`. PR [#&#8203;13308](https://github.com/fastapi/fastapi/pull/13308) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Add Ukrainian translation for `docs/uk/docs/learn/index.md`. PR [#&#8203;13306](https://github.com/fastapi/fastapi/pull/13306) by [@&#8203;valentinDruzhinin](https://github.com/valentinDruzhinin). - 🌐 Update Portuguese Translation for `docs/pt/docs/deployment/https.md`. PR [#&#8203;13317](https://github.com/fastapi/fastapi/pull/13317) by [@&#8203;Joao-Pedro-P-Holanda](https://github.com/Joao-Pedro-P-Holanda). - 🌐 Update Portuguese Translation for `docs/pt/docs/index.md`. PR [#&#8203;13328](https://github.com/fastapi/fastapi/pull/13328) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Add Russian translation for `docs/ru/docs/advanced/websockets.md`. PR [#&#8203;13279](https://github.com/fastapi/fastapi/pull/13279) by [@&#8203;Rishat-F](https://github.com/Rishat-F). ##### Internal - ✅ Fix a minor bug in the test `tests/test_modules_same_name_body/test_main.py`. PR [#&#8203;13411](https://github.com/fastapi/fastapi/pull/13411) by [@&#8203;alv2017](https://github.com/alv2017). - 👷 Use `wrangler-action` v3. PR [#&#8203;13415](https://github.com/fastapi/fastapi/pull/13415) by [@&#8203;joakimnordling](https://github.com/joakimnordling). - 🔧 Update sponsors: add CodeRabbit. PR [#&#8203;13402](https://github.com/fastapi/fastapi/pull/13402) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update team: Add Ludovico. PR [#&#8203;13390](https://github.com/fastapi/fastapi/pull/13390) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update sponsors: Add LambdaTest. PR [#&#8203;13389](https://github.com/fastapi/fastapi/pull/13389) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump cloudflare/wrangler-action from 3.13 to 3.14. PR [#&#8203;13350](https://github.com/fastapi/fastapi/pull/13350) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump mkdocs-material from 9.5.18 to 9.6.1. PR [#&#8203;13301](https://github.com/fastapi/fastapi/pull/13301) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump pillow from 11.0.0 to 11.1.0. PR [#&#8203;13300](https://github.com/fastapi/fastapi/pull/13300) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13295](https://github.com/fastapi/fastapi/pull/13295) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Experts. PR [#&#8203;13303](https://github.com/fastapi/fastapi/pull/13303) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13302](https://github.com/fastapi/fastapi/pull/13302) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13293](https://github.com/fastapi/fastapi/pull/13293) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump inline-snapshot from 0.18.1 to 0.19.3. PR [#&#8203;13298](https://github.com/fastapi/fastapi/pull/13298) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update sponsors, add Permit. PR [#&#8203;13288](https://github.com/fastapi/fastapi/pull/13288) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.115.8`](https://github.com/fastapi/fastapi/releases/tag/0.115.8) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.7...0.115.8) ##### Fixes - 🐛 Fix `OAuth2PasswordRequestForm` and `OAuth2PasswordRequestFormStrict` fixed `grant_type` "password" RegEx. PR [#&#8203;9783](https://github.com/fastapi/fastapi/pull/9783) by [@&#8203;skarfie123](https://github.com/skarfie123). ##### Refactors - ✅ Simplify tests for body\_multiple\_params . PR [#&#8203;13237](https://github.com/fastapi/fastapi/pull/13237) by [@&#8203;alejsdev](https://github.com/alejsdev). - ♻️ Move duplicated code portion to a static method in the `APIKeyBase` super class. PR [#&#8203;3142](https://github.com/fastapi/fastapi/pull/3142) by [@&#8203;ShahriyarR](https://github.com/ShahriyarR). - ✅ Simplify tests for request\_files. PR [#&#8203;13182](https://github.com/fastapi/fastapi/pull/13182) by [@&#8203;alejsdev](https://github.com/alejsdev). ##### Docs - 📝 Change the word "unwrap" to "unpack" in `docs/en/docs/tutorial/extra-models.md`. PR [#&#8203;13061](https://github.com/fastapi/fastapi/pull/13061) by [@&#8203;timothy-jeong](https://github.com/timothy-jeong). - 📝 Update Request Body's `tutorial002` to deal with `tax=0` case. PR [#&#8203;13230](https://github.com/fastapi/fastapi/pull/13230) by [@&#8203;togogh](https://github.com/togogh). - 👥 Update FastAPI People - Experts. PR [#&#8203;13269](https://github.com/fastapi/fastapi/pull/13269) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Add Japanese translation for `docs/ja/docs/environment-variables.md`. PR [#&#8203;13226](https://github.com/fastapi/fastapi/pull/13226) by [@&#8203;k94-ishi](https://github.com/k94-ishi). - 🌐 Add Russian translation for `docs/ru/docs/advanced/async-tests.md`. PR [#&#8203;13227](https://github.com/fastapi/fastapi/pull/13227) by [@&#8203;Rishat-F](https://github.com/Rishat-F). - 🌐 Update Russian translation for `docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md`. PR [#&#8203;13252](https://github.com/fastapi/fastapi/pull/13252) by [@&#8203;Rishat-F](https://github.com/Rishat-F). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/bigger-applications.md`. PR [#&#8203;13154](https://github.com/fastapi/fastapi/pull/13154) by [@&#8203;alv2017](https://github.com/alv2017). ##### Internal - ⬆️ Add support for Python 3.13. PR [#&#8203;13274](https://github.com/fastapi/fastapi/pull/13274) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆️ Upgrade AnyIO max version for tests, new range: `>=3.2.1,<5.0.0`. PR [#&#8203;13273](https://github.com/fastapi/fastapi/pull/13273) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update Sponsors badges. PR [#&#8203;13271](https://github.com/fastapi/fastapi/pull/13271) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Fix `notify_translations.py` empty env var handling for PR label events vs workflow\_dispatch. PR [#&#8203;13272](https://github.com/fastapi/fastapi/pull/13272) by [@&#8203;tiangolo](https://github.com/tiangolo). - ♻️ Refactor and move `scripts/notify_translations.py`, no need for a custom GitHub Action. PR [#&#8203;13270](https://github.com/fastapi/fastapi/pull/13270) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔨 Update FastAPI People Experts script, refactor and optimize data fetching to handle rate limits. PR [#&#8203;13267](https://github.com/fastapi/fastapi/pull/13267) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4. PR [#&#8203;13251](https://github.com/fastapi/fastapi/pull/13251) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). ### [`v0.115.7`](https://github.com/fastapi/fastapi/releases/tag/0.115.7) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.6...0.115.7) ##### Upgrades - ⬆️ Upgrade `python-multipart` to >=0.0.18. PR [#&#8203;13219](https://github.com/fastapi/fastapi/pull/13219) by [@&#8203;DanielKusyDev](https://github.com/DanielKusyDev). - ⬆️ Bump Starlette to allow up to 0.45.0: `>=0.40.0,<0.46.0`. PR [#&#8203;13117](https://github.com/fastapi/fastapi/pull/13117) by [@&#8203;Kludex](https://github.com/Kludex). - ⬆️ Upgrade `jinja2` to >=3.1.5. PR [#&#8203;13194](https://github.com/fastapi/fastapi/pull/13194) by [@&#8203;DanielKusyDev](https://github.com/DanielKusyDev). ##### Refactors - ✅ Simplify tests for websockets. PR [#&#8203;13202](https://github.com/fastapi/fastapi/pull/13202) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for request\_form\_models . PR [#&#8203;13183](https://github.com/fastapi/fastapi/pull/13183) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for separate\_openapi\_schemas. PR [#&#8203;13201](https://github.com/fastapi/fastapi/pull/13201) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for security. PR [#&#8203;13200](https://github.com/fastapi/fastapi/pull/13200) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for schema\_extra\_example. PR [#&#8203;13197](https://github.com/fastapi/fastapi/pull/13197) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for request\_model. PR [#&#8203;13195](https://github.com/fastapi/fastapi/pull/13195) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for request\_forms\_and\_files. PR [#&#8203;13185](https://github.com/fastapi/fastapi/pull/13185) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for request\_forms. PR [#&#8203;13184](https://github.com/fastapi/fastapi/pull/13184) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for path\_query\_params. PR [#&#8203;13181](https://github.com/fastapi/fastapi/pull/13181) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for path\_operation\_configurations. PR [#&#8203;13180](https://github.com/fastapi/fastapi/pull/13180) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for header\_params. PR [#&#8203;13179](https://github.com/fastapi/fastapi/pull/13179) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for extra\_models. PR [#&#8203;13178](https://github.com/fastapi/fastapi/pull/13178) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for extra\_data\_types. PR [#&#8203;13177](https://github.com/fastapi/fastapi/pull/13177) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for cookie\_params. PR [#&#8203;13176](https://github.com/fastapi/fastapi/pull/13176) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for dependencies. PR [#&#8203;13174](https://github.com/fastapi/fastapi/pull/13174) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for body\_updates. PR [#&#8203;13172](https://github.com/fastapi/fastapi/pull/13172) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for body\_nested\_models. PR [#&#8203;13171](https://github.com/fastapi/fastapi/pull/13171) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for body\_multiple\_params. PR [#&#8203;13170](https://github.com/fastapi/fastapi/pull/13170) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for body\_fields. PR [#&#8203;13169](https://github.com/fastapi/fastapi/pull/13169) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for body. PR [#&#8203;13168](https://github.com/fastapi/fastapi/pull/13168) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for bigger\_applications. PR [#&#8203;13167](https://github.com/fastapi/fastapi/pull/13167) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for background\_tasks. PR [#&#8203;13166](https://github.com/fastapi/fastapi/pull/13166) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✅ Simplify tests for additional\_status\_codes. PR [#&#8203;13149](https://github.com/fastapi/fastapi/pull/13149) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Docs - ✏️ Update Strawberry integration docs. PR [#&#8203;13155](https://github.com/fastapi/fastapi/pull/13155) by [@&#8203;kinuax](https://github.com/kinuax). - 🔥 Remove unused Peewee tutorial files. PR [#&#8203;13158](https://github.com/fastapi/fastapi/pull/13158) by [@&#8203;alejsdev](https://github.com/alejsdev). - 📝 Update image in body-nested-model docs. PR [#&#8203;11063](https://github.com/fastapi/fastapi/pull/11063) by [@&#8203;untilhamza](https://github.com/untilhamza). - 📝 Update `fastapi-cli` UI examples in docs. PR [#&#8203;13107](https://github.com/fastapi/fastapi/pull/13107) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 👷 Add new GitHub Action to update contributors, translators, and translation reviewers. PR [#&#8203;13136](https://github.com/fastapi/fastapi/pull/13136) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✏️ Fix typo in `docs/en/docs/virtual-environments.md`. PR [#&#8203;13124](https://github.com/fastapi/fastapi/pull/13124) by [@&#8203;tiangolo](https://github.com/tiangolo). - ✏️ Fix error in `docs/en/docs/contributing.md`. PR [#&#8203;12899](https://github.com/fastapi/fastapi/pull/12899) by [@&#8203;kingsubin](https://github.com/kingsubin). - 📝 Minor corrections in `docs/en/docs/tutorial/sql-databases.md`. PR [#&#8203;13081](https://github.com/fastapi/fastapi/pull/13081) by [@&#8203;alv2017](https://github.com/alv2017). - 📝 Update includes in `docs/ru/docs/tutorial/query-param-models.md`. PR [#&#8203;12994](https://github.com/fastapi/fastapi/pull/12994) by [@&#8203;alejsdev](https://github.com/alejsdev). - ✏️ Fix typo in README installation instructions. PR [#&#8203;13011](https://github.com/fastapi/fastapi/pull/13011) by [@&#8203;dave-hay](https://github.com/dave-hay). - 📝 Update docs for `fastapi-cli`. PR [#&#8203;13031](https://github.com/fastapi/fastapi/pull/13031) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Translations - 🌐 Update Portuguese Translation for `docs/pt/docs/tutorial/request-forms.md`. PR [#&#8203;13216](https://github.com/fastapi/fastapi/pull/13216) by [@&#8203;Joao-Pedro-P-Holanda](https://github.com/Joao-Pedro-P-Holanda). - 🌐 Update Portuguese translation for `docs/pt/docs/advanced/settings.md`. PR [#&#8203;13209](https://github.com/fastapi/fastapi/pull/13209) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Add Portuguese translation for `docs/pt/docs/tutorial/security/oauth2-jwt.md`. PR [#&#8203;13205](https://github.com/fastapi/fastapi/pull/13205) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Add Indonesian translation for `docs/id/docs/index.md`. PR [#&#8203;13191](https://github.com/fastapi/fastapi/pull/13191) by [@&#8203;gerry-sabar](https://github.com/gerry-sabar). - 🌐 Add Indonesian translation for `docs/id/docs/tutorial/static-files.md`. PR [#&#8203;13092](https://github.com/fastapi/fastapi/pull/13092) by [@&#8203;guspan-tanadi](https://github.com/guspan-tanadi). - 🌐 Add Portuguese translation for `docs/pt/docs/tutorial/security/get-current-user.md`. PR [#&#8203;13188](https://github.com/fastapi/fastapi/pull/13188) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Remove Wrong Portuguese translations location for `docs/pt/docs/advanced/benchmarks.md`. PR [#&#8203;13187](https://github.com/fastapi/fastapi/pull/13187) by [@&#8203;ceb10n](https://github.com/ceb10n). - 🌐 Update Portuguese translations. PR [#&#8203;13156](https://github.com/fastapi/fastapi/pull/13156) by [@&#8203;nillvitor](https://github.com/nillvitor). - 🌐 Update Russian translation for `docs/ru/docs/tutorial/security/first-steps.md`. PR [#&#8203;13159](https://github.com/fastapi/fastapi/pull/13159) by [@&#8203;Yarous](https://github.com/Yarous). - ✏️ Delete unnecessary backspace in `docs/ja/docs/tutorial/path-params-numeric-validations.md`. PR [#&#8203;12238](https://github.com/fastapi/fastapi/pull/12238) by [@&#8203;FakeDocument](https://github.com/FakeDocument). - 🌐 Update Chinese translation for `docs/zh/docs/fastapi-cli.md`. PR [#&#8203;13102](https://github.com/fastapi/fastapi/pull/13102) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Add new Spanish translations for all docs with new LLM-assisted system using PydanticAI. PR [#&#8203;13122](https://github.com/fastapi/fastapi/pull/13122) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update existing Spanish translations using the new LLM-assisted system using PydanticAI. PR [#&#8203;13118](https://github.com/fastapi/fastapi/pull/13118) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🌐 Update Chinese translation for `docs/zh/docs/advanced/security/oauth2-scopes.md`. PR [#&#8203;13110](https://github.com/fastapi/fastapi/pull/13110) by [@&#8203;ChenPu2002](https://github.com/ChenPu2002). - 🌐 Add Indonesian translation for `docs/id/docs/tutorial/path-params.md`. PR [#&#8203;13086](https://github.com/fastapi/fastapi/pull/13086) by [@&#8203;gerry-sabar](https://github.com/gerry-sabar). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/sql-databases.md`. PR [#&#8203;13093](https://github.com/fastapi/fastapi/pull/13093) by [@&#8203;GeumBinLee](https://github.com/GeumBinLee). - 🌐 Update Chinese translation for `docs/zh/docs/async.md`. PR [#&#8203;13095](https://github.com/fastapi/fastapi/pull/13095) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Add Chinese translation for `docs/zh/docs/advanced/openapi-webhooks.md`. PR [#&#8203;13091](https://github.com/fastapi/fastapi/pull/13091) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Add Chinese translation for `docs/zh/docs/advanced/async-tests.md`. PR [#&#8203;13074](https://github.com/fastapi/fastapi/pull/13074) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Add Ukrainian translation for `docs/uk/docs/fastapi-cli.md`. PR [#&#8203;13020](https://github.com/fastapi/fastapi/pull/13020) by [@&#8203;ykertytsky](https://github.com/ykertytsky). - 🌐 Add Chinese translation for `docs/zh/docs/advanced/events.md`. PR [#&#8203;12512](https://github.com/fastapi/fastapi/pull/12512) by [@&#8203;ZhibangYue](https://github.com/ZhibangYue). - 🌐 Add Russian translation for `/docs/ru/docs/tutorial/sql-databases.md`. PR [#&#8203;13079](https://github.com/fastapi/fastapi/pull/13079) by [@&#8203;alv2017](https://github.com/alv2017). - 🌐 Update Chinese translation for `docs/zh/docs/advanced/testing-dependencies.md`. PR [#&#8203;13066](https://github.com/fastapi/fastapi/pull/13066) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Update Traditional Chinese translation for `docs/zh-hant/docs/tutorial/index.md`. PR [#&#8203;13075](https://github.com/fastapi/fastapi/pull/13075) by [@&#8203;codingjenny](https://github.com/codingjenny). - 🌐 Add Chinese translation for `docs/zh/docs/tutorial/sql-databases.md`. PR [#&#8203;13051](https://github.com/fastapi/fastapi/pull/13051) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Update Chinese translation for `docs/zh/docs/tutorial/query-params-str-validations.md`. PR [#&#8203;12928](https://github.com/fastapi/fastapi/pull/12928) by [@&#8203;Vincy1230](https://github.com/Vincy1230). - 🌐 Add Chinese translation for `docs/zh/docs/tutorial/header-param-models.md`. PR [#&#8203;13040](https://github.com/fastapi/fastapi/pull/13040) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Update Chinese translation for `docs/zh/docs/tutorial/path-params.md`. PR [#&#8203;12926](https://github.com/fastapi/fastapi/pull/12926) by [@&#8203;Vincy1230](https://github.com/Vincy1230). - 🌐 Update Chinese translation for `docs/zh/docs/tutorial/first-steps.md`. PR [#&#8203;12923](https://github.com/fastapi/fastapi/pull/12923) by [@&#8203;Vincy1230](https://github.com/Vincy1230). - 🌐 Update Russian translation for `docs/ru/docs/deployment/docker.md`. PR [#&#8203;13048](https://github.com/fastapi/fastapi/pull/13048) by [@&#8203;anklav24](https://github.com/anklav24). - 🌐 Add Portuguese translation for `docs/pt/docs/advanced/generate-clients.md`. PR [#&#8203;13030](https://github.com/fastapi/fastapi/pull/13030) by [@&#8203;vitumenezes](https://github.com/vitumenezes). - 🌐 Add Indonesian translation for `docs/id/docs/tutorial/first-steps.md`. PR [#&#8203;13042](https://github.com/fastapi/fastapi/pull/13042) by [@&#8203;gerry-sabar](https://github.com/gerry-sabar). - 🌐 Add Chinese translation for `docs/zh/docs/tutorial/cookie-param-models.md`. PR [#&#8203;13038](https://github.com/fastapi/fastapi/pull/13038) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Add Chinese translation for `docs/zh/docs/tutorial/request-form-models.md`. PR [#&#8203;13045](https://github.com/fastapi/fastapi/pull/13045) by [@&#8203;Zhongheng-Cheng](https://github.com/Zhongheng-Cheng). - 🌐 Add Russian translation for `docs/ru/docs/virtual-environments.md`. PR [#&#8203;13026](https://github.com/fastapi/fastapi/pull/13026) by [@&#8203;alv2017](https://github.com/alv2017). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/testing.md`. PR [#&#8203;12968](https://github.com/fastapi/fastapi/pull/12968) by [@&#8203;jts8257](https://github.com/jts8257). - 🌐 Add Korean translation for `docs/ko/docs/advanced/async-test.md`. PR [#&#8203;12918](https://github.com/fastapi/fastapi/pull/12918) by [@&#8203;icehongssii](https://github.com/icehongssii). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/security/oauth2-jwt.md`. PR [#&#8203;10601](https://github.com/fastapi/fastapi/pull/10601) by [@&#8203;AlertRED](https://github.com/AlertRED). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/security/simple-oauth2.md`. PR [#&#8203;10599](https://github.com/fastapi/fastapi/pull/10599) by [@&#8203;AlertRED](https://github.com/AlertRED). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/security/get-current-user.md`. PR [#&#8203;10594](https://github.com/fastapi/fastapi/pull/10594) by [@&#8203;AlertRED](https://github.com/AlertRED). - 🌐 Add Traditional Chinese translation for `docs/zh-hant/docs/features.md`. PR [#&#8203;12441](https://github.com/fastapi/fastapi/pull/12441) by [@&#8203;codingjenny](https://github.com/codingjenny). - 🌐 Add Traditional Chinese translation for `docs/zh-hant/docs/virtual-environments.md`. PR [#&#8203;12791](https://github.com/fastapi/fastapi/pull/12791) by [@&#8203;Vincy1230](https://github.com/Vincy1230). - 🌐 Add Korean translation for `docs/ko/docs/advanced/templates.md`. PR [#&#8203;12726](https://github.com/fastapi/fastapi/pull/12726) by [@&#8203;Heumhub](https://github.com/Heumhub). - 🌐 Add Russian translation for `docs/ru/docs/fastapi-cli.md`. PR [#&#8203;13041](https://github.com/fastapi/fastapi/pull/13041) by [@&#8203;alv2017](https://github.com/alv2017). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/cookie-param-models.md`. PR [#&#8203;13000](https://github.com/fastapi/fastapi/pull/13000) by [@&#8203;hard-coders](https://github.com/hard-coders). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/header-param-models.md`. PR [#&#8203;13001](https://github.com/fastapi/fastapi/pull/13001) by [@&#8203;hard-coders](https://github.com/hard-coders). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/request-form-models.md`. PR [#&#8203;13002](https://github.com/fastapi/fastapi/pull/13002) by [@&#8203;hard-coders](https://github.com/hard-coders). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/request-forms.md`. PR [#&#8203;13003](https://github.com/fastapi/fastapi/pull/13003) by [@&#8203;hard-coders](https://github.com/hard-coders). - 🌐 Add Korean translation for `docs/ko/docs/resources/index.md`. PR [#&#8203;13004](https://github.com/fastapi/fastapi/pull/13004) by [@&#8203;hard-coders](https://github.com/hard-coders). - 🌐 Add Korean translation for `docs/ko/docs/how-to/configure-swagger-ui.md`. PR [#&#8203;12898](https://github.com/fastapi/fastapi/pull/12898) by [@&#8203;nahyunkeem](https://github.com/nahyunkeem). - 🌐 Add Korean translation to `docs/ko/docs/advanced/additional-status-codes.md`. PR [#&#8203;12715](https://github.com/fastapi/fastapi/pull/12715) by [@&#8203;nahyunkeem](https://github.com/nahyunkeem). - 🌐 Add Traditional Chinese translation for `docs/zh-hant/docs/tutorial/first-steps.md`. PR [#&#8203;12467](https://github.com/fastapi/fastapi/pull/12467) by [@&#8203;codingjenny](https://github.com/codingjenny). ##### Internal - 🔧 Add Pydantic 2 trove classifier. PR [#&#8203;13199](https://github.com/fastapi/fastapi/pull/13199) by [@&#8203;johnthagen](https://github.com/johnthagen). - 👥 Update FastAPI People - Sponsors. PR [#&#8203;13231](https://github.com/fastapi/fastapi/pull/13231) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Refactor FastAPI People Sponsors to use 2 tokens. PR [#&#8203;13228](https://github.com/fastapi/fastapi/pull/13228) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Update token for FastAPI People - Sponsors. PR [#&#8203;13225](https://github.com/fastapi/fastapi/pull/13225) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Add independent CI automation for FastAPI People - Sponsors. PR [#&#8203;13221](https://github.com/fastapi/fastapi/pull/13221) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷 Add retries to Smokeshow. PR [#&#8203;13151](https://github.com/fastapi/fastapi/pull/13151) by [@&#8203;tiangolo](https://github.com/tiangolo). - 🔧 Update Speakeasy sponsor graphic. PR [#&#8203;13147](https://github.com/fastapi/fastapi/pull/13147) by [@&#8203;chailandau](https://github.com/chailandau). - 👥 Update FastAPI GitHub topic repositories. PR [#&#8203;13146](https://github.com/fastapi/fastapi/pull/13146) by [@&#8203;tiangolo](https://github.com/tiangolo). - 👷‍♀️ Add script for GitHub Topic Repositories and update External Links. PR [#&#8203;13135](https://github.com/fastapi/fastapi/pull/13135) by [@&#8203;alejsdev](https://github.com/alejsdev). - 👥 Update FastAPI People - Contributors and Translators. PR [#&#8203;13145](https://github.com/fastapi/fastapi/pull/13145) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump markdown-include-variants from 0.0.3 to 0.0.4. PR [#&#8203;13129](https://github.com/fastapi/fastapi/pull/13129) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump inline-snapshot from 0.14.0 to 0.18.1. PR [#&#8203;13132](https://github.com/fastapi/fastapi/pull/13132) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump mkdocs-macros-plugin from 1.0.5 to 1.3.7. PR [#&#8203;13133](https://github.com/fastapi/fastapi/pull/13133) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔨 Add internal scripts to generate language translations with PydanticAI, include Spanish prompt. PR [#&#8203;13123](https://github.com/fastapi/fastapi/pull/13123) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump astral-sh/setup-uv from 4 to 5. PR [#&#8203;13096](https://github.com/fastapi/fastapi/pull/13096) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Update sponsors: rename CryptAPI to BlockBee. PR [#&#8203;13078](https://github.com/fastapi/fastapi/pull/13078) by [@&#8203;tiangolo](https://github.com/tiangolo). - ⬆ Bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3. PR [#&#8203;13055](https://github.com/fastapi/fastapi/pull/13055) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump types-ujson from 5.7.0.1 to 5.10.0.20240515. PR [#&#8203;13018](https://github.com/fastapi/fastapi/pull/13018) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump black from 24.3.0 to 24.10.0. PR [#&#8203;13014](https://github.com/fastapi/fastapi/pull/13014) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump inline-snapshot from 0.13.0 to 0.14.0. PR [#&#8203;13017](https://github.com/fastapi/fastapi/pull/13017) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump dirty-equals from 0.6.0 to 0.8.0. PR [#&#8203;13015](https://github.com/fastapi/fastapi/pull/13015) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump cloudflare/wrangler-action from 3.12 to 3.13. PR [#&#8203;12996](https://github.com/fastapi/fastapi/pull/12996) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - ⬆ Bump astral-sh/setup-uv from 3 to 4. PR [#&#8203;12982](https://github.com/fastapi/fastapi/pull/12982) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot). - 🔧 Remove duplicate actions/checkout in `notify-translations.yml`. PR [#&#8203;12915](https://github.com/fastapi/fastapi/pull/12915) by [@&#8203;tinyboxvk](https://github.com/tinyboxvk). - 🔧 Update team members. PR [#&#8203;13033](https://github.com/fastapi/fastapi/pull/13033) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update sponsors: remove Codacy. PR [#&#8203;13032](https://github.com/fastapi/fastapi/pull/13032) by [@&#8203;tiangolo](https://github.com/tiangolo). ### [`v0.115.6`](https://github.com/fastapi/fastapi/releases/tag/0.115.6) [Compare Source](https://github.com/fastapi/fastapi/compare/0.115.5...0.115.6) ##### Fixes - 🐛 Preserve traceback when an exception is raised in sync dependency with `yield`. PR [#&#8203;5823](https://github.com/fastapi/fastapi/pull/5823) by [@&#8203;sombek](https://github.com/sombek). ##### Refactors - ♻️ Update tests and internals for compatibility with Pydantic >=2.10. PR [#&#8203;12971](https://github.com/fastapi/fastapi/pull/12971) by [@&#8203;tamird](https://github.com/tamird). ##### Docs - 📝 Update includes format in docs with an automated script. PR [#&#8203;12950](https://github.com/fastapi/fastapi/pull/12950) by [@&#8203;tiangolo](https://github.com/tiangolo). - 📝 Update includes for `docs/de/docs/advanced/using-request-directly.md`. PR [#&#8203;12685](https://github.com/fastapi/fastapi/pull/12685) by [@&#8203;alissadb](https://github.com/alissadb). - 📝 Update includes for `docs/de/docs/how-to/conditional-openapi.md`. PR [#&#8203;12689](https://github.com/fastapi/fastapi/pull/12689) by [@&#8203;alissadb](https://github.com/alissadb). ##### Translations - 🌐 Add Traditional Chinese translation for `docs/zh-hant/docs/async.md`. PR [#&#8203;12990](https://github.com/fastapi/fastapi/pull/12990) by [@&#8203;ILoveSorasakiHina](https://github.com/ILoveSorasakiHina). - 🌐 Add Traditional Chinese translation for `docs/zh-hant/docs/tutorial/query-param-models.md`. PR [#&#8203;12932](https://github.com/fastapi/fastapi/pull/12932) by [@&#8203;Vincy1230](https://github.com/Vincy1230). - 🌐 Add Korean translation for `docs/ko/docs/advanced/testing-dependencies.md`. PR [#&#8203;12992](https://github.com/fastapi/fastapi/pull/12992) by [@&#8203;Limsunoh](https://github.com/Limsunoh). - 🌐 Add Korean translation for `docs/ko/docs/advanced/websockets.md`. PR [#&#8203;12991](https://github.com/fastapi/fastapi/pull/12991) by [@&#8203;kwang1215](https://github.com/kwang1215). - 🌐 Add Portuguese translation for `docs/pt/docs/tutorial/response-model.md`. PR [#&#8203;12933](https://github.com/fastapi/fastapi/pull/12933) by [@&#8203;AndreBBM](https://github.com/AndreBBM). - 🌐 Add Korean translation for `docs/ko/docs/advanced/middlewares.md`. PR [#&#8203;12753](https://github.com/fastapi/fastapi/pull/12753) by [@&#8203;nahyunkeem](https://github.com/nahyunkeem). - 🌐 Add Korean translation for `docs/ko/docs/advanced/openapi-webhooks.md`. PR [#&#8203;12752](https://github.com/fastapi/fastapi/pull/12752) by [@&#8203;saeye](https://github.com/saeye). - 🌐 Add Chinese translation for `docs/zh/docs/tutorial/query-param-models.md`. PR [#&#8203;12931](https://github.com/fastapi/fastapi/pull/12931) by [@&#8203;Vincy1230](https://github.com/Vincy1230). - 🌐 Add Russian translation for `docs/ru/docs/tutorial/query-param-models.md`. PR [#&#8203;12445](https://github.com/fastapi/fastapi/pull/12445) by [@&#8203;gitgernit](https://github.com/gitgernit). - 🌐 Add Korean translation for `docs/ko/docs/tutorial/query-param-models.md`. PR [#&#8203;12940](https://github.com/fastapi/fastapi/pull/12940) by [@&#8203;jts8257](https://github.com/jts8257). - 🔥 Remove obsolete tutorial translation to Chinese for `docs/zh/docs/tutorial/sql-databases.md`, it references files that are no longer on the repo. PR [#&#8203;12949](https://github.com/fastapi/fastapi/pull/12949) by [@&#8203;tiangolo](https://github.com/tiangolo). ##### Internal - ⬆ \[pre-commit.ci] pre-commit autoupdate. PR [#&#8203;12954](https://github.com/fastapi/fastapi/pull/12954) by [@&#8203;pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci). </details> <details> <summary>encode/httpx (httpx)</summary> ### [`v0.28.1`](https://github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0281-6th-December-2024) [Compare Source](https://github.com/encode/httpx/compare/0.28.0...0.28.1) - Fix SSL case where `verify=False` together with client side certificates. </details> <details> <summary>pallets/jinja (jinja2)</summary> ### [`v3.1.6`](https://github.com/pallets/jinja/blob/HEAD/CHANGES.rst#Version-316) [Compare Source](https://github.com/pallets/jinja/compare/3.1.5...3.1.6) Released 2025-03-05 - The `|attr` filter does not bypass the environment's attribute lookup, allowing the sandbox to apply its checks. :ghsa:`cpwx-vrp4-4pq7` ### [`v3.1.5`](https://github.com/pallets/jinja/blob/HEAD/CHANGES.rst#Version-315) [Compare Source](https://github.com/pallets/jinja/compare/3.1.4...3.1.5) Released 2024-12-21 - The sandboxed environment handles indirect calls to `str.format`, such as by passing a stored reference to a filter that calls its argument. :ghsa:`q2x7-8rv6-6q7h` - Escape template name before formatting it into error messages, to avoid issues with names that contain f-string syntax. :issue:`1792`, :ghsa:`gmj6-6f8f-6699` - Sandbox does not allow `clear` and `pop` on known mutable sequence types. :issue:`2032` - Calling sync `render` for an async template uses `asyncio.run`. :pr:`1952` - Avoid unclosed `auto_aiter` warnings. :pr:`1960` - Return an `aclose`-able `AsyncGenerator` from `Template.generate_async`. :pr:`1960` - Avoid leaving `root_render_func()` unclosed in `Template.generate_async`. :pr:`1960` - Avoid leaving async generators unclosed in blocks, includes and extends. :pr:`1960` - The runtime uses the correct `concat` function for the current environment when calling block references. :issue:`1701` - Make `|unique` async-aware, allowing it to be used after another async-aware filter. :issue:`1781` - `|int` filter handles `OverflowError` from scientific notation. :issue:`1921` - Make compiling deterministic for tuple unpacking in a `{% set ... %}` call. :issue:`2021` - Fix dunder protocol (`copy`/`pickle`/etc) interaction with `Undefined` objects. :issue:`2025` - Fix `copy`/`pickle` support for the internal `missing` object. :issue:`2027` - `Environment.overlay(enable_async)` is applied correctly. :pr:`2061` - The error message from `FileSystemLoader` includes the paths that were searched. :issue:`1661` - `PackageLoader` shows a clearer error message when the package does not contain the templates directory. :issue:`1705` - Improve annotations for methods returning copies. :pr:`1880` - `urlize` does not add `mailto:` to values like `@a@b`. :pr:`1870` - Tests decorated with `@pass_context`` can be used with the ``|select`` filter. :issue:`1624\` - Using `set` for multiple assignment (`a, b = 1, 2`) does not fail when the target is a namespace attribute. :issue:`1413` - Using `set` in all branches of `{% if %}{% elif %}{% else %}` blocks does not cause the variable to be considered initially undefined. :issue:`1253` </details> <details> <summary>pydantic/pydantic-settings (pydantic-settings)</summary> ### [`v2.14.2`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.14.2) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2) #### What's Changed This is a security patch release. - Prevent `NestedSecretsSettingsSource` from following symlinks outside `secrets_dir` by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;889](https://github.com/pydantic/pydantic-settings/pull/889) - Prepare release 2.14.2 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;890](https://github.com/pydantic/pydantic-settings/pull/890) ##### Security Fixes [GHSA-4xgf-cpjx-pc3j](https://github.com/pydantic/pydantic-settings/security/advisories/GHSA-4xgf-cpjx-pc3j): `NestedSecretsSettingsSource` with `secrets_nested_subdir=True` could follow a symbolic link inside `secrets_dir` pointing outside it, reading out-of-tree files into settings values and bypassing the `secrets_dir_max_size` cap. Affected versions: `>= 2.12.0, < 2.14.2`. **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.14.1...v2.14.2> ### [`v2.14.1`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.14.1) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1) #### What's Changed - Bump the python-packages group with 4 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;850](https://github.com/pydantic/pydantic-settings/pull/850) - Bump the python-packages group with 5 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;854](https://github.com/pydantic/pydantic-settings/pull/854) - Bump the github-actions group with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;853](https://github.com/pydantic/pydantic-settings/pull/853) - Bump the python-packages group with 2 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;856](https://github.com/pydantic/pydantic-settings/pull/856) - Fix field named `cls` conflicting with classmethod parameter by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;858](https://github.com/pydantic/pydantic-settings/pull/858) - Prepare release 2.14.1 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;859](https://github.com/pydantic/pydantic-settings/pull/859) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1> ### [`v2.14.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.14.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0) #### What's Changed - Fix parsing env vars into Optional Strict types by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;792](https://github.com/pydantic/pydantic-settings/pull/792) - Fix RecursionError with mutually recursive models in CLI by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;794](https://github.com/pydantic/pydantic-settings/pull/794) - Fix env\_file from model\_config ignored in CliApp.run() ([#&#8203;795](https://github.com/pydantic/pydantic-settings/issues/795)) by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;796](https://github.com/pydantic/pydantic-settings/pull/796) - Update dependencies by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;798](https://github.com/pydantic/pydantic-settings/pull/798) - Add Dependabot configuration by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;801](https://github.com/pydantic/pydantic-settings/pull/801) - Bump samuelcolvin/check-python-version from 4.1 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;802](https://github.com/pydantic/pydantic-settings/pull/802) - Bump actions/upload-artifact from 4 to 7 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;803](https://github.com/pydantic/pydantic-settings/pull/803) - Bump actions/checkout from 4 to 6 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;804](https://github.com/pydantic/pydantic-settings/pull/804) - Bump astral-sh/setup-uv from 5 to 7 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;805](https://github.com/pydantic/pydantic-settings/pull/805) - Bump actions/setup-python from 5 to 6 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;806](https://github.com/pydantic/pydantic-settings/pull/806) - Ignore chardet and group GitHub Actions in Dependabot by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;808](https://github.com/pydantic/pydantic-settings/pull/808) - Bump actions/download-artifact from 4 to 8 in the github-actions group by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;809](https://github.com/pydantic/pydantic-settings/pull/809) - Bump the python-packages group with 2 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;810](https://github.com/pydantic/pydantic-settings/pull/810) - Support reading .env files from FIFOs (e.g. 1Password Environments) by [@&#8203;JacobHayes](https://github.com/JacobHayes) in [#&#8203;776](https://github.com/pydantic/pydantic-settings/pull/776) - Fix AliasChoices ignored when changing provider priority by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;813](https://github.com/pydantic/pydantic-settings/pull/813) - fix: resolve KeyError in run\_subcommand for underscore field names by [@&#8203;bradykieffer](https://github.com/bradykieffer) in [#&#8203;799](https://github.com/pydantic/pydantic-settings/pull/799) - Bump the python-packages group with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;814](https://github.com/pydantic/pydantic-settings/pull/814) - Fix `Literal[numeric Enum]` coercion for CLI and env vars by [@&#8203;m9810223](https://github.com/m9810223) in [#&#8203;811](https://github.com/pydantic/pydantic-settings/pull/811) - Fix nested discriminated unions not discovered by env/CLI providers by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;816](https://github.com/pydantic/pydantic-settings/pull/816) - Bump the python-packages group with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;820](https://github.com/pydantic/pydantic-settings/pull/820) - CLI ensure env nested max split internally. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;821](https://github.com/pydantic/pydantic-settings/pull/821) - Bump the python-packages group with 4 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;824](https://github.com/pydantic/pydantic-settings/pull/824) - Migrate `boto3-stubs` to `types-boto3` by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;831](https://github.com/pydantic/pydantic-settings/pull/831) - Fix CLI not recognizing field name with validate\_by\_name and AliasChoices by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;826](https://github.com/pydantic/pydantic-settings/pull/826) - Allow customisation of the dotevn setting source to filter variables by [@&#8203;CaselIT](https://github.com/CaselIT) in [#&#8203;832](https://github.com/pydantic/pydantic-settings/pull/832) - Bump the python-packages group with 3 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;833](https://github.com/pydantic/pydantic-settings/pull/833) - Introduce yamlfmt by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;836](https://github.com/pydantic/pydantic-settings/pull/836) - Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;837](https://github.com/pydantic/pydantic-settings/pull/837) - Introduce zizmor by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;838](https://github.com/pydantic/pydantic-settings/pull/838) - Fix CliPositionalArg\[list\[CustomType]] crash for custom types by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;839](https://github.com/pydantic/pydantic-settings/pull/839) - Add note about Mypy plugin for `BaseSettings.__init__()` by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;842](https://github.com/pydantic/pydantic-settings/pull/842) - Fix `cli_ignore_unknown_args=True` not working on subcommands by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;844](https://github.com/pydantic/pydantic-settings/pull/844) - Bump the python-packages group with 4 updates by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;847](https://github.com/pydantic/pydantic-settings/pull/847) - Fix CLI descriptions lost under `python -OO` by falling back to `json_schema_extra` by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;843](https://github.com/pydantic/pydantic-settings/pull/843) - Prepare release 2.14.0 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;848](https://github.com/pydantic/pydantic-settings/pull/848) #### New Contributors - [@&#8203;dependabot](https://github.com/dependabot)\[bot] made their first contribution in [#&#8203;802](https://github.com/pydantic/pydantic-settings/pull/802) - [@&#8203;JacobHayes](https://github.com/JacobHayes) made their first contribution in [#&#8203;776](https://github.com/pydantic/pydantic-settings/pull/776) - [@&#8203;bradykieffer](https://github.com/bradykieffer) made their first contribution in [#&#8203;799](https://github.com/pydantic/pydantic-settings/pull/799) - [@&#8203;CaselIT](https://github.com/CaselIT) made their first contribution in [#&#8203;832](https://github.com/pydantic/pydantic-settings/pull/832) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0> ### [`v2.13.1`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.13.1) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.13.0...v2.13.1) #### What's Changed - Fix regression for bool fields since 2.13.0 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;784](https://github.com/pydantic/pydantic-settings/pull/784) - Fix RecursionError with self-referential models in CliApp by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;783](https://github.com/pydantic/pydantic-settings/pull/783) - Fix CLI parsing error for set field types since 2.13.0 ([#&#8203;787](https://github.com/pydantic/pydantic-settings/issues/787)) by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;788](https://github.com/pydantic/pydantic-settings/pull/788) - Fix AttributeError with nested env vars for dict fields ([#&#8203;785](https://github.com/pydantic/pydantic-settings/issues/785)) by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;786](https://github.com/pydantic/pydantic-settings/pull/786) - Fix JSON decoding for parameterized PEP 695 type aliases by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;780](https://github.com/pydantic/pydantic-settings/pull/780) - v2.13.1 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;790](https://github.com/pydantic/pydantic-settings/pull/790) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.13.0...v2.13.1> ### [`v2.13.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.13.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0) #### What's Changed - fix: Deterministic alias selection when using validate\_by\_name by [@&#8203;chbndrhnns](https://github.com/chbndrhnns) in [#&#8203;707](https://github.com/pydantic/pydantic-settings/pull/707) - add deep merge functionality to config file sources by [@&#8203;pmeier](https://github.com/pmeier) in [#&#8203;698](https://github.com/pydantic/pydantic-settings/pull/698) - Add support for AWS Secrets Manager VersionId parameter by [@&#8203;jcyamacho](https://github.com/jcyamacho) in [#&#8203;708](https://github.com/pydantic/pydantic-settings/pull/708) - bugfix: Return `None` for inaccessible GCP Secret Manager secrets by [@&#8203;zaphod72](https://github.com/zaphod72) in [#&#8203;712](https://github.com/pydantic/pydantic-settings/pull/712) - Bugfix for cli\_kebab\_case="all" and CliImplicitFlag\[bool] by [@&#8203;Digity101](https://github.com/Digity101) in [#&#8203;702](https://github.com/pydantic/pydantic-settings/pull/702) - Unpack type alisases when looking for `NoDecode` by [@&#8203;tselepakis](https://github.com/tselepakis) in [#&#8203;695](https://github.com/pydantic/pydantic-settings/pull/695) - CliToggleFlag and CliDualFlag by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;717](https://github.com/pydantic/pydantic-settings/pull/717) - Fix for CLI duplicate enum field values. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;722](https://github.com/pydantic/pydantic-settings/pull/722) - fixed load nested config from env by [@&#8203;Sube-py](https://github.com/Sube-py) in [#&#8203;723](https://github.com/pydantic/pydantic-settings/pull/723) - Add non-Path files support (for example Traversable) and open files using Path.open method by [@&#8203;mahenzon](https://github.com/mahenzon) in [#&#8203;724](https://github.com/pydantic/pydantic-settings/pull/724) - add one more traversable test by [@&#8203;mahenzon](https://github.com/mahenzon) in [#&#8203;725](https://github.com/pydantic/pydantic-settings/pull/725) - CLI fix fox external list args. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;727](https://github.com/pydantic/pydantic-settings/pull/727) - fix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by [@&#8203;ezwiefel](https://github.com/ezwiefel) in [#&#8203;730](https://github.com/pydantic/pydantic-settings/pull/730) - CLI test fixes for help text formatting. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;735](https://github.com/pydantic/pydantic-settings/pull/735) - Avoid conflicts with the `NAME` environment variable in WSL by [@&#8203;kzrnm](https://github.com/kzrnm) in [#&#8203;747](https://github.com/pydantic/pydantic-settings/pull/747) - fix: When restoring init kwargs, use deterministic order by [@&#8203;chbndrhnns](https://github.com/chbndrhnns) in [#&#8203;746](https://github.com/pydantic/pydantic-settings/pull/746) - Add env\_prefix\_target by [@&#8203;kzrnm](https://github.com/kzrnm) in [#&#8203;749](https://github.com/pydantic/pydantic-settings/pull/749) - Remove `(default: …)` in the help message for `CliToggleFlag` by [@&#8203;kzrnm](https://github.com/kzrnm) in [#&#8203;740](https://github.com/pydantic/pydantic-settings/pull/740) - Add support for CLI serialize styles. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;755](https://github.com/pydantic/pydantic-settings/pull/755) - Add support for overriding default help on CLI internal parser. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;758](https://github.com/pydantic/pydantic-settings/pull/758) - CLI format\_help method support by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;759](https://github.com/pydantic/pydantic-settings/pull/759) - feat(gcp): support SecretVersion annotation for per-field secret versioning by [@&#8203;ezwiefel](https://github.com/ezwiefel) in [#&#8203;763](https://github.com/pydantic/pydantic-settings/pull/763) - Allow `snake_case_conversion` with `env_prefix` for Azure Key Vault source by [@&#8203;cstarkers](https://github.com/cstarkers) in [#&#8203;762](https://github.com/pydantic/pydantic-settings/pull/762) - fix: Only override preferred\_key when no value was found by [@&#8203;chbndrhnns](https://github.com/chbndrhnns) in [#&#8203;767](https://github.com/pydantic/pydantic-settings/pull/767) - Update deps by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;768](https://github.com/pydantic/pydantic-settings/pull/768) - CLI coerce numeric types. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;769](https://github.com/pydantic/pydantic-settings/pull/769) - CLI Union Discriminator Choices in Help by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;764](https://github.com/pydantic/pydantic-settings/pull/764) - Add nested path support for yaml\_config\_section (fixes [#&#8203;772](https://github.com/pydantic/pydantic-settings/issues/772)) by [@&#8203;hugo-romero-mm](https://github.com/hugo-romero-mm) in [#&#8203;773](https://github.com/pydantic/pydantic-settings/pull/773) - Prepare release 2.13.0 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;777](https://github.com/pydantic/pydantic-settings/pull/777) #### New Contributors - [@&#8203;pmeier](https://github.com/pmeier) made their first contribution in [#&#8203;698](https://github.com/pydantic/pydantic-settings/pull/698) - [@&#8203;jcyamacho](https://github.com/jcyamacho) made their first contribution in [#&#8203;708](https://github.com/pydantic/pydantic-settings/pull/708) - [@&#8203;zaphod72](https://github.com/zaphod72) made their first contribution in [#&#8203;712](https://github.com/pydantic/pydantic-settings/pull/712) - [@&#8203;Digity101](https://github.com/Digity101) made their first contribution in [#&#8203;702](https://github.com/pydantic/pydantic-settings/pull/702) - [@&#8203;Sube-py](https://github.com/Sube-py) made their first contribution in [#&#8203;723](https://github.com/pydantic/pydantic-settings/pull/723) - [@&#8203;mahenzon](https://github.com/mahenzon) made their first contribution in [#&#8203;724](https://github.com/pydantic/pydantic-settings/pull/724) - [@&#8203;kzrnm](https://github.com/kzrnm) made their first contribution in [#&#8203;747](https://github.com/pydantic/pydantic-settings/pull/747) - [@&#8203;cstarkers](https://github.com/cstarkers) made their first contribution in [#&#8203;762](https://github.com/pydantic/pydantic-settings/pull/762) - [@&#8203;hugo-romero-mm](https://github.com/hugo-romero-mm) made their first contribution in [#&#8203;773](https://github.com/pydantic/pydantic-settings/pull/773) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0> ### [`v2.12.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.12.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0) #### What's Changed - Support for enum kebab case. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;686](https://github.com/pydantic/pydantic-settings/pull/686) - Apply source order: init > env > dotenv > secrets > defaults and pres… by [@&#8203;chbndrhnns](https://github.com/chbndrhnns) in [#&#8203;688](https://github.com/pydantic/pydantic-settings/pull/688) - Add NestedSecretsSettings source by [@&#8203;makukha](https://github.com/makukha) in [#&#8203;690](https://github.com/pydantic/pydantic-settings/pull/690) - Strip non-explicit default values. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;692](https://github.com/pydantic/pydantic-settings/pull/692) - Coerce env vars if strict is True. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;693](https://github.com/pydantic/pydantic-settings/pull/693) - Restore init kwarg names before returning final state dictionary. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;700](https://github.com/pydantic/pydantic-settings/pull/700) - Drop Python3.9 support by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;699](https://github.com/pydantic/pydantic-settings/pull/699) - Adapt test\_protected\_namespace\_defaults for dev. Pydantic by [@&#8203;musicinmybrain](https://github.com/musicinmybrain) in [#&#8203;637](https://github.com/pydantic/pydantic-settings/pull/637) - Add Python 3.14 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;704](https://github.com/pydantic/pydantic-settings/pull/704) - Prepare release 2.12 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;705](https://github.com/pydantic/pydantic-settings/pull/705) #### New Contributors - [@&#8203;chbndrhnns](https://github.com/chbndrhnns) made their first contribution in [#&#8203;688](https://github.com/pydantic/pydantic-settings/pull/688) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0> ### [`v2.11.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.11.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0) #### What's Changed - CLI Serialize Support by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;643](https://github.com/pydantic/pydantic-settings/pull/643) - Inspect type aliases to determine if an annotation is complex by [@&#8203;tselepakis](https://github.com/tselepakis) in [#&#8203;644](https://github.com/pydantic/pydantic-settings/pull/644) - Revert "fix: Respect 'cli\_parse\_args' from model\_config with settings\_customise\_sources ([#&#8203;611](https://github.com/pydantic/pydantic-settings/issues/611))" by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;655](https://github.com/pydantic/pydantic-settings/pull/655) - Remove parsing of command line arguments from `CliSettingsSource.__init__`. by [@&#8203;trygve-baerland](https://github.com/trygve-baerland) in [#&#8203;656](https://github.com/pydantic/pydantic-settings/pull/656) - turn off allow\_abbrev on subparsers by [@&#8203;mroch](https://github.com/mroch) in [#&#8203;658](https://github.com/pydantic/pydantic-settings/pull/658) - CLI Serialization Fixes by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;649](https://github.com/pydantic/pydantic-settings/pull/649) - Fix PydanticModel type checking. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;659](https://github.com/pydantic/pydantic-settings/pull/659) - Avoid env\_prefix falling back to env vars without prefix by [@&#8203;tselepakis](https://github.com/tselepakis) in [#&#8203;648](https://github.com/pydantic/pydantic-settings/pull/648) - Warn if model\_config sets unused keys for missing settings sources by [@&#8203;HomerusJa](https://github.com/HomerusJa) in [#&#8203;663](https://github.com/pydantic/pydantic-settings/pull/663) - Included endpoint\_url kwarg in AWSSecretsManagerSettingsSource class by [@&#8203;adrianohrl](https://github.com/adrianohrl) in [#&#8203;664](https://github.com/pydantic/pydantic-settings/pull/664) - Fix typo ("Accesing") in the "Adding sources" docs by [@&#8203;deepyaman](https://github.com/deepyaman) in [#&#8203;668](https://github.com/pydantic/pydantic-settings/pull/668) - CLI Windows Path Fix by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;669](https://github.com/pydantic/pydantic-settings/pull/669) - Cli root model support by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;677](https://github.com/pydantic/pydantic-settings/pull/677) - Snake case conversion in Azure Key Vault by [@&#8203;AndreuCodina](https://github.com/AndreuCodina) in [#&#8203;680](https://github.com/pydantic/pydantic-settings/pull/680) - Make `InitSettingsSource` resolution deterministic by [@&#8203;enrico-stauss](https://github.com/enrico-stauss) in [#&#8203;681](https://github.com/pydantic/pydantic-settings/pull/681) - Update deps by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;683](https://github.com/pydantic/pydantic-settings/pull/683) #### New Contributors - [@&#8203;tselepakis](https://github.com/tselepakis) made their first contribution in [#&#8203;644](https://github.com/pydantic/pydantic-settings/pull/644) - [@&#8203;trygve-baerland](https://github.com/trygve-baerland) made their first contribution in [#&#8203;656](https://github.com/pydantic/pydantic-settings/pull/656) - [@&#8203;mroch](https://github.com/mroch) made their first contribution in [#&#8203;658](https://github.com/pydantic/pydantic-settings/pull/658) - [@&#8203;HomerusJa](https://github.com/HomerusJa) made their first contribution in [#&#8203;663](https://github.com/pydantic/pydantic-settings/pull/663) - [@&#8203;adrianohrl](https://github.com/adrianohrl) made their first contribution in [#&#8203;664](https://github.com/pydantic/pydantic-settings/pull/664) - [@&#8203;deepyaman](https://github.com/deepyaman) made their first contribution in [#&#8203;668](https://github.com/pydantic/pydantic-settings/pull/668) - [@&#8203;enrico-stauss](https://github.com/enrico-stauss) made their first contribution in [#&#8203;681](https://github.com/pydantic/pydantic-settings/pull/681) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0> ### [`v2.10.1`](https://github.com/pydantic/pydantic-settings/releases/tag/2.10.1) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1) #### What's Changed - Fix UnboundLocalError error in \_replace\_field\_names\_case\_insensitively by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;639](https://github.com/pydantic/pydantic-settings/pull/639) - Remove unknown file reference in documentation by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;640](https://github.com/pydantic/pydantic-settings/pull/640) - Prepare release 2.10.1 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;642](https://github.com/pydantic/pydantic-settings/pull/642) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1> ### [`v2.10.0`](https://github.com/pydantic/pydantic-settings/releases/tag/2.10.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0) #### What's Changed - Fix running tests when azure-keyvault-secrets is not installed by [@&#8203;CyberTailor](https://github.com/CyberTailor) in [#&#8203;601](https://github.com/pydantic/pydantic-settings/pull/601) - Fix running tests when google-cloud-secret-manager is not installed by [@&#8203;CyberTailor](https://github.com/CyberTailor) in [#&#8203;602](https://github.com/pydantic/pydantic-settings/pull/602) - Support loading a specific nested key from YAML in YamlConfigSettingsSource by [@&#8203;Seunghan-Jung](https://github.com/Seunghan-Jung) in [#&#8203;603](https://github.com/pydantic/pydantic-settings/pull/603) - Fix CLI suppression for model group help by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;604](https://github.com/pydantic/pydantic-settings/pull/604) - Fix missing DEFAULT\_PATH import by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;606](https://github.com/pydantic/pydantic-settings/pull/606) - Fix case-insensitive handling of nested aliases in EnvironmentSettingsSource by [@&#8203;d15ky](https://github.com/d15ky) in [#&#8203;608](https://github.com/pydantic/pydantic-settings/pull/608) - Azure Key Vault case insensitive support and dash-underscore translation by [@&#8203;d15ky](https://github.com/d15ky) in [#&#8203;607](https://github.com/pydantic/pydantic-settings/pull/607) - fix: Respect 'cli\_parse\_args' from model\_config with settings\_customise\_sources by [@&#8203;karta9821](https://github.com/karta9821) in [#&#8203;611](https://github.com/pydantic/pydantic-settings/pull/611) - Bump astral-sh/setup-uv by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;612](https://github.com/pydantic/pydantic-settings/pull/612) - Update packages by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;613](https://github.com/pydantic/pydantic-settings/pull/613) - Update README.md by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;616](https://github.com/pydantic/pydantic-settings/pull/616) - Fix CI badge by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;617](https://github.com/pydantic/pydantic-settings/pull/617) - Update dependencies by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;618](https://github.com/pydantic/pydantic-settings/pull/618) - Fix coverage report by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;619](https://github.com/pydantic/pydantic-settings/pull/619) - Fix \_consume\_object\_or\_array on unbalanced brackets in JSON strings by [@&#8203;andryak](https://github.com/andryak) in [#&#8203;621](https://github.com/pydantic/pydantic-settings/pull/621) - add region as a parameter to aws secret manager by [@&#8203;barakor-vs](https://github.com/barakor-vs) in [#&#8203;622](https://github.com/pydantic/pydantic-settings/pull/622) - Expose GCP Secret Manager case sensitive option by [@&#8203;bellmatthewf](https://github.com/bellmatthewf) in [#&#8203;626](https://github.com/pydantic/pydantic-settings/pull/626) - Update deps by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;633](https://github.com/pydantic/pydantic-settings/pull/633) - feat: Add `cli_shortcuts` to CLI settings by [@&#8203;karta9821](https://github.com/karta9821) in [#&#8203;624](https://github.com/pydantic/pydantic-settings/pull/624) - Expose AWS Secrets Manager case sensitive option by [@&#8203;femiadebayo](https://github.com/femiadebayo) in [#&#8203;629](https://github.com/pydantic/pydantic-settings/pull/629) - Prepare release 2.10.0 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;635](https://github.com/pydantic/pydantic-settings/pull/635) #### New Contributors - [@&#8203;Seunghan-Jung](https://github.com/Seunghan-Jung) made their first contribution in [#&#8203;603](https://github.com/pydantic/pydantic-settings/pull/603) - [@&#8203;d15ky](https://github.com/d15ky) made their first contribution in [#&#8203;608](https://github.com/pydantic/pydantic-settings/pull/608) - [@&#8203;karta9821](https://github.com/karta9821) made their first contribution in [#&#8203;611](https://github.com/pydantic/pydantic-settings/pull/611) - [@&#8203;andryak](https://github.com/andryak) made their first contribution in [#&#8203;621](https://github.com/pydantic/pydantic-settings/pull/621) - [@&#8203;barakor-vs](https://github.com/barakor-vs) made their first contribution in [#&#8203;622](https://github.com/pydantic/pydantic-settings/pull/622) - [@&#8203;bellmatthewf](https://github.com/bellmatthewf) made their first contribution in [#&#8203;626](https://github.com/pydantic/pydantic-settings/pull/626) - [@&#8203;femiadebayo](https://github.com/femiadebayo) made their first contribution in [#&#8203;629](https://github.com/pydantic/pydantic-settings/pull/629) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0> ### [`v2.9.1`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.9.1) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.9.0...v2.9.1) #### What's Changed - fix: Expose ConfigFileSourceMixing on top level sources/**init**.py by [@&#8203;jbw-vtl](https://github.com/jbw-vtl) in [#&#8203;597](https://github.com/pydantic/pydantic-settings/pull/597) - Fix typo in gcp secret manager error message by [@&#8203;christian-heusel](https://github.com/christian-heusel) in [#&#8203;598](https://github.com/pydantic/pydantic-settings/pull/598) - Prepare release 2.9.1 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;600](https://github.com/pydantic/pydantic-settings/pull/600) #### New Contributors - [@&#8203;jbw-vtl](https://github.com/jbw-vtl) made their first contribution in [#&#8203;597](https://github.com/pydantic/pydantic-settings/pull/597) - [@&#8203;christian-heusel](https://github.com/christian-heusel) made their first contribution in [#&#8203;598](https://github.com/pydantic/pydantic-settings/pull/598) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.9.0...v2.9.1> ### [`v2.9.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.9.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.8.1...v2.9.0) #### What's Changed - Drop support for Python 3.8 by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;560](https://github.com/pydantic/pydantic-settings/pull/560) - Switch to `typing-inspection` by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;556](https://github.com/pydantic/pydantic-settings/pull/556) - Introduce `uv` for Project Management by [@&#8203;KanchiShimono](https://github.com/KanchiShimono) in [#&#8203;547](https://github.com/pydantic/pydantic-settings/pull/547) - Refactor sources.py into a subpackage ([#&#8203;546](https://github.com/pydantic/pydantic-settings/issues/546)) by [@&#8203;ezwiefel](https://github.com/ezwiefel) in [#&#8203;548](https://github.com/pydantic/pydantic-settings/pull/548) - chore: cleanup by [@&#8203;CodeWithEmad](https://github.com/CodeWithEmad) in [#&#8203;563](https://github.com/pydantic/pydantic-settings/pull/563) - Fix typo in documentation by [@&#8203;CodeWithEmad](https://github.com/CodeWithEmad) in [#&#8203;564](https://github.com/pydantic/pydantic-settings/pull/564) - Add support for AWS Secrets Manager by [@&#8203;mavwolverine](https://github.com/mavwolverine) in [#&#8203;532](https://github.com/pydantic/pydantic-settings/pull/532) - Fix minor typo: conotations => connotations by [@&#8203;svenevs](https://github.com/svenevs) in [#&#8203;577](https://github.com/pydantic/pydantic-settings/pull/577) - Azure Key Vault: Don't load disabled secret by [@&#8203;AndreuCodina](https://github.com/AndreuCodina) in [#&#8203;578](https://github.com/pydantic/pydantic-settings/pull/578) - Add support for GCP Secret Manager by [@&#8203;ezwiefel](https://github.com/ezwiefel) in [#&#8203;567](https://github.com/pydantic/pydantic-settings/pull/567) - CLI JSON Optional Default by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;581](https://github.com/pydantic/pydantic-settings/pull/581) - Fix for env nested enum. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;589](https://github.com/pydantic/pydantic-settings/pull/589) - CLI submodel suppress. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;587](https://github.com/pydantic/pydantic-settings/pull/587) - Cli retrieve unknown args by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;588](https://github.com/pydantic/pydantic-settings/pull/588) - Update pydantic by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;593](https://github.com/pydantic/pydantic-settings/pull/593) - Fix check in CI by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;595](https://github.com/pydantic/pydantic-settings/pull/595) #### New Contributors - [@&#8203;ezwiefel](https://github.com/ezwiefel) made their first contribution in [#&#8203;548](https://github.com/pydantic/pydantic-settings/pull/548) - [@&#8203;CodeWithEmad](https://github.com/CodeWithEmad) made their first contribution in [#&#8203;563](https://github.com/pydantic/pydantic-settings/pull/563) - [@&#8203;mavwolverine](https://github.com/mavwolverine) made their first contribution in [#&#8203;532](https://github.com/pydantic/pydantic-settings/pull/532) - [@&#8203;svenevs](https://github.com/svenevs) made their first contribution in [#&#8203;577](https://github.com/pydantic/pydantic-settings/pull/577) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.8.1...v2.9.0> ### [`v2.8.1`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.8.1) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.8.0...v2.8.1) #### What's Changed - Fix for init source kwarg alias resolution. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;550](https://github.com/pydantic/pydantic-settings/pull/550) - Revert usage of positional only argument in `BaseSettings.__init__` by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;557](https://github.com/pydantic/pydantic-settings/pull/557) - Revert use of `object` instead of `Any` by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;559](https://github.com/pydantic/pydantic-settings/pull/559) - Prepare release 2.8.1 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;558](https://github.com/pydantic/pydantic-settings/pull/558) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.8.0...v2.8.1> ### [`v2.8.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.8.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.7.1...v2.8.0) #### What's Changed - CLI support for optional and variadic positional args by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;519](https://github.com/pydantic/pydantic-settings/pull/519) - Improve env\_prefix config doc by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;523](https://github.com/pydantic/pydantic-settings/pull/523) - Add env\_nested\_max\_split setting by [@&#8203;gsakkis](https://github.com/gsakkis) in [#&#8203;534](https://github.com/pydantic/pydantic-settings/pull/534) - Avoid using `Any` in `BaseSettings` signature to avoid mypy errors by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;529](https://github.com/pydantic/pydantic-settings/pull/529) - Asynchronous CLI methods in CliApp by [@&#8203;KanchiShimono](https://github.com/KanchiShimono) in [#&#8203;533](https://github.com/pydantic/pydantic-settings/pull/533) - Don't explode env vars if env\_nested\_delimiter is empty by [@&#8203;gsakkis](https://github.com/gsakkis) in [#&#8203;540](https://github.com/pydantic/pydantic-settings/pull/540) - Prepare release 2.8.0 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;541](https://github.com/pydantic/pydantic-settings/pull/541) #### New Contributors - [@&#8203;gsakkis](https://github.com/gsakkis) made their first contribution in [#&#8203;534](https://github.com/pydantic/pydantic-settings/pull/534) - [@&#8203;KanchiShimono](https://github.com/KanchiShimono) made their first contribution in [#&#8203;533](https://github.com/pydantic/pydantic-settings/pull/533) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.7.1...v2.8.0> ### [`v2.7.1`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.7.1) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.7.0...v2.7.1) #### What's Changed - Move preferred alias resolution to private method by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;507](https://github.com/pydantic/pydantic-settings/pull/507) - Prepare release 2.7.1 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;511](https://github.com/pydantic/pydantic-settings/pull/511) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.7.0...v2.7.1> ### [`v2.7.0`](https://github.com/pydantic/pydantic-settings/releases/tag/v2.7.0) [Compare Source](https://github.com/pydantic/pydantic-settings/compare/v2.6.1...v2.7.0) #### What's Changed - Fix `test_protected_namespace_defaults` with -Wdefault by [@&#8203;CyberTailor](https://github.com/CyberTailor) in [#&#8203;462](https://github.com/pydantic/pydantic-settings/pull/462) - Make tests more robust to the running environment by [@&#8203;CyberTailor](https://github.com/CyberTailor) in [#&#8203;464](https://github.com/pydantic/pydantic-settings/pull/464) - Fix rendering of annotations in code example by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;470](https://github.com/pydantic/pydantic-settings/pull/470) - Fix alias resolution for default settings source. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;468](https://github.com/pydantic/pydantic-settings/pull/468) - Use the class name in the `__repr__` implementations by [@&#8203;dlax](https://github.com/dlax) in [#&#8203;465](https://github.com/pydantic/pydantic-settings/pull/465) - Fix default help text for union of submodels. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;472](https://github.com/pydantic/pydantic-settings/pull/472) - Add support for CliMutuallyExclusiveGroup. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;473](https://github.com/pydantic/pydantic-settings/pull/473) - Disable abbreviations on internal parser. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;477](https://github.com/pydantic/pydantic-settings/pull/477) - Fix Secret field parsing by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;478](https://github.com/pydantic/pydantic-settings/pull/478) - Fix alias resolution to use preferred key. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;481](https://github.com/pydantic/pydantic-settings/pull/481) - Strip annotated when getting submodels during CLI parsing. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;490](https://github.com/pydantic/pydantic-settings/pull/490) - Removing return type from the function in test by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;491](https://github.com/pydantic/pydantic-settings/pull/491) - Relax default protected\_namespaces by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;483](https://github.com/pydantic/pydantic-settings/pull/483) - Add support for CLI kebab case flag. by [@&#8203;kschwab](https://github.com/kschwab) in [#&#8203;489](https://github.com/pydantic/pydantic-settings/pull/489) - Change reference of default values validation in documentation by [@&#8203;Viicos](https://github.com/Viicos) in [#&#8203;496](https://github.com/pydantic/pydantic-settings/pull/496) - Improve field value parsing by adding `NoDecode` and `ForceDecode` annotations by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;492](https://github.com/pydantic/pydantic-settings/pull/492) - Fix attribute error on Python 3.9 with typing.Sequence by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;497](https://github.com/pydantic/pydantic-settings/pull/497) - Prepare release 2.7.0 by [@&#8203;hramezani](https://github.com/hramezani) in [#&#8203;499](https://github.com/pydantic/pydantic-settings/pull/499) #### New Contributors - [@&#8203;CyberTailor](https://github.com/CyberTailor) made their first contribution in [#&#8203;462](https://github.com/pydantic/pydantic-settings/pull/462) - [@&#8203;dlax](https://github.com/dlax) made their first contribution in [#&#8203;465](https://github.com/pydantic/pydantic-settings/pull/465) **Full Changelog**: <https://github.com/pydantic/pydantic-settings/compare/v2.6.1...v2.7.0> </details> <details> <summary>theskumar/python-dotenv (python-dotenv)</summary> ### [`v1.2.2`](https://github.com/theskumar/python-dotenv/blob/HEAD/CHANGELOG.md#122---2026-03-01) [Compare Source](https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2) ##### Added - Support for Python 3.14, including the free-threaded (3.14t) build. ([#&#8203;588](https://github.com/theskumar/python-dotenv/issues/588)) ##### Changed - The `dotenv run` command now forwards flags directly to the specified command by \[[@&#8203;bbc2](https://github.com/bbc2)] in \[[#&#8203;607](https://github.com/theskumar/python-dotenv/issues/607)] - Improved documentation clarity regarding override behavior and the reference page. - Updated PyPy support to version 3.11. - Documentation for FIFO file support. - Dropped Support for Python 3.9. ##### Fixed - Improved `set_key` and `unset_key` behavior when interacting with symlinks by \[[@&#8203;bbc2](https://github.com/bbc2)] in \[[`790c5c0`](https://github.com/theskumar/python-dotenv/commit/790c5c0)] - Corrected the license specifier and added missing Python 3.14 classifiers in package metadata by \[[@&#8203;JYOuyang](https://github.com/JYOuyang)] in \[[#&#8203;590](https://github.com/theskumar/python-dotenv/issues/590)] ##### Breaking Changes - `dotenv.set_key` and `dotenv.unset_key` used to follow symlinks in some situations. This is no longer the case. For that behavior to be restored in all cases, `follow_symlinks=True` should be used. - In the CLI, `set` and `unset` used to follow symlinks in some situations. This is no longer the case. - `dotenv.set_key`, `dotenv.unset_key` and the CLI commands `set` and `unset` used to reset the file mode of the modified .env file to `0o600` in some situations. This is no longer the case: The original mode of the file is now preserved. Is the file needed to be created or wasn't a regular file, mode `0o600` is used. ### [`v1.2.1`](https://github.com/theskumar/python-dotenv/blob/HEAD/CHANGELOG.md#121---2025-10-26) [Compare Source](https://github.com/theskumar/python-dotenv/compare/v1.2.0...v1.2.1) - Move more config to `pyproject.toml`, removed `setup.cfg` - Add support for reading `.env` from FIFOs (Unix) by \[[@&#8203;sidharth-sudhir](https://github.com/sidharth-sudhir)] in \[[#&#8203;586](https://github.com/theskumar/python-dotenv/issues/586)] ### [`v1.2.0`](https://github.com/theskumar/python-dotenv/blob/HEAD/CHANGELOG.md#120---2025-10-26) [Compare Source](https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.0) - Upgrade build system to use PEP 517 & PEP 518 to use `build` and `pyproject.toml` by \[[@&#8203;EpicWink](https://github.com/EpicWink)] in \[[#&#8203;583](https://github.com/theskumar/python-dotenv/issues/583)] - Add support for Python 3.14 by \[[@&#8203;23f3001135](https://github.com/23f3001135)] in \[[#&#8203;579](https://github.com/theskumar/python-dotenv/issues/579)] - Add support for disabling of `load_dotenv()` using `PYTHON_DOTENV_DISABLED` env var. by \[[@&#8203;matthewfranglen](https://github.com/matthewfranglen)] in \[[#&#8203;569](https://github.com/theskumar/python-dotenv/issues/569)] ### [`v1.1.1`](https://github.com/theskumar/python-dotenv/blob/HEAD/CHANGELOG.md#111---2025-06-24) [Compare Source](https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1) ##### Fixed - CLI: Ensure `find_dotenv` work reliably on python 3.13 by \[[@&#8203;theskumar](https://github.com/theskumar)] in \[[#&#8203;563](https://github.com/theskumar/python-dotenv/issues/563)] - CLI: revert the use of execvpe on Windows by \[[@&#8203;wrongontheinternet](https://github.com/wrongontheinternet)] in \[[#&#8203;566](https://github.com/theskumar/python-dotenv/issues/566)] ### [`v1.1.0`](https://github.com/theskumar/python-dotenv/blob/HEAD/CHANGELOG.md#110---2025-03-25) [Compare Source](https://github.com/theskumar/python-dotenv/compare/v1.0.1...v1.1.0) ##### Added - Add support for python 3.13 - Enhance `dotenv run`, switch to `execvpe` for better resource management and signal handling (\[[#&#8203;523](https://github.com/theskumar/python-dotenv/issues/523)]) by \[[@&#8203;eekstunt](https://github.com/eekstunt)] ##### Fixed - `find_dotenv` and `load_dotenv` now correctly looks up at the current directory when running in debugger or pdb (\[[#&#8203;553](https://github.com/theskumar/python-dotenv/issues/553)] by \[[@&#8203;randomseed42](https://github.com/randomseed42)]) ##### Misc - Drop support for Python 3.8 </details> <details> <summary>Kludex/python-multipart (python-multipart)</summary> ### [`v0.0.32`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0032-2026-06-04) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.31...0.0.32) - Speed up partial-boundary scanning for CR/LF-dense part data [#&#8203;300](https://github.com/Kludex/python-multipart/pull/300). ### [`v0.0.31`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0031-2026-06-04) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.30...0.0.31) - Speed up multipart header parsing and callback dispatch [#&#8203;295](https://github.com/Kludex/python-multipart/pull/295). - Bound header field name size before validating [#&#8203;296](https://github.com/Kludex/python-multipart/pull/296). - Validate `Content-Length` is non-negative in `parse_form` [#&#8203;297](https://github.com/Kludex/python-multipart/pull/297). ### [`v0.0.30`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0030-2026-05-31) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.29...0.0.30) - Parse `application/x-www-form-urlencoded` bodies per the WHATWG URL standard, treating only `&` as a field separator [#&#8203;290](https://github.com/Kludex/python-multipart/pull/290). - Ignore RFC 2231/5987 extended parameters (`name*`, `filename*`) in `parse_options_header`, keeping the plain parameter authoritative per [RFC 7578 §4.2](https://datatracker.ietf.org/doc/html/rfc7578#section-4.2) [#&#8203;291](https://github.com/Kludex/python-multipart/pull/291). ### [`v0.0.29`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0029-2026-05-17) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.28...0.0.29) - Handle malformed RFC 2231 continuations in `parse_options_header` [#&#8203;270](https://github.com/Kludex/python-multipart/pull/270). ### [`v0.0.28`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0028-2026-05-10) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28) - Speed up partial-boundary tail scan via `bytes.find` [#&#8203;281](https://github.com/Kludex/python-multipart/pull/281). - Cap multipart boundary length at 256 bytes [#&#8203;282](https://github.com/Kludex/python-multipart/pull/282). ### [`v0.0.27`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0027-2026-04-27) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27) - Add multipart header limits [#&#8203;267](https://github.com/Kludex/python-multipart/pull/267). - Pass parse offsets via constructors [#&#8203;268](https://github.com/Kludex/python-multipart/pull/268). ### [`v0.0.26`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0026-2026-04-10) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26) - Skip preamble before the first multipart boundary more efficiently [#&#8203;262](https://github.com/Kludex/python-multipart/pull/262). - Silently discard epilogue data after the closing multipart boundary [#&#8203;259](https://github.com/Kludex/python-multipart/pull/259). ### [`v0.0.25`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0025-2026-04-10) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25) - Add MIME content type info to `File` [#&#8203;143](https://github.com/Kludex/python-multipart/pull/143). - Handle CTE values case-insensitively [#&#8203;258](https://github.com/Kludex/python-multipart/pull/258). - Remove custom `FormParser` classes [#&#8203;257](https://github.com/Kludex/python-multipart/pull/257). - Add `UPLOAD_DELETE_TMP` to `FormParser` config [#&#8203;254](https://github.com/Kludex/python-multipart/pull/254). - Emit `field_end` for trailing bare field names on finalize [#&#8203;230](https://github.com/Kludex/python-multipart/pull/230). - Handle multipart headers case-insensitively [#&#8203;252](https://github.com/Kludex/python-multipart/pull/252). - Apply Apache-2.0 properly [#&#8203;247](https://github.com/Kludex/python-multipart/pull/247). ### [`v0.0.24`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0024-2026-04-05) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24) - Validate `chunk_size` in `parse_form()` [#&#8203;244](https://github.com/Kludex/python-multipart/pull/244). ### [`v0.0.23`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0023-2026-04-05) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23) - Remove unused `trust_x_headers` parameter and `X-File-Name` fallback [#&#8203;196](https://github.com/Kludex/python-multipart/pull/196). - Return processed length from `QuerystringParser._internal_write` [#&#8203;229](https://github.com/Kludex/python-multipart/pull/229). - Cleanup metadata dunders from `__init__.py` [#&#8203;227](https://github.com/Kludex/python-multipart/pull/227). ### [`v0.0.22`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0022-2026-01-25) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.21...0.0.22) - Drop directory path from filename in `File` [9433f4b](https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4). ### [`v0.0.21`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0021-2025-12-17) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.21) - Add support for Python 3.14 and drop EOL 3.8 and 3.9 [#&#8203;216](https://github.com/Kludex/python-multipart/pull/216). ### [`v0.0.20`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0020-2024-12-16) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20) - Handle messages containing only end boundary [#&#8203;142](https://github.com/Kludex/python-multipart/pull/142). ### [`v0.0.19`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0019-2024-11-30) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19) - Don't warn when CRLF is found after last boundary on `MultipartParser` [#&#8203;193](https://github.com/Kludex/python-multipart/pull/193). ### [`v0.0.18`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0018-2024-11-28) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18) - Hard break if found data after last boundary on `MultipartParser` [#&#8203;189](https://github.com/Kludex/python-multipart/pull/189). ### [`v0.0.17`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0017-2024-10-31) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17) - Handle PermissionError in fallback code for old import name [#&#8203;182](https://github.com/Kludex/python-multipart/pull/182). ### [`v0.0.16`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0016-2024-10-27) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.15...0.0.16) - Add dunder attributes to `multipart` package [#&#8203;177](https://github.com/Kludex/python-multipart/pull/177). ### [`v0.0.15`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0015-2024-10-27) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.14...0.0.15) - Replace `FutureWarning` to `PendingDeprecationWarning` [#&#8203;174](https://github.com/Kludex/python-multipart/pull/174). - Add missing files to SDist [#&#8203;171](https://github.com/Kludex/python-multipart/pull/171). ### [`v0.0.14`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0014-2024-10-24) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.13...0.0.14) - Fix import scheme for `multipart` module ([#&#8203;168](https://github.com/Kludex/python-multipart/pull/168)). ### [`v0.0.13`](https://github.com/Kludex/python-multipart/blob/HEAD/CHANGELOG.md#0013-2024-10-20) [Compare Source](https://github.com/Kludex/python-multipart/compare/0.0.12...0.0.13) - Rename import to `python_multipart` [#&#8203;166](https://github.com/Kludex/python-multipart/pull/166). </details> <details> <summary>Kludex/starlette (starlette)</summary> ### [`v0.52.1`](https://github.com/Kludex/starlette/releases/tag/0.52.1): Version 0.52.1 [Compare Source](https://github.com/Kludex/starlette/compare/0.52.0...0.52.1) #### What's Changed - Only use `typing_extensions` in older Python versions by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;3109](https://github.com/Kludex/starlette/pull/3109) *** **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.52.0...0.52.1> ### [`v0.52.0`](https://github.com/Kludex/starlette/releases/tag/0.52.0): Version 0.52.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.51.0...0.52.0) In this release, `State` can be accessed using dictionary-style syntax for improved type safety ([#&#8203;3036](https://github.com/Kludex/starlette/pull/3036)). ```python from collections.abc import AsyncIterator from contextlib import asynccontextmanager from typing import TypedDict import httpx from starlette.applications import Starlette from starlette.requests import Request class State(TypedDict): http_client: httpx.AsyncClient @&#8203;asynccontextmanager async def lifespan(app: Starlette) -> AsyncIterator[State]: async with httpx.AsyncClient() as client: yield {"http_client": client} async def homepage(request: Request[State]): client = request.state["http_client"] # If you run the below line with mypy or pyright, it will reveal the correct type. reveal_type(client) # Revealed type is 'httpx.AsyncClient' ``` See [Accessing State](lifespan.md#accessing-state) for more details. *** **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.51.0...0.52.0> ### [`v0.51.0`](https://github.com/Kludex/starlette/releases/tag/0.51.0): Version 0.51.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.50.0...0.51.0) #### Added - Add `allow_private_network` in `CORSMiddleware` [#&#8203;3065](https://github.com/Kludex/starlette/pull/3065). #### Changed - Increase warning stacklevel on `DeprecationWarning` for wsgi module [#&#8203;3082](https://github.com/Kludex/starlette/pull/3082). *** #### New Contributors - [@&#8203;santibreo](https://github.com/santibreo) made their first contribution in [#&#8203;3082](https://github.com/Kludex/starlette/pull/3082) - [@&#8203;iddqd888](https://github.com/iddqd888) made their first contribution in [#&#8203;3083](https://github.com/Kludex/starlette/pull/3083) **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.50.0...0.51.0> ### [`v0.50.0`](https://github.com/Kludex/starlette/releases/tag/0.50.0): Version 0.50.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.49.3...0.50.0) #### Removed - Drop Python 3.9 support [#&#8203;3061](https://github.com/Kludex/starlette/pull/3061). *** **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.49.3...0.50.0> ### [`v0.49.3`](https://github.com/Kludex/starlette/releases/tag/0.49.3): Version 0.49.3 [Compare Source](https://github.com/Kludex/starlette/compare/0.49.2...0.49.3) #### Fixed - Relax strictness on `Middleware` type [#&#8203;3059](https://github.com/Kludex/starlette/pull/3059). *** **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.49.2...0.49.3> ### [`v0.49.2`](https://github.com/Kludex/starlette/releases/tag/0.49.2): Version 0.49.2 [Compare Source](https://github.com/Kludex/starlette/compare/0.49.1...0.49.2) #### Fixed - Ignore `if-modified-since` header if `if-none-match` is present in `StaticFiles` [#&#8203;3044](https://github.com/Kludex/starlette/pull/3044). *** **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.49.1...0.49.2> ### [`v0.49.1`](https://github.com/Kludex/starlette/releases/tag/0.49.1): Version 0.49.1 [Compare Source](https://github.com/Kludex/starlette/compare/0.49.0...0.49.1) This release fixes a security vulnerability in the parsing logic of the `Range` header in `FileResponse`. You can view the full security advisory: [GHSA-7f5h-v6xp-fcq8](https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8) #### Fixed - Optimize the HTTP ranges parsing logic [4ea6e22b489ec388d6004cfbca52dd5b147127c5](https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5) *** **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.49.0...0.49.1> ### [`v0.49.0`](https://github.com/Kludex/starlette/releases/tag/0.49.0): Version 0.49.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.48.0...0.49.0) #### Added - Add `encoding` parameter to `Config` class [#&#8203;2996](https://github.com/Kludex/starlette/pull/2996). - Support multiple cookie headers in `Request.cookies` [#&#8203;3029](https://github.com/Kludex/starlette/pull/3029). - Use `Literal` type for `WebSocketEndpoint` encoding values [#&#8203;3027](https://github.com/Kludex/starlette/pull/3027). #### Changed - Do not pollute exception context in `Middleware` when using `BaseHTTPMiddleware` [#&#8203;2976](https://github.com/Kludex/starlette/pull/2976). *** #### New Contributors - [@&#8203;TheWesDias](https://github.com/TheWesDias) made their first contribution in [#&#8203;3017](https://github.com/Kludex/starlette/pull/3017) - [@&#8203;gmos2104](https://github.com/gmos2104) made their first contribution in [#&#8203;3027](https://github.com/Kludex/starlette/pull/3027) - [@&#8203;secrett2633](https://github.com/secrett2633) made their first contribution in [#&#8203;2996](https://github.com/Kludex/starlette/pull/2996) - [@&#8203;adam-sikora](https://github.com/adam-sikora) made their first contribution in [#&#8203;2976](https://github.com/Kludex/starlette/pull/2976) **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.48.0...0.49.0> ### [`v0.48.0`](https://github.com/Kludex/starlette/releases/tag/0.48.0): Version 0.48.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.47.3...0.48.0) #### Added - Add official Python 3.14 support [#&#8203;3013](https://github.com/Kludex/starlette/pull/3013). #### Changed - Implement [RFC9110](https://www.rfc-editor.org/rfc/rfc9110) http status names [#&#8203;2939](https://github.com/Kludex/starlette/pull/2939). *** #### New Contributors - [@&#8203;yakimka](https://github.com/yakimka) made their first contribution in [#&#8203;2943](https://github.com/Kludex/starlette/pull/2943) - [@&#8203;mbeijen](https://github.com/mbeijen) made their first contribution in [#&#8203;2939](https://github.com/Kludex/starlette/pull/2939) **Full Changelog**: <https://github.com/Kludex/starlette/compare/0.47.3...0.48.0> ### [`v0.47.3`](https://github.com/Kludex/starlette/releases/tag/0.47.3): Version 0.47.3 [Compare Source](https://github.com/Kludex/starlette/compare/0.47.2...0.47.3) #### Fixed - Use `asyncio.iscoroutinefunction` for Python 3.12 and older by [@&#8203;mjpieters](https://github.com/mjpieters) in [encode#2984](https://github.com/encode/starlette/pull/2984) *** #### New Contributors - [@&#8203;mjpieters](https://github.com/mjpieters) made their first contribution in [encode#2984](https://github.com/encode/starlette/pull/2984) **Full Changelog**: <https://github.com/encode/starlette/compare/0.47.2...0.47.3> ### [`v0.47.2`](https://github.com/Kludex/starlette/releases/tag/0.47.2) [Compare Source](https://github.com/Kludex/starlette/compare/0.47.1...0.47.2) #### Fixed - Make `UploadFile` check for future rollover [#&#8203;2962](https://github.com/encode/starlette/pull/2962). *** #### New Contributors - [@&#8203;HonakerM](https://github.com/HonakerM) made their first contribution in [encode#2962](https://github.com/encode/starlette/pull/2962) **Full Changelog**: <https://github.com/encode/starlette/compare/0.47.1...0.47.2> ### [`v0.47.1`](https://github.com/Kludex/starlette/releases/tag/0.47.1): Version 0.47.1 [Compare Source](https://github.com/Kludex/starlette/compare/0.47.0...0.47.1) #### Fixed - Use `Self` in `TestClient.__enter__` [#&#8203;2951](https://github.com/encode/starlette/pull/2951) - Allow async exception handlers to type-check [#&#8203;2949](https://github.com/encode/starlette/pull/2949) *** **Full Changelog**: <https://github.com/encode/starlette/compare/0.47.0...0.47.1> ### [`v0.47.0`](https://github.com/Kludex/starlette/releases/tag/0.47.0): Version 0.47.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.46.2...0.47.0) #### Added - Add support for ASGI `pathsend` extension [#&#8203;2671](https://github.com/encode/starlette/pull/2671). - Add `partitioned` attribute to `Response.set_cookie` [#&#8203;2501](https://github.com/encode/starlette/pull/2501). #### Changed - Change `methods` parameter type from `list[str]` to `Collection[str]` [#&#8203;2903](https://github.com/encode/starlette/pull/2903). - Replace `import typing` by `from typing import ...` in the whole codebase [#&#8203;2867](https://github.com/encode/starlette/pull/2867). #### Fixed - Mark `ExceptionMiddleware.http_exception` as async to prevent thread creation [#&#8203;2922](https://github.com/encode/starlette/pull/2922). *** #### New Contributors - [@&#8203;danlapid](https://github.com/danlapid) made their first contribution in [encode#2922](https://github.com/encode/starlette/pull/2922) - [@&#8203;Flecart](https://github.com/Flecart) made their first contribution in [encode#2501](https://github.com/encode/starlette/pull/2501) - [@&#8203;AllenSH12](https://github.com/AllenSH12) made their first contribution in [encode#2936](https://github.com/encode/starlette/pull/2936) - [@&#8203;waketzheng](https://github.com/waketzheng) made their first contribution in [encode#2867](https://github.com/encode/starlette/pull/2867) - [@&#8203;jonathanberthias](https://github.com/jonathanberthias) made their first contribution in [encode#2903](https://github.com/encode/starlette/pull/2903) **Full Changelog**: <https://github.com/encode/starlette/compare/0.46.2...0.47.0> ### [`v0.46.2`](https://github.com/Kludex/starlette/releases/tag/0.46.2): Version 0.46.2 [Compare Source](https://github.com/Kludex/starlette/compare/0.46.1...0.46.2) #### What's Changed - Use correct index on backwards compatible logic in `TemplateResponse` by [@&#8203;alex-oleshkevich](https://github.com/alex-oleshkevich) in [encode#2909](https://github.com/encode/starlette/pull/2909) - Prevents reraising of exception from `BaseHTTPMiddleware` by [@&#8203;ramannanda9](https://github.com/ramannanda9) in [encode#2911](https://github.com/encode/starlette/pull/2911) #### New Contributors - [@&#8203;ahryniv](https://github.com/ahryniv) made their first contribution in [encode#2913](https://github.com/encode/starlette/pull/2913) - [@&#8203;ramannanda9](https://github.com/ramannanda9) made their first contribution in [encode#2911](https://github.com/encode/starlette/pull/2911) **Full Changelog**: <https://github.com/encode/starlette/compare/0.46.1...0.46.2> ### [`v0.46.1`](https://github.com/Kludex/starlette/releases/tag/0.46.1): Version 0.46.1 [Compare Source](https://github.com/Kludex/starlette/compare/0.46.0...0.46.1) #### Fixed - Allow relative directory path when `follow_symlinks=True` [#&#8203;2896](https://github.com/encode/starlette/pull/2896). *** **Full Changelog**: <https://github.com/encode/starlette/compare/0.46.0...0.46.1> ### [`v0.46.0`](https://github.com/Kludex/starlette/releases/tag/0.46.0): Version 0.46.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.45.3...0.46.0) #### Added - `GZipMiddleware`: Make sure `Vary` header is always added if a response can be compressed [#&#8203;2865](https://github.com/encode/starlette/pull/2865). #### Fixed - Raise exception from background task on BaseHTTPMiddleware [#&#8203;2812](https://github.com/encode/starlette/pull/2812). - `GZipMiddleware`: Don't compress on server sent events [#&#8203;2871](https://github.com/encode/starlette/pull/2871). #### Changed - `MultiPartParser`: Rename `max_file_size` to `spool_max_size` [#&#8203;2780](https://github.com/encode/starlette/pull/2780). #### Deprecated - Add deprecated warning to `TestClient(timeout=...)` [#&#8203;2840](https://github.com/encode/starlette/pull/2840). #### New Contributors - [@&#8203;musicinmybrain](https://github.com/musicinmybrain) made their first contribution in [encode#2855](https://github.com/encode/starlette/pull/2855) - [@&#8203;WilliamDEdwards](https://github.com/WilliamDEdwards) made their first contribution in [encode#2870](https://github.com/encode/starlette/pull/2870) - [@&#8203;mattmess1221](https://github.com/mattmess1221) made their first contribution in [encode#2865](https://github.com/encode/starlette/pull/2865) **Full Changelog**: <https://github.com/encode/starlette/compare/0.45.3...0.46.0> ### [`v0.45.3`](https://github.com/Kludex/starlette/releases/tag/0.45.3): Version 0.45.3 [Compare Source](https://github.com/Kludex/starlette/compare/0.45.2...0.45.3) #### Fixed - Turn directory into string on `lookup_path` on commonpath comparison by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2851](https://github.com/encode/starlette/pull/2851) *** **Full Changelog**: <https://github.com/encode/starlette/compare/0.45.2...0.45.3> ### [`v0.45.2`](https://github.com/Kludex/starlette/releases/tag/0.45.2): Version 0.45.2 [Compare Source](https://github.com/Kludex/starlette/compare/0.45.1...0.45.2) ##### Fixed - Make `create_memory_object_stream` compatible with old anyio versions once again, and bump anyio minimum version to 3.6.2 by [@&#8203;graingert](https://github.com/graingert) in [#&#8203;2833](https://github.com/encode/starlette/pull/2833). **Full Changelog**: <https://github.com/encode/starlette/compare/0.45.1...0.45.2> ### [`v0.45.1`](https://github.com/Kludex/starlette/releases/tag/0.45.1): Version 0.45.1 [Compare Source](https://github.com/Kludex/starlette/compare/0.45.0...0.45.1) ##### Fixed - Collect errors more reliably from WebSocket test client by [@&#8203;graingert](https://github.com/graingert) in [encode#2814](https://github.com/encode/starlette/pull/2814) - Fix unclosed `MemoryObjectReceiveStream` upon exception in `BaseHTTPMiddleware` children by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2813](https://github.com/encode/starlette/pull/2813) ##### Refactor - Use a pair of memory object streams instead of two queues by [@&#8203;graingert](https://github.com/graingert) in [encode#2829](https://github.com/encode/starlette/pull/2829) *** **Full Changelog**: <https://github.com/encode/starlette/compare/0.45.0...0.45.1> ### [`v0.45.0`](https://github.com/Kludex/starlette/releases/tag/0.45.0): Version 0.45.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.44.0...0.45.0) #### Removed - Drop Python 3.8 by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2823](https://github.com/encode/starlette/pull/2823) - Remove `ExceptionMiddleware` import proxy from `starlette.exceptions` module by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2826](https://github.com/encode/starlette/pull/2826) - Remove deprecated `WS_1004_NO_STATUS_RCVD` and `WS_1005_ABNORMAL_CLOSURE` by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2827](https://github.com/encode/starlette/pull/2827) *** **Full Changelog**: <https://github.com/encode/starlette/compare/0.44.0...0.45.0> ### [`v0.44.0`](https://github.com/Kludex/starlette/releases/tag/0.44.0): Version 0.44.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.43.0...0.44.0) #### Added - Add `max_part_size` parameter to `Request.form()` by [@&#8203;iudeen](https://github.com/iudeen) in [encode#2815](https://github.com/encode/starlette/pull/2815) - Add `client` parameter to `TestClient` by [@&#8203;iudeen](https://github.com/iudeen) in [encode#2810](https://github.com/encode/starlette/pull/2810) #### New Contributors - [@&#8203;iudeen](https://github.com/iudeen) made their first contribution in [encode#2815](https://github.com/encode/starlette/pull/2815) **Full Changelog**: <https://github.com/encode/starlette/compare/0.43.0...0.44.0> ### [`v0.43.0`](https://github.com/Kludex/starlette/releases/tag/0.43.0): Version 0.43.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.42.0...0.43.0) #### Removed - Remove deprecated `allow_redirects` argument from `TestClient` [#&#8203;2808](https://github.com/encode/starlette/pull/2808). #### Added - Make UUID path parameter conversion more flexible [#&#8203;2806](https://github.com/encode/starlette/pull/2806). *** #### New Contributors - [@&#8203;AbduazizZiyodov](https://github.com/AbduazizZiyodov) made their first contribution in [encode#2799](https://github.com/encode/starlette/pull/2799) - [@&#8203;edthrn](https://github.com/edthrn) made their first contribution in [encode#2806](https://github.com/encode/starlette/pull/2806) **Full Changelog**: <https://github.com/encode/starlette/compare/0.42.0...0.43.0> ### [`v0.42.0`](https://github.com/Kludex/starlette/releases/tag/0.42.0): Version 0.42.0 [Compare Source](https://github.com/Kludex/starlette/compare/0.41.3...0.42.0) #### Added - Raise `ClientDisconnect` on `StreamingResponse` [#&#8203;2732](https://github.com/encode/starlette/pull/2732). #### Fixed - Use ETag from headers when parsing If-Range in FileResponse [#&#8203;2761](https://github.com/encode/starlette/pull/2761). - Follow directory symlinks in `StaticFiles` when `follow_symlinks=True` [#&#8203;2711](https://github.com/encode/starlette/pull/2711). - Bump minimum `python-multipart` version to `0.0.18` [0ba8395](https://github.com/encode/starlette/commit/0ba83959e609bbd460966f092287df1bbd564cc6). - Bump minimum `httpx` version to `0.27.0` [#&#8203;2773](https://github.com/encode/starlette/pull/2773). *** #### New Contributors - [@&#8203;logan-connolly](https://github.com/logan-connolly) made their first contribution in [encode#2763](https://github.com/encode/starlette/pull/2763) - [@&#8203;eltoder](https://github.com/eltoder) made their first contribution in [encode#2768](https://github.com/encode/starlette/pull/2768) - [@&#8203;hanxi](https://github.com/hanxi) made their first contribution in [encode#2711](https://github.com/encode/starlette/pull/2711) - [@&#8203;viccie30](https://github.com/viccie30) made their first contribution in [encode#2761](https://github.com/encode/starlette/pull/2761) - [@&#8203;dbowring](https://github.com/dbowring) made their first contribution in [encode#2782](https://github.com/encode/starlette/pull/2782) - [@&#8203;lealre](https://github.com/lealre) made their first contribution in [encode#2793](https://github.com/encode/starlette/pull/2793) **Full Changelog**: <https://github.com/encode/starlette/compare/0.41.3...0.42.0> </details> <details> <summary>jannikmi/timezonefinder (timezonefinder)</summary> ### [`v6.6.3`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#663-2025-07-21) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.6.2...6.6.3) - when `in_memory=True`, all polygon `numpy` arrays are constructed once during startup rather than repeatedly on demand. This should significantly improve performance for applications that make frequent polygons queries. - Created a `coord_accessors.py` module for abstracting access to polygon coordinates, allowing for both in-memory and file-based access. - added auto-generated data report to the documentation. thanks to `ARYAN RAJ <https://github.com/nikkhilaaryan>`\_\_ for the PR. ### [`v6.6.2`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#662-2025-07-19) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.9...6.6.2) - hotfix missing `hole_registry.json` in the distributions - added integration tests in CI/CD. Thanks to `theirix <https://github.com/theirix>`\_\_ ### [`v6.5.9`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#659-2025-03-25) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.8...6.5.9) - updated the timezone boundary data to version `2025b <https://github.com/evansiroky/timezone-boundary-builder/releases/tag/2025b>`**. Thanks to `WestonReed <https://github.com/WestonReed>`** ### [`v6.5.8`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#658-2025-01-21) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.7...6.5.8) - updated the data to `2025a <https://github.com/evansiroky/timezone-boundary-builder/releases/tag/2025a>`\_\_ - internal: updated `file_converter.py` for `h3>=4` ### [`v6.5.7`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#657-2024-12-02) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.6...6.5.7) - improved error handling to catch `ValueError: not enough values to unpack` (`Issue #&#8203;209 <https://github.com/jannikmi/timezonefinder/issues/209>`\_\_) ### [`v6.5.6`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#656-2024-12-02) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.5...6.5.6) - add musllinux Wheels for Linux. Thanks to `Pxli9130 <https://github.com/Pxli9130>`\_\_ ### [`v6.5.5`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#655-2024-11-20) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.4...6.5.5) - using `setuptools` only as a build dependency. Thanks to `Kristian Sloth Lauszus <https://github.com/Lauszus>`\_\_ ### [`v6.5.4`](https://github.com/jannikmi/timezonefinder/blob/HEAD/CHANGELOG.rst#654-2024-10-22) [Compare Source](https://github.com/jannikmi/timezonefinder/compare/6.5.3...6.5.4) - using the dependency `h3>4`. Thanks to `Greg Meyer <https://github.com/gmmeyer>`\_\_ </details> <details> <summary>twilio/twilio-python (twilio)</summary> ### [`v9.10.9`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-05-07-Version-9109) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.7...9.10.9) **Conversations** - update actions api visibility **Memory** - ## 2026-05-07 - **Content updates**: - include store api ### [`v9.10.7`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-05-07-Version-9107) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.6...9.10.7) **Library - Chore** - [PR #&#8203;922](https://github.com/twilio/twilio-python/pull/922): add init for knowledge. Thanks to [@&#8203;kridai](https://github.com/kridai)! ### [`v9.10.6`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-05-06-Version-9106) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.5...9.10.6) **Library - Chore** - [PR #&#8203;921](https://github.com/twilio/twilio-python/pull/921): new api updates. Thanks to [@&#8203;kridai](https://github.com/kridai)! **Twiml** - Set `recording_configuration_id` attribute to public visibility in `<Conference>`, `<Dial>`, `<Record>` verbs and `<Recording>` noun **Api** - Add RecordingConfigurationId parameter for CreateCall, CreateCallRecording, CreateConferenceRecording, and CreateParticipant endpoints **Authy** - # Changelog - ## v1 - Added Authy API v1 under `/v1` — initial onboarding of Public API (`/v1/protected/*`), Device API (`/v1/json/*`), and Dashboard API (`/v1/dashboard/*`) behind REST Proxy using transparent proxy mode. **Data-ingress** - ## 2026-04-21 - **Content updates**: - Updated description for `CreateDataSync` - Updated description for `DeleteCloudAppDataset` - Updated description for `DeleteWarehouseDataset` - ## 2026-04-20 - Minor updates (formatting, metadata) - ## 2026-04-17 - updated operationId for dataplane APIs,Minor updates (formatting, metadata) - ## 2026-04-15 - libraryVisibility to private - ## 2026-04-14 - **Added 1 new path(s)**: - `/v1/DataSyncs/Latest` (GetLatestDataSyncs) **Memory** - ## 2026-04-21 - **Content updates**: - Remove Prefer/Async-Operation headers - ## 2026-04-21 - **Content updates**: - Added 301 response for `ListIdentifiers` and `GetIdentifier` - Added 308 response for `DeleteProfile`, `CreateIdentifier`, `PatchIdentifier`, and `DeleteIdentifier` - ## 2026-04-14 - **Modified 1 path(s)**: - `/v1/ControlPlane/Stores/{storeId}` (added delete) - Minor updates (formatting, metadata) **Voice** - ## 2026-04-17 - Added `I-Twilio-Auth-Account` to `downstreamRequest` headers in POST /v3/Transcriptions transactions to document RestProxy account header injection - ## 2026-04-10 - Added initial version of Transcriptions V3 API - Added POST /v3/Transcriptions endpoint to create a new transcription from a source ID or media URL ### [`v9.10.5`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-04-14-Version-9105) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.4...9.10.5) **Twiml** - Add `backgroundNoiseReduction`, `speechTimeout`, `deepgramSmartFormat`, `ignoreBackchannel`, `events` attributes to `<ConversationRelay>` **Api** - Enabled incoming phone numbers(IPN) public apis in stage-ie1 **Data-ingress** - ## 2026-04-09 - **Content updates**: - Added parameter(s) to `GetDataSync`: datasetId - ## 2026-04-09 - Minor updates (formatting, metadata) - ## 2026-04-06 - Minor updates (formatting, metadata) - ## 2026-04-06 - Minor updates (formatting, metadata) - ## 2026-04-06 - Minor updates (formatting, metadata) - ## 2026-04-06 - Minor updates (formatting, metadata) - ## 2026-04-06 - **Content updates**: - Added properties to `CloudAppSourceUpdate`: config - Added properties to `CloudAppDatasetUpdate`: schedule - Added properties to `WarehouseSourceUpdate`: config - Added properties to `WarehouseDatasetUpdate`: schedule - ## 2026-04-06 - **Content updates**: - Updated description for `GetCloudAppPreviewResult` - Updated description for `GetWarehousePreviewResult` - Updated description for `GetDataSampleResult` - ## 2026-03-27 - Add schema oneOf back without discriminator - ## 2026-03-26 - Minor updates (formatting, metadata) - ## 2026-03-26 - Added prod-us1 to supportedRealms for all endpoints - ## 2026-03-25 - Minor updates (formatting, metadata) - ## 2026-03-24 - Minor updates (formatting, metadata) - ## 2026-03-24 - Minor updates (formatting, metadata) - ## 2026-03-24 - Minor updates (formatting, metadata) - ## 2026-03-24 - **Added 10 new path(s)**: - `/v1/DataSyncs` (ListDataSyncs, TriggerDataSync) - `/v1/DataSyncs/{SyncId}` (GetDataSync) - `/v1/CloudAppSources/{SourceId}/Objects` (ListCloudAppObjects) - `/v1/CloudAppSources/{SourceId}/Objects/{Name}/Properties` (ListCloudAppObjectProperties) - `/v1/CloudAppSources/{SourceId}/Objects/{Name}/Preview` (PreviewCloudAppObjectData) - `/v1/CloudAppSources/{SourceId}/Objects/{Name}/Preview/{OperationId}` (GetCloudAppPreviewResult) - `/v1/WarehouseSources/{SourceId}/Preview` (PreviewWarehouseData) - `/v1/WarehouseSources/{SourceId}/Preview/{OperationId}` (GetWarehousePreviewResult) - `/v1/DataSample` (TriggerDataSample) - `/v1/DataSample/{OperationId}` (GetDataSampleResult) - ## 2026-03-24 - Minor updates (formatting, metadata) - ## 2026-03-24 - Use `explode: true` for query params when getting by ids and limit max items to 25 - Make schema description for `Schema` more specific by using oneOf without discriminator for now. **Insights** - Added Insights Domains endpoints under `/v3/InsightsDomains/*` (Query + Metadata) to provide a versioned, GA-ready namespace alongside existing `/preview` endpoints. **Mcp** - # API Changes - ## 2026-04-07 - **Added 1 new path(s)**: - `/v1/docs` (InvokeDocsMcp) **Memory** - ## 2026-04-09 - **Removed 2 path(s)**: - `/v1/Stores/{storeId}/Profiles/Import` (ListProfileImports, CreateProfilesImport) - `/v1/Stores/{storeId}/Profiles/Import/{importId}` (FetchProfileImport) - libraryVisibility: private, docsVisibility: private - ## 2026-04-08 - **Content updates**: - Added 301 response for `GetProfile` and `GetProfileTraits` - Added canonical ID header to response for `GetProfile` and `GetProfileTraits` - Add 308 response for `PatchProfile` - ## 2026-04-07 - Added `AGENT` and `UNKNOWN` values to `ParticipantType` enum - ## 2026-04-06 - **Content updates**: - Added async operation support to `UpdateTraitGroup` 202 response (Operation-Id, Location, Retry-After headers; statusUrl in body) - Added async operation support to `CreateDataMapping`, `UpdateDataMapping`, `DeleteDataMapping` 202 responses (Operation-Id, Location, Retry-After headers; statusUrl in body) - ## 2026-03-30 - **Content updates**: - Updated description for `FetchProfileMemory` - ## 2026-03-27 - **Content updates**: - Updated schema description for `TraitGroupCore` - ## 2026-03-25 - **Content updates**: - Removed properties from `TraitDefinition`: displayName - ## 2026-03-25 - **Content updates**: - Updated description for `UpdateProfileTraits` - Updated description for `FetchIdentityResolutionSettings` - Updated description for `UpdateIdentityResolutionSettings` - Updated schema description for `IdentityResolutionSettingsCore` - Updated schema description for `TraitGroupCore` - Made all fields besides `idType` optional w/ defaults for schema `IdentifierConfig` - ## 2026-03-24 - **Content updates**: - Added properties to `OperationStatus`: result ### [`v9.10.4`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-03-24-Version-9104) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.3...9.10.4) **Data-ingress** - # API Changes - ## 2026-03-23 - Added stage-us1 to supportedRealms for all endpoints - ## 2026-03-20 - **Content updates**: - Removed estimatedCompletionTime from `LongRunningOperationResponse` - Moved operationId from `LongRunningOperationResponse` to headers - ## 2026-03-18 - **Added 1 new path(s)**: - `/v1/ControlPlane/Operations/{OperationId}` (GetControlPlaneOperationStatus) - ## 2026-03-11 - Minor updates (formatting, metadata) - ## 2026-03-11 - Minor updates (formatting, metadata) - ## 2026-03-11 - Minor updates (formatting, metadata) - ## 2026-03-11 - Minor updates (formatting, metadata) - ## 2026-03-11 - Minor updates (formatting, metadata) - ## 2026-03-05 - Initial release with 10 paths and 22 operations **Memory** - ## 2026-03-19 - **Added 1 new path(s)**: - `/v1/ControlPlane/Operations/{operationId}` (FetchOperation) - ## 2026-03-11 - Minor updates (formatting, metadata) ### [`v9.10.3`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-03-10-Version-9103) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.2...9.10.3) **Twiml** - Rename `recording_configuration` to `recording_configuration_id` attribute in `<Conference>`, `<Dial>`, `<Record>` verbs and `<Recording>` noun **Ace** - # ACE Signals API Changes - ## 2026-02-18 - Initial release: POST /signals, GET/POST /signals/{signal\_id}/results, GET /health - Enables OneAdmin integration for synchronous signal ingestion and policy result polling - Supports permission-based authorization for signal operations - Health endpoint available for monitoring without authentication **Api** - Added optional parameter `Confirmation` to Payments create endpoint to enable payment confirmation prompt before gateway submission - Added optional parameter `RequireMatchingInputs` to Payments create endpoint for input confirmation in agent-assisted payment flows - Added matcher capture types (`payment-card-number-matcher`, `expiration-date-matcher`, `security-code-matcher`, `postal-code-matcher`) to Payments update endpoint **Memory** - ## 2026-03-06 - **Modified 1 path(s)**: - `/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId}` (added patch, get) ### [`v9.10.2`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-02-18-Version-9102) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.1...9.10.2) **Api** - Remove inequality examples from Calls StartTime and EndTime filter descriptions **Memory** - ## 2026-02-06 - Minor updates (formatting, metadata) - ## 2026-02-06 - Minor updates (formatting, metadata) - ## 2026-02-06 - ## 2026-01-23 - ## 2026-01-23 - **Added 3 new path(s)**: - `/v1/Stores/{storeId}/Profiles/Imports` (ListProfileImportsV2, CreateProfilesImportV2) - `/v1/Stores/{storeId}/Profiles/Imports/{importId}` (FetchProfileImportV2) - **Removed 6 path(s)**: - `/v1/KnowledgeBases/{kbId}/Knowledge` (ListKnowledge, CreateKnowledge) - `/v1/KnowledgeBases/{kbId}/Search` (KnowledgeSearch) - `/v1/KnowledgeBases/{kbId}/Knowledge/{knowledgeId}` (RetrieveKnowledge, PatchKnowledge, DeleteKnowledge) - `/v1/KnowledgeBases/{kbId}/Knowledge/{knowledgeId}/Chunks` (ListKnowledgeChunks) - `/v1/ControlPlane/KnowledgeBases` (ListKnowledgeBases, CreateKnowledgeBase) - `/v1/ControlPlane/KnowledgeBases/{kbId}` (GetKnowledgeBase, UpdateKnowledgeBase, DeleteKnowledgeBase) - ## 2026-01-05 - ## 2026-01-05 - Initial release with 26 paths and 48 operations ### [`v9.10.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-02-05-Version-9101) [Compare Source](https://github.com/twilio/twilio-python/compare/9.10.0...9.10.1) **Library - Fix** - [PR #&#8203;907](https://github.com/twilio/twilio-python/pull/907): Regional API domain processing. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! **Twiml** - Add `recording_configuration` attribute to `<Recording>` noun **Api** - Clarify the behavior of date filters with the Calls API - Added Phone Number `type` property to `/IncomingPhoneNumbers` resource **Memory** - ## 2026-01-23 - No path changes (updated metadata only) - ## 2026-01-22 - No path changes (updated metadata only) - ## 2026-01-22 - **Modified 1 path(s)**: - `/v1/Stores/{storeId}/Profiles/{profileId}` (added delete) ### [`v9.10.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-01-22-Version-9100) [Compare Source](https://github.com/twilio/twilio-python/compare/9.9.1...9.10.0) **Library - Feature** - [PR #&#8203;896](https://github.com/twilio/twilio-python/pull/896): Token pagination support. Thanks to [@&#8203;kridai](https://github.com/kridai)! - [PR #&#8203;902](https://github.com/twilio/twilio-python/pull/902): add support for response headers. Thanks to [@&#8203;kridai](https://github.com/kridai)! **Library - Chore** - [PR #&#8203;904](https://github.com/twilio/twilio-python/pull/904): fix lint errors. Thanks to [@&#8203;kridai](https://github.com/kridai)! - [PR #&#8203;901](https://github.com/twilio/twilio-python/pull/901): Error response changes. Thanks to [@&#8203;kridai](https://github.com/kridai)! **Library - Fix** - [PR #&#8203;903](https://github.com/twilio/twilio-python/pull/903): allow nullable headers response field. Thanks to [@&#8203;kridai](https://github.com/kridai)! **Twiml** - Added support for <Uri> and <Headers> inside <Dial><Sip> **Assistants** - AI Assistants v1 release **Autopilot** - Remove Export resource from Autopilot Assistant - Add dialogue\_sid param to Query list resource - Add Restore resource to Autopilot Assistant - Add one new property in Query i.e dialogue\_sid - Add Export resource to Autopilot Assistant. - Adds two new properties in Assistant i.e needs\_model\_build and development\_stage - Add Webhooks resource to Autopilot Assistant. - Introduce `autopilot` subdomain with all resources from `preview.understand` **Compliance** - Added the new InventoryComplianceInsights API under version `/v1`. **Content** - changes for adding v2 endpoints **Marketplace** - Initial transition to Marketplace domain **Memory** - # API Changes - ## 2026-01-15 - No path changes (updated metadata only) - ## 2026-01-13 - **Added 1 new path(s)**: - `/v1/Stores/{storeId}/Profiles/{profileId}/ConversationSummaries/{summaryId}` (DeleteProfileConversationSummary) - ## 2026-01-12 - No path changes (updated metadata only) - ## 2026-01-12 - No path changes (updated metadata only) - ## 2026-01-12 - No path changes (updated metadata only) - ## 2026-01-12 - **Added 2 new path(s)**: - `/v1/Stores/{storeId}/Profiles/Imports` (ListProfileImportsV2, ImportProfilesV2) - `/v1/Stores/{storeId}/Profiles/Imports/{importId}` (GetProfileImportV2) - ## 2026-01-13 - No path changes (updated metadata only) - ## 2026-01-07 - No path changes (updated metadata only) - ## 2026-01-05 - No path changes (updated metadata only) - ## 2025-12-17 - No path changes (updated metadata only) - ## 2025-12-17 - No path changes (updated metadata only) - ## 2025-12-17 - **Added 1 new path(s)**: - `/v1/Stores/{storeId}/Profiles/{profileId}/Observations/{observationId}/Revisions` (ListObservationRevisions) **Sender-ids** - Added all v2 sender-id-service endpoints **Trusthub** - Add new delete endpoint for compliance\_registration. **Voice** - Add ProvisioningStatus public API endpoints. **Wise\_owl** - Init API as open-api spec - Updated Get Chat, Send Message and Create Chat to include `contexts` in Message, instead of root Chat **Www** - Port APIs from oauth.twilio.com to [www.twilio.com](http://www.twilio.com) ### [`v9.9.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2026-01-07-Version-991) [Compare Source](https://github.com/twilio/twilio-python/compare/9.9.0...9.9.1) **Api** - Added optional parameter `clientNotificationUrl` for create call api - Added optional parameter `clientNotificationUrl` for create participant api ### [`v9.9.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-12-17-Version-990) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.8...9.9.0) **Library - Fix** - [PR #&#8203;898](https://github.com/twilio/twilio-python/pull/898): allow 2XX response for delete operation. Thanks to [@&#8203;kridai](https://github.com/kridai)! **Trunking** - Corrected the type used for phone number capabilities when accessed through a Trunk. **(breaking change)** - Corrected the type used for phone number capabilities when accessed through a Trunk. **(breaking change)** **Trusthub** - Added new parameters in in toll-free initialize api payload. - Remove the invalid status transition to Draft from the examples - Change the value of email to a valid one in the examples. ### [`v9.8.8`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-12-03-Version-988) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.7...9.8.8) **Library - Fix** - [PR #&#8203;895](https://github.com/twilio/twilio-python/pull/895): Regional API domain processing. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! **Api** - Add `twiml_session` resource for calls - Add `twiml_session` resource for calls **Monitor** - Update default output properties **Trusthub** - Added customer\_profile\_sid in toll-free initialize api payload. ### [`v9.8.7`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-11-20-Version-987) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.6...9.8.7) **Memory** - # Memory API Changes - Added initial Memory API endpoints with darkseagreen badge status ### [`v9.8.6`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-11-11-Version-986) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.5...9.8.6) **Twiml** - Add new noun `<ConversationRelaySession>` - Add support for `<Recording>` noun under `<Start>` verb ### [`v9.8.5`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-10-28-Version-985) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.4...9.8.5) **Ai** - Add `error` as possible transcript status - Add `error` as possible transcript status **Chat** - Updated v2 UserChannel `channel_status` from `not_participating` to `notParticipating` **Intelligence** - Make intelligence work with RestProxy - Add additional enums to better represent the possible states - Add `error` enum to transcription status to better align with possible outputs - Add `json` output type to text classification **Trusthub** - Remove required parameter Primary Profile Sid from compliance\_inquiry and compliance\_inquiry\_individual **Accounts** - Add Messaging GeoPermissions API changes ### [`v9.8.4`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-10-14-Version-984) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.3...9.8.4) **Library - Chore** - [PR #&#8203;887](https://github.com/twilio/twilio-python/pull/887): remove auth from request.**str**(). Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! **Library - Docs** - [PR #&#8203;886](https://github.com/twilio/twilio-python/pull/886): update oauth example. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! **Api** - Updated description for property `CallerDisplayName` for participant create request - Updated description for property `CallerDisplayName` for participant create request **Accounts** - FILE\_IS\_AUTO\_GENERATED: false ### [`v9.8.3`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-09-30-Version-983) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.2...9.8.3) **Library - Chore** - [PR #&#8203;882](https://github.com/twilio/twilio-python/pull/882): change oauth token endpoint. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! **Insights** - Replace `field` with `key` in Request Filters and Response Metadata Filters and for Reports API ### [`v9.8.2`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-09-25-Version-982) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.1...9.8.2) **Api** - Added optional parameter `CallerDisplayName` for conference participant outbound - Updated description for property `to` in the participant create request ### [`v9.8.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-09-18-Version-981) [Compare Source](https://github.com/twilio/twilio-python/compare/9.8.0...9.8.1) **Api** - Add `date_created` property to media resource and date\_created filtering parameters for read action - Updated the Recordings Resource `channels` property to clarify channels = # of channels in the recording resource and how to specify the # of channels in recording download **Intelligence** - Add encryption\_credential\_sid field in transcripts and services in v2 **Trusthub** - Remove beta feature flag for all TH APIs - Remove beta feature flag for ComplianceInquiries API to support OneConsole traffic **Twiml** - Add new noun `<AiSession>` ### [`v9.8.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-09-04-Version-980) [Compare Source](https://github.com/twilio/twilio-python/compare/9.7.2...9.8.0) **Api** - Remove usage category enum from usage record and usage triggers API **(breaking change)** ### [`v9.7.2`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-08-28-Version-972) [Compare Source](https://github.com/twilio/twilio-python/compare/9.7.1...9.7.2) **Studio** - Add `type` to Step resource APIs **Verify** - Allow to update all passkeys parameters in the service update ### [`v9.7.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-08-18-Version-971) [Compare Source](https://github.com/twilio/twilio-python/compare/9.7.0...9.7.1) **Accounts** - Update beta feature flag for consent and contact bulk upsert APIs **Api** - Add multiple missing usage categories to usage records and usage triggers api - Add `channels-whatsapp-template-marketing` and `channels-whatsapp-template-utility` to usage categories **Conversations** - Fix `state` spelling for `initializing` enum value - Update `state` to include `intializing` for ServiceConversationWithParticipants and ConversationWithParticipants **Flex** - Adding new optional parameter `identity` to `web_channels` API in version `v2` **Trusthub** - Add required Permissions to the ComplianceInquiries API **Verify** - Add passkeys support to Verify API creating and updating services. - Update `ienum` type for Factor creation - Add passkeys as challenge and factor type ### [`v9.7.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-07-24-Version-970) [Compare Source](https://github.com/twilio/twilio-python/compare/9.6.5...9.7.0) **Library - Fix** - [PR #&#8203;878](https://github.com/twilio/twilio-python/pull/878): Remove not existence class ServiceList. Thanks to [@&#8203;lopenchi](https://github.com/lopenchi)! **Events** - Remove `SinkSid` parameter when updating subscriptions. **(breaking change)** **Twiml** - Remove Duplicates. - Add Polly Generative voices. - Add Latest Google (Chirp3-HD) voices. ### [`v9.6.5`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-07-10-Version-965) [Compare Source](https://github.com/twilio/twilio-python/compare/9.6.4...9.6.5) **Library - Fix** - [PR #&#8203;874](https://github.com/twilio/twilio-python/pull/874): delete non existing import in rest/preview. Thanks to [@&#8203;lopenchi](https://github.com/lopenchi)! **Flex** - update team name for web\_channel, webchat\_init\_token, webchat\_refresh\_token ### [`v9.6.4`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-07-03-Version-964) [Compare Source](https://github.com/twilio/twilio-python/compare/9.6.3...9.6.4) **Library - Chore** - [PR #&#8203;865](https://github.com/twilio/twilio-python/pull/865): Remove references to microvisor. Thanks to [@&#8203;akhani18](https://github.com/akhani18)! - [PR #&#8203;872](https://github.com/twilio/twilio-python/pull/872): support Python 3.13. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! - [PR #&#8203;870](https://github.com/twilio/twilio-python/pull/870): remove knowledge domain. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! **Bulkexports** - Changed the type of 'details' field to be a list of objects instead of a single object **Conversations** - Updates to `method` casing for ConfgurationAddress, ConversationScopedWebhook, and ServiceConversationScopedWebhook for RestProxy compatibility **Proxy** - remove shortcodes resource as its no longer used **Serverless** - Change log field level from type `ienum` to `string` in Logs api **Taskrouter** - Remove `URL-encoded` from attributes param definition in tasks **Trunking** - Added `symmetric_rtp_enabled` property on Trunks. **Twiml** - Add support for `<WhatsApp>` noun under `<Dial>` verb ### [`v9.6.3`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-06-12-Version-963) [Compare Source](https://github.com/twilio/twilio-python/compare/9.6.2...9.6.3) **Library - Chore** - [PR #&#8203;869](https://github.com/twilio/twilio-python/pull/869): Remove knowledge files. Thanks to [@&#8203;krishnakalluri](https://github.com/krishnakalluri)! **Api** - Change DependentPhoneNumber `capabilities` type `object` and `date_created`, `date_updated` to `date_time<rfc2822>` - Updated the `Default` value from 0 to 1 in the Recordings Resource `channels` property **Serverless** - Update `ienum` type level in Logs api **Verify** - Update Channel list in Verify Attempst API - Update `ienum` type for Conversion\_Status in Verify Attempts API **Twiml** - Add `us2` to the list of supported values for the region attribute in the `<Conference>` TwiML noun. ### [`v9.6.2`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-05-29-Version-962) [Compare Source](https://github.com/twilio/twilio-python/compare/9.6.1...9.6.2) **Library - Chore** - [PR #&#8203;862](https://github.com/twilio/twilio-python/pull/862): update iam token endpoint. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! **Api** - Added several usage category enums to `usage_record` API **Numbers** - Update the porting documentation **Verify** - Update `ienum` type for Channels in Verify Attempts API ### [`v9.6.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-05-13-Version-961) [Compare Source](https://github.com/twilio/twilio-python/compare/9.6.0...9.6.1) **Accounts** - Changes to add date\_of\_consent param in Bulk Consent API **Api** - Change `friendly_name`, `date_created` and `date_updated` properties to type `string`. **Twiml** - Update twiml definition for `<ConversationRelay>` and `<Assistant>` ### [`v9.6.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-05-05-Version-960) [Compare Source](https://github.com/twilio/twilio-python/compare/9.5.2...9.6.0) **Library - Fix** - [PR #&#8203;848](https://github.com/twilio/twilio-python/pull/848): Timezone changes in token\_auth\_strategy.py. Thanks to [@&#8203;Pablo2113](https://github.com/Pablo2113)! - [PR #&#8203;853](https://github.com/twilio/twilio-python/pull/853): Fix deprecated/invalid config in `setup.cfg`. Thanks to [@&#8203;abravalheri](https://github.com/abravalheri)! **Library - Chore** - [PR #&#8203;858](https://github.com/twilio/twilio-python/pull/858): fix oauth examples. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! **Library - Docs** - [PR #&#8203;855](https://github.com/twilio/twilio-python/pull/855): update pagination usage in README.md. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! **Api** - Add `response_key` for `Usage Triggers` fetch endpoint. **Flex** - Add Update Interaction API - Adding `webhook_ttid` as optional parameter in Interactions API **Serverless** - Add node22 as a valid Build runtime - Add node20 as a valid Build runtime **Video** - removed `transcribe_participants_on_connect` and `transcriptions_configuration` from the room resource **(breaking change)** - Added `transcribe_participants_on_connect` and `transcriptions_configuration` to the room resource ### [`v9.5.2`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-04-07-Version-952) [Compare Source](https://github.com/twilio/twilio-python/compare/9.5.1...9.5.2) **Studio** - Add documentation for parent\_step\_sid field in Step resource ### [`v9.5.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-03-20-Version-951) [Compare Source](https://github.com/twilio/twilio-python/compare/9.5.0...9.5.1) **Accounts** - Update Safelist API docs as part of prefix supoort **Flex** - Removing `first_name`, `last_name`, and `friendly_name` from the Flex User API **Messaging** - Add missing tests under transaction/phone\_numbers and transaction/short\_code ### [`v9.5.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-03-11-Version-950) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.6...9.5.0) **Library - Feature** - [PR #&#8203;850](https://github.com/twilio/twilio-python/pull/850): Update UPGRADE.md. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! **Library - Fix** - [PR #&#8203;847](https://github.com/twilio/twilio-python/pull/847): AssistantsBase import. Thanks to [@&#8203;sbansla](https://github.com/sbansla)! **Api** - Add the missing `emergency_enabled` field for `Address Service` endpoints **Messaging** - Add missing enums for A2P and TF **Numbers** - add missing enum values to hosted\_number\_order\_status **Twiml** - Convert Twiml Attribute `speechModel` of type enum to string **(breaking change)** ### [`v9.4.6`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-02-20-Version-946) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.5...9.4.6) **Library - Chore** - [PR #&#8203;842](https://github.com/twilio/twilio-python/pull/842): issue 841. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! **Flex** - Adding Digital Transfers APIs under v1/Interactions **Numbers** - Convert webhook\_type to ienum type in v1/Porting/Configuration/Webhook/{webhook\_type} **Trusthub** - Changing TrustHub SupportingDocument status enum from lowercase to uppercase since kyc-orch returns status capitalized and rest proxy requires strict casing ### [`v9.4.5`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-02-11-Version-945) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.4...9.4.5) **Api** - Change downstream url and change media type for file `base/api/v2010/validation_request.json`. **Intelligence** - Add json\_results for Generative JSON operator results **Messaging** - Add DestinationAlphaSender API to support Country-Specific Alpha Senders **Video** - Change codec type from enum to case-insensitive enum in recording and room\_recording apis ### [`v9.4.4`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-01-28-Version-944) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.3...9.4.4) **Library - Fix** - [PR #&#8203;822](https://github.com/twilio/twilio-python/pull/822): Fix for 10 vulnerabilities. Thanks to [@&#8203;twilio-product-security](https://github.com/twilio-product-security)! **Library - Chore** - [PR #&#8203;834](https://github.com/twilio/twilio-python/pull/834): update httpclient. Thanks to [@&#8203;manisha1997](https://github.com/manisha1997)! - [PR #&#8203;837](https://github.com/twilio/twilio-python/pull/837): enable newer versions of aiohttp-retry. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! - [PR #&#8203;833](https://github.com/twilio/twilio-python/pull/833): created bug report issue template. Thanks to [@&#8203;sbansla](https://github.com/sbansla)! **Api** - Add open-api file tag to `conference/call recordings` and `recording_transcriptions`. **Events** - Add support for subaccount subscriptions (beta) **Insights** - add new region to conference APIs **Lookups** - Add new `parnter_sub_id` query parameter to the lookup request ### [`v9.4.3`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-01-13-Version-943) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.2...9.4.3) **Messaging** - Adds validity period Default value in service resource documentation ### [`v9.4.2`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2025-01-09-Version-942) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.1...9.4.2) **Library - Chore** - [PR #&#8203;832](https://github.com/twilio/twilio-python/pull/832): remove test for 3.7. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! **Numbers** - Change beta feature flag to use v2/BulkHostedNumberOrders ### [`v9.4.1`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2024-12-13-Version-941) [Compare Source](https://github.com/twilio/twilio-python/compare/9.4.0...9.4.1) **Library - Fix** - [PR #&#8203;827](https://github.com/twilio/twilio-python/pull/827): Fixing init file for preview iam domain. Thanks to [@&#8203;AsabuHere](https://github.com/AsabuHere)! **Library - Chore** - [PR #&#8203;826](https://github.com/twilio/twilio-python/pull/826): fix orgs api changes. Thanks to [@&#8203;tiwarishubham635](https://github.com/tiwarishubham635)! ### [`v9.4.0`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2024-12-12-Version-940) [Compare Source](https://github.com/twilio/twilio-python/compare/9.3.8...9.4.0) **Library - Feature** - [PR #&#8203;825](https://github.com/twilio/twilio-python/pull/825): Docs update and examples for organization api uptake and public oauth. Thanks to [@&#8203;AsabuHere](https://github.com/AsabuHere)! - [PR #&#8203;815](https://github.com/twilio/twilio-python/pull/815): Organizations Api uptake for twilio-python. Thanks to [@&#8203;AsabuHere](https://github.com/AsabuHere)! ### [`v9.3.8`](https://github.com/twilio/twilio-python/blob/HEAD/CHANGES.md#2024-12-05-Version-938) [Compare Source](https://github.com/twilio/twilio-python/compare/9.3.7...9.3.8) **Api** - Add optional parameter `intelligence_service` to `transcription` - Updated `phone_number_sid` to be populated for sip trunking terminating calls. **Numbers** - Add Update Hosted Number Order V2 API endpoint - Update Port in docs **Twiml** - Add optional parameter `intelligence_service` to `<Transcription>` - Add support for new `<ConversationRelay>` and `<Assistant>` noun - Add `events` attribute to `<Dial>` verb </details> <details> <summary>Kludex/uvicorn (uvicorn)</summary> ### [`v0.51.0`](https://github.com/Kludex/uvicorn/releases/tag/0.51.0): Version 0.51.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.50.2...0.51.0) #### What's Changed - Restart workers with overlap on SIGHUP for near-zero-downtime reloads by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;3025](https://github.com/Kludex/uvicorn/pull/3025) - Remove colorama from the standard extra by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;3027](https://github.com/Kludex/uvicorn/pull/3027) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.50.2...0.51.0> ### [`v0.50.2`](https://github.com/Kludex/uvicorn/releases/tag/0.50.2): Version 0.50.2 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.50.1...0.50.2) #### What's Changed - Require websockets>=13.0 for the default sansio implementation by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;3021](https://github.com/Kludex/uvicorn/pull/3021) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.50.1...0.50.2> ### [`v0.50.1`](https://github.com/Kludex/uvicorn/releases/tag/0.50.1): Version 0.50.1 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.50.0...0.50.1) #### What's Changed - Split comma-separated `Sec-WebSocket-Protocol` values in the websockets-sansio implementation by [@&#8203;Aayush7352](https://github.com/Aayush7352) in [#&#8203;3019](https://github.com/Kludex/uvicorn/pull/3019) #### New Contributors - [@&#8203;Aayush7352](https://github.com/Aayush7352) made their first contribution in [#&#8203;3019](https://github.com/Kludex/uvicorn/pull/3019) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.50.0...0.50.1> ### [`v0.50.0`](https://github.com/Kludex/uvicorn/releases/tag/0.50.0): Version 0.50.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.49.0...0.50.0) #### What's Changed - Memoize trusted host checks to avoid re-parsing the client IP per request by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2970](https://github.com/Kludex/uvicorn/pull/2970) - Cache the `asgi` scope sub-dict per connection by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2976](https://github.com/Kludex/uvicorn/pull/2976) - Build a fresh `asgi` scope dict per request by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2977](https://github.com/Kludex/uvicorn/pull/2977) - Replace click.style with an internal ANSI style helper by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2981](https://github.com/Kludex/uvicorn/pull/2981) - Avoid copying single-frame WebSocket payloads in websockets-sansio by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2983](https://github.com/Kludex/uvicorn/pull/2983) - Deprecate the legacy websockets implementation and default `auto` to websockets-sansio by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2985](https://github.com/Kludex/uvicorn/pull/2985) - Exit with a dedicated code on startup failure and stop the supervisor when a worker can't boot by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;3001](https://github.com/Kludex/uvicorn/pull/3001) - Skip the eager app import in the parent when spawning workers by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;3012](https://github.com/Kludex/uvicorn/pull/3012) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.49.0...0.50.0> ### [`v0.49.0`](https://github.com/Kludex/uvicorn/releases/tag/0.49.0): Version 0.49.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0) #### What's Changed - Bump httptools minimum version to 0.8.0 by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2962](https://github.com/Kludex/uvicorn/pull/2962) - Consume duplicate forwarding headers in ProxyHeadersMiddleware (reverses the 0.48.0 behavior of ignoring them) by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2971](https://github.com/Kludex/uvicorn/pull/2971) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.48.0...0.49.0> ### [`v0.48.0`](https://github.com/Kludex/uvicorn/releases/tag/0.48.0): Version 0.48.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0) #### What's Changed - Default `ssl_ciphers` to `None` and use OpenSSL defaults by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2940](https://github.com/Kludex/uvicorn/pull/2940) - Ignore duplicate forwarding headers in `ProxyHeadersMiddleware` by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2944](https://github.com/Kludex/uvicorn/pull/2944) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.47.0...0.48.0> ### [`v0.47.0`](https://github.com/Kludex/uvicorn/releases/tag/0.47.0): Version 0.47.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0) #### What's Changed - Eagerly import the ASGI app in the parent process by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2919](https://github.com/Kludex/uvicorn/pull/2919) - Add `ssl_context_factory` for custom `SSLContext` configuration by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2920](https://github.com/Kludex/uvicorn/pull/2920) - Treat `fd=0` as a valid file descriptor with reload/workers by [@&#8203;eltoder](https://github.com/eltoder) in [#&#8203;2927](https://github.com/Kludex/uvicorn/pull/2927) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0> ### [`v0.46.0`](https://github.com/Kludex/uvicorn/releases/tag/0.46.0): Version 0.46.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0) #### What's Changed - Support `ws_max_size` in `wsproto` implementation by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2915](https://github.com/Kludex/uvicorn/pull/2915) - Support `ws_ping_interval` and `ws_ping_timeout` in `wsproto` implementation by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2916](https://github.com/Kludex/uvicorn/pull/2916) - Use `bytearray` for incoming WebSocket message buffer in websockets-sansio by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2917](https://github.com/Kludex/uvicorn/pull/2917) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0> ### [`v0.45.0`](https://github.com/Kludex/uvicorn/releases/tag/0.45.0): Version 0.45.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0) #### What's Changed - Preserve forwarded client ports in proxy headers middleware by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2903](https://github.com/Kludex/uvicorn/pull/2903) - Accept `os.PathLike` for `log_config` by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2905](https://github.com/Kludex/uvicorn/pull/2905) - Accept `log_level` strings case-insensitively by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2907](https://github.com/Kludex/uvicorn/pull/2907) - Raise helpful `ImportError` when PyYAML is missing for YAML log config by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2906](https://github.com/Kludex/uvicorn/pull/2906) - Revert empty context for ASGI runs by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2911](https://github.com/Kludex/uvicorn/pull/2911) - Add `--reset-contextvars` flag to isolate ASGI request context by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2912](https://github.com/Kludex/uvicorn/pull/2912) - Revert "Emit `http.disconnect` on server shutdown for streaming responses" ([#&#8203;2829](https://github.com/Kludex/uvicorn/issues/2829)) by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2913](https://github.com/Kludex/uvicorn/pull/2913) #### New Contributors - [@&#8203;Krishnachaitanyakc](https://github.com/Krishnachaitanyakc) made their first contribution in [#&#8203;2870](https://github.com/Kludex/uvicorn/pull/2870) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0> ### [`v0.44.0`](https://github.com/Kludex/uvicorn/releases/tag/0.44.0): Version 0.44.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0) #### What's Changed - Implement websocket keepalive pings for websockets-sansio by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2888](https://github.com/Kludex/uvicorn/pull/2888) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0> ### [`v0.43.0`](https://github.com/Kludex/uvicorn/releases/tag/0.43.0): Version 0.43.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0) #### Changed - Emit `http.disconnect` ASGI `receive()` event on server shutting down for streaming responses ([#&#8203;2829](https://github.com/Kludex/uvicorn/issues/2829)) - Use native `context` parameter for `create_task` on Python 3.11+ ([#&#8203;2859](https://github.com/Kludex/uvicorn/issues/2859)) - Drop cast in ASGI types ([#&#8203;2875](https://github.com/Kludex/uvicorn/issues/2875)) *** **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0> ### [`v0.42.0`](https://github.com/Kludex/uvicorn/releases/tag/0.42.0): Version 0.42.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0) #### Changed - Use `bytearray` for request body accumulation to avoid O(n^2) allocation on fragmented bodies ([#&#8203;2845](https://github.com/Kludex/uvicorn/issues/2845)) #### Fixed - Escape brackets and backslash in httptools `HEADER_RE` regex ([#&#8203;2824](https://github.com/Kludex/uvicorn/issues/2824)) - Fix multiple issues in websockets sans-io implementation ([#&#8203;2825](https://github.com/Kludex/uvicorn/issues/2825)) *** #### New Contributors - [@&#8203;bysiber](https://github.com/bysiber) made their first contribution in [#&#8203;2825](https://github.com/Kludex/uvicorn/pull/2825) *** **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0> ### [`v0.41.0`](https://github.com/Kludex/uvicorn/releases/tag/0.41.0): Version 0.41.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0) #### Added - Add `--limit-max-requests-jitter` to stagger worker restarts ([#&#8203;2707](https://github.com/Kludex/uvicorn/issues/2707)) - Add socket path to `scope["server"]` ([#&#8203;2561](https://github.com/Kludex/uvicorn/issues/2561)) #### Changed - Rename `LifespanOn.error_occured` to `error_occurred` ([#&#8203;2776](https://github.com/Kludex/uvicorn/issues/2776)) #### Fixed - Ignore permission denied errors in watchfiles reloader ([#&#8203;2817](https://github.com/Kludex/uvicorn/issues/2817)) - Ensure lifespan shutdown runs when `should_exit` is set during startup ([#&#8203;2812](https://github.com/Kludex/uvicorn/issues/2812)) - Reduce the log level of 'request limit exceeded' messages ([#&#8203;2788](https://github.com/Kludex/uvicorn/issues/2788)) *** #### New Contributors - [@&#8203;t-kawasumi](https://github.com/t-kawasumi) made their first contribution in [#&#8203;2776](https://github.com/Kludex/uvicorn/pull/2776) - [@&#8203;fardyn](https://github.com/fardyn) made their first contribution in [#&#8203;2800](https://github.com/Kludex/uvicorn/pull/2800) - [@&#8203;ewie](https://github.com/ewie) made their first contribution in [#&#8203;2807](https://github.com/Kludex/uvicorn/pull/2807) - [@&#8203;shevron](https://github.com/shevron) made their first contribution in [#&#8203;2788](https://github.com/Kludex/uvicorn/pull/2788) - [@&#8203;jonashaag](https://github.com/jonashaag) made their first contribution in [#&#8203;2707](https://github.com/Kludex/uvicorn/pull/2707) *** **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0> ### [`v0.40.0`](https://github.com/Kludex/uvicorn/releases/tag/0.40.0): Version 0.40.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0) #### What's Changed - Drop Python 3.9 by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2772](https://github.com/Kludex/uvicorn/pull/2772) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0> ### [`v0.39.0`](https://github.com/Kludex/uvicorn/releases/tag/0.39.0): Version 0.39.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0) #### What's Changed - explicitly start ASGI run with empty context by [@&#8203;pmeier](https://github.com/pmeier) in [#&#8203;2742](https://github.com/Kludex/uvicorn/pull/2742) - fix(websockets): Send close frame on ASGI return by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2769](https://github.com/Kludex/uvicorn/pull/2769) #### New Contributors - [@&#8203;pmeier](https://github.com/pmeier) made their first contribution in [#&#8203;2742](https://github.com/Kludex/uvicorn/pull/2742) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0> ### [`v0.38.0`](https://github.com/Kludex/uvicorn/releases/tag/0.38.0): Version 0.38.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0) #### What's Changed - Support Python 3.14 by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2723](https://github.com/Kludex/uvicorn/pull/2723) *** #### New Contributors - [@&#8203;NGANAMODEIJunior](https://github.com/NGANAMODEIJunior) made their first contribution in [#&#8203;2713](https://github.com/Kludex/uvicorn/pull/2713) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0> ### [`v0.37.0`](https://github.com/Kludex/uvicorn/releases/tag/0.37.0): Version 0.37.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0) #### What's Changed - Add `--timeout-worker-healthcheck` setting by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2711](https://github.com/Kludex/uvicorn/pull/2711) - Add `os.PathLike[str]` type to `ssl_ca_certs` by [@&#8203;rnv812](https://github.com/rnv812) in [#&#8203;2676](https://github.com/Kludex/uvicorn/pull/2676) #### New Contributors - [@&#8203;LincolnPuzey](https://github.com/LincolnPuzey) made their first contribution in [#&#8203;2669](https://github.com/Kludex/uvicorn/pull/2669) - [@&#8203;rnv812](https://github.com/rnv812) made their first contribution in [#&#8203;2676](https://github.com/Kludex/uvicorn/pull/2676) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0> ### [`v0.36.1`](https://github.com/Kludex/uvicorn/releases/tag/0.36.1): Version 0.36.1 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1) #### What's Changed - Raise an exception when calling removed `Config.setup_event_loop()` by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2709](https://github.com/Kludex/uvicorn/pull/2709) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1> ### [`v0.36.0`](https://github.com/Kludex/uvicorn/releases/tag/0.36.0): Version 0.36.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0) #### Added - Support custom IOLOOPs by [@&#8203;gnir-work](https://github.com/gnir-work) in [#&#8203;2435](https://github.com/Kludex/uvicorn/pull/2435) - Allow to provide importable string in `--http`, `--ws` and `--loop` by [@&#8203;Kludex](https://github.com/Kludex) in [#&#8203;2658](https://github.com/Kludex/uvicorn/pull/2658) *** ##### New Contributors - [@&#8203;gnir-work](https://github.com/gnir-work) made their first contribution in [#&#8203;2435](https://github.com/Kludex/uvicorn/pull/2435) - [@&#8203;musicinmybrain](https://github.com/musicinmybrain) made their first contribution in [#&#8203;2659](https://github.com/Kludex/uvicorn/pull/2659) - [@&#8203;secrett2633](https://github.com/secrett2633) made their first contribution in [#&#8203;2684](https://github.com/Kludex/uvicorn/pull/2684) **Full Changelog**: <https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0> ### [`v0.35.0`](https://github.com/Kludex/uvicorn/releases/tag/0.35.0): Version 0.35.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.34.3...0.35.0) #### Added - Add `WebSocketsSansIOProtocol` by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2540](https://github.com/encode/uvicorn/pull/2540) #### Changed - Refine help message for option `--proxy-headers` by [@&#8203;zhangyoufu](https://github.com/zhangyoufu) in [encode#2653](https://github.com/encode/uvicorn/pull/2653) #### New Contributors - [@&#8203;zhangyoufu](https://github.com/zhangyoufu) made their first contribution in [encode#2653](https://github.com/encode/uvicorn/pull/2653) **Full Changelog**: <https://github.com/encode/uvicorn/compare/0.34.3...0.35.0> ### [`v0.34.3`](https://github.com/Kludex/uvicorn/releases/tag/0.34.3): Version 0.34.3 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.34.2...0.34.3) #### What's Changed - Don't include `cwd()` when non-empty `--reload-dirs` is passed by [@&#8203;stinovlas](https://github.com/stinovlas) in [encode#2598](https://github.com/encode/uvicorn/pull/2598) - Apply `get_client_addr` formatting to WebSocket logging by [@&#8203;Harry-Lees](https://github.com/Harry-Lees) in [encode#2636](https://github.com/encode/uvicorn/pull/2636) - chore: improve type hints by [@&#8203;waketzheng](https://github.com/waketzheng) in [encode#2638](https://github.com/encode/uvicorn/pull/2638) #### New Contributors - [@&#8203;stinovlas](https://github.com/stinovlas) made their first contribution in [encode#2598](https://github.com/encode/uvicorn/pull/2598) - [@&#8203;LifeLex](https://github.com/LifeLex) made their first contribution in [encode#2621](https://github.com/encode/uvicorn/pull/2621) - [@&#8203;Harry-Lees](https://github.com/Harry-Lees) made their first contribution in [encode#2636](https://github.com/encode/uvicorn/pull/2636) - [@&#8203;waketzheng](https://github.com/waketzheng) made their first contribution in [encode#2638](https://github.com/encode/uvicorn/pull/2638) **Full Changelog**: <https://github.com/encode/uvicorn/compare/0.34.2...0.34.3> ### [`v0.34.2`](https://github.com/Kludex/uvicorn/releases/tag/0.34.2): Version 0.34.2 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.34.1...0.34.2) #### What's Changed - Flush the stdout buffer on Windows to trigger reload by [@&#8203;jamesh1999](https://github.com/jamesh1999) in [encode#2604](https://github.com/encode/uvicorn/pull/2604) #### New Contributors - [@&#8203;jamesh1999](https://github.com/jamesh1999) made their first contribution in [encode#2604](https://github.com/encode/uvicorn/pull/2604) **Full Changelog**: <https://github.com/encode/uvicorn/compare/0.34.1...0.34.2> ### [`v0.34.1`](https://github.com/Kludex/uvicorn/releases/tag/0.34.1): Version 0.34.1 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.34.0...0.34.1) #### What's Changed - Deprecate `ServerState` in the main module by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2581](https://github.com/encode/uvicorn/pull/2581) #### New Contributors - [@&#8203;RakhimovRamis](https://github.com/RakhimovRamis) made their first contribution in [encode#2567](https://github.com/encode/uvicorn/pull/2567) - [@&#8203;carlwgeorge](https://github.com/carlwgeorge) made their first contribution in [encode#2590](https://github.com/encode/uvicorn/pull/2590) **Full Changelog**: <https://github.com/encode/uvicorn/compare/0.34.0...0.34.1> ### [`v0.34.0`](https://github.com/Kludex/uvicorn/releases/tag/0.34.0): Version 0.34.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.33.0...0.34.0) #### What's Changed - Add `content-length` to 500 response in wsproto by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2542](https://github.com/encode/uvicorn/pull/2542) - Drop Python 3.8 by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2543](https://github.com/encode/uvicorn/pull/2543) *** **Full Changelog**: <https://github.com/encode/uvicorn/compare/0.33.0...0.34.0> ### [`v0.33.0`](https://github.com/Kludex/uvicorn/releases/tag/0.33.0): Version 0.33.0 [Compare Source](https://github.com/Kludex/uvicorn/compare/0.32.1...0.33.0) #### What's Changed - Remove WatchGod by [@&#8203;Kludex](https://github.com/Kludex) in [encode#2536](https://github.com/encode/uvicorn/pull/2536) #### New Contributors - [@&#8203;bwells](https://github.com/bwells) made their first contribution in [encode#2491](https://github.com/encode/uvicorn/pull/2491) - [@&#8203;tback](https://github.com/tback) made their first contribution in [encode#2528](https://github.com/encode/uvicorn/pull/2528) **Full Changelog**: <https://github.com/encode/uvicorn/compare/0.32.1...0.33.0> </details> --- ### Configuration 📅 **Schedule**: (in timezone America/New_York) - Branch creation - "before 6am on monday" - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMzIuMCIsInVwZGF0ZWRJblZlciI6IjQzLjI0OS41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
chore(deps): update python minor/patch
Some checks failed
CI / test (pull_request) Failing after 1m7s
db332e815d
renovate-bot force-pushed renovate/python-minorpatch from db332e815d
Some checks failed
CI / test (pull_request) Failing after 1m7s
to 276396011a
Some checks failed
CI / test (pull_request) Failing after 58s
2026-06-29 13:11:07 +00:00
Compare
renovate-bot force-pushed renovate/python-minorpatch from 276396011a
Some checks failed
CI / test (pull_request) Failing after 58s
to 9f96dbc6c1
Some checks failed
CI / test (pull_request) Failing after 53s
2026-07-01 17:11:04 +00:00
Compare
renovate-bot force-pushed renovate/python-minorpatch from 9f96dbc6c1
Some checks failed
CI / test (pull_request) Failing after 53s
to 943278e9d8
Some checks failed
CI / test (pull_request) Failing after 52s
2026-07-04 06:08:54 +00:00
Compare
renovate-bot force-pushed renovate/python-minorpatch from 943278e9d8
Some checks failed
CI / test (pull_request) Failing after 52s
to bae3931670
Some checks failed
CI / test (pull_request) Failing after 43s
2026-07-06 08:14:45 +00:00
Compare
renovate-bot force-pushed renovate/python-minorpatch from bae3931670
Some checks failed
CI / test (pull_request) Failing after 43s
to 942d764c60
Some checks failed
CI / test (pull_request) Failing after 51s
2026-07-06 11:12:09 +00:00
Compare
renovate-bot force-pushed renovate/python-minorpatch from 942d764c60
Some checks failed
CI / test (pull_request) Failing after 51s
to 47539b97dd
Some checks failed
CI / test (pull_request) Failing after 57s
2026-07-08 11:13:40 +00:00
Compare
Some checks failed
CI / test (pull_request) Failing after 57s
Required
Details
Some required checks were not successful.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/python-minorpatch:renovate/python-minorpatch
git switch renovate/python-minorpatch
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
rbrooks/WeatherBot!31
No description provided.