| RFC-0214:Fuchsia 淘汰政策 | |
|---|---|
| 狀態 | 已接受 |
| 區域 |
|
| 說明 | 列舉權利和責任,減少工程師花費在變更上的時間。 |
| 問題 | |
| Gerrit 變更 | |
| 作者 | |
| 審查人員 | |
| 提交日期 (年-月-日) | 2022-12-22 |
| 審查日期 (年-月-日) | 2023-04-03 |
摘要
更新 Fuchsia 的管理模式,納入平台流失政策,新增回報變更成本、主動通知受影響團隊,以及限制受影響團隊工作量的規定。
提振精神
Fuchsia 現在是大型專案,有多個獨立團隊努力工作,以滿足各種客戶的目標。同時,Fuchsia 等平台也必須不斷演進,這需要許多貢獻者在程式碼集內付出間歇性的努力,也就是俗稱的「流失」。
目標
- 根據專案的支援和穩定性目標,調整 Fuchsia 工程實務。
- 準確估算遷移作業和其他外部強制變更所花費的時間。
- 釐清 RFC 設計與 FPS 人員配置決策之間的界線。
- 為團隊提供一系列遷移策略,供他們參考。
非目標
- 變更已開始的大規模變更策略。
- 決定要進行哪些變更。
- 針對所有變更強制採用特定遷移策略。
- 降低變更率。
- 設定政策,讓用戶端團隊不必費力即可進行變更。
利害關係人
協助人員:
- abarth@google.com
審查者:
- abarth@google.com
- keir@google.com
- shayba@google.com
已諮詢:
- neelsa@google.com
- tombergan@google.com
公共平台:
這份 RFC 最初是 Google 內部文件,在 Fuchsia 團隊中廣為分享,包括 Fuchsia 工程委員會成員。
實作
這項提案是針對 Fuchsia 的管理模式進行變更,詳情請參閱「受影響的團隊」和「發起團隊」小節。如果接受這項 RFC,我們會更新 FEC 章程、新增管理政策,並修訂新貢獻者指南,以實作這項 RFC。
非正式來說,如果變更需要其他貢獻者投入開發工作或變更工作流程,就會視為「Fuchsia 範圍內」的變更。包括影響 ABI、SDK 的任何公開部分、產品內容或產生的程式碼。
Fuchsia 的所有變更都會為許多 Fuchsia 貢獻者帶來工程成本。這項政策會集中管理這些費用,以便盡量減少支出。 就本政策而言,「受影響的團隊」是指必須核准或變更自身程式碼、工作流程或文件的團隊,以因應流失情況。
發起變更的貢獻者或團隊有責任解決任何中斷問題。在大多數情況下,這表示要採取「先還原,再診斷」的方法。
受影響的團隊
如果核准的變更會影響您的團隊:
在兩個工作天內回覆收到的 CL 審查或其他變更。
協助變更作者達成令人滿意的結論,例如核准他們的工作、回覆問卷調查、明確拒絕提議的變更、要求對變更進行特定修改,以及/或回答變更作者提出的主題相關問題。
如果回覆流失問題的時間超過 10%,請向 eng-council@fuchsia.dev 標記這個問題
如果變更屬於風格指南 (例如 Lint、編譯器警告等),您可以決定要多快解決新的風格違規事項。
發起團隊
如果沒有流失政策,對於造成流失的變更,就沒有正式的要求或期望。本節新增了這類變更作者的責任。
如果您的團隊要發起變更,並負責完成所有工作:
- 傳送郵件給 FEC,說明對其他團隊的影響極小。
- 傳送郵件至 announce@fuchsia.dev,通知貢獻者遷移事宜。
- 繼續遷移。
如果團隊發起的變更需要其他人付出大量心力,包括透過 RFC 發起的變更:
- 制定計畫,向 FEC 證明團隊將投入至少 80% 的手動工作量,處理自動化無法解決的問題。計畫必須列出受影響的團隊,以及變更的預估成本。
- FEC 核准企劃書後,請通知受影響的團隊。他們必須能夠使用至少兩個季度的季度規劃來安排工作,因此請在季度開始前一週以上通知團隊。
- 繼續遷移。
回溯相容性
這項政策不會影響任何進行中的遷移作業。
說明文件
為協助變更作者,fuchsia.dev 會提供遷移計畫範例。
缺點、替代方案和未知事項
這項提案的主要缺點是,流程開始時需要FEC參與。變更作者必須及時收到 FEC 和受影響貢獻者的回覆。
其中一項替代政策是要求受影響的投稿人核准變更。 這樣一來,變更作者就能持續進展。這個替代方案遭到駁回,因為這會剝奪受影響的貢獻者提供意見回饋的機會,無法瞭解提案變更的價值和危害。
另一種替代方案是採取更嚴格的做法,也就是所有遷移作業都必須使用可用的版本管理機制進行軟轉換,並放慢步調,讓所有 Fuchsia 貢獻者都能分攤工作。這與提案政策不同,因為提案政策並未對受影響的團隊設定參與度期望。這項替代方案遭到駁回,因為它未設定審查時間表,導致發起團隊難以規劃及及時進展。
既有技術和參考資料
閱讀這份提案時,是否有任何背景資料可供參考?舉例來說,其他作業系統是否會解決這項提案要解決的問題?