Skip to contents

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.
#> Next call will be faster.
#> Warning in package_dependencies("ggeasy"): Some dependencies are not on available repositories: cli, glue, gtable, isoband, lifecycle, MASS, mgcv, rlang, scales, tibble, vctrs, withr, nlme, Matrix, farver, labeling, munsell, R6, RColorBrewer, viridisLite, fansi, magrittr, pillar, pkgconfig, lattice, colorspace, utf8 .
#> Check for Additional_repositories or other repositories (Bioconductor.org?).
head(pd)
#>      name   op version    type package required
#> 1 ggplot2 <NA>    <NA> Imports  ggeasy     <NA>
#> 2       R   >=   3.5.0 Depends  ggeasy     <NA>
#> 3   rlang <NA>    <NA> Imports  ggeasy     <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 
#>  "2024-11-03 05:50:04 CET" "2024-06-04 09:45:11 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()
#> Retrieving cran_archive, this might take a bit.
#> Next call will be faster.
#> Retrieving cran_archive, this might take a bit.
#> Next call will be faster.
#> Warning: There are 5 packages both archived and published
#> This indicate manual CRAN intervention.
#> [1] "2025-03-03"

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())

sessionInfo()
#> R Under development (unstable) (2025-03-04 r87880)
#> 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.9000
#> 
#> loaded via a namespace (and not attached):
#>  [1] cli_3.6.4         knitr_1.49        rlang_1.1.5       xfun_0.51        
#>  [5] rversions_2.1.2   textshaping_1.0.0 jsonlite_1.9.1    markdown_1.13    
#>  [9] htmltools_0.5.8.1 ragg_1.3.3        sass_0.4.9        rmarkdown_2.29   
#> [13] evaluate_1.0.3    jquerylib_0.1.4   fastmap_1.2.0     yaml_2.3.10      
#> [17] lifecycle_1.0.4   compiler_4.5.0    fs_1.6.5          systemfonts_1.2.1
#> [21] digest_0.6.37     R6_2.6.1          curl_6.2.1        commonmark_1.9.2 
#> [25] bslib_0.9.0       tools_4.5.0       xml2_1.3.7        pkgdown_2.1.1    
#> [29] cachem_1.1.0      desc_1.4.3