-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Description
Currently writing the changelog is pretty cumbersome, we should take take the approach of Gitlab to write changelog records in yml format and automatically generate the changelog out of that. Every PR author can write a new yml file into a specific folder so that we can generate the changelog automatically. You can see the records of Gitlab at https://gitlab.com/gitlab-org/gitlab-ce/tree/master/changelogs/unreleased.
Format
I think the format used by Gitlab is already pretty fine, but I would also add a kind flag for grouping:
kind: enhancement # Possible values: breaking, feature, bugfixes, enhancement, misc
title: A short title that explains the change
pull_request: 256
issue: 234
author: tboerger
kind: Group the changelog records by this flag as we currently got forv1.0.0releasetitle: A possibly short title to explain the changepull_request: Optionally the number of the pull request used as a referenceissue: Optionally the number of the meta issue for multiple pull requestsauthor: The name of the author who contributed the change
Directories
For entirely new features I would suggest to put the file into changelog/unreleased, if it's already clear which version will be the target for this change we should put it into changelog/v1.1.0, for the filename I would suggest the format YYYYMMDD-short-title.yml.
Scripting
To generate the changelog I would like to write a Go script to scripts/ that generates the CHANGELOG.md file out of the yml files. We can even integrate this into the CI process and add a commit which includes [skip ci] in the commit message to update this on every merge on master and the release branches.