Uh oh!
There was an error while loading. Please reload this page.
Split airflowctl dags state argument into run_id and --logical-date - #69915
Conversation
72be3ef to
6cae126CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Signed-off-by: PoAn Yang <payang@apache.org>
6cae126 to
52dc407CompareLee-W
commented
Jul 23, 2026
@bugraoz93 Since we've not yet released 1.0.0, I think we don't need to worry about breaking change? |
bugraoz93
commented
Jul 23, 2026
Exactly @Lee-W, good to go. Thanks for checking! Discussion still needs attention from community for 1.0. We will release 0.1.x versions until we agree on 1.0 maturity |
bugraoz93
commented
Jul 23, 2026
Let see CI integration tests and merge :) |
Uh oh!
There was an error while loading. Please reload this page.
Backport successfully created: airflow-ctl/v0-1-testNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
|
The dags state backport (apache#69915, apache#70352) brought the caller and the tests but dropped suppress_error_log from DagRunOperations.list(), which main has. dag_command.py:147 passes it, so the command raised: TypeError: DagRunOperations.list() got an unexpected keyword argument 'suppress_error_log' Restore the keyword-only parameter and forward it to the client as the airflowctl_suppress_error_log extension, matching the sibling get(). The broken caller only exists on this test branch, so no released airflowctl is affected and no newsfragment is needed.
…pache#69915) Signed-off-by: PoAn Yang <payang@apache.org>
Why
airflow dags stateused single fieldlogical_date_or_run_idfor two different values. Theairflowctl dags stateinherited it.logical_date, it spends an extra request trying it as arun_idfirst. That request is bound to 404, and the CLI then uses the list API to retrieve thedag_run. An unknownrun_idhas a similar issue: the 404 is followed by a list call issued only to check that the Dag exists.How
--logical-dateand makerun_idan optional positional. Exactly one of the two is required.run_idgoes straight todag_runs.getand--logical-dategoes todag_runs.list.Verification
uv run --project airflow-ctl pytest airflow-ctl/tests/airflow_ctl/ctl/commands/test_dag_command.py airflow-ctl/tests/airflow_ctl/api/test_operations.pyWas 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.