Skip to content

快速贡献

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 命令将文件克隆至您本地的目录:

git clone <content you just copied>

例如:

git clone git@github.com:<yourname>/matrixone.git

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

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

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

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

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

步骤 4:修改、试运行

修改

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

试运行

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

步骤 5:提交修改

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

git add <filename>

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

git add .

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

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

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

步骤 6:代码推送

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

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 进入项目中,感谢您做出的贡献! 但工作还没有结束,还有一些工作要做(这些工作有助于保证提交记录的干净,有利于项目进一步发展)。 可以将远端仓库的代码拉取下来覆盖本地,以保持同步:

git pull --force upstream main:main

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

git push --force origin main:main