Decouple Cadwyn (FastAPI/Starlette) hard dependencies from the Airflow Task SDK installation
- Dominant language
- Python
- Stars
- 46.9k
- Forks
- 17.8k
- Avg merge
- 2d 9h
- Merged PRs (30d)
- 472
Description
## Summary
[Cadwyn](https://github.com/zmievsa/cadwyn) is used within the Task SDK for API versioning and schema migration. However, Cadwyn currently carries hard dependencies on **FastAPI** and **Starlette**, which are web framework dependencies that are not needed in a standalone SDK installation (i.e. on worker nodes running tasks).
## Problem
Installing the Airflow Task SDK pulls in FastAPI and Starlette transitively through Cadwyn, even in environments where no HTTP server is needed. This bloats the SDK's dependency footprint and may cause conflicts in constrained environments.
## Proposed Resolution
Coordinate with the Cadwyn maintainer to explore one of the following:
- Making FastAPI/Starlette **optional extras** in Cadwyn (only required when the routing/versioning middleware is used)
- Exposing the core migration utilities (e.g. `VersionChange`, `_migrate_response`) as a dependency-free sub-package
- Or equivalent approach agreed upon with the maintainer
## Acceptance Criteria
- Installing `apache-airflow-task-sdk` (or equivalent) does **not** pull in FastAPI or Starlette unless explicitly opted into
- Cadwyn's schema migration functionality used by the supervisor remains fully operational
---
Drafted-by: Claude Code (Opus 4.7); reviewed by @jason810496 before posting
Contributor guide
Assessment
This issue has not been assessed yet.