The needs for this question is to
- have a changelog for managers/customers that:
- does include "Let users have additional addresses"
- does not include "Fixed the bug where addresses were overwritten due to X"
- avoid having to look through complete log history to find the most important commits (most often backwards incompatible) for each build
- make it as easy to read as the typical game changelog ("Fixed balance issues: X" and "Graphics driver Y rendered the game slowly")
Today, we're using flags in commit messages such as
Add|Ref|Rem|Fix: <msg>
for the usual commit.
As such, my first stab at this would be to add another tier to those flags, for example
CL-Add: feature X
(CL = changelog) and then parse all commit messages for ^CL-(Add|Ref|Rem|Fix)
to add to the changelog.
But then, how would you approach the possibility of having commit messages written just for changelogs (i.e. too high level); or multiple messages concerning the same changelog issue. Perhaps the changelog messages should rather be extracted when feature-branches are merged? Are there features of SCM:s (for example git) that handles this issue for you?
Simply put: is there an industry standard strategy, or tool, for extracting useful commit messages into changelogs with ease?