This is an automated email from the ASF dual-hosted git repository.
kaxilnaik pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 93144ab1578 Add end-to-end feature checklist to Execution API
AGENTS.md (#62481)
93144ab1578 is described below
commit 93144ab1578ad44a41cfc1ad0f2c84f8338ab1dc
Author: Kaxil Naik <[email protected]>
AuthorDate: Thu Feb 26 16:47:14 2026 +0000
Add end-to-end feature checklist to Execution API AGENTS.md (#62481)
New Execution API features touch multiple packages (API routes,
Task SDK comms/client/supervisor, DAG processor and triggerer
exclusion lists). Document the full cross-package workflow so
agents don't miss steps like updating message type unions.
---
.../airflow/api_fastapi/execution_api/AGENTS.md | 23 ++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
b/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
index 56e2baca439..39e08334573 100644
--- a/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
+++ b/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
@@ -33,10 +33,33 @@ cd task-sdk && python dev/generate_task_sdk_models.py
- Don't add changes to already-released version files.
- Don't forget response converters for new fields in nested objects.
+### Adding a New Feature End-to-End
+
+Adding a new Execution API feature touches multiple packages. All of these
must stay in sync:
+
+1. **Datamodels** — add request/response schemas in `datamodels/`.
+2. **Route** — add the endpoint in `routes/`.
+3. **Version migration** — add Cadwyn `VersionChange` (see above).
+4. **Task SDK message types** — add request/response to
`task-sdk/src/airflow/sdk/execution_time/comms.py`.
+5. **Task SDK client** — add the client method in
`task-sdk/src/airflow/sdk/api/client.py`.
+6. **Supervisor** — handle the new message in
`task-sdk/src/airflow/sdk/execution_time/supervisor.py`.
+7. **DAG processor & triggerer exclusions** — these use
`InProcessExecutionAPI` and have explicit message type unions. Add new types to
their handler or exclusion lists in `airflow/dag_processing/processor.py` and
`airflow/jobs/triggerer_job_runner.py`.
+8. **Regenerate models** — `cd task-sdk && python
dev/generate_task_sdk_models.py`.
+9. **Tests** — if the new message type requires an API endpoint, add tests in
all of these:
+ - `airflow-core/tests/unit/api_fastapi/execution_api/` — endpoint tests
+ - `task-sdk/tests/task_sdk/api/test_client.py` — client method tests
+ - `task-sdk/tests/task_sdk/execution_time/test_supervisor.py` — add a
`RequestTestCase` entry to `REQUEST_TEST_CASES` list
+ - `task-sdk/tests/task_sdk/execution_time/test_task_runner.py` — task
runner integration tests
+
### Key Paths
- Models: `datamodels/`
- Routes: `routes/`
- Versions: `versions/`
+- Message types: `task-sdk/src/airflow/sdk/execution_time/comms.py`
+- Client: `task-sdk/src/airflow/sdk/api/client.py`
+- Supervisor: `task-sdk/src/airflow/sdk/execution_time/supervisor.py`
+- DAG processor handler: `airflow-core/src/airflow/dag_processing/processor.py`
+- Triggerer handler: `airflow-core/src/airflow/jobs/triggerer_job_runner.py`
- Task SDK generated models:
`task-sdk/src/airflow/sdk/api/datamodels/_generated.py`
- Full versioning guide:
[`contributing-docs/19_execution_api_versioning.rst`](../../../../contributing-docs/19_execution_api_versioning.rst)