jedcunningham opened a new pull request, #66441: URL: https://github.com/apache/airflow/pull/66441
Switching a Dag from `CronTriggerTimetable` to `CronDataIntervalTimetable` on existing dagruns skips one scheduled run, because the next run is advanced one period to avoid colliding with the previous run's `logical_date`. This can happen silently in two ways without anyone editing a Dag: - Flipping `[scheduler] create_cron_data_intervals`, which changes how every Dag with a bare cron string in `schedule=` resolves its timetable. - Crossing a version boundary where the default differs (Airflow 2.x defaults to `True`, Airflow 3 defaults to `False`). This PR documents that behavior and recommends pinning the flag before the change: - Expand the Airflow 3 upgrade guide entry for `create_cron_data_intervals` to spell out which Dags are affected, what `data_interval_start` / `data_interval_end` / `ds` / `ts` consumers need to do, and that the flag should be set **before** the upgrade. - Add a "Switching between trigger and data interval timetables on an existing Dag" section to the timetable comparison docs covering both the explicit-flag-flip and version-boundary cases, and the asymmetry (data interval -> trigger does not skip a run). - Mirror the warning into the Airflow 3.0 sections of `RELEASE_NOTES.rst`. Docs-only change. --- ##### Was generative AI tooling used to co-author this PR? - [X] Yes — Claude Code (Opus 4.7) Generated-by: Claude Code (Opus 4.7) following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- 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]
