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 边界。