代码贡献¶
MatrixOne 是一个由项目管理者、社区开发者共同维护、改进和扩展的开源项目。 本文档主要描述了开发的准则与一般流程,并提供了在编写代码、提交 PR 过程中需要使用的样式和模板。如果您在参与 MatrixOne 的贡献过程中遇到任何问题或发现一些错误,请在 Github 上提出 issue 或通其他平台联系我们。
前置准备¶
在正式开发之前,请确保您已经阅读了准备工作,已经对 MatrixOne 的核心理念、基础架构有一定了解,并准备好了开发所需要的相应环境、语言、工具等。
风格规范指南 ¶
在对 MatrixOne 进行开发和完善时,应该使代码、代码注释、提交信息 (Committing Message) 和拉取请求 (Pull Request,简称 PR) 保持一致的风格。当您提交 PR 时,我们强烈建议您确保所作出的修改符合我们的一贯风格,这不仅会提高 PR 的通过率,并且也能使 MatrixOne 易于审查、维护和进一步开发。
代码规范
MatrixOne 采用了 Golang 社区建议的编码规范,详情请见 Effective Go。
代码注释规范
关于代码注释,请参考代码注释规范。
提交信息 & PR 规范
可参考 Commit & PR 规范。
一般工作流程 ¶
您可以按照以下工作流程来进行开发并在 Github 上提交修改,如果您还需要更加详细的解释,可以查看 Make Your First Contribution
1. 在 Github 上 Fork matrixorigin/matrixone 仓库。
2. 将 Fork 的仓库克隆至本地:
git clone git@github.com:<yourname>/matrixone.git
并且把 matrixone 仓库添加为远程仓库:
git remote add upstream https://github.com/matrixorigin/matrixone.git
3. 创建一个新的分支,分支名自定义:
git checkout -b topic-branch
4. 在本地进行开发,完成相关修改,并完成必要的单元测试,最后进行提交。
5. 将修改推送至仓库的一个新分支:
git push origin main:NEW_BRANCH
6. 在仓库中的新分支 NEW_BRANCH 中创建 Pull Request,并添加相应标签、建立与相关 issue 的关联。
7. PR 通过后,覆盖本地提交历史:
git pull --force upstream main:main
8. 更新您的仓库的 main 分支:
git push --force origin main:main
如果您仍然有一些困惑,可以参考 GitHub 官方文档寻求帮助;若您发现我们提供的工作流程有错误或想要提出改善的方法,欢迎您提出建议!
代码审阅¶
当您创建 PR 请求时,您可以指定一些审阅者,或者留空。并且您可以添加一些相关的标签,这样更容易识别 PR 的类型、优先级等。在代码审阅期间,审阅者会对您的代码片段给出意见,您可以相应地在本地修改您的分支上的代码,提交更改,然后推送到 GitHub,新的提交会自动附加到 PR 上。