From 2c7257fb6b2a7f98e7086856f9917d9a9bad0e6a Mon Sep 17 00:00:00 2001 From: cebarboza Date: Wed, 19 Aug 2026 15:31:16 +0200 Subject: [PATCH 1/3] packageList --- .posit/assistant/settings.json | 6 + R/getPkgZips.R | 57 ++ tests/testthat/data/renv.lock | 1302 ++++++++++++++++++++++++++++++ tests/testthat/test-getPkgZips.R | 49 ++ 4 files changed, 1414 insertions(+) create mode 100644 .posit/assistant/settings.json create mode 100644 tests/testthat/data/renv.lock diff --git a/.posit/assistant/settings.json b/.posit/assistant/settings.json new file mode 100644 index 0000000..9e216fe --- /dev/null +++ b/.posit/assistant/settings.json @@ -0,0 +1,6 @@ +{ + "sandbox": { + "enabled": false + }, + "model.webSearch": true +} \ No newline at end of file diff --git a/R/getPkgZips.R b/R/getPkgZips.R index a72d57f..a64b18e 100644 --- a/R/getPkgZips.R +++ b/R/getPkgZips.R @@ -441,3 +441,60 @@ suppPackages <- function() { ) ) # xfun already exists in lockfile, if override_lock = TRUE, should get v0.57 from R v4.4 } + +packageList <- function( + lockfile_path, + type = "github" +) { + requireInstall("jsonvalidate") + is_lockfile <- renv::lockfile_validate( + lockfile = lockfile_path + ) + if (isTRUE(is_lockfile)) { + lockfile_data <- renv::lockfile_read( + file = lockfile_path + ) + cli::cli_alert_success( + "{lockfile_path} read successfully" + ) + } else { + cli::cli_abort( + "{lockfile_path} is not a valid renv.lock file" + ) + } + checkmate::assertChoice( + type, + c("github", "all") + ) + if (type == "github") { + return(extractGithubList(lockfile_data$Packages)) + } +} + +extractGithubList <- function(lockfile_data) { + lockfile_data |> + lapply( + FUN = function(x) { + if (x$Source == "GitHub") { + if (x$RemoteType == "github") { + return(x$Version) + } + } + } + ) |> + Filter( + Negate(is.null), + x = _ + ) +} + +requireInstall <- function(package) { + if (!requireNamespace(package, quietly = TRUE)) { + cli::cli_abort( + glue::glue( + "'{package}' must be installed to use this function." + ) + ) + } + return(invisible()) +} \ No newline at end of file diff --git a/tests/testthat/data/renv.lock b/tests/testthat/data/renv.lock new file mode 100644 index 0000000..4062506 --- /dev/null +++ b/tests/testthat/data/renv.lock @@ -0,0 +1,1302 @@ +{ + "R": { + "Version": "4.4.1", + "Repositories": [ + { + "Name": "CRAN", + "URL": "https://packagemanager.posit.co/cran/latest" + } + ] + }, + "Packages": { + "DT": { + "Package": "DT", + "Version": "0.34.0", + "Source": "Repository", + "Repository": "https://cloud.r-project.org", + "Requirements": [ + "crosstalk", + "htmltools", + "htmlwidgets", + "jquerylib", + "jsonlite", + "magrittr", + "promises" + ], + "Hash": "a9d00f59f9c7e613dd4c3e0d27135a03" + }, + "DarwinShinyModules": { + "Package": "DarwinShinyModules", + "Version": "0.6.0", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteUsername": "darwin-eu", + "RemoteRepo": "DarwinShinyModules", + "RemoteRef": "main", + "RemoteSha": "b17492dc42528b2a9f00ae450c4360c411dbdd44", + "Requirements": [ + "DT", + "R", + "R6", + "checkmate", + "dplyr", + "flextable", + "ggplot2", + "gt", + "plotly", + "promises", + "purrr", + "reactable", + "rlang", + "shiny", + "shinyWidgets", + "stringr" + ], + "Hash": "1511c185ae01231e79989fb7b53e5637" + }, + "R6": { + "Package": "R6", + "Version": "2.6.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "d4335fe7207f1c01ab8c41762f5840d4" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.1.1-1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "8842cfd023a523ec9e011b9e4aab50ef" + }, + "S7": { + "Package": "S7", + "Version": "0.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "6a72e94a8c9be4ef719af3aa3628f2dc" + }, + "V8": { + "Package": "V8", + "Version": "8.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Rcpp", + "curl", + "jsonlite", + "utils" + ], + "Hash": "9fcf4128ded76196cf5f9e731d5e14ef" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "sys" + ], + "Hash": "c39f4155b3ceb1a9a2799d700fbd4b6a" + }, + "backports": { + "Package": "backports", + "Version": "1.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "e3e65442a2749b59692220f368f46c46" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5edb675b7baa6e9a0d86dd2c28de1676" + }, + "bigD": { + "Package": "bigD", + "Version": "0.3.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "ad123ab90aa2fc795512f61ff6939c4a" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-9", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "d972ef991d58c19e6efa71b21f5e144b" + }, + "bslib": { + "Package": "bslib", + "Version": "0.11.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "cachem", + "fastmap", + "grDevices", + "htmltools", + "jquerylib", + "jsonlite", + "lifecycle", + "memoise", + "mime", + "rlang", + "sass" + ], + "Hash": "82c0dcea3e967cfeaa263e920798a77e" + }, + "cachem": { + "Package": "cachem", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "fastmap", + "rlang" + ], + "Hash": "cd9a672193789068eb5a2aad65a0dedf" + }, + "checkmate": { + "Package": "checkmate", + "Version": "2.3.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "backports", + "utils" + ], + "Hash": "86cbe221fc19b56242f6c3eb0d4c5ab5" + }, + "cli": { + "Package": "cli", + "Version": "3.6.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "a73d822b669d443ff8de6928f9c49850" + }, + "commonmark": { + "Package": "commonmark", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "8cba62334c1088d21689d353a7e87663" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.5.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "20ecb9105a3fb48a8390919abc3b7e90" + }, + "crosstalk": { + "Package": "crosstalk", + "Version": "1.2.2", + "Source": "Repository", + "Repository": "https://cloud.r-project.org", + "Requirements": [ + "R6", + "htmltools", + "jsonlite", + "lazyeval" + ], + "Hash": "8b008bc619e0bbebb5646b3d37efdad1" + }, + "curl": { + "Package": "curl", + "Version": "7.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "2e004ed19964915a8faf48a574439be9" + }, + "data.table": { + "Package": "data.table", + "Version": "1.18.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "da9ddede68a6f6e5d3098c0ab81b6e1f" + }, + "digest": { + "Package": "digest", + "Version": "0.6.39", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "d18028e978a88b2b16ef8d400cb49adf" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "generics", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "rlang", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "d71f190466b9496cf8543c76641be5cf" + }, + "evaluate": { + "Package": "evaluate", + "Version": "1.0.5", + "Source": "Repository", + "Repository": "https://cloud.r-project.org", + "Requirements": [ + "R" + ], + "Hash": "94cf2c54237f6841cee68e3ba4ab5a14" + }, + "farver": { + "Package": "farver", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "680887028577f3fa2a81e410ed0d6e42" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "aa5e1cd11c2d15497494c5292d7ffcc8" + }, + "flextable": { + "Package": "flextable", + "Version": "0.9.12", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "data.table", + "gdtools", + "grDevices", + "graphics", + "grid", + "htmltools", + "knitr", + "officer", + "ragg", + "rlang", + "rmarkdown", + "stats", + "utils", + "uuid", + "xml2" + ], + "Hash": "981c8f0fcb109d4720e217b9a291ccf1" + }, + "fontBitstreamVera": { + "Package": "fontBitstreamVera", + "Version": "0.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "f6068021eff4aba735a9b2353516636c" + }, + "fontLiberation": { + "Package": "fontLiberation", + "Version": "0.1.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "f918c5e723f86f409912104d5b7a71d6" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "htmltools", + "rlang" + ], + "Hash": "bd1297f9b5b1fc1372d19e2c4cd82215" + }, + "fontquiver": { + "Package": "fontquiver", + "Version": "0.2.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "fontBitstreamVera", + "fontLiberation" + ], + "Hash": "fc0f4226379e451057d55419fd31761e" + }, + "fs": { + "Package": "fs", + "Version": "2.1.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "09278623bca442bc53b0940ffa2f6d87" + }, + "gdtools": { + "Package": "gdtools", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "Rcpp", + "fontquiver", + "htmltools", + "systemfonts", + "tools" + ], + "Hash": "bca589967c4b7360ced3c08c69a96787" + }, + "generics": { + "Package": "generics", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "4b29bf698d0c7bdb9f1e4976e7ade41d" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "4.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "S7", + "cli", + "grDevices", + "grid", + "gtable", + "isoband", + "lifecycle", + "rlang", + "scales", + "stats", + "vctrs", + "withr" + ], + "Hash": "98520fe6b2745c466dca8e46aaa86242" + }, + "glue": { + "Package": "glue", + "Version": "1.8.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "f8122473e9a49e00d0642f78235ca5e3" + }, + "gt": { + "Package": "gt", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "base64enc", + "bigD", + "bitops", + "cli", + "commonmark", + "dplyr", + "fs", + "glue", + "htmltools", + "htmlwidgets", + "juicyjuice", + "magrittr", + "markdown", + "reactable", + "rlang", + "sass", + "scales", + "tidyselect", + "vctrs", + "xml2" + ], + "Hash": "7153ac3985ed54f1a318590b73950329" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang", + "stats" + ], + "Hash": "de949855009e2d4d0e52a844e30617ae" + }, + "highr": { + "Package": "highr", + "Version": "0.12", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "xfun" + ], + "Hash": "2a2f862ade01a56dcbcd60944de11255" + }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "base64enc", + "digest", + "fastmap", + "grDevices", + "rlang", + "utils" + ], + "Hash": "102298e238c14eb830cc4b5edd23c3e8" + }, + "htmlwidgets": { + "Package": "htmlwidgets", + "Version": "1.6.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "htmltools", + "jsonlite", + "knitr", + "rmarkdown", + "yaml" + ], + "Hash": "04291cc45198225444a397606810ac37" + }, + "httpuv": { + "Package": "httpuv", + "Version": "1.6.17", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "Rcpp", + "later", + "promises", + "utils" + ], + "Hash": "4ff0297ad1cd631d57f0d30172972754" + }, + "httr": { + "Package": "httr", + "Version": "1.4.8", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "curl", + "jsonlite", + "mime", + "openssl" + ], + "Hash": "10bcae7793493db63a6872096132e10c" + }, + "isoband": { + "Package": "isoband", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "cli", + "cpp11", + "grid", + "rlang", + "utils" + ], + "Hash": "0f9a864bbd7ce0232ad05cb76249cc1a" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "htmltools" + ], + "Hash": "5aab57a3bd297eee1c1d862735972182" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "methods" + ], + "Hash": "b0776f526d36d8bd4a3344a88fe165c4" + }, + "juicyjuice": { + "Package": "juicyjuice", + "Version": "0.1.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "V8" + ], + "Hash": "3bcd11943da509341838da9399e18bce" + }, + "knitr": { + "Package": "knitr", + "Version": "1.51", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "evaluate", + "highr", + "methods", + "tools", + "xfun", + "yaml" + ], + "Hash": "27682babb50f03b6eb7939ea69ec79ca" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "later": { + "Package": "later", + "Version": "1.4.8", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "rlang" + ], + "Hash": "824c180e69b9be79ab96a985e233c470" + }, + "lazyeval": { + "Package": "lazyeval", + "Version": "0.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rlang" + ], + "Hash": "2757e46c2633dd5854f62615df70d0d7" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "rlang" + ], + "Hash": "36dbfe4fba6c064db50a671a90297c85" + }, + "litedown": { + "Package": "litedown", + "Version": "0.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "commonmark", + "utils", + "xfun" + ], + "Hash": "6b9435273e6506fbafa5909adf4abb88" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "665e77ab6e5f37a7913226d40b324e37" + }, + "markdown": { + "Package": "markdown", + "Version": "2.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "litedown", + "utils", + "xfun" + ], + "Hash": "b4349847250b103bbbb8bc6819c4fbca" + }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "cachem", + "rlang" + ], + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" + }, + "mime": { + "Package": "mime", + "Version": "0.13", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tools" + ], + "Hash": "0ec19f34c72fab674d8f2b4b1c6410e1" + }, + "officer": { + "Package": "officer", + "Version": "0.7.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R6", + "cli", + "dplyr", + "grDevices", + "graphics", + "openssl", + "ragg", + "stats", + "tidyr", + "utils", + "uuid", + "xml2", + "zip" + ], + "Hash": "11d3d171bd3d2442d9ecb8136b42749d" + }, + "openssl": { + "Package": "openssl", + "Version": "2.4.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "askpass" + ], + "Hash": "865a99ecdce7c318efa3a467b7614ec3" + }, + "otel": { + "Package": "otel", + "Version": "0.2.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "627d6993db1043703c0b084fa432f21f" + }, + "pillar": { + "Package": "pillar", + "Version": "1.11.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli", + "glue", + "lifecycle", + "rlang", + "utf8", + "utils", + "vctrs" + ], + "Hash": "1395e64f2689ffd503657778e810cee2" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "plotly": { + "Package": "plotly", + "Version": "4.12.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "RColorBrewer", + "base64enc", + "crosstalk", + "data.table", + "digest", + "dplyr", + "ggplot2", + "htmltools", + "htmlwidgets", + "httr", + "jsonlite", + "lazyeval", + "magrittr", + "promises", + "purrr", + "rlang", + "scales", + "tibble", + "tidyr", + "tools", + "vctrs", + "viridisLite" + ], + "Hash": "282f8b208bc767c67a370b47bff6ada7" + }, + "promises": { + "Package": "promises", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "fastmap", + "later", + "lifecycle", + "magrittr", + "otel", + "rlang" + ], + "Hash": "62cb899ed5fff70d4e918ec1b762bf7c" + }, + "purrr": { + "Package": "purrr", + "Version": "1.2.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "lifecycle", + "magrittr", + "rlang", + "vctrs" + ], + "Hash": "0a35605539b085a4828ec55ad973fe60" + }, + "ragg": { + "Package": "ragg", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "systemfonts", + "textshaping" + ], + "Hash": "c06b460d55dd27458977e417e8ff02c7" + }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "f146a5bfc94db048309712535d4d0aee" + }, + "reactR": { + "Package": "reactR", + "Version": "0.6.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "htmltools" + ], + "Hash": "b8e3d93f508045812f47136c7c44c251" + }, + "reactable": { + "Package": "reactable", + "Version": "0.4.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "digest", + "htmltools", + "htmlwidgets", + "jsonlite", + "reactR" + ], + "Hash": "abfd6fa3794ff78116123d95845e0c32" + }, + "rlang": { + "Package": "rlang", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "f88151fb9ca15e72dc351deb1328716e" + }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.31", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bslib", + "evaluate", + "fontawesome", + "htmltools", + "jquerylib", + "jsonlite", + "knitr", + "methods", + "tinytex", + "tools", + "utils", + "xfun", + "yaml" + ], + "Hash": "f34039d57d861d2869cbf9be813ed08e" + }, + "sass": { + "Package": "sass", + "Version": "0.4.10", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R6", + "fs", + "htmltools", + "rappdirs", + "rlang" + ], + "Hash": "3fb78d066fb92299b1d13f6a7c9a90a8" + }, + "scales": { + "Package": "scales", + "Version": "1.4.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "RColorBrewer", + "cli", + "farver", + "glue", + "labeling", + "lifecycle", + "rlang", + "viridisLite" + ], + "Hash": "c5bba8f0d1df8c4b9538a40570798d9b" + }, + "shiny": { + "Package": "shiny", + "Version": "1.13.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "bslib", + "cachem", + "cli", + "commonmark", + "fastmap", + "fontawesome", + "glue", + "grDevices", + "htmltools", + "httpuv", + "jsonlite", + "later", + "lifecycle", + "methods", + "mime", + "otel", + "promises", + "rlang", + "sourcetools", + "tools", + "utils", + "withr", + "xtable" + ], + "Hash": "3ae8521a5a4576fc4b78d00d401f22f9" + }, + "shinyWidgets": { + "Package": "shinyWidgets", + "Version": "0.9.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bslib", + "grDevices", + "htmltools", + "jsonlite", + "rlang", + "sass", + "shiny" + ], + "Hash": "e8f592e8c0a636fef0c253c8196d78c7" + }, + "sourcetools": { + "Package": "sourcetools", + "Version": "0.1.7-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "e716e13bfbfe8acb6182a05f4b367772" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "2b56088e23bdd58f89aebf43a0913457" + }, + "stringr": { + "Package": "stringr", + "Version": "1.6.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "stringi", + "vctrs" + ], + "Hash": "d47392652eedc68bf916657347ff2526" + }, + "sys": { + "Package": "sys", + "Version": "3.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "de342ebfebdbf40477d0758d05426646" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.3.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "base64enc", + "cpp11", + "grid", + "jsonlite", + "lifecycle", + "tools", + "utils" + ], + "Hash": "1f930828d6590af5da47b3ab4fe161e6" + }, + "textshaping": { + "Package": "textshaping", + "Version": "1.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "lifecycle", + "stats", + "stringi", + "systemfonts", + "utils" + ], + "Hash": "addb750a886a2ac415dea6f8068867de" + }, + "tibble": { + "Package": "tibble", + "Version": "3.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "lifecycle", + "magrittr", + "methods", + "pillar", + "pkgconfig", + "rlang", + "utils", + "vctrs" + ], + "Hash": "c55df870972551cac674b50cadb2d51f" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "a4fa2f5876396f04814cb9d8d9ab89e9" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.59", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "xfun" + ], + "Hash": "2688c3e240d4ccc7d6aae804f7fdf322" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "d526d558be176e9ceb68c3d1e83479b7" + }, + "uuid": { + "Package": "uuid", + "Version": "1.2-2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "528fc9e90d70a6a115e21164f37b2c64" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.7.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "2dcde2d30d3ad67bf1d3a37177457b87" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "9380d36888b72faf5ae6c22b44703867" + }, + "withr": { + "Package": "withr", + "Version": "3.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "cc2d62c76458d425210d1eb1478b30b4" + }, + "xfun": { + "Package": "xfun", + "Version": "0.57", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "stats", + "tools" + ], + "Hash": "476c8908ae56baf122e69bb2c2d9f631" + }, + "xml2": { + "Package": "xml2", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "methods", + "rlang" + ], + "Hash": "d8e98d08a4a4d03f5052acc6e6204b99" + }, + "xtable": { + "Package": "xtable", + "Version": "1.8-8", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "stats", + "utils" + ], + "Hash": "93b19c064862d315a828c7170d806453" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.12", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "7cd77cb32abd9220d744307e9fc94ffb" + }, + "zip": { + "Package": "zip", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli" + ], + "Hash": "b6637f22cadc4e12ad70c4b7d8d63e15" + } + } +} diff --git a/tests/testthat/test-getPkgZips.R b/tests/testthat/test-getPkgZips.R index 22257e8..f112c15 100644 --- a/tests/testthat/test-getPkgZips.R +++ b/tests/testthat/test-getPkgZips.R @@ -1,3 +1,52 @@ +test_that("packageList git repostitories", { + + test_lockfile <- testthat::test_path( + "data", + "renv.lock" + ) + renv::lockfile_create( + libpaths = .libPaths(), + packages = c("DarwinShinyModules", "dplyr") + ) |> + renv::lockfile_write( + file = testthat::test_path( + "data", + "renv.lock" + ) + ) + packageList( + lockfile_path = test_lockfile + ) |> + expect_equal( + list("DarwinShinyModules" = "0.6.0") + ) + +}) + +test_that("extractGithubList", { + test_lockfile <- testthat::test_path( + "data", + "renv.lock" + ) + renv::lockfile_create( + libpaths = .libPaths(), + packages = c("DarwinShinyModules", "dplyr") + ) |> + renv::lockfile_write( + file = testthat::test_path( + "data", + "renv.lock" + ) + ) + lockfile_data <- renv::lockfile_read( + file = test_lockfile + ) + extractGithubList(lockfile_data$Packages) |> + expect_equal( + list("DarwinShinyModules" = "0.6.0") + ) +}) + # Test on getPkgZips(): creation of dir and download of zips from project specific renv.lock ---- test_that("Package zips are actually downloaded to renv/cellar from studyGenerics renv.lock", { msgs <- capture_messages(getPkgZips()) From 38139b9497edbcf49d567f05bc2ca9d513a3458f Mon Sep 17 00:00:00 2001 From: cebarboza Date: Wed, 19 Aug 2026 16:02:47 +0200 Subject: [PATCH 2/3] packageList --- AGENTS.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..e69de29 From 0595e4fadcd78df36ad18cc40dfc73041c69a803 Mon Sep 17 00:00:00 2001 From: cebarboza Date: Wed, 19 Aug 2026 16:10:30 +0200 Subject: [PATCH 3/3] dead space --- tests/testthat/test-getPkgZips.R | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/testthat/test-getPkgZips.R b/tests/testthat/test-getPkgZips.R index f112c15..744d940 100644 --- a/tests/testthat/test-getPkgZips.R +++ b/tests/testthat/test-getPkgZips.R @@ -1,5 +1,4 @@ test_that("packageList git repostitories", { - test_lockfile <- testthat::test_path( "data", "renv.lock" @@ -20,7 +19,6 @@ test_that("packageList git repostitories", { expect_equal( list("DarwinShinyModules" = "0.6.0") ) - }) test_that("extractGithubList", {