From 354a1d20a2ddb4d5978989fba823a92a8ba29bd1 Mon Sep 17 00:00:00 2001 From: Roland Stevenson Date: Wed, 31 Oct 2018 12:12:48 +0000 Subject: [PATCH 1/5] opts.evaluate addresses #458 slow snapshot --- R/dependencies.R | 10 ++++++---- R/options.R | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/R/dependencies.R b/R/dependencies.R index 62f57756..2c2a4a77 100644 --- a/R/dependencies.R +++ b/R/dependencies.R @@ -144,11 +144,13 @@ dirDependencies <- function(dir) { R_files <- grep(ignoredDirRegex, R_files, invert = TRUE, value = TRUE) } - sapply(R_files, function(file) { - filePath <- file.path(dir, file) - pkgs <<- append(pkgs, fileDependencies(file.path(dir, file))) + if (opts$fileDependencies.evaluate) { + sapply(R_files, function(file) { + filePath <- file.path(dir, file) + pkgs <<- append(pkgs, fileDependencies(file.path(dir, file))) - }) + }) + } ## Exclude recommended packages if there is no package installed locally ## this places an implicit dependency on the system-installed version of a package diff --git a/R/options.R b/R/options.R index 46b98f18..92c20ca7 100644 --- a/R/options.R +++ b/R/options.R @@ -25,7 +25,8 @@ VALID_OPTIONS <- list( snapshot.recommended.packages = list(TRUE, FALSE), snapshot.fields = function(x) { is.null(x) || is.character(x) - } + }, + fileDependencies.evaluate = list(TRUE, FALSE) ) default_opts <- function() { @@ -42,7 +43,8 @@ default_opts <- function() { ignored.directories = c("data", "inst"), quiet.package.installation = TRUE, snapshot.recommended.packages = FALSE, - snapshot.fields = c("Imports", "Depends", "LinkingTo") + snapshot.fields = c("Imports", "Depends", "LinkingTo"), + fileDependencies.evaluate = TRUE ) } From 0a74669abcb643bc90cdf1e29e54cf83a413d2c1 Mon Sep 17 00:00:00 2001 From: Roland Stevenson Date: Wed, 31 Oct 2018 12:12:48 +0000 Subject: [PATCH 2/5] opts$fileDependencies.evaluate addresses #458 slow snapshot --- R/dependencies.R | 10 ++++++---- R/options.R | 6 ++++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/R/dependencies.R b/R/dependencies.R index 62f57756..2c2a4a77 100644 --- a/R/dependencies.R +++ b/R/dependencies.R @@ -144,11 +144,13 @@ dirDependencies <- function(dir) { R_files <- grep(ignoredDirRegex, R_files, invert = TRUE, value = TRUE) } - sapply(R_files, function(file) { - filePath <- file.path(dir, file) - pkgs <<- append(pkgs, fileDependencies(file.path(dir, file))) + if (opts$fileDependencies.evaluate) { + sapply(R_files, function(file) { + filePath <- file.path(dir, file) + pkgs <<- append(pkgs, fileDependencies(file.path(dir, file))) - }) + }) + } ## Exclude recommended packages if there is no package installed locally ## this places an implicit dependency on the system-installed version of a package diff --git a/R/options.R b/R/options.R index 46b98f18..92c20ca7 100644 --- a/R/options.R +++ b/R/options.R @@ -25,7 +25,8 @@ VALID_OPTIONS <- list( snapshot.recommended.packages = list(TRUE, FALSE), snapshot.fields = function(x) { is.null(x) || is.character(x) - } + }, + fileDependencies.evaluate = list(TRUE, FALSE) ) default_opts <- function() { @@ -42,7 +43,8 @@ default_opts <- function() { ignored.directories = c("data", "inst"), quiet.package.installation = TRUE, snapshot.recommended.packages = FALSE, - snapshot.fields = c("Imports", "Depends", "LinkingTo") + snapshot.fields = c("Imports", "Depends", "LinkingTo"), + fileDependencies.evaluate = TRUE ) } From 8010a4490edc4722c2864b3f6887425cf632631b Mon Sep 17 00:00:00 2001 From: Roland Stevenson Date: Wed, 31 Oct 2018 18:29:52 +0000 Subject: [PATCH 3/5] removed project-level option fileDependencies.evaluate --- R/options.R | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/R/options.R b/R/options.R index 92c20ca7..46b98f18 100644 --- a/R/options.R +++ b/R/options.R @@ -25,8 +25,7 @@ VALID_OPTIONS <- list( snapshot.recommended.packages = list(TRUE, FALSE), snapshot.fields = function(x) { is.null(x) || is.character(x) - }, - fileDependencies.evaluate = list(TRUE, FALSE) + } ) default_opts <- function() { @@ -43,8 +42,7 @@ default_opts <- function() { ignored.directories = c("data", "inst"), quiet.package.installation = TRUE, snapshot.recommended.packages = FALSE, - snapshot.fields = c("Imports", "Depends", "LinkingTo"), - fileDependencies.evaluate = TRUE + snapshot.fields = c("Imports", "Depends", "LinkingTo") ) } From 4a5a86dae2d987fd3c8d0b3c80888c98df682409 Mon Sep 17 00:00:00 2001 From: Roland Stevenson Date: Wed, 31 Oct 2018 18:44:30 +0000 Subject: [PATCH 4/5] R-level option for fileDependencies.evaluate --- R/dependencies.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/dependencies.R b/R/dependencies.R index 2c2a4a77..b35dd995 100644 --- a/R/dependencies.R +++ b/R/dependencies.R @@ -144,7 +144,7 @@ dirDependencies <- function(dir) { R_files <- grep(ignoredDirRegex, R_files, invert = TRUE, value = TRUE) } - if (opts$fileDependencies.evaluate) { + if (!(FALSE %in% options("fileDependencies.evaluate"))) { sapply(R_files, function(file) { filePath <- file.path(dir, file) pkgs <<- append(pkgs, fileDependencies(file.path(dir, file))) From 1b82d9f44161cc855b8c0cfcfbc1d86747d6ea98 Mon Sep 17 00:00:00 2001 From: Roland Stevenson Date: Wed, 31 Oct 2018 23:56:51 +0000 Subject: [PATCH 5/5] R-level option is now packrat.dependency.discovery.disabled --- R/dependencies.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/dependencies.R b/R/dependencies.R index b35dd995..1637be9b 100644 --- a/R/dependencies.R +++ b/R/dependencies.R @@ -144,7 +144,7 @@ dirDependencies <- function(dir) { R_files <- grep(ignoredDirRegex, R_files, invert = TRUE, value = TRUE) } - if (!(FALSE %in% options("fileDependencies.evaluate"))) { + if (!identical(getOption("packrat.dependency.discovery.disabled"), TRUE)) { sapply(R_files, function(file) { filePath <- file.path(dir, file) pkgs <<- append(pkgs, fileDependencies(file.path(dir, file)))