Skip to content

Commit b506453

Browse files
authored
ci: collapse the wheel-only 3.14 floors (DP1) (#305)
1 parent f0d5aac commit b506453

2 files changed

Lines changed: 4 additions & 14 deletions

File tree

‎.github/workflows/_checks.yml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,8 @@ jobs:
125125
126126
floors:
127127
# Every other job resolves newest, so a declared floor is a claim nothing checks. This one
128-
# pins each direct dependency to the floor pyproject.toml declares and bootstraps against it.
128+
# installs the declared floors exactly on the floor Python, and the lowest versions with a
129+
# wheel on every other entry (CI10), then bootstraps against them.
129130
# Per framework rather than all-extras at once: a floor declared in one extra pulls the shared
130131
# stack up for the others, so a combined resolution tests a set no user installs.
131132
# Runtime smoke only, by design (#236): pytest cannot run here because conftest.py hard-imports

‎pyproject.toml‎

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,6 @@ otl = [
7575
"opentelemetry-sdk>=1.28",
7676
"opentelemetry-exporter-otlp-proto-grpc>=1.28",
7777
"opentelemetry-instrumentation>=0.49b0",
78-
# The exporter pulls grpcio, whose first cp314 wheels (1.75.1) require typing-extensions>=4.12.
79-
"typing-extensions>=4.12; python_version >= '3.14'",
8078
]
8179
otl-http = [
8280
"opentelemetry-api>=1.28",
@@ -117,10 +115,8 @@ fastapi-metrics = [
117115
"prometheus-fastapi-instrumentator>=8.0.1",
118116
# The instrumentator requires starlette>=1.0, which fastapi first allows at 0.133.
119117
"fastapi>=0.133",
120-
# The lowest typing-extensions a wheel-only resolve accepts with fastapi 0.133: its pydantic
121-
# stack needs 4.12, and 4.14.1 on the interpreters whose pydantic-core wheels start later.
122-
"typing-extensions>=4.12; python_version < '3.13'",
123-
"typing-extensions>=4.14.1; python_version >= '3.13'",
118+
# The lowest typing-extensions fastapi 0.133's pydantic stack accepts.
119+
"typing-extensions>=4.12",
124120
]
125121
fastapi-all = [
126122
"lite-bootstrap[fastapi-sentry,fastapi-otl,fastapi-logging,fastapi-metrics,pyroscope]",
@@ -165,17 +161,10 @@ faststream = [
165161
# >=0.6 for faststream._internal.logger.params_storage.ManualLoggerStorage and for
166162
# broker.config.logger.params_storage (FastStreamLoggingInstrument swaps and restores it).
167163
"faststream>=0.6",
168-
# Not imported here: faststream pulls pydantic through fast-depends[pydantic], which allows it
169-
# back to 1.7.4, and pydantic-core ships no cp314 wheel before pydantic 2.12. Without this the
170-
# lowest declared combination has no installable pydantic on 3.14. Marked, because 2.7.4 is fine
171-
# everywhere else and there is no reason to raise the floor for older interpreters.
172-
"pydantic>=2.12; python_version >= '3.14'",
173164
# pydantic requires typing-extensions>=4.12.2 on 3.13+; without this the lowest declared
174165
# combination pins typing-extensions at 4.8 and drags pydantic back to a build that has no
175166
# cp313 wheel either.
176167
"typing-extensions>=4.12.2",
177-
# pydantic 2.12, the 3.14 floor above, requires >=4.14.1.
178-
"typing-extensions>=4.14.1; python_version >= '3.14'",
179168
]
180169
faststream-sentry = [
181170
"lite-bootstrap[faststream,sentry]",

0 commit comments

Comments
 (0)