3个版本

0.1.2 2019年2月12日
0.1.1 2019年2月12日
0.1.0 2019年2月12日

#5 in #merger

每月 33 次下载

MIT/Apache

14KB
258 行代码(不包括注释)

clmerge

Travis status Crates.io License

有偏见的、简单的变更日志合并器

永远不再重新基 CHANGELOG.md

工作原理

在提交拉取请求时,只需要创建一个文件来创建变更日志条目。

使用 clmerge 命令创建新的变更日志,并存储为 CHANGELOG.md

文件结构

(您也可以查看 变更日志目录 以了解其工作方式。)

changelog 目录

clmerge 期望当前目录中存在一个 changelog 目录。其中应放置以下文件

  • header.md (可选):将在顶部插入
  • old.md (可选):将在末尾附加
  • config.ron (可选):RON 配置文件

其他任何文件都将被忽略。

版本目录

changelog 内的每个目录都应是一个有效的 semver 版本(例如 0.5.11.0.0-alpha。这样的文件夹称为“版本目录”。

类别目录

在每个版本目录内,可以放置任意数量的类别目录(例如 addedremovedchangedfixed)。

在最终的 CHANGELOG.md 中,所有类别都将以大写字母开头。

条目文件

在类别目录内,期望有任意数量的条目。

文件的内容将被修剪并连接,每个条目后跟一个 \n

示例

文件树

├── changelog
│   ├── 0.1.0
│   │   └── added
│   │       └── general.md
│   ├── 0.2.0
│   │   ├── added
│   │   │   ├── feature-bar.md
│   │   │   └── feature-baz.md
│   │   └── changed
│   │       └── foo.md
│   ├── header.md
│   └── old.md
└── CHANGELOG.md

header.md:

# Changelog

old.md (您的旧变更日志)

## 0.0.0

This is the old Changelog

* Did something

config.ron:

(
    // This will be used to insert links for `[#123]` entries
    // `[#123]` becomes `[#123](https://github.com/user/repo/issues/123)`
    pull_request_prefix: "https://github.com/user/repo/issues/",
)

feature-baz.md:

* Added feature baz ([#123])

输出 (CHANGELOG.md)

<!-- This file is auto-generated. Do not edit. -->
# Changelog

## 0.2.0

### Changed

* Changed behavior of `Foo::foo`

### Added

* Added feature baz ([#123](https://github.com/user/repo/issues/123))
* Added feature bar

## 0.1.0

### Added

* General functionality for merging changelog entries

## 0.0.0

This is the old Changelog

* Did something

安装

cargo install clmerge

许可证

此项目采用 MIT / Apache-2.0 许可双授权。

依赖关系

~3.5–5MB
~95K SLoC