Installs downstream R packages as specified in a dependency_structure object and then runs rcmdcheck (R CMD check) on the downstream dependencies.

check_downstream(
  dep_structure,
  distance = NULL,
  check_args = c("--no-multiarch", "--with-keep.source", "--install-tests"),
  only_tests = FALSE,
  install_external_deps = TRUE,
  upgrade = "never",
  package_list = NULL,
  dry = FALSE,
  verbose = 1,
  ...
)

Arguments

dep_structure

(dependency_structure) output of function dependency_table; uses dep_structure$table to infer the packages to apply action to and infer installation order; uses dep_structure$deps to infer upstream dependencies

distance

(numeric) additional filter to only install downstream packages at most this distance from the dependency_structure$current_pkg (advanced use only)

check_args

(list) arguments passed to rcmdcheck

only_tests

(logical) whether to only run tests (rather than checks)

install_external_deps

logical to describe whether to install external dependencies of package using remotes::install_deps() (or renv::install() if inside an renv environment) .

upgrade

argument passed to remotes::install_deps(), defaults to 'never'. Ignored if inside an renv environment.

package_list

(character) If not NULL, an additional filter, only packages on this list will be considered and their dependencies installed if needed (advanced usage only).

dry

(logical) dry run that outputs what would happen without actually doing it.

verbose

verbosity level, incremental; from 0 (none) to 2 (high)

...

Arguments passed on to install_deps

install_project

(logical) whether to also install the current package (i.e. the package named in dependency_structure$current_pkg), ignored unless install_direction = "upstream" (because downstream deps automatically install all their upstream deps)

install_direction

"upstream", "downstream" or "all"; which packages to install (according to dependency structure). By default this is only "upstream"

Value

data.frame of performed actions

Examples

if (FALSE) {
x <- dependency_table(project = ".", verbose = 1)

check_downstream(x, verbose = 1)
check_downstream(x, verbose = 1, only_test = TRUE, check_args = c("--no-manual"))
}