chaplinjs/chaplin — pull request #617 by knuton (2013-06-23 19:01:58+00:00)
Title: Add release automation via Grunt. Closes gh-599.

This adds a task for releasing new versions of Chaplin by running `grunt release`.

The following actions are performed:

1. Check that version numbers appearing in `component.json`, the docs and `CHANGELOG.md` match the one given in `package.json`. If they don't, the task fails. (Ended up not going for automatic bumping of version numbers, since I wasn't sure whether the use of it is high enough to justify the necessary work to get it right. We could still add it, though, if you prefer)
2. Perform some checks relating to the repository, commit and tag
* Checks if current branch is `master` and prompts user about this if it is not
* Lists the dirty files, i.e. those that would be committed and asks the user to confirm
* `git commit -am "Release #{pkg.version}"`
* `git tag -a #{pkg.version}`
3. Build and minify
4. Publish current docs from source
5. Publish downloads to [chaplinjs/downloads](https://github.com/chaplinjs/downloads)

Both 4., and 5. happen via [knuton/grunt-transbrute](https://github.com/knuton/grunt-transbrute), which I extracted from the task I wrote for this initially.

The only thing that I didn't do is add auto-generation of the tweet text, since with the current setup the script doesn't have access to the prior version number.