FIDL 项目核对清单

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

fidlc 编译器的更改

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

  • 更新规范。
  • 更新关联工具。
    • FIDL 格式设置工具/linter 及其关联的 TreeVisit 要求。
    • fidldoc 工具,适用于应反映在生成的文档中的语言变更,例如新的数据类型或修饰符。
    • 编辑器和语法突出显示。
  • 更新 FIDL 文件。如需更改语法,请更新现有的 FIDL 源代码,包括:
    • 树中的实际 FIDL 源文件(如果需要,也可在树外)。
    • FIDL 源代码在测试源代码中以字符串形式指定,例如编译器单元测试fidlgen 端到端测试
    • 文档中的 FIDL 代码段。
  • 确保处理与属性的互动。
    • 例如,功能需要新的展示位置吗?
  • 更新集成测试
    • 对于更大的语言功能,可能值得在现有的集成测试中添加测试覆盖范围。例如,通过兼容性测试确保交叉绑定的一致性,或通过源代码兼容性测试确保可转换性。
  • 专门针对解析器更改:
    • 更新 span_tests,确保解析的 span 正确无误,而不仅仅是解析成功
  • 对于原始 AST 更改:
    • 确保对 AST 的更新也传播到原始 AST 树访问者及其下游用户。例如,向节点添加新字段时,可能应该附带访问该新字段的访问者更改。
  • 对于语义变更:
    • 在对表进行修改时,请更新特定于功能的单元测试,例如 table_tests,或创建新的测试文件。

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

JSON IR 的更改

fidlgen_<lang> 后端的更改

FIDL 传输格式的变更

  • 更新绑定以支持新的传输格式。
  • 更新有线格式规范,以记录新的有线格式。
  • 更新了测量带,以支持以新的导线格式计算尺寸。
  • 更新 fidl-codec 以支持新的有线格式编码/解码。
  • 更新必须手动编码/解码 FIDL 的目标(以下列表和原因已于 2023 年 2 月审核):

水平测试要求

将覆盖范围扩大到: