GNU coding standard dogma dictates that:
- there shall be ChangeLog files
- ChangeLogs contain "what changed"
- source code contains "why it changed" or "why it is so" or "why it was"
the idea motivating this is that developers read the source, and hence it is the
source that should contain the detailed coding history; an the ChangeLog just
lets you identify who changed what when.
This all goes back to the days before revision control where often the only way
to know who did what as through the ChangeLog file. With the introduction of
distributed revision control that's less of a problem - change history can be
identified by looking through your local copy of the entire repo.
This of course begs the question, of should we drop ChangeLog files and rely
more on GIT for recording what changed and by whom. The only stickler I know of
is being able to properly record changes submitted by A but committed by B.
Re the changes submitted by A but committed by B; if A uses git-format-patch,
sends the patch for commit to B, and B git-am's that patch, A will be recorded
at that commit.
The ChangeLog file is also included in the release source tar balls.