Skip to content

R CMD check Conformance

github-actions[bot] edited this page Oct 25, 2026 · 1 revision

Generated from 'wiki-linter.ts' on 2026-10-19, 06:47:02 UTC (v2.16.2), do not edit directly.

Rules tagged cmd-check port R CMD check (R 4.6.1, see Writing R Extensions and R Packages). They run by default only for packages (config option linter.disabledTags), see the linter for all rules. Below are all steps of R CMD check, numbered by us (R itself prints them as * checking ...), each linked to its code in R's check.R and its section in R Packages.

Coverage
🟩 everything the step reports
🔷 what can be decided without building, installing, or running the package
🔶 part of what the step reports
⭐ flowR reports more than the step, the note says what

The package as a whole

# Step (checking ...) Rules Note
1 for file 'DESCRIPTION' (book) 🟩⭐ description-metadata ⭐ also reports every problem instead of stopping at the first
2 whether tarball can be unpacked (book) 🔷 package-structure only the path rules of tarballs
3 package directory (book) 🟩 package-structure
4 if this is a source package (book) 🟩 package-runtime the Built field and object files in src are not checked
5 extension type (book) 🟩 package-runtime
6 package bundle (book) 🔶 description-metadata
7 if there is a namespace (book) 🟩 package-runtime needs the package on disk

Package structure and files

# Step (checking ...) Rules Note
8 for portable file names (book) 🟩 package-structure
9 for sufficient/correct file permissions (book) 🟩 package-structure needs the package on disk
10 for executable files (book) 🟩 package-structure needs the package on disk, detects ELF, PE, and Mach-O binaries
11 for hidden files and directories (book) 🟩 package-structure
12 for .dll and .exe files (book) 🟩 package-structure
13 for future file timestamps (book) 🟩 package-structure needs the package on disk
14 top-level files (book) 🟩 package-structure checkbashisms and autoreconf are not run
15 for left-over files (book) 🟩 package-structure
16 package subdirectories (book) 🟩 package-structure
17 'build' directory (book) 🟩 package-structure
18 installed package size (book) 🔷 package-structure estimated from the files that would be installed
19 sizes of PDF files under 'inst/doc' (book) 🔷 package-structure reports large PDFs, cannot compact them
20 line endings in shell scripts (book) 🟩 package-structure, compiled-code
21 files in 'vignettes' (book) 🟩 package-structure
22 for left-overs from vignette generation (book) 🟩 package-structure
23 installed files from 'inst/doc' (book) 🔷 package-structure
24 for code which exercises the package (book) 🟩 software-has-tests only tests count, examples and vignettes do not

DESCRIPTION and dependencies

# Step (checking ...) Rules Note
25 DESCRIPTION meta-information (book) 🟩 description-metadata, software-has-license
26 CRAN incoming feasibility (book) 🔶 description-metadata the DESCRIPTION based notes, repository queries are left out
27 package dependencies (book) 🔷 dependency-declaration, description-metadata availability and versions asked of the signature database instead of the repositories
28 dependencies in R code (book) 🟩⭐ dependency-declaration, namespace-access ⭐ also resolves package names through variables and knows the loaders of other packages
29 for unstated dependencies in tests (book) 🟩 dependency-declaration
30 for unstated dependencies in examples (book) 🟩 dependency-declaration
31 for unstated dependencies in vignettes (book) 🟩⭐ dependency-declaration ⭐ also packages named in \VignetteEngine
32 whether the package can be loaded with stated dependencies (book) 🔷 dependency-declaration
33 whether the namespace can be loaded with stated dependencies (book) 🔷 dependency-declaration, package-runtime
34 LazyData (book) 🟩 package-data the size of the installed LazyData database is not checked

R code

# Step (checking ...) Rules Note
35 R files for syntax errors (book) 🟩⭐ syntactically-valid ⭐ also quick fixes repairing the syntax error
36 code files for non-ASCII characters (book) 🟩⭐ non-ascii-code ⭐ also reports each token instead of each file, escapes strings as a quick fix
37 R code for possible problems (book) 🟩⭐ undefined-symbol, call-arguments, global-environment-modification, class-string-comparison, bogus-return, package-hooks, namespace-tampering, deprecated-functions, true-false-abbreviation ⭐ also quick fixes, deprecated arguments, environments resolved through variables, hooks followed into callees
38 S3 generic/method consistency (book) 🟩⭐ s3-method-consistency ⭐ also apparent and unregistered methods without setting an environment variable
39 replacement functions (book) 🟩⭐ s3-method-consistency ⭐ also apparent replacement methods
40 foreign function calls (book) 🔷⭐ foreign-function-calls ⭐ also resolves PACKAGE arguments through variables
routine registration needs the installed package
41 use of S3 registration (book) 🔷 s3-method-consistency overwriting registered methods of standard packages is not checked
42 whether startup messages can be suppressed (book) 🔷⭐ package-hooks ⭐ also follows the hooks into the package functions they call
output in package hooks not sent through packageStartupMessage
43 whether the namespace can be unloaded cleanly (book) 🔷 package-hooks only hook arguments and misplaced library.dynam.unload calls
44 package namespace information (book) 🔶 documentation-mismatch, non-ascii-code, package-hooks

Documentation

# Step (checking ...) Rules Note
45 Rd files (book) 🟩 rd-files \Sexpr macros are not evaluated
46 Rd metadata (book) 🟩⭐ rd-files ⭐ also Rd names that differ only by case
47 Rd cross-references (book) 🔷 rd-files targets in other packages are asked of the signature database
48 for missing documentation entries (book) 🟩 documentation-mismatch, package-data S4 classes and methods are not checked
49 for code/documentation mismatches (book) 🟩 documentation-mismatch data sets and S4 classes are not compared
50 Rd \usage sections (book) 🟩 documentation-mismatch, rd-files
51 Rd contents (book) 🟩 rd-files
52 Rd line widths (book) 🟩 rd-files
53 examples (book) 🔷⭐ rd-files, dependency-declaration ⭐ also T and F in the examples
parses the examples and checks what they call, without running them
54 PDF version of manual (book) 🔷 rd-files the Rd constructs that break the LaTeX rendering
55 PDF version of manual without index (book) 🔷 rd-files the Rd constructs that break the LaTeX rendering
56 index information (book) 🟩 package-metafiles the vignette index of inst/doc is not checked
57 demos (book) 🔷 package-metafiles, package-structure the demo index and file names, the demos are not run
58 package subdirectories (CITATION) (book) 🟩⭐ package-metafiles ⭐ also the superseded citEntry and personList
the CITATION file is parsed, not evaluated
59 relative paths in package URLs (book) 🔷⭐ package-metafiles ⭐ also links in README and NEWS
relative URLs in Rd files are not checked

Data

# Step (checking ...) Rules Note
60 contents of 'data' directory (book) 🟩 package-data data sets are not loaded
61 data for ASCII and uncompressed saves (book) 🟩 package-data no recompression to estimate the savings
62 R/sysdata.rda (book) 🟩 package-data no recompression to estimate the savings
63 serialization versions (book) 🟩 package-data .rds files and xz compressed saves are not read
64 data for non-ASCII characters (book) 🔶 package-data the encodings of saved strings are not read

Compiled code

# Step (checking ...) Rules Note
65 compilation flags in Makevars (book) 🟩 compiled-code
66 use of PKG_*FLAGS in Makefiles (book) 🟩 compiled-code
67 use of SHLIB_OPENMP_*FLAGS in Makefiles (book) 🟩⭐ compiled-code ⭐ also runs without setting an environment variable
68 for portable use of $(BLAS_LIBS) and $(LAPACK_LIBS) (book) 🟩 compiled-code
69 for GNU extensions in Makefiles (book) 🟩 compiled-code
70 include directives in Makefiles (book) 🟩 compiled-code
71 line endings in Makefiles (book) 🟩 compiled-code
72 line endings in C/C++/Fortran sources/headers (book) 🟩 compiled-code
73 pragmas in C/C++ headers and code (book) 🟩⭐ compiled-code ⭐ also runs without setting an environment variable
74 usage of KIND in Fortran files (book) 🟩⭐ compiled-code ⭐ also byte count declarations like real*8
75 C++ specification (book) 🟩 compiled-code
76 compiled code (book) 🔷 compiled-code the calls the shared object would import, read off the sources
77 whether package can be installed (book) 🔷⭐ compiled-code, dependency-declaration, package-runtime ⭐ also compiled code never loaded for lack of useDynLib
useDynLib and src/ in agreement, headers from LinkingTo, undefined exports
78 compilation flags used (book) 🔷 compiled-code the flags the Makevars state, not the ones the toolchain was called with
79 Rust compilation (book) 🔷 package-runtime Rust sources need Cargo and rustc in SystemRequirements

Installing, loading, and running

# Step (checking ...) Rules Note
80 whether the package can be loaded (book) 🔷 package-runtime S3 methods registered without a function, imports of unexported names
81 loading without being on the library search path (book) 🔷 package-runtime the package attaching itself
82 whether the package can be unloaded cleanly (book) 🔷 package-hooks only hook arguments and misplaced library.dynam.unload calls
83 tests (book) 🔷⭐ package-runtime, dependency-declaration ⭐ also testthat tests without a runner, runners testing another package
tests are not run, only checked for runners and syntax
84 for differences from example reference output (book) 🔷⭐ package-runtime ⭐ also reference output without its test
example output is not compared with its reference
85 running R code from vignettes (book) 🔷 package-runtime, dependency-declaration vignette code that does not parse
86 re-building of vignette outputs (book) 🔷 package-runtime vignettes without index entry or engine
87 package vignettes (book) 🔷 package-runtime, package-structure non-ASCII vignettes without declared encoding are not reported
88 examples with --run-donttest (book) 🔷⭐ rd-files, dependency-declaration ⭐ also T and F in the examples
the \donttest code is checked like all examples
89 for non-standard things in the check directory (book) 🔷 package-runtime, rd-files files tests, vignettes, and examples write into the working directory
90 for detritus in the temp directory (book) 🔶 package-runtime, rd-files only the files written by name
91 for new files in some other directories (book) 🔶 package-runtime, rd-files only the files written by name
92 HTML version of manual (book) 🔷 rd-files the Rd files that would not render

Clone this wiki locally