Skip to content

Commit a57eaea

Browse files
Merge pull request #475 from lorenzwalthert/update-dependencies
Hook dependency updates
2 parents a292fa6 + d0b9e54 commit a57eaea

File tree

7 files changed

+363
-203
lines changed

7 files changed

+363
-203
lines changed

.Rbuildignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
^inst/WORDLIST$
1414
^inst/hooks/local$
1515
^inst/renv-update\.R$
16+
^inst/update-dependency-graph-existing-packages\.R$
17+
^inst/update-existing-hook-dependencies\.R$
1618
^pkgdown$
1719
^renv$
1820
^renv\.lock$

.github/workflows/hook-dependencies-update.yml

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -31,45 +31,9 @@ jobs:
3131
sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))")
3232
sudo -s eval "$sysreqs"
3333
- name: update existing packages
34-
run: |
35-
options(
36-
repos = c(
37-
RSPM = "https://packagemanager.rstudio.com/all/latest",
38-
CRAN = "https://cran.rstudio.com"
39-
),
40-
install.packages.compile.from.source = "never"
41-
)
42-
install.packages("renv")
43-
install.packages("jsonlite")
44-
renv_deps <- names(jsonlite::read_json("renv.lock")$Packages)
45-
renv::load()
46-
renv::restore(prompt = FALSE)
47-
can_be_updated <- renv::update(renv_deps, prompt = FALSE, check = FALSE)
48-
renv::snapshot(packages = renv_deps, prompt = FALSE)
49-
shell: Rscript {0}
34+
run: Rscript inst/update-dependency-graph-existing-packages.R
5035
- name: update dependency graph among packages
51-
run: |
52-
# also see corresponding files to update
53-
hook_deps <- function(root) {
54-
out <- renv::dependencies("inst/hooks/exported/")$Package
55-
desc <- desc::desc()
56-
deps <- desc$get_deps()
57-
dont <- c(
58-
"yaml", "usethis", "withr", "rstudioapi", "precommit",
59-
"pkgdown", "mockery",
60-
"httr"
61-
)
62-
out <- c(out, "roxygen2", "spelling", "styler", "pkgload", "lintr", "knitr", "git2r", "desc", "mockery")
63-
out <- setdiff(c(unique(c(out, deps[deps$type == "Imports", ]$package))), dont)
64-
out <- names(renv:::renv_package_dependencies(out))
65-
return(sort(out))
66-
}
67-
options(repos = c(CRAN = "https://packagemanager.rstudio.com/all/latest"))
68-
options(renv.snapshot.filter = hook_deps)
69-
70-
renv::snapshot(type = "custom", prompt = FALSE)
71-
# or renv::snapshot(packages = hook_deps(), prompt = FALSE)
72-
shell: Rscript {0}
36+
run: Rscript inst/update-existing-hook-dependencies.R
7337
- name: Create Pull Request
7438
uses: peter-evans/[email protected]
7539
with:

.pre-commit-config.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ repos:
5959
inst/pre-commit-.*|
6060
inst/usethis-legacy-hook|
6161
LICENSE|
62+
renv/.*|
6263
tests/testthat/in/.*|
6364
)$
6465
- id: readme-rmd-rendered
@@ -80,9 +81,11 @@ repos:
8081
- id: deps-in-desc
8182
exclude: >
8283
(?x)^(
84+
inst/hooks/exported/pkgdown.R|
8385
tests/testthat/in/.*|
8486
inst/renv-update\.R|
85-
inst/hooks/exported/pkgdown.R|
87+
inst/update-dependency-graph-existing-packages\.R|
88+
inst/update-existing-hook-dependencies\.R|
8689
renv/activate.R|
8790
vignettes/FAQ\.Rmd|
8891
)$
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
hook_deps <- function(root) {
2+
out <- renv::dependencies("inst/hooks/exported/")$Package
3+
desc <- desc::desc()
4+
deps <- desc$get_deps()
5+
dont <- c(
6+
"yaml", "usethis", "withr", "rstudioapi", "precommit",
7+
"pkgdown", "mockery",
8+
"httr"
9+
)
10+
out <- c(out, "roxygen2", "spelling", "styler", "pkgload", "lintr", "knitr", "git2r", "desc", "mockery")
11+
out <- setdiff(c(unique(c(out, deps[deps$type == "Imports", ]$package))), dont)
12+
out <- names(renv:::renv_package_dependencies(out))
13+
return(sort(out))
14+
}
15+
options(
16+
repos = c(
17+
RSPM = "https://packagemanager.rstudio.com/all/latest",
18+
CRAN = "https://cran.rstudio.com"
19+
),
20+
install.packages.compile.from.source = "never"
21+
)
22+
23+
options(renv.snapshot.filter = hook_deps)
24+
25+
renv::snapshot(type = "custom", prompt = FALSE)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
options(
2+
repos = c(CRAN = "https://packagemanager.rstudio.com/all/latest"),
3+
install.packages.compile.from.source = "never"
4+
)
5+
install.packages("renv")
6+
install.packages("jsonlite")
7+
renv_deps <- names(jsonlite::read_json("renv.lock")$Packages)
8+
renv::load()
9+
renv::restore(prompt = FALSE)
10+
can_be_updated <- renv::update(renv_deps, prompt = FALSE, check = FALSE)
11+
renv::snapshot(packages = renv_deps, prompt = FALSE)

0 commit comments

Comments
 (0)