$ the-wire · showcase
FastAPI 0.142.0 ships native OpenTelemetry support
By RepoJournal · Filed · About FastAPI & Pydantic · Composed from the cited sources · methodology
FastAPI's tracing story moves in-tree with native OpenTelemetry support in 0.142.0, alongside a fix that stops included routers from wrapping endpoints repeatedly, while Pydantic tightens serialization inference, dataclass config propagation, and NameEmail validation.
✨ Add native OpenTelemetry support fastapi/fastapi
The implementation was designed up front against OpenTelemetry's contrib implementation, Logfire, and Sentry, exposing the data those tools currently extract by monkeypatching FastAPI internals. If your tracing setup patches FastAPI, expect that surface to move: tiangolo notes "I'll change and refactor a lot of those internals soon".
🐛 Fix repeated endpoint wrapping in included routers fastapi/fastapi
Endpoints in included routers were being wrapped more than once, producing recursion with older Sentry versions; the latest Sentry handles it on its own. Worth taking if you are pinned to an older Sentry and see recursive traces or wrapped handlers.
Don't apply `ser_json_timedelta` to all datetime types in serialization inference pydantic/pydantic
The deprecated ser_json_timedelta setting applied to every datetime type during type inference, even though it was only meant to affect timedelta; ser_json_temporal is the setting that covers all datetime types. Serialization of datetimes no longer inherits it implicitly.
Encode JSON Schema defaults with a consistent configuration pydantic/pydantic
JSON Schema defaults were encoded via to_jsonable_python(), which relied on type inference and could silently miss config values. Defaults now go through an explicit TypeAdapter that receives the whole config, so newly added config is picked up rather than dropped.
Propagate `init` and `kw_only=False` from `Field()` to stdlib dataclass fields pydantic/pydantic
init and kw_only=False set on Field() were not reaching stdlib dataclass fields, and kw_only was misbehaving as well. The long tail includes extra config being respected in the JSON Schema of stdlib dataclasses and newlines now rejected in NameEmail validation, a first step toward a broader change.