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 for v1.0.0 release
title: A possibly short title to explain the change
pull_request: Optionally the number of the pull request used as a reference
issue: Optionally the number of the meta issue for multiple pull requests
author: 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.
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
kindflag for grouping: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 changeDirectories
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 intochangelog/v1.1.0, for the filename I would suggest the formatYYYYMMDD-short-title.yml.Scripting
To generate the changelog I would like to write a Go script to
scripts/that generates theCHANGELOG.mdfile 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.