Repository navigation
[airflow-ctl/v0-1-test] Add Airflow 3.4 Dag warning types and plugin destinations - #76119
Merged
shahar1 merged 1 commit intoOct 31, 2026
Merged
Conversation
…owctl Airflow 3.4.0rc1 servers emit enum values that the airflowctl client models reject, so "airflowctl dags list-warning" and "airflowctl plugins list" crash with a pydantic ValidationError. Add the missing DagWarningType members, the missing plugin destinations, and accept importer-namespaced warning strings (for example "yaml:deprecated_field") in DAGWarningResponse.warning_type. generated.py was hand-edited to the 3.4.0rc1 spec on purpose. This branch's own OpenAPI spec is generated from airflow-core, which this branch does not release, and it does not carry the 3.4 values. A datamodel regeneration from the branch spec would drop the edit; the new tests guard against that. datamodel-codegen 0.41.0 run on the 3.4.0rc1 spec would produce "DagWarningType | WarningType" with WarningType a RootModel[str]. The plain str alternative was chosen instead so that warning_type == "yaml:x" stays a plain string comparison. Destination1 keeps its current name although the 3.4 spec renumbers it.
shahar1
requested review from
bugraoz93,
dheerajturaga and
potiuk
as code owners
October 31, 2026 07:24
shahar1
enabled auto-merge (squash)
October 31, 2026 07:28
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Partial backport to
airflow-ctl/v0-1-testof the enum values Airflow 3.4 servers return and 0.1.x cannot parse, following the precedent of #76076 (only the values, not the features):DagWarningType:duplicate dag id(Warn in UI when the same dag_id is registered from multiple files #68791) andtask group cycle(Deprecate cyclic TaskGroup dependencies #73746), plus the<namespace>:<name>warning types 3.4 emits for provider warnings. Without themdags list-warningcrashes with a pydanticValidationErroron any 3.4 server that has a duplicate Dag id or a task-group cycle (reproduced live onapache/airflow:3.4.0rc1-python3.12).asset,dag_overview,task_overview(Add React plugin support to Dag and task overviews #69992). Without themplugins listcrashes on a 3.4 server that has a React or external-view plugin targeting those destinations.Unlike #76076 this edits
airflow-ctl/src/airflowctl/api/datamodels/generated.pydirectly: regenerating it from this branch would require backporting the 3.4 core datamodels behind five feature PRs, which is out of scope for a patch release. The hand edit is marked in the file so the next regeneration knows to keep it. Servers on 3.2.x and 3.3.x never send these values, so their behaviour is unchanged.Tested:
breeze testing airflow-ctl-tests: 575 passed (new tests for both enums and for thens:namepattern boundary, all failing without the change).apache/airflow:3.4.0rc1-python3.12with two files defining the samedag_id:dags list-warning(table and--output json) returns theduplicate dag idwarning instead of a traceback;plugins listreturns. Unchanged against 3.2.2 and 3.3.2.breeze testing airflow-ctl-integration-testsagainst 3.2.2, 3.3.2 and 3.4.0rc1 with the three 0.1.6 fixes combined: identical results to the unpatched branch.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Fable 5.1) following the guidelines