From fc18aae9b0919b1a0405a2cd1fe34c7c69fd0600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8B=BC=E5=8F=94?= Date: Wed, 9 Dec 2020 15:04:16 +0800 Subject: [PATCH] chore: add CONTRIBUTING.md --- CONTRIBUTING.md | 205 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..9707be6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,205 @@ +# 代码贡献规范 + +有任何疑问,欢迎提交 [issue](https://github.com/imgcook/imove/issues), +或者直接修改提交 [PR](https://github.com/imgcook/imove/pulls)! + +## 提交 issue + +- 请确定 issue 的类型。 +- 请避免提交重复的 issue,在提交之前搜索现有的 issue。 +- 在标签(分类参考**标签分类**), 标题 或者内容中体现明确的意图。 + +随后 imove 负责人会确认 issue 意图,更新合适的标签,关联 milestone,指派开发者。 + +标签可分为两类,type 和 scope + +- type: issue 的类型,如 `feature`, `bug`, `documentation`, `performance`, `support` ... +- scope: 修改文件的范围,如 `core: xx`,`plugin: xx`,`deps: xx` + +### 常用标签说明 + +- `support`: issue 提出的问题需要开发者协作排查,咨询,调试等等日常技术支持。 +- `bug`: 一旦发现可能是 bug 的问题,请打上 `bug`,然后等待确认,一旦确认是 bug,此 issue 会被再打上 `confirmed`。 + - 此时 issue 会被非常高的优先级进行处理。 + - 如果此 bug 是正在影响线上应用正常运行,会再打上 `critical`,代表是最高优先级,需要马上立刻处理! + - bug 会在最低需要修复的版本进行修复,如是在 `0.9.x` 要修复的,而当前最新版本是 `1.1.x`, + 那么此 issue 还会被打上 `0.9`,`0.10`,`1.0`,`1.1`,代表需要修复到这些版本。 +- `core: xx`: 代表 issue 跟 core 内核相关,如 `core: antx` 代表跟 `antx` 配置相关。 +- `plugin: xx`: 代表 issue 跟插件相关,如 `deps: session` 代表跟 `session` 插件相关。 +- `deps: xx`: 代表 issue 跟 `dependencies` 模块相关,如 `deps: egg-cors` 代表跟 `egg-cors` 模块相关。 +- `chore: documentation`: 代表发现了文档相关问题,需要修复文档说明。 +- `cbd`: 代表跟服务器部署相关 + +## 编写文档 + +所有功能点必须提交配套文档,文档须满足以下要求 + +- 必须说清楚问题的几个方面:what(是什么),why(为什么),how(怎么做),可根据问题的特性有所侧重。 +- how 部分必须包含详尽完整的操作步骤,必要时附上 **足够简单,可运行** 的范例代码, +所有范例代码放在 [imove/examples](https://github.com/imgcook/imove) 库中。 +- 提供必要的链接,如申请流程,术语解释和参考文档等。 +- 同步修改中英文文档,或者在 PR 里面说明。 + +## 提交代码 + +### 提交 Pull Request + +如果你有仓库的开发者权限,而且希望贡献代码,那么你可以创建分支修改代码提交 PR,ykfe 开发团队会 review 代码合并到主干。 + +```bash +# 先创建开发分支开发,分支名应该有含义,避免使用 update、tmp 之类的 +$ git checkout -b branch-name + +# 开发完成后跑下测试是否通过,必要时需要新增或修改测试用例 +$ npm test + +# 测试通过后,提交代码,message 见下面的规范 + +$ git add . # git add -u 删除文件 +$ git commit -m "fix(role): role.use must xxx" +$ git push origin branch-name +``` + +由于谁也无法保证过了多久之后还记得多少,为了后期回溯历史的方便,请在提交 MR 时确保提供了以下信息。 + +1. 需求点(一般关联 issue 或者注释都算) +2. 升级原因(不同于 issue,可以简要描述下为什么要处理) +3. 框架测试点(可以关联到测试文件,不用详细描述,关键点即可) +4. 关注点(针对用户而言,可以没有,一般是不兼容更新等,需要额外提示) + +### 代码风格 + +你的代码风格必须通过 eslint,你可以运行 `$ npm run lint` 本地测试。 + +### Commit 提交规范 + +根据 [angular 规范](https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format)提交 commit, +这样 history 看起来更加清晰,还可以自动生成 changelog。 + +```xml +(): + + + +