FIDL 项目核对清单

对 FIDL 的更改通常会产生大量下游影响。本文档提供了更改 FIDL 时应考虑的事项清单。请注意,并非核对清单中的所有元素都适用于每项更改,但它们至少应该有助于开发者仔细检查其更改是否完整。

对 fidlc 编译器所做的更改

此核对清单适用于影响 FIDL 本身的更改,例如语法或语义更改。

  • 更新规格。
  • 更新关联的工具。
    • FIDL 格式化程序/linter 及其关联的 TreeVisitor。
    • fidldoc 工具,用于应在生成的文档中反映的语言更改,例如新的数据类型或修饰符。
    • 编辑器和语法突出显示。
  • 更新 FIDL 文件。对于语法更改,请更新现有 FIDL 源代码,包括:
  • 确保处理与属性的互动。
    • 例如,该功能是否需要新的展示位置?
  • 更新集成测试
    • 对于较大的语言功能,可能值得在现有集成测试中添加测试覆盖率。例如,通过兼容性测试确保跨绑定一致性,或通过源代码兼容性测试确保可转换性。
  • 具体针对解析器更改:
    • 更新 span_tests,以确保解析的 span 正确无误,而不仅仅是解析成功
  • 对于原始 AST 更改:
    • 确保 AST 的更新也会传播到原始 AST 树访问器及其下游用户。例如,向节点添加新字段时,可能应该同时更改访问者,以便访问该新字段。
  • 对于语义更改:
    • 在修改表时,更新特定于功能的单元测试(例如 table_tests),或创建新的测试文件。

对 FIDL 的更改预计会级联到后端,以更新所有 Fuchsia FIDL 团队拥有的绑定,即 Rust、Go、Dart、HLCPP、New C++(自然和有线)。

对 JSON IR 的更改

对 fidlgen_<lang> 后端的更改

对 FIDL 线上传输格式的更改

  • 更新绑定以支持新的线上传输格式。
  • 更新线上传输格式规范,以记录新的线上传输格式。
  • 更新 measure-tape,以支持采用新传输格式的大小计算。
  • 更新 fidl-codec,以支持采用新传输格式进行编码/解码。
  • 更新必须手动编码/解码 FIDL 的目标(以下列表和原因已于 2023 年 2 月审核):

泛用型测试要求

为以下设备添加保障方案: