Skip to contents
options(repos = c("@CRAN@" = "https://CRAN.R-project.org"))
library(repo.data)

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")
#> Retrieving repos_dependencies, this might take a bit.
#> Caching results to be faster next call in this session.
#> Warning in package_dependencies("ggeasy"): Some dependencies are not on available repositories. Check for 'Additional_repositories' or other repositories (Bioconductor.org?):
#> aroma.light, DNAcopy, phyloseq, preprocessCore, pcaMethods, sparseMatrixStats, qvalue, Rgraphviz, edgeR, ALDEx2, EBImage, Biostrings, GenomicAlignments, IRanges, limma, org.Hs.eg.db, AnnotationDbi, DESeq2, Biobase, pwalign, maftools, ComplexHeatmap, GSVA, SummarizedExperiment, siggenes, annotate, fgsea, ConsensusClusterPlus, clusterProfiler, sva, affyPLM, affy, graph, fabia, RBGL, Rsamtools, impute, GO.db, biomaRt, rhdf5, mixOmics, survcomp, ggtree, treeio, GOSemSim, GENIE3, GenomicRanges, org.Dr.eg.db, org.Mm.eg.db, bluster, genefilter, BiocParallel, multtest, fmcsR, ChemmineR, ChIPseeker, TxDb.Hsapiens.UCSC.hg38.knownGene, TxDb.Hsapiens.UCSC.hg19.knownGene, TxDb.Mmusculus.UCSC.mm10.knownGene, SingleCellExperiment, TCseq, GSEABase, singscore, GenomicInteractions, rtracklayer, BiocFileCache, DECIPHER, tximport, BiocGenerics, GenomeInfoDb, S4Vectors, ensembldb, STRINGdb, GenomicFeatures, TCGAbiolinks, SNPRelate, snpStats, dada2, ShortRead, RedeR, Icens, RCy3, signatureSearch, signatureSearchData, MLInterfaces, ALL, TSCAN, MAST, DelayedArray, HDF5Array, minfi, IlluminaHumanMethylationEPICanno.ilm10b4.hg19, IlluminaHumanMethylation450kanno.ilmn12.hg19, AUCell, Rdisop, gdsfmt, BiocStyle, BSgenome, BSgenome.Hsapiens.UCSC.hg38, GEOquery, biocViews, reactome.db, ggmsa, VariantAnnotation, DOSE, Heatplus, fmrs, bamsignals, KEGGgraph, graphite, SparseArray, zlibbioc, Rhtslib, seqLogo, vsn, M3C, pathview, AnnotationFilter, QSutils, MassSpecWavelet, qusage, microbiome, InteractiveComplexHeatmap, globaltest, GlobalAncova, scran, scuttle, a4Core, ggkegg, ReactomePA, Mfuzz, BiocVersion, EmpiricalBrownsMethod, minet, scater, glmSparseNet, tweeDEseq, iBBiG, BicARE, R4RNA, AnnotationHub, beadarray, GSVAdata, rWikiPathways, glmGamPoi, UCell, batchelor, MatrixGenerics, ReactomeGSA, celldex, SingleR, splatter, widgetTools, Rhdf5lib, GWASTools, SpatialExperiment, zinbwave, DelayedMatrixStats, qpgraph, csaw, InteractionSet, HiCDOC, coRdon, KEGGREST
head(pd)
#>       name   op version    type package   required
#> 1 abc.data <NA>    <NA> Depends     abc       <NA>
#> 2   locfit <NA>    <NA> Depends     abc    1.5.9.1
#> 3     MASS <NA>    <NA> Depends     abc 7.3.60.0.1
#> 4     nnet <NA>    <NA> Depends     abc     7.3.19
#> 5 quantreg <NA>    <NA> Depends     abc       5.97
#> 6        R   >=    2.10 Depends     abc        4.5
# 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 06:40:04 CEST" "2025-04-11 08:40:18 CEST"

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-06-22"

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 51 days
#> 
#> $last_archived
#> [1] "2025-08-12"
#> 
#> $npackages
#>  CRAN   all 
#> 22354 26059
knitr::kable(head(cd$details))
Package Deadline type repo n_affected
duckdb 2025-06-17 direct CRAN 1
tealeaves 2025-06-17 direct CRAN 1
EpiEstim 2025-06-18 direct CRAN 1
likert 2025-06-21 direct CRAN 1
prettifyAddins 2025-06-21 direct CRAN 1
MIMER 2025-06-23 direct CRAN 2

For reproducibility here is the session info:

sessionInfo()
#> R Under development (unstable) (2025-06-20 r88332)
#> 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] rversions_2.1.2   textshaping_1.0.1 jsonlite_2.0.0    litedown_0.7     
#>  [9] markdown_2.0      htmltools_0.5.8.1 ragg_1.4.0        sass_0.4.10      
#> [13] rmarkdown_2.29    evaluate_1.0.4    jquerylib_0.1.4   fastmap_1.2.0    
#> [17] yaml_2.3.10       lifecycle_1.0.4   compiler_4.6.0    fs_1.6.6         
#> [21] systemfonts_1.2.3 digest_0.6.37     R6_2.6.1          curl_6.4.0       
#> [25] commonmark_1.9.5  bslib_0.9.0       tools_4.6.0       xml2_1.3.8       
#> [29] pkgdown_2.1.3     cachem_1.1.0      desc_1.4.3