Skip to content

Commit f0d5aac

Browse files
authored
fix: require typing-extensions 4.14 on Python 3.15 and test floors the CI10 way (#300)
* fix: require typing-extensions 4.14 on Python 3.15 and test floors there * fix: keep only the 3.15 typing-extensions floor and test floors the CI10 way
1 parent d43c619 commit f0d5aac

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

‎.github/workflows/_checks.yml‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,12 @@ jobs:
138138
strategy:
139139
fail-fast: false
140140
matrix:
141-
python-version: ["3.11", "3.12", "3.13", "3.14"]
141+
python-version: ["3.11", "3.12", "3.13", "3.14", "3.15"]
142142
target: [free, fastapi, litestar, faststream, fastmcp]
143+
# PyYAML ships no cp315 wheel yet, and the fastmcp and litestar stacks pull it.
144+
exclude:
145+
- {python-version: "3.15", target: fastmcp}
146+
- {python-version: "3.15", target: litestar}
143147
# These `include` entries name an existing `target`, so each adds `extras` to that
144148
# target's five combinations rather than creating a job of its own. `free` carries
145149
# orjson because it belongs to no *-all extra and its floor is a wheel-availability
@@ -159,7 +163,10 @@ jobs:
159163
- run: uv python install ${{ matrix.python-version }}
160164
- run: uv venv --python ${{ matrix.python-version }}
161165
# Pinned with builds allowed, so a floor with no wheel fails the wheel-only install below.
162-
- run: uv pip compile pyproject.toml ${{ matrix.extras }} --no-deps --resolution lowest-direct -o floors.txt
166+
- if: matrix.python-version == '3.11'
167+
run: uv pip compile pyproject.toml ${{ matrix.extras }} --no-deps --resolution lowest-direct -o floors.txt
168+
- if: matrix.python-version != '3.11'
169+
run: uv pip compile pyproject.toml ${{ matrix.extras }} --resolution lowest-direct --no-build -o floors.txt
163170
- run: uv pip install -r pyproject.toml ${{ matrix.extras }} --constraints floors.txt --no-build
164171
- run: uv pip install --no-deps .
165172
- name: Bootstrap at the floors

‎pyproject.toml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ dependencies = [
2424
# Runtime use: `typing_extensions.TypedDict` (healthchecks), required by pydantic/FastAPI on
2525
# Python < 3.12 (`typing.TypedDict` is rejected there). Pure Python, so ft-friendly.
2626
# >=4.6 because 4.4 and 4.5 raise on import under Python >=3.12 (they subclass `typing.TypeVar`).
27-
"typing-extensions>=4.6",
27+
# 4.7 to 4.13 install on 3.15 and fail at import: they read `typing.no_type_check_decorator`,
28+
# which 3.15 removed. 4.14 is the first release after them.
29+
"typing-extensions>=4.6; python_version < '3.15'",
30+
"typing-extensions>=4.14; python_version >= '3.15'",
2831
]
2932

3033
[project.urls]

0 commit comments

Comments
 (0)