## 版本发布规范

### 规范标准

+ 基本原则：master为保护分支，不直接在master上进行代码修改和提交。
+ 开发日常需求或者项目时，从master分支上checkout一个feature分支进行开发或者bugfix分支进行bug修复，功能测试完毕并且项目发布上线后，`将feature分支合并到主干master，并且打Tag发布，最后删除开发分支`。
+ Tag包括3位版本，前缀使用v。比如v1.2.31。
+ 版本正式发布前需要生成changelog文档，然后再发布上线。

#### 分支命名规范

- 分支版本命名规则：分支类型 _ 分支发布时间 _ 分支功能。比如：feature_20170401_fairy_flower
- 分支类型包括：feature、 bugfix、refactor三种类型，即新功能开发、bug修复和代码重构
- 时间使用年月日进行命名，不足2位补0
- 分支功能命名使用snake case命名法，即下划线命名。

#### Tag命名规范

- 新功能开发使用第2位版本号，bug修复使用第3位版本号
- 核心基础库或者Node中间价可以在大版本发布请使用灰度版本号，在版本后面加上后缀，用中划线分隔。alpha或者belta后面加上次数，即第几次alpha：
  - v2.0.0-alpha-1
  - v2.0.0-belta-1





> 后续还可以，采用`@semantic-release/changelog `来根据 Commit 中 type 自动增量生成 CHANGELOG；
>
> 或者，采用 `semantic-release` 来实现全自动更新版本号和发布，该工具会判断 Commit Message 的不同，fix 增加修订号，feat 增加次版本号，而包含 BREAKING CHANGE 的提交增加大版本号。 详情查看参考文档。