|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.3.0b0] - 2026-02-23 |
| 9 | + |
| 10 | +### Breaking Changes |
| 11 | + |
| 12 | +- **`fastapi`, `uvicorn`, and `jinjax` are no longer installed by default.** |
| 13 | + These packages have been moved from mandatory core dependencies to the optional |
| 14 | + `[fastapi]` extras group. Existing FastAPI users must update their install command: |
| 15 | + |
| 16 | + ```bash |
| 17 | + # Before (0.2.x) |
| 18 | + pip install component-framework |
| 19 | + |
| 20 | + # After (0.3.0+) |
| 21 | + pip install "component-framework[fastapi]" |
| 22 | + ``` |
| 23 | + |
| 24 | + **CI pipelines** that install the bare package without specifying an extras group |
| 25 | + will break silently after this upgrade. Update all install commands in CI |
| 26 | + configuration files (GitHub Actions, Dockerfile, tox.ini, Makefile, etc.). |
| 27 | + |
| 28 | + **Transitive dependents** — downstream projects that relied on `fastapi` or |
| 29 | + `jinjax` being pulled in transitively through this library will also be affected. |
| 30 | + Audit your dependency tree if you see unexpected ImportError messages after upgrading. |
| 31 | + |
| 32 | +### Added |
| 33 | + |
| 34 | +- `[fastapi]` optional extras group — installs `fastapi>=0.109.0`, |
| 35 | + `uvicorn[standard]>=0.27.0`, and `jinjax>=0.41`. |
| 36 | +- `[dev-base]` optional extras group — test tooling without adapter extras, |
| 37 | + used by the CI isolation matrix. |
| 38 | +- `[all]` convenience extras group — installs all runtime extras |
| 39 | + (`[fastapi,django,websockets]`). |
| 40 | +- Actionable `ImportError` messages on all adapter modules — attempting to import |
| 41 | + an adapter without its extras group now raises a clear error naming the missing |
| 42 | + package and the install command needed to resolve it. Example: |
| 43 | + |
| 44 | + ``` |
| 45 | + ImportError: 'fastapi' is not installed. |
| 46 | + Install the 'fastapi' extra: pip install 'component-framework[fastapi]' |
| 47 | + ``` |
| 48 | + |
| 49 | +- CI extras isolation matrix — each extras group (`base`, `fastapi`, `django`, |
| 50 | + `all`) is now tested in isolation to prevent cross-adapter contamination. |
| 51 | +- `pytest.importorskip` guards on all adapter test modules — adapter tests skip |
| 52 | + cleanly instead of failing with `ImportError` when the relevant extras group is |
| 53 | + not installed. |
| 54 | + |
| 55 | +### Changed |
| 56 | + |
| 57 | +- `[dev]` extras group now self-references all runtime extras via |
| 58 | + `component-framework[dev-base,fastapi,django,websockets]`. Installing `.[dev]` |
| 59 | + continues to provide the full development environment. |
| 60 | +- `pydantic>=2.0` is now the only mandatory runtime dependency. |
| 61 | + |
| 62 | +## [0.2.0b0] - 2025-XX-XX |
| 63 | + |
| 64 | +Initial Beta release. See README for full feature list. |
0 commit comments