Repository navigation
Pass Dag runs directly to Deadline references - #70714
Conversation
e9c48fd to
3b99b93
Compare
|
@ferruzzi can I get a review? |
3b99b93 to
db15212
Compare
|
Quickest fix: git fetch upstream main && git rebase upstream/main
rm uv.lock && uv lock
git add uv.lock && git rebase --continue
git push --force-with-leaseAutomated nudge — ignore if you're not ready to rebase. This comment is updated in place on future |
|
Heads up on sequencing: this PR now overlaps two others in
This PR fixes the same The cheapest merge order looks like it will be to merge #70370 first, then rebase here. #70370 adds |
|
Adding a fourth PR to the picture since it breaks something here concretely. #71802 adds a core-side That will break Also worth noting, #71850's diff still has |
|
Merging #68917 and then this one |
|
@ferruzzi or @imrichardwu , would one of you be able to rebase this? |
Preserve the Dag run evaluation context for custom references that accept additional keyword arguments, so they continue to evaluate correctly.
Co-authored-by: D. Ferruzzi <ferruzzi@amazon.com>
Co-authored-by: D. Ferruzzi <ferruzzi@amazon.com>
Co-authored-by: D. Ferruzzi <ferruzzi@amazon.com>
The custom deadline reference examples returned the dagrun attribute directly, which read as if the attribute was the required return value rather than an input available to the author's business logic. Type the evaluation dagrun with the shared DagRunProtocol so authors get a concrete contract for what is available, and show the attribute feeding into business logic in the examples.
A custom deadline reference whose _evaluate_with declares **kwargs is expected to receive the full evaluation context, matching the standard Python "accept anything" convention rather than having the context filtered away. Align the test with that behaviour.
Clarify the supported Dag run interface for deadline references and document the migration away from required_kwargs before Airflow 4.0.
Updated the DeadlineDagRunProtocol class to eliminate its inheritance from DagRunProtocol, simplifying the interface for deadline references. The class now directly defines the necessary attributes for evaluating deadlines without relying on the ORM DagRun structure.
…evaluations This update introduces warning logs in the SerializedReferenceModels for cases where a DagRun's logical date or queued at time is missing. Additionally, the test suite has been enhanced to verify that these warnings are correctly logged when the respective attributes are None.
…adline evaluations
4010284 to
ab49ec2
Compare
Done |
|
@ferruzzi looks good to merge |
ferruzzi
left a comment
There was a problem hiding this comment.
Thanks for sticking with this one, I know it was a long wait.
…ence The recompute now asks the reference for the new time (apache#70714), so a reference whose evaluation returns something other than the bare queued_at is what separates re-anchoring through the reference from the built-in formula.
Backport failed to create: v3-4-test. View the failure log Run detailsNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
You can attempt to backport this manually by running: cherry_picker 637b741 v3-4-testThis should apply the commit to the v3-4-test branch and leave the commit in conflict state marking After you have resolved the conflicts, you can continue the backport process by running: cherry_picker --continueIf you don't have cherry-picker installed, see the installation guide. |
Backport successfully created: v3-4-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
…74986) * Fix custom Deadline references with optional keyword arguments Preserve the Dag run evaluation context for custom references that accept additional keyword arguments, so they continue to evaluate correctly. (cherry picked from commit 637b741) Co-authored-by: Richard <richard9@ualberta.ca> Co-authored-by: D. Ferruzzi <ferruzzi@amazon.com>
…74986) * Fix custom Deadline references with optional keyword arguments Preserve the Dag run evaluation context for custom references that accept additional keyword arguments, so they continue to evaluate correctly. (cherry picked from commit 637b741) Co-authored-by: Richard <richard9@ualberta.ca> Co-authored-by: D. Ferruzzi <ferruzzi@amazon.com>
…ence The recompute now asks the reference for the new time (apache#70714), so a reference whose evaluation returns something other than the bare queued_at is what separates re-anchoring through the reference from the built-in formula.
Preserve the Dag run evaluation context for custom references that accept additional keyword arguments, so they continue to evaluate correctly.
Pass the in-memory Dag run to Deadline references so built-in references avoid redundant database reads and custom references can evaluate the current state.
Deprecate
required_kwargswhile preserving it for existing custom references. Use the shared evaluator when recalculating queued-at deadlines.closes: #70710
Was generative AI tooling used to co-author this PR?
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.