点击下方卡片,关注“CVer”公众号
AI/CV重磅干货,第一时间送达
想参与开源,但不知从何下手?
MegEngine 社区整理了适合新手的简单任务 - 完善 MegEngine API Docstring
来吧,跟着本篇点亮你 GitHub 个人主页的第一块小绿砖 :)
文内含大量链接跳转,完整内容可点击文末阅读原文查看
目前,MegEngine 的 Python 文档字符串从内容完整度、情景覆盖描述、质量等方面还有极大的优化空间,希望能够得到社区同学的帮助,完善 MegEngine API Docstring。
我们整理了一份API 列表方便大家领取,同时也欢迎在此范围外持续贡献。
在参与过程中,请注意:
提交的 API Docstring 建议至少包括以下内容(英文):
该 API 功能简介
输入参数说明
返回值类型及说明
规范符合 《数组 API 标准》
Pull Request 描述中,尽量提供该 API 的中文翻译
同时,可适当添加:用例(Example)、笔记(Note)和警告(warning)信息等。
首先,需要具备:一个 GitHub 账号( 注册);基本的 Git 使用知识 (官方文档)。
在 MegEngine Python API Docstring Enhancement项目中,找到一个自己希望帮助 MegEngine 团队改进文档字符串的 API。
https://github.com/orgs/MegEngine/projects/2
通过项目列表中 Assignees、Status 状态或点击意向 API 名称,进入 issue 页面查看任务领取/完成情况:
若该 API 改进的 Issue 已经被 Assign 给某用户,则表明此用户将作为最终负责人,其 Pull Request 最终将被合并到 MegEngine 主仓库的代码中,此 API 任务已不可领取。
若该 API 对应的 Issue 没有任何 Pull Request 进行了 Link,没有 Assignee,表明是个需要被做的 API 改进任务:
对于尚未被 Assign 的 Issue,任何用户都可以带着自己的 Pull Request Link 到对应 Issue 表明希望成为负责人(为了防止无意义占坑,必须有 PR 才能申请)。
可能会出现一个 Issue 下有多个用户的 Pull Request 进行了 Link 的情况,即存在针对 API 文档改进的竞争实现, 此时 Issue 负责人的分配准则是:
该 Pull Request中的改进必须符合基本要求;
对于多个符合要求的 Pull Request,采取先到先得的规则。
该 Issue 确认负责人后,MegEngine 团队会将该 Issue Assign 给对应的用户,并给出一个完成的截止日期。如果到截止日期该 Pull Request 未被合并,将考虑 Assign 给其他用户。
接下来,我们将以 megengien.functioanl.arange 举例,创建一个针对 arange API 文档进行改进的 Pull Request。流程如下:
1、找到 MegEngine 在 GitHub 的地址:
https://github.com/MegEngine/MegEngine
2、点击 Fork 按钮( 详见:GitHub 操作指南 )
3、Clone Fork 后的 repo 到本地,在 git 中输入如下指令 :
$ git clone git@github.com:{username}/MegEngine.git
其中,username 对应你的个人 GitHub 用户名。
4、基于 master 分支创建一个新的分支(例如 docstring-arange ),在此新分支上修改 API 文档字符串内容:
$ git checkout -b docstring-arange
找到 megengine.functional.arange
API 对应的源码位置 imperative/python/megengine/functional/tensor.py,修改文档字符串内容。
查看 Git 状态,添加修改过的文件,使用 commit 记录修改历史:
$ git add imperative/python/megengine/functional/tensor.py
$ git commit -m "docs(mge/functional): update functional.arange docstring"
$ git push origin docstring-arange
5、此时在 GitHub 打开你 Fork 的仓库地址,会有相关的提示:
点击 "Compare & pull request",此时会创建一个从你的分支到上游 MegEngine 主分支的 Merge 请求。在描述中需要说明做了什么样的相关改进,并 Link 对应的 Issue:
为了方便讨论和审核,请尽可能丰富 Pull Request 的描述内容;
Pull Request 描述中需要引用对应 API 的 Issue 编号(如 #227),以自动 Link。
(更多手把手带飞步骤,可参考开发者贡献指南)
注意:对于首次在 MegEngine 项目中提交的 Pull Request,提交后需要根据 cla-bot评论完成 CLA 协议签署:
在确保所有的 CI 状态都为 ✅ 后(如遇到 ❌ 提示,可以点击 details,查看具体原因,并对应修正),则会进入下一步的 Review 流程。
开发者们彼此将针对每个 API 文档改进的 Pull Request 进行更加详细而深入的讨论,以追求统一的风格与更高的文档质量。
被至少两名 Reviewer 给出 LGTM 后,Pull Request 将会被 Merge,在 Project 中,对应的 API Issue 会变成 Done 状态。
恭喜成为 MegEngine Contributor!
我们为每一位 Contributor 准备了专属身份徽章和限量社区贡献礼 - 「纪念丹炉」。
已是 MegEngine 社区 Contributor (在 github.com/MegEngine/ 下任一自有 repo - MegEngine、Models、Hub、Documentation 等,有 pr 合并记录)的同学,可填写登记表单:http://i8x1e20aau991m05.mikecrm.com/YhT8Kpw,我们会在核查 GitHub ID 及资料信息无误后,逐一安排邮寄。
即将加入社区的同学,你的首个 Pull Request 被 Merge 后,会收到 MegEngine 团队发来的社区欢迎邮件,查收邮件并填写邮件内的领取表单。然后就可以耐心等待你的社区贡献礼啦!
嘿,准备好了么?
欢迎加入 MegEngine 社区!
在社区开发者的帮助下,MegEngine 目前实现了:
+ MegEngine_CU11 :包含 CUDA11 支持的 MegEngine Python Wheel 包
+ MgeEditing :基于 MegEngine 的图像库
+ commitlint config megengine :MegEngine commitlint 配置项
+ MegEngine.js :MegEngine javascript 版本,可以在 javascript 环境中快速部署 MegEngine 模型
...
以上均已被收录入 awesome-megengine 中。
或许还有更多的 megengine 花式衍生项目,未被发现。
在此,也欢迎大家在自有的 MegEngine 衍生项目 repo 的 About 中加上 megengine topic,MegEngine 社区需要你的灵感~
附:
MegEngine 官网:
https://megengine.org.cn/
MegEngine 技术交流群,QQ 群号:1029741705
▲点击上方卡片,关注CVer公众号