社區貢獻

Kubernetes 支持以許多種方式來貢獻社區,包括彙報代碼缺陷、提交問題修復和功能實現、添加或修復文檔、協助用戶解決問題等等。

社區結構

Kubernetes 社區由三部分組成

SIG-diagram.png

提交 Pull Request 到主分支

當需要修改 Kubernetes 代碼時,可以給 Kubernetes 主分支提 Pull Request。這其實是一個標準的 Github 工作流:

一些加快 PR 合併的方法:

  • 使用小的提交,將不同功能的代碼分拆到不同的提交甚至是不同的 Pull Request 中

  • 必要的邏輯添加註釋說明變更的理由

  • 確保修改部分可以本地跑過單元測試和功能測試

  • 使用 Bot 命令 設置正確的標籤或重試失敗的測試

提交 Pull Request 到發佈分支

發佈分支的問題一般是首先在主分支裏面修復(發送 Pull Request 到主分支並通過代碼審覈之後合併),然後通過 cherry-pick 的方式發送 Pull Request 到老的分支(如 release-1.7 等)。

對於主分支的 PR,待 Reviewer 添加 cherrypick-candidate 標籤後就可以開始 cherry-pick 到老的分支了。但首先需要安裝一個 Github 發佈的 hub 工具,如

# on macOS
brew install hub

# on others
go get github.com/github/hub

然後執行下面的腳本自動 cherry-pick 併發送 PR 到需要的分支,其中 upstream/release-1.7 是要發佈的分支,而 51870 則是發送到主分支的 PR 號:

hack/cherry_pick_pull.sh upstream/release-1.7 51870

然後安裝輸出中的提示操作即可。如果合併過程中發生錯誤,需要另開一個終端手動合併衝突,並執行 git add . && git am --continue,最後再回去繼續,直到 PR 發送成功。

注意:提交到發佈分支的每個 PR 除了需要正常的代碼審覈之外,還需要對應版本的 release manager 批准。當前所有版本的 release manager 可以在 這裏 找到。

參考文檔

如果在社區貢獻中碰到問題,可以參考以下指南

Last updated