Handle no next run in dags next-execution --table#67395
Conversation
|
Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide
|
| if info is None: | ||
| print( | ||
| "[WARN] No following schedule can be found. " | ||
| "This DAG may have schedule interval '@once' or `None`.", |
There was a problem hiding this comment.
| "This DAG may have schedule interval '@once' or `None`.", | |
| "This Dag may have schedule interval '@once' or `None`.", |
| if info is None: | ||
| print( | ||
| "[WARN] No following schedule can be found. " | ||
| "This DAG may have schedule interval '@once' or `None`.", |
There was a problem hiding this comment.
| "This Dag may have schedule interval '@once' or `None`.", |
just for keep consistnecy
23tae
left a comment
There was a problem hiding this comment.
Great fix for the CLI crash and excellent test coverage!
Left a minor inline suggestion regarding consistency.
LGTM!
| "This DAG may have schedule interval '@once' or `None`.", | ||
| file=sys.stderr, | ||
| ) | ||
| break |
There was a problem hiding this comment.
The iter_next_dagrun_info() generator naturally exhausts itself on None, making this break technically unnecessary.
For consistency with the existing non---table block below, we can just remove it here. No pressure though, either way is fine.
|
@fallintoplace A few things need addressing before review — see our Pull Request quality criteria.
No rush. Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you. Drafted-by: Claude Code (Opus 4.7); reviewed by @potiuk before posting |
|
@potiuk Thank you! Let me check later. |
|
@fallintoplace — There are 3 unresolved review thread(s) on this PR, and you have engaged with each one (post-review commits and/or in-thread replies). Could you confirm whether you believe the feedback is fully addressed and the PR is ready for maintainer review confirmation? If yes, reply here (a short "yes / ready" is fine) and an Apache Airflow maintainer will pick the PR up from the review queue on the next sweep. If you are still working on a thread, please reply with what is outstanding so the threads stay unresolved on purpose. Note: This comment was drafted by an AI-assisted triage tool and may contain mistakes. Once you have addressed the points above, an Apache Airflow maintainer — a real person — will take the next look at your PR. We use this two-stage triage process so that our maintainers' limited time is spent where it matters most: the conversation with you. |
|
Thanks for the ping. I checked this again, and it looks like this PR is now superseded by #67642, which already landed the no-next-run handling for No maintainer review needed on this one anymore. |
|
Let me know if more changes are needed. |
|
Sorry for the confusion from my last comment. As noted above, #67642 already fixed this issue and added regression coverage, so there’s nothing left to merge here. Closing as superseded. Thanks everyone for the reviews. |
What this does
Nonesentinel inairflow dags next-execution --tableschedule=Noneand@oncewith--num-executions 2 --tableWhy
The non-table path already handles the "no next run" case, but the table path iterated over
DagRunInfo | Noneand applied attribute getters unconditionally. That could raise when a DAG hasschedule=None, or when an@onceDAG is asked for additional executions.Closes #67394.
Testing
Important
🛠️ Maintainer triage note for @fallintoplace · by
@potiuk· 2026-07-18 16:36 UTCI've removed the
ready for maintainer reviewlabel — the next step here is yours:main. See docs.It'll return to the maintainer queue automatically once resolved — no need to re-add the label by hand. See the Pull Request quality criteria for details.
The ball is in your court — you've been assigned. Rebase onto
main, push, then mark it Ready for review.Automated triage — may be imperfect; a maintainer takes the next look.