Contributing guidelines
Source:.github/CONTRIBUTING.md
This document contains guidelines specific to Rhino. Appsilon’s general contributing guidelines still apply.
Development tools
R CMD check
devtools::check()
orrcmdcheck::rcmdcheck()
Run linter
devtools::lint()
orlintr::lint_package()
Run unit tests
devtools::test()
ortestthat::test_local()
Check spelling
devtools::spell_check()
orspelling::spell_check_package()
Build documentation
devtools::build_site()
orpkgdown::build_site()
Build package
devtools::build()
orpkgbuild::build()
Release process
Preparation
- Announce the planned release on
#proj-rhino
(approximate date and scope). - Bump the package version in
DESCRIPTION
according to SemVer. Drop the development version (last component, e.g..9001
). - Update
NEWS.md
.- Replace the
(development version)
withX.Y.Z
in the header. Do add a link to GitHub releases yet - the link won’t work and will fail CRAN checks. - Edit the list of changes to make it useful and understandable for our users. See keep a changelog for some guidelines.
- Replace the
- Submit the changes in a pull request titled “Release X.Y.Z”. Get it approved and merged.
Submitting to CRAN
- Build and test the package.
- Checkout the
main
branch and ensure it is up to date. - Build the package with
devtools::build()
. - Test the package with
R CMD check --as-cran rhino_X.Y.Z.tar.gz
. There should be no errors, warnings nor notes.
- Checkout the
-
Publish a new pre-release on GitHub.
- Create a new
vX.Y.Z-rc.1
tag on themain
branch (rc
stands for release candidate). - Use the tag name for title.
- Leave description blank.
- Create a new
-
Submit the package to CRAN.
- Use your own name and email.
- Click the confirmation link sent to
opensource@appsilon.com
.
- If CRAN reviewers ask for changes, implement them and return to step 1. Use
rc.2
,rc.3
and so on for subsequent submissions.
Once accepted to CRAN
-
Publish a new release on GitHub.
- Create a new
vX.Y.Z
tag on themain
branch. - Use the tag name for title.
- Fill in the description from
NEWS.md
.
- Create a new
- Prepare the package for further development.
- Add a development version
.9000
inDESCRIPTION
. - Add a
# rhino (development version)
header inNEWS.md
. - Link the
# rhino X.Y.Z
header to the GitHub release inNEWS.md
.
- Add a development version
- Create a task to upgrade Rhino Showcase.
- Announce the release on
#proj-rhino
. - Plan promotion (social media, blog post, …).
Development process
- All changes are introduced in pull requests to the
main
branch, which must be always kept in a “potentially shippable” state. - Pull requests must be peer-reviewed. The reviewer inspects the code, tests the changes and checks them against the DoD before approving.
- We follow the Semantic Versioning scheme. Starting with
1.0.0
, all versions should be released to CRAN.