新增API 开发&提交流程

飞桨作为一个开源项目,我们鼓励生态开发者为paddlepaddle贡献API,当你想要为飞桨开发新API功能时,请遵守此API贡献流程在Github上完成文档设计和代码设计并提交至相应的github仓库。

API 贡献流程如下

api_contributing_guides

流程介绍

1、任务认领

如果你想参与飞桨 API 开源贡献,可以在Github paddle 项目上的issue 区域进行任务认领,飞桨官网会发布一些新增 API 的任务,用户可以认领飞桨发布的任务,也可以产出自己的新增API想法,并按照此贡献流程提交设计文档。

2、签订贡献者许可协议(CLA)

对于你贡献的源代码,你将拥有合法的知识产权,为了保护你的权益,你需要先签署一份 贡献者许可协议

注意:当你签署完CLA后,我们才会继续对您提交的设计方案和实现代码进行评审及合入

3、提交API设计文档

API设计文档的目的是为了社区开发者更容易的参与开源项目共建,开发者通过与飞桨专家和社区其他用户进行广泛的交流,完善设计方案和pr请求,在后续提交实现代码之前确保API设计方案与飞桨设计理念一致,也让后续代码评审及代码合入变得更加容易。

当你想要发起一个新增API的贡献时,你需要先对API进行开发设计,并提交一份API设计文档。设计时请遵守飞桨API设计及命名规范。同时,飞桨为大家提供了API 设计文档撰写模版和API设计文档示例。完成后,你需要将设计文档提交至Github开发者社区仓库,并根据本地开发指南提交PR。

此过程请参考相应的开发规范,并提交以下内容:

提交内容

参考文档

提交位置

1、API 设计文档

Github开发者社区仓库

同时,飞桨为大家提供了 API 设计文档模版API 设计文档demo ,你可以使用这份模版撰写API设计文档。完成后,你需要将设计文档提交至 Github开发者社区仓库 ,并根据 本地开发指南 提交PR。

4、设计文档评审&公示

飞桨专家对你提交的API设计文档进行审核,同时此文档也将接受来自开发者社区的评估,大家可以在pr评论区进行广泛的交流。开发者根据飞桨专家和其他开发者的反馈意见进行讨论并做出修改,最终评审通过后会在开源社区中同步。

如果你的API功能比较复杂,我们可能会在社区中针对API设计文档发起评审会议,会提前在pr评论区公布会议时间、会议地址、参会人、议题等内容,请及时关注pr 中最新动态,你也可以在评论区自行申请评审会。会议结束后,我们会在pr中发出会议结论。

5、公布评审结果&合入文档

当设计文档评审&公示通过后,你的API设计文档将会合入至 飞桨开发者社区仓库 ,并在开源社区中同步。

6、提交API实现代码

当API设计文档合入后,开发者根据评审通过的API设计内容进行代码开发。此过程请参考相应的开发规范,并提交以下内容:

提交内容

参考文档

提交位置

1、API实现代码

Github飞桨训练框架仓库

2、API英文文档

Github飞桨训练框架仓库

3、API中文文档

Github飞桨文档仓库

4、API单测代码

Github飞桨训练框架仓库

当开发者完成以上代码设计后,需要将代码提交至 Github飞桨训练框架仓库 ,并根据 本地开发指南 提交PR、准备接受社区的评审。

7、实现代码评审&公示

飞桨官方会及时安排专家进行API代码审核,代码也将接受来自开发者社区的评审,开发者可以在pr评论区进行广泛的交流,开发者对飞桨专家和其他开发者的反馈意见进行讨论并做出修改,最终评审通过后会在开源社区中同步。

如果你的API 功能比较复杂,官方可能会在社区中针对API实现代码发起评审会议,会提前在pr评论区公布会议时间、会议地址、参会人、议题等内容,请及时关注pr 中最新动态,你也可以在评论区自行申请评审会。会议结束后,我们会在pr 中发出会议结论。

8、公布评审结果&合入代码

当设计文档评审&公示通过后,官方会在开源社区中同步,你的API 实现代码将会合入至 Github飞桨训练框架仓库

9、通过API测试及验收

当你的代码合入 Github飞桨训练框架仓库 后,官方会对你的代码进行集成测试,并通知你测试结果。如果测试通过,恭喜你贡献流程已经全部完成;如果测试不通过,我们会联系你进行代码修复,请及时关注github上的最新动态;

注意:代码合入develop分之后的第二天你可以从官网下载develop 编译的安装包体验此功能。飞桨后续也会将此功能纳入正式版的发版计划~

10、贡献完成

感谢您的贡献!