Skip to content

Conversation

@kaxil
Copy link
Member

@kaxil kaxil commented Aug 31, 2025

Introduces server-side SerializedParam and SerializedParamsDict classes to eliminate SDK dependencies during DAG deserialization. This change ensures the scheduler and API server can deserialize DAGs without importing Task SDK modules.

Part of #52141

TODO:

  • Param Validation

^ Add meaningful description above
Read the Pull Request Guidelines for more information.
In case of fundamental code changes, an Airflow Improvement Proposal (AIP) is needed.
In case of a new dependency, check compliance with the ASF 3rd Party License Policy.
In case of backwards incompatible changes please leave a note in a newsfragment file, named {pr_number}.significant.rst or {issue_number}.significant.rst, in airflow-core/newsfragments.

@kaxil kaxil added this to the Airflow 3.1.0 milestone Aug 31, 2025
@uranusjr uranusjr force-pushed the params-s10n branch 6 times, most recently from 7643d52 to 4697efa Compare September 5, 2025 04:05
@uranusjr uranusjr added the full tests needed We need to run full set of tests for this PR to merge label Sep 5, 2025
@uranusjr uranusjr marked this pull request as ready for review September 5, 2025 04:06
@uranusjr uranusjr linked an issue Sep 5, 2025 that may be closed by this pull request
20 tasks
@uranusjr uranusjr force-pushed the params-s10n branch 2 times, most recently from c693102 to b9e352c Compare September 5, 2025 07:06
@uranusjr uranusjr requested a review from XD-DENG as a code owner September 5, 2025 07:06
@kaxil kaxil modified the milestones: Airflow 3.1.0, Airflow 3.1.1 Sep 18, 2025
@uranusjr uranusjr force-pushed the params-s10n branch 5 times, most recently from 297cdc4 to 09eff55 Compare October 14, 2025 07:48
Copy link
Contributor

@amoghrajesh amoghrajesh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nits, but generally looks good.

Copy link
Member Author

@kaxil kaxil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't approve my own PR. Have a couple of comments but lgtm other than that @uranusjr

Copy link
Contributor

@bugraoz93 bugraoz93 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

kaxil and others added 2 commits October 16, 2025 12:50
Introduces server-side `SerializedParam` and `SerializedParamsDict` classes
to eliminate SDK dependencies during DAG deserialization. This change
ensures the scheduler and API server can deserialize DAGs without
importing Task SDK modules.

Part of apache#52141
Copy link
Member

@uranusjr uranusjr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rubber stamping for Kaxil’s approval

@uranusjr uranusjr merged commit 5d58c04 into apache:main Oct 16, 2025
112 checks passed
@uranusjr uranusjr deleted the params-s10n branch October 16, 2025 05:40
snreddygopu pushed a commit to Teradata/airflow that referenced this pull request Oct 16, 2025
…ache#55111)

Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 17, 2025
…ache#55111)

Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
fredthomsen added a commit to fredthomsen/airflow that referenced this pull request Oct 18, 2025
PR apache#55111 introduced SerializedParam to decouple from the Task SDK, but
inadvertently broke the API contract by changing `.dump()` to `.resolve()`
in the params serialization. This caused the UI to crash because
FlexibleForm expects the full param spec with {value, schema, description}
but was receiving only the resolved values.

The original SDK Param class had a `.dump()` method that returned the full
spec, so this restores the API contract rather than creating new behavior.

Related: apache#55111
fredthomsen added a commit to fredthomsen/airflow that referenced this pull request Oct 18, 2025
PR apache#55111 introduced SerializedParam to decouple from the Task SDK, but
inadvertently broke the API contract by changing `.dump()` to `.resolve()`
in the params serialization. This caused the UI to crash because
FlexibleForm expects the full param spec with {value, schema, description}
but was receiving only the resolved values.

The original SDK Param class had a `.dump()` method that returned the full
spec, so this restores the API contract rather than creating new behavior.

Related: apache#55111
fredthomsen added a commit to fredthomsen/airflow that referenced this pull request Oct 18, 2025
PR apache#55111 introduced SerializedParam to decouple from the Task SDK, but
inadvertently broke the API contract by changing `.dump()` to `.resolve()`
in the params serialization. This caused the UI to crash because
FlexibleForm expects the full param spec with {value, schema, description}
but was receiving only the resolved values.

The original SDK Param class had a `.dump()` method that returned the full
spec, so this restores the API contract rather than creating new behavior.

Related: apache#55111
abdulrahman305 bot pushed a commit to abdulrahman305/airflow that referenced this pull request Oct 19, 2025
…ache#55111)

Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
fredthomsen added a commit to fredthomsen/airflow that referenced this pull request Oct 19, 2025
PR apache#55111 introduced SerializedParam to decouple from the Task SDK, but
inadvertently broke the API contract by changing `.dump()` to `.resolve()`
in the params serialization. This caused the UI to crash because
FlexibleForm expects the full param spec with {value, schema, description}
but was receiving only the resolved values.

The original SDK Param class had a `.dump()` method that returned the full
spec, so this restores the API contract rather than creating new behavior.

Related: apache#55111
@kaxil kaxil modified the milestones: Airflow 3.1.1, Airflow 3.2.0 Oct 19, 2025
jscheffl pushed a commit to fredthomsen/airflow that referenced this pull request Oct 20, 2025
PR apache#55111 introduced SerializedParam to decouple from the Task SDK, but
inadvertently broke the API contract by changing `.dump()` to `.resolve()`
in the params serialization. This caused the UI to crash because
FlexibleForm expects the full param spec with {value, schema, description}
but was receiving only the resolved values.

The original SDK Param class had a `.dump()` method that returned the full
spec, so this restores the API contract rather than creating new behavior.

Related: apache#55111
uranusjr pushed a commit that referenced this pull request Oct 21, 2025
TyrellHaywood pushed a commit to TyrellHaywood/airflow that referenced this pull request Oct 22, 2025
…ache#55111)

Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:serialization full tests needed We need to run full set of tests for this PR to merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make the SerializedDAG & SerializedBaseOp be independent of Task SDK's DAG & BaseOP

4 participants