• Stars
    star
    110
  • Rank 299,589 (Top 7 %)
  • Language
    R
  • License
    Other
  • Created about 8 years ago
  • Updated 4 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,336
star
2

lintr

Static Code Analysis for R
R
1,135
star
3

httr

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

actions

GitHub Actions for the R community
JavaScript
868
star
5

testthat

An R πŸ“¦ to make testing πŸ˜€
R
849
star
6

usethis

Set up commonly used πŸ“¦ components
R
798
star
7

pkgdown

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

styler

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

pak

A fresh approach to package installation
C
575
star
10

cli

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

roxygen2

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

rig

The R Installation Manager
Rust
460
star
13

rlang

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

progress

Progress bar in your R terminal
R
447
star
15

R6

Encapsulated object-oriented programming for R
R
393
star
16

here

A simpler way to find your files
R
387
star
17

scales

Tools for ggplot2 scales
R
373
star
18

fs

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

covr

Test coverage reports for R
R
328
star
20

rex

Friendly regular expressions for R.
R
325
star
21

crayon

πŸ–οΈ R package for colored terminal output β€” now superseded by cli
R
321
star
22

memoise

Easy memoisation for R
R
310
star
23

remotes

Install R packages from GitHub, GitLab, Bitbucket, git, svn repositories, URLs
R
309
star
24

lobstr

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

callr

Call R from R
R
281
star
26

vctrs

Generic programming with typed R vectors
C
272
star
27

waldo

Find differences between R objects
R
272
star
28

slider

Sliding Window Functions
R
267
star
29

zeallot

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

conflicted

An alternative conflict resolution strategy for R
R
242
star
31

bench

High Precision Timing of R Expressions
R
237
star
32

gmailr

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

processx

Execute and Control Subprocesses from R
R
225
star
34

xml2

Bindings to libxml2
R
212
star
35

asciicast

Turn R scripts into terminal screencasts
R
211
star
36

gh

Minimalistic GitHub API client in R
R
210
star
37

httr2

Make HTTP requests and process their responses. A modern reimagining of httr.
R
206
star
38

cpp11

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

keyring

πŸ” Access the system credential store from R
R
185
star
40

vdiffr

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

svglite

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

pillar

Format columns with colour
R
173
star
43

ragg

Graphic Devices Based on AGG
C++
169
star
44

ymlthis

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

hugodown

Make websites with hugo and RMarkdown
R
163
star
46

withr

Methods For Temporarily Modifying Global State
R
162
star
47

coro

Coroutines for R
R
146
star
48

rprojroot

Finding files in project subdirectories
R
146
star
49

debugme

Easy and efficient debugging for R packages
R
144
star
50

available

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

ellipsis

Tools for Working with ...
R
138
star
52

archive

R bindings to libarchive, supporting a large variety of archive formats
C++
138
star
53

gert

Simple git client for R
C
136
star
54

later

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

rray

Simple Arrays
R
130
star
56

isoband

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

fastmap

Fast map implementation for R
C++
128
star
58

prettyunits

Pretty, human readable formatting of quantities
JavaScript
126
star
59

tidyselect

A backend for functions taking tidyverse selections
R
122
star
60

desc

Manipulate DESCRIPTION files
R
120
star
61

gargle

Infrastructure for calling Google APIs from R, including auth
R
112
star
62

evaluate

A version of eval for R that returns more information about what happened
R
107
star
63

prettycode

Syntax highlight R code in the terminal
R
100
star
64

mockery

A mocking library for R.
R
100
star
65

sloop

S language OOP ⛡️
R
98
star
66

pkgdepends

R Package Dependency Resolution
R
93
star
67

revdepcheck

R package reverse dependency checking
R
93
star
68

clock

A Date-Time Library for R
R
93
star
69

lifecycle

Manage the life cycle of your exported functions and arguments
R
91
star
70

systemfonts

System Native Font Handling in R
C++
90
star
71

gtable

The layout packages that powers ggplot2
R
85
star
72

askpass

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

rappdirs

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

zip

Platform independent zip compression via miniz
C
81
star
75

commonmark

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

downlit

Syntax Highlighting and Automatic Linking
R
80
star
77

clisymbols

Unicode symbols for CLI applications, with fallbacks
R
74
star
78

tree-sitter-r

C
74
star
79

ps

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

sessioninfo

Print Session Information
R
72
star
81

pkgapi

Create a map of functions for an R package - WORK IN PROGRESS!
R
69
star
82

credentials

Tools for Managing SSH and Git Credentials
R
69
star
83

roxygen2md

Convert elements of roxygen documentation to markdown
R
69
star
84

sodium

R bindings to libsodium
R
68
star
85

backports

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

pkgbuild

Find tools needed to build R packages
R
65
star
87

cliapp

Rich Command Line Applications
R
62
star
88

webfakes

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

generics

Common generic methods
R
60
star
90

diffviewer

HTML widget to visually compare files
JavaScript
57
star
91

liteq

Serverless R message queue using SQLite
R
55
star
92

pkgload

Simulate installing and loading a package
R
55
star
93

cachem

Key-value caches for R
R
53
star
94

carrier

Create standalone functions for remote execution
R
49
star
95

brio

Basic R Input Output
R
49
star
96

jose

Javascript Object Signing and Encryption for R
R
47
star
97

urlchecker

Run CRAN URL checks from older versions of R
R
46
star
98

pkgconfig

Private configuration for R packages
R
40
star
99

filelock

Cross platform file locking in R
R
39
star
100

pkginstall

Provides a replacement for `utils::install.packages()`
R
35
star