RFC-0103:軟體推送 RFC 標準

RFC-0103:軟體 Delivery RFC 條件
狀態已接受
區域
  • 軟體推送
  • 管理事宜
說明

RFC 程序的附加條款,適用於影響 Software Delivery 程式碼集或政策的變更。

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

摘要

變更「Software Delivery」區域須符合 RFC 的條件。

提振精神

Software Delivery (SWD) 系統對於系統行為有廣泛的應用範圍,包括無線更新 (OTA) 系統更新、開發和測試流程、裝置安全性,以及最終套件更新,沒有系統更新。對 SWD 堆疊所做的變更可以稍微修改系統的行為,進而增加 Fuchsia 程式的相關費用。為了盡可能遵循適用於全套的 RFC 程序,我們試圖訂出一組明確的條件,藉此釐清在 SWD 區域中具有「廣泛影響」的變更。這些標準旨在嘗試在執行速度與適當的利害關係人通訊與核准程序之間取得平衡。

設計

需要 RFC 的變更

  • 變更系統更新流程,為 OTA 程序加入限製或閘門或新的錯誤狀況。例如,在完成 OTA 前新增其他檢查,或讓 OTA 降級檢查更嚴格。這點非常重要,因為這些變更可能會降低 OTA 程序的可靠性。
  • 變更我們使用套件存放區的方式,或預期的套件存放區結構我們預期內部和外部開發人員都可以建立或代管自己的 TUF 伺服器,而我們會對預期格式做出適當的變更提供適當的通知。
  • 變更 Fuchsia 套件格式。任何會修改 Fuchsia 套件Fuchsia 封存格式的結構定義。這一點非常重要,因為許多不同的工具都會與套件格式互動,而我們也應提供適當的變更通知。
  • 針對支援 OTA 系統更新的產品或建構類型新增或移除需求。例如,要求 vbmeta 成功採用 OTA,或是移除 vbmeta 的要求。由於上述異動可能會產生產品開發人員費用,因此這一點非常重要。
  • 修改安全性政策的強制執行設定:例如,變更執行能力限制策略。這點很重要,因為這些變更可能會影響 Fuchsia 的安全性。
  • 這類變更可能會導致舊系統無法更新至較新的系統版本,或需要執行逐步建構作業。這點非常重要,因為逐步簡化版本會產生長期費用。如果裝置是首次設定,或經過長時間後重新連線,就必須在每次步行版本發布時進行更新,這會導致使用者的額外時間和網路流量增加。在原始版本推出後數年內,即便是一步步版本中的一項錯誤,仍有可能影響到裝置的安全性或可用性,這表示必須測試及維護步數,才能比一般版本更長。
  • 會大幅增加資源用量的變更。這包括記憶體、磁碟、CPU、網路等。如此一來,您就能更全面掌握共用裝置資源的使用方式。
  • 修改隱私權政策或其違規處置。這點很重要,因為這類變更可能會影響使用者的隱私權 Fusia 功能。我們目前無法在程式碼集中傳送 PII,但如果有需要的話,應該透過 RFC 處理 PII。

示例:過去需要 RFC 的異動內容

  • OTA 返回停止;OTA 程序的變更。
  • OTA 健康狀態檢查之後;變更 OTA 程序。
  • 變更套件格式,例如 meta/contents 覆寫。
  • 遷移至 vbmeta 管道;OTA 程序和 OTA 相關規定異動。

示例:過去不需要 RFC 的變更內容

  • CFv2 遷移作業;可在其他構件中執行。
  • 繼續 Blob 下載作業;在 pkg 解析器外的選用功能無法觀察,在程式碼審查程序中可以降低風險。
  • 變更或檢查 SWD 堆疊發出的指標。
  • 新增產品管道。
  • 提升可靠性,例如讓 fx ota 適合核心開發人員使用。如果迴歸的風險很小,就足以提供公共服務宣導。
  • 淘汰 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 程序的「大幅」變更量不足時,都應修改這份清單。

先前的圖片和參考資料