deepujain commented on PR #63694:
URL: https://github.com/apache/airflow/pull/63694#issuecomment-4147328226
Validation/evidence for this docs update:
- This PR does not change runtime behavior; it narrows the documentation so
it matches the code paths Airflow already uses.
- `TaskInstance.xcom_pull()` manually calls
`XComModel.deserialize_value(first)` for single-value pulls:
- `airflow-core/src/airflow/models/taskinstance.py:1854-1873`
- Scheduler skip-dependency evaluation then consumes that deserialized value
through `ti.xcom_pull(...)` and expects a logical dict with `followed` /
`skipped` keys:
-
`airflow-core/src/airflow/ti_deps/deps/not_previously_skipped_dep.py:65-86`
- `SkipMixin` writes exactly those logical dict values into XCom:
-
`providers/standard/src/airflow/providers/standard/utils/skipmixin.py:97-100`
-
`providers/standard/src/airflow/providers/standard/utils/skipmixin.py:186-188`
That means the earlier wording in this PR was too loose: recommending a raw
reference / placeholder fallback in scheduler context could misdocument the
contract and break branch/skip decision-making for custom backends.
This update fixes the docs by keeping the important warning that
`deserialize_value()` can run in scheduler context, while making the required
constraint explicit: scheduler-side callers still need the logical value shape
expected by Airflow.
--
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]