I've been using Git for a while now, and I recently started using it to tag my releases so that I could more easily keep track of changes and be able to see which version each of our clients are running (unfortunately the code currently mandates that each client have their own copy of the PHP site; I'm changing this, but it's slow-going).
In any case, we're starting to build some momentum, I thought it would be really good to be able to show people what has changed since the last release. Problem is, I haven't been maintaining a changelog because I don't have a good idea of how to go about it. For this particular time, I can run through the log and manually create one, but that will get tiring very quickly.
I tried googling "git changelog" and "git manage changelog" but I didn't find anything that really talked about the workflow of code changes and how that coincides with the changelog. We're currently following Rein Henrichs' development workflow and I would love something that went along with that.
Is there a standard approach that I am missing, or is this an area where everybody does their own thing?
Thanks very much for your comments/answers!
I also made a library for this. It is fully configurable with a Mustache template. That can:
I also made:
More details on Github: https://github.com/tomasbjerre/git-changelog-lib
For GitHub projects it might be useful: github-changelog-generator
It generates changelog from tags closed issues,and merged pull-requests.
This CHANGELOG.md was generated by this script.
Example:
Is what I like to use. It gets all commits since the last tag.
cut
gets rid of the commit hash. If you use ticket numbers at the beginning of your commit messages, they are grouped withsort
. Sorting also helps if you prefix certain commits withfix
,typo
, etc.I let the CI server pipe the following into a file named
CHANGELOG
for a each new release with the date set in the release-filename:Based on bithavoc, it lists the
last tag
untilHEAD
. But I hope to list the logs between 2 tags.List logs between 2 tags.
For example, it will list logs from
v1.0.0
tov1.0.1
.A more to the point CHANGELOG. Tell me if you people like it.