From fd646fe1fc989c2cc49afc52ce864c563525cdc4 Mon Sep 17 00:00:00 2001 From: "Matthijs S. Berends" Date: Sun, 30 Dec 2018 08:40:40 +0100 Subject: [PATCH] introduction of Packrat --- .Rbuildignore | 23 +-- .gitignore | 3 + .gitlab-ci.yml | 95 +++++++----- _pkgdown.yml | 18 +++ ci.R | 48 ++++++ index.md | 15 +- packrat/init.R | 226 +++++++++++++++++++++++++++ packrat/packrat.lock | 354 +++++++++++++++++++++++++++++++++++++++++++ packrat/packrat.opts | 19 +++ pkgdown/extra.js | 7 +- 10 files changed, 750 insertions(+), 58 deletions(-) create mode 100644 ci.R create mode 100644 packrat/init.R create mode 100644 packrat/packrat.lock create mode 100644 packrat/packrat.opts diff --git a/.Rbuildignore b/.Rbuildignore index 75fc018f..d20eb122 100755 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -1,17 +1,20 @@ -^Meta$ -^doc$ -^CRAN-RELEASE$ ^.*\.Rproj$ +^\.gitlab-ci.yml$ +^\.Rprofile$ ^\.Rproj\.user$ ^\.travis.yml$ -^appveyor.yml$ -^\.gitlab-ci.yml$ ^\.zenodo.json$ ^_noinclude$ -^cran-comments\.md$ -^git.sh$ -^public$ -^docs$ ^_pkgdown\.yml$ -^pkgdown$ +^appveyor.yml$ +^ci.R$ +^cran-comments\.md$ +^CRAN-RELEASE$ +^doc$ +^docs$ +^git.sh$ ^index\.md$ +^Meta$ +^packrat/ +^pkgdown$ +^public$ diff --git a/.gitignore b/.gitignore index 604cb3b3..66e5baae 100755 --- a/.gitignore +++ b/.gitignore @@ -15,5 +15,8 @@ _noinclude *.dll vignettes/*.R .DS_Store +.Rprofile ^CRAN-RELEASE$ git.sh +packrat/lib*/ +packrat/src/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 347be6df..2f07c55a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,54 +1,69 @@ -# from https://stackoverflow.com/questions/51866926 -# and https://github.com/jangorecki/r.gitlab.ci -# and https://docs.gitlab.com/ce/ci/yaml/README.html -# how the Docker+R images work: https://hub.docker.com/r/rocker/r-ver/ +# ==================================================================== # +# TITLE # +# Antimicrobial Resistance (AMR) Analysis # +# # +# AUTHORS # +# Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) # +# # +# LICENCE # +# This package is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License version 2.0, # +# as published by the Free Software Foundation. # +# # +# This R package is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License version 2.0 for more details. # +# ==================================================================== # + +# https://r-posts.com/gitlab-ci-for-r-package-development/ + +image: rocker/r-base stages: - - build + - setup + - test - deploy -image: rocker/r-ver:3 # test on R v3.*.* +cache: + # Ommit key to use the same cache across all pipelines and branches + key: "$CI_COMMIT_REF_SLUG" + paths: + - packrat/lib/ -before_script: - - apt-get update - # install dependencies for package - - apt-get install --yes --no-install-recommends libxml2-dev libssl-dev libcurl4-openssl-dev zlib1g-dev pandoc - - Rscript -e 'install.packages(c("devtools", "rlang"), repos = "https://cran.rstudio.com")' - - Rscript -e 'devtools::install_dev_deps(repos = "https://cran.rstudio.com")' - -R 3: - stage: build - allow_failure: true +setup: + stage: setup script: - # remove vignettes folder and get VignetteBuilder field out of DESCRIPTION file - - rm -rf vignettes - - Rscript -e 'd <- read.dcf("DESCRIPTION"); d[, colnames(d) == "VignetteBuilder"] <- NA; write.dcf(d, "DESCRIPTION")' - # build package - - R CMD build . --no-build-vignettes --no-manual - - PKG_FILE_NAME=$(ls -1t *.tar.gz | head -n 1) - - R CMD check "${PKG_FILE_NAME}" --no-build-vignettes --no-manual --as-cran - # code coverage - - apt-get install --yes git - - Rscript -e 'cc <- covr::package_coverage(); covr::codecov(coverage = cc, token = "50ffa0aa-fee0-4f8b-a11d-8c7edc6d32ca"); cat("Code coverage:", covr::percent_coverage(cc))' + - R -e 'source("ci.R"); ci_setup()' + +check: + stage: test + dependencies: + - setup + when: on_success + script: + - R -e 'source("ci.R"); ci_check()' + +coverage: + stage: test + dependencies: + - setup + when: on_success + only: + - master + script: + - R -e 'source("ci.R"); ci_coverage()' coverage: '/Code coverage: \d+\.\d+/' - artifacts: - paths: - - '*.Rcheck/*.log' - - '*.Rcheck/*.out' - # - '*.Rcheck/*.fail' - - '*.Rcheck/*.Rout' - name: 'Rcheck log' - expire_in: '1 month' pages: stage: deploy + dependencies: + - setup + when: on_success + only: + - master script: - - Rscript -e "install.packages('pkgdown', repos = 'https://cran.rstudio.com')" - - Rscript -e "devtools::install(build = TRUE, upgrade = FALSE)" - # - R -e "pkgdown::build_favicon()" - - R -e "pkgdown::build_site(examples = FALSE, override = list(destination = 'public'))" + - R -e 'source("ci.R"); ci_pages()' artifacts: paths: - public - only: - - master diff --git a/_pkgdown.yml b/_pkgdown.yml index b3ac50ec..93e91593 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -1,3 +1,21 @@ +# ==================================================================== # +# TITLE # +# Antimicrobial Resistance (AMR) Analysis # +# # +# AUTHORS # +# Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) # +# # +# LICENCE # +# This package is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License version 2.0, # +# as published by the Free Software Foundation. # +# # +# This R package is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License version 2.0 for more details. # +# ==================================================================== # + url: https://msberends.gitlab.io title: 'AMR (for R)' diff --git a/ci.R b/ci.R new file mode 100644 index 00000000..d67323be --- /dev/null +++ b/ci.R @@ -0,0 +1,48 @@ +# ==================================================================== # +# TITLE # +# Antimicrobial Resistance (AMR) Analysis # +# # +# AUTHORS # +# Berends MS (m.s.berends@umcg.nl), Luz CF (c.f.luz@umcg.nl) # +# # +# LICENCE # +# This package is free software; you can redistribute it and/or modify # +# it under the terms of the GNU General Public License version 2.0, # +# as published by the Free Software Foundation. # +# # +# This R package is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License version 2.0 for more details. # +# ==================================================================== # + +install_if_needed <- function(package_to_install) { + package_path <- find.package(package_to_install, quiet = TRUE) + + if(length(package_path) == 0){ + # Only install if not present + install.packages(package_to_install) + } +} + +ci_setup <- function() { + install_if_needed("packrat") + packrat::restore() +} + +ci_check <- function() { + install_if_needed("devtools") + devtools::check() +} + +ci_coverage <- function() { + install_if_needed("covr") + cc <- covr::package_coverage(type = c("tests", "examples")) + covr::codecov(coverage = cc, token = "50ffa0aa-fee0-4f8b-a11d-8c7edc6d32ca") + cat("Code coverage:", covr::percent_coverage(cc)) +} + +ci_pages <- function() { + install_if_needed("pkgdown") + pkgdown::build_site(examples = FALSE, override = list(destination = "public")) +} diff --git a/index.md b/index.md index 9a0e0c59..d6dc1674 100644 --- a/index.md +++ b/index.md @@ -10,30 +10,35 @@ We created this package for academic research at the Faculty of Medical Sciences This package is ready-to-use for a professional environment by specialists in the following fields: -* Medical Microbiology +Medical Microbiology: + * Epidemiologists (both clinical microbiological and research) * Research Microbiologists * Biomedical Researchers * Research Pharmacologists -* Veterinary Microbiology +Veterinary Microbiology: + * Research Veterinarians * Veterinary Epidemiologists * Biomedical Researchers -* Microbial Ecology +Microbial Ecology: + * Soil Microbiologists * Extremophile Researchers * Astrobiologists -* Other specialists in any of the above fields: +Other specialists in any of the above fields: + * Data Scientists/Data Analysts * Biotechnologists * Biochemists * Geneticists * Molecular Biologists/Microbiologists -* Developers +Developers: + * Package developers for R * Software developers * Web application developers diff --git a/packrat/init.R b/packrat/init.R new file mode 100644 index 00000000..5901a331 --- /dev/null +++ b/packrat/init.R @@ -0,0 +1,226 @@ +local({ + + ## Helper function to get the path to the library directory for a + ## given packrat project. + getPackratLibDir <- function(projDir = NULL) { + path <- file.path("packrat", "lib", R.version$platform, getRversion()) + + if (!is.null(projDir)) { + + ## Strip trailing slashes if necessary + projDir <- sub("/+$", "", projDir) + + ## Only prepend path if different from current working dir + if (!identical(normalizePath(projDir), normalizePath(getwd()))) + path <- file.path(projDir, path) + } + + path + } + + ## Ensure that we set the packrat library directory relative to the + ## project directory. Normally, this should be the working directory, + ## but we also use '.rs.getProjectDirectory()' if necessary (e.g. we're + ## rebuilding a project while within a separate directory) + libDir <- if (exists(".rs.getProjectDirectory")) + getPackratLibDir(.rs.getProjectDirectory()) + else + getPackratLibDir() + + ## Unload packrat in case it's loaded -- this ensures packrat _must_ be + ## loaded from the private library. Note that `requireNamespace` will + ## succeed if the package is already loaded, regardless of lib.loc! + if ("packrat" %in% loadedNamespaces()) + try(unloadNamespace("packrat"), silent = TRUE) + + if (suppressWarnings(requireNamespace("packrat", quietly = TRUE, lib.loc = libDir))) { + + # Check 'print.banner.on.startup' -- when NA and RStudio, don't print + print.banner <- packrat::get_opts("print.banner.on.startup") + if (print.banner == "auto" && is.na(Sys.getenv("RSTUDIO", unset = NA))) { + print.banner <- TRUE + } else { + print.banner <- FALSE + } + return(packrat::on(print.banner = print.banner)) + } + + ## Escape hatch to allow RStudio to handle bootstrapping. This + ## enables RStudio to provide print output when automagically + ## restoring a project from a bundle on load. + if (!is.na(Sys.getenv("RSTUDIO", unset = NA)) && + is.na(Sys.getenv("RSTUDIO_PACKRAT_BOOTSTRAP", unset = NA))) { + Sys.setenv("RSTUDIO_PACKRAT_BOOTSTRAP" = "1") + setHook("rstudio.sessionInit", function(...) { + # Ensure that, on sourcing 'packrat/init.R', we are + # within the project root directory + if (exists(".rs.getProjectDirectory")) { + owd <- getwd() + setwd(.rs.getProjectDirectory()) + on.exit(setwd(owd), add = TRUE) + } + source("packrat/init.R") + }) + return(invisible(NULL)) + } + + ## Bootstrapping -- only performed in interactive contexts, + ## or when explicitly asked for on the command line + if (interactive() || "--bootstrap-packrat" %in% commandArgs(TRUE)) { + + needsRestore <- "--bootstrap-packrat" %in% commandArgs(TRUE) + + message("Packrat is not installed in the local library -- ", + "attempting to bootstrap an installation...") + + ## We need utils for the following to succeed -- there are calls to functions + ## in 'restore' that are contained within utils. utils gets loaded at the + ## end of start-up anyhow, so this should be fine + library("utils", character.only = TRUE) + + ## Install packrat into local project library + packratSrcPath <- list.files(full.names = TRUE, + file.path("packrat", "src", "packrat") + ) + + ## No packrat tarballs available locally -- try some other means of installation + if (!length(packratSrcPath)) { + + message("> No source tarball of packrat available locally") + + ## There are no packrat sources available -- try using a version of + ## packrat installed in the user library to bootstrap + if (requireNamespace("packrat", quietly = TRUE) && packageVersion("packrat") >= "0.2.0.99") { + message("> Using user-library packrat (", + packageVersion("packrat"), + ") to bootstrap this project") + } + + ## Couldn't find a user-local packrat -- try finding and using devtools + ## to install + else if (requireNamespace("devtools", quietly = TRUE)) { + message("> Attempting to use devtools::install_github to install ", + "a temporary version of packrat") + library(stats) ## for setNames + devtools::install_github("rstudio/packrat") + } + + ## Try downloading packrat from CRAN if available + else if ("packrat" %in% rownames(available.packages())) { + message("> Installing packrat from CRAN") + install.packages("packrat") + } + + ## Fail -- couldn't find an appropriate means of installing packrat + else { + stop("Could not automatically bootstrap packrat -- try running ", + "\"'install.packages('devtools'); devtools::install_github('rstudio/packrat')\"", + "and restarting R to bootstrap packrat.") + } + + # Restore the project, unload the temporary packrat, and load the private packrat + if (needsRestore) + packrat::restore(prompt = FALSE, restart = TRUE) + + ## This code path only reached if we didn't restart earlier + unloadNamespace("packrat") + requireNamespace("packrat", lib.loc = libDir, quietly = TRUE) + return(packrat::on()) + + } + + ## Multiple packrat tarballs available locally -- try to choose one + ## TODO: read lock file and infer most appropriate from there; low priority because + ## after bootstrapping packrat a restore should do the right thing + if (length(packratSrcPath) > 1) { + warning("Multiple versions of packrat available in the source directory;", + "using packrat source:\n- ", shQuote(packratSrcPath)) + packratSrcPath <- packratSrcPath[[1]] + } + + + lib <- file.path("packrat", "lib", R.version$platform, getRversion()) + if (!file.exists(lib)) { + dir.create(lib, recursive = TRUE) + } + + message("> Installing packrat into project private library:") + message("- ", shQuote(lib)) + + surround <- function(x, with) { + if (!length(x)) return(character()) + paste0(with, x, with) + } + + + ## Invoke install.packages() in clean R session + peq <- function(x, y) paste(x, y, sep = " = ") + installArgs <- c( + peq("pkgs", surround(packratSrcPath, with = "'")), + peq("lib", surround(lib, with = "'")), + peq("repos", "NULL"), + peq("type", surround("source", with = "'")) + ) + + fmt <- "utils::install.packages(%s)" + installCmd <- sprintf(fmt, paste(installArgs, collapse = ", ")) + + ## Write script to file (avoid issues with command line quoting + ## on R 3.4.3) + installFile <- tempfile("packrat-bootstrap", fileext = ".R") + writeLines(installCmd, con = installFile) + on.exit(unlink(installFile), add = TRUE) + + fullCmd <- paste( + surround(file.path(R.home("bin"), "R"), with = "\""), + "--vanilla", + "--slave", + "-f", + surround(installFile, with = "\"") + ) + system(fullCmd) + + ## Tag the installed packrat so we know it's managed by packrat + ## TODO: should this be taking information from the lockfile? this is a bit awkward + ## because we're taking an un-annotated packrat source tarball and simply assuming it's now + ## an 'installed from source' version + + ## -- InstallAgent -- ## + installAgent <- "InstallAgent: packrat 0.5.0" + + ## -- InstallSource -- ## + installSource <- "InstallSource: source" + + packratDescPath <- file.path(lib, "packrat", "DESCRIPTION") + DESCRIPTION <- readLines(packratDescPath) + DESCRIPTION <- c(DESCRIPTION, installAgent, installSource) + cat(DESCRIPTION, file = packratDescPath, sep = "\n") + + # Otherwise, continue on as normal + message("> Attaching packrat") + library("packrat", character.only = TRUE, lib.loc = lib) + + message("> Restoring library") + if (needsRestore) + packrat::restore(prompt = FALSE, restart = FALSE) + + # If the environment allows us to restart, do so with a call to restore + restart <- getOption("restart") + if (!is.null(restart)) { + message("> Packrat bootstrap successfully completed. ", + "Restarting R and entering packrat mode...") + return(restart()) + } + + # Callers (source-erers) can define this hidden variable to make sure we don't enter packrat mode + # Primarily useful for testing + if (!exists(".__DONT_ENTER_PACKRAT_MODE__.") && interactive()) { + message("> Packrat bootstrap successfully completed. Entering packrat mode...") + packrat::on() + } + + Sys.unsetenv("RSTUDIO_PACKRAT_BOOTSTRAP") + + } + +}) diff --git a/packrat/packrat.lock b/packrat/packrat.lock new file mode 100644 index 00000000..11a43058 --- /dev/null +++ b/packrat/packrat.lock @@ -0,0 +1,354 @@ +PackratFormat: 1.4 +PackratVersion: 0.5.0 +RVersion: 3.5.2 +Repos: CRAN=https://cloud.r-project.org + +Package: BH +Source: CRAN +Version: 1.66.0-1 +Hash: 4cc8883584b955ed01f38f68bc03af6d + +Package: R6 +Source: CRAN +Version: 2.3.0 +Hash: 8eccabbf292b5aba632985cde6406fc3 + +Package: RColorBrewer +Source: CRAN +Version: 1.1-2 +Hash: c0d56cd15034f395874c870141870c25 + +Package: Rcpp +Source: CRAN +Version: 1.0.0 +Hash: c7273c0f0bc9f5e41f4c52a8cf571f0f + +Package: assertthat +Source: CRAN +Version: 0.2.0 +Hash: e8805df54c65ac96d50235c44a82615c + +Package: backports +Source: CRAN +Version: 1.1.2 +Hash: 5ae7b3466e529e4400951ca18c137e40 + +Package: base64enc +Source: CRAN +Version: 0.1-3 +Hash: c590d29e555926af053055e23ee79efb + +Package: cli +Source: CRAN +Version: 1.0.1 +Hash: a742a3229dbf7085c3a737af10e5065b +Requires: assertthat, crayon + +Package: colorspace +Source: CRAN +Version: 1.3-2 +Hash: 0bf8618b585fa98eb23414cd3ab95118 + +Package: covr +Source: CRAN +Version: 3.2.1 +Hash: b1dab7f44fae6114c222cee94d6acd63 +Requires: crayon, digest, httr, jsonlite, rex, withr + +Package: crayon +Source: CRAN +Version: 1.3.4 +Hash: ff2840dd9b0d563fc80377a5a45510cd + +Package: curl +Source: CRAN +Version: 3.2 +Hash: 82a7cf5bb702ef52329b6d23ea6132a7 + +Package: data.table +Source: CRAN +Version: 1.11.8 +Hash: 67c877937c790a0cadb71284febb6b34 + +Package: digest +Source: CRAN +Version: 0.6.18 +Hash: 65f62365ec69ddd17230d2ffe891a6ab + +Package: dplyr +Source: github +Version: 0.7.99.9000 +Hash: 2ad5ae0fa33abb1278da08b574c03c74 +Requires: BH, R6, Rcpp, assertthat, glue, magrittr, pkgconfig, plogr, + rlang, tibble, tidyselect +GithubRepo: dplyr +GithubUsername: tidyverse +GithubRef: master +GithubSha1: 45894214a543e63c01f66e8b1fb4cc77a5978f40 +RemoteHost: api.github.com +RemoteRepo: dplyr +RemoteUsername: tidyverse +RemoteRef: master +RemoteSha: 45894214a543e63c01f66e8b1fb4cc77a5978f40 + +Package: evaluate +Source: CRAN +Version: 0.12 +Hash: c32505adba4f6eca5aa20dd32300b019 + +Package: fansi +Source: CRAN +Version: 0.4.0 +Hash: f147621f72b561485bfffcae78c4f5d5 + +Package: ggplot2 +Source: CRAN +Version: 3.1.0 +Hash: ef541b05dda10b209d509b5bbaf46ea3 +Requires: digest, gtable, lazyeval, plyr, reshape2, rlang, scales, + tibble, viridisLite, withr + +Package: glue +Source: CRAN +Version: 1.3.0 +Hash: 1fbde6dec830370be696eee8ef31c9e4 + +Package: gtable +Source: CRAN +Version: 0.2.0 +Hash: cd78381a9d3fea966ac39bd0daaf5554 + +Package: highr +Source: CRAN +Version: 0.7 +Hash: 20757f5c393ed0ecf96c9e8e6d8d514c + +Package: hms +Source: CRAN +Version: 0.4.2 +Hash: b4096a4f6a6736138e9a825c2baaacf0 +Requires: pkgconfig, rlang + +Package: htmltools +Source: CRAN +Version: 0.3.6 +Hash: 9707abea0a9b7406e98fb1242e97e1f6 +Requires: Rcpp, digest + +Package: httr +Source: CRAN +Version: 1.3.1 +Hash: 2d32e01e53d532c812052e27a1021441 +Requires: R6, curl, jsonlite, mime, openssl + +Package: jsonlite +Source: CRAN +Version: 1.5 +Hash: 9c51936d8dd00b2f1d4fe9d10499694c + +Package: knitr +Source: CRAN +Version: 1.20 +Hash: 9c6b215d1d02b97586c8232e94533e6a +Requires: evaluate, highr, markdown, stringr, yaml + +Package: labeling +Source: CRAN +Version: 0.3 +Hash: ecf589b42cd284b03a4beb9665482d3e + +Package: lazyeval +Source: CRAN +Version: 0.2.1 +Hash: 88926ad9c43581fd0822a37c8ed09f05 + +Package: magrittr +Source: CRAN +Version: 1.5 +Hash: bdc4d48c3135e8f3b399536ddf160df4 + +Package: markdown +Source: CRAN +Version: 0.8 +Hash: 045d7c594d503b41f1c28946d076c8aa +Requires: mime + +Package: mime +Source: CRAN +Version: 0.6 +Hash: 2ed8f98b8284ad733f3907fc6e2f1334 + +Package: munsell +Source: CRAN +Version: 0.5.0 +Hash: 38d0efee9bb99bef143bde41c4ce715c +Requires: colorspace + +Package: openssl +Source: CRAN +Version: 1.0.2 +Hash: 12a42cbd5aecdb887782247856ccbafd + +Package: packrat +Source: CRAN +Version: 0.5.0 +Hash: 498643e765d1442ba7b1160a1df3abf9 + +Package: pillar +Source: CRAN +Version: 1.3.1 +Hash: 9ed4c2a5d3047bfba3e852ad5e806d91 +Requires: cli, crayon, fansi, rlang, utf8 + +Package: pkgconfig +Source: CRAN +Version: 2.0.2 +Hash: b0fd6ed908e150b77e5f00c6478bd58c + +Package: plogr +Source: CRAN +Version: 0.2.0 +Hash: 81a8008a5e7858552503935f1abe48aa + +Package: plyr +Source: CRAN +Version: 1.8.4 +Hash: ec185c885aab7ec91693d78c20cb5d1a +Requires: Rcpp + +Package: praise +Source: CRAN +Version: 1.0.0 +Hash: 77da8f1df873a4b91e5c4a68fe2fb1b6 + +Package: purrr +Source: CRAN +Version: 0.2.5 +Hash: 8b0c16db10c7e20b70cd37779a673a8b +Requires: magrittr, rlang, tibble + +Package: reshape2 +Source: CRAN +Version: 1.4.3 +Hash: c950c8ac85b81209635acb3ce21b4cce +Requires: Rcpp, plyr, stringr + +Package: rex +Source: CRAN +Version: 1.1.2 +Hash: 57541aaae58f1a284a398f5c62c95097 +Requires: lazyeval, magrittr + +Package: rlang +Source: CRAN +Version: 0.3.0.1 +Hash: 35fb7a51d5d756c56f793ed9c381fb84 + +Package: rmarkdown +Source: CRAN +Version: 1.10 +Hash: 02f1aac33000c63986c6b5585e36e7ae +Requires: base64enc, evaluate, htmltools, jsonlite, knitr, mime, + rprojroot, stringr, tinytex, yaml + +Package: rprojroot +Source: CRAN +Version: 1.3-2 +Hash: a25c3f70c166fb3fbabc410eb32b6366 +Requires: backports + +Package: rstudioapi +Source: CRAN +Version: 0.8 +Hash: 9ba7fe76dcaf96966c449527ca04bb78 + +Package: rvest +Source: CRAN +Version: 0.3.2 +Hash: c69f7526520bad66fd2111ebe8b1364b +Requires: httr, magrittr, selectr, xml2 + +Package: scales +Source: CRAN +Version: 1.0.0 +Hash: 7d9b717abcec656ae7c5c982d72b75e5 +Requires: R6, RColorBrewer, Rcpp, labeling, munsell, viridisLite + +Package: selectr +Source: CRAN +Version: 0.4-1 +Hash: b12802c11e35dec9d16a74d30ed0f3ed +Requires: R6, stringr + +Package: stringi +Source: CRAN +Version: 1.2.4 +Hash: 03ab60ef7fa4627b38ad67c95ce6b04c + +Package: stringr +Source: CRAN +Version: 1.3.1 +Hash: 9f417a1d899ed1f080942ab36998e8b5 +Requires: glue, magrittr, stringi + +Package: testthat +Source: CRAN +Version: 2.0.1 +Hash: 777eb6e94f5a62bf6320fecf0175bbbb +Requires: R6, cli, crayon, digest, magrittr, praise, rlang, withr + +Package: tibble +Source: CRAN +Version: 1.4.2 +Hash: 83895360ce4f8d2ce92eee00526b5b0b +Requires: cli, crayon, pillar, rlang + +Package: tidyr +Source: CRAN +Version: 0.8.2 +Hash: 9ff92b9b3c11dfcd94d179b75b85c668 +Requires: Rcpp, dplyr, glue, magrittr, purrr, rlang, stringi, tibble, + tidyselect + +Package: tidyselect +Source: CRAN +Version: 0.2.5 +Hash: fad1cf10c5c4996fca6ca68e0716d2e6 +Requires: Rcpp, glue, purrr, rlang + +Package: tinytex +Source: CRAN +Version: 0.9 +Hash: a4ffe98c58eace5a95644d8fd6ca5a50 +Requires: xfun + +Package: utf8 +Source: CRAN +Version: 1.1.4 +Hash: f3f97ce59092abc8ed3fd098a59e236c + +Package: viridisLite +Source: CRAN +Version: 0.3.0 +Hash: 78bb072c4f9e729a283d4c40ec93f9c6 + +Package: withr +Source: CRAN +Version: 2.1.2 +Hash: d534108bcd5f34ec73e9eb523751ba20 + +Package: xfun +Source: CRAN +Version: 0.4 +Hash: 76004125b45195c0330ec71904849995 + +Package: xml2 +Source: CRAN +Version: 1.2.0 +Hash: 3f00e5347a6d7ccad2237fe1bc1df6d0 +Requires: Rcpp + +Package: yaml +Source: CRAN +Version: 2.2.0 +Hash: a5ad5616d83d89f8d84cbf3cf4034e13 diff --git a/packrat/packrat.opts b/packrat/packrat.opts new file mode 100644 index 00000000..d9156597 --- /dev/null +++ b/packrat/packrat.opts @@ -0,0 +1,19 @@ +auto.snapshot: TRUE +use.cache: FALSE +print.banner.on.startup: auto +vcs.ignore.lib: TRUE +vcs.ignore.src: TRUE +external.packages: +local.repos: +load.external.packages.on.startup: TRUE +ignored.packages: +ignored.directories: + data + inst +quiet.package.installation: TRUE +snapshot.recommended.packages: FALSE +snapshot.fields: + Imports + Depends + LinkingTo +symlink.system.packages: TRUE diff --git a/pkgdown/extra.js b/pkgdown/extra.js index 4997ba36..b27a58a6 100644 --- a/pkgdown/extra.js +++ b/pkgdown/extra.js @@ -2,7 +2,8 @@ $('head').append(''); /* edit footer */ -var footer_txt = $('footer .copyright p').html(); -footer_txt = footer_txt.replace("Developed by", "Developed at the University of Groningen. Authors:"); -$('footer').html('

' + footer_txt + '

'); +$('footer').html('

' + + $('footer .copyright p').html().replace("Developed by", + "AMR (for R). Developed at the University of Groningen.
Authors:") + + '

'); //$('footer').prepend("
");