快速贡献

MatrixOne社区欢迎所有开发者的加入和贡献!本章节旨在帮助您快速完成首次贡献。

如何贡献?

在哪些方面可以大展拳脚呢?详情请参见贡献种类。 如果您是完全的新手,您可以从以下两种类别中选择一种进行尝试,这些类别的问题对您技术背景的要求很少,所以不必担心!

  • 报告代码中出现的bug
  • 完善MatrixiOne文档

在开始处理问题之前,建议您先将找到的问题作为GitHub上的一项issue提出。此外,我们准备了一系列带有good-first-issue标签的issue,它们包含了明晰的实现步骤和预期结果,您可以此作为突破口!

认领任务

当您提出issue之后或者是在浏览good-first-issue后决定上手解决,您需要认领这次issue。在相应issue的评论中输入如“I’d like to work on this issue”,社区人员会将任务分配给您,此时,您可以在右侧的Assignees板块看见自己,接下来便可以正式着手解决问题。

前置准备

请确保您至少安装了单机版MatrixOne并部署了相关开发环境。具体请参考准备工作

工作流程

步骤 1: Fork 项目仓库

首先前往Github上的matrixorigin/matrixone仓库.
在页面右上角处,点击 Fork 按键,创建主库的分叉,并作为您之后主要工作的仓库。
Fork our repo

步骤 2: 将仓库克隆至本地

前往刚才您创建的Fork仓库,点击 Code 按键,然后再点击“复制”图标,将库的网址复制到剪贴板。 Clone your fork
然后,在您本地挑选一个合适的工作目录,打开命令行输入以下 Git 命令将文件克隆至您本地的目录:

  1. git clone <content you just copied>

例如:

  1. git clone [email protected]:<yourname>/matrixone.git

<yourname> 是您的Github账号名,换言之,您要用您自己的账号名替换它。

步骤 3: 添加 matrixone 仓库作为本地的远程仓库

您可以将matrixorigin/matrixone 添加为本地的远程仓库,以便后续步骤进行操作:

  1. git remote add upstream https://github.com/matrixorigin/matrixone.git

其中,upstream 是该远程仓库的名字,您可以自行替换,但注意后续对该词也应该一并替换。

步骤 4: 修改、开发

修改

克隆代码库之后您就可以开始您的开发过程,可以在您所需要的地方进行任何修改。

试运行

如果您在修改完成后想知道改动是否有效,能否解决最初的问题,或者是否影响程序运行,您可以运行MatrixOne进行简单的预览和测试。 当然,请确保您已经按照教程完成了安装和部署,并能成功连接到MatrixOne服务器

步骤 5: 提交修改

当完成以上修改和测试后,您就可以开始提交修改。首先使用将您所更改的文件添加至 git 所管理的目录中:

  1. git add <filename>

<filename> 是您所修改的文件的名称。 您也可以使用如下命令,直接将当前文件夹中的所有文件都添加至管理目录:

  1. git add .

之后,您可以提交您的修改

  1. git commit -m "<commit message>" -s

<commit message>是您对本次修改的简单总结和描述,试着做到简明扼要。

步骤 6: 代码推送

提交修改后,您需要将本地的提交推送至远程仓库———我们强烈推荐您推送至目标仓库的一个新分支:

  1. git push origin main:NEW_BRANCH

NEW_BRANCH 您创建并推送至的新分支名,您也可以随意替换它,但也记得后续一并修改。

步骤 7 创建PR

推送后,可以在您所Fork的仓库中看到相关提示信息,点击 Compare & Pull Request 按键来创建一个PR(该PR应该是从个人仓库的NEW_BRANCH 分支到主库的main分支。

Note

建议按照PR中所给出的模板要求,撰写相关信息,如此可以准确表达您的问题以及所做的修改,从而提高审查效率。

Pull Request Pull Request Template

您的PR一旦创建,就有社区资深的开发人员审核您的代码,他将会检查您做的修改并且进行回复,请及时与您沟通,然后按照要求进行修改。

步骤 8 同步代码库

当进行到这一步时,恭喜您的修改已经被接受并且merge进入项目中,感谢您做出的贡献!
但工作还没有结束,还有一些工作要做(这些工作有助于保证提交记录的干净,有利于项目进一步发展)。
可以将远端仓库的代码拉取下来覆盖本地,以保持同步:

  1. git pull --force upstream main:main

最后,再将代码推送到您的仓库中的main分支,这样就能保证三个仓库代码均一致。

  1. git push --force origin main:main