小学老师说:好脑子不如烂笔头
作为一个普通的开发者,我必须为我的项目维护一个更新日志(以下简称 changelog)吗?
我记得你还约束了 Git log 的规范,那为何还要再规范 changelog 的格式呢?两者不是差不多?
changelog
文件必须取名为 CHANGELOG.md
,存放在项目的根目录下,和 README.md
、CONTRIBUTING.md
等并列,同时保持风格一致。
这种命名方式已然是国际通则,以下再阐释一番:
使用大写来表明本文件的重要性,相当于是项目仓库元信息的一部分。
使用 .md
作为后缀,而不是 .txt
或干脆不加后缀。使用标准 Markdown 语法,从而可以方便地渲染。
# 更新日志
## [<version>] - <date>
### <type>
* <desc>
* <desc>
### <type>
* <desc>
* <desc>
[<version>]: <version-diff-url>
其中,按照最新的版本号在前的顺序排列。
标题部分使用固定的文案:「更新日志」。
如果是面向国际的项目,需要使用英文,则文案为「Change Log」。
版本号 version 即项目的每一个发布版所使用的版本号。版本号需遵循 SemVer 版本号命名规范。
注意:版本号前不要加 v
。
另外,版本号建议增加一个链接,指向当前版本和上一个版本之间的 diff。详情可参考后文的样本示例。
发布时间 date 即版本发布时的所在日期。
日期采用 yyyy-MM-dd
的格式。
示例:
// good
2016-01-01
// bad
2016-1-1
20160101
更新类型 type 用以说明更新的方面。这里的 type 和 Git 提交日志中的 type 有所联系,然而并不一一对应。
同前面提到的「标题」部分,默认使用中文版本的词汇,如果是面向国际的项目,则使用括号中的英文版本。
type 的可选值如下:
描述内容 desc 需要注意:
# 更新日志
## [6.2.4] - 2015-12-16
### 变更
* `Node.fn.map()` 之前返回 NodeList 自身,现在将正确地返回被 map 后的数组。
### 修复
* 修复在非 ks-debug 模式下仍然输出 `KISSY.log()` 控制台信息的问题。
## [6.2.3] - 2015-11-16
### 修复
* 修复 `KISSY.getScript` 在传入了 `timeout` 参数后报错的问题。[#12]
## [6.2.2] - 2015-11-04
### 新增
* node 模块增加 API `Node.fn`,以兼容传统 KIMI 的 node 对象扩展机制。
* ua 模块现在可以识别 Microsoft Edge 浏览器。
### 优化
* `KISSY.getScript()` 从 loader 模块中独立出来,io 模块不再依赖 loader 模块。
### 已删除
* io 模块默认去掉了对 XML 的 converter 支持。