From 656a8de61ed19d8df79ce8c15a85f05c78c8699b Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 17 Apr 2023 08:19:43 +0200 Subject: [PATCH 1/4] update deps --- .pre-commit-config.yaml | 1 + renv.lock | 374 ++++++++++++++++++++++++++-------------- renv/activate.R | 66 +++++-- renv/settings.json | 17 ++ 4 files changed, 311 insertions(+), 147 deletions(-) create mode 100644 renv/settings.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 853cfd8be..9b37246ec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -59,6 +59,7 @@ repos: inst/pre-commit-.*| inst/usethis-legacy-hook| LICENSE| + renv/.*| tests/testthat/in/.*| )$ - id: readme-rmd-rendered diff --git a/renv.lock b/renv.lock index 33a8ed2b2..0b2c7246d 100644 --- a/renv.lock +++ b/renv.lock @@ -14,280 +14,336 @@ "Version": "0.16.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "fe539ca3f8efb7410c3ae2cf5fe6c0f8", "Requirements": [ + "R", "R.methodsS3", "R.oo", "R.utils", - "digest" - ] + "digest", + "utils" + ], + "Hash": "fe539ca3f8efb7410c3ae2cf5fe6c0f8" }, "R.methodsS3": { "Package": "R.methodsS3", "Version": "1.8.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "278c286fd6e9e75d0c2e8f731ea445c8", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "278c286fd6e9e75d0c2e8f731ea445c8" }, "R.oo": { "Package": "R.oo", "Version": "1.25.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "a0900a114f4f0194cf4aa8cd4a700681", "Requirements": [ - "R.methodsS3" - ] + "R", + "R.methodsS3", + "methods", + "utils" + ], + "Hash": "a0900a114f4f0194cf4aa8cd4a700681" }, "R.utils": { "Package": "R.utils", "Version": "2.12.2", "Source": "Repository", "Repository": "RSPM", - "Hash": "325f01db13da12c04d8f6e7be36ff514", "Requirements": [ + "R", "R.methodsS3", - "R.oo" - ] + "R.oo", + "methods", + "tools", + "utils" + ], + "Hash": "325f01db13da12c04d8f6e7be36ff514" }, "R6": { "Package": "R6", "Version": "2.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "470851b6d5d0ac559e9d01bb352b4021", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" }, "Rcpp": { "Package": "Rcpp", - "Version": "1.0.9", + "Version": "1.0.10", "Source": "Repository", - "Repository": "CRAN", - "Hash": "e9c08b94391e9f3f97355841229124f2", - "Requirements": [] + "Repository": "RSPM", + "Requirements": [ + "methods", + "utils" + ], + "Hash": "e749cae40fa9ef469b6050959517453c" }, "backports": { "Package": "backports", "Version": "1.4.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "c39fbec8a30d23e721980b8afb31984c", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "c39fbec8a30d23e721980b8afb31984c" }, "brew": { "Package": "brew", "Version": "1.0-8", "Source": "Repository", "Repository": "RSPM", - "Hash": "d69a786e85775b126bddbee185ae6084", - "Requirements": [] + "Hash": "d69a786e85775b126bddbee185ae6084" }, "callr": { "Package": "callr", "Version": "3.7.3", "Source": "Repository", "Repository": "RSPM", - "Hash": "9b2191ede20fa29828139b9900922e51", "Requirements": [ + "R", "R6", - "processx" - ] + "processx", + "utils" + ], + "Hash": "9b2191ede20fa29828139b9900922e51" }, "cli": { "Package": "cli", - "Version": "3.4.1", + "Version": "3.6.1", "Source": "Repository", "Repository": "RSPM", - "Hash": "0d297d01734d2bcea40197bd4971a764", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "89e6d8219950eac806ae0c489052048a" }, "codetools": { "Package": "codetools", - "Version": "0.2-18", + "Version": "0.2-19", "Source": "Repository", - "Repository": "CRAN", - "Hash": "019388fc48e48b3da0d3a76ff94608a8", - "Requirements": [] + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "c089a619a7fae175d149d89164f8c7d8" }, "commonmark": { "Package": "commonmark", - "Version": "1.8.1", + "Version": "1.9.0", "Source": "Repository", "Repository": "RSPM", - "Hash": "b6e3e947d1d7ebf3d2bdcea1bde63fe7", - "Requirements": [] + "Hash": "d691c61bff84bd63c383874d2d0c3307" }, "cpp11": { "Package": "cpp11", "Version": "0.4.3", "Source": "Repository", "Repository": "RSPM", - "Hash": "ed588261931ee3be2c700d22e94a29ab", - "Requirements": [] + "Hash": "ed588261931ee3be2c700d22e94a29ab" }, "crayon": { "Package": "crayon", "Version": "1.5.2", "Source": "Repository", "Repository": "RSPM", - "Hash": "e8a1e41acf02548751f45c718d55aa6a", - "Requirements": [] + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" }, "cyclocomp": { "Package": "cyclocomp", "Version": "1.1.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "53cbed70a2f7472d48fb6aef08442f25", "Requirements": [ "callr", "crayon", "desc", "remotes", "withr" - ] + ], + "Hash": "53cbed70a2f7472d48fb6aef08442f25" }, "desc": { "Package": "desc", "Version": "1.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "6b9602c7ebbe87101a9c8edb6e8b6d21", "Requirements": [ + "R", "R6", "cli", - "rprojroot" - ] + "rprojroot", + "utils" + ], + "Hash": "6b9602c7ebbe87101a9c8edb6e8b6d21" }, "digest": { "Package": "digest", "Version": "0.6.31", "Source": "Repository", "Repository": "RSPM", - "Hash": "8b708f296afd9ae69f450f9640be8990", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "8b708f296afd9ae69f450f9640be8990" }, "docopt": { "Package": "docopt", "Version": "0.7.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "e9eeef7931ee99ca0093f3f20b88e09b", - "Requirements": [] + "Requirements": [ + "methods" + ], + "Hash": "e9eeef7931ee99ca0093f3f20b88e09b" }, "evaluate": { "Package": "evaluate", - "Version": "0.19", + "Version": "0.20", "Source": "Repository", "Repository": "RSPM", - "Hash": "5aac3cd0a3ccb1a738941796b28c26fe", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "4b68aa51edd89a0e044a66e75ae3cc6c" }, "fs": { "Package": "fs", - "Version": "1.5.2", + "Version": "1.6.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "7c89603d81793f0d5486d91ab1fc6f1d", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "f4dcd23b67e33d851d2079f703e8b985" }, "git2r": { "Package": "git2r", - "Version": "0.30.1", + "Version": "0.32.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "e0c6a04a3e7b90e64213d09128f74f1b", - "Requirements": [] + "Requirements": [ + "R", + "graphics", + "utils" + ], + "Hash": "1882d7a76fd8c14b2322865f74c9a348" }, "glue": { "Package": "glue", "Version": "1.6.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e" }, "here": { "Package": "here", "Version": "1.0.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "24b224366f9c2e7534d2344d10d59211", "Requirements": [ "rprojroot" - ] + ], + "Hash": "24b224366f9c2e7534d2344d10d59211" }, "highr": { "Package": "highr", - "Version": "0.9", + "Version": "0.10", "Source": "Repository", "Repository": "CRAN", - "Hash": "8eb36c8125038e648e5d111c0d7b2ed4", "Requirements": [ + "R", "xfun" - ] + ], + "Hash": "06230136b2d2b9ba5805e1963fa6e890" }, "hunspell": { "Package": "hunspell", "Version": "3.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "656219b6f3f605499d7cdbe208656639", "Requirements": [ + "R", "Rcpp", "digest" - ] + ], + "Hash": "656219b6f3f605499d7cdbe208656639" }, "jsonlite": { "Package": "jsonlite", "Version": "1.8.4", "Source": "Repository", "Repository": "RSPM", - "Hash": "a4269a09a9b865579b2635c77e572374", - "Requirements": [] + "Requirements": [ + "methods" + ], + "Hash": "a4269a09a9b865579b2635c77e572374" }, "knitr": { "Package": "knitr", - "Version": "1.41", + "Version": "1.42", "Source": "Repository", "Repository": "RSPM", - "Hash": "6d4971f3610e75220534a1befe81bc92", "Requirements": [ + "R", "evaluate", "highr", - "stringr", + "methods", + "tools", "xfun", "yaml" - ] + ], + "Hash": "8329a9bcc82943c8069104d4be3ee22d" }, "lazyeval": { "Package": "lazyeval", "Version": "0.2.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "d908914ae53b04d4c0c0fd72ecc35370", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "d908914ae53b04d4c0c0fd72ecc35370" }, "lifecycle": { "Package": "lifecycle", "Version": "1.0.3", "Source": "Repository", "Repository": "RSPM", - "Hash": "001cecbeac1cff9301bdc3775ee46a86", "Requirements": [ + "R", "cli", "glue", "rlang" - ] + ], + "Hash": "001cecbeac1cff9301bdc3775ee46a86" }, "lintr": { "Package": "lintr", "Version": "3.0.2", "Source": "Repository", "Repository": "RSPM", - "Hash": "b21ebd652d940f099915221f3328ab7b", "Requirements": [ + "R", "backports", "codetools", "crayon", @@ -297,98 +353,124 @@ "jsonlite", "knitr", "rex", + "stats", + "utils", "xml2", "xmlparsedata" - ] + ], + "Hash": "b21ebd652d940f099915221f3328ab7b" }, "magrittr": { "Package": "magrittr", "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "7ce2733a9826b3aeb1775d56fd305472", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "7ce2733a9826b3aeb1775d56fd305472" }, "pkgload": { "Package": "pkgload", "Version": "1.3.2", "Source": "Repository", "Repository": "RSPM", - "Hash": "6b0c222c5071efe0f3baf3dae9aa40e2", "Requirements": [ + "R", "cli", "crayon", "desc", "fs", "glue", + "methods", "rlang", "rprojroot", + "utils", "withr" - ] + ], + "Hash": "6b0c222c5071efe0f3baf3dae9aa40e2" }, "processx": { "Package": "processx", "Version": "3.8.0", "Source": "Repository", "Repository": "RSPM", - "Hash": "a33ee2d9bf07564efb888ad98410da84", "Requirements": [ + "R", "R6", - "ps" - ] + "ps", + "utils" + ], + "Hash": "a33ee2d9bf07564efb888ad98410da84" }, "ps": { "Package": "ps", - "Version": "1.7.2", + "Version": "1.7.4", "Source": "Repository", "Repository": "RSPM", - "Hash": "68dd03d98a5efd1eb3012436de45ba83", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "d88be14c6790aa6fd7b27a2079a45a85" }, "purrr": { "Package": "purrr", - "Version": "0.3.5", + "Version": "1.0.1", "Source": "Repository", - "Repository": "RSPM", - "Hash": "54842a2443c76267152eface28d9e90a", + "Repository": "CRAN", "Requirements": [ + "R", + "cli", + "lifecycle", "magrittr", - "rlang" - ] + "rlang", + "vctrs" + ], + "Hash": "d71c815267c640f17ddbf7f16144b4bb" }, "remotes": { "Package": "remotes", "Version": "2.4.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "227045be9aee47e6dda9bb38ac870d67", - "Requirements": [] + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "227045be9aee47e6dda9bb38ac870d67" }, "rex": { "Package": "rex", "Version": "1.2.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "ae34cd56890607370665bee5bd17812f", "Requirements": [ "lazyeval" - ] + ], + "Hash": "ae34cd56890607370665bee5bd17812f" }, "rlang": { "Package": "rlang", - "Version": "1.0.6", + "Version": "1.1.0", "Source": "Repository", "Repository": "RSPM", - "Hash": "4ed1f8336c8d52c3e750adcdc57228a7", - "Requirements": [] + "Requirements": [ + "R", + "utils" + ], + "Hash": "dc079ccd156cde8647360f473c1fa718" }, "roxygen2": { "Package": "roxygen2", "Version": "7.2.3", "Source": "Repository", "Repository": "RSPM", - "Hash": "7b153c746193b143c14baa072bae4e27", "Requirements": [ + "R", "R6", "brew", "cli", @@ -396,51 +478,61 @@ "cpp11", "desc", "knitr", + "methods", "pkgload", "purrr", "rlang", "stringi", "stringr", + "utils", "withr", "xml2" - ] + ], + "Hash": "7b153c746193b143c14baa072bae4e27" }, "rprojroot": { "Package": "rprojroot", "Version": "2.0.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "1de7ab598047a87bba48434ba35d497d", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "1de7ab598047a87bba48434ba35d497d" }, "spelling": { "Package": "spelling", - "Version": "2.2", + "Version": "2.2.1", "Source": "Repository", - "Repository": "CRAN", - "Hash": "b8c899a5c83f0d897286550481c91798", + "Repository": "RSPM", "Requirements": [ "commonmark", "hunspell", "knitr", "xml2" - ] + ], + "Hash": "8ed9f010f7caeb8586523088b7f23dcd" }, "stringi": { "Package": "stringi", - "Version": "1.7.8", + "Version": "1.7.12", "Source": "Repository", - "Repository": "CRAN", - "Hash": "a68b980681bcbc84c7a67003fa796bfb", - "Requirements": [] + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "ca8bd84263c77310739d2cf64d84d7c9" }, "stringr": { "Package": "stringr", "Version": "1.5.0", "Source": "Repository", "Repository": "RSPM", - "Hash": "671a4d384ae9d32fc47a14e98bfa3dc8", "Requirements": [ + "R", "cli", "glue", "lifecycle", @@ -448,82 +540,98 @@ "rlang", "stringi", "vctrs" - ] + ], + "Hash": "671a4d384ae9d32fc47a14e98bfa3dc8" }, "styler": { "Package": "styler", - "Version": "1.8.1.9000", + "Version": "1.9.1", "Source": "GitHub", "RemoteType": "github", "RemoteUsername": "r-lib", "RemoteRepo": "styler", "RemoteRef": "HEAD", - "RemoteSha": "96f859daf39f5973851c06506d7827808eea28a8", + "RemoteSha": "940010d41129746d44e52d44664a37e44559bd39", "RemoteHost": "api.github.com", - "Hash": "1d898a96339553cc49c9afbc57e15713", "Requirements": [ + "R", "R.cache", "cli", "magrittr", "purrr", "rlang", "rprojroot", + "tools", "vctrs", "withr" - ] + ], + "Hash": "9d009491751064fc1cccc64ae7e248a7" }, "vctrs": { "Package": "vctrs", - "Version": "0.5.1", + "Version": "0.6.1", "Source": "Repository", "Repository": "RSPM", - "Hash": "970324f6572b4fd81db507b5d4062cb0", "Requirements": [ + "R", "cli", "glue", "lifecycle", "rlang" - ] + ], + "Hash": "06eceb3a5d716fd0654cc23ca3d71a99" }, "withr": { "Package": "withr", "Version": "2.5.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "c0e49a9760983e81e55cdd9be92e7182", - "Requirements": [] + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats" + ], + "Hash": "c0e49a9760983e81e55cdd9be92e7182" }, "xfun": { "Package": "xfun", - "Version": "0.35", + "Version": "0.38", "Source": "Repository", "Repository": "RSPM", - "Hash": "f576593107bdf9aa7db48ef75a8c05fb", - "Requirements": [] + "Requirements": [ + "stats", + "tools" + ], + "Hash": "1ed71215d45e85562d3b1b29a068ccec" }, "xml2": { "Package": "xml2", "Version": "1.3.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "40682ed6a969ea5abfd351eb67833adc", - "Requirements": [] + "Requirements": [ + "R", + "methods" + ], + "Hash": "40682ed6a969ea5abfd351eb67833adc" }, "xmlparsedata": { "Package": "xmlparsedata", "Version": "1.0.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "45e4bf3c46476896e821fc0a408fb4fc", - "Requirements": [] + "Requirements": [ + "R" + ], + "Hash": "45e4bf3c46476896e821fc0a408fb4fc" }, "yaml": { "Package": "yaml", - "Version": "2.3.6", + "Version": "2.3.7", "Source": "Repository", - "Repository": "RSPM", - "Hash": "9b570515751dcbae610f29885e025b41", - "Requirements": [] + "Repository": "CRAN", + "Hash": "0d0056cc5383fbc240ccd0cb584bf436" } } } diff --git a/renv/activate.R b/renv/activate.R index 019b5a669..4564b9ddf 100644 --- a/renv/activate.R +++ b/renv/activate.R @@ -63,6 +63,10 @@ local({ if (is.environment(x) || length(x)) x else y } + `%??%` <- function(x, y) { + if (is.null(x)) y else x + } + bootstrap <- function(version, library) { # attempt to download renv @@ -83,28 +87,39 @@ local({ renv_bootstrap_repos <- function() { + # get CRAN repository + cran <- getOption("renv.repos.cran", "https://cloud.r-project.org") + # check for repos override repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) - if (!is.na(repos)) + if (!is.na(repos)) { + + # check for RSPM; if set, use a fallback repository for renv + rspm <- Sys.getenv("RSPM", unset = NA) + if (identical(rspm, repos)) + repos <- c(RSPM = rspm, CRAN = cran) + return(repos) + } + # check for lockfile repositories repos <- tryCatch(renv_bootstrap_repos_lockfile(), error = identity) if (!inherits(repos, "error") && length(repos)) return(repos) # if we're testing, re-use the test repositories - if (renv_bootstrap_tests_running()) - return(getOption("renv.tests.repos")) + if (renv_bootstrap_tests_running()) { + repos <- getOption("renv.tests.repos") + if (!is.null(repos)) + return(repos) + } # retrieve current repos repos <- getOption("repos") # ensure @CRAN@ entries are resolved - repos[repos == "@CRAN@"] <- getOption( - "renv.repos.cran", - "https://cloud.r-project.org" - ) + repos[repos == "@CRAN@"] <- cran # add in renv.bootstrap.repos if set default <- c(FALLBACK = "https://cloud.r-project.org") @@ -344,8 +359,7 @@ local({ return() # allow directories - info <- file.info(tarball, extra_cols = FALSE) - if (identical(info$isdir, TRUE)) { + if (dir.exists(tarball)) { name <- sprintf("renv_%s.tar.gz", version) tarball <- file.path(tarball, name) } @@ -659,8 +673,8 @@ local({ if (version == loadedversion) return(TRUE) - # assume four-component versions are from GitHub; three-component - # versions are from CRAN + # assume four-component versions are from GitHub; + # three-component versions are from CRAN components <- strsplit(loadedversion, "[.-]")[[1]] remote <- if (length(components) == 4L) paste("rstudio/renv", loadedversion, sep = "@") @@ -700,6 +714,12 @@ local({ # warn if the version of renv loaded does not match renv_bootstrap_validate_version(version) + # execute renv load hooks, if any + hooks <- getHook("renv::autoload") + for (hook in hooks) + if (is.function(hook)) + tryCatch(hook(), error = warning) + # load the project renv::load(project) @@ -842,11 +862,29 @@ local({ renv_json_read <- function(file = NULL, text = NULL) { + jlerr <- NULL + # if jsonlite is loaded, use that instead - if ("jsonlite" %in% loadedNamespaces()) - renv_json_read_jsonlite(file, text) + if ("jsonlite" %in% loadedNamespaces()) { + + json <- catch(renv_json_read_jsonlite(file, text)) + if (!inherits(json, "error")) + return(json) + + jlerr <- json + + } + + # otherwise, fall back to the default JSON reader + json <- catch(renv_json_read_default(file, text)) + if (!inherits(json, "error")) + return(json) + + # report an error + if (!is.null(jlerr)) + stop(jlerr) else - renv_json_read_default(file, text) + stop(json) } diff --git a/renv/settings.json b/renv/settings.json new file mode 100644 index 000000000..6238a3d3c --- /dev/null +++ b/renv/settings.json @@ -0,0 +1,17 @@ +{ + "bioconductor.version": null, + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "r.version": [], + "snapshot.type": "implicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} From 0bdb2be08f8838538e9abef2c56c468a837595cb Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 17 Apr 2023 08:23:22 +0200 Subject: [PATCH 2/4] move scripts for update out of yaml --- .../workflows/hook-dependencies-update.yml | 37 +------------------ .pre-commit-config.yaml | 4 +- ...pdate-dependency-graph-existing-packages.R | 18 +++++++++ inst/update-existing-hook-dependencies.R | 11 ++++++ 4 files changed, 34 insertions(+), 36 deletions(-) create mode 100644 inst/update-dependency-graph-existing-packages.R create mode 100644 inst/update-existing-hook-dependencies.R diff --git a/.github/workflows/hook-dependencies-update.yml b/.github/workflows/hook-dependencies-update.yml index 0b5c2fa8a..03a61e3b6 100644 --- a/.github/workflows/hook-dependencies-update.yml +++ b/.github/workflows/hook-dependencies-update.yml @@ -31,42 +31,9 @@ jobs: sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") sudo -s eval "$sysreqs" - name: update existing packages - run: | - options( - repos = c(CRAN = "https://packagemanager.rstudio.com/all/latest"), - install.packages.compile.from.source = "never" - ) - install.packages("renv") - install.packages("jsonlite") - renv_deps <- names(jsonlite::read_json("renv.lock")$Packages) - renv::load() - renv::restore(prompt = FALSE) - can_be_updated <- renv::update(renv_deps, prompt = FALSE, check = FALSE) - renv::snapshot(packages = renv_deps, prompt = FALSE) - shell: Rscript {0} + run: Rscript inst/update-dependency-graph-existing-packages.R - name: update dependency graph among packages - run: | - # also see corresponding files to update - hook_deps <- function(root) { - out <- renv::dependencies("inst/hooks/exported/")$Package - desc <- desc::desc() - deps <- desc$get_deps() - dont <- c( - "yaml", "usethis", "withr", "rstudioapi", "precommit", - "pkgdown", "mockery", - "httr" - ) - out <- c(out, "roxygen2", "spelling", "styler", "pkgload", "lintr", "knitr", "git2r", "desc", "mockery") - out <- setdiff(c(unique(c(out, deps[deps$type == "Imports", ]$package))), dont) - out <- names(renv:::renv_package_dependencies(out)) - return(sort(out)) - } - options(repos = c(CRAN = "https://packagemanager.rstudio.com/all/latest")) - options(renv.snapshot.filter = hook_deps) - - renv::snapshot(type = "custom", prompt = FALSE) - # or renv::snapshot(packages = hook_deps(), prompt = FALSE) - shell: Rscript {0} + run: Rscript inst/update-existing-hook-dependencies.R - name: Create Pull Request uses: peter-evans/create-pull-request@v3.9.1 with: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9b37246ec..d59989cf5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -81,9 +81,11 @@ repos: - id: deps-in-desc exclude: > (?x)^( + inst/hooks/exported/pkgdown.R| tests/testthat/in/.*| inst/renv-update\.R| - inst/hooks/exported/pkgdown.R| + inst/update-dependency-graph-existing-packages\.R| + inst/update-existing-hook-dependencies\.R| renv/activate.R| vignettes/FAQ\.Rmd| )$ diff --git a/inst/update-dependency-graph-existing-packages.R b/inst/update-dependency-graph-existing-packages.R new file mode 100644 index 000000000..b21ed0687 --- /dev/null +++ b/inst/update-dependency-graph-existing-packages.R @@ -0,0 +1,18 @@ +hook_deps <- function(root) { + out <- renv::dependencies("inst/hooks/exported/")$Package + desc <- desc::desc() + deps <- desc$get_deps() + dont <- c( + "yaml", "usethis", "withr", "rstudioapi", "precommit", + "pkgdown", "mockery", + "httr" + ) + out <- c(out, "roxygen2", "spelling", "styler", "pkgload", "lintr", "knitr", "git2r", "desc", "mockery") + out <- setdiff(c(unique(c(out, deps[deps$type == "Imports", ]$package))), dont) + out <- names(renv:::renv_package_dependencies(out)) + return(sort(out)) +} +options(repos = c(CRAN = "https://packagemanager.rstudio.com/all/latest")) +options(renv.snapshot.filter = hook_deps) + +renv::snapshot(type = "custom", prompt = FALSE) diff --git a/inst/update-existing-hook-dependencies.R b/inst/update-existing-hook-dependencies.R new file mode 100644 index 000000000..a5176eaea --- /dev/null +++ b/inst/update-existing-hook-dependencies.R @@ -0,0 +1,11 @@ +options( + repos = c(CRAN = "https://packagemanager.rstudio.com/all/latest"), + install.packages.compile.from.source = "never" +) +install.packages("renv") +install.packages("jsonlite") +renv_deps <- names(jsonlite::read_json("renv.lock")$Packages) +renv::load() +renv::restore(prompt = FALSE) +can_be_updated <- renv::update(renv_deps, prompt = FALSE, check = FALSE) +renv::snapshot(packages = renv_deps, prompt = FALSE) From 1eb16084444b7fd710547f4a80e742d60516d89f Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 17 Apr 2023 08:25:40 +0200 Subject: [PATCH 3/4] ignore new scripts --- .Rbuildignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.Rbuildignore b/.Rbuildignore index 294e1ff34..aa15e1faa 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -13,6 +13,8 @@ ^inst/WORDLIST$ ^inst/hooks/local$ ^inst/renv-update\.R$ +^inst/update-dependency-graph-existing-packages\.R$ +^inst/update-existing-hook-dependencies\.R$ ^pkgdown$ ^renv$ ^renv\.lock$ From 3e7d41468b49b9bb1d4d0e8412d75a3e05910f0f Mon Sep 17 00:00:00 2001 From: Lorenz Walthert Date: Mon, 17 Apr 2023 09:01:57 +0200 Subject: [PATCH 4/4] downgrade git2r as it was before --- renv.lock | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/renv.lock b/renv.lock index 0b2c7246d..547c5d1bf 100644 --- a/renv.lock +++ b/renv.lock @@ -234,15 +234,11 @@ }, "git2r": { "Package": "git2r", - "Version": "0.32.0", + "Version": "0.30.1", "Source": "Repository", "Repository": "CRAN", - "Requirements": [ - "R", - "graphics", - "utils" - ], - "Hash": "1882d7a76fd8c14b2322865f74c9a348" + "Hash": "e0c6a04a3e7b90e64213d09128f74f1b", + "Requirements": [] }, "glue": { "Package": "glue",