Merged
Conversation
16d1d9d to
b7610a9
Compare
4f5a04e to
f35fa74
Compare
ashb
reviewed
Dec 2, 2025
ashb
reviewed
Dec 2, 2025
ashb
approved these changes
Dec 2, 2025
Member
There was a problem hiding this comment.
I'm a little worried we might need some back-compat on the imports, but I'm not really sure if that is true or not. BaseTime table probably needs one for anyone who might have created a custom timetable.
For instance a custom timetable did this:
from airflow.timetables.base import DagRunInfo, DataInterval, TimeRestriction, Timetable
Member
Author
|
The current (before this PR) way to use custom timetables is to import the base class in core, and that still exists (it’s still the base class for all timetable classes in core), so I don’t think anything would break. You can swith to the new base class in SDK, but things will also continue to work if you don’t change anything. |
The built-in ones are just stubs; we only need the logic after deserialization.
Most notably adding ensure_core_timetable
This matches the core attribute and caused less headaches.
b0536e7 to
5eab691
Compare
itayweb
pushed a commit
to itayweb/airflow
that referenced
this pull request
Dec 6, 2025
52 tasks
Subham-KRLX
pushed a commit
to Subham-KRLX/airflow
that referenced
this pull request
Mar 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
For built-in timetables, the SDK only contain minimal stubs that implement the arguments (mostly attrs-generated), and
validate()(called when a DAG instance is created). Serialization logic is moved toairflow.serialization.encoders. When the dag processor sees those SDK stubs, it converts the import path to Core timetable classes, which implement most of the actual logic once deserialized.User-custom timetables should still inherit
airflow.timetables.Timetablebecause they must be defined in plugins and loaded into protected processes.A part of #52141.