Skip to content

Commit 8dae606

Browse files
authored
ci: test Python 3.15 and 3.15t as supported versions (#298)
* ci: test Python 3.15 and 3.15t as supported versions * test: cover UNSET's repr directly
1 parent 9484afa commit 8dae606

4 files changed

Lines changed: 10 additions & 1 deletion

File tree

‎.github/workflows/_checks.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ jobs:
5353
- "3.12"
5454
- "3.13"
5555
- "3.14"
56+
- "3.15"
5657
steps:
5758
- uses: actions/checkout@v6
5859
- uses: extractions/setup-just@v4
@@ -72,6 +73,8 @@ jobs:
7273
include:
7374
- python-version: "3.14t"
7475
extras: "logging,sentry,fastapi,litestar,faststream,fastmcp,fastapi-metrics,litestar-metrics,faststream-metrics,fastmcp-metrics,otl-http"
76+
- python-version: "3.15t"
77+
extras: "logging,sentry,fastapi,litestar,faststream,fastmcp,fastapi-metrics,litestar-metrics,faststream-metrics,fastmcp-metrics,otl-http"
7578
steps:
7679
- uses: actions/checkout@v6
7780
- uses: astral-sh/setup-uv@v8.2.0

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ The following intentionally differ:
6969

7070
- Configuration. `lite-bootstrap` uses frozen `dataclass` configs with no `pydantic` / `pydantic-settings` runtime dependency, which is what makes it "lite". `microbootstrap` configures everything through `pydantic-settings` models.
7171
- Extras. `lite-bootstrap` has one mandatory runtime dependency, the pure-Python `typing-extensions`. Every instrument (`sentry`, `otl`, `logging`, `pyroscope`) and every framework (`fastapi`, `litestar`, `faststream`, `fastmcp`) is its own extra, plus an opt-in `orjson` speedup for logging, per-pair combos (`fastapi-sentry`, `litestar-otl`, `faststream-metrics`, …) and `*-all` rollups. `microbootstrap` bundles the full observability stack (opentelemetry, sentry-sdk, structlog, pyroscope-io, rich, pydantic-settings, …) as base dependencies and only splits framework packages into extras.
72-
- Free-threading. `lite-bootstrap` runs on free-threaded CPython 3.14t. Every extra whose dependencies are pure Python installs there. The rest are blocked upstream: `orjson` and `pyroscope` have no free-threaded wheels, and `otl` needs `grpcio`, so use `otl-http` instead.
72+
- Free-threading. `lite-bootstrap` runs on free-threaded CPython 3.14t and 3.15t. Every extra whose dependencies are pure Python installs there. The rest are blocked upstream: `orjson` and `pyroscope` have no free-threaded wheels, and `otl` needs `grpcio`, so use `otl-http` instead.
7373
- Scope. `lite-bootstrap` only wires instruments. It does not include a Granian server runner or a console writer.
7474

7575
## Links

‎pyproject.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ classifiers = [
1515
"Programming Language :: Python :: 3.12",
1616
"Programming Language :: Python :: 3.13",
1717
"Programming Language :: Python :: 3.14",
18+
"Programming Language :: Python :: 3.15",
1819
"Typing :: Typed",
1920
"Topic :: Software Development :: Libraries",
2021
]

‎tests/test_types.py‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
from lite_bootstrap.types import UNSET
2+
3+
4+
def test_unset_repr() -> None:
5+
assert repr(UNSET) == "UNSET"

0 commit comments

Comments
 (0)