knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  warning = FALSE,
  message = FALSE,
  echo = FALSE
)

The data in this table stems from our querying https://cran.r-project.org/incoming/. We update it every hour. See below for a description of each folder meaning.

Dashboard

library(dplyr)

standard_folders <- c(
  "pretest", "inspect", "recheck", "pending", "publish", "newbies", "waiting"
)

cran_raw <- cransays::take_snapshot()

cran_incoming <- cran_raw |> 
  arrange(subfolder, howlongago) |>
  filter(subfolder != "archive") |>
  mutate(
    folder = ifelse(subfolder %in% standard_folders, subfolder, "human"),
    subfolder = ifelse(subfolder %in% standard_folders, NA, subfolder)
  )

cran_incoming |>
  select(package, version, snapshot_time, folder, subfolder, submission_time) |>
  arrange(package, version) |>
  write.csv(
    paste0("cran-incoming-v5-", format(Sys.time(), "%Y%m%dT%H%M%S"), ".csv"),
    row.names = FALSE,
    quote = FALSE
  )
library(reactable)

colours <- c(
  "pretest" = "#F8F3BA",
  "inspect" = "#F8F3BA",
  "human"   = "#F1D9A1",
  "recheck" = "#E5CADB",
  "publish" = "#A5D6C8"
)

cran_incoming |>
  dplyr::select(package, version, submission_time, folder, subfolder) |>
  reactable(
    columns = list(
      folder = colDef(style = function(value) {
        val <- as.character(value)
        if (val %in% names(colours)) {
          list(background = colours[[val]])
        } else {
          list()
        }
      }),
      submission_time = colDef(cell = function(value, index) {
        prettyunits::time_ago(value)
      })
    ),
    defaultSorted = list("submission_time" = "desc"),
    filterable = TRUE,
    defaultPageSize = 50
  )

CRAN review workflow

Your package will be stored in a different folder depending on its current state in the review process. The exact meaning of each folder is detailed in articles from the R Journal in 2018 and 2019, and updated by a 2019 mailing list post (and confirmed in 2022):

This information is (approximately) summarised in the following diagram by Hadley Wickham, available in the cran-stages Github repository:

knitr::include_graphics("cran-diagram.png")


lockedata/cransays documentation built on July 4, 2025, 7:51 a.m.