Given the deadlines by the CRAN volunteers packages can be archived which can trigger some other packages to be archived. This code calculates how much time the chain reaction will go on if maintainer don't fix/update the packages.
Arguments
- which
a character vector listing the types of dependencies, a subset of
c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string"all"is shorthand for that vector, character string"most"for the same vector without"Enhances", character string"strong"(default) for the first three elements of that vector.- bioc
Logical value if Bioconductor packages should be provided, (Requires internet connection).
Value
A list with multiple elements:
time_till_last: Time till last package is affected.
last_archived: the date of the last package that would be affected.
npackages: Numeric vector with the number of packages used.
details: A data.frame with information for each individual package: Name, date affected, affected directly, repository, times it is affected (by archival causing issues.)
NAif not able to collect the data from CRAN.
References
Original code from: https://github.com/schochastics/cran-doomsday/blob/main/index.qmd
See also
The raw source of the data is: tools::CRAN_package_db()
Other utilities:
cran_date(),
cran_snapshot(),
duplicated_alias(),
package_date(),
package_repos(),
repos_dependencies(),
update_dependencies()
Examples
# \donttest{
cd <- cran_doom()
#> Retrieving CRAN_db, this might take a bit.
#> Caching results to be faster next call in this session.
if (length(cd) > 1L) head(cd$details)
#> Package Deadline type repo n_affected
#> 1 scPipeline 2026-01-31 direct CRAN 11
#> 2 scRNAtools 2026-01-31 direct CRAN 10
#> 3 BayesSurvive 2026-01-31 direct CRAN 9
#> 4 DIDmultiplegt 2026-01-31 direct CRAN 9
#> 5 PMAPscore 2026-01-31 direct CRAN 8
#> 6 tidyrules 2026-01-31 direct CRAN 7
# }