ggplot2 release process - janeshdev/ggplot2 GitHub Wiki

Notes on the ggplot2 release process

Categorizing issues

New milestones:

  • bug-fix
  • new-feature
  • major
  • blue-sky

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.

Release

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.

Development phase

  • 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.
⚠️ **GitHub.com Fallback** ⚠️