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