rjgoyln opened a new pull request, #71193: URL: https://github.com/apache/airflow/pull/71193
## Summary `airflow.utils` has accumulated modules that belong elsewhere, and untangling it is a prerequisite for the client-server separation. `TerminalTIState` and `IntermediateTIState` describe the Execution API's task lifecycle protocol, so they move to `airflow.task.state`, where `TriggerRule` and `WeightRule` already live. Enum values are unchanged, so the Execution API schema and the generated Task SDK client are untouched. The parent epic (#53385) names `airflow.sdk.definitions.state` as the target. `airflow.task.state` is where the rest of this batch landed, the Task SDK never imported `airflow.utils.state`, and moving these into the SDK would add an airflow-core → task-sdk import that #62061 is working to remove. Straightforward to redirect if the epic's target is preferred. Both enums also drop off the `airflow.utils.state` page listed in `public-airflow-interface.rst` without a replacement entry, matching how `trigger_rule` and `weight_rule` were handled. ## Compatibility The old attribute paths still resolve and emit a `DeprecationWarning`. The Google provider's `TYPE_CHECKING` import moves to the new path because the old one no longer resolves statically. closes: #54899 closes: #54900 --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 5) Generated-by: Claude Code (Opus 5) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
