Let’s think a package that has some required dependencies, but its dependencies have some requirements too. The maintainer might consider if he can raise the version requirements.
pd <- package_dependencies("ggeasy")
head(pd)
#> Name Version Type Op Package
#> 1 cli 3.4.0 Imports >= <NA>
#> 2 lifecycle 1.0.3 Imports >= <NA>
#> 3 R 4.4.0 Depends >= <NA>
#> 4 rlang 1.1.0 Imports >= <NA>
#> 5 vctrs 0.6.0 Imports >= <NA>
#> 6 utils <NA> <NA> <NA> <NA>
# Discover the requirements that can be upgraded
update_dependencies(pd)
We can also be interested on since when did a package can be installed we can use:
package_date("ggeasy")
#> Published deps_available
#> "2025-06-15 04:40:04 UTC" NA
Which will show when it was published and when the R dependencies required become available.
Other utils
When were packages last updated?
cran_session()
#> Warning in cran_archive(versions[, "Package"]): Omitting packages repo.data.
#> Maybe they were not on CRAN?
#> [1] "2025-07-07"
This uses the sessionInfo()
output to find the date of
last installation. There is a sister function for an arbitrary data:
versions <- data.frame(Package = c("dplyr", "Rcpp"),
Version = c("1.1.4", "0.8.9"))
versions
#> Package Version
#> 1 dplyr 1.1.4
#> 2 Rcpp 0.8.9
cran_date(versions)
#> [1] "2023-11-17"
This date doesn’t mean that all packages are up to date to this given
date (this can be easily checked with old.packages()
)
Risk of being archived
If you ever wonder which packages are at risk you can use
cran_doom()
:
cd <- cran_doom(bioc = TRUE)
#> Retrieving CRAN_db, this might take a bit.
#> Caching results to be faster next call in this session.
#> Retrieving bioc_available_release, this might take a bit.
#> Caching results to be faster next call in this session.
cd[c("time_till_last", "last_archived", "npackages")]
#> $time_till_last
#> Time difference of 70 days
#>
#> $last_archived
#> [1] "2025-10-08"
#>
#> $npackages
#> CRAN all
#> 22528 26233
knitr::kable(head(cd$details))
Package | Deadline | type | repo | n_affected |
---|---|---|---|---|
ggalt | 2025-07-31 | direct | CRAN | 4 |
rfars | 2025-07-31 | direct | CRAN | 4 |
googleLanguageR | 2025-07-31 | direct | CRAN | 3 |
ClimaRep | 2025-07-31 | direct | CRAN | 2 |
likert | 2025-07-31 | direct | CRAN | 2 |
nomisr | 2025-07-31 | direct | CRAN | 2 |
For reproducibility here is the session info:
sessionInfo()
#> R Under development (unstable) (2025-07-27 r88459)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.2 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=C.UTF-8 LC_NUMERIC=C LC_TIME=C.UTF-8
#> [4] LC_COLLATE=C.UTF-8 LC_MONETARY=C.UTF-8 LC_MESSAGES=C.UTF-8
#> [7] LC_PAPER=C.UTF-8 LC_NAME=C LC_ADDRESS=C
#> [10] LC_TELEPHONE=C LC_MEASUREMENT=C.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] repo.data_0.0.0.9003
#>
#> loaded via a namespace (and not attached):
#> [1] cli_3.6.5 knitr_1.50 rlang_1.1.6 xfun_0.52
#> [5] textshaping_1.0.1 jsonlite_2.0.0 litedown_0.7 markdown_2.0
#> [9] htmltools_0.5.8.1 ragg_1.4.0 sass_0.4.10 rmarkdown_2.29
#> [13] evaluate_1.0.4 jquerylib_0.1.4 fastmap_1.2.0 yaml_2.3.10
#> [17] lifecycle_1.0.4 compiler_4.6.0 fs_1.6.6 systemfonts_1.2.3
#> [21] digest_0.6.37 R6_2.6.1 commonmark_2.0.0 bslib_0.9.0
#> [25] tools_4.6.0 pkgdown_2.1.3 cachem_1.1.0 desc_1.4.3