實驗性外掛程式

開發新的外掛程式時,系統會將外掛程式標示為實驗功能,表明該作業的實驗性質 (或「進行中」的性質)。

實驗性外掛程式:

  • 實驗性外掛程式可能會變更每個 IDK 版本的引數輸入和輸出內容。
  • 實驗性外掛程式可能會「暫時」依附於不屬於 Fuchsia 平台介面區域的 API 或 ABI。所有依附元件仍須在平台來源樹狀結構中定義及表示。
  • 外掛程式作者必須示範非實驗狀態的藍圖,例如外掛程式依附元件的穩定度。我們的目標是持續移除實驗性外掛程式,盡可能提升 ffx 介面和依附元件的穩定性。
  • 除了叫用外掛程式指令時以外,外掛程式可能不會引入其他行為 (即實驗性外掛程式無法在 ffx Daemon 或遠端控制服務中執行背景作業)。
  • 實驗性外掛程式必須比照其他外掛程式,採用相同的程式碼審查和程式碼品質程序。由於實驗性外掛程式包含在標準 ffx 二進位檔中,因此必須遵循相同的品質標準,以免影響整體產品的品質。

將外掛程式標示為實驗性質

在外掛程式 lib.rs 檔案中定義外掛程式函式時,會有一個以 ffx_plugin 裝飾的進入點,例如:

#[ffx_plugin()]

#[ffx_plugin(MyProxy = "fuchsia.example.Service")]

如要將外掛程式標示為實驗功能,並同時宣告用於啟用實驗的權杖,請新增初始字串參數。在以下範例中,「zippy」標記可能會 (或可能不會) 與外掛程式指令名稱相符。標籤可能為任意值,但建議選擇與外掛程式相關的值:

#[ffx_plugin("zippy")]

#[ffx_plugin("zippy", MyProxy = "fuchsia.example.Service")]

在上述兩個範例中,外掛程式都會受到名為「zippy」的功能權杖的保護。使用者嘗試執行 ffx zippy 時,系統會通知 zippy 仍在實驗階段,並顯示 zippy 功能的啟用操作說明。

按照指示啟用 zippy 後,日後對該使用者進行的呼叫會以 zippy 並非實驗性功能的方式運作,也就是他們已選擇採用 zippy 功能。

CL 審查實驗程式碼

不得做為略過程式碼品質疑慮、設計、安全性、隱私權及其他疑慮的機制。ffx 的每個元素都必須符合納入 IDK 的通用基本標準。

正在移除實驗狀態

在離開實驗狀態之前,外掛程式必須符合下列條件:

  • 使用者體驗介面經過審查,並具備足夠的穩定性,符合平台版本管理 RFC。
  • 實作依附元件是已定義的平台介面區的一部分,例如,所有的 FIDL 依附元件都是 sdk_category = 'public'。
  • 設計文件 (利害關係人接受)
  • 使用者說明文件
  • 符合 CLI 評分量表的引數
  • 單元測試
  • 整合 (e2e) 測試