自动版本管理和生成CHANGELOG
standard-version 介绍
一个用于生成CHANGELOG.md
和进行SemVer(语义化版本号)
发版的命令行工具; 主要功能:
- 自动修改最新版本号,可以是
package.json
或者自定义一个文件 - 读取最新版本号,创建一个最新的
git tag
- 根据提交信息,生成
CHANGELOG.md
- 创建一个新提交包括
CHANGELOG.md
和package.json
官方文档: http://www.npmdoc.org/standard-versionzhongwenwendangstandard-version-jszhongwenjiaochengjiexi.html standard-version 是帮助项目自动生成ChangeLog、升版本、打tag的工具,
在package.json 文件中添加脚本命令如下
text
"scripts": {
"release": "standard-version"
},
那么在命令行执行 yarn release 时它会:
- 取得当前版本(比如package.json里面的version字段),升版本:
1.0.0 => 1.1.0
或者1.0.0 => 2.0.0
等(如何升级可以由参数控制) - 基于commits生成ChangeLog文件
- 提交一个commit,包含ChangeLog和版本变更的文件
- 打tag
CHANGELOG.md 配置
standard-verstion 生成的CHANGELOG只会包含feat,fix,BREACK-CHANGE类型的提交记录, 如果想记录其他类型的提交,需要根目录下创建一个名为 .versionrc 的文件。代码如下:
text
// .versionrc
{
"types": [
{"type": "chore", "section":"Others", "hidden": false},
{"type": "revert", "section":"Reverts", "hidden": false},
{"type": "feat", "section": "Features", "hidden": false},
{"type": "fix", "section": "Bug Fixes", "hidden": false},
{"type": "improvement", "section": "Feature Improvements", "hidden": false},
{"type": "docs", "section":"Docs", "hidden": false},
{"type": "style", "section":"Styling", "hidden": false},
{"type": "refactor", "section":"Code Refactoring", "hidden": false},
{"type": "perf", "section":"Performance Improvements", "hidden": false},
{"type": "test", "section":"Tests", "hidden": false},
{"type": "build", "section":"Build System", "hidden": false},
{"type": "ci", "section":"CI", "hidden":false}
]
}
说明:
type"
commit 类型"section"
不同的 commit 类型所在CHANGELOG.md中的区域"hidden"
是否在CHANGELOG.md中显示
语义化版本控制(SemVer)
语义化的版本控制是由GitHub发起的一份用于规范版本号递增的规则;
版本格式
主版本号.次版本号.修订号,版本号递增规则如下:
text
- 主版本号(major):当你做了不兼容的 API 修改,
- 次版本号(minor):当你做了向下兼容的功能性新增,可以理解为Feature版本,
- 修订号(patch):当你做了向下兼容的问题修正,可以理解为Bug fix版本。
先行版本号可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
先行版本
当即将发布大版本改动前,但是又不能保证这个版本的功能 100% 正常,这个时候可以发布先行版本:
text
- alpha: 内部版本
- beta: 公测版本
- rc: 候选版本(Release candiate)
比如:1.0.0-alpha.0,1.0.0-alpha.1,1.0.0-rc.0,1.0.0-rc.1等。
standard-version 会根据提交的信息类型来自动更改对应的版本号,如下:
text
- feat: 次版本(minor)+1
- fix: 修订号(patch) +1
- BREAK CHANGE: 主板号(marjor) +1
Contributors
作者:Long Mo
字数统计:705 字
阅读时长:2 分钟
文章作者:Long Mo
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Longmo Docs !