RFC-0098:元件架構 RFC 條件

RFC-0098:元件架構 RFC 條件
狀態已接受
區域
  • 元件架構
  • 管理事宜
說明

RFC 程序的附加條款,定義了元件架構的廣泛影響。

作者
審查人員
提交日期 (年/月)2021-05-20
審查日期 (年/月)2021-06-01

提振精神

元件架構 (CF) 系統提供在 Fuchsia 上執行軟體的基礎。

因此,對元件架構的變更可能會對 Fuchsia 架構以及以 Fuchsia 為指定目標軟體的開發人員產生重大影響。

全套 RFC 程序提供一致且公開透明的程序,有助於制定範圍更廣的技術決策。本文件旨在提供必要詳細資訊,釐清 CF 變更所受到的廣泛影響,足以提供專屬 RFC,哪些則不會。

設計

需要 RFC 的變更

  • 相關變更導致公開 CF API、程式庫和工具加入或修改,如 Fuchsia SDK 所述。例如,fuchsia.sys2fuchsia.componentfuchsia.session、CML、C++ 元件程式庫等項目的變更。
  • 安全性政策異動,包括許可清單和功能轉送設定。例如,新增許可清單安全性政策,或新增可轉送能力。
  • 對元件管理服務進行變更,以便產生外部可見效果。例如,關閉順序的計算方式或效能設定檔出現任何重大變更 (程式碼大小、記憶體用量、CPU 時間)。
  • 對會引起外部可見影響的 Session Manager 變更。例如,從平台轉送到工作階段的功能組合的變更,反之亦然,或對其效能設定檔的任何重大變更。
  • 導入或移除工作階段中使用的平台元件 (屬於 SDK 的一部分)。例如:推出新的「管理員」元件,預計在各工作階段重複使用。
  • 元件管理員的全新偵錯或診斷功能。例如新的記錄檔分析功能或「檢查」的額外內容。
  • 提議修改元件架構的變更。例如介紹新的資源管理和配額概念。
  • .CML 檔案語法的重大變更或新增內容。例如,變更 .CML 檔案轉送到子項的方式。

當變更無法完全符合上述條件時,預設目標為:

1) 按照 RFC 程序進行,或 1) 來自 Fuchsia 工程委員會的 Seek 輸入內容

您可以自行決定是否採用 RFC 來記錄股份狀態,但我們建議這麼做。發布具狀態的 RFC 可讓更多人認識 Fuchsia 現有架構,包括 Google 以外的使用者。此外,它們也提供架構當前狀態的參照,供未來要連結的 RFC 作者參考。

正向例子:過去需要 RFC 的變更內容

  • 元件解析器 (CTP-013):加入 CF 擴充點,可讓元件作者變更元件網址解析為元件中繼資料和可執行內容的方式。
  • Components v2 許可清單 (CTP-020):導入了控管 CF 執行階段安全性政策的機制
  • 讓跑者穿過環境 (CTP-021):在元件拓撲中提議變更執行元件功能如何轉送至子項和子子項
  • 導入 SDK 時的 Realm Builder (nee Topology Builder - CTP-033):這是用於在執行階段建立複雜元件拓撲的測試程式庫。
  • 新的 CML 能力語法 (CTP-023):變更 .CML 檔案中的能力轉送語法
  • Stdio 作為能力 (CTP-031、RFC-69):為 stdout、stdin 和 stderr 推出新的可轉送功能,並定義了上述轉送的 .CML 檔案語法。
  • 從子項 (CTP-036):雖然微幅變動,但會影響先前放置在元件之間轉送的限制。

排除示例:過去不需要 RFC 的變更

  • 元件架構 API 修訂版本 (CTP-030):API 修訂版本來提高可讀性和語意更清楚,而且無需變更元件執行階段本身的行為。
  • 元件管理服務設定 (CTP-024):新的機制來設定元件_manager 的內部行為,以移除透過較進階的設定機制導入的技術債。
  • 元件圖分析 (CTP-034):針對 fuchsia.git 的元件資訊清單導入建構時間靜態分析,以便找出因人為錯誤而轉送的不相符問題。

從構想到 RFC 的進度

許多功能都需要從原型設計、設計人員的意見回饋,到透過實際工作環境的品質的程式碼和 API 獲得實際客戶體驗。對於 CF 貢獻者而言,獲得各功能相關體驗並反覆擴大目標對象規模並不罕見。例如,功能提案可能會經過較不正式的設計流程,包括核心團隊成員和實作項目,然後與 fuchsia.git 開發人員測試,再經過更正式的 RFC 程序。

協作者可以自行斟酌選擇提早進入 RFC 程序,特別是在能夠依據上述條件預測設計目標為適用於 RFC 的情況更是如此。

導入策略

凡是已通過 CF 專案既定設計審查程序的工作,都不必回溯符合此處定義的 RFC 條件。

如果貢獻者希望透過 RFC 與 CF 團隊合作,他們應隨時與 component-framework-dev@fuchsia.dev 聯絡,我們會指派他們指定的聯絡人。

效能

不影響,程序只會變更。

人體工學

如果我們發現這裡的條件允許變更,可提前採用 RFC 流程提供更好的服務,或是系統發現此處的條件限制過於嚴格,就會重新審視這些條件。

回溯相容性

沒有影響。

安全性考量

修改安全性政策或策略的元件架構區域需要 RFC。

隱私權注意事項

修改隱私權政策或策略的元件架構區域需要 RFC。

測試

沒有影響。

說明文件

不適用。

缺點、替代方案和未知

如果本文件中的條件可在大範圍、多元包容審查及目標更明確的審查之間取得適當平衡,就會無法辨識。

另一個替代方案是沿用現狀:CF 團隊使用內部 CTP 程序。

先前的圖片和參考資料