@@ -71,6 +71,8 @@ otl = [
7171 " opentelemetry-sdk>=1.28" ,
7272 " opentelemetry-exporter-otlp-proto-grpc>=1.28" ,
7373 " opentelemetry-instrumentation>=0.49b0" ,
74+ # The exporter pulls grpcio, whose first cp314 wheels (1.75.1) require typing-extensions>=4.12.
75+ " typing-extensions>=4.12; python_version >= '3.14'" ,
7476]
7577otl-http = [
7678 " opentelemetry-api>=1.28" ,
@@ -91,6 +93,8 @@ fastapi = [
9193 # >=0.112.2 for fastapi.routing._merge_lifespan_context, which FastAPIBootstrapper._wrap_lifespan
9294 # uses to chain teardown onto the user's lifespan. Private, so it can move without a deprecation.
9395 " fastapi>=0.112.2" ,
96+ # fastapi 0.112.2 requires typing-extensions>=4.8.
97+ " typing-extensions>=4.8" ,
9498]
9599fastapi-sentry = [
96100 " lite-bootstrap[fastapi,sentry]" ,
@@ -107,6 +111,12 @@ fastapi-metrics = [
107111 # >=8.0.1 carries the _IncludedRouter fix required for FastAPI >=0.137
108112 # (trallnag/prometheus-fastapi-instrumentator#370).
109113 " prometheus-fastapi-instrumentator>=8.0.1" ,
114+ # The instrumentator requires starlette>=1.0, which fastapi first allows at 0.133.
115+ " fastapi>=0.133" ,
116+ # The lowest typing-extensions a wheel-only resolve accepts with fastapi 0.133: its pydantic
117+ # stack needs 4.12, and 4.14.1 on the interpreters whose pydantic-core wheels start later.
118+ " typing-extensions>=4.12; python_version < '3.13'" ,
119+ " typing-extensions>=4.14.1; python_version >= '3.13'" ,
110120]
111121fastapi-all = [
112122 " lite-bootstrap[fastapi-sentry,fastapi-otl,fastapi-logging,fastapi-metrics,pyroscope]" ,
@@ -158,6 +168,8 @@ faststream = [
158168 # combination pins typing-extensions at 4.8 and drags pydantic back to a build that has no
159169 # cp313 wheel either.
160170 " typing-extensions>=4.12.2" ,
171+ # pydantic 2.12, the 3.14 floor above, requires >=4.14.1.
172+ " typing-extensions>=4.14.1; python_version >= '3.14'" ,
161173]
162174faststream-sentry = [
163175 " lite-bootstrap[faststream,sentry]" ,
@@ -181,6 +193,8 @@ fastmcp = [
181193 # (FastMcpBootstrapper registers its teardown through them --
182194 # docs/adr/0001-fastmcp-teardown-via-provider-lifespan.md).
183195 " fastmcp>=3.0" ,
196+ # fastmcp 3.0 pulls py-key-value-aio, which requires typing-extensions>=4.15.
197+ " typing-extensions>=4.15" ,
184198]
185199fastmcp-metrics = [
186200 " lite-bootstrap[fastmcp]" ,
0 commit comments