Although not very tricky, it is quite easy to deploy something that doesn't quite work as expected. The following steps navigate a through some of the release gotchas and will hopefully result in a successful release.
- let other contributors know that you are preparing a release and to hold off on merging PRs or pushing new code
- ensure you using the latest stable node and iojs (but not v0.13.x for now) as it has a broken zlib which causes it to publish corrupted modules)
- run
./bin/changelogand add output toCHANGELOG.md - edit changelog output to be as user-friendly as possible (drop [INTERNAL] changes etc.)
- bump
package.jsonversion ./bin/prepare-releasecd to/someplace/to/test/- ensure
ember versionis the newly packaged version - ensure new project generation works
ember new my-cool-test-projectthis will fail with:version not found: ember-cli@version - fixup deps:
cd my-cool-test-project - link your local ember-cli
npm link ember-cli - install other deps:
npm i && bower i - test the server:
ember s - test other things like generators and live-reload
- generate a http mock
ember g http-mock my-http-mock - test upgrades of other apps
If everything went well, release:
Please note, we have must have an extremely low tolerance for quirks and failures we do not want our users to endure any extra pain.
- go back to ember-cli directory
git addthe modifiedpackage.jsonandCHANGELOG.md- Commit the changes
git commit -m "Release vx.y.z"and pushgit push git tag "vx.y.z"git push --tags- publish to npm
npm publish ./ember-cli-<version>.tgz
Test published version
npm uninstall -g ember-cli
npm cache clearnpm install -g ember-cli- ensure version is as expected
ember version - ensure new project generates
- ensure old project upgrades nicely
Tag the release
- Under
Releaseson GitHub chooseDraft New Release
- enter the new version number as the tag prefixed with
ve.g. (v0.1.12) - for release title choose a great name, no pressure
- in the description paste the upgrade instructions from the previous release, followed by the new CHANGELOG entry
- publish the release
Update the site
- check out gh-pages
- update
_config.ymlversion - update
gh-pages/_posts/2012-01-01-changelog.md