I’ve written a few times now about how I’ve slowly automated versioning for apps, SDKs and devtools. Today I wrote a new Ruby tool to help a bit with the process: changetag, the newest component of my tworingtoolsGem. Let’s see what I’ve been up to, how the process is changing, and what changetag does to help.

Keep a Changelog

One thing I’ve started since the last writing about version numbers is trying to build a habit of keeping an up-to-date changelog. And wouldn’t you know it, there’s a standard for it: keep a changelog.

Put the Ease in Release

changetag extracts the relevant entry from your changelog and writes it into the message of a git tag annotation. This way your release notes are neatly encapsulated with the version number, all in the milestone mechanism provided by source control.

GitHub lists each tag you push under a “Releases” tab, and will include by default any message written into the tag’s annotation. You may also edit the release notes through the web UI or the GitHub API to make nicely formatted markdown notes. This is not yet done in changetag yet but is planned for the future. In the meantime, the notes are still listed there.