diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 683294cd40002a8f8c7066274b33a201f3dc0072..5560642aaf0645b4a7781ef87b11fc1ba297b65d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,6 +27,3 @@ Following information can help us to resolve the issue faster. * Screenshots. * Steps to reproduce the issue. -0 -1 -4 diff --git "a/docs/contributer_guide/\344\273\243\347\240\201\350\247\204\350\214\203.md" "b/docs/contributer_guide/\344\273\243\347\240\201\350\247\204\350\214\203.md" new file mode 100644 index 0000000000000000000000000000000000000000..be0bcfd2f005ccb1192946bd132c0353851f4e9e --- /dev/null +++ "b/docs/contributer_guide/\344\273\243\347\240\201\350\247\204\350\214\203.md" @@ -0,0 +1 @@ +TODO. \ No newline at end of file diff --git "a/docs/contributer_guide/\345\274\200\345\217\221\350\200\205\345\220\215\345\215\225.md" "b/docs/contributer_guide/\345\274\200\345\217\221\350\200\205\345\220\215\345\215\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..b5c05427a59a52506efb32cb94edadac3ce668bd --- /dev/null +++ "b/docs/contributer_guide/\345\274\200\345\217\221\350\200\205\345\220\215\345\215\225.md" @@ -0,0 +1,7 @@ + +开源贡献者证书发放名单(定期更新) + + +|姓名|Github|角色|发放日期| +|--|--|--|--| +|szz|@szz|PMC|2022/?/?| \ No newline at end of file diff --git "a/docs/contributer_guide/\350\264\241\347\214\256\346\265\201\347\250\213.md" "b/docs/contributer_guide/\350\264\241\347\214\256\346\265\201\347\250\213.md" new file mode 100644 index 0000000000000000000000000000000000000000..4f2a5b5a3958c131eebe41f6efd5c0512f608c42 --- /dev/null +++ "b/docs/contributer_guide/\350\264\241\347\214\256\346\265\201\347\250\213.md" @@ -0,0 +1,117 @@ +@[TOC] + +### 贡献流程 + + + +#### 1. fork didi/KnowStreaming项目到您的github库 + +找到你要Fork的项目,例如 [KnowStreaming](https://github.com/didi/KnowStreaming) ,点击Fork按钮。 +![在这里插入图片描述](https://img-blog.csdnimg.cn/ac7bfef9ccde49d587c30e702a615ef5.png) + + +#### 2. 克隆或下载您fork的Nacos代码仓库到您本地 + +```sh + +git clone { your fork knowstreaming repo address } + +cd KnowStreaming + +``` + +#### 3. 添加 didi/KnowStreaming仓库为upstream仓库 + + +```sh + +git remote add upstream https://github.com/didi/KnowStreaming + +git remote -v + + origin ${your fork KnowStreaming repo address} (fetch) + origin ${your fork KnowStreaming repo address} (push) + upstream https://github.com/didi/KnowStreaming(fetch) + upstream https://github.com/didi/KnowStreaming (push) + +git fetch origin +git fetch upstream + +``` +上面是将didi/KnowStreaming添加为远程仓库, 当前就会有2个远程仓库 + +1. origin : 你Fork出来的分叉仓库 +2. upstream : 源仓库 + +git fetch 获取远程仓库的基本信息, 比如 **源仓库**的所有分支就获取到了 + + +#### 4. 同步源仓库开发分支到本地分叉仓库中 + +一般开源项目都会有一个给贡献者提交代码的分支,例如 KnowStreaming的分支是 `dev`; + + +首先我们要将 **源仓库**的开发分支(`dev`) 拉取到本地仓库中 +```sh + +git checkout -b dev upstream/dev +``` +**或者IDEA的形式创建** + +![在这里插入图片描述](https://img-blog.csdnimg.cn/c95f2601a9af41889a5fc20b2a9724a5.png) + +#### 5. 在本地新建的开发分支上进行修改 + +首先请保证您阅读并正确设置KnowStreaming code style, 相关内容请阅读[KnowStreaming 代码规约 ]()。 + +修改时请保证该分支上的修改仅和issue相关,并尽量细化,做到 + +一个分支只修改一件事,一个PR只修改一件事。 + +同时,您的提交记录请尽量描述清楚,主要以谓 + 宾进行描述,如:Fix xxx problem/bug。少量简单的提交可以使用For xxx来描述,如:For codestyle。 如果该提交和某个ISSUE相关,可以添加ISSUE号作为前缀,如:For #10000, Fix xxx problem/bug。 + + +#### 6. Rebase 基础分支和开发分支 + +您修改的时候,可能别人的修改已经提交并被合并,此时可能会有冲突,这里请使用rebase命令进行合并解决,主要有2个好处: + +1. 您的提交记录将会非常优雅,不会出现Merge xxxx branch 等字样 +2. rebase后您分支的提交日志也是一条单链,基本不会出现各种分支交错的情况,回查时更轻松 + +```sh +git fetch upstream + +git rebase -i upstream/dev + +``` +**或者在IDEA的操作如下** + +![在这里插入图片描述](https://img-blog.csdnimg.cn/d75addcfa9564d3d9e1d226a2f7f4d64.png) +选择 源仓库的开发分支 +![在这里插入图片描述](https://img-blog.csdnimg.cn/4e85714df13b44bcb10f1e655450cb72.png) + +推荐使用IDEA的方式, 有冲突的时候更容易解决冲突问题。 + +#### 7. 将您开发完成rebase后的分支,上传到您fork的仓库 + +```sh +git push origin dev +``` + +#### 8. 按照PR模板中的清单创建Pull Request + + + +![在这里插入图片描述](https://img-blog.csdnimg.cn/1dab060aed314666970e3910e05f2205.png) + +选择自己的分支合并到模板分支。 + + +#### 9. 等待合并代码 + +提交了PR之后,需要等待PMC、Commiter 来Review代码,如果有问题需要配合修改重新提交。 + +如果没有问题会直接合并到开发分支`dev`中。 + +注: 如何长时间没有review, 则可以多催促社区来Review代码! + diff --git "a/docs/contributer_guide/\350\264\241\347\214\256\346\272\220\347\240\201.md" "b/docs/contributer_guide/\350\264\241\347\214\256\346\272\220\347\240\201.md" new file mode 100644 index 0000000000000000000000000000000000000000..78f815e9bb09380cb70ddff43b6e4ca75a65c165 --- /dev/null +++ "b/docs/contributer_guide/\350\264\241\347\214\256\346\272\220\347\240\201.md" @@ -0,0 +1,149 @@ + + + +# 为KnowStreaming做贡献 + + +欢迎👏🏻来到KnowStreaming!本文档是关于如何为KnowStreaming做出贡献的指南。 + +如果您发现不正确或遗漏的内容, 请留下意见/建议。 + +## 行为守则 +请务必阅读并遵守我们的 [行为准则](./CODE_OF_CONDUCT.md). + + + +## 贡献 + +**KnowStreaming** 欢迎任何角色的新参与者,包括 **User** 、**Contributor**、**Committer**、**PMC** 。 + +我们鼓励新人积极加入 **KnowStreaming** 项目,从User到Contributor、Committer ,甚至是 PMC 角色。 + +为了做到这一点,新人需要积极地为 **KnowStreaming** 项目做出贡献。以下介绍如何对 **KnowStreaming** 进行贡献。 + + +### 创建/打开 Issue + +如果您在文档中发现拼写错误、在代码中**发现错误**或想要**新功能**或想要**提供建议**,您可以在 GitHub 上[创建一个Issue](https://github.com/didi/KnowStreaming/issues/new/choose) 进行报告。 + + +如果您想直接贡献, 您可以选择下面标签的问题。 + +- [contribution welcome](https://github.com/didi/KnowStreaming/labels/contribution%20welcome) : 非常需要解决/新增 的Issues +- [good first issue](https://github.com/didi/KnowStreaming/labels/good%20first%20issue): 对新人比较友好, 新人可以拿这个Issue来练练手热热身。 + + 请注意,任何 PR 都必须与有效issue相关联。否则,PR 将被拒绝。 + + + +### 开始你的贡献 + +**分支介绍** + +我们将 `dev`分支作为开发分支, 说明这是一个不稳定的分支。 + +此外,我们的分支模型符合 [https://nvie.com/posts/a-successful-git-branching-model/](https://nvie.com/posts/a-successful-git-branching-model/). 我们强烈建议新人在创建PR之前先阅读上述文章。 + + + +**贡献流程** + +为方便描述,我们这里定义一下2个名词: + +自己Fork出来的仓库是私人仓库, 我们这里称之为 :**分叉仓库** +Fork的源项目,我们称之为:**源仓库** + + +现在,如果您准备好创建PR, 以下是贡献者的工作流程: + +1. Fork [KnowStreaming](https://github.com/didi/KnowStreaming) 项目到自己的仓库 + +2. 从源仓库的`dev`拉取并创建自己的本地分支,例如: `dev` +3. 在本地分支上对代码进行修改 +4. Rebase 开发分支, 并解决冲突 +5. commit 并 push 您的更改到您自己的**分叉仓库** +6. 创建一个 Pull Request 到**源仓库**的`dev`分支中。 +7. 等待回复。如果回复的慢,请无情的催促。 + + + +创建Pull Request时: + +1. 请遵循 PR的 [模板](./PULL_REQUEST_TEMPLATE.md) +2. 请确保 PR 有相应的issue。 +3. 如果您的 PR 包含较大的更改,例如组件重构或新组件,请编写有关其设计和使用的详细文档(在对应的issue中)。 +4. 注意单个 PR 不能太大。如果需要进行大量更改,最好将更改分成几个单独的 PR。 +5. 在合并PR之前,尽量的将最终的提交信息清晰简洁, 将多次修改的提交尽可能的合并为一次提交。 +6. 创建 PR 后,将为PR分配一个或多个reviewers。 + + +如果您的 PR 包含较大的更改,例如组件重构或新组件,请编写有关其设计和使用的详细文档。 + + +# 代码审查指南 + +Commiter将轮流review代码,以确保在合并前至少有一名Commiter + +一些原则: + +- 可读性——重要的代码应该有详细的文档。API 应该有 Javadoc。代码风格应与现有风格保持一致。 +- 优雅:新的函数、类或组件应该设计得很好。 +- 可测试性——单元测试用例应该覆盖 80% 的新代码。 +- 可维护性 - 遵守我们的编码规范。 + + +# 开发者 + +## 成为Contributor + +只要成功提交并合并PR , 则为Contributor + +名单请看:[开发者名单](../开发者名单.md) + +## 尝试成为Commiter + +一般来说, 贡献8个重要的补丁并至少让三个不同的人来Review他们(您需要3个Commiter的支持)。 +然后请人给你提名, 您需要展示您的 + +1. 至少8个重要的PR和项目的相关问题 +2. 与团队合作的能力 +3. 了解项目的代码库和编码风格 +4. 编写好代码的能力 + +当前的Commiter可以通过在KnowStreaming中的Issue标签 `nomination`(提名)来提名您 + +1. 你的名字和姓氏 +2. 指向您的Git个人资料的链接 +3. 解释为什么你应该成为Commiter +4. 详细说明提名人与您合作的3个PR以及相关问题,这些问题可以证明您的能力。 + +另外2个Commiter需要支持您的**提名**,如果5个工作日内没有人反对,您就是提交者,如果有人反对或者想要更多的信息,Commiter会讨论并通常达成共识(5个工作日内) 。 + + +# 开源奖励计划 + + +我们非常欢迎开发者们为KnowStreaming开源项目贡献一份力量,相应也将给予贡献者激励以表认可与感谢。 + + +## 参与贡献 + +1. 积极参与 Issue 的讨论,如答疑解惑、提供想法或报告无法解决的错误(Issue) +2. 撰写和改进项目的文档(Wiki) +3. 提交补丁优化代码(Coding) + + +## 你将获得 + +1. 加入KnowStreaming开源项目贡献者名单并展示 +2. KnowStreaming开源贡献者证书(纸质&电子版) +3. KnowStreaming贡献者精美大礼包(KnowStreamin/滴滴 周边) + + +## 相关规则 + +- Contributer和Commiter都会有对应的证书和对应的礼包 +- 每季度有KnowStreaming项目团队评选出杰出贡献者,颁发相应证书。 +- 年末进行年度评选 + +贡献者名单请看:[贡献者名单](../开发者名单.md) \ No newline at end of file