In the best practices for co-maintaining projects, I once added the rule to manually maintain a CHANGELOG.txt.
The original, underlying reasons for maintaining a CHANGELOG.txt were more user-oriented than developer-oriented.
There are a multitude of use-cases for CHANGELOG.txt, the most obvious being:
- I can't issue new releases for x modules every other week, so users sometimes need to use dev snapshots. The project page links to the changelog, so minimally technical versed users are able to look up whether a particular bug has been fixed in the dev already.
- Everyone is able to see the changes since the last release when updating a module to a new version (without having any VCS involved at all; i.e., replacing tarball with tarball)
However, CHANGELOG.txt changes can easily lead to conflicts when cherry-picking changes. In an ideal world, d.o would provide the right online tools for users, and (any kind of) packaged releases would contain an auto-generated CHANGELOG.txt, so the entire need for manually maintaining a log of changes would be gone.
Regarding 1), #1163076: Add relative changelog since last official release to development snapshots on d.o might be a solution. @davereid also mentioned the option of linking to short logs as an intermediate solution.
Regarding 2), it should be relatively easy to auto-generate a CHANGELOG.txt each time a release is packaged. Obviously, not overwriting an existing CHANGELOG.txt, but that's an implementation detail already...
Comments
Comment #1
arlinsandbulte commented+1!
Comment #2
danepowell commentedDefinitely +1. Resolving the CHANGELOG.txt conflict with every single cherry-pick is getting really annoying...