[Rd] Add a new environment variable switch for the 'large version' check

Jim Hester j@me@@|@he@ter @end|ng |rom gm@||@com
Wed Apr 15 16:20:14 CEST 2020

If you test a package with `R CMD check --as-cran` one of the
'incoming' checks is for a large version number, it gives a NOTE like

    * checking CRAN incoming feasibility ... NOTE
    Maintainer: ‘Jim Hester <james.f.hester using gmail.com>’

    Version contains large components (

This is a useful check when packages are submitted to CRAN because it
catches these large version components, which typically are reserved
for development versions of packages.

However when checking packages during development it is often expected
to have these large versions, so this note can be confusing for those
new to package development.

Currently the only way to turn off this particular check is to turn
off _all_ of the CRAN incoming checks.

The following patch (also attached) adds an environment variable that
can be used to disable just this check, which would allow users to
disable it if they expect to be using a large version. The default
behavior (and CRAN's usage) would remain unchanged.

diff --git a/src/library/tools/R/QC.R b/src/library/tools/R/QC.R
index 062722127a..64acd72c5e 100644
--- a/src/library/tools/R/QC.R
+++ b/src/library/tools/R/QC.R
@@ -6963,7 +6963,9 @@ function(dir, localOnly = FALSE)
     if(grepl("(^|[.-])0[0-9]+", ver))
         out$version_with_leading_zeroes <- ver
     unlisted_version <- unlist(package_version(ver))
-    if(any(unlisted_version >= 1234 & unlisted_version !=
as.integer(format(Sys.Date(), "%Y"))))
+    if(any(unlisted_version >= 1234 & unlisted_version !=
as.integer(format(Sys.Date(), "%Y"))) &&
+       !config_val_to_logical(Sys.getenv("_R_CHECK_CRAN_INCOMING_SKIP_LARGE_VERSION_",
+                                         "FALSE")))
         out$version_with_large_components <- ver

     .aspell_package_description_for_CRAN <- function(dir, meta = NULL) {

More information about the R-devel mailing list