Add config to avoid one DAG run when unpausing a DAG with catchup=False #38168
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.
This PR adds a config to avoid immediately running a DAG run when first unpausing a DAG with
catchup=False.This is a common issue during e.g. migrations, where people expect that unpausing a DAG with
catchup=Falsewill wait for the next interval to complete, and only then run the first interval. However, it currently immediately executes the first DAG runs.Since this would be a breaking change, I suggest this behaviour should be fixed in Airflow 3.0.0. To support this temporarily in Airflow 2.*, I suggest introducing a config
AIRFLOW__SCHEDULER__CATCHUP_FALSE_NO_DAGRUN_AIRFLOW_2_FIX, which is defaultFalse, but can be set toTrueto enable this fix.Creating a draft for feedback. TODOs are add tests, docs, and support all timetables (currently only cron-based timetable supported).
^ 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.rstor{issue_number}.significant.rst, in newsfragments.