# Bioconductor Package Dashboard

# BiocPkgDash

# Introduction

The BiocPkgDash package provides an interactive Shiny application to visualize the status of Bioconductor packages. Primarily, users can filter packages by maintainer email to display a status badge wall for all packages maintained by that email. It allows users to filter packages based on various criteria, such as Bioconductor version, package type, and GitHub topics. The dashboard displays badges indicating the build status and code coverage for each package. The tool is primarily designed for Bioconductor package maintainers to monitor the status of their packages.

## Comparison to Bioconductor Build Results

The Bioconductor Build Results page provides a comprehensive overview of the build status of all Bioconductor packages. However, it can be overwhelming for maintainers who are only interested in the status of their own packages. The `BiocPkgDash` dashboard provides a more focused view of the status of packages maintained by a specific email, allowing maintainers to quickly identify any issues with their packages without having to navigate through the entire list of packages on the Build Results page.

Users can quickly go the relevant section in the Bioconductor Build Results page by clicking on the badges or the status bars in the dashboard. This allows maintainers to easily access more detailed information about the build status of their packages.

# Installation

    if (!requireNamespace("BiocManager", quietly = TRUE))
        install.packages("BiocManager")

    BiocManager::install("BiocPkgDash")

# Loading

    library(BiocPkgDash)

Note that the app uses BiocPkgTools to download package information from the Bioconductor Build System (BBS) database. This is required for the app to function properly and can be safely created. The prompt may look like the following (path varies by operating system):

    /Users/user/.cache/R/BiocFileCache
        does not exist, create directory? (yes/no): yes

Create the cache directory by entering `yes` and pressing `Enter`.

# Dashboard display

    BiocPkgDash()

Note that the dashboard and this document is organized by the tab panels. Each tab in the dashboard is described in the following sections.

## Filtering packages

One can filter packages by name, Bioconductor version, biocViews package type, maintainer email, and GitHub topics. The dashboard will display the status badges for all packages that match the selected criteria. Typically, a user with use one of the methods to filter for packages. Primarily, the user will filter by the relevant maintainer email.

### GitHub topic filter

The GitHub topic filter allows users to filter packages based on specific topics associated with R / Bioconductor packages on GitHub. This can be useful for organizations that maintain multiple packages related to a specific project, theme, or grant. For example, one can filter for all packages related to a particular grant code, e.g., “u24ca289073”. Note that repositories will have to have the topic added to them for the filter to work.

# Badges

The badge wall displays the build status and code coverage for each package. Clicking on a badge will take you to the relevant page for more details.

Note that the coverage badges can be turned off if the maintainer does not use codecov.io for testing package coverage.

## Downloading the badge wall

The dashboard allows users to download the badge wall as a partial HTML file. This can be useful for including the badges on personal websites or other HTML documentation. The HTML file is generated on the fly by the `shiny` app after clicking the `Download HTML` button on the sidebar panel.

# Status

The dashboard also provides a visualization of the package build statuses across different stages of the Bioconductor Build System (BBS). This helps maintainers quickly identify any issues with their packages.

Note that clicking on any of the status bars in the plot takes the user to the detailed build report for that specific builder, stage, and status combination.

# Dependencies

The `Dependencies` tab displays the package reverse dependencies for a selected package. This can help maintainers understand the dependency tree of their packages and identify any potential issues.

# Metadata

The `Metadata` tab displays additional information about the selected package(s) such as the package title, version, and additional fields from the `DESCRIPTION` file as obtained from the internal `biocViews` database. This can help maintainers quickly access information about their package(s).

# Session Information

    sessionInfo()

    ## R version 4.6.0 (2026-04-24)
    ## Platform: x86_64-pc-linux-gnu
    ## Running under: Ubuntu 24.04.4 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=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: Etc/UTC
    ## tzcode source: system (glibc)
    ##
    ## attached base packages:
    ## [1] stats     graphics  grDevices utils     datasets  methods   base
    ##
    ## other attached packages:
    ## [1] BiocPkgDash_1.1.0 shiny_1.13.0      BiocStyle_2.41.0
    ##
    ## loaded via a namespace (and not attached):
    ##  [1] tidyselect_1.2.1     viridisLite_0.4.3    dplyr_1.2.1
    ##  [4] farver_2.1.2         blob_1.3.0           filelock_1.0.3
    ##  [7] S7_0.2.2             bitops_1.0-9         lazyeval_0.2.3
    ## [10] fastmap_1.2.0        RCurl_1.98-1.18      gh_1.5.0.9000
    ## [13] BiocFileCache_3.3.0  BiocPkgTools_1.31.7  promises_1.5.0
    ## [16] XML_3.99-0.23        digest_0.6.39        timechange_0.4.0
    ## [19] mime_0.13            lifecycle_1.0.5      RSQLite_3.53.1
    ## [22] magrittr_2.0.5       compiler_4.6.0       rlang_1.2.0
    ## [25] sass_0.4.10          tools_4.6.0          igraph_2.3.1
    ## [28] yaml_2.3.12          data.table_1.18.4    knitr_1.51
    ## [31] htmlwidgets_1.6.4    bit_4.6.0            curl_7.1.0
    ## [34] xml2_1.5.2           RColorBrewer_1.1-3   purrr_1.2.2
    ## [37] BiocGenerics_0.59.6  sys_3.4.3            grid_4.6.0
    ## [40] stats4_4.6.0         xtable_1.8-8         ggplot2_4.0.3
    ## [43] scales_1.4.0         cli_3.6.6            rmarkdown_2.31
    ## [46] generics_0.1.4       otel_0.2.0           httr_1.4.8
    ## [49] tzdb_0.5.0           BiocBaseUtils_1.15.1 RUnit_0.4.33.1
    ## [52] DBI_1.3.0            cachem_1.1.0         stringr_1.6.0
    ## [55] rvest_1.0.5          BiocManager_1.30.27  vctrs_0.7.3
    ## [58] jsonlite_2.0.0       hms_1.1.4            bit64_4.8.2
    ## [61] RBGL_1.89.0          maketools_1.3.2      plotly_4.12.0
    ## [64] jquerylib_0.1.4      tidyr_1.3.2          glue_1.8.1
    ## [67] DT_0.34.0            lubridate_1.9.5      stringi_1.8.7
    ## [70] gtable_0.3.6         later_1.4.8          tibble_3.3.1
    ## [73] pillar_1.11.1        rappdirs_0.3.4       htmltools_0.5.9
    ## [76] graph_1.91.0         R6_2.6.1             dbplyr_2.5.2
    ## [79] httr2_1.2.2          evaluate_1.0.5       Biobase_2.73.1
    ## [82] readr_2.2.0          memoise_2.0.1        httpuv_1.6.17
    ## [85] bslib_0.11.0         Rcpp_1.1.1-1.1       whisker_0.4.1
    ## [88] xfun_0.57            buildtools_1.0.0     biocViews_1.81.0
    ## [91] pkgconfig_2.0.3