These instructions apply to every gem within the google-cloud-ruby project. Each gem should be released separately.
The google-cloud-ruby project uses semantic versioning. Replace the <prev_version>
and <version>
placeholders shown in the examples below with the appropriate numbers, e.g. 0.1.0
and 0.2.0
. Replace the <gem>
placeholder with the appropriate full name of the package, e.g. google-cloud-datastore
.
After all pull requests for a release have been merged and all Travis CI builds and Appveyor CI builds are green, you may create a release as follows:
- Build the gem locally.
$ rake build
- Install the gem locally.
$ rake install
-
Using IRB (not
rake console
!), manually test the gem that you installed in the previous step. -
Open the GitHub compare view in your browser.
open https://github.com/GoogleCloudPlatform/google-cloud-ruby/compare/v<prev_version>...master
-
Review the commits in the GitHub compare view, making notes of significant changes. (For examples of what a significant change is, browse the changes in the gem's
CHANGELOG.md
-
If you haven't already, switch to the master branch, ensure that you have no changes, and pull from origin.
$ git checkout master
$ git status
$ git pull --rebase
-
Edit the gem's
CHANGELOG.md
. Using your notes from the previous step, write bullet-point lists of the major and minor changes. You can also add examples, fixes, thank yous, and anything else helpful or relevant. See google-cloud-node v0.18.0 for an example with all the bells and whistles. -
Edit the gem's
version.rb
, changing the value ofVERSION
to your new version number. -
Commit your changes. Copy and paste the significant points from your
CHANGELOG.md
edit as the description in your commit message.
$ git commit -am "Release <gem> <version> ..."
- Ensure again that you have every commit from
origin master
.
$ git pull --rebase
- Tag the version.
$ git tag -m '<gem>/v<version>' <gem>/v<version>
- Push your commit.
$ git push
- Push your tag.
$ git push --tags
-
On the google-cloud-ruby releases page, click Draft a new release. Complete the form. Include the bullet-point lists of the major and minor changes from the gem's
CHANGELOG.md
. You can also add examples, fixes, thank yous, and anything else helpful or relevant. See google-cloud-node v0.18.0 for an example with all the bells and whistles. -
Click
Publish release
. -
Check that the Travis CI build has passed for the version commit.
-
Confirm that the gem for the new version is available on RubyGems.org.
-
Confirm that the new version is displayed after "Latest release" on the google-cloud-ruby gh-pages site.
-
Confirm that the new version is displayed in the packages pulldown and the version switcher on the google-cloud-ruby docs site. Verify that the new docs version contains the public API changes in the release.
High fives all around!