Skip to contents

Make a table that summarizes the results of the CRAN checks for a set of packages specified by a maintainer or by names.


  email = NULL,
  pkg = NULL,
  show = c("error", "fail", "warn", "note", "ok"),
  src = c("website", "crandb"),
  max_requests = 50,



email address for package maintainers (character vector)


package names (character vector)


columns of the data frame to show (all are shown by default)


if "website" the data is scrapped from the CRAN website, if "crandb" the data is downloaded from a RDS file hosted on the CRAN servers (which is used to generate the information found on the CRAN website).


maximum number of requests allowed to be performed, ignored when using src = "crandb". Use Inf to skip this check. (See Details)


additional arguments to control where the data from the check results are coming from and how they are downloaded from the CRAN servers (see Details section).


a data frame that tabulates the number of CRAN flavors that return errors, warnings, notes, or OK for the packages.


Given the email address of a package maintainer, and/or a vector of package names, returns a tibble that allows you to detect potential issues with your packages on CRAN.

Where does the data come from?

The data comes from the CRAN servers. They generate RDS files that contains information regarding the results of the checks for all the packages, and all the flavors. This data is then used to generate the web pages.

foghorn provides access to either of these data sources. If you choose src = "website" the data is scrapped from the CRAN website. If you only need to check a few packages, this is a good option. If you choose src = "crandb" the RDS files (about 20Mb) are downloaded first from the CRAN servers.

The option max_requests can be used to limit how many pages will be scrapped from the CRAN website. The default is set to 50, use Inf to ignore this check. Consider using src = "crandb" if you need to get data from many packages or maintainers. Note that this an approximation of the number of requests that will be performed and there will be situations where more requests than this limit will be performed to retrieve the results.

When choosing src = "crandb" you can also specify the following options:

  • dest: a folder where to store the RDS files (tempdir() by default).

  • protocol: either https or http.

  • overwrite: when FALSE (default), if the file exists in dest then it will not be downloaded again. When TRUE the file gets downloaded every time it's needed.

See also

Note that the tools package contains unexported functions that can be used to extract summary information from the check results. Specifically tools:::sumarize_CRAN_check_status is similar to show_cran_results.


  if (FALSE) {