jroachgolf84 opened a new issue, #72410:
URL: https://github.com/apache/airflow/issues/72410

   ## Description
   
   > This is an issue that is reserved for the Airflow Summit "Contributors" 
Workshop. This is denoted with the label `contributors-workshop`. Out of 
respect for the organizers and participants of this workshop, **please do not 
implement a PR that addresses this issue.**
   >
   > If this issue is still open following Airflow Summit, the label will be 
removed and the issue can be picked up.
   
   Sub-issue of #62063, which investigates provider usage of `airflow.utils` 
imports so they can be replaced with Task SDK equivalents and reduce the 
`airflow-core` dependency in providers.
   
   | | |
   | --- | --- |
   | Provider | common.ai |
   | Import | `TaskInstanceState` from `airflow.utils.state` |
   | Replacement | `airflow.sdk.TaskInstanceState` |
   | Shape | Import-only change in a single file |
   
   common.ai requires `apache-airflow>=3.0.0` (see 
`providers/common/ai/pyproject.toml`), so `airflow.sdk` is always available and 
no version guard is needed here, unlike most other providers that still support 
Airflow 2.11+. `airflow.sdk.TaskInstanceState` and 
`airflow.utils.state.TaskInstanceState` are two independently defined `(str, 
Enum)` classes with matching member names and string values, so this is a plain 
import swap with no behavior change.
   
   ### What needs to change
   
   Replace `from airflow.utils.state import TaskInstanceState` with `from 
airflow.sdk import TaskInstanceState` in:
   
   - 
`providers/common/ai/src/airflow/providers/common/ai/plugins/hitl_review.py:83`,
 inside the `if AIRFLOW_V_3_1_PLUS:` block, used later to build 
`_RUNNING_TI_STATES = frozenset({TaskInstanceState.RUNNING, ...})`
   
   No other code in this file needs to change, only the import line.
   
   ### How to verify it
   
   The existing unit tests should pass unmodified, since the enum values are 
identical:
   
   ```bash
   breeze testing providers-tests 
providers/common/ai/tests/unit/common/ai/plugins/test_hitl_review.py
   ```
   
   ## Definition of Done
   
   1. Update the import in `plugins/hitl_review.py`.
   2. Confirm no other `airflow.utils.state` usage remains in 
`providers/common/ai/src` (`grep -rn "airflow.utils.state" 
providers/common/ai/src`).
   3. No new tests are needed, this is a like-for-like import swap, existing 
tests should pass unmodified.
   4. This should pass:
   
   ```bash
   breeze testing providers-tests --test-type "Providers[common.ai]"
   ```
   
   ---
   Drafted-by: Claude Code (Sonnet 5) (no human review before posting)
   


-- 
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]

Reply via email to