欢迎向mcTVM贡献代码.
如果遇到任何问题或有新的需求,请创建issue.
如果解决了任意 the issues, 欢迎向我们提交PR。
非常感谢您的贡献,下文将介绍我们的工作流和代码风格。
mcTVM 采用 Git branching model, 一般步骤如下:
-
派生
请先派生mcTVM到个人账户下。
-
克隆
在本地创建备份:
git clone https://github.com/your-github-account/mcTVM cd mcTVM -
创建分支
无论是新增特性还是修复问题,在编码前请创建相应分支:
git checkout -b my-cool-stuff
-
提交
提交信息格式:
[Tag] Use imperative mood to summarize this commit Descriptions
-
编译和测试
-
持续更新
经验丰富的Git用户习惯频繁地从官方仓库拉取更新--每天甚至每小时,以便及时感知冲突,从而更容易地解决。
git remote add upstream https://github.com/MetaX-MACA/mcTVM git pull upstream 0.18.0
-
推送PR
推送本地分支到私有仓库:
git push origin my-cool-stuff
基于该推送的分支,你可以创建一个拉取请求(Pull Request),请求仓库所有者拉取你的修改到官方仓库。
如何创建拉取请求,请参考步骤。
如果你的分支是对一个issue的修复,请在拉取请求的描述中输入"Fixes ",当你的拉取请求被合入时,Github将关闭该issue。
-
删除本地和远程分支
为了保持本地工作区和远程仓库的整洁,你可能希望删除已合入的分支:
git push origin :my-cool-stuff git checkout 0.18.0 git pull upstream 0.18.0 git branch -d my-cool-stuff
-
我们会规律性的审查所有拉取请求。
-
请处理审查者的每个意见,如果遵守意见请输入“Done”,否则请说明原因。
-
请减少不必要的提交(commit),对于微小修改,建议使用
git commit --amend合并到前一个提交,而不是采用git commit新建一个。
参考 TVM C++ Code Styles 和 TVM Python Code Styles.
下载 Apache-rat, 拷贝到/bin/apache-rat.jar, 安装clang-format, pre-commit, black,使在每次commit时进行检查:
apt-get install clang-format
python -m pip install pre-commit black
pre-commit install请一定添加相关的单元测试, 参考 TVM Writing Python Tests.