This document contains guidelines specific to Rhino. Appsilon’s general contributing guidelines still apply.
R CMD checkdevtools::check() or rcmdcheck::rcmdcheck()
Run linterdevtools::lint() or lintr::lint_package()
Run unit testsdevtools::test()or testthat::test_local()
Check spellingdevtools::spell_check() or spelling::spell_check_package()
Build documentationdevtools::build_site() or pkgdown::build_site()
Build packagedevtools::build() or pkgbuild::build()
Rhino comes with a CI setup out of the box. On rhino::init() it creates a rhino-test.yml file, a GitHub Actions workflow which automatically runs all linters and tests once the project is pushed to GitHub.
To test rhino-test.yml itself, we have the app-push-test.yml workflow. It initializes a fresh Rhino application and pushes it to the bot/app-push-test branch. Then rhino-test.yml of this application runs and its results can be viewed in the list of workflow runs.
The App Push Test is triggered automatically on pushes to main and can also be triggered manually for any branch via the Actions tab.
The workflow requires a fine-grained personal access token with write access to code and workflows. It should be saved as the APP_PUSH_TEST_PAT repository secret.
The documentation site is built and deployed automatically by our pkgdown.yml workflow. It is triggered on each push to the main branch. It runs the pkgdown/build.R script which builds the documentation for all Rhino versions listed in pkgdown/versions.yml.
#proj-rhino (approximate date and scope).main branch should be green).main branch.release-X.Y.Z branch from main.DESCRIPTION.
.9001).NEWS.md for hints on what to include in the guide.NEWS.md.
(development version) with X.Y.Z in the header. Do not add a link to GitHub releases yet - the link won’t work and will fail CRAN checks.main branch and ensure it is up to date.devtools::build().R CMD check --as-cran rhino_X.Y.Z.tar.gz. There should be no errors, warnings nor notes.vX.Y.Z-rc.1 tag on the main branch (rc stands for release candidate).rhino_X.Y.Z.tar.gz from step 1.opensource@appsilon.com.rc.2, rc.3 and so on for subsequent submissions.vX.Y.Z tag on the main branch.NEWS.md.pkgdown/versions.yml..9000 in DESCRIPTION.NEWS.md:
# rhino (development version) header.# rhino X.Y.Z header to the GitHub release.NEWS.md.#proj-rhino.main branch, which must be always kept in a “potentially shippable” state.1.0.0, all versions should be released to CRAN.