建立 RFC

熟悉 RFC (留言要求) 程序及相關標準,您可以 建立提案供 Fuchsia Eng Council 提出審閱。

如要建立 RFC,您必須建立 Gerrit 變更,且必須至少包含 下列三個檔案:

,瞭解如何調查及移除這項存取權。

建立中繼資料

RFC 的中繼資料定義了許多用來填入 RFC 的值 RFC 總覽一文。

如要識別您的 RFC,您需要編輯 docs/contribute/governance/rfcs/_rfcs.yaml,內含您的 RFC 資訊。

您必須根據 RFC 規定提供以下資訊:

參考資料

RFC 中繼資料
name必填

定義 RFC 名稱。首次建立 RFC 時,您應該使用 RFC-NNNN。RFC 核准或遭拒後, Fuchsia Eng Council 指派 你擁有專屬的名稱

title必填

為 RFC 定義標題。這個標題必須簡短 簡單說明 RFC。

short_description必填

定義 RFC 的簡短說明。說明必須簡短 而不只是幾句話

authors必填

建立 RFC 的作者清單。

  • 如果是單一作者,請使用以下格式 ["myemail@example.com"]。
  • 如有多位作者,請使用以下格式 ["myemail@example.com", ...]
file必填

為 RFC 的 Markdown 檔案名稱定義檔案名稱。這應該 請將 RFC 的 name 數值部分及 會解讀為 RFC 標題

收到 RFC 名稱前,請在NNNN 數值部分,例如 NNNN_file 完成 RFC 審查後,您會收到 RFC 名稱。例如: 您可以使用 file0001_rfc_process.md 用於 RFC, 第 id 個,共 0001 個,其標題為 Fuchsia Request for Comments (RFC) process

area必填

定義 RFC 影響範圍清單。

  • 如果是單一區域,請使用以下格式:['area']`。
  • 如有多個區域,請使用「['area1', ...]」格式。

有效區域

有效區域
  • Bluetooth
  • Build
  • Component Framework
  • Developer
  • Devices
  • Diagnostics
  • Driver SDK
  • Drivers
  • EngProd/Infra
  • Experiences
  • FIDL
  • Firmware
  • Foreign ABI Compatibility
  • General
  • Governance
  • Graphics
  • HCI
  • Identity
  • Kernel
  • Languages and Libraries
  • Media
  • Memory
  • Metrics
  • Netstack
  • Performance
  • Power
  • Recovery
  • Security
  • Sessions
  • Software Assembly
  • Software Delivery
  • Storage
  • System
  • Testing
  • Toolchain
  • View System
  • Virtualization
  • Web
  • WLAN
issue必填

請在 https://fxbug.dev/ 上定義追蹤您 RFC 的問題清單。 如果沒有 `issue` 數字,您可以保留這個值 空白,[]

  • 如果是單期問題,請使用 [問題] 格式。
  • 如有多個問題,請使用下列格式 ['issue1', ...]
gerrit_change_id必填

內含您的 rfc 的根變化 id。這些 是您變更家網址的最終數字。例如: 如果變更的網址是 https://fuchsia-review.googlesource.com/c/fuchsia/+/366393, 使用 366393gerrit_change_id

submitted必填

定義首次為 RFC 建立變更的日期 year-month-day 格式。

status必填

定義您的 RFC 狀態。首次提交 RFC 時 值應為 Pending。RFC 經過審查後 狀態則會變更為「Accepted」或 Rejected

reviewers通過核准或遭到拒絕後為必填

根據 Gerrit 變更定義 RFC 的審查者。

consulted通過核准或遭到拒絕後為必填

諮詢此 RFC 但不需要 +1 的利害關係人。

reviewed必填

定義從 Fuchsia Eng Council,依據 RFC 遭到拒絕或拒絕

範例

- name: 'RFC-NNNN'
  title: 'zx_channel_iovec_t support for zx_channel_write and zx_channel_call'
  short_description: 'This RFC introduces a new mode to zx_channel_write and zx_channel_call that copies input data from multiple memory regions rather than from a single contiguous buffer.'
  authors: ['bprosnitz@google.com']
  file: '0010_channel_iovec.md'
  area: ['Zircon']
  issue: ['60623']
  gerrit_change_id: ['433621']
  status: ''
  reviewers: []
  submitted: '2020-09-25'
  reviewed: ''

建立 RFC 中繼資料後,即可開始撰寫 加入 Markdown 檔案,其中含有 RFC 資訊。

建立 Markdown 檔案

填妥 RFC 中繼資料和 RFC 的 name 後, 為 RFC 建立 Markdown 檔案。

如何建立 Markdown 檔案:

  1. 使用 RFC 範本建立新的 Markdown 檔案。這個檔案 必須根據新增至中繼資料檔案的 file 值來命名。

  2. 使用文字編輯器編輯檔案時,必須編輯第一行 範本,其中包含 rfcid 變數,其中包含您的 name RFC。舉例來說,如果 name"RFC-NNNN",則第一行看起來應該像是 包括:

    
    {% set rfcid = "RFC-NNNN" %}
    
  3. 請先填寫 RFC 的不同部分 ## 摘要標題。

,瞭解如何調查及移除這項存取權。

Markdown 檔案填妥後,即可開始建立 RFC 目錄中的項目

建立 _toc.yaml 項目

為 RFC 建立中繼資料並建立 Markdown 檔案後, 即可開始在 TOC 中列出 RFC (目錄)。

如何新增 TOC 項目:

  1. 編輯 //docs/contribute/governance/rfcs/_toc.yaml 檔案。
  2. 請在最後一個項目下方新增 RFC 項目,格式如下:

參考資料

   - title: "name: title"
     path: /docs/contribute/governance/rfcs/file.md

範例

- title: "RFC-0001: RFC Process"
  path: /docs/contribute/governance/rfcs/0001_rfc_process.md

其中 nametitlefile 是您在 中繼資料檔案

建立 TOC 項目後,現在可以將 RFC 送審。

將變更送審

編輯中繼資料檔案後,請建立 Markdown 檔案並新增 TOC 項目,您現在可以建立變更項目並送交審查了。

變更修訂訊息的第一行必須是 [rfc],後面接著 RFC 的名稱修訂訊息的內文也可能包含 RFC 的簡短 生成 3D 物件例如:

[rfc] zx_channel_iovec_t support for zx_channel_write and zx_channel_call

This RFC introduces a new mode to zx_channel_write and zx_channel_call that
copies input data from multiple memory regions rather than from a single
contiguous buffer.

將您的變更郵寄給第一組審查員。Fuchsia Eng Council 將 會自動收到 RFC 建立資訊的通知。

如要進一步瞭解如何在 Fuchsia 專案中建立變更,請參閱 做出變更

變更 RFC 提案狀態

變更完成後,Fuchsia Eng Council (該委員會) 說明提案是否被接受或拒絕。無論 您的提案最終狀態,系統會為您指派 RFC 號碼 無論最終狀態為何,都請務必提交每個提案

獲得工程委員會最終資格後,請採取下列行動:

  1. 在 RFC 檔案 (副檔名為 .md) 中編輯指派的 RFC 的 name。舉例來說,如果您獲派 RFC-9999 角色, 第一行應如下所示:

    
    {% set rfcid = "RFC-9999" %}
    
  2. 使用指派的 RFC 號碼重新命名 RFC 檔案 (副檔名為 .md)。例如: 如果您獲派「RFC-9999」,請將檔案重新命名為 9999_<filename>.md

  3. 編輯 RFC 中的 TOC 項目 //docs/contribute/governance/rfcs/_toc.yaml 反映 RFC 號碼。 舉例來說,假設您獲派「RFC-9999」,項目看起來可能會像這樣 包括:

    - title: "RFC-9999: My RFC proposal"
      path: /docs/contribute/governance/rfcs/9999_<filename>.md
    
  4. 更新 RFC 提案的中繼資料。如果您已正確填寫 您只需要更新 docs/contribute/governance/rfcs/_rfcs.yaml.

    • name:使用指派的 RFC 名稱。例如 "'RFC-9999'
    • file:使用您在上述步驟中使用的檔案名稱。例如 '9999_<filename>.md'
    • status:使用指派給您的 RFC 的狀態, 'Accepted''Rejected'
    • reviewers:使用變更的審查人員清單。舉例來說 評論者為 abarth@google.com、cpu@google.com 和 vaas@google.com ['abarth@google.com', 'cpu@google.com', 'vaas@google.com']
    • Reviewed:請使用 RFC 核准日期 (年-月-日) 或遭到拒絕。舉例來說,2020 年 3 月 15 日會是 '2020-03-15'

    已接受的 RFC 提案中繼資料如下所示:

    - name: 'RFC-0010'
      title: 'zx_channel_iovec_t support for zx_channel_write and zx_channel_call'
      short_description: 'This RFC introduces a new mode to zx_channel_write and zx_channel_call that copies input data from multiple memory regions rather than from a single contiguous buffer.'
      authors: ['bprosnitz@google.com']
      file: '0010_channel_iovec.md'
      area: ['Zircon']
      issue: ['60623']
      gerrit_change_id: ['433621']
      status: 'Accepted'
      reviewers: ['cpu@google.com', 'kulakowski@google.com', 'abarth@google.com', 'pascallouis@google.com']
      submitted: '2020-09-25'
      reviewed: '2020-10-31'
    
  5. 將含有變更內容的修補程式上傳到 RFC 檔案。

  6. 通過核准後,請與講師合作提交 RFC。具體而言 您的講師必須 +2 CL

您已成功提交 RFC 提案。