Github 使用¶
本节将介绍Github中的问题与拉取请求。
1. 从模板创建¶
问题和拉取请求都有各自的模板。
问题需要选择一个类别,然后确保你已经阅读了文档和之前的问题和PR,并指定版本号、操作系统,然后正式描述问题。详情见下文:
我已标记所有适用的类别:
引发异常的bug
RL算法错误
系统工作者错误
系统工具错误
代码设计/重构
文档请求
新功能请求
我已经提到了版本号、操作系统和环境,如果适用的话:
import ding, torch, sys print(ding.__version__, torch.__version__, sys.version, sys.platform)
在PR模板中,描述用于描述当前PR的作用和功能,相关问题用于列出相关的问题,待办事项用于列出尚未完成的工作。
此外,还有一个检查清单,以确保源分支已合并,所有冲突已解决,代码风格检查通过,所有测试通过。详情见下文:
合并最新版本的源分支/仓库,并解决所有冲突
通过样式检查
通过所有测试
关于PR的命名规范,请参考git提交章节。此外,如果当前的PR仍在开发中,你可以在PR名称的开头添加WIP:,这是“进行中”的缩写。
2. 设置标签和里程碑¶
每个问题和PR都需要标记一个标签,并指示相关的重要里程碑,用于跟踪与每个具体任务对应的中长期目标。需要在此处指定这两项:
DI-engine 仓库目前支持的标签:
DI-engine 仓库目前支持的里程碑:
3. PR的Github Actions¶
GitHub actions 是一个用于自动化各种任务的持续集成工具。它主要用于 DI-engine 中的各种测试(算法测试、平台测试、样式测试、单元测试等),只有当 PR 通过所有必要的测试时,才能合并。如果有任何操作未通过,PR 将显示如下:
此时,您需要点击“详细信息”以查看具体的失败原因。如果您可以在本地通过测试,但CI失败,请尝试重新运行:
注意
If you want to know more, you can reference 教程
4. PR的代码审查¶
PR审查需要从以下五个角度进行:代码风格、算法原理、计算效率、接口易用性和兼容性。任何问题都可以进行评论。建议每天花一定时间浏览github上的PR,了解社区在做什么,以及可以从彼此中学到什么或改进什么。
如果您需要审查其他人的PR,通常有两种评论方式:
一种是在PR的对话中直接评论,通常针对整体,如下所示:
第二种是对特定行或代码片段进行评论,您可以点击“文件更改”中的加号来创建新评论,如下所示:
注意
一般来说,PR的工作流程如下:
在讨论区进行讨论。有人总结并提出问题,然后开发者需要针对该问题进行开发。
在Github上提交拉取请求
代码开发
指派某人进行代码审查,修复他人提出的问题,完成所有开发工作
合并最新的源分支(通常是main)并解决冲突,确保通过github CI,最后等待合并