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