changelog
is a command-line application to read and manipulate
CHANGELOG.md
files that follows the keepachangelog.com spec.
It can normalize the file (fmt
), create a release (release
) and
show a specific version (show
). See Usage for details.
The easiest way to install it is to download the latest version from GitHub releases.
There are precompiled binaries for macOS and Linux.
Download and build the executable:
$ go get -u github.com/rcmachado/changelog
$ cd $GOPATH/github.com/rcmachado/changelog
$ make build
changelog manipulate and validate markdown changelog files following the keepachangelog.com specification.
Usage:
changelog [command]
Available Commands:
fmt Reformat the change log file
help Help about any command
release Change Unreleased to [version]
show Show changelog for [version]
Flags:
-f, --filename string Changelog file or '-' for stdin (default "CHANGELOG.md")
-h, --help help for changelog
-o, --output string Output file or '-' for stdout (default "-")
Use "changelog [command] --help" for more information about a command.
Normalize file format (see Formatting for the specific transformation applied):
$ changelog fmt
Show what will be in the next release:
$ changelog show Unreleased
Show the change log for a specific version:
$ changelog show 1.2.3
Create a new release:
$ changelog release 1.2.4
fmt
command normalizes the changelog file. The idea is to always have
the same output, no matter how messy the file is. Right now it doesn't
do much, but the plan is to evolve it as a kind of go fmt
for
changelogs.
Currently, the following transformations are applied:
- Sections are sorted (eg. Added, Changed, etc)
- Version links are put at the bottom of the file
- List bullet is always
-
To contribute, you can fork the repository and submit a Pull Request.
A lot of things! Take a look at the issues to find something.
Could you please fill an issue explaining what caused the issue and what did you expect to happen instead?
It's released under MIT license. See LICENSE file for details.