You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Early feedback from one pharmaverse package we we need to separate out the packages from what are really the core CICD needed to have a robust release, and what are nice to haves.
Aim in this issue is to define our initial list (updating here in the desc:
Minimum
Generate and deploy documentation to a location outside main branch when main updated (to prevent repo bloat from artifacts)
Ensure man pages are always upto date on main and devel
Check links on PR to main, to ensure docs have working links each time a release is made
Check unit tests using container with CRAN + leading edge of r-universe pharmaverse page
Report code coverage of main and display as badge in repo
Suggested
Ability to fail PR to main if code coverage below certain value
lint R code to help with consistency | run styler
Check unit tests using container with CRAN + specific cohort of related R packages
Generate an example validation report against rocker + pharmaverse when a tag/release is made
Copying a matrix of external tools that we might consider from #12
Minimum
behavior
tool/action
R CMD check
usethis::use_github_action_check_standard()
Webpage
usethis::use_github_action("pkgdown")
Testing & Coverage
usethis::use_github_action("test-coverage")
Linting
usethis::use_github_action("lint")
README + Documentation
usethis::use_github_action("document")
Formatting
usethis::use_github_action("style")
Spellcheck
usethis::use_spell_check() to add spellcheck test
Suggested
behavior
tool/action (*additional)
R CMD check
usethis::use_github_action_check_full()*
Webpage
usethis::use_github_action("pkgdown")
Testing & Coverage
usethis::use_github_action("test-coverage")
Linting
usethis::use_github_action("lint")
README + Documentation
usethis::use_github_action("document")
Formatting
usethis::use_github_action("style")
Spellcheck
usethis::use_spell_check() to add spellcheck test
Other Considerations
Check unit tests using container with CRAN + specific cohort of related R packages
I think that the NEST/pharmaverse usually handles this with staged.dependencies, but I think most use cases can probably get by with just Remotes and pak::local_install_dev_deps().
I think the only change is that staged.dependencies also runs a restricted set of reverse dependency tests.
Ability to fail PR to main if code coverage below certain value
This might be a reasonable feature request to r-lib/actions? Having a configurable cutoff should be a pretty trivial addition to the coverage action they have already.
I would probably look to emit a warning annotation instead of outright failing. Coverage can be a long-lived endeavor that you might not want everyone to have to resolve as soon as they kick off a project.
Activity
dgkf-roche commentedon Nov 10, 2023
Copying a matrix of external tools that we might consider from #12
Minimum
R CMD checkusethis::use_github_action_check_standard()usethis::use_github_action("pkgdown")usethis::use_github_action("test-coverage")usethis::use_github_action("lint")usethis::use_github_action("document")usethis::use_github_action("style")usethis::use_spell_check()to add spellcheck testSuggested
R CMD checkusethis::use_github_action_check_full()*usethis::use_github_action("pkgdown")usethis::use_github_action("test-coverage")usethis::use_github_action("lint")usethis::use_github_action("document")usethis::use_github_action("style")usethis::use_spell_check()to add spellcheck testOther Considerations
I think that the NEST/pharmaverse usually handles this with
staged.dependencies, but I think most use cases can probably get by with justRemotesandpak::local_install_dev_deps().I think the only change is that
staged.dependenciesalso runs a restricted set of reverse dependency tests.This might be a reasonable feature request to
r-lib/actions? Having a configurable cutoff should be a pretty trivial addition to the coverage action they have already.I would probably look to emit a warning annotation instead of outright failing. Coverage can be a long-lived endeavor that you might not want everyone to have to resolve as soon as they kick off a project.
cicdguy commentedon Nov 10, 2023
Agreed to all of the above. We can start with the basics and provide recommended best practices in this form.