ggplot2 release process
Clone this wiki locally
Notes on the ggplot2 release process
Issues with no milestone = inbox
When an issue arrives, categorise into:
- one of the milestones above
- the current release milestone (if small/simple)
- not a real issue, and close.
- needs minimal reproducible example
Generally, try and stick with a "tick-tock" strategy, where we alternative between releases that focus on bigger features and releases that focus on bug fixing.
Releasing a new version
Release candidate phase
After issues resolved for a given release:
- Pass R CMD check.
- In DESCRIPTION and NEWS, remove the .99 version suffix and increment the version number. For example, 0.9.2.99 becomes 0.9.3.
- Do the same for any packages that ggplot2 depends on, such as scales and gtable.
- Update ggplot2's Import dependency versions to use the final release numbers of scales and gtable.
- Commit these changes to a branch with
ggplot2-<version>-rc, and push the branch.
- Email ggplot2, ggplot2-dev, and the maintainers of packages that depend on ggplot2.
- Check packages that depend on ggplot2.
If problems arise during the RC period, make fixes on the branch. Those fixes later get merged back into master.
When the package is accepted on CRAN:
- Tag the last commit on the rc branch with
ggplot2-<version>and push the tag:
git tag -a ggplot-<version> -m"Release <version> of ggplot2" git push origin --tags
- Check out the new branch, or merge it into master. (Need to get off the rc branch so it can be deleted):
git checkout ggplot2-<version> # Or git checkout master git merge ggplot2-<version>
- delete the -rc branch, with:
git branch -d ggplot2-<version>-rc git push origin :ggplot-<version>-rc
- Generate the staticdocs documentation:
# Starting in the parent of the ggplot2 directory: library(staticdocs) build_package('ggplot2', base_path='./0.9.3/')
- Upload the generated documents to docs.ggplot2.org/. Then copy over the contents to docs.ggplot2.org/current/.
- Email the ggplot2 and ggplot2-dev mailing lists with a release announcement.
- Increase the version number with a .99 suffix, to indicate that it is a development version. For example, 0.9.2.99 gets two branches when the RC branch is created: The 0.9.3-rc branch for the release candidate, and the 0.9.3.99 branch for the development branch.