text: # How to Create a New Release
  
  ## Prerequisites
  
  Install [releasetool](https://github.com/googleapis/releasetool).
  
  ## Create a release
  
  1. `cd` into the root directory, e.g., `~/go/src/cloud.google.com/go`
  1. Checkout the master branch and ensure a clean and up-to-date state.
      ```
      git checkout master
      git pull --tags origin master
      ```
  1. Run releasetool to generate a changelog from the last version. Note,
     releasetool will prompt if the new version is a major, minor, or patch
     version.
      ```
      releasetool start --language go
      ```
  1. Format the output to match CHANGES.md.
  1. Submit a CL with the changes in CHANGES.md. The commit message should look
     like this (where `v0.31.0` is instead the correct version number):
      ```
      all: Release v0.31.0
      ```
  1. Wait for approval from all reviewers and then submit the CL.
  1. Return to the master branch and pull the release commit.
      ```
      git checkout master
      git pull origin master
      ```
  1. Tag the current commit with the new version (e.g., `v0.31.0`)
      ```
      releasetool tag --language go
      ```
  1. Publish the tag to GoogleSource (i.e., origin):
      ```
      git push origin $NEW_VERSION
      ```
  1. Visit the [releases page][releases] on GitHub and click the "Draft a new
     release" button. For tag version, enter the tag published in the previous
     step. For the release title, use the version (e.g., `v0.31.0`). For the
     description, copy the changes added to CHANGES.md.
  
  
  [releases]: https://github.com/googleapis/google-cloud-go/releases
  