# Releasing a new version of ggplot2

## Release candidate phase

After issues resolved for a given release:

1. Pass R CMD check.

2. In DESCRIPTION and NEWS, remove the .99 version suffix and increment the version number. For example, 0.9.2.99 becomes 0.9.3.

3. Do the same for any packages that ggplot2 depends on, such as scales and gtable.

4. Update ggplot2's Import dependency versions to use the final release numbers of scales and gtable.

5. Commit these changes to a branch with `ggplot2-<version>-rc`, and push the branch.

6. Check packages that depend on ggplot2 with `devtools::revdep_check()` and run visual tests.

7. Email ggplot2, ggplot2-dev, and bcc the maintainers of packages that depend on ggplot2 (`revdep_maintainers("ggplot2")`).

       Hi all,

       We're very please to announce a release candidate for ggplot2 1.0.0! This
       release celebrates the ggplot2 community: all improvements have been
       contributed via pull requests.

       We've made every effort to make sure that your existing ggplot2 graphics
       continue to work. ggplot2 1.0.0 has passed R CMD check, all our existing
       visual tests, and R CMD check on all dependencies. But it's still possible
       that some bugs may have crept in, so we'd really appreciate it if you'd
       try it out. It's easy to install the development version: first install
       devtools, then run `devtools::install_github("hadley/ggplot2@ggplot2-1.0.0-rc")`.

       We plan to submit ggplot2 to cran in two weeks, May 9. Please let us know if
       you have any problems - your feedback is much appreciated. (If you're pretty
       sure you've discovered a new bug, please start a new thread or file
       an issue on github, otherwise it's a bit hard to track what's going on).

       Hadley & Winston

8. Notify cran:

       Dear CRAN maintainers,

       ggplot2 1.0.0 has entered the release candidate phase and will be
       submitted to CRAN in two weeks.

       Included below is the email that I sent to the ggplot2 mailing and all
       maintainers of packages that depend on ggplot2.

       Regards,

       Hadley

If problems arise during the RC period, make fixes on the branch. Those fixes later get merged back into master.

## Release

When the package is accepted on CRAN:

1. Create a new release at https://github.com/hadley/ggplot2/releases. The tag name should be of the form `v1.0.0`.

2. If any Check out the new branch, or merge it into master. (Need to get off the rc branch so it can be deleted):

       VERSION=1.0.0
       git checkout v$VERSION
       # Or
       git checkout master
       git merge v$VERSION

3. Delete the `-rc` branch, with:

       git branch -d v$VERSION-rc
       git push origin :v$VERSION-rc

4. Once you push the tag github, travis will automatically build the website.