本部分包含有关为 Fuchsia API Surface 和 IDK 做出贡献的文档。
从技术上讲,将此指南称为“IDK 贡献者指南”可能更合适,因为构成 API Surface 的 API 和库首先会添加到 IDK,然后 IDK 会转换为 SDK 分发。不过,在口语和代码中,我们几乎只说“SDK”。无论如何,如果您想以某种方式“更改 SDK”,那么您可能来对地方了。
为 SDK 中的 API 做出贡献
如需为 Fuchsia API Surface 做贡献,请执行以下操作:
评估您的更改幅度是较大还是较小。
- 如果您对 API 进行了小幅增量更改,请按照在 Gerrit 中创建更改中的步骤提交更改,就像提交任何 Fuchsia 源代码更改一样。
如果您对 API 进行了重大更改(即大幅扩展了 API 的功能或对 API 进行了广泛修改),请执行以下操作:
创建 RFC,说明您对 API 所做修改的设计。
此 RFC 应通过正常的 RFC 流程进行审核。相关领域的 API 审核者应该是 RFC 的利益相关者。如需确定 API 审核者,请参阅 Fuchsia API 委员会章程。
在您的 API RFC 获得批准后,请按照在 Gerrit 中创建变更中的步骤提交变更,就像您提交任何 Fuchsia 源代码变更一样。
向 API 委员会成员请求代码审核。 根据您要修改的 Fuchsia API 领域,选择您的 API 委员会审核人员。如需查看 API 委员会成员及其关注领域的列表,请参阅 Fuchsia API 委员会章程中的会员。
提升 API
默认情况下,API、库等不是 IDK atom,不在 IDK/SDK 中,也不在 SDK 类别中。为了以特定方式使用 API 或库(包括将其纳入 IDK),必须将其设为 IDK atom 并分配 SDK 类别。
本部分介绍了将原子提升到不同类别的流程。这两种情况都适用:向类别添加新原子,以及将现有原子从一个类别提升到另一个类别。
若要将某个 atom 添加到 IDK/SDK,必须先将其提升到 partner
类别。
将 API 提升为 prebuilt
或 host_tool
类别
若要使预构建的二进制文件或宿主工具能够使用 Fuchsia SDK 中的 API,该 API 必须分别属于 prebuilt
或 host_tool
SDK 类别。API 必须遵循API 演变指南,该指南侧重于在保持兼容性的同时实现 API 演变。
请注意,在将 API 提升为 partner
时,还需要考虑其他因素,这可能会揭示兼容性和长期可用性之间的权衡决策。
当 API 准备好接受审核后,请申请 API 校准。
将 API 提升到 partner
类别
若要将某个 API 纳入 Fuchsia IDK/SDK,该 API 必须属于 partner
SDK 类别。这需要克服两个障碍:必须有准备充分且愿意参与的客户,并且 API 必须经过 API 校准。