diff --git a/.Rprofile b/.Rprofile new file mode 100644 index 0000000..f59f230 --- /dev/null +++ b/.Rprofile @@ -0,0 +1,5 @@ +if (requireNamespace("jetpack", quietly=TRUE)) { + jetpack::load() +} else { + message("Install Jetpack to use a virtual environment for this project") +} diff --git a/.gitignore b/.gitignore index 1c9031c..ea63726 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ *DS_Store *~ *#* +jsroot_lib_test diff --git a/DESCRIPTION b/DESCRIPTION index 5b0bfb4..74fc2b8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -11,4 +11,5 @@ License: Jalgos License Encoding: UTF-8 LazyData: true RoxygenNote: 6.0.1 -Suggests: testthat +Imports: + devtools diff --git a/R/install.R b/R/install.R index 6984971..23b4536 100644 --- a/R/install.R +++ b/R/install.R @@ -149,14 +149,14 @@ reinstall.cran.next <- function() #' @export reinstall.jalgos.next <- function() { - jsroot.env$reinstall.jalgos <- TRUE + jsroot.env$reinstall.jalgos <- TRUE } #' @describeIn force.reinstall Will reinstall only the github packages the next time dependencies is called #' @export reinstall.github.next <- function() { - jsroot.env$reinstall.github <- TRUE + jsroot.env$reinstall.github <- TRUE } #' Dealing With Dependencies @@ -198,10 +198,10 @@ dependencies <- function(libpath = 'lib', repo = paste(author, LP, sep = "/"), install.fun = function(name, ...) devtools::install_github(...), force = force.github)))) - + jsroot.env$reinstall.github <- FALSE - - + + mapply(names(jspackages), jspackages, FUN = function(group, LPs) lapply(LPs, diff --git a/packrat.lock b/packrat.lock new file mode 100644 index 0000000..e1af70e --- /dev/null +++ b/packrat.lock @@ -0,0 +1,299 @@ +PackratFormat: 1.4 +PackratVersion: 0.5.0 +RVersion: 3.6.0 +Repos: CRAN=https://cloud.r-project.org/ + +Package: R6 +Source: CRAN +Version: 2.4.0 +Hash: 948a547c484e5bea15eee76cc53cce3f + +Package: Rcpp +Source: CRAN +Version: 1.0.2 +Hash: d04e441a8d398e3d3a71f294c07fa94d + +Package: askpass +Source: CRAN +Version: 1.1 +Hash: 6f6c430e3cd0dd7d48f447700f4d7e7f +Requires: sys + +Package: assertthat +Source: CRAN +Version: 0.2.1 +Hash: 622be49032fe50bd42e96aaef613e209 + +Package: backports +Source: CRAN +Version: 1.1.4 +Hash: e88df919a68845e664e019570e2251b6 + +Package: brew +Source: CRAN +Version: 1.0-6 +Hash: 931f9972deae0f205e1c78a51f33149b + +Package: callr +Source: CRAN +Version: 3.3.1 +Hash: 5611f2e7617b9ea6737cb083135f7615 +Requires: R6, processx + +Package: cli +Source: CRAN +Version: 1.1.0 +Hash: bc4e54014c2049f2605ad0c3ba0cce6b +Requires: assertthat, crayon + +Package: clipr +Source: CRAN +Version: 0.7.0 +Hash: 30cdec6c8cc62c80c485e6bdd0c02b05 + +Package: clisymbols +Source: CRAN +Version: 1.2.0 +Hash: a76a309884277a4fd8a5d741965fbef5 + +Package: commonmark +Source: CRAN +Version: 1.7 +Hash: 77f4ba718e2bad1877ef26e48cf8fa43 + +Package: crayon +Source: CRAN +Version: 1.3.4 +Hash: ff2840dd9b0d563fc80377a5a45510cd + +Package: curl +Source: CRAN +Version: 4.0 +Hash: 43ba5c33f68914a98361fb056d32872d + +Package: desc +Source: CRAN +Version: 1.2.0 +Hash: a0a3ca939997679a52816bae4ed6aaae +Requires: R6, assertthat, crayon, rprojroot + +Package: devtools +Source: CRAN +Version: 2.1.0 +Hash: a2b0108d1ddb79155e92e1939ce47d29 +Requires: callr, cli, digest, git2r, httr, jsonlite, memoise, pkgbuild, + pkgload, rcmdcheck, remotes, roxygen2, rstudioapi, sessioninfo, + testthat, usethis, withr + +Package: digest +Source: CRAN +Version: 0.6.20 +Hash: 96694793002a72637776e3b31956cbb2 + +Package: evaluate +Source: CRAN +Version: 0.14 +Hash: 18306cc3bc1aec7b7360eea8a0eb0ee1 + +Package: fs +Source: CRAN +Version: 1.3.1 +Hash: 104f1ba37405da6eb4d2391f7c02aaba +Requires: Rcpp + +Package: gh +Source: CRAN +Version: 1.0.1 +Hash: 3f8812accd1320227d744bca620e8c42 +Requires: httr, ini, jsonlite + +Package: git2r +Source: CRAN +Version: 0.26.1 +Hash: 744a0a12d9f4ac186b222f6795fab4fe + +Package: glue +Source: CRAN +Version: 1.3.1 +Hash: 660bbbe3803c7cf7c9489a7d99a9c0ed + +Package: httr +Source: CRAN +Version: 1.4.1 +Hash: cc16de93eaabd3c6d0785cb8e6d059ab +Requires: R6, curl, jsonlite, mime, openssl + +Package: ini +Source: CRAN +Version: 0.3.1 +Hash: 9d6de5178c1cedabfb24e7d2acc9a092 + +Package: jsonlite +Source: CRAN +Version: 1.6 +Hash: 5f969e213e966135393e3e304abf3f49 + +Package: magrittr +Source: CRAN +Version: 1.5 +Hash: bdc4d48c3135e8f3b399536ddf160df4 + +Package: memoise +Source: CRAN +Version: 1.1.0 +Hash: 410fcd334bc626db100237cc1370f2e9 +Requires: digest + +Package: mime +Source: CRAN +Version: 0.7 +Hash: 0d7563caf453c231b6f8c359c51eecc2 + +Package: openssl +Source: CRAN +Version: 1.4.1 +Hash: b01fe6ae05ec2a30a777dc338af5bf69 +Requires: askpass + +Package: packrat +Source: CRAN +Version: 0.5.0 +Hash: 498643e765d1442ba7b1160a1df3abf9 + +Package: pkgbuild +Source: CRAN +Version: 1.0.5 +Hash: f2d965cdb1d2fdbc55c5022b7fe709b2 +Requires: R6, callr, cli, crayon, desc, prettyunits, rprojroot, withr + +Package: pkgload +Source: CRAN +Version: 1.0.2 +Hash: 41eb2db35be61f6f9e8864cf87a1ecb0 +Requires: desc, pkgbuild, rlang, rprojroot, rstudioapi, withr + +Package: praise +Source: CRAN +Version: 1.0.0 +Hash: 77da8f1df873a4b91e5c4a68fe2fb1b6 + +Package: prettyunits +Source: CRAN +Version: 1.0.2 +Hash: 49286102a855640daaa38eafe8b1ec30 +Requires: assertthat, magrittr + +Package: processx +Source: CRAN +Version: 3.4.1 +Hash: 5c1f432b290b26ccc2aaaa8ff1fd2f62 +Requires: R6, ps + +Package: ps +Source: CRAN +Version: 1.3.0 +Hash: 1d4cae95887ffe5b1a22bea5994476cd + +Package: purrr +Source: CRAN +Version: 0.3.2 +Hash: d7bb7f62bb3af2d6510f50cb7190a060 +Requires: magrittr, rlang + +Package: rcmdcheck +Source: CRAN +Version: 1.3.3 +Hash: df2319559a8ed16e5b4d5f99de3e00a0 +Requires: R6, callr, cli, crayon, desc, digest, pkgbuild, prettyunits, + rprojroot, sessioninfo, withr, xopen + +Package: remotes +Source: CRAN +Version: 2.1.0 +Hash: 3e0c7be315f7373f63989166181bfdcb + +Package: rlang +Source: CRAN +Version: 0.4.0 +Hash: eabda67321fe1d477ea641ddd5d84f00 + +Package: roxygen2 +Source: CRAN +Version: 6.1.1 +Hash: 9fc3e349302d3887e96aa6eee3b33801 +Requires: R6, Rcpp, brew, commonmark, desc, digest, pkgload, purrr, + stringi, stringr, xml2 + +Package: rprojroot +Source: CRAN +Version: 1.3-2 +Hash: a25c3f70c166fb3fbabc410eb32b6366 +Requires: backports + +Package: rstudioapi +Source: CRAN +Version: 0.10 +Hash: 63f43c6ff14d92e1d65ca6c21d45a1eb + +Package: sessioninfo +Source: CRAN +Version: 1.1.1 +Hash: 9e50c8458e611f166ba702277cbb5096 +Requires: cli, withr + +Package: stringi +Source: CRAN +Version: 1.4.3 +Hash: ed2a82fc7cc668c1345223d938cdfaf2 + +Package: stringr +Source: CRAN +Version: 1.4.0 +Hash: 67da32dbb2a7a16f2ef124336358e54a +Requires: glue, magrittr, stringi + +Package: sys +Source: CRAN +Version: 3.3 +Hash: d5a4afad9298f42aae77f6389713a066 + +Package: testthat +Source: CRAN +Version: 2.2.1 +Hash: ec68d8eb0203c88d5efa62e67fba2a97 +Requires: R6, cli, crayon, digest, evaluate, magrittr, praise, rlang, + withr + +Package: usethis +Source: CRAN +Version: 1.5.1 +Hash: 1a3f09efcce670dc6a5562cfd3c71d66 +Requires: clipr, clisymbols, crayon, curl, desc, fs, gh, git2r, glue, + purrr, rlang, rprojroot, rstudioapi, whisker, withr, yaml + +Package: whisker +Source: CRAN +Version: 0.4 +Hash: 5b1ec05cd96c1e0c6048bab49abee3aa + +Package: withr +Source: CRAN +Version: 2.1.2 +Hash: d534108bcd5f34ec73e9eb523751ba20 + +Package: xml2 +Source: CRAN +Version: 1.2.2 +Hash: c5258a3beb15da46d4682eda667bf5ec +Requires: Rcpp + +Package: xopen +Source: CRAN +Version: 1.0.0 +Hash: 22c2708f177f9fd9f8a52012bac61d6a +Requires: processx + +Package: yaml +Source: CRAN +Version: 2.2.0 +Hash: a5ad5616d83d89f8d84cbf3cf4034e13 diff --git a/tests/testthat/test.dependencies.R b/tests/testthat/test.dependencies.R index f6c999f..3207d43 100644 --- a/tests/testthat/test.dependencies.R +++ b/tests/testthat/test.dependencies.R @@ -1,22 +1,65 @@ context("dependencies") -test_that("dependencies work", +#' Removes jsroot_lib_test before each test to make sure each test is isolated +clean_before <- function() { + system("rm -Rf jsroot_lib_test") +} + +test_that("jsroot installs cran.packages successfully", +{ + clean_before() + + expect_output(jsroot::dependencies(cran.packages = c("track", "uuid"), + libpath = 'jsroot_lib_test', + force.cran = TRUE), + regexp = "downloaded") +}) + +test_that("jsroot throws an error for unknown cran.packages dependencies", +{ + clean_before() + + expect_warning(jsroot::dependencies(cran.packages = c("unknown_package"), + libpath = 'jsroot_lib_test', + force.cran = TRUE, + quiet = TRUE)) +}) + + +test_that("jsroot installs jspackages successfully", { - jsroot::dependencies(jspackages = list("utils" = c("jlogger", - "jconfig", - "jsutils", - "jsmath", - "jsstats", - "jsviz", - "hugesparse"), - "jalgos-dev"= c("TRF")), - cran.packages = c("track", - "data.table", - "ggplot2", - "bit"), - github.packages = list("wrathematics" = c("getip"), - "RBigData" = c("remoter", "pbdCS")), - libpath = 'jsroot_lib_test') + clean_before() + jsroot::dependencies(cran.packages = c("track", "uuid"), # jslogger track and uuid should be installed, beacase jlogger uses it + jspackages = list("utils" = c("jlogger")), + libpath = 'jsroot_lib_test', + force.cran = TRUE, + force.jalgos = TRUE, + quiet = FALSE) + + expect_equal(packageDescription("jlogger")$Package, + "jlogger") +}) + +test_that("jsroot installs github.packages successfully", +{ + clean_before() + + jsroot::dependencies(github.packages = list("tidyverse" = c("purrr")), + libpath = 'jsroot_lib_test', + force.github = TRUE) + + expect_equal(packageDescription("purrr")$Package, "purrr") + expect_true(packageDescription("purrr")$Version != "0.3.0") }) +test_that("jsroot installs github.packages with specific version successfully", +{ + clean_before() + + jsroot::dependencies(github.packages = list("tidyverse" = c("purrr@v0.3.0")), + libpath = 'jsroot_lib_test', + force.github = TRUE) + + expect_true(packageDescription("purrr")$Version == "0.3.0") +})