devtools (version 1.3)

check: Build and check a package, cleaning up automatically on success.


check automatically builds and checks a source package, using all know best practices. Passing R CMD check is essential if you want to submit your package to CRAN: you must not have an ERRORs or WARNINGs, and you want to ensure that there are as few NOTEs as possible. If you are not submitting to CRAN, at least ensure that there are no ERRORs: these typically represent serious problems.


check(pkg = ".", document = TRUE,
    doc_clean = getOption("devtools.cleandoc"),
    cleanup = TRUE, cran = TRUE, check_version = FALSE,
    force_suggests = TRUE, args = NULL, build_args = NULL,
    quiet = FALSE)


package description, can be path or package name. See as.package for more information
if TRUE (the default), will update and check documentation before running formal check.
if TRUE the check directory is removed if the check is successful - this allows you to inspect the results to figure out what went wrong. If FALSE the check directory is never removed.
if TRUE (the default), check using the same settings as CRAN uses.
If TRUE, will delete all files in the man directory and regenerate them from scratch with roxygen. The default is to use the value of the "devtools.cleandoc" option.
if TRUE, check that the new version is greater than the current version on CRAN, by setting the _R_CHECK_CRAN_INCOMING_ environment variable to TRUE.
if FALSE, don't force suggested packages, by setting the _R_CHECK_FORCE_SUGGESTS_ environment variable to FALSE.
An optional character vector of additional command
if TRUE suppresses output from this function.

Environment variables

Devtools does it's best to set up an environment that combines best practices with how check works on CRAN. This includes:

  • The standard environment variables set by devtools:r_env_vars. Of particular note for package tests is theNOT_CRANenv var which lets you know that your tests are not running on cran, and hence can take a reasonable amount of time.
  • Debugging flags for the compiler, set bycompiler_flags(FALSE).
  • Special environment variables set to the same values that CRAN uses when testing packages:cran_env_vars. Unforutnately exactly what CRAN does when checking a package is not publicly documented, but we do our best to simulate as accurately as possible given what we know.

Devtools checks

Devtools currently provides a few extra checks that R CMD check does not - these are typically things that the CRAN maintainers will complain about if you haven't done, but haven't yet included in the formal testing process. These are run after R CMD check

There is currently one test that checks you haven't includes any non-standard directories in the top-level R file.


check automatically builds a package before using R CMD check as this is the recommended way to check packages. Note that this process runs in an independent realisation of R, so nothing in your current workspace will affect the process.

See Also

release if you want to send the checked package to CRAN.