• Stars
    star
    109
  • Rank 313,791 (Top 7 %)
  • Language
    R
  • License
    Other
  • Created over 8 years ago
  • Updated 7 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Run R CMD check from R and collect the results

Run R CMD check from R and Capture Results

rcmdcheck

Run R CMD check from R and Capture Results

lifecycle CRAN RStudio mirror downloads R-CMD-check Codecov test coverage

Run R CMD check from R programmatically and capture the results of the individual checks.

Installation

Install the released version from CRAN

install.packages("rcmdcheck")

Or install the development version from GitHub:

# install.packages("pak")
pak::pak("r-lib/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.

animated screenshot of a terminal window demonstrating example usage of the rcmdcheck function.

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: 9.7s
#> 
#> โฏ 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"
  • package: Package name.
  • version: Package version number.
  • notes: Character vector of check NOTEs.
  • warnings: Character vector of check WARNINGs.
  • errors: Character vector of check ERRORs.
  • platform: Platform, e.g.ย x86_64-apple-darwin15.6.0.
  • checkdir: Check directory.
  • install_out: Output of the package installation.
  • description: The text of the DESCRIPTION file.
  • session_info: A sessioninfo::session_info object, session information from within the check process.
  • cran: Flag, whether this is a CRAN package. (Based on the Repository field in DESCRIPTION, which is typically only set for published CRAN packages.)
  • bioc: Flag, whether this is a Bioconductor package, based on the presence of the biocViews field in DESCRIPTION.

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-release-linux-x86_64"            "r-release-macos-arm64"            
#>  [9] "r-release-macos-x86_64"            "r-release-windows-x86_64"         
#> [11] "r-oldrel-macos-arm64"              "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.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> 0 errors โœ” | 0 warnings โœ” | 0 notes โœ”
#> 
#> $`r-devel-linux-x86_64-debian-gcc`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> 0 errors โœ” | 0 warnings โœ” | 0 notes โœ”
#> 
#> $`r-devel-linux-x86_64-fedora-clang`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is  7.2Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.4Mb
#>       libs   3.3Mb
#> 
#> 0 errors โœ” | 0 warnings โœ” | 1 note โœ–
#> 
#> $`r-devel-linux-x86_64-fedora-gcc`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> 0 errors โœ” | 0 warnings โœ” | 0 notes โœ”
#> 
#> $`r-patched-linux-x86_64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> 0 errors โœ” | 0 warnings โœ” | 0 notes โœ”
#> 
#> $`r-release-linux-x86_64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> 0 errors โœ” | 0 warnings โœ” | 0 notes โœ”
#> 
#> $`r-release-macos-arm64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is 19.9Mb
#>     sub-directories of 1Mb or more:
#>       R      2.1Mb
#>       help   1.4Mb
#>       libs  15.4Mb
#> 
#> 0 errors โœ” | 0 warnings โœ” | 1 note โœ–
#> 
#> $`r-release-macos-x86_64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is 18.5Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.4Mb
#>       libs  14.6Mb
#> 
#> 0 errors โœ” | 0 warnings โœ” | 1 note โœ–
#> 
#> $`r-release-windows-x86_64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is 10.3Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.4Mb
#>       libs   6.4Mb
#> 
#> 0 errors โœ” | 0 warnings โœ” | 1 note โœ–
#> 
#> $`r-oldrel-macos-arm64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is 19.9Mb
#>     sub-directories of 1Mb or more:
#>       R      2.0Mb
#>       help   1.4Mb
#>       libs  15.4Mb
#> 
#> 0 errors โœ” | 0 warnings โœ” | 1 note โœ–
#> 
#> $`r-oldrel-macos-x86_64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is 18.5Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.4Mb
#>       libs  14.6Mb
#> 
#> 0 errors โœ” | 0 warnings โœ” | 1 note โœ–
#> 
#> $`r-oldrel-windows-ix86+x86_64`
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ igraph 1.4.1 โ”€โ”€โ”€โ”€
#> Duration: 0ms
#> 
#> โฏ checking installed package size ... NOTE
#>     installed size is 17.2Mb
#>     sub-directories of 1Mb or more:
#>       R      1.4Mb
#>       help   1.4Mb
#>       libs  13.4Mb
#> 
#> 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.4.0 / 1.4.0.9000 โ”€โ”€โ”€โ”€
#> Status: OK

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 25919.
chkpx$wait()
chkpx$parse_results()
#> โ”€โ”€ R CMD check results โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ rcmdcheck 1.4.0.9000 โ”€โ”€โ”€โ”€
#> Duration: 16.8s
#> 
#> 0 errors โœ” | 0 warnings โœ” | 0 notes โœ”

More Repositories

1

devtools

Tools to make an R developer's life easier
R
2,368
star
2

lintr

Static Code Analysis for R
R
1,164
star
3

httr

httr: a friendly http package for R
R
982
star
4

actions

GitHub Actions for the R community
TypeScript
917
star
5

testthat

An R ๐Ÿ“ฆ to make testing ๐Ÿ˜€
R
867
star
6

usethis

Set up commonly used ๐Ÿ“ฆ components
R
821
star
7

pkgdown

Generate static html documentation for an R package
R
708
star
8

styler

Non-invasive pretty printing of R code
R
692
star
9

pak

A fresh approach to package installation
C
630
star
10

cli

Tools for making beautiful & useful command line interfaces
R
618
star
11

roxygen2

Generate R package documentation from inline R comments
R
579
star
12

rig

The R Installation Manager
Rust
555
star
13

rlang

Low-level API for programming with R
R
484
star
14

progress

Progress bar in your R terminal
R
457
star
15

R6

Encapsulated object-oriented programming for R
R
402
star
16

here

A simpler way to find your files
R
401
star
17

scales

Tools for ggplot2 scales
R
388
star
18

fs

Provide cross platform file operations based on libuv.
C
361
star
19

rex

Friendly regular expressions for R.
R
331
star
20

covr

Test coverage reports for R
R
329
star
21

crayon

๐Ÿ–๏ธ R package for colored terminal output โ€” now superseded by cli
R
322
star
22

remotes

Install R packages from GitHub, GitLab, Bitbucket, git, svn repositories, URLs
R
321
star
23

memoise

Easy memoisation for R
R
314
star
24

lobstr

Understanding complex R objects with tools similar to str()
R
296
star
25

slider

Sliding Window Functions
R
290
star
26

callr

Call R from R
R
289
star
27

vctrs

Generic programming with typed R vectors
C
280
star
28

waldo

Find differences between R objects
R
275
star
29

zeallot

Variable assignment with zeal! (or multiple, unpacking, and destructuring assignment in R)
R
250
star
30

conflicted

An alternative conflict resolution strategy for R
R
243
star
31

bench

High Precision Timing of R Expressions
R
242
star
32

gmailr

Access the Gmail RESTful API from R.
R
230
star
33

processx

Execute and Control Subprocesses from R
R
227
star
34

httr2

Make HTTP requests and process their responses. A modern reimagining of httr.
R
223
star
35

asciicast

Turn R scripts into terminal screencasts
R
223
star
36

xml2

Bindings to libxml2
R
218
star
37

gh

Minimalistic GitHub API client in R
R
217
star
38

cpp11

cpp11 helps you to interact with R objects using C++ code.
C++
193
star
39

keyring

๐Ÿ” Access the system credential store from R
R
188
star
40

vdiffr

Visual regression testing and graphical diffing with testthat
C++
181
star
41

svglite

A lightweight svg graphics device for R
C++
179
star
42

pillar

Format columns with colour
R
173
star
43

ragg

Graphic Devices Based on AGG
C++
170
star
44

withr

Methods For Temporarily Modifying Global State
R
169
star
45

hugodown

Make websites with hugo and RMarkdown
R
165
star
46

ymlthis

write YAML for R Markdown, bookdown, blogdown, and more
R
163
star
47

coro

Coroutines for R
R
150
star
48

rprojroot

Finding files in project subdirectories
R
147
star
49

debugme

Easy and efficient debugging for R packages
R
145
star
50

available

Check if a package name is available to use
R
142
star
51

archive

R bindings to libarchive, supporting a large variety of archive formats
C++
141
star
52

ellipsis

Tools for Working with ...
R
139
star
53

later

Schedule an R function or formula to run after a specified period of time.
C++
136
star
54

gert

Simple git client for R
C
136
star
55

itdepends

R
133
star
56

rray

Simple Arrays
R
130
star
57

isoband

isoband: An R package to generate contour lines and polygons.
C++
130
star
58

prettyunits

Pretty, human readable formatting of quantities
JavaScript
128
star
59

fastmap

Fast map implementation for R
C++
128
star
60

desc

Manipulate DESCRIPTION files
R
121
star
61

tidyselect

A backend for functions taking tidyverse selections
R
121
star
62

gargle

Infrastructure for calling Google APIs from R, including auth
R
113
star
63

evaluate

A version of eval for R that returns more information about what happened
R
108
star
64

prettycode

Syntax highlight R code in the terminal
R
100
star
65

sloop

S language OOP โ›ต๏ธ
R
99
star
66

revdepcheck

R package reverse dependency checking
R
99
star
67

mockery

A mocking library for R.
R
98
star
68

tree-sitter-r

C
95
star
69

clock

A Date-Time Library for R
R
95
star
70

pkgdepends

R Package Dependency Resolution
R
93
star
71

systemfonts

System Native Font Handling in R
C++
91
star
72

lifecycle

Manage the life cycle of your exported functions and arguments
R
90
star
73

gtable

The layout packages that powers ggplot2
R
85
star
74

askpass

Password Entry for R, Git, and SSH
R
83
star
75

commonmark

High Performance CommonMark and Github Markdown Rendering in R
C
83
star
76

zip

Platform independent zip compression via miniz
C
82
star
77

rappdirs

Find OS-specific directories to store data, caches, and logs. A port of python's AppDirs
R
81
star
78

downlit

Syntax Highlighting and Automatic Linking
R
81
star
79

clisymbols

Unicode symbols for CLI applications, with fallbacks
R
76
star
80

ps

R package to query, list, manipulate system processes
C
72
star
81

sessioninfo

Print Session Information
R
72
star
82

pkgapi

Create a map of functions for an R package - WORK IN PROGRESS!
R
70
star
83

credentials

Tools for Managing SSH and Git Credentials
R
70
star
84

sodium

R bindings to libsodium
R
68
star
85

roxygen2md

Convert elements of roxygen documentation to markdown
R
67
star
86

backports

Reimplementations of Functions Introduced Since R-3.0.0
R
65
star
87

pkgbuild

Find tools needed to build R packages
R
65
star
88

webfakes

Fake web apps for HTTP testing R packages
C
61
star
89

cliapp

Rich Command Line Applications
R
60
star
90

generics

Common generic methods
R
59
star
91

diffviewer

HTML widget to visually compare files
JavaScript
57
star
92

liteq

Serverless R message queue using SQLite
R
56
star
93

cachem

Key-value caches for R
R
54
star
94

pkgload

Simulate installing and loading a package
R
54
star
95

carrier

Create standalone functions for remote execution
R
50
star
96

brio

Basic R Input Output
R
50
star
97

marquee

Markdown Parser and Renderer for R Graphics
C
49
star
98

jose

Javascript Object Signing and Encryption for R
R
48
star
99

urlchecker

Run CRAN URL checks from older versions of R
R
45
star
100

pkgconfig

Private configuration for R packages
R
41
star