Skip to content
sferik edited this page Feb 9, 2013 · 3 revisions

Shipping a release is easy. There's a rake task: rake release, which will create a new tag, push it to GitHub, build a gem and then push it to RubyGems.org. BUT before you run that task, there are a few things to check:

  • Are there any open issues or pull requests?
  • Are all the intended changes committed and merged into master?
  • Are all the specs passing on your machine?
  • Is the build is passing on all supported Ruby versions?
  • Did you update the CHANGELOG?
  • Did you bump the version number?
  • Is the new version number semantic?
  • If you're releasing a minor version, are you sure you didn't break backwards compatibility?
  • If you're releasing a major version, are you sure breaking backwards compatibility is necessary? Is there any way to achieve the same objectives while maintaining compatibility?
  • If you're releasing a major version, you should ship a release candidate to gather feedback from the community. Release candidates should be in the wild for at least 72 hours before they are blessed for release.

After a release

  • Verify that the tag got created and pushed to GitHub.
  • Verify that the gem was uploaded to RubyGems.org and installs successfully.
  • Tweet from the @gem Twitter account (ask @sferik for the credentials).
  • Post an announcement to the mailing list.
  • Enjoy a cold beverage. If you have followed all these steps, you have shipped a solid release.
Clone this wiki locally