Repository navigation
v0.5.0
Minimum supported dependency versions are raised, which is a compatibility break
for downstreams, not a patch-level refresh.
Changed
- BREAKING: minimum supported dependency versions raised. These are floors, not just
lockfile pins — installs that previously resolved will now fail to. Runtime dependencies:
opentelemetry-{api,sdk,exporter-otlp}>=1.38 → >=1.44,pydantic>=2.12 → >=2.13.4,
typing-extensions>=4.12 → >=4.16. Optional extras:opentelemetry-instrumentation-{fastapi,django,flask}=0.47b0 → >=0.65b0,
pydantic-ai>=1.19 → >=2.22 (a major version of that project),
structlog>=25.5 → >=26.1,ollama>=0.6.0 → >=0.6.2,httpx>=0.28.0 → >=0.28.1.
Consumers pinned below any of these must upgrade before taking this release.
Every floor is set to the latest release published at the time of the bump. - Dev toolchain —
pytest9.1.1,pytest-asyncio1.4.0,pytest-cov7.1.0,ruff0.16.1,
mypy2.3.0,fastapi0.141.1,build1.5.0,twine7.0.0. Dev-only; no consumer impact. - mypy hardening —
warn_unused_ignoresis nowtrue. The previousfalseexisted to keep
version-dependent ignores valid across the 1.38–1.42 SDK typing change; raising the
opentelemetry-sdkfloor to 1.44 puts the whole supported range past that change, so the
suppression is no longer needed. Removed two now-dead# type: ignore[no-untyped-call]
comments inshutdown/init, and gavemcp._patch_mcp_classan explicittarget: Any
boundary for the dynamically-patched third-party class instead of two new inline ignores.
Note this coupling: reverting the SDK floor to <1.42 requires revertingwarn_unused_ignorestoo.
Internal
- CI now installs
.[dev,all], so the optional extras' version floors are proven to resolve on
every supported Python version (3.10–3.13) rather than going unexercised. - CI lints the whole tree (
ruff check .) instead of justsrc tests;examples/andscripts/
are exempted fromARG001for the same reasontests/already is — decorators supply
ctx/payload arguments positionally, so demo signatures keep parameters their bodies ignore.