CHANGELOG.md Builder

Generate a Keep a Changelog format CHANGELOG.md for your project

Builds a properly formatted CHANGELOG.md following the Keep a Changelog standard with an Unreleased section and Added, Changed, Fixed, Removed, Deprecated, and Security groups, plus semantic version release entries.

What is Keep a Changelog?

Keep a Changelog is a widely adopted convention for human-readable changelogs. It groups changes into fixed categories and orders releases newest first, making it easy for users to scan what changed.

CHANGELOG.md Builder

A good changelog tells users what changed without making them read commit logs. The Keep a Changelog standard gives that structure: newest releases on top, an Unreleased staging area, and a fixed set of categories. This builder assembles a compliant CHANGELOG.md from your release entries so the formatting is correct every time.

How it works

The output starts with the standard header noting the file follows Keep a Changelog and Semantic Versioning. It then renders an ## [Unreleased] section followed by each release as ## [version] - YYYY-MM-DD. Within every section, non-empty categories appear in the canonical order: Added, Changed, Deprecated, Removed, Fixed, Security. Each entry becomes a - bullet. Empty categories are omitted so the file stays clean.

Tips, example, and notes

A typical entry looks like:

## [1.2.0] - 2026-06-06
### Added
- CSV export on the reports page.
### Fixed
- Crash when opening an empty project.

Keep entries written for humans, in past or imperative tense, and avoid raw commit hashes. When you release, promote the Unreleased items into a dated version and open a new empty Unreleased section. Reserve the Security category for vulnerability fixes so they are easy to audit.