RFC-0103:軟體推送 RFC 標準

RFC-0103:軟體交付 RFC 準則
狀態已接受
區域
  • 軟體交付
  • 管理事宜
說明

針對影響軟體交付程式碼集或政策的變更,RFC 程序增修條款。

Gerrit 變更
作者
審查人員
提交日期 (年-月-日)2021-05-19
審查日期 (年-月-日)2021-06-10

摘要

軟體交付領域中需要 RFC 的變更條件。

提振精神

軟體發布 (SWD) 系統的範圍廣泛,涵蓋系統行為,包括無線下載 (OTA) 系統更新、開發和測試流程、裝置安全性,以及最終在不更新系統的情況下更新套件。SWD 堆疊的變更可能會以細微的方式修改系統行為,並導致 Fuchsia 計畫產生費用。為盡量遵守 Fuchsia 全面 RFC 程序,我們將提出一組明確的條件,釐清 SWD 領域中「影響範圍廣泛」的變更。這些條件旨在兼顧執行速度,以及適當的利害關係人溝通和核准程序。

設計

需要 RFC 的變更

  • 系統更新流程的變更,新增限制或閘道,或在無線更新程序中新增錯誤情況。舉例來說,您可以在完成 OTA 前新增額外檢查,或更嚴格地檢查 OTA 降級。這點很重要,因為這些變更可能會降低 OTA 程序的可靠性。
  • 我們使用套件存放區的方式有所變更,或我們預期的套件存放區結構有所變更。我們預期內部和外部開發人員可能會建立或代管自己的 TUF 伺服器,因此應適當通知預期格式的變更。
  • Fuchsia 套件格式變更。任何會修改 Fuchsia 套件結構定義Fuchsia 封存格式的項目。這很重要,因為許多不同的工具都會與套件格式互動,我們應適時提供變更通知。
  • 新增或移除產品或建構類型支援 OTA 系統更新的必要條件。舉例來說,要求 vbmeta 成功 OTA,或移除 vbmeta 的要求。這項異動非常重要,因為產品開發人員可能需要支付相關費用。
  • 安全性政策的實施方式異動。例如變更可執行性限制策略。這項資訊非常重要,因為這些變更可能會影響 Fuchsia 的安全性。
  • 變更可能導致舊系統無法更新至較新版本的系統,或需要使用過渡版本。這點非常重要,因為 過渡版本會產生長期成本。裝置首次設定或長時間未連線後重新連線時,必須透過每個中間版本更新,這會耗費額外時間,並增加使用者的網路流量。如果過渡版本存在錯誤,即使在原始版本發布多年後,仍可能影響裝置的安全性或可用性,因此過渡版本必須經過測試和維護,時間遠比一般版本長。
  • 大幅增加資源用量的變更。包括記憶體、磁碟、CPU、網路等。這有助於更全面地掌握共用裝置資源的使用情形變化。
  • 隱私權政策或其執行的修改。這項異動非常重要,因為可能會影響 Fuchsia 為使用者提供的隱私權。我們目前無法在程式碼集交易 PII,但如果日後想這麼做,就必須透過 RFC。

示例:過去的變更現在需要 RFC

  • OTA 備援;OTA 程序異動。
  • OTA 後健康狀態檢查;OTA 程序變更。
  • 套件格式變更,例如meta/contents全面翻新。
  • 遷移至 vbmeta 中的管道;OTA 程序異動,以及 OTA 的要求。

示例:過去的變更,仍不需要 RFC

  • CFv2 遷移作業,這類作業涵蓋在其他構件中。
  • Blob 下載續傳;pkg-resolver 外部無法觀察到的選用功能,程式碼審查程序已降低風險。
  • 變更指標或檢查 SWD 堆疊發出的指標。
  • 新增產品的管道。
  • 提升可靠性,例如讓 fx ota 適用於核心開發人員。如果迴歸風險很小,這裡的 PSA 就足夠了。
  • 淘汰 amberctl,並將開發人員轉移至 pkgctl。工具的工作流程和目標幾乎完全相同,因此應由 LSC 程序處理。

實作

如果正在進行的工作已透過其他程序獲得設計核准,且正在實作階段,則不需追溯提交 RFC 即可繼續進行。不過,對於軟體交付堆疊中具有足夠方向設定功能,且在其他地方記錄不足的部分,我們應提交追溯 RFC。我們會逐一評估專案中正在進行或即將完成的工作,判斷是否應為這些工作撰寫追溯性 RFC。

尚未完成設計階段的作業,都必須遵守這些規範。

這些指南將自 RFC 發布日期起生效,我們也會將指南新增至 RFC 文件中的現行程序頁面。如果我們更新這些指南,會在後續的 CL 中,以本 RFC 的附錄形式發布。

如果貢獻者希望與 SWD 團隊合作處理 RFC,請隨時傳送電子郵件至 pkg-dev@fuchsia.dev,我們會指派專屬聯絡人。

效能

不會有影響,僅變更程序。

人體工學

如果我們發現變更應透過 RFC 傳達,或發現需要修改這些條件,就會重新審查這些條件。無論採用哪種條件,我們都必須在執行速度和溝通之間取得平衡。

回溯相容性

沒有影響。

安全性考量

如要變更 SWD 區域,進而修改安全策略,必須符合這些條件並提出 RFC。

隱私權注意事項

如要變更 SWD 區域,且變更會影響隱私權考量,則必須根據這些條件提出 RFC。

測試

沒有影響。

說明文件

如果接受這項 RFC,我們會更新目前的 RFC 程序文件

缺點、替代方案和未知事項

我們可以使用許多替代條件。如果我們發現有太多「小型」變更需要根據這項條件提出 RFC,或是發現有太多「大型」變更未經過 RFC 程序,就應修訂這份清單。

既有技術和參考資料