Skip to content

v1.0.0

Choose a tag to compare

@jwildfire jwildfire released this 09 Apr 19:11
9f8cbd6

workr 1.0.0

Initial Release

{workr} provides a minimal framework for describing and executing step-by-step R data pipelines using YAML-defined workflows.

Core Features

  • RunStep() — execute a single workflow step
  • RunWorkflow() — execute a full workflow specification (YAML)
  • RunWorkflows() — run multiple workflows in sequence
  • RunProject() — orchestrate multi-phase workflow pipelines (experimental)
  • MakeWorkflowList() — read a folder of YAML workflows into a list
  • RunQuery() — execute database queries via DBI/duckdb
  • loadExample() — load bundled example workflows for learning and testing

Shiny Demo App

Package Manifests

  • pkgManifest() — resolve GitHub packages to pinned versions with manifest.csv and rproject.toml
  • Snapshot branches (ss-*) for reproducible package environments
  • GitHub Actions for nightly manifest updates

GitHub Actions

  • manifest.yaml — reusable workflow for generating manifest artifacts
  • nightly-manifest.yaml — scheduled manifest updates
  • R-CMD-check.yaml — R CMD check CI
  • R-CMD-check-dev.yaml — development R CMD check CI
  • pkgdown-with-examples.yaml — pkgdown site deployment
  • pkgdown-cleanup.yaml — pkgdown cleanup

Documentation

{qcthat} Reports

Milestone

✅ A qcthat issue test matrix with 1 milestone, 3 issues, and 71 tests
└─█─Milestone: v1.0.0 (3 issues, 71 tests)
  ├─☑️─Issue 26: Improve unit test coverage for v1.0 release
  │ ├─✅─MakeWorkflowList loads YAML and RunStep executes workflow correctly #26
  │ ├─✅─Complex workflow: multi-step loaded from YAML and executed end-to-end #26
  │ ├─✅─Workflow from YAML loads and executes with meta reference #26
  │ ├─✅─loadExample returns input data when initData.R is missing (#9, #26)
  │ ├─✅─loadExample loads initData.R and merges with lData (#9, #26)
  │ ├─✅─loadExample validates initData return type (#9, #26)
  │ ├─✅─loadExample does not create duplicate names on repeated calls (#9, #26)
  │ ├─✅─MakeWorkflowList output is a named list with expected structure #26
  │ ├─✅─MakeWorkflowList returns metadata as expected #26
  │ ├─✅─MakeWorkflowList errors on invalid strPath #26
  │ ├─✅─MakeWorkflowList errors on invalid strPackage #26
  │ ├─✅─MakeWorkflowList filters by strNames #26
  │ ├─✅─MakeWorkflowList bExact filters exactly #26
  │ ├─✅─MakeWorkflowList names list elements by meta$ID #26
  │ ├─✅─MakeWorkflowList sorts by Priority #26
  │ ├─✅─MakeWorkflowList sets default Priority to 0 #26
  │ ├─✅─MakeWorkflowList loads from package #26
  │ ├─✅─MakeWorkflowList bRecursive finds nested workflows #26
  │ ├─✅─RunProject runs all phases in sorted order #26
  │ ├─✅─RunProject passes data between phases #26
  │ ├─✅─RunProject respects strPhases subset and order #26
  │ ├─✅─RunProject errors on missing strPath #26
  │ ├─✅─RunProject errors on missing requested phases #26
  │ ├─✅─RunProject errors on empty project directory #26
  │ ├─✅─RunProject bReturnResult and bKeepInputData pass through #26
  │ ├─✅─RunQuery returns correct result (#26)
  │ ├─✅─RunQuery handles empty df #26
  │ ├─✅─RunQuery handles invalid input #26
  │ ├─✅─RunQuery checks if strQuery contains 'FROM df' #26
  │ ├─✅─RunQuery applies schema appropriately #26
  │ ├─✅─RunQuery applies incomplete schema appropriately #26
  │ ├─✅─RunQuery parses invalid date/times correctly #26
  │ ├─✅─RunQuery requires lColumnMapping when bUseSchema is TRUE #26
  │ ├─✅─RunStep handles lMeta and lData parameters correctly #26
  │ ├─✅─RunStep handles parameters referencing elements within lMeta and lData #26
  │ ├─✅─RunStep passes direct value parameters correctly #26
  │ ├─✅─RunStep passes direct value vector parameters correctly #26
  │ ├─✅─RunStep handles multiple parameters and function invocation correctly #26
  │ ├─✅─RunStep will run a function from a namespace #26
  │ ├─✅─RunStep will run a function without a namespace #26
  │ ├─✅─RunStep will run a function with no parameters #26
  │ ├─✅─RunStep recognizes rlang::expr() string parameters #26
  │ ├─✅─RunStep recognizes expr() shorthand parameters #26
  │ ├─✅─RunStep recognizes rlang::exprs() parameters #26
  │ ├─✅─RunStep recognizes exprs() shorthand parameters #26
  │ ├─✅─RunStep passes lSpec parameter correctly #26
  │ ├─✅─RunWorkflow returns final step result by default #26
  │ ├─✅─RunWorkflow returns full workflow object when bReturnResult = FALSE #26
  │ ├─✅─RunWorkflow bKeepInputData = FALSE removes input data from lData #26
  │ ├─✅─RunWorkflow bKeepInputData = TRUE preserves input data in lData #26
  │ ├─✅─RunWorkflow multi-step preserves intermediate results in lData #26
  │ ├─✅─RunWorkflow invokes lConfig$LoadData #26
  │ ├─✅─RunWorkflow invokes lConfig$SaveData on bReturnResult = TRUE #26
  │ ├─✅─RunWorkflow validates spec when present #26
  │ ├─✅─RunWorkflow runs without spec #26
  │ ├─✅─RunWorkflow runs with YAML files #26
  │ ├─✅─RunWorkflows returns named list #26
  │ ├─✅─RunWorkflows passes prior workflow results as data to later workflows #26
  │ ├─✅─RunWorkflows custom strResultNames #26
  │ ├─✅─RunWorkflows passes lConfig through to RunWorkflow #26
  │ └─✅─RunWorkflows handles empty workflow list #26
  ├─☑️─Issue 25: Differentiate package manifests from execution snapshots
  │ ├─✅─pkgManifest function exists #25
  │ ├─✅─pkgManifest has correct parameters #25
  │ ├─✅─pkgSnapshot function name is deprecated/removed #25
  │ └─✅─pkgListFromManifest references correct function #25
  └─☑️─Issue 19: Remove Legacy /site Explorer From workr
    ├─✅─site/ directory does not exist #19
    ├─✅─site-build.yaml workflow does not exist #19
    ├─✅─site-deploy.yaml workflow does not exist #19
    ├─✅─pkgdown-with-examples.yaml has no Node/explorer steps #19
    ├─✅─_pkgdown.yml has no explorer navbar entry #19
    └─✅─.gitignore has no site/node_modules/ entry #19
# Issue state: 📥 = open, ☑️ = closed (completed), ⛔ = closed (won't fix)
# Test disposition: ✅ = passed, ❌ = failed, 🚫 = skipped
✅ All tests passed

🟢 All issues have at least one test

🙈 5 issues with label "qcthat-nocov" were ignored


Completed Issues

🚫 A qcthat issue test matrix with 1 milestone, 5 issues, and 78 tests
├─█─Milestone: v1.0.0 (3 issues, 71 tests)
│ ├─☑️─Issue 26: Improve unit test coverage for v1.0 release
│ │ ├─✅─MakeWorkflowList loads YAML and RunStep executes workflow correctly #26
│ │ ├─✅─Complex workflow: multi-step loaded from YAML and executed end-to-end #26
│ │ ├─✅─Workflow from YAML loads and executes with meta reference #26
│ │ ├─✅─loadExample returns input data when initData.R is missing (#9, #26)
│ │ ├─✅─loadExample loads initData.R and merges with lData (#9, #26)
│ │ ├─✅─loadExample validates initData return type (#9, #26)
│ │ ├─✅─loadExample does not create duplicate names on repeated calls (#9, #26)
│ │ ├─✅─MakeWorkflowList output is a named list with expected structure #26
│ │ ├─✅─MakeWorkflowList returns metadata as expected #26
│ │ ├─✅─MakeWorkflowList errors on invalid strPath #26
│ │ ├─✅─MakeWorkflowList errors on invalid strPackage #26
│ │ ├─✅─MakeWorkflowList filters by strNames #26
│ │ ├─✅─MakeWorkflowList bExact filters exactly #26
│ │ ├─✅─MakeWorkflowList names list elements by meta$ID #26
│ │ ├─✅─MakeWorkflowList sorts by Priority #26
│ │ ├─✅─MakeWorkflowList sets default Priority to 0 #26
│ │ ├─✅─MakeWorkflowList loads from package #26
│ │ ├─✅─MakeWorkflowList bRecursive finds nested workflows #26
│ │ ├─✅─RunProject runs all phases in sorted order #26
│ │ ├─✅─RunProject passes data between phases #26
│ │ ├─✅─RunProject respects strPhases subset and order #26
│ │ ├─✅─RunProject errors on missing strPath #26
│ │ ├─✅─RunProject errors on missing requested phases #26
│ │ ├─✅─RunProject errors on empty project directory #26
│ │ ├─✅─RunProject bReturnResult and bKeepInputData pass through #26
│ │ ├─✅─RunQuery returns correct result (#26)
│ │ ├─✅─RunQuery handles empty df #26
│ │ ├─✅─RunQuery handles invalid input #26
│ │ ├─✅─RunQuery checks if strQuery contains 'FROM df' #26
│ │ ├─✅─RunQuery applies schema appropriately #26
│ │ ├─✅─RunQuery applies incomplete schema appropriately #26
│ │ ├─✅─RunQuery parses invalid date/times correctly #26
│ │ ├─✅─RunQuery requires lColumnMapping when bUseSchema is TRUE #26
│ │ ├─✅─RunStep handles lMeta and lData parameters correctly #26
│ │ ├─✅─RunStep handles parameters referencing elements within lMeta and lData #26
│ │ ├─✅─RunStep passes direct value parameters correctly #26
│ │ ├─✅─RunStep passes direct value vector parameters correctly #26
│ │ ├─✅─RunStep handles multiple parameters and function invocation correctly #26
│ │ ├─✅─RunStep will run a function from a namespace #26
│ │ ├─✅─RunStep will run a function without a namespace #26
│ │ ├─✅─RunStep will run a function with no parameters #26
│ │ ├─✅─RunStep recognizes rlang::expr() string parameters #26
│ │ ├─✅─RunStep recognizes expr() shorthand parameters #26
│ │ ├─✅─RunStep recognizes rlang::exprs() parameters #26
│ │ ├─✅─RunStep recognizes exprs() shorthand parameters #26
│ │ ├─✅─RunStep passes lSpec parameter correctly #26
│ │ ├─✅─RunWorkflow returns final step result by default #26
│ │ ├─✅─RunWorkflow returns full workflow object when bReturnResult = FALSE #26
│ │ ├─✅─RunWorkflow bKeepInputData = FALSE removes input data from lData #26
│ │ ├─✅─RunWorkflow bKeepInputData = TRUE preserves input data in lData #26
│ │ ├─✅─RunWorkflow multi-step preserves intermediate results in lData #26
│ │ ├─✅─RunWorkflow invokes lConfig$LoadData #26
│ │ ├─✅─RunWorkflow invokes lConfig$SaveData on bReturnResult = TRUE #26
│ │ ├─✅─RunWorkflow validates spec when present #26
│ │ ├─✅─RunWorkflow runs without spec #26
│ │ ├─✅─RunWorkflow runs with YAML files #26
│ │ ├─✅─RunWorkflows returns named list #26
│ │ ├─✅─RunWorkflows passes prior workflow results as data to later workflows #26
│ │ ├─✅─RunWorkflows custom strResultNames #26
│ │ ├─✅─RunWorkflows passes lConfig through to RunWorkflow #26
│ │ └─✅─RunWorkflows handles empty workflow list #26
│ ├─☑️─Issue 25: Differentiate package manifests from execution snapshots
│ │ ├─✅─pkgManifest function exists #25
│ │ ├─✅─pkgManifest has correct parameters #25
│ │ ├─✅─pkgSnapshot function name is deprecated/removed #25
│ │ └─✅─pkgListFromManifest references correct function #25
│ └─☑️─Issue 19: Remove Legacy /site Explorer From workr
│   ├─✅─site/ directory does not exist #19
│   ├─✅─site-build.yaml workflow does not exist #19
│   ├─✅─site-deploy.yaml workflow does not exist #19
│   ├─✅─pkgdown-with-examples.yaml has no Node/explorer steps #19
│   ├─✅─_pkgdown.yml has no explorer navbar entry #19
│   └─✅─.gitignore has no site/node_modules/ entry #19
└─█─Milestone: <none> (2 issues, 11 tests)
  ├─☑️─Issue 34: Finalize inst/workflows and demo Shiny app for shinyapps.io deployment
  │ ├─✅─03_AEKRI directory does not exist #34
  │ ├─✅─03_KRI initData.R does not reference gsm.core::lSource #34
  │ ├─✅─03_KRI initData.R does not reference PD domain #34
  │ ├─✅─03_KRI initData.R uses clindata package #34
  │ ├─✅─03_KRI initData.R returns Raw_SUBJ and Raw_AE #34
  │ ├─🚫─03_KRI RunWorkflows completes without error using initData #34
  │ └─✅─README contains link to hosted shinyapps.io demo #34
  └─☑️─Feature 9: Create Test data to initialize workflows
    ├─✅─loadExample returns input data when initData.R is missing (#9, #26)
    ├─✅─loadExample loads initData.R and merges with lData (#9, #26)
    ├─✅─loadExample validates initData return type (#9, #26)
    └─✅─loadExample does not create duplicate names on repeated calls (#9, #26)
# Issue state: 📥 = open, ☑️ = closed (completed), ⛔ = closed (won't fix)
# Test disposition: ✅ = passed, ❌ = failed, 🚫 = skipped
🚫 1 test was skipped

🟢 All issues have at least one test

🙈 7 issues with label "qcthat-nocov" were ignored


This report was generated by this GitHub Actions run.

Last updated: 2026-04-09 19:14:02 UTC

Session Info ─ Session info ───────────────────────────────────────────────────────────────

setting value

version R version 4.5.3 (2026-03-11)

os Ubuntu 24.04.4 LTS

system x86_64, linux-gnu

ui X11

language (EN)

collate C.UTF-8

ctype C.UTF-8

tz UTC

date 2026-04-09

pandoc 3.1.3 @ /usr/bin/pandoc

quarto 1.9.37 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────

package * version date (UTC) lib source

admiral 1.4.1 2026-02-03 [1] RSPM

admiraldev 1.4.0 2026-01-14 [1] RSPM

arrow 23.0.1.2 2026-03-25 [1] RSPM

askpass 1.2.1 2024-10-04 [1] RSPM

assertthat 0.2.1 2019-03-21 [1] RSPM

astgrepr 0.1.1 2025-06-07 [1] RSPM

backports 1.5.1 2026-04-03 [1] RSPM

base * 4.5.3 2026-03-11 [3] local

base64enc 0.1-6 2026-02-02 [1] RSPM

bigD 0.3.1 2025-04-03 [1] RSPM

bit 4.6.0 2025-03-06 [1] RSPM

bit64 4.6.0-1 2025-01-16 [1] RSPM

bitops 1.0-9 2024-10-03 [1] RSPM

blob 1.3.0 2026-01-14 [1] RSPM

boot 1.3-32 2025-08-29 [3] CRAN (R 4.5.3)

brew 1.0-10 2023-12-16 [1] RSPM

brio 1.1.5 2024-04-24 [1] RSPM

bslib 0.10.0 2026-01-26 [1] RSPM

cachem 1.1.0 2024-05-16 [1] RSPM

callr 3.7.6 2024-03-25 [1] RSPM

cards 0.7.1 2025-12-02 [1] RSPM

cardx 0.3.2 2026-02-05 [1] RSPM

checkmate 2.3.4 2026-02-03 [1] RSPM

class 7.3-23 2025-01-01 [3] CRAN (R 4.5.3)

cli 3.6.5 2025-04-23 [1] RSPM

clipr 0.8.0 2022-02-22 [1] RSPM

cluster 2.1.8.2 2026-02-05 [3] CRAN (R 4.5.3)

codetools 0.2-20 2024-03-31 [3] CRAN (R 4.5.3)

commonmark 2.0.0 2025-07-07 [1] RSPM

compiler 4.5.3 2026-03-11 [3] local

covr 3.6.5 2025-11-09 [1] RSPM

crayon 1.5.3 2024-06-20 [1] RSPM

credentials 2.0.3 2025-09-12 [1] RSPM

curl 7.0.0 2025-08-19 [1] RSPM

datasets * 4.5.3 2026-03-11 [3] local

DBI 1.3.0 2026-02-25 [1] RSPM

dbplyr 2.5.2 2026-02-13 [1] RSPM

desc 1.4.3 2023-12-10 [1] RSPM

diffobj 0.3.6 2025-04-21 [1] RSPM

digest 0.6.39 2025-11-19 [1] RSPM

downlit 0.4.5 2025-11-14 [1] RSPM

dplyr 1.2.1 2026-04-03 [1] RSPM

duckdb 1.5.1 2026-03-26 [1] RSPM

emoji 16.0.0 2024-10-28 [1] RSPM

evaluate 1.0.5 2025-08-27 [1] RSPM

fansi 1.0.7 2025-11-19 [1] RSPM

farver 2.1.2 2024-05-13 [1] RSPM

fastmap 1.2.0 2024-05-15 [1] RSPM

fontawesome 0.5.3 2024-11-16 [1] RSPM

foreign 0.8-91 2026-01-29 [3] CRAN (R 4.5.3)

fs 2.0.1 2026-03-24 [1] RSPM

generics 0.1.4 2025-05-09 [1] RSPM

gert 2.3.1 2026-01-11 [1] RSPM

gh 1.5.0 2025-05-26 [1] RSPM

git2r 0.36.2 2025-03-29 [1] RSPM

gitcreds 0.1.2 2022-09-08 [1] RSPM

glue 1.8.0 2024-09-30 [1] RSPM

graphics * 4.5.3 2026-03-11 [3] local

grDevices * 4.5.3 2026-03-11 [3] local

grid 4.5.3 2026-03-11 [3] local

gsm.utils 0.3.0 2026-04-08 [1] Github (Gilead-Public/gsm.utils@778ce95)

gt 1.3.0 2026-01-22 [1] RSPM

gtsummary 2.5.0 2025-12-05 [1] RSPM

highr 0.12 2026-03-06 [1] RSPM

hms 1.1.4 2025-10-17 [1] RSPM

htmltools 0.5.9 2025-12-04 [1] RSPM

htmlwidgets 1.6.4 2023-12-06 [1] RSPM

httpuv 1.6.17 2026-03-18 [1] RSPM

httr 1.4.8 2026-02-13 [1] RSPM

httr2 1.2.2 2025-12-08 [1] RSPM

ini 0.3.1 2018-05-20 [1] RSPM

jquerylib 0.1.4 2021-04-26 [1] RSPM

jsonlite 2.0.0 2025-03-27 [1] RSPM

juicyjuice 0.1.0 2022-11-10 [1] RSPM

KernSmooth 2.23-26 2025-01-01 [3] CRAN (R 4.5.3)

knitr 1.51 2025-12-20 [1] RSPM

labeling 0.4.3 2023-08-29 [1] RSPM

later 1.4.8 2026-03-05 [1] RSPM

lattice 0.22-9 2026-02-09 [3] CRAN (R 4.5.3)

lifecycle 1.0.5 2026-01-08 [1] RSPM

litedown 0.9 2025-12-18 [1] RSPM

lubridate 1.9.5 2026-02-04 [1] RSPM

magrittr 2.0.5 2026-04-04 [1] RSPM

markdown 2.0 2025-03-23 [1] RSPM

MASS 7.3-65 2025-02-28 [3] CRAN (R 4.5.3)

Matrix 1.7-4 2025-08-28 [3] CRAN (R 4.5.3)

memoise 2.0.1 2021-11-26 [1] RSPM

methods * 4.5.3 2026-03-11 [3] local

mgcv 1.9-4 2025-11-07 [3] CRAN (R 4.5.3)

mime 0.13 2025-03-17 [1] RSPM

nlme 3.1-168 2025-03-31 [3] CRAN (R 4.5.3)

nnet 7.3-20 2025-01-01 [3] CRAN (R 4.5.3)

openssl 2.3.5 2026-02-26 [1] RSPM

otel 0.2.0 2025-08-29 [1] RSPM

pak 0.9.3 2026-04-09 [2] local

parallel 4.5.3 2026-03-11 [3] local

pillar 1.11.1 2025-09-17 [1] RSPM

pkgbuild 1.4.8 2025-05-26 [1] RSPM

pkgconfig 2.0.3 2019-09-22 [1] RSPM

pkgdown 2.2.0 2025-11-06 [1] RSPM

pkgload 1.5.1 2026-04-01 [1] RSPM

praise 1.0.0 2015-08-11 [1] RSPM

processx 3.8.7 2026-04-01 [1] RSPM

promises 1.5.0 2025-11-01 [1] RSPM

ps 1.9.2 2026-03-31 [1] RSPM

purrr 1.2.1 2026-01-09 [1] RSPM

qcthat 1.1.2 2026-04-09 [1] Github (Gilead-Public/qcthat@d0958dc)

quarto 1.5.1 2025-09-04 [1] RSPM

R6 2.6.1 2025-02-15 [1] RSPM

ragg 1.5.2 2026-03-23 [1] RSPM

rappdirs 0.3.4 2026-01-17 [1] RSPM

RColorBrewer 1.1-3 2022-04-03 [1] RSPM

Rcpp 1.1.1 2026-01-10 [1] RSPM

reactable 0.4.5 2025-12-01 [1] RSPM

reactR 0.6.1 2024-09-14 [1] RSPM

rex 1.2.2 2026-03-28 [1] RSPM

rlang 1.2.0 2026-04-06 [1] RSPM

rmarkdown 2.31 2026-03-26 [1] RSPM

roxygen2 7.3.3 2025-09-03 [1] RSPM

rpart 4.1.24 2025-01-07 [3] CRAN (R 4.5.3)

rprojroot 2.1.1 2025-08-26 [1] RSPM

rrapply 1.2.8 2025-11-25 [1] RSPM

rstudioapi 0.18.0 2026-01-16 [1] RSPM

sass 0.4.10 2025-04-11 [1] RSPM

scales 1.4.0 2025-04-24 [1] RSPM

sdtm.oak 0.2.0 2025-05-22 [1] RSPM

sessioninfo 1.2.3 2025-02-05 [1] any (@1.2.3)

shiny 1.13.0 2026-02-20 [1] RSPM

sourcetools 0.1.7-2 2026-03-28 [1] RSPM

spatial 7.3-18 2025-01-01 [3] CRAN (R 4.5.3)

splines 4.5.3 2026-03-11 [3] local

stats * 4.5.3 2026-03-11 [3] local

stats4 4.5.3 2026-03-11 [3] local

stringi 1.8.7 2025-03-27 [1] RSPM

stringr 1.6.0 2025-11-04 [1] RSPM

survival 3.8-6 2026-01-16 [3] CRAN (R 4.5.3)

sys 3.4.3 2024-10-04 [1] RSPM

systemfonts 1.3.2 2026-03-05 [1] RSPM

tcltk 4.5.3 2026-03-11 [3] local

testthat 3.3.2 2026-01-11 [1] RSPM

textshaping 1.0.5 2026-03-06 [1] RSPM

tibble 3.3.1 2026-01-11 [1] RSPM

tidyr 1.3.2 2025-12-19 [1] RSPM

tidyselect 1.2.1 2024-03-11 [1] RSPM

timechange 0.4.0 2026-01-29 [1] RSPM

tinytex 0.59 2026-03-28 [1] RSPM

tools 4.5.3 2026-03-11 [3] local

usethis 3.2.1 2025-09-06 [1] RSPM

utf8 1.2.6 2025-06-08 [1] RSPM

utils * 4.5.3 2026-03-11 [3] local

V8 8.0.1 2025-10-10 [1] RSPM

vctrs 0.7.2 2026-03-21 [1] RSPM

viridisLite 0.4.3 2026-02-04 [1] RSPM

waldo 0.6.2 2025-07-11 [1] RSPM

whisker 0.4.1 2022-12-05 [1] RSPM

withr 3.0.2 2024-10-28 [1] RSPM

workr 0.99.0 2026-04-08 [1] local

xfun 0.57 2026-03-20 [1] RSPM

xml2 1.5.2 2026-01-17 [1] RSPM

xtable 1.8-8 2026-02-22 [1] RSPM

yaml 2.3.12 2025-12-10 [1] RSPM

zip 2.3.3 2025-05-13 [1] RSPM

[1] /home/runner/work/_temp/Library

[2] /opt/R/4.5.3/lib/R/site-library

[3] /opt/R/4.5.3/lib/R/library

  • ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────