From f297d3798fa0c4b63a3727bc6b5a7672e0783a4d Mon Sep 17 00:00:00 2001 From: John Benninghoff Date: Fri, 16 Jan 2026 19:09:43 -0600 Subject: [PATCH 1/6] Bump version --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 13bcd966..cdba5e7a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: rdev Title: R Development Tools -Version: 1.15.6 +Version: 1.15.6.9000 Authors@R: person("John", "Benninghoff", , "jbenninghoff@mac.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-6230-4742")) From 6c6c73e5ebf216ed25aae2afb8f504b3a789a1cc Mon Sep 17 00:00:00 2001 From: John Benninghoff Date: Fri, 16 Jan 2026 19:17:49 -0600 Subject: [PATCH 2/6] renv::update() --- renv.lock | 95 +++++++++++++++++++++++++++++-------------------- renv/activate.R | 89 +++++++++++++++++++++++++++++++++++++++------ 2 files changed, 135 insertions(+), 49 deletions(-) diff --git a/renv.lock b/renv.lock index 83ac1c3a..89511b60 100644 --- a/renv.lock +++ b/renv.lock @@ -184,12 +184,15 @@ }, "Rcpp": { "Package": "Rcpp", - "Version": "1.1.0", + "Version": "1.1.1", "Source": "Repository", "Title": "Seamless R and C++ Integration", - "Date": "2025-07-01", + "Date": "2026-01-07", "Authors@R": "c(person(\"Dirk\", \"Eddelbuettel\", role = c(\"aut\", \"cre\"), email = \"edd@debian.org\", comment = c(ORCID = \"0000-0001-6419-907X\")), person(\"Romain\", \"Francois\", role = \"aut\", comment = c(ORCID = \"0000-0002-2444-4226\")), person(\"JJ\", \"Allaire\", role = \"aut\", comment = c(ORCID = \"0000-0003-0174-9868\")), person(\"Kevin\", \"Ushey\", role = \"aut\", comment = c(ORCID = \"0000-0003-2880-7407\")), person(\"Qiang\", \"Kou\", role = \"aut\", comment = c(ORCID = \"0000-0001-6786-5453\")), person(\"Nathan\", \"Russell\", role = \"aut\"), person(\"Iñaki\", \"Ucar\", role = \"aut\", comment = c(ORCID = \"0000-0001-6403-5550\")), person(\"Doug\", \"Bates\", role = \"aut\", comment = c(ORCID = \"0000-0001-8316-9503\")), person(\"John\", \"Chambers\", role = \"aut\"))", "Description": "The 'Rcpp' package provides R functions as well as C++ classes which offer a seamless integration of R and C++. Many R data types and objects can be mapped back and forth to C++ equivalents which facilitates both writing of new code as well as easier integration of third-party libraries. Documentation about 'Rcpp' is provided by several vignettes included in this package, via the 'Rcpp Gallery' site at , the paper by Eddelbuettel and Francois (2011, ), the book by Eddelbuettel (2013, ) and the paper by Eddelbuettel and Balamuta (2018, ); see 'citation(\"Rcpp\")' for details.", + "Depends": [ + "R (>= 3.5.0)" + ], "Imports": [ "methods", "utils" @@ -206,6 +209,7 @@ "MailingList": "rcpp-devel@lists.r-forge.r-project.org", "RoxygenNote": "6.1.1", "Encoding": "UTF-8", + "VignetteBuilder": "Rcpp", "NeedsCompilation": "yes", "Author": "Dirk Eddelbuettel [aut, cre] (ORCID: ), Romain Francois [aut] (ORCID: ), JJ Allaire [aut] (ORCID: ), Kevin Ushey [aut] (ORCID: ), Qiang Kou [aut] (ORCID: ), Nathan Russell [aut], Iñaki Ucar [aut] (ORCID: ), Doug Bates [aut] (ORCID: ), John Chambers [aut]", "Maintainer": "Dirk Eddelbuettel ", @@ -1348,7 +1352,7 @@ }, "gert": { "Package": "gert", - "Version": "2.2.0", + "Version": "2.3.1", "Source": "Repository", "Type": "Package", "Title": "Simple Git Client for R", @@ -1373,7 +1377,7 @@ ], "VignetteBuilder": "knitr", "Encoding": "UTF-8", - "RoxygenNote": "7.3.2.9000", + "RoxygenNote": "7.3.3", "SystemRequirements": "libgit2 (>= 1.0): libgit2-devel (rpm) or libgit2-dev (deb)", "Language": "en-US", "NeedsCompilation": "yes", @@ -1974,22 +1978,26 @@ }, "later": { "Package": "later", - "Version": "1.4.4", + "Version": "1.4.5", "Source": "Repository", "Type": "Package", "Title": "Utilities for Scheduling Functions to Execute Later with Event Loops", - "Authors@R": "c( person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"aut\"), person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Charlie\", \"Gao\", , \"charlie.gao@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-0750-061X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")), person(\"Marcus\", \"Geelnard\", role = c(\"ctb\", \"cph\"), comment = \"TinyCThread library, https://tinycthread.github.io/\"), person(\"Evan\", \"Nemerson\", role = c(\"ctb\", \"cph\"), comment = \"TinyCThread library, https://tinycthread.github.io/\") )", + "Authors@R": "c( person(\"Winston\", \"Chang\", , \"winston@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0002-1576-2126\")), person(\"Joe\", \"Cheng\", , \"joe@posit.co\", role = \"aut\"), person(\"Charlie\", \"Gao\", , \"charlie.gao@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-0750-061X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")), person(\"Marcus\", \"Geelnard\", role = c(\"ctb\", \"cph\"), comment = \"TinyCThread library, https://tinycthread.github.io/\"), person(\"Evan\", \"Nemerson\", role = c(\"ctb\", \"cph\"), comment = \"TinyCThread library, https://tinycthread.github.io/\") )", "Description": "Executes arbitrary R or C functions some time after the current time, after the R execution stack has emptied. The functions are scheduled in an event loop.", "License": "MIT + file LICENSE", "URL": "https://later.r-lib.org, https://github.com/r-lib/later", "BugReports": "https://github.com/r-lib/later/issues", + "Depends": [ + "R (>= 3.5)" + ], "Imports": [ - "Rcpp (>= 0.12.9)", + "Rcpp (>= 1.0.10)", "rlang" ], "Suggests": [ "knitr", "nanonext", + "promises", "rmarkdown", "testthat (>= 3.0.0)" ], @@ -1997,13 +2005,14 @@ "Rcpp" ], "VignetteBuilder": "knitr", + "Config/build/compilation-database": "true", "Config/Needs/website": "tidyverse/tidytemplate", "Config/testthat/edition": "3", "Config/usethis/last-upkeep": "2025-07-18", "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.3", "NeedsCompilation": "yes", - "Author": "Winston Chang [aut], Joe Cheng [aut], Charlie Gao [aut, cre] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: ), Marcus Geelnard [ctb, cph] (TinyCThread library, https://tinycthread.github.io/), Evan Nemerson [ctb, cph] (TinyCThread library, https://tinycthread.github.io/)", + "Author": "Winston Chang [aut] (ORCID: ), Joe Cheng [aut], Charlie Gao [aut, cre] (ORCID: ), Posit Software, PBC [cph, fnd] (ROR: ), Marcus Geelnard [ctb, cph] (TinyCThread library, https://tinycthread.github.io/), Evan Nemerson [ctb, cph] (TinyCThread library, https://tinycthread.github.io/)", "Maintainer": "Charlie Gao ", "Repository": "CRAN" }, @@ -2034,7 +2043,7 @@ }, "lifecycle": { "Package": "lifecycle", - "Version": "1.0.4", + "Version": "1.0.5", "Source": "Repository", "Title": "Manage the Life Cycle of your Package Functions", "Authors@R": "c( person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = c(\"aut\", \"cre\")), person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\", comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", @@ -2047,29 +2056,28 @@ ], "Imports": [ "cli (>= 3.4.0)", - "glue", "rlang (>= 1.1.0)" ], "Suggests": [ "covr", - "crayon", "knitr", - "lintr", + "lintr (>= 3.1.0)", "rmarkdown", "testthat (>= 3.0.1)", "tibble", "tidyverse", "tools", "vctrs", - "withr" + "withr", + "xml2" ], "VignetteBuilder": "knitr", "Config/Needs/website": "tidyverse/tidytemplate, usethis", "Config/testthat/edition": "3", "Encoding": "UTF-8", - "RoxygenNote": "7.2.1", + "RoxygenNote": "7.3.3", "NeedsCompilation": "no", - "Author": "Lionel Henry [aut, cre], Hadley Wickham [aut] (), Posit Software, PBC [cph, fnd]", + "Author": "Lionel Henry [aut, cre], Hadley Wickham [aut] (ORCID: ), Posit Software, PBC [cph, fnd]", "Maintainer": "Lionel Henry ", "Repository": "CRAN" }, @@ -2779,7 +2787,7 @@ }, "purrr": { "Package": "purrr", - "Version": "1.2.0", + "Version": "1.2.1", "Source": "Repository", "Title": "Functional Programming Tools", "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0003-4757-117X\")), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = \"aut\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"https://ror.org/03wc8by49\")) )", @@ -3048,7 +3056,7 @@ }, "renv": { "Package": "renv", - "Version": "1.1.5", + "Version": "1.1.6", "Source": "Repository", "Type": "Package", "Title": "Project Environments", @@ -3066,6 +3074,7 @@ "compiler", "covr", "cpp11", + "curl", "devtools", "generics", "gitcreds", @@ -3089,7 +3098,7 @@ "webfakes" ], "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.3", "VignetteBuilder": "knitr", "Config/Needs/website": "tidyverse/tidytemplate", "Config/testthat/edition": "3", @@ -3138,7 +3147,7 @@ }, "rlang": { "Package": "rlang", - "Version": "1.1.6", + "Version": "1.1.7", "Source": "Repository", "Title": "Functions for Base Types and Core R and 'Tidyverse' Features", "Description": "A toolbox for working with base types, core R features like the condition system, and core 'Tidyverse' features like tidy evaluation.", @@ -3147,7 +3156,7 @@ "ByteCompile": "true", "Biarch": "true", "Depends": [ - "R (>= 3.5.0)" + "R (>= 4.0.0)" ], "Imports": [ "utils" @@ -3176,7 +3185,7 @@ "winch" ], "Encoding": "UTF-8", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.3", "URL": "https://rlang.r-lib.org, https://github.com/r-lib/rlang", "BugReports": "https://github.com/r-lib/rlang/issues", "Config/build/compilation-database": "true", @@ -3333,7 +3342,7 @@ }, "rstudioapi": { "Package": "rstudioapi", - "Version": "0.17.1", + "Version": "0.18.0", "Source": "Repository", "Title": "Safely Access the RStudio API", "Description": "Access the RStudio API (if available) and provide informative error messages when it's not.", @@ -3342,13 +3351,16 @@ "License": "MIT + file LICENSE", "URL": "https://rstudio.github.io/rstudioapi/, https://github.com/rstudio/rstudioapi", "BugReports": "https://github.com/rstudio/rstudioapi/issues", - "RoxygenNote": "7.3.2", + "RoxygenNote": "7.3.3", "Suggests": [ "testthat", "knitr", "rmarkdown", "clipr", - "covr" + "covr", + "curl", + "jsonlite", + "withr" ], "VignetteBuilder": "knitr", "Encoding": "UTF-8", @@ -3775,7 +3787,7 @@ }, "testthat": { "Package": "testthat", - "Version": "3.3.1", + "Version": "3.3.2", "Source": "Repository", "Title": "Unit Testing for R", "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = c(\"aut\", \"cre\")), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")), person(\"R Core team\", role = \"ctb\", comment = \"Implementation of utils::recover()\") )", @@ -3813,6 +3825,8 @@ "digest (>= 0.6.33)", "gh", "knitr", + "otel", + "otelsdk", "rmarkdown", "rstudioapi", "S7", @@ -3879,10 +3893,10 @@ }, "tibble": { "Package": "tibble", - "Version": "3.3.0", + "Version": "3.3.1", "Source": "Repository", "Title": "Simple Data Frames", - "Authors@R": "c(person(given = \"Kirill\", family = \"M\\u00fcller\", role = c(\"aut\", \"cre\"), email = \"kirill@cynkra.com\", comment = c(ORCID = \"0000-0002-1416-3412\")), person(given = \"Hadley\", family = \"Wickham\", role = \"aut\", email = \"hadley@rstudio.com\"), person(given = \"Romain\", family = \"Francois\", role = \"ctb\", email = \"romain@r-enthusiasts.com\"), person(given = \"Jennifer\", family = \"Bryan\", role = \"ctb\", email = \"jenny@rstudio.com\"), person(given = \"RStudio\", role = c(\"cph\", \"fnd\")))", + "Authors@R": "c( person(\"Kirill\", \"Müller\", , \"kirill@cynkra.com\", role = c(\"aut\", \"cre\"), comment = c(ORCID = \"0000-0002-1416-3412\")), person(\"Hadley\", \"Wickham\", , \"hadley@rstudio.com\", role = \"aut\"), person(\"Romain\", \"Francois\", , \"romain@r-enthusiasts.com\", role = \"ctb\"), person(\"Jennifer\", \"Bryan\", , \"jenny@rstudio.com\", role = \"ctb\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\"), comment = c(ROR = \"03wc8by49\")) )", "Description": "Provides a 'tbl_df' class (the 'tibble') with stricter checking and better formatting than the traditional data frame.", "License": "MIT + file LICENSE", "URL": "https://tibble.tidyverse.org/, https://github.com/tidyverse/tibble", @@ -3927,17 +3941,18 @@ "withr" ], "VignetteBuilder": "knitr", - "Encoding": "UTF-8", - "RoxygenNote": "7.3.2.9000", - "Config/testthat/edition": "3", - "Config/testthat/parallel": "true", - "Config/testthat/start-first": "vignette-formats, as_tibble, add, invariants", + "Config/autostyle/rmd": "false", "Config/autostyle/scope": "line_breaks", "Config/autostyle/strict": "true", - "Config/autostyle/rmd": "false", "Config/Needs/website": "tidyverse/tidytemplate", + "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", + "Config/testthat/start-first": "vignette-formats, as_tibble, add, invariants", + "Config/usethis/last-upkeep": "2025-06-07", + "Encoding": "UTF-8", + "RoxygenNote": "7.3.3.9000", "NeedsCompilation": "yes", - "Author": "Kirill Müller [aut, cre] (ORCID: ), Hadley Wickham [aut], Romain Francois [ctb], Jennifer Bryan [ctb], RStudio [cph, fnd]", + "Author": "Kirill Müller [aut, cre] (ORCID: ), Hadley Wickham [aut], Romain Francois [ctb], Jennifer Bryan [ctb], Posit Software, PBC [cph, fnd] (ROR: )", "Maintainer": "Kirill Müller ", "Repository": "CRAN" }, @@ -4107,7 +4122,7 @@ }, "vctrs": { "Package": "vctrs", - "Version": "0.6.5", + "Version": "0.7.0", "Source": "Repository", "Title": "Vector Helpers", "Authors@R": "c( person(\"Hadley\", \"Wickham\", , \"hadley@posit.co\", role = \"aut\"), person(\"Lionel\", \"Henry\", , \"lionel@posit.co\", role = \"aut\"), person(\"Davis\", \"Vaughan\", , \"davis@posit.co\", role = c(\"aut\", \"cre\")), person(\"data.table team\", role = \"cph\", comment = \"Radix sort based on data.table's forder() and their contribution to R's order()\"), person(\"Posit Software, PBC\", role = c(\"cph\", \"fnd\")) )", @@ -4116,13 +4131,13 @@ "URL": "https://vctrs.r-lib.org/, https://github.com/r-lib/vctrs", "BugReports": "https://github.com/r-lib/vctrs/issues", "Depends": [ - "R (>= 3.5.0)" + "R (>= 4.0.0)" ], "Imports": [ "cli (>= 3.4.0)", "glue", "lifecycle (>= 1.0.3)", - "rlang (>= 1.1.0)" + "rlang (>= 1.1.7)" ], "Suggests": [ "bit64", @@ -4142,11 +4157,13 @@ "zeallot" ], "VignetteBuilder": "knitr", + "Config/build/compilation-database": "true", "Config/Needs/website": "tidyverse/tidytemplate", "Config/testthat/edition": "3", + "Config/testthat/parallel": "true", "Encoding": "UTF-8", "Language": "en-GB", - "RoxygenNote": "7.2.3", + "RoxygenNote": "7.3.3", "NeedsCompilation": "yes", "Author": "Hadley Wickham [aut], Lionel Henry [aut], Davis Vaughan [aut, cre], data.table team [cph] (Radix sort based on data.table's forder() and their contribution to R's order()), Posit Software, PBC [cph, fnd]", "Maintainer": "Davis Vaughan ", diff --git a/renv/activate.R b/renv/activate.R index 2753ae54..4eba67cf 100644 --- a/renv/activate.R +++ b/renv/activate.R @@ -2,7 +2,8 @@ local({ # the requested version of renv - version <- "1.1.5" + version <- "1.1.6" + attr(version, "md5") <- "3036c4b273d882c56e8cdd660ebaf6f0" attr(version, "sha") <- NULL # the project directory @@ -215,6 +216,16 @@ local({ section <- header(sprintf("Bootstrapping renv %s", friendly)) catf(section) + # try to install renv from cache + md5 <- attr(version, "md5", exact = TRUE) + if (length(md5)) { + pkgpath <- renv_bootstrap_find(version) + if (length(pkgpath) && file.exists(pkgpath)) { + file.copy(pkgpath, library, recursive = TRUE) + return(invisible()) + } + } + # attempt to download renv catf("- Downloading renv ... ", appendLF = FALSE) withCallingHandlers( @@ -240,7 +251,6 @@ local({ # add empty line to break up bootstrapping from normal output catf("") - return(invisible()) } @@ -256,14 +266,22 @@ local({ # check for repos override repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) 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) - + + # split on ';' if present + parts <- strsplit(repos, ";", fixed = TRUE)[[1L]] + + # split into named repositories if present + idx <- regexpr("=", parts, fixed = TRUE) + keys <- substring(parts, 1L, idx - 1L) + vals <- substring(parts, idx + 1L) + names(vals) <- keys + + # if we have a single unnamed repository, call it CRAN + if (length(vals) == 1L && identical(keys, "")) + names(vals) <- "CRAN" + + return(vals) + } # check for lockfile repositories @@ -511,6 +529,45 @@ local({ } + renv_bootstrap_find <- function(version) { + + path <- renv_bootstrap_find_cache(version) + if (length(path) && file.exists(path)) { + catf("- Using renv %s from global package cache", version) + return(path) + } + + } + + renv_bootstrap_find_cache <- function(version) { + + md5 <- attr(version, "md5", exact = TRUE) + if (is.null(md5)) + return() + + # infer path to renv cache + cache <- Sys.getenv("RENV_PATHS_CACHE", unset = "") + if (!nzchar(cache)) { + tools <- asNamespace("tools") + if (is.function(tools$R_user_dir)) { + root <- tools$R_user_dir("renv", "cache") + cache <- file.path(root, "cache") + } + } + + # start completing path to cache + file.path( + cache, + renv_bootstrap_cache_version(), + renv_bootstrap_platform_prefix(), + "renv", + version, + md5, + "renv" + ) + + } + renv_bootstrap_download_tarball <- function(version) { # if the user has provided the path to a tarball via @@ -1181,6 +1238,18 @@ local({ } + renv_bootstrap_cache_version <- function() { + # NOTE: users should normally not override the cache version; + # this is provided just to make testing easier + Sys.getenv("RENV_CACHE_VERSION", unset = "v5") + } + + renv_bootstrap_cache_version_previous <- function() { + version <- renv_bootstrap_cache_version() + number <- as.integer(substring(version, 2L)) + paste("v", number - 1L, sep = "") + } + renv_json_read <- function(file = NULL, text = NULL) { jlerr <- NULL From d66bdad5f26305dd5f7ebaee32f8311790cce3ee Mon Sep 17 00:00:00 2001 From: John Benninghoff Date: Fri, 16 Jan 2026 19:18:06 -0600 Subject: [PATCH 3/6] renv::settings$snapshot.dev("true") --- renv/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/renv/settings.json b/renv/settings.json index ffdbb320..820e9e98 100644 --- a/renv/settings.json +++ b/renv/settings.json @@ -10,6 +10,7 @@ "ppm.enabled": null, "ppm.ignored.urls": [], "r.version": null, + "snapshot.dev": true, "snapshot.type": "implicit", "use.cache": true, "vcs.ignore.cellar": true, From 45b3ac29a1104339420a17750cba57a2e40dc9eb Mon Sep 17 00:00:00 2001 From: John Benninghoff Date: Fri, 16 Jan 2026 20:17:47 -0600 Subject: [PATCH 4/6] Replace DEV = TRUE with snapshot.dev --- DESCRIPTION | 2 +- NEWS.md | 4 ++++ R/ci.R | 16 ++++++++-------- R/setup.R | 11 +++++++---- R/upkeep.R | 9 +++++++++ TODO.md | 2 +- man/check_renv.Rd | 4 ++-- man/ci.Rd | 4 ++-- tests/testthat/test-ci.R | 4 ++-- tests/testthat/test-upkeep.R | 8 +++++++- 10 files changed, 43 insertions(+), 21 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index cdba5e7a..073f79a1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -34,7 +34,7 @@ Imports: quarto, rcmdcheck, remotes, - renv (>= 1.0.3), + renv (>= 1.1.6), rlang, rmarkdown, rstudioapi, diff --git a/NEWS.md b/NEWS.md index 0a2126d0..76b5ae80 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,7 @@ +# rdev 1.16.0 + +* Updated `check_renv()` and `ci()`, replacing `renv::status(dev = TRUE)` with new renv 1.1.6 setting `renv::settings$snapshot.dev(TRUE)` + # rdev 1.15.6 * Added instructions for YAML chunk syntax update to `upkeep_checklist()` diff --git a/R/ci.R b/R/ci.R index a216cd5f..437661ea 100644 --- a/R/ci.R +++ b/R/ci.R @@ -1,7 +1,7 @@ #' Check renv #' -#' Runs [`renv`][renv::renv-package] [`status(dev = TRUE)`][renv::status()], -#' [`clean()`][renv::clean()], and optionally [`update()`][renv::update()] +#' Runs [`renv`][renv::renv-package] [`status()`][renv::status()], [`clean()`][renv::clean()] +#' and optionally [`update()`][renv::update()] #' #' @param update run [renv::update()] #' @@ -14,8 +14,8 @@ check_renv <- function(update = rlang::is_interactive()) { checkmate::assert_flag(update) - writeLines("renv::status(dev = TRUE)") - renv::status(dev = TRUE) + writeLines("renv::status()") + renv::status() writeLines("\nrenv::clean()") renv::clean() @@ -84,7 +84,7 @@ print_tbl <- function(df) { #' #' Run continuous integration tests locally. #' -#' If [`renv::status(dev = TRUE)`][renv::status()] is not synchronized, `ci()` will stop. +#' If [`renv::status()`][renv::status()] is not synchronized, `ci()` will stop. #' #' If [missing_deps()] returns any missing dependencies, `ci()` will stop. #' @@ -98,7 +98,7 @@ print_tbl <- function(df) { #' Output from `missing`, `extra`, and `urls` is printed as a [tibble][tibble::tibble()] for #' improved readability in the console. #' -#' @param renv check [`renv::status(dev = TRUE)`][renv::status()] +#' @param renv check [`renv::status()`][renv::status()] #' @param missing run [missing_deps()] #' @param pkgdown check [pkgdown::check_pkgdown()] if `_pkgdown.yml` exists #' @param styler style all files using [style_all()], see details @@ -142,8 +142,8 @@ ci <- function(renv = TRUE, # nolint: cyclocomp_linter. checkmate::assert_flag(rcmdcheck) if (renv) { - writeLines("renv::status(dev = TRUE)") - status <- renv::status(dev = TRUE) + writeLines("renv::status()") + status <- renv::status() if (!status$synchronized) { return(invisible(status)) } diff --git a/R/setup.R b/R/setup.R index 29fad08e..27aa51ea 100644 --- a/R/setup.R +++ b/R/setup.R @@ -110,7 +110,7 @@ use_spelling <- function(lang = "en-US", prompt = FALSE) { usethis::use_package("fs", type = "Suggests") usethis::use_package("withr", type = "Suggests") desc::desc_normalize() - renv::snapshot(dev = TRUE, prompt = prompt) + renv::snapshot(prompt = prompt) } #' Use rdev code coverage @@ -145,7 +145,7 @@ use_codecov <- function(prompt = FALSE) { usethis::use_package("covr", type = "Suggests") renv::install("DT") usethis::use_package("DT", type = "Suggests") - renv::snapshot(dev = TRUE, prompt = prompt) + renv::snapshot(prompt = prompt) } #' Get license option @@ -514,7 +514,10 @@ use_rdev_package <- function(quiet = TRUE) { # run renv::init() last to restart the session # specify repos to use CRAN mirror instead of Posit Public Package Manager - renv::init(settings = list(snapshot.type = "implicit"), repos = "https://cloud.r-project.org") + renv::init( + settings = list(snapshot.type = "implicit", snapshot.dev = TRUE), + repos = "https://cloud.r-project.org" + ) } #' Use Analysis Package Layout @@ -669,7 +672,7 @@ use_analysis_package <- function(use_quarto = TRUE, prompt = FALSE) { } else { usethis::use_package("pkgdown", type = "Suggests") } - renv::snapshot(dev = TRUE, prompt = prompt) + renv::snapshot(prompt = prompt) ret <- list( dirs = analysis_dirs, rbuildignore = analysis_rbuildignore, gitignore = analysis_gitignore diff --git a/R/upkeep.R b/R/upkeep.R index e10d0d64..b64ae845 100644 --- a/R/upkeep.R +++ b/R/upkeep.R @@ -127,6 +127,15 @@ upkeep_checklist <- function(last_upkeep = last_upkeep_year()) { # nolint: cyclo "" ) } + if (last_upkeep <= 2026 && !renv::settings$snapshot.dev()) { + bullets <- c( + bullets, + "### 2026", + "", + todo("`renv::settings$snapshot.dev(TRUE)`"), + "" + ) + } minimum_r_version <- pkg_minimum_r_version() if (is.na(minimum_r_version) || "3.6.3" > minimum_r_version) minimum_r_version <- "3.6.3" diff --git a/TODO.md b/TODO.md index 429d319c..493ca227 100644 --- a/TODO.md +++ b/TODO.md @@ -56,8 +56,8 @@ - [x] Remove `preset: bootstrap` workaround when pkgdown 2.0.8+ is released (per ) - [x] Replace `GITHUB_PAT` in `.Renviron` with [gitcreds](https://usethis.r-lib.org/articles/git-credentials.html) - [x] Review use of [usethis functions](https://usethis.r-lib.org/reference/index.html), including [pull request helpers](https://usethis.r-lib.org/articles/pr-functions.html) +- [X] Replace `dev = TRUE` logic after renv 1.1.6+ is released; see renv [#1695](https://github.com/rstudio/renv/issues/1695), [#2190](https://github.com/rstudio/renv/pull/2190) - [ ] Update tests with new testthat features (`testthat::auto_test_package()`, `testthat::describe()`, Reporters, `testthat::local_mocked_bindings()`) -- [ ] Replace `dev = TRUE` logic after renv 1.1.6+ is released; see renv [#1695](https://github.com/rstudio/renv/issues/1695), [#2190](https://github.com/rstudio/renv/pull/2190) - [ ] Update errors and messages after reading Advanced R [Conditions](https://adv-r.hadley.nz/conditions.html) and re-reading the Tidyverse [Style Guide](https://style.tidyverse.org/index.html) - [ ] Reduce the number of Imports, per R CMD check: diff --git a/man/check_renv.Rd b/man/check_renv.Rd index a40317bc..1a01ad01 100644 --- a/man/check_renv.Rd +++ b/man/check_renv.Rd @@ -10,8 +10,8 @@ check_renv(update = rlang::is_interactive()) \item{update}{run \code{\link[renv:update]{renv::update()}}} } \description{ -Runs \code{\link[renv:renv-package]{renv}} \code{\link[renv:status]{status(dev = TRUE)}}, -\code{\link[renv:clean]{clean()}}, and optionally \code{\link[renv:update]{update()}} +Runs \code{\link[renv:renv-package]{renv}} \code{\link[renv:status]{status()}}, \code{\link[renv:clean]{clean()}} +and optionally \code{\link[renv:update]{update()}} } \examples{ \dontrun{ diff --git a/man/ci.Rd b/man/ci.Rd index 10d33178..de580de8 100644 --- a/man/ci.Rd +++ b/man/ci.Rd @@ -19,7 +19,7 @@ ci( ) } \arguments{ -\item{renv}{check \code{\link[renv:status]{renv::status(dev = TRUE)}}} +\item{renv}{check \code{\link[renv:status]{renv::status()}}} \item{missing}{run \code{\link[=missing_deps]{missing_deps()}}} @@ -46,7 +46,7 @@ ci( Run continuous integration tests locally. } \details{ -If \code{\link[renv:status]{renv::status(dev = TRUE)}} is not synchronized, \code{ci()} will stop. +If \code{\link[renv:status]{renv::status()}} is not synchronized, \code{ci()} will stop. If \code{\link[=missing_deps]{missing_deps()}} returns any missing dependencies, \code{ci()} will stop. diff --git a/tests/testthat/test-ci.R b/tests/testthat/test-ci.R index d2c551ba..9152598d 100644 --- a/tests/testthat/test-ci.R +++ b/tests/testthat/test-ci.R @@ -18,7 +18,7 @@ test_that("All renv functions are called, unless set to FALSE", { begin <- "^" end <- "$" sep <- "\\n\\n" - status <- "renv::status\\(dev = TRUE\\)" + status <- "renv::status\\(\\)" clean <- "renv::clean\\(\\)" update <- "renv::update\\(\\)" @@ -121,7 +121,7 @@ test_that("All renv functions are called according to ci logic", { begin <- "^" end <- "$" sep <- "\\n\\n" - renv <- "renv::status\\(dev = TRUE\\)" + renv <- "renv::status\\(\\)" missing <- "missing_deps\\(\\)" pkgdown <- "pkgdown::check_pkgdown\\(\\)" styler <- "style_all\\(\\)" diff --git a/tests/testthat/test-upkeep.R b/tests/testthat/test-upkeep.R index 0faddafd..1e9b9c42 100644 --- a/tests/testthat/test-upkeep.R +++ b/tests/testthat/test-upkeep.R @@ -18,11 +18,12 @@ test_that("use_upkeep_issue validates arguments", { # upkeep_checklist -base_length <- 43 +base_length <- 47 test_that("upkeep_checklist is expected length for first upkeep", { usethis::ui_silence(local_temppkg(type = "rdev")) mockery::stub(upkeep_checklist, "desc::desc_has_dep", TRUE) + mockery::stub(upkeep_checklist, "renv::settings$snapshot.dev", FALSE) # get_license() "mit", package_type() "rdev", pkg_minimum_r_version NA, r_version character(0), # usethis::git_default_branch() "master", no inst/templates or inst/rmarkdown/templates @@ -63,11 +64,15 @@ test_that("upkeep_checklist is expected length for first upkeep", { mockery::stub(upkeep_checklist, "desc::desc_has_dep", FALSE) expect_length(upkeep_checklist(), base_length) + + mockery::stub(upkeep_checklist, "renv::settings$snapshot.dev", FALSE) + expect_length(upkeep_checklist(), base_length) }) test_that("upkeep_checklist is expected length for last upkeep year", { usethis::ui_silence(local_temppkg(type = "rdev")) mockery::stub(upkeep_checklist, "desc::desc_has_dep", TRUE) + mockery::stub(upkeep_checklist, "renv::settings$snapshot.dev", FALSE) expect_length(upkeep_checklist(), base_length) expect_length(upkeep_checklist(2021), base_length) @@ -76,4 +81,5 @@ test_that("upkeep_checklist is expected length for last upkeep year", { expect_length(upkeep_checklist(2024), base_length - 16) expect_length(upkeep_checklist(2025), base_length - 16) expect_length(upkeep_checklist(2026), base_length - 30) + expect_length(upkeep_checklist(2027), base_length - 34) }) From 913d53b9d9d53c175eb6e13d7558f3fc490f08d1 Mon Sep 17 00:00:00 2001 From: John Benninghoff Date: Fri, 16 Jan 2026 20:27:56 -0600 Subject: [PATCH 5/6] GitHub release 1.16.0 --- DESCRIPTION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index 073f79a1..0900c96d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: rdev Title: R Development Tools -Version: 1.15.6.9000 +Version: 1.16.0 Authors@R: person("John", "Benninghoff", , "jbenninghoff@mac.com", role = c("aut", "cre"), comment = c(ORCID = "0000-0002-6230-4742")) From d1976ffdce9223000d4219b362901e248508176e Mon Sep 17 00:00:00 2001 From: John Benninghoff Date: Fri, 16 Jan 2026 20:29:06 -0600 Subject: [PATCH 6/6] build_rdev_site() for release 1.16.0 --- README.md | 14 +++++++------- docs/404.html | 2 +- docs/LICENSE-text.html | 2 +- docs/LICENSE.html | 2 +- docs/TODO.html | 4 ++-- docs/articles/analysis-package-layout.html | 2 +- docs/articles/index.html | 2 +- docs/articles/rdev.html | 2 +- docs/articles/style-guide.html | 2 +- docs/authors.html | 6 +++--- docs/index.html | 16 ++++++++-------- docs/news/index.html | 7 ++++++- docs/pkgdown.yml | 2 +- docs/reference/build_analysis_site.html | 2 +- docs/reference/build_quarto_site.html | 2 +- docs/reference/build_rdev_site.html | 2 +- docs/reference/check_renv.html | 12 ++++++------ docs/reference/ci.html | 6 +++--- docs/reference/create_github_repo.html | 2 +- docs/reference/deps_check.html | 2 +- docs/reference/get_license.html | 2 +- docs/reference/get_release.html | 2 +- docs/reference/html_url_check.html | 2 +- docs/reference/index.html | 2 +- docs/reference/init.html | 2 +- docs/reference/lint_all.html | 2 +- docs/reference/local_temppkg.html | 2 +- docs/reference/merge_release.html | 2 +- docs/reference/new_branch.html | 2 +- docs/reference/open_files.html | 2 +- docs/reference/package_downloads.html | 2 +- docs/reference/package_type.html | 2 +- docs/reference/quickstart.html | 2 +- docs/reference/rdev-package.html | 2 +- docs/reference/rmd_metadata.html | 2 +- docs/reference/setup_analysis.html | 2 +- docs/reference/setup_rdev.html | 2 +- docs/reference/sort_file.html | 2 +- docs/reference/sort_rbuildignore.html | 2 +- docs/reference/spell_check_notebooks.html | 2 +- docs/reference/stage_release.html | 2 +- docs/reference/style_all.html | 2 +- docs/reference/to_document.html | 2 +- docs/reference/unfreeze.html | 2 +- docs/reference/update_wordlist_notebooks.html | 2 +- docs/reference/upkeep_checklist.html | 2 +- docs/reference/urlchecker-reexports.html | 2 +- docs/reference/use_analysis_package.html | 2 +- docs/reference/use_codecov.html | 2 +- docs/reference/use_gitattributes.html | 2 +- docs/reference/use_lintr.html | 2 +- docs/reference/use_package_r.html | 2 +- docs/reference/use_rdev_package.html | 2 +- docs/reference/use_rdev_pkgdown.html | 2 +- docs/reference/use_rprofile.html | 2 +- docs/reference/use_spelling.html | 2 +- docs/reference/use_todo.html | 2 +- docs/reference/use_upkeep_issue.html | 2 +- docs/search.json | 2 +- 59 files changed, 87 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index 50b35915..a1102374 100644 --- a/README.md +++ b/README.md @@ -93,7 +93,7 @@ For my workflow, I typically check renv when I start: library(rdev) check_renv() -#> renv::status(dev = TRUE) +#> renv::status() #> No issues found -- the project is in a consistent state. #> #> renv::clean() @@ -107,7 +107,7 @@ locally: ``` r ci() -#> renv::status(dev = TRUE) +#> renv::status() #> No issues found -- the project is in a consistent state. #> #> missing_deps() @@ -234,10 +234,10 @@ ci() #> * creating vignettes ... OK #> * checking for LF line-endings in source and make files and shell scripts #> * checking for empty or unneeded directories -#> * building ‘rdev_1.15.6.tar.gz’ +#> * building ‘rdev_1.16.0.tar.gz’ #> #> ── R CMD check ───────────────────────────────────────────────────────────────── -#> * using log directory ‘/private/var/folders/vn/cw5f9gws42v9m8mdsds_zbl00000gp/T/RtmpqNxoSE/file820a21bb3a1a/rdev.Rcheck’ +#> * using log directory ‘/private/var/folders/vn/cw5f9gws42v9m8mdsds_zbl00000gp/T/RtmpxJhUXI/file155b515153087/rdev.Rcheck’ #> * using R version 4.5.2 (2025-10-31) #> * using platform: aarch64-apple-darwin20 #> * R was compiled by @@ -247,7 +247,7 @@ ci() #> * using session charset: UTF-8 #> * using option ‘--no-manual’ #> * checking for file ‘rdev/DESCRIPTION’ ... OK -#> * this is package ‘rdev’ version ‘1.15.6’ +#> * this is package ‘rdev’ version ‘1.16.0’ #> * package encoding: UTF-8 #> * checking package namespace information ... OK #> * checking package dependencies ... OK @@ -302,8 +302,8 @@ ci() #> * DONE #> #> Status: OK -#> ── R CMD check results ──────────────────────────────────────── rdev 1.15.6 ──── -#> Duration: 26.8s +#> ── R CMD check results ──────────────────────────────────────── rdev 1.16.0 ──── +#> Duration: 26.4s #> #> 0 errors ✔ | 0 warnings ✔ | 0 notes ✔ ``` diff --git a/docs/404.html b/docs/404.html index 7d1b6a31..79b08f95 100644 --- a/docs/404.html +++ b/docs/404.html @@ -27,7 +27,7 @@ rdev - 1.15.6 + 1.16.0