R in Pharma 2022 CI/CD workshop repository.
Date: November 4, 2022
Fix issues identified by R CMD check workflow.
Click here for a hint 🔎
A unit test is failing forhello.R
.
Click here for the solution ✅
The expected message should beWelcome to the R/Pharma CI/CD workshop!
(R/Pharma
is missing from the message) in the tests/testthat/test-hello.R
file.
Fix broken links after implementing the Check URLs workflow.
Click here for a hint 🔎
An R/Pharma link is broken in theNEWS.md
file.
Click here for the solution ✅
The rinpharma website domain is incorrectly set as.xcom
. It should be .com
.
Find and fix all spelling errors determined by the Spellcheck workflow.
Click here for a hint 🔎
One or more words are misspelled in theNEWS.md
file.
Click here for the solution ✅
The wordlink
is misspelled as linke
in NEWS.md
.
The word strangephrase
should be strange phrase
in NEWS.md
.
Fix the spelling first in the NEWS.md
file.
Next, simply run spelling::update_wordlist(confirm="Yes")
to add technical jargon to the wordlist.
Fix code style errors implementing the Style workflow.
Click here for a hint 🔎
There's a minor style issue in theR/hello.R
file.
Click here for the solution ✅
Simply runstyler::style_file("R/hello.R")
to automatically style the file.
Reduce the cyclomatic complexity identified by the Lint Code Base workflow.
Click here for a hint 🔎
The issue is manifested in theR/hello.R
file.
Click here for the solution ✅
Reduce the number of if statements to reduce the cyclomatic complexity in theR/hello.R
file for the linter_ex()
function.
Run styler::style_file("R/hello.R")
to fix style issues, if any.
Then, run lintr::lint_package()
iteratively to determine whether the issue has been resolved.
Update man pages based on the errors reported by the roxygen workflow.
Click here for a hint 🔎
Function documentation is not up-to-date forR/cicdworkshop-package.R
and the linter_ex()
function.
Click here for the solution ✅
Simply runroxygen2::roxygenize('.', roclets = c('rd', 'collate', 'namespace'))
or devtools::document()
to automatically update all man pages.
Increase code coverage for the package.
Click here for a hint 🔎
Add a simple unit test for thelinter_ex()
function defined in the R/hello.R
file.
Click here for the solution ✅
Runcovr::package_coverage()
to note the current code coverage.
In the tests/testthat/test-hello.R
file, add the following test:
test_that("linter_ex is surprised", { expect_message( linter_ex("lint"), "^Whoa!\\n" ) })
Run tests locally by executing devtools::test()
to make sure that the tests succeed.
Then, run covr::package_coverage()
to see that the code coverage has increased.
Publish a website for your package using GitHub Pages.
Click here for a hint 🔎
Update the_pkgdown.yml
and add the pkgdown workflow.
Click here for the solution ✅
Update theurl
by replacing pharmaverse
with your GitHub username and repository name.