Release Process for Workbench Packages

Background

The workbench contains three main packages:

Each of these packages are available on the Carpentries R-Universe and new versions are checked for hourly. This allows folks to get up-to-date versions of The Workbench packages built for their system without running out of GitHub API query attempts.

In order to maintain quality, packages are only sent to the R-Universe if they have been formally released on GitHub (as specified in the packages.json configuration file). This allows us to incrementally add new experimental features without changing the stable deployments.

Release Process

When a package is ready for release we use the following checklist:

  • Update version number in DESCRIPTION

  • Add NEWS for the changes in this version

  • Ensure all changes are committed and pushed

  • add new signed tag with the name “ X.Y.Z”

    # example: create a signed (-s) tag for sandpaper 3.3.3
    git tag -s 3.3.3 -m 'sandpaper 3.3.3'
  • create a release on github from the new tag

Note

Zhian likes to create tags via the command line because he has set up his git configuration to use a gpg signature so the tags and the releases are both verified.

The last two items can be achieved in a single step with the github cli with the command gh release create X.Y.Z for the version number

gh release create 3.3.3
# ? Title (optional) sandpaper 3.3.3
# ? Release notes  [Use arrows to move, type to filter]
#   Write my own
# > Write using generated notes as template
#   Leave blank

Selecting “Write using generated notes as a template” opens an editor and populates it with the pull requests that have been accepted since the last release.

Once the relase is created on GitHub, then the package will be available on the R-Universe in about an hour or less.