Uh oh!
There was an error while loading. Please reload this page.
Add dags next execution command #66172 - #66188
Conversation
0f68bf4 to
d0a6df2CompareUh 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.
d0a6df2 to
4981c00Comparef46f925 to
c3c543fCompare04bc372 to
015f008Comparehaseebmalik18
commented
May 15, 2026
@bugraoz93 Ready for review |
haseebmalik18
commented
May 22, 2026
@bugraoz93 Just following up on this whenever you have a chance |
bugraoz93
left a comment
There was a problem hiding this comment.
Small nit looks good. Thanks for the PR! :) I will add full test to see ci for integration
Uh oh!
There was an error while loading. Please reload this page.
7b3e1bc to
e3c7495CompareUh oh!
There was an error while loading. Please reload this page.
Backport failed to create: airflow-ctl/v0-1-test. View the failure log Run detailsNote: As of Merging PRs targeted for Airflow 3.X In matter of doubt please ask in #release-management Slack channel.
You can attempt to backport this manually by running: cherry_picker 16ad479 airflow-ctl/v0-1-testThis should apply the commit to the airflow-ctl/v0-1-test branch and leave the commit in conflict state marking After you have resolved the conflicts, you can continue the backport process by running: cherry_picker --continueIf you don't have cherry-picker installed, see the installation guide. |
… (#67386) * Add airflowctl dags next-execution command #66172 * Add generated OpenAPI spec and UI types * Revert "Add generated OpenAPI spec and UI types" This reverts commit 6748ed8. * Update help text Dag definition --------- (cherry picked from commit 16ad479) Co-authored-by: Haseeb Malik <118837269+haseebmalik18@users.noreply.github.com>
* [airflow-ctl-v0-1-test] Allow remote version check without authentication (#65099) (#65904) * fix(cli): allow remote version check without local config file * fix(cli): introduce NO_AUTH client * test(cli): add unit test for no-auth commands (cherry picked from commit 80cefde) Co-authored-by: rjgoyln <151457491+rjgoyln@users.noreply.github.com> * [airflow-ctl-v0-1-test] use existing safe_load function in airflowctl utils to load help texts (#65841) (#65903) (cherry picked from commit ad213e0) Co-authored-by: Justin Pakzad <114518232+justinpakzad@users.noreply.github.com> * [airflow-ctl-v0-1-test] airflowctl: Send backfill create and dry-run payloads as JSON (#65158) (#65937) (cherry picked from commit ec8977c) Co-authored-by: Henry Chen <henryhenry0512@gmail.com> * Bump uv floor to 0.11.8, override cooldown for uv (#66042) (#66057) Pins `[tool.uv] required-version` (and the matching marker-tagged constants in breeze) to 0.11.8 across the root and the three workspace members that carried their own (stale) floor (`airflow-core`, `airflow-ctl`, `dev/mypy` — all previously `>=0.6.3`). The bump picks up the timestamp-elision fix from astral-sh/uv#19022 (closesastral-sh/uv#18708 — relative `exclude-newer` no longer writes a churning timestamp into uv.lock that two branches collide on). Drops uv's per-package cooldown to "12 hours" in both [tool.uv.exclude-newer-package] and [tool.uv.pip.exclude-newer-package]; without the override the project-wide 4-day window blocks a freshly-released uv from being adopted as the floor. The override is flagged "REMOVE BY 2026-05-01" — once 0.11.8 is older than the global 4-day cooldown the override is redundant. Bumps AIRFLOW_UV_VERSION across Dockerfiles, breeze constants, and the image-args doc to match. The `# sync-uv-min-version`-tagged test fixtures were auto-rewritten by the prek hook of the same name. uv.lock confirms the upstream fix is engaged: `exclude-newer` reads as the no-op `0001-01-01T00:00:00Z` placeholder. (cherry picked from commit dbfc27d) * [airflow-ctl-v0-1-test] Align Dag capitalization from "DAG" to "Dag" for airflow-ctl/ (#66112) (#66217) Backport of #66112. Conflicts resolved by keeping v0-1-test base for unrelated divergences (only_new field, validate_model, is_backfillable property, DAGRunCollectionResponse multi-line docstring) and applying only the DAG -> Dag description-text changes — feature-related lines absent in v0-1-test were not introduced. Co-authored-by: hojeong park <parkhj062@gmail.com> * [airflow-ctl/v0-1-test] Increment version of airflowctl for RC (#67295) (#67384) * Increment version of airflowctl for RC * Change airflow-core usage for ctl * Change airflow-core usage for ctl and amend installation in docker * Prepare airflowctl for tests in CI * Amend install airflow and provider to cover airflowctl (cherry picked from commit 336a119) * [airflow-ctl/v0-1-test] airflowctl: make required CLI params positional, keep optional as --flag (#66768) (#67387) * airflowctl: make required CLI params positional, keep optional as --flag Auto-generated commands such as ``airflowctl dags get-details`` now accept required primitive parameters positionally: airflowctl dags get-details my_dag_id instead of the previous ``--dag-id my_dag_id`` form. Optional parameters and booleans keep the ``--flag`` form. This follows the dev-list lazy consensus on airflowctl parameter style. A parameter is considered required when the operation method declares it without a default and without ``| None`` in its annotation. Datamodel- expanded body fields are unaffected — they are not "parameters of the operation method" in this sense and continue to use ``--flag``. * tests: tmp_path fixture for command-factory; positional form for integration tests Two follow-ups to the positional-required-args change: - ``TestCommandFactory._save_temp_operations_py`` previously wrote a shared ``test_command.py`` in cwd; under pytest-xdist that file is raced by workers, so ``next(arg for arg in jobs_list_args if ...)`` in one test could see content written by another and raise ``StopIteration``. Helper now takes the per-test ``tmp_path`` and returns the full path. The classmethod ``teardown_method`` that removed the shared file is no longer needed (pytest auto-cleans ``tmp_path``). - The Airflow CTL PROD-image integration tests still invoked converted parameters with the old ``--flag value`` form (e.g. ``--variable-key=X``, ``--section X --option Y``, ``--dag-id=example_bash_operator``). Updated each occurrence to the positional form that the regenerated CLI now expects. Optional parameters (``--logical-date``, ``--run-after``, ``--is-paused``, ``--state``, ``--limit``, etc.) stay as ``--flag``. --------- (cherry picked from commit ffa426b) Signed-off-by: 1fanwang <1fannnw@gmail.com> Co-authored-by: Stefan Wang <1fannnw@gmail.com> * [airflow-ctl/v0-1-test] Add dags next execution command #66172 (#66188) (#67386) * Add airflowctl dags next-execution command #66172 * Add generated OpenAPI spec and UI types * Revert "Add generated OpenAPI spec and UI types" This reverts commit 6748ed8. * Update help text Dag definition --------- (cherry picked from commit 16ad479) Co-authored-by: Haseeb Malik <118837269+haseebmalik18@users.noreply.github.com> * Sync main to backport branch for airflowctl (#67559) * [airflow-ctl/v0-1-test] Add airflowctl 0.1.5 release notes (#67562) (#67576) * Add airflowctl 0.1.5 release notes * Add double backticks * Apply suggestions from code review * Amend release notes without backports and duplicates, add misc as commented visibility --------- (cherry picked from commit 1a1c145) Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com> --------- Signed-off-by: 1fanwang <1fannnw@gmail.com> Co-authored-by: rjgoyln <151457491+rjgoyln@users.noreply.github.com> Co-authored-by: Justin Pakzad <114518232+justinpakzad@users.noreply.github.com> Co-authored-by: Henry Chen <henryhenry0512@gmail.com> Co-authored-by: Jarek Potiuk <jarek@potiuk.com> Co-authored-by: Yeonguk Choo <choo121600@gmail.com> Co-authored-by: hojeong park <parkhj062@gmail.com> Co-authored-by: Stefan Wang <1fannnw@gmail.com> Co-authored-by: Haseeb Malik <118837269+haseebmalik18@users.noreply.github.com> Co-authored-by: Jens Scheffler <95105677+jscheffl@users.noreply.github.com>
Add
airflowctl dags next-executioncommand that displays the next scheduled execution time for a DAG by fetchingnext_dagrun_logical_date,next_dagrun_data_interval_start,next_dagrun_data_interval_end, andnext_dagrun_run_afterfrom the existingGET /api/v2/dags/{dag_id}endpoint. Prints a clear message when no upcoming run is scheduled.closes: #66172