Overview¶
Problem to solve¶
The Gradle Changelog Automation Plugin has one purpose: to automate your CHANGELOG.md generation.
The plugin addresses the following problems:
- frequent merge conflicts in your changelog file
- even with only 2 developers, merge conflicts are very likely to happen
- time-consuming manual updates
- any time you make a release, you also need to manually update your changelog
- human errors
- due to the manual maintenance, you might make mistakes (e.g. missing entry, wrong version/date, etc.)
Provided solution¶
Generate your new unreleased changelog entries into separate YAML files. One YAML file represents one changelog entry. For example, for a new feature, you would create something like this:
title: My new feature
reference: GH-1
author: John Doe
type: added
Then, during release time, use this plugin to automatically process your unreleased entries and combine them into your CHANGELOG.md
file:
## [1.0.0] - 2019-07-21
### Added
- GH-1 My new feature (John Doe)
Followed conventions¶
The plugin generates a CHANGELOG.md
file in the root of the project. The content of the generated changelog is based on Keep a Changelog.
The unreleased changelog entries are expected to be under changelogs/unreleased
directory in the root of the project.
The generator script that generates YAML files is expected under scripts/changelog.sh
.