Kida 0.11.0
Framework quickstarts, release hardening, and a modular partial evaluator
Released 2026-07-07.
Kida 0.11.0 is a checkpoint release for the server-side component system. It makes the existing-framework path runnable and tested, hardens release and CI gates, and splits the largest partial-evaluation phases into focused modules without changing Kida's public API or runtime dependency contract.
Added
- Framework-first quickstarts — Current Flask, Django, and FastAPI/Starlette guides now show typed components, full-page rendering, named fragment routes, form handling, and the Jinja2 scoping migration path.
- Runnable integration examples — Flask, Django, and FastAPI component apps exercise real framework clients, fragment rendering, and output escaping in the standard test suite.
- Pyodide playground direction — The planning record now recommends a worker-isolated, JSON-context browser playground, with compatibility and safety gates required before implementation.
Changed
- Component-first product documentation — The README, package metadata, landing page, and documentation navigation now lead with typed props, named slots, and static call validation rather than generic template-engine copy.
- Python components ecosystem framing — Public pages no longer present Bengal as the identity of the stack. Bengal remains the current documentation build tool and a supported legacy integration while the broader stack evolves.
- Phase-owned partial evaluation — Constant folding, dead-code elimination, expression transforms, loop unrolling, component inlining, and temporary-node flattening now live in focused modules. The main evaluator fell from 2,307 to 1,247 lines, with free-threaded stability and benchmark gates unchanged.
- One authoritative CI contract — Local and CI Ruff scopes now agree, public
examples run in the standard suite, and duplicate type-check lanes were
consolidated into the report-producing
Type Check (ty)job. - Release automation fails early —
make gh-releaseverifies a clean tree, the exact remotemaincommit, curated release notes, and tag consistency before creating a release that triggers trusted PyPI publishing.
Fixed
- Published install commands use the real distribution name — Site snippets
install
kida-templates; Python code continues toimport kida. - Design-system example imports components correctly — The example uses
explicit
{% from ... import ... %}declarations instead of relying on isolated{% include %}scope. - Fallback failures are diagnosable — Cache cleanup, loader discovery, README detection, terminal width, and related best-effort paths retain their graceful behavior while exposing useful debug context.
Upgrade Notes
- No runtime API, template syntax, or CLI migration is required from 0.10.x.
- Install with
uv add kida-templatesorpip install kida-templates; import the package askida. - Python 3.14 remains the minimum supported version, with Python 3.14t used for the project's free-threaded verification and release gates.
- Framework integrations remain optional development/test dependencies. The installed Kida runtime still has zero dependencies.
Why this checkpoint
The work since 0.10.0 strengthens adoption and maintainability rather than expanding public surface area. Publishing now gives framework users a stable, tested checkpoint before the surrounding stack shifts into its next phase.