RELEASING.md
# Releasing `mongoid-compatibility`
## Guidelines
Generally, `mongoid-compatibility` should be released with enthusiasm but care. Release bug fixes as added, features as desired, and breaking API changes as absolutely necessary.
## This is how we do it.
1. Run the test suite in your local environment first, and ensure that everything's passing.
```bash
bundle install
rake
```
2. Run the test suite on [Travis](https://travis-ci.org) to be certain that your changes work in a variety of environments. Only merge and release when all tests are passing.
3. Bump the version in [`lib/mongoid/compatibility/self.rb`](lib/mongoid/compatibility/self.rb).
* If the release fixes bugs or adds features with negligible impact, increment the third number (e.g., `0.3.2` → `0.3.3`).
* If the release adds significant new features, increment the second number and zero out the third (e.g., `0.3.2` → `0.4.0`).
* If the release adds breaking API changes, increment the first number and zero out the second and third (e.g., `0.3.2` → `1.0.0`).
You've gotta know it---it's semantic!
4. Add a header for the new version to [`CHANGELOG.md`](CHANGELOG.md) and list all the changes your release will include underneath it, crediting contributors as appropriate.
6. Update the [`README`](README.md) to document any new features. Remove any warnings indicating that users are reading the documentation for an unreleased version.
7. Commit your changes...
```bash
git add README.md CHANGELOG.md lib/mongoid/compatibility/self.rb
git commit -m "Preparing for release, 0.4.0."
git push origin master
```
8. ...and do the thing!
```bash
rake release
#=> mongoid-compatibility 0.4.0 built to pkg/mongoid-compatibility-0.4.0.gem
#=> Tagged 0.4.0.
#=> Pushed git commits and tags.
#=> Pushed mongoid-compatibility 0.4.0 to rubygems.org.
```