A dependency graph for all GitHub repos that use the rworkflows GitHub Action.

Create

Here is the code for creating the plot.

Install required packages

if(!require("echodeps"))remotes::install_github("RajLabMSSM/echodeps",
                                                dependencies = TRUE)

Create graph

res <- echodeps::dep_graph(pkg = "rworkflows",
                           method_seed = "github",
                           exclude = c("neurogenomics_rworkflows",
                                       "neurogenomics_r_workflows"),
                           node_size = "total_downloads",
                           height="100%",
                           reverse = TRUE,
                           save_path = here::here("reports","rworkflows_depgraph.html"))

Save data

saveRDS(res, here::here("reports","dep_graph_res.rds"))

Count stars/clones/views

knitr::kable(res$report)

Show

rworkflow depgraph
rworkflow depgraph

Hover over each node to show additional metadata.

Identify highly downloaded packages

Identify the CRAN/Bioc R packages with the most number of downloads. This guides which packages would be the most useful to focus on implementing rworkflows in.

pkgs <- echogithub::r_repos_downloads(which = c("CRAN","Bioc"))

#### Get top 10 per R repository ####
pkgs_top <- pkgs[, tail(.SD, 10), by="r_repo"] 
methods::show(pkgs_top)

Assess R repository usage

This demonstrates the need for using rworkflows, as there are 25,000 R packages that are exclusively distributes via GitHub (which may or may not have code/documentation checks).

r_repos_res <- echogithub::r_repos(save_path = here::here("reports","r_repos_upset.pdf"), width=12)

Session Info

utils::sessionInfo()
## R version 4.3.1 (2023-06-16)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.3 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.20.so;  LAPACK version 3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.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] data.table_1.14.8 BiocStyle_2.29.2 
## 
## loaded via a namespace (and not attached):
##  [1] vctrs_0.6.3         cli_3.6.1           knitr_1.44         
##  [4] rlang_1.1.1         xfun_0.40           stringi_1.7.12     
##  [7] purrr_1.0.2         textshaping_0.3.6   jsonlite_1.8.7     
## [10] glue_1.6.2          rprojroot_2.0.3     htmltools_0.5.6    
## [13] ragg_1.2.5          sass_0.4.7          rmarkdown_2.25     
## [16] evaluate_0.21       jquerylib_0.1.4     fastmap_1.1.1      
## [19] lifecycle_1.0.3     yaml_2.3.7          memoise_2.0.1      
## [22] bookdown_0.35       BiocManager_1.30.22 stringr_1.5.0      
## [25] compiler_4.3.1      fs_1.6.3            systemfonts_1.0.4  
## [28] digest_0.6.33       R6_2.5.1            magrittr_2.0.3     
## [31] bslib_0.5.1         tools_4.3.1         pkgdown_2.0.7      
## [34] cachem_1.0.8        desc_1.4.2