Skip to content

Commit

Permalink
Merge pull request #1063 from r-lib/issue-1058
Browse files Browse the repository at this point in the history
Better communication if `styler.cache_root` is not set.
  • Loading branch information
IndrajeetPatil committed Nov 19, 2022
2 parents f313f3e + b74067c commit 8a63d95
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 22 deletions.
27 changes: 24 additions & 3 deletions R/ui-caching.R
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,25 @@ cache_clear <- function(cache_name = NULL, ask = TRUE) {
#' Remember the past to be quicker in the future
#'
#' Caching makes styler faster on repeated styling and is shared across all APIs
#' (e.g. `style_text()` and Addin).
#' That means if you style code that already complies to a
#' style guide and you have previously styled that code, it will be quicker.
#' (e.g. `style_text()` and Addin). That means if you style code that already
#' complies to a style guide and you have previously styled that code, it will
#' be quicker.
#'
#' @section Configuring the cache:
#'
#' To comply with the CRAN policy, \{styler\} will by default clean up cache files
#' that are older than 6 days. This implies that you loose the benefit of the cache
#' for the files not styled in the last 6 days.
#'
#' If you want to avoid this, i.e., if you want the cache to last longer, you can use the
#' R option `styler.cache_root` to opt for an indefinitely long-lived cache by setting it to
#' `options(styler.cache_root = "styler-perm")`.
#'
#' If you are happy with the cache being cleared after 6 days, you can confirm the default and
#' silence this message by setting it instead to `options(styler.cache_root = "styler")`.
#'
#' You can make this change in your `.Rprofile` using `usethis::edit_r_profile()`.
#'
#' @section Manage the cache:
#' See [cache_info()],[cache_activate()] or [cache_clear()] for utilities to
#' manage the cache. You can deactivate it altogether with [cache_deactivate()].
Expand All @@ -47,6 +63,11 @@ cache_clear <- function(cache_name = NULL, ask = TRUE) {
#' which is why it takes zero space on disk (the cache is a directory with
#' empty files which have the hash of output code as name).
#'
#' The cache literally takes zero space on your disk, only the inode, and you
#' can always manually clean up with [cache_clear()] or just go to the
#' directory where the cache lives (find it with [cache_info()]) and manually
#' delete files.
#'
#' @section Using a cache for styler in CI/CD:
#' If you want to set up caching in a CI/CD pipeline, we suggest to set the
#' `{R.cache}` root path to a directory for which you have the cache enabled.
Expand Down
18 changes: 4 additions & 14 deletions R/zzz.R
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,11 @@ ask_to_switch_to_non_default_cache_root <- function(ask = interactive()) {
}
}


ask_to_switch_to_non_default_cache_root_impl <- function() {
rlang::warn(paste0(
"The R option `styler.cache_root` is not set, which means the cache ",
"will get cleaned up after 6 days (and repeated styling will be slower).",
" To keep cache files longer, set ",
"the option to location within the {R.cache} cache where you want to ",
"store the cache, e.g. `\"styler-perm\"`.\n\n",
"options(styler.cache_root = \"styler-perm\")\n\n",
"in your .Rprofile. Note that the cache literally ",
"takes zero space on your disk, only the inode, and you can always ",
"manually clean up with `styler::cache_clear()`, and if you update the ",
"{styler} package, the cache is removed in any case. To ignore this ",
"message in the future, set the default explictly to \"styler\" with\n\n",
"options(styler.cache_root = \"styler\")\n\nin your `.Rprofile`. This ",
"message will only be displayed once in a while.\n"
rlang::inform(paste0(
"{styler} cache is cleared after 6 days. ",
"See `?styler::caching` to configure differently or silence this message."
))
}

Expand Down
28 changes: 25 additions & 3 deletions man/caching.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions tests/testthat/test-public_api.R
Original file line number Diff line number Diff line change
Expand Up @@ -512,9 +512,9 @@ test_that("Can properly determine style_after_saving", {
test_that("Can display warning on unset styler cache", {
withr::local_options(styler.cache_root = NULL)
withr::local_seed(7)
expect_warning(
expect_message(
ask_to_switch_to_non_default_cache_root(ask = TRUE),
'options(styler.cache_root = "styler-perm")',
"See `?styler::caching`",
fixed = TRUE
)
})
Expand Down

0 comments on commit 8a63d95

Please sign in to comment.