emberjs/ember-dev — pull request #86 by rjackson (2013-10-17 15:07:11+00:00)
Title: Include calculated version in all builds.

**tldr;** Keep the next tagged version number with either `+pre` (for stable/beta branch) or `+canary` (for master) in the repo under `/VERSION`. Use `VERSION_STRING_PLACEHOLDER` in the actual repo in place of a version number, and use a filter to add the current value.

------------------

Add VersionCalculator that will compute the correct version number based on the `/VERSION` file contents. If a `+` is present it will append the abbreviated revision for the latest commit to the `/VERSION` file contents, otherwise it will return the contents of the `/VERSION` file unaltered.

The `/VERSION` file will always contain the next release target for each branch. The process for a new release becomes:

* Update the VERSION file to remove the +.
* Run `rake ember:release:prepare`.
* Generates the CHANGELOG based on commits since last tag.
* Bumps the version in `packages/**/package.json` & `ember.json`.
* Manually edit/review the CHANGELOG and confirm.
* Run `rake ember:release:deploy`.
* Commits changes to VERSION, CHANGELOG, and package files.
* Creates a git tag for the current VERSION file contents.
* Push the commit & tag.
* Update the VERSION file to the next scheduled release for that branch.
* Run `rake ember:release:after_deploy_version_bump`
* Updates `/packages/**/package.json` and `ember.json`.
* Commits updated version & package files.
* Pushes new commit.

Examples of version calculation:

```
VERSION Contents | SHA | Resulting Version Value
--------------------+---------+-------------------------
1.1.0-beta.4+pre | dsfaf12 | 1.1.0-beta.4+pre.dsfaf12
1.2.0-beta.1+canary | lkmasdf | 1.2.0-beta.1+canary.lkmasdf
1.1.0 | amnj123 | 1.1.0
1.2.0-beta.1 | iyqwe89 | 1.2.0-beta.1
```