为 FFX 开发应用

FFX 划分为一些责任领域,与查找并运行 fuchsia 交互程序相关的核心功能位于核心程序 (ffx cli) 中,而实际程序构建为“子工具”(以前称为插件),子工具可通过 ffx CLI 进行编译,也可作为外部工具运行(使用 FHO 子工具接口)。

要添加可通过 ffx 访问的功能,您可以编写自己的子工具并将其集成到 build 中。

开始使用子工具

如需开始为 ffx 构建简单的子工具(以前称为插件),请参阅开发 ffx 子工具

如果您已有插件,并且想要或需要将其迁移到新的子工具接口,请参阅迁移现有插件

我们还保留了子工具的参考实现,该子工具会执行一些名为 ffx-echo 的基本操作,并始终作为如何编写子工具的规范来源。

新的子工具核对清单

如果这是某个大型项目的开始,您应该尝试完成以下操作,以确保新的子工具能够随着时间的推移正常运行:

  • 将新的子工具标记为实验性,让用户预期它在稳定之前会发生变化。
  • 针对与子工具相关的所有输出使用 Writer。如果预计在某个时间点会包含在 SDK 中,请确保使用具有具体可序列化类型的 MachineWriter,并且当 --machine json 传递到 ffx 时,输出可以正常运行。
  • 使用 fho::Error 类型在子工具边界正确描述用户可操作的错误和 bug。
  • 如果子工具位于 ffx 树中,它应该具有清晰的 OWNERS 文件,用于描述拥有它的团队以及可以针对该工具检查 CL 的个人。
  • 如果它位于 ffx 树之外,但在 fuchsia.git 代码库内,则必须引用 ffx owners file(即file:/src/developer/ffx/OWNERS)应用于 ffx 和子工具之间的 API 边界处的任何文件,以便我们可以随着时间的推移主动更改该 API 边界。

旧版插件引用

如需了解旧版插件宏接口的相关信息,请参阅: