README.md

Run R CMD check from R and Capture Results

rcmdcheck

Run R CMD check from R and Capture Results

lifecycle R build
status CRAN RStudio mirror
downloads Coverage
Status

Run R CMD check form R programatically, and capture the results of the individual checks.

Installation

install.packages("rcmdcheck")

Usage

library(rcmdcheck)
rcmdcheck("path/to/R/package")

Call rcmdcheck() on a source R package .tar.gz file, or on a folder containing your R package. Supply quiet = FALSE if you want to omit the output. The result of the check is returned, in a list with elements errors, warnings, and notes. Each element is a character vector, and one element of the character vectors is a single failure.

Programmatic usage

rcmdcheck() returns an rcmdcheck object, which you can query and manipulate.

library(rcmdcheck)
chk <- rcmdcheck("tests/testthat/bad1", quiet = TRUE)
chk
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────── badpackage 1.0.0 ────
#> Duration: 12.4s
#> 
#> ❯ checking DESCRIPTION meta-information ... WARNING
#>   Non-standard license specification:
#>     Public domain
#>   Standardizable: FALSE
#> 
#> 0 errors ✔ | 1 warning ✖ | 0 notes ✔

check_details() turns the check results into a simple lists with the following information currently:

names(check_details(chk))
#>  [1] "package"      "version"      "notes"        "warnings"     "errors"      
#>  [6] "platform"     "checkdir"     "install_out"  "description"  "session_info"
#> [11] "cran"         "bioc"

Note that if the check results were parsed from a file, some of these fields might be missing (NULL), as we don’t have access to the original DESCRIPTION, the installation output, etc.

Parsing check output

parse_check() parses check output from a file, parse_check_url() parses check output from a URL.

CRAN checks

rcmdcheck has a functions to access CRAN’s package check results.

cran_check_flavours() downloads the names of the CRAN platforms:

cran_check_flavours()
#>  [1] "r-devel-linux-x86_64-debian-clang" "r-devel-linux-x86_64-debian-gcc"  
#>  [3] "r-devel-linux-x86_64-fedora-clang" "r-devel-linux-x86_64-fedora-gcc"  
#>  [5] "r-devel-windows-x86_64"            "r-patched-linux-x86_64"           
#>  [7] "r-patched-solaris-x86"             "r-release-linux-x86_64"           
#>  [9] "r-release-macos-arm64"             "r-release-macos-x86_64"           
#> [11] "r-release-windows-ix86+x86_64"     "r-oldrel-macos-x86_64"            
#> [13] "r-oldrel-windows-ix86+x86_64"

cran_check_results() loads and parses all check results for a package.

cran_check_results("igraph")
#> $`r-devel-linux-x86_64-debian-clang`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking top-level files ... WARNING
#>     Output from running autoreconf:
#>     configure.ac:71: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:71: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:71: the top level
#>     configure.ac:110: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:110: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:110: the top level
#>     configure.ac:127: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:127: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:127: the top level
#> 
#> 0 errors ✔ | 1 warning ✖ | 0 notes ✔
#> 
#> $`r-devel-linux-x86_64-debian-gcc`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking top-level files ... WARNING
#>     Output from running autoreconf:
#>     configure.ac:71: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:71: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:71: the top level
#>     configure.ac:110: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:110: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:110: the top level
#>     configure.ac:127: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:127: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:127: the top level
#> 
#> 0 errors ✔ | 1 warning ✖ | 0 notes ✔
#> 
#> $`r-devel-linux-x86_64-fedora-clang`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is 16.9Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.1Mb
#>       libs  14.0Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-devel-linux-x86_64-fedora-gcc`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> 0 errors ✔ | 0 warnings ✔ | 0 notes ✔
#> 
#> $`r-devel-windows-x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is  9.8Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.1Mb
#>       libs   6.9Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-devel-windows-x86_64-gcc10-UCRT`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking whether package 'igraph' can be installed ... ERROR
#>   See below...
#> 
#> ❯ checking package dependencies ... NOTE
#>   Package suggested but not available for checking: 'rgl'
#> 
#> ── Install failure ───────────────────────────────────────────────────────────────────────────────────────────────────────
#> 
#> <00install.out file does not exist>
#> 1 error ✖ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-patched-linux-x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking top-level files ... WARNING
#>     Output from running autoreconf:
#>     configure.ac:71: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:71: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:71: the top level
#>     configure.ac:110: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:110: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:110: the top level
#>     configure.ac:127: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:127: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:127: the top level
#> 
#> 0 errors ✔ | 1 warning ✖ | 0 notes ✔
#> 
#> $`r-patched-solaris-x86`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is  9.6Mb
#>     sub-directories of 1Mb or more:
#>       R      1.5Mb
#>       help   1.2Mb
#>       libs   6.5Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-release-linux-x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking top-level files ... WARNING
#>     Output from running autoreconf:
#>     configure.ac:71: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:71: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:71: the top level
#>     configure.ac:110: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:110: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:110: the top level
#>     configure.ac:127: warning: The macro `AC_HELP_STRING' is obsolete.
#>     configure.ac:127: You should run autoupdate.
#>     ./lib/autoconf/general.m4:204: AC_HELP_STRING is expanded from...
#>     configure.ac:127: the top level
#> 
#> 0 errors ✔ | 1 warning ✖ | 0 notes ✔
#> 
#> $`r-release-macos-arm64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is 23.7Mb
#>     sub-directories of 1Mb or more:
#>       R      2.0Mb
#>       help   1.1Mb
#>       libs  20.0Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-release-macos-x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is 21.2Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.1Mb
#>       libs  18.3Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-release-windows-ix86+x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is 17.1Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.1Mb
#>       libs  14.2Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-oldrel-macos-x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is 21.2Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.1Mb
#>       libs  18.3Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> $`r-oldrel-windows-ix86+x86_64`
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────────────── igraph 1.2.6 ────
#> Duration: 0ms
#> 
#> ❯ checking installed package size ... NOTE
#>     installed size is 17.1Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.1Mb
#>       libs  14.2Mb
#> 
#> 0 errors ✔ | 0 warnings ✔ | 1 note ✖
#> 
#> attr(,"package")
#> [1] "igraph"
#> attr(,"class")
#> [1] "rmcdcheck_cran_results"

Comparing checks

compare_checks() can compare two or more rcmdcheck objects. compare_to_cran() compares an rcmdcheck object to the CRAN checks of the same package:

chk <- rcmdcheck(quiet = TRUE)
compare_to_cran(chk)
#> ── R CMD check comparison ────────────────────────────────────────────────────────────── rcmdcheck 1.3.3 / 1.3.3.9000 ────
#> Status: OK
#> 
#> ── Fixed
#> 
#> ✔ checking LazyData ... NOTE
#> ✔ checking LazyData ... NOTE
#> ✔ checking LazyData ... NOTE
#> ✔ checking LazyData ... NOTE
#> ✔ checking LazyData ... NOTE
#> ✔ checking LazyData ... NOTE

Background processes

rcmdcheck_process is a processx::process class, that can run R CMD check in the background. You can also use this to run multiple checks concurrently. processx::process methods can be used to poll or manipulate the check processes.

chkpx <- rcmdcheck_process$new()
chkpx
#> PROCESS 'R', running, pid 82576.
chkpx$wait()
chkpx$parse_results()
#> ── R CMD check results ───────────────────────────────────────────────────────────────────────── rcmdcheck 1.3.3.9000 ────
#> Duration: 23.6s
#> 
#> 0 errors ✔ | 0 warnings ✔ | 0 notes ✔

License

MIT © Mango Solutions, Gábor Csárdi, RStudio



Try the rcmdcheck package in your browser

Any scripts or data that you put into this service are public.

rcmdcheck documentation built on Sept. 27, 2021, 5:13 p.m.