A formal specification for semantic changelog files and entries.
Rationale and Goals
The primary goal around the changelog specification is to formalise a structure for changelog files to bring consistency across projects.
A formal specification around changelogs may also allow automation via tools. Tools can understand semantics around changes, whether a change is breaking, an enhancement or a bug fix and automatically determine the next appropriate semantic version number. Along with dealing with any manual tasks around changelog management.
A small example changelog entry:
## 0.2.0 ### Enhancements * Adds support for versions of Swift included in Xcode. * Added `swiftenv --help`.
Or rendered as markdown:
- Adds support for versions of Swift included in Xcode.
You can find examples of changelogs in the wild in the following projects:
Parsers & Generators
Interested in programmatically reading or manipulating your changelog?