Repository navigation
Add Eason09053360's February to October contribution report for apache-airflow - #44
Merged
Lee-W merged 2 commits intoOct 25, 2026
Conversation
Contributor
Author
|
cc @jason810496 @Lee-W |
jason810496
approved these changes
Oct 24, 2026
| - multi-team 部署用 `team_name` 決定誰能用這個 pool;export 沒寫出這個欄位,bulk 請求又把缺少的欄位序列化成 `"team_name": null` 覆寫回去 | ||
| - 舊的 `airflow pools export / import` 本來就有處理,只有照著 deprecation 提示遷移到 airflowctl 的使用者會中招 | ||
|
|
||
| ### PR(open) |
Lee-W
approved these changes
Oct 25, 2026
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.
Apache Airflow 開源貢獻紀錄 by Eason09053360(2026-02 ~ 2026-10-16)
總覽:2026 年 2 月 – 10 月(截至 10/16)
Summary
v3-3-test14、airflow-ctl/v0-1-test6、chart/v1-2x-test2)Merged PR 分類(依區域)
airflow ...、DAG.cli()、standalone)主攻是 Airflow 3 遷移後留下的 CLI / airflowctl / API 正確性問題,大多是「靜默出錯」型的 bug:exit 0 但結果是錯的、資料被默默改掉、操作其實成功但 CLI 噴 traceback等等。
October 2026(截至 10/16)
Summary
PR(merged)
Task SDK
Bug 修正dag.test()/airflow tasks test不帶日期時,會刪掉使用者從 UI 觸發的 Dag runNULL),但get_or_create_dagrun用==查詢,SQLAlchemy 會產生IS NULL,於是刪掉任意一個 dateless run,連帶 cascade 刪掉 task instancesDAG.test()的clear_dags拿None當上下界,兩個條件都被丟掉,變成清掉這個 Dag 所有 run 的 TIairflow CLI
Bug 修正bundle.initialize()(Git bundle 靠它 clone repo),dags list --local --bundle-name X回傳空清單卻 exit 0、list-import-errors回報「沒有錯誤」tasks test/dags test/tasks clear則退回掃描所有 bundle,可能拿到另一個 bundle 裡同名的 Dagairflowctl
Bug 修正backport: airflow-ctl/v0-1-testairflowctl pools export→import --action-on-existing-key overwrite會清掉 pool 的 team 歸屬,而且回報成功team_name決定誰能用這個 pool;export 沒寫出這個欄位,bulk 請求又把缺少的欄位序列化成"team_name": null覆寫回去airflow pools export / import本來就有處理,只有照著 deprecation 提示遷移到 airflowctl 的使用者會中招PR(open)
API server
Bug 修正Dag processing
Bug 修正airflow sync-perm --include-dags對每個 Dag 依每個版本各 sync 一次且無排序,已撤銷的 role 權限可能被舊版本重新授予Code Review
db clean --asset-ids會連同asset_dag_run_queue刪掉還在排隊的舊 asset event,排程在a & b上的 Dag 等到b來了也不會跑grant_type只在 extra 有grant_type或refresh_token時才設定,兩者都沒有的既有 OAuth 連線會從原本的明確錯誤訊息變成KeyError: 'grant_type'get_oauth_token(grant_type="client_credentials")也會一起壞datetime.now()是本地時間卻帶Z後綴送給 API,在 UTC-7 的 worker 上時間窗會早 7 小時、抓不到剛觸發的 run,而這段是會被使用者照抄的文件範例deserialize_user已會關閉 session,請作者確認 issue 在新版是否仍能重現Issue Triage
closes寫到的 #29532September 2026
Summary
PR(merged)
airflow CLI
Bug 修正backport: v3-3-testDAG.cli()(python my_dag.py ...)用過期的 command name 挑 subcommand,讓dags backfill、tasks run靜默消失args用 generator 只能走一次,parser 重建後dags pause參數從 6 個掉到 2 個Bug 修正backport: v3-3-testpython my_dag.py dags pause / unpause直接TypeErrorBug 修正backport: v3-3-testBug 修正backport: v3-3-teststop()就丟例外,其餘三個元件在 standalone 結束後繼續連著 metadata DB 跑Bug 修正Bug 修正backport: v3-3-testBug 修正backport: v3-3-testBug 修正backport: v3-3-testBug 修正backport: v3-3-testBug 修正backport: v3-3-testBug 修正Bug 修正Bug 修正Bug 修正Bug 修正airflowctl
Bug 修正backport: airflow-ctl/v0-1-testairflowctl backfill pause / unpause / cancel從來沒有成功過:server 是PUT、client 送POST,永遠 405;operator 無法從 CLI 停掉失控的 backfillhttpx.MockTransport沒有 route table,任何 method 都回 200 → 補上 method assertionBug 修正backport: airflow-ctl/v0-1-test--output只宣告給 10 個 CRUD 動詞,其他指令(connections test、assets materialize、backfill *)在印結果時AttributeErrorBug 修正backport: airflow-ctl/v0-1-testint()在 import 時就炸,一個寫錯的環境變數讓整個 airflowctl 無法啟動;負數的 wait 更糟,會在隨機一部分 retry 時才從 tenacity 丟例外-o json > file的輸出Bug 修正backport: airflow-ctl/v0-1-testBug 修正backport: airflow-ctl/v0-1-testBug 修正API server
Bug 修正backport: v3-3-testDiscriminator拿到未驗證的原始輸入且不包例外 → 改為回 422 並列出可接受的 tagBug 修正9/z/Z時上界會退回較短的 prefix,搜dag_9會拿到dag_abcProviders
Bug 修正(fab)Bug 修正(fab)Bug 修正(celery)Bug 修正(edge)Helm chart
Bug 修正backport: chart/v1-2x-testoverrideMappings或cache.ttl後 pod 不會重啟,ConfigMap 變了但設定沒生效Bug 修正backport: chart/v1-2x-testPR(open)
效能team查詢 N+1 → 批次化Bug 修正[scheduler] only_idle會讓 scheduler 直接起不來:--only-idle的預設值在 import 時就從 config 讀,guard 分不出是使用者打的還是 config 給的Code Review
file_dag_ids為空、檢查被跳過,只能讀這一個 Dag 的人可以拿到整個檔案的原始碼Nonetoken 會直接進 keyring,三個平台行為各不同:keyrings.alt丟TypeError、macOS 丟PasswordSetError、Windows 默默存入字串"None"pyproject.toml的—變成非法 byte0x97,AGENTS.md的→直接UnicodeEncodeErrorairflow.cfg實測,smtp_password等舊版敏感欄位在 dry-run 仍明文輸出pytest.raises(match=)是re.search,舊訊息也會 match,revert 修正後這個 assertion 仍然通過autospec=True讓測試能抓到參數名稱打錯;並指出 PR 描述的 500 情境實際上會先被 404 擋掉Issue Triage / RC Testing
August 2026
Summary
PR
airflow CLI
Bug 修正backport: v3-3-testairflow dags list每個 Dag 依版本數重複顯示(closes #60594)Bug 修正backport: v3-3-testairflow variables export→import來回一次就把值改掉:{"value": 1, "other": 2}會被當成 envelope 只剩1;JSON 字串匯出後不再是合法 JSON,deserialize_json=True開始炸Bug 修正backport: v3-3-testconfig lint對條件式移除規則完全沒輸出,email.email_backend、elasticsearch.log_id_template都回報「No issues found」Bug 修正backport: v3-3-test--env-vars時不會 exportAIRFLOW_TEST_MODE;帶--env-vars '{}'也沒用,因為空 dict 是 falsyBug 修正Providers
Bug 修正(fab)sync-perm --include-dags會把每個 Dag 整個 dump 到 stdoutBug 修正(google)lstrip("properties/")是去掉字元集合而不是 prefix,把 property ID 開頭的s吃掉:properties/s123存成123Bug 修正(teradata)Bug 修正(telegram、edge)Issue Triage / RC Testing
March 2026
Summary
PR
Providers
Bug 修正(sftp)文件(standard)Task SDK
重構February 2026
Summary
PR
Providers
新功能(fab)groupsclaim 對應 Airflow role(closes #61567)新功能(edge)Bug 修正(cncf-kubernetes)priority:critical重構測試(databricks)UI
測試API server
重構重構Task SDK / Triggerer
測試重構Issue Triage / RC Testing