hashie/RELEASING.md

3.6 KiB

Releasing Hashie

There're no particular rules about when to release Hashie. Release bug fixes frequenty, features not so frequently and breaking API changes rarely.

Release

Run tests, check that all tests succeed locally.

bundle install
bundle exec rake

Check that the last build succeeded in Travis CI for all supported platforms.

Check Next Version

Increment the version, modify lib/hashie/version.rb. Changelog entries should be helpfully categorized to assist in picking the next version number.

  • Increment the third number (minor version) if the release has bug fixes and/or very minor features, only (eg. change 0.5.1 to 0.5.2). These should be in the "Fixed", "Security", or "Miscellaneous" categories in the change log.
  • Increment the second number (patch version) if the release contains major features or breaking API changes (eg. change 0.5.1 to 0.6.0). These should be in the "Added" or "Deprecated" categories in the change log.
  • Increment the first number (major version) if the release has any changed or removed behavior on public APIs (eg. change 0.5.1 to 1.0.0). These should be in the "Changed" or "Removed" categories in the change log.

Modify the Readme

Modify the "Stable Release" section in README.md. Change the text to reflect that this is going to be the documentation for a stable release. Remove references to the previous release of Hashie. Keep the file open, you'll have to undo this change after the release.

## Stable Release

You're reading the documentation for the stable release of Hashie, 3.3.0.

Modify the Changelog

Change "Unreleased" in CHANGELOG.md to the new version.

## [3.3.0] - 2014-08-25

[3.3.0]: https://github.com/hashie/hashie/compare/v<LAST_VERSION>..v<THIS_VERSION>

Replace <LAST_VERSION> and <THIS_VERSION> with the last and new-to-be-released versions to set up the compare view on Github.

Remove any sections that only have "Your contribution here." underneath them.

Commit your changes.

git add README.md CHANGELOG.md lib/hashie/version.rb
git commit -m "Preparing for release, 3.3.0."
git push origin master

Push to RubyGems.org

Release.

$ rake release

hashie 3.3.0 built to pkg/hashie-3.3.0.gem.
Tagged v3.3.0.
Pushed git commits and tags.
Pushed hashie 3.3.0 to rubygems.org.

Prepare for the Next Version

Modify the "Stable Release" section in README.md. Change the text to reflect that this is going to be the next release.

## Stable Release

You're reading the documentation for the next release of Hashie, which should be 3.3.1.
The current stable release is [3.3.0](https://github.com/hashie/hashie/blob/v3.3.0/README.md).

Add new "Unreleased" section to CHANGELOG.md using this template:

## [Unreleased][unreleased]

[unreleased]: https://github.com/hashie/hashie/compare/v<THIS_VERSION>...master

### Added

* Your contribution here.

### Changed

* Your contribution here.

### Deprecated

* Your contribution here.

### Removed

* Your contribution here.

### Fixed

* Your contribution here.

### Security

* Your contribution here.

### Miscellaneous

* Your contribution here.

Replace <THIS_VERSION> with the newly released versions to set up the compare view on Github.

Increment the minor version, modify lib/hashie/version.rb.

Commit your changes.

git add CHANGELOG.md README.md lib/hashie/version.rb
git commit -m "Preparing for next development iteration, 3.3.1."
git push origin master