代码贡献规范

有任何疑问,欢迎提交 issue, 或者直接修改提交 PR!

# 提交 issue

随后 egg 负责人会确认 issue 意图,更新合适的标签,关联 milestone,指派开发者。

标签可分为两类,type 和 scope

# 常用标签说明

# 编写文档

所有功能点必须提交配套文档,文档须满足以下要求

# 提交代码

# 提交 Pull Request

如果你有仓库的开发者权限,而且希望贡献代码,那么你可以创建分支修改代码提交 PR,egg 开发团队会 review 代码合并到主干。

# 先创建开发分支开发,分支名应该有含义,避免使用 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

提交后就可以在 egg 创建 Pull Request 了。

由于谁也无法保证过了多久之后还记得多少,为了后期回溯历史的方便,请在提交 MR 时确保提供了以下信息。

  1. 需求点(一般关联 issue 或者注释都算)
  2. 升级原因(不同于 issue,可以简要描述下为什么要处理)
  3. 框架测试点(可以关联到测试文件,不用详细描述,关键点即可)
  4. 关注点(针对用户而言,可以没有,一般是不兼容更新等,需要额外提示)

# 代码风格

你的代码风格必须通过 eslint,你可以运行 $ npm run lint 本地测试。

# Commit 提交规范

根据 angular 规范提交 commit, 这样 history 看起来更加清晰,还可以自动生成 changelog。

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

(1)type

提交 commit 的类型,包括以下几种

(2)scope

修改文件的范围(包括但不限于 doc, middleware, core, config, plugin)

(3)subject

用一句话清楚的描述这次提交做了什么

(4)body

补充 subject,适当增加原因、目的等相关因素,也可不写。

(5)footer

示例

fix($compile): [BREAKING_CHANGE] couple of unit tests for IE9

Older IEs serialize html uppercased, but IE9 does not...
Would be better to expect case insensitive, unfortunately jasmine does
not allow to user regexps for throw expectations.

Document change on eggjs/egg#123

Closes #392

BREAKING CHANGE:

Breaks foo.bar api, foo.baz should be used instead

查看具体文档

# 发布管理

egg 基于 semver 语义化版本号进行发布。

# 分支策略

master 分支为当前稳定发布的版本,next 分支为下一个开发中的大版本。

# 发布策略

每个大版本都有一个发布经理管理(PM),他/她要做的事情

# 准备工作:

# 发布前:

# 发布时:

上述描述中所有的设置 tag 都是指在 package.json 中设置 npm 的 tag。

"publishConfig": {
"tag": "next"
}