diff --git a/.Rprofile b/.Rprofile deleted file mode 100644 index 81b960f5..00000000 --- a/.Rprofile +++ /dev/null @@ -1 +0,0 @@ -source("renv/activate.R") diff --git a/.github/workflows/deploy_bookdown_v2.yml b/.github/workflows/deploy_bookdown_v2.yml new file mode 100644 index 00000000..83575ebc --- /dev/null +++ b/.github/workflows/deploy_bookdown_v2.yml @@ -0,0 +1,99 @@ +on: + push: + branches: + - v2 + +env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + +name: renderbook + +jobs: + bookdown: + + name: Render-Book + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - uses: actions/cache@v1 + with: + path: ~/.local/share/renv + key: ${{ runner.os }}-renv-${{ hashFiles('**/renv.lock') }} + restore-keys: | + ${{ runner.os }}-renv- + + - uses: r-lib/actions/setup-r@v2 + with: + use-public-rspm: true + crayon.enabled: 'FALSE' + Ncpus: 4 + + - uses: r-lib/actions/setup-pandoc@v2 + + # - uses: r-lib/actions/setup-renv@v2 + + - name: Install tinytex + uses: r-lib/actions/setup-tinytex@v2 + + - name: Install sysreq + run: sudo apt update && sudo apt install -y gdal-bin git-core libcairo2-dev libgdal-dev libgeos-dev libgeos++-dev libgit2-dev libpng-dev libssh2-1-dev libssl-dev libudunits2-dev libxml2-dev make pandoc pandoc-citeproc zlib1g-dev libmagick++-dev libssl-dev libsasl2-dev + + - name: Pulling hexmake + run: docker pull colinfay/hexmake + + - uses: nanasess/setup-chromedriver@master + + - name: Install rmarkdown, bookdown and sysfonts + run: Rscript -e 'install.packages(c("sysfonts", "rmarkdown","bookdown"), Ncpus = 4)' + + # - name: Spell check + # run: Rscript before-build-spellcheck.R + # env: + # EMAIL: ${{ secrets.EMAIL }} + # GH_TOKEN: ${{ secrets.TOKEN }} + + - name: Before build + run: Rscript prep.R + + - name: Render Book + run: Rscript -e 'bookdown::render_book("index.Rmd", output_dir = "_site/v2")' + + - name: Build redirect + run: Rscript redirect.R + + - uses: actions/upload-artifact@v1 + with: + name: _site + path: _site/ + +# Need to first create an empty gh-pages branch +# see https://pkgdown.r-lib.org/reference/deploy_site_github.html +# and also add secrets for a GITHUB_PAT and EMAIL to the repository +# gh-action from Cecilapp/GitHub-Pages-deploy + checkout-and-deploy: + runs-on: ubuntu-latest + needs: bookdown + steps: + - name: Checkout + uses: actions/checkout@master + - name: Download artifact + uses: actions/download-artifact@v1.0.0 + with: + # Artifact name + name: _site # optional + # Destination path + path: _site # optional + - name: Deploy to GitHub Pages + uses: Cecilapp/GitHub-Pages-deploy@v3 + env: + GITHUB_TOKEN: ${{ secrets.TOKEN }} + with: + email: ${{ secrets.EMAIL }} + build_dir: _site # optional + cname: engineering-shiny.org # optional + jekyll: no # optional + + diff --git a/.gitignore b/.gitignore index 98c1f4ce..2324a8f7 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ _book/* golex/ todoedit _site/ +engineering-production-grade-shiny-apps_files/ +engineering-production-grade-shiny-apps_cache/ diff --git a/11-step-by-step-secure.Rmd b/11-step-by-step-secure.Rmd index ab821e5c..79f073aa 100644 --- a/11-step-by-step-secure.Rmd +++ b/11-step-by-step-secure.Rmd @@ -10,7 +10,7 @@ try({ # Build Yourself a Safety Net {#build-yourself-safety-net} > Don't fuck over Future You -> +> > _JD_ () Strengthening your app means two things: testing and locking the application environment. @@ -52,7 +52,7 @@ Here is an example of testing that the `meaning_of_life` will always be `42`. # Creating a testing context, with one expectation test_that("The meaning of life is 42", { expect_equal( - meaning_of_life(), + meaning_of_life(), 42 ) }) @@ -84,7 +84,7 @@ computation_module_server <- function(input, output, session){ observeEvent( input$selector , { r$value <- input$selector * 10 }) - + } # We can test it that way @@ -136,7 +136,7 @@ await page.waitForSelector('.row > .col > \ // Now it's ready, we can click on it await page.click('.row > .col > .rounded > \ details:nth-child(3) > summary') - + // Now our test is over, we can close the connection await browser.close() })() @@ -159,13 +159,13 @@ Here is an example: ```{r 11-step-by-step-secure-3, eval = FALSE} # Creating a new test instance test <- crrry::CrrryOnPage$new( - # Using the `find_chrome()` function to guess where the + # Using the `find_chrome()` function to guess where the # Chrome bin is on our machine chrome_bin = pagedown::find_chrome(), # Launching Chrome on a random available port on our machine - # Note that you will need httpuv >= 1.5.2 if you want to use + # Note that you will need httpuv >= 1.5.2 if you want to use # this function - chrome_port = httpuv::randomPort(), + chrome_port = httpuv::randomPort(), # Specifying the page we want to connect to url = "https://connect.thinkr.fr/hexmake/", # Do everything on the terminal, with no window open @@ -175,9 +175,9 @@ test <- crrry::CrrryOnPage$new( Running \ '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' - --no-first-run --headless + --no-first-run --headless '--user-data-dir=/Users/colin/Library/Application Support/ - r-crrri/chrome-data-dir-dhutmfux' + r-crrri/chrome-data-dir-dhutmfux' '--remote-debugging-port=40698' ```{r 11-step-by-step-secure-4, eval = FALSE} @@ -202,7 +202,7 @@ for (i in letters[1:5]){ # We'll be setting a series of letters, one by one # for the package name input test$shiny_set_input( - "main_ui_1-left_ui_1-pkg_name_ui_1-package", + "main_ui_1-left_ui_1-pkg_name_ui_1-package", i ) } @@ -258,13 +258,13 @@ With `{crrry}`, this `gremlins` test comes for free: ```{r 11-step-by-step-secure-8, eval = FALSE} # Creating a new test instance test <- crrry::CrrryOnPage$new( - # Using the `find_chrome()` function to guess where the + # Using the `find_chrome()` function to guess where the # Chrome bin is on our machine chrome_bin = pagedown::find_chrome(), # Launching Chrome on a random available port on our machine - # Note that you will need httpuv >= 1.5.2 if you want to use + # Note that you will need httpuv >= 1.5.2 if you want to use # this function - chrome_port = httpuv::randomPort(), + chrome_port = httpuv::randomPort(), # Specifying the page we want to connect to url = "https://connect.thinkr.fr/hexmake/", # Do everything on the terminal, with no window open @@ -292,7 +292,7 @@ If you are building your application with `{golem}` [@R-golem], you will need to ```{r 11-step-by-step-secure-9, eval = FALSE} # Create an app.R file at the root of the package golem::add_rstudioconnect_file() -# Launch a test, and record a series of +# Launch a test, and record a series of # snapshots of your application shinytest::recordTest() ``` @@ -333,11 +333,11 @@ library(shinyloadtest) ```{r 11-step-by-step-secure-14, eval = FALSE} # Starting your app in another process p <- processx::process$new( - "Rscript", + "Rscript", c( "-e", "options('shiny.port'= 2811);hexmake::run_app()" ) ) # We wait for the app to be ready -Sys.sleep(5) +Sys.sleep(5) # Check that the process is alive p$is_alive() # Open the app in our browser just to be sure @@ -354,9 +354,9 @@ withr::with_dir( "shinylogs", { # Launch the recording of an app session, using port 1234 shinyloadtest::record_session( - "http://localhost:2811", + "http://localhost:2811", port = 1234 - ) + ) } ) ``` @@ -490,20 +490,20 @@ Sys.sleep(5) ``` ```{r 11-step-by-step-secure-27, eval = FALSE} -# We are launching the docker container -# using R system() command. Here, we are -# running the container image called -# colinfay/hexmake. We are naming the -# container hexmake using the --name flag, -# --rm means the container will be removed -# when stopped, and finally the -p flag defines +# We are launching the docker container +# using R system() command. Here, we are +# running the container image called +# colinfay/hexmake. We are naming the +# container hexmake using the --name flag, +# --rm means the container will be removed +# when stopped, and finally the -p flag defines # how to bind the ports of the container # with the ports of the host (left is the host, -# right is the container): in other word, here, +# right is the container): in other word, here, # we bind port 80 of our container to the port 2811 # of our machine. system( - "docker run --name hexmake --rm -p 2811:80 colinfay/hexmake", + "docker run --name hexmake --rm -p 2811:80 colinfay/hexmake", wait = FALSE ) ``` @@ -511,7 +511,7 @@ system( Let's say now we want the stats for the hexmake container: ```{r 11-step-by-step-secure-28, eval = FALSE, cache=TRUE} -# Waiting for the container to be ready +# Waiting for the container to be ready Sys.sleep(30) # Showing the docker stats for hexmake tibble::as_tibble( @@ -520,11 +520,11 @@ tibble::as_tibble( ``` ```{r echo = FALSE} -structure(list(Container = "hexmake", Name = "hexmake", ID = "34cc1544556a", - CPUPerc = 0.37, MemUsage = "108.5MiB", MemLimit = "5.807GiB", - MemPerc = 1.82, NetI = "726B", NetO = "0B", BlockI = "0B", - BlockO = "0B", PIDs = 4L, record_time = "2021-07-16 12:19:52", - extra = ""), row.names = c(NA, -1L), class = c("tbl_df", +structure(list(Container = "hexmake", Name = "hexmake", ID = "34cc1544556a", + CPUPerc = 0.37, MemUsage = "108.5MiB", MemLimit = "5.807GiB", + MemPerc = 1.82, NetI = "726B", NetO = "0B", BlockI = "0B", + BlockO = "0B", PIDs = 4L, record_time = "2021-07-16 12:19:52", + extra = ""), row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame")) ``` @@ -536,7 +536,7 @@ To do that, we can replay our `shinycannon` call, and at the same time use the ` ```{bash 11-step-by-step-secure-29, eval = FALSE} # Replaying the recording -shinycannon shinylogs/recording.log \ +shinycannon shinylogs/recording.log \ # Specificying the host url and the number of "visitors" http://localhost:2811 --workers 10 \ # Define where the recording will be outputed @@ -547,16 +547,16 @@ Let's launch at the same time a `dockerstats_recurse()`. For example, here, we will print, on each loop, the `MemUsage` of the container, then save the data inside a `dockerstats.csv` file. ```{r 11-step-by-step-secure-30, eval = FALSE} -# Calling recursive the dockerstats function. +# Calling recursive the dockerstats function. # The callback function takes a function, and define -# what to do with the data.frame each time the +# what to do with the data.frame each time the # dockerstats results are computed. dockerstats_recurse( "hexmake", - # append_csv is a {dockerstats} function that will + # append_csv is a {dockerstats} function that will # apped the output to a given csv callback = append_csv( - file = "shinylogs/dockerstats.csv", + file = "shinylogs/dockerstats.csv", print = TRUE ) ) @@ -574,7 +574,7 @@ As you can see, as the number of connections grow, the memory usage grows. And we now have a csv with the evolution of the `docker stats` records over time! ```{r 11-step-by-step-secure-32 } -# read_appended_csv() allows to read a csv that has been +# read_appended_csv() allows to read a csv that has been # constructed with the append_csv() function docker_stats <- read_appended_csv( "shinylogs/dockerstats.csv" @@ -596,10 +596,10 @@ Let's record the computation of the `hexmake` container containing the same app First, launch the container: ```{r 11-step-by-step-secure-35 } -# Launching the container a second time, +# Launching the container a second time, # but name it xmk2 and serve it on port 2708 system( - "docker run -p 2708:80 --rm --name xmk2 -d colinfay/hexmake", + "docker run -p 2708:80 --rm --name xmk2 -d colinfay/hexmake", wait = FALSE ) Sys.sleep(60) # Let the container launch @@ -608,7 +608,7 @@ Sys.sleep(60) # Let the container launch Then, a `{crrry}` job: ```{r 11-step-by-step-secure-36, eval = FALSE, echo = TRUE} -# See previous version of this code for a commented explanation +# See previous version of this code for a commented explanation test <- crrry::CrrryOnPage$new( chrome_bin = pagedown::find_chrome(), chrome_port = httpuv::randomPort(), @@ -617,10 +617,10 @@ test <- crrry::CrrryOnPage$new( ) ``` - Running '/Applications/Google - Chrome.app/Contents/MacOS/Google Chrome' + Running '/Applications/Google + Chrome.app/Contents/MacOS/Google Chrome' --no-first-run --headless \ - '--user-data-dir=/Users/colin/Library/Application + '--user-data-dir=/Users/colin/Library/Application Support/r-crrri/chrome-data-dir-thyhpptv' \ '--remote-debugging-port=48938' @@ -632,7 +632,7 @@ test$wait_for_shiny_ready() ✓ Shiny is still running ```{r 11-step-by-step-secure-38, eval = FALSE, include = FALSE, results = 'hide'} -# See previous version of this code for a commented explanation +# See previous version of this code for a commented explanation test <- crrry::CrrryOnPage$new( chrome_bin = pagedown::find_chrome(), chrome_port = httpuv::randomPort(), @@ -643,20 +643,20 @@ test$wait_for_shiny_ready() ``` ```{r 11-step-by-step-secure-39, eval = FALSE, include=FALSE} -# We are creating a first data.frame that records the launch +# We are creating a first data.frame that records the launch # of the container. results <- dockerstats::dockerstats("xmk2", extra = "launch") for (i in letters[1:10]){ # We will be setting a letter for the package name input test$shiny_set_input( - "main_ui_1-left_ui_1-pkg_name_ui_1-package", + "main_ui_1-left_ui_1-pkg_name_ui_1-package", i ) # Once the input is set, we call dockerstats() for this container # and bind the results to the previously created data.frame results <- rbind( - results, + results, dockerstats::dockerstats("xmk2", extra = i) ) } @@ -669,21 +669,21 @@ test$stop() ``` ```{r 11-step-by-step-secure-40, eval = FALSE} -# We are creating a first data.frame that records the launch +# We are creating a first data.frame that records the launch # of the container. results <- dockerstats::dockerstats("xmk2", extra = "launch") for (i in letters[1:10]){ # We will be setting a letter for the package name input test$shiny_set_input( - "main_ui_1-left_ui_1-pkg_name_ui_1-package", + "main_ui_1-left_ui_1-pkg_name_ui_1-package", i ) - # Once the input is set, we call dockerstats() - # for this container and bind the results to + # Once the input is set, we call dockerstats() + # for this container and bind the results to # the previously created data.frame results <- rbind( - results, + results, dockerstats::dockerstats("xmk2", extra = i) ) } @@ -724,7 +724,7 @@ for (i in letters[1:10]){ try({ # Stopping the docker container system("docker kill xmk2") - + # Stopping the tests test$stop() }) @@ -741,35 +741,35 @@ results <- readRDS("dataset/results.RDS") ```{r 11-step-by-step-secure-43, fig.cap="(ref:dockerstatsusage)", eval = TRUE, cache=TRUE} library(dplyr, warn.conflicts = FALSE) -# We are converting the MemUsage and record_time columns +# We are converting the MemUsage and record_time columns # to a format that can be used in {ggplot2} -results <- results %>% +results <- results %>% mutate( - MemUsage = to_mib(MemUsage), + MemUsage = to_mib(MemUsage), record_time = as.POSIXct(record_time) ) library(ggplot2) -# Using the record time as an x axis, -# then adding the MemUsage as a line (to watch the -# evolution over time), then we add the 'extra' column, -# that contains the letters, as vertical lines + as +# Using the record time as an x axis, +# then adding the MemUsage as a line (to watch the +# evolution over time), then we add the 'extra' column, +# that contains the letters, as vertical lines + as # label ggplot( - data = results, + data = results, aes(x = record_time) -) + +) + geom_line( aes(y = MemUsage) - ) + + ) + geom_vline( aes(xintercept = record_time) - ) + + ) + geom_label( aes( - y = max(MemUsage), + y = max(MemUsage), label = extra ) - ) + + ) + labs( title = "MemUsage of 10 inputs for package name" ) @@ -812,7 +812,7 @@ Traceback: 1: rcpp_sf_to_geojson(sf, digits, factors_as_string) 2: sf_geojson.sf(data) 3: geojsonsf::sf_geojson(data) -4: addGlifyPolygons(., data = pol_V1, color = les_couleurs, +4: addGlifyPolygons(., data = pol_V1, color = les_couleurs, popup = "val", opacity = 1) 5: function_list[[i]](value) 6: freduce(value, `_function_list`) @@ -824,11 +824,11 @@ while (!.globals$stopped) { ..stacktracefloor..(serviceApp()) Sys.sleep(0.001) }}) 106: ..stacktraceoff..(captureStackTraces({ -while (!.globals$stopped) { +while (!.globals$stopped) { ..stacktracefloor..(serviceApp()) Sys.sleep(0.001) }})) -107: runApp(Sys.getenv("SHINY_APP"), -port = port, +107: runApp(Sys.getenv("SHINY_APP"), +port = port, launch.browser = FALSE) An irrecoverable exception occurred. R is aborting now ... ``` @@ -853,7 +853,7 @@ That means that you can have `{geojsonsf}` version `1.2.1` in one of your projec #### B. Using `{renv}` {.unnumbered} > Underlying the philosophy of renv is that any of your existing workflows should just work as they did before. -> +> > _Introduction to renv_ () The first thing to do with `{renv}` is initiate it with the `init()` function. @@ -943,6 +943,10 @@ If you decide to update a package in your project, and realize that this package There are more things you can do with `{renv}`. If you want to know more, we invite you to refer to the [official documentation](https://rstudio.github.io/renv). +```{r 11-step-by-step-secure-49-bis, include = FALSE} +unlink("script.R") +``` + ### Docker #### A. R, Docker, `{shiny}` {.unnumbered} @@ -969,7 +973,7 @@ Same goes for your version of R. Good news! If you are building your app with `{golem}`, the creation of the `Dockerfile` is just one function away! -If you have a look at the `03_deploy.R` file in the `dev` folder, you will find a series of functions that can create the `Dockerfile` for your project: either as a generic Docker image, or for `{shiny}`Proxy or Heroku. +If you have a look at the `03_deploy.R` file in the `dev` folder, you will find a series of functions that can create the `Dockerfile` for your project: either as a generic Docker image, or for Shinyproxy or Heroku. For example, to create a `Dockerfile` for a `{golem}` project, you can run the following, from the root of your package: @@ -982,11 +986,11 @@ Let's take some time to understand this file, and detail how we could be buildin 1. `FROM` ```{r 11-step-by-step-secure-53, echo = FALSE, comment=""} -# readLines("data-raw/Dockerfile")[1] %>% +# readLines("data-raw/Dockerfile")[1] %>% # glue::as_glue() cat("FROM", paste0( - "rocker/r-ver:", - R.Version()$major,".", + "rocker/r-ver:", + R.Version()$major,".", R.Version()$minor )) ``` @@ -1029,7 +1033,7 @@ This Docker entry takes a folder or a file, and copies it inside the image. With `{golem}`, we are adding the current project, containing the app, to a folder called `/build_zone`. ```{r 11-step-by-step-secure-56, echo = FALSE, comment=""} -readLines("data-raw/Dockerfile")[13] %>% +readLines("data-raw/Dockerfile")[13] %>% glue::as_glue() ``` @@ -1038,7 +1042,7 @@ readLines("data-raw/Dockerfile")[13] %>% This command defines which port of the container will be available from the outside of the container. ```{r 11-step-by-step-secure-57, echo = FALSE, comment=""} -readLines("data-raw/Dockerfile")[16] %>% +readLines("data-raw/Dockerfile")[16] %>% glue::as_glue() ``` diff --git a/DESCRIPTION b/DESCRIPTION index 2061a764..4072d187 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -44,6 +44,7 @@ Imports: chromote (>= 0.0.0.9001), cli (>= 2.0.2), cloc (>= 0.3.0), + hexmake (>= 0.1.4), config (>= 0.3), covr (>= 3.5.0), covrpage (>= 0.0.70), @@ -89,7 +90,7 @@ Imports: magrittr (>= 1.5), matlab (>= 1.0.2), memoise (>= 1.1.0.9000), - minifyr (>= 0.0.0.9000), + minifyr (>= 0.0.3), namer (>= 0.1.5), nessy (>= 0.0.0.9001), packageMetrics2 (>= 1.0.1.9000), @@ -128,7 +129,7 @@ Imports: shinyloadtest (>= 1.0.1), shinyMobile (>= 0.1.0), shinytest (>= 1.3.1), - skeleton (>= 0.0.0.9000), + skeleton (>= 0.0.0.9003), testthat (>= 3.0.0), tibble (>= 3.0.1), tictoc (>= 1.0), diff --git a/_output.yml b/_output.yml old mode 100644 new mode 100755 index daec3a34..7156abd4 --- a/_output.yml +++ b/_output.yml @@ -1,5 +1,5 @@ -bookdown::bs4_book: - css: [css/style.css, css/style_gitbook.css] +bookdown::gitbook: + css: [css/style.css, css/thinkr.css, css/style_gitbook.css] toc_depth: 3 config: toc: @@ -10,18 +10,13 @@ bookdown::bs4_book:
  • A book by the ThinkR team
  • edit: link: https://github.com/ThinkR-open/building-shiny-apps-workflow/edit/master/%s - text: "Edit" + text: "Edit" sharing: github: true facebook: false includes: - in_header: ga.html + in_header: ga.html after_body: gitbook-footer-thinkr.html - theme: - primary: "#DE633C" - fg: "#2b2121" - bg: "#ffffff" - repo: https://github.com/ThinkR-open/engineering-shiny-book bookdown::pdf_book: includes: in_header: latex/preamble.tex diff --git a/building-big-shiny-apps.Rproj b/building-big-shiny-apps.Rproj deleted file mode 100644 index d93dbc00..00000000 --- a/building-big-shiny-apps.Rproj +++ /dev/null @@ -1,17 +0,0 @@ -Version: 1.0 - -RestoreWorkspace: Default -SaveWorkspace: Default -AlwaysSaveHistory: Default - -EnableCodeIndexing: Yes -UseSpacesForTab: Yes -NumSpacesForTab: 2 -Encoding: UTF-8 - -RnwWeave: Sweave -LaTeX: pdfLaTeX - -BuildType: Website - -MarkdownWrap: Sentence diff --git a/golembuild.R b/golembuild.R old mode 100644 new mode 100755 index 6a7db7d0..7ee901da --- a/golembuild.R +++ b/golembuild.R @@ -1,9 +1,12 @@ +options(usethis.allow_nested_project = TRUE) library(magrittr) unlink("golex", TRUE, TRUE) golem::create_golem("golex", open = FALSE) -here::set_here("golex") -golem::add_module(name = "my_first_module", here::here("golex"), open = FALSE) +golem::add_module(name = "my_first_module", here::here("golex"), open = FALSE) golem::add_js_handler("first_handler", here::here("golex"), open = FALSE) golem::add_js_file("script", here::here("golex"), open = FALSE) golem::add_js_handler("script", here::here("golex"), open = FALSE) golem::add_css_file("custom", here::here("golex"), open = FALSE) + + + diff --git a/index.Rmd b/index.Rmd index 3478c8ba..c007fc3e 100644 --- a/index.Rmd +++ b/index.Rmd @@ -34,27 +34,11 @@ options( formatR.indent = 2, digits = 4, conflicts.policy = FALSE, - dplyr.summarise.inform = FALSE + dplyr.summarise.inform = FALSE, + usethis.allow_nested_project = TRUE, + tibble.width = 55, + width = 55 ) - -options(tibble.width = 55) -options(width = 55) -# library(knitr) -# hook_output = knit_hooks$get('output') #this is the output for code -# -# knit_hooks$set(output = function(x, options) { -# # use if the output is PDF and you set an option linewidth to e.g. 70 -# # in the chunk options -# n <- 72 -# if (knitr::is_latex_output()) { -# if (nchar(x) > 72){ -# x <- gsub("\n", "", x) -# x <- gsub("(.{72})", "\\1\n", x) -# } -# } -# hook_output(x, options) -# }) - ``` # Introduction {-} diff --git a/prep.R b/prep.R index b524bdb6..ae920f4a 100644 --- a/prep.R +++ b/prep.R @@ -1,9 +1,19 @@ -# To do locally on Colin's computer, thanks -options(repos = c(REPO_NAME = "https://packagemanager.rstudio.com/all/latest")) -renv::restore() -# remotes::install_local(Ncpus = 4, upgrade = "never", force = TRUE) -if (!file.exists("packages.bib")){ - knitr::write_bib(c( - desc::desc_get_deps()$package - ), 'packages.bib') -} +options(repos = c( + "https://packagemanager.posit.co/cran/__linux__/jammy/latest", + "https://cloud.r-project.org" +)) +install.packages("remotes") +remotes::install_cran("pak") +remotes::install_version("shinyloadtest", "1.1.0") +remotes::install_local( + Ncpus = 4, + upgrade = "always", + force = TRUE +) + +unlink("packages.bib", TRUE) +knitr::write_bib(c( + desc::desc_get_deps()$package +), 'packages.bib') + +minifyr::minifyr_npm_install(force = TRUE) diff --git a/renv.lock b/renv.lock old mode 100644 new mode 100755 index 20c169f9..8f208726 --- a/renv.lock +++ b/renv.lock @@ -1,6 +1,6 @@ { "R": { - "Version": "4.2.3", + "Version": "4.3.3", "Repositories": [ { "Name": "REPO_NAME", @@ -9,55 +9,6 @@ ] }, "Packages": { - "AsioHeaders": { - "Package": "AsioHeaders", - "Version": "1.22.1-2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "85bf3bd8fa58da21a22d84fd4f4ef0a8" - }, - "BH": { - "Package": "BH", - "Version": "1.81.0-1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "68122010f01c4dcfbe58ce7112f2433d" - }, - "DBI": { - "Package": "DBI", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b2866e62bab9378c3cc9476a1954226b" - }, - "DT": { - "Package": "DT", - "Version": "0.27", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3444e6ed78763f9f13aaa39f2481eb34" - }, - "KernSmooth": { - "Package": "KernSmooth", - "Version": "2.23-20", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "8dcfa99b14c296bc9f1fd64d52fd3ce7" - }, - "MASS": { - "Package": "MASS", - "Version": "7.3-58.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "e02d1a0f6122fd3e634b25b433704344" - }, - "Matrix": { - "Package": "Matrix", - "Version": "1.5-3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "4006dffe49958d2dd591c17e61e60591" - }, "R.cache": { "Package": "R.cache", "Version": "0.16.0", @@ -74,17 +25,17 @@ }, "R.oo": { "Package": "R.oo", - "Version": "1.25.0", + "Version": "1.26.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "a0900a114f4f0194cf4aa8cd4a700681" + "Hash": "4fed809e53ddb5407b3da3d0f572e591" }, "R.utils": { "Package": "R.utils", - "Version": "2.12.2", + "Version": "2.12.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "325f01db13da12c04d8f6e7be36ff514" + "Hash": "3dc2829b790254bfba21e60965787651" }, "R6": { "Package": "R6", @@ -93,345 +44,73 @@ "Repository": "CRAN", "Hash": "470851b6d5d0ac559e9d01bb352b4021" }, - "RColorBrewer": { - "Package": "RColorBrewer", - "Version": "1.1-3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "45f0398006e83a5b10b72a90663d8d8c" - }, - "RSQLite": { - "Package": "RSQLite", - "Version": "2.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "207c90cd5438a1f596da2cd54c606fee" - }, - "Rcpp": { - "Package": "Rcpp", - "Version": "1.0.10", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e749cae40fa9ef469b6050959517453c" - }, - "RcppSimdJson": { - "Package": "RcppSimdJson", - "Version": "0.1.9", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "f4973b1ae398066b0db9274b7635709c" - }, - "askpass": { - "Package": "askpass", - "Version": "1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e8a22846fff485f0be3770c2da758713" - }, - "assertthat": { - "Package": "assertthat", - "Version": "0.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "50c838a310445e954bc13f26f26a6ecf" - }, - "attachment": { - "Package": "attachment", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "f16bc1776a6dbe3716d0579cd4d47be2" - }, - "attempt": { - "Package": "attempt", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d7421bb5dfeb2676b9e4a5a60c2fcfd2" - }, - "backports": { - "Package": "backports", - "Version": "1.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "c39fbec8a30d23e721980b8afb31984c" - }, - "bank": { - "Package": "bank", - "Version": "0.0.0.9002", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "bank", - "RemoteUsername": "thinkr-open", - "RemoteRef": "HEAD", - "RemoteSha": "c8ba84aaa0b6cc6f009344dbb4c99f0985ebb444", - "Hash": "167eba686033f727cbabf9c2715c60d4" - }, "base64enc": { "Package": "base64enc", "Version": "0.1-3", - "Source": "Repository", - "Repository": "RSPM", + "Source": "CRAN", + "Repository": "CRAN", + "RemoteType": "standard", + "RemotePkgRef": "base64enc", + "RemoteRef": "base64enc", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "0.1-3", "Hash": "543776ae6848fde2f48ff3816d0628bc" }, - "beeswarm": { - "Package": "beeswarm", - "Version": "0.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "0f4e9d8caa6feaa7e409ae6c30f2ca66" - }, - "bench": { - "Package": "bench", - "Version": "1.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "96fdc9419a103087fd765e896299e67f" - }, - "bit": { - "Package": "bit", - "Version": "4.0.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d242abec29412ce988848d0294b208fd" - }, - "bit64": { - "Package": "bit64", - "Version": "4.0.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "9fe98599ca456d6552421db0d6772d8f" - }, - "bitops": { - "Package": "bitops", - "Version": "1.0-7", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" - }, - "blob": { - "Package": "blob", - "Version": "1.2.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "40415719b5a479b87949f3aa0aee737c" - }, - "bookdown": { - "Package": "bookdown", - "Version": "0.33", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "948ba48e07aa772d3e5564ce8c0a7896" - }, "brew": { "Package": "brew", - "Version": "1.0-8", + "Version": "1.0-10", "Source": "Repository", "Repository": "CRAN", - "Hash": "d69a786e85775b126bddbee185ae6084" - }, - "brio": { - "Package": "brio", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "976cf154dfb043c012d87cddd8bca363" - }, - "broom": { - "Package": "broom", - "Version": "1.0.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "f62b2504021369a2449c54bbda362d30" - }, - "bs4Dash": { - "Package": "bs4Dash", - "Version": "2.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5bdfebde67149093342161c6e748ca0d" + "Hash": "8f4a384e19dccd8c65356dc096847b76" }, "bslib": { "Package": "bslib", - "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a7fbf03946ad741129dc81098722fca1" - }, - "bubble": { - "Package": "bubble", - "Version": "0.0.0.9003", - "Source": "GitHub", - "Remotes": "lbartnik/subprocess", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "bubble", - "RemoteUsername": "colinfay", - "RemoteRef": "HEAD", - "RemoteSha": "a348bd62bfa17c14906fc6f24df5fc87deaad376", - "Hash": "93c64ac6c631552153e78945447d6b8e" - }, - "caTools": { - "Package": "caTools", - "Version": "1.18.2", + "Version": "0.6.1", "Source": "Repository", - "Repository": "RSPM", - "Hash": "34d90fa5845004236b9eacafc51d07b2" + "Repository": "CRAN", + "Hash": "c0d8599494bc7fb408cd206bbdd9cab0" }, "cachem": { "Package": "cachem", - "Version": "1.0.7", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "cda74447c42f529de601fe4d4050daef" - }, - "callr": { - "Package": "callr", - "Version": "3.7.3", + "Version": "1.0.8", "Source": "CRAN", "Repository": "CRAN", "RemoteType": "standard", - "RemotePkgRef": "callr", - "RemoteRef": "callr", + "RemotePkgRef": "cachem", + "RemoteRef": "cachem", "RemoteRepos": "https://cran.rstudio.com", "RemotePkgPlatform": "aarch64-apple-darwin20", - "RemoteSha": "3.7.3", - "Hash": "9b2191ede20fa29828139b9900922e51" - }, - "cellranger": { - "Package": "cellranger", - "Version": "1.1.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "f61dbaec772ccd2e17705c1e872e9e7c" + "RemoteSha": "1.0.8", + "Hash": "c35768291560ce302c0a6589f92e837d" }, - "charlatan": { - "Package": "charlatan", - "Version": "0.5.0", + "callr": { + "Package": "callr", + "Version": "3.7.5", "Source": "Repository", - "Repository": "RSPM", - "Hash": "496a62ee6a3adb944c6e8e617a707fbc" - }, - "chromote": { - "Package": "chromote", - "Version": "0.1.1.9001", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "chromote", - "RemoteUsername": "rstudio", - "RemoteRef": "HEAD", - "RemoteSha": "c4cad74f45134f701e404bc023372d9118504522", - "Hash": "6c31f4b7bf7c826f9985140df3982c59" + "Repository": "CRAN", + "Hash": "9f0e4fae4963ba775a5e5c520838c87b" }, "cli": { "Package": "cli", - "Version": "3.6.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "89e6d8219950eac806ae0c489052048a" - }, - "clipr": { - "Package": "clipr", - "Version": "0.8.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3f038e5ac7f41d4ac41ce658c85e3042" - }, - "clisymbols": { - "Package": "clisymbols", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "96c01552bfd5661b9bbdefbc762f4bcd" - }, - "cloc": { - "Package": "cloc", - "Version": "0.3.5", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "cloc", - "RemoteUsername": "hrbrmstr", - "RemoteRef": "HEAD", - "RemoteSha": "0350958fb7edcb5cbb4ea831e74ca906000f2775", - "Hash": "2d0e10da5f36fa9f21a859e34126abad" - }, - "codetools": { - "Package": "codetools", - "Version": "0.2-19", + "Version": "3.6.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "c089a619a7fae175d149d89164f8c7d8" - }, - "colorspace": { - "Package": "colorspace", - "Version": "2.1-0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "f20c47fd52fae58b4e377c37bb8c335b" - }, - "colourvalues": { - "Package": "colourvalues", - "Version": "0.3.8", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3879a1e432279ff0bb7225c284611904" + "Hash": "1216ac65ac55ec0058a6f75d7ca0fd52" }, "commonmark": { "Package": "commonmark", - "Version": "1.9.0", + "Version": "1.9.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "d691c61bff84bd63c383874d2d0c3307" - }, - "config": { - "Package": "config", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "31d77b09f63550cee9ecb5a08bf76e8f" - }, - "conflicted": { - "Package": "conflicted", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "bb097fccb22d156624fd07cd2894ddb6" - }, - "covr": { - "Package": "covr", - "Version": "3.6.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a0d8f9a55add5311d48227b6f7f38e34" - }, - "covrpage": { - "Package": "covrpage", - "Version": "0.2", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "covrpage", - "RemoteUsername": "metrumresearchgroup", - "RemoteRef": "HEAD", - "RemoteSha": "bafeb195d1999b8c3a48186e26f59cafcdfa3670", - "Hash": "38844d38159e5458e632751f78061121" + "Hash": "5d8225445acb167abf7797de48b2ee3c" }, "cpp11": { "Package": "cpp11", - "Version": "0.4.3", + "Version": "0.4.7", "Source": "Repository", "Repository": "CRAN", - "Hash": "ed588261931ee3be2c700d22e94a29ab" - }, - "cranlogs": { - "Package": "cranlogs", - "Version": "2.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "cfa4eec97df94fd69cb8652368966020" + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" }, "crayon": { "Package": "crayon", @@ -440,618 +119,141 @@ "Repository": "CRAN", "Hash": "e8a1e41acf02548751f45c718d55aa6a" }, - "credentials": { - "Package": "credentials", - "Version": "1.3.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "93762d0a34d78e6a025efdbfb5c6bb41" - }, - "crosstalk": { - "Package": "crosstalk", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "6aa54f69598c32177e920eb3402e8293" - }, - "crrri": { - "Package": "crrri", - "Version": "0.0.13", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "crrri", - "RemoteUsername": "rlesur", - "RemoteRef": "HEAD", - "RemoteSha": "69c54e657f117b9e30b6a5475604e1e0c6584150", - "Hash": "52df323db66e34b01da50751a63ec834" - }, - "crrry": { - "Package": "crrry", - "Version": "0.0.0.9001", - "Source": "GitHub", - "Remotes": "rlesur/crrri", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "crrry", - "RemoteUsername": "ColinFay", - "RemoteRef": "HEAD", - "RemoteSha": "cb56e7656ec0d231c2aeccba5bf66180c33ccb50", - "Hash": "15d87a76819ed88f4a90c7bff8cd2ed8" - }, - "curl": { - "Package": "curl", - "Version": "5.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e4f97056611e8e6b8b852d13b7400cf1" - }, "cyclocomp": { "Package": "cyclocomp", - "Version": "1.1.0", + "Version": "1.1.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "53cbed70a2f7472d48fb6aef08442f25" - }, - "data.table": { - "Package": "data.table", - "Version": "1.14.8", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b4c06e554f33344e044ccd7fdca750a9" - }, - "dbplyr": { - "Package": "dbplyr", - "Version": "2.3.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d24305b92db333726aed162a2c23a147" - }, - "debugme": { - "Package": "debugme", - "Version": "1.1.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "2d8a9e4f08f3dd669cb8ddd1eb575959" + "Hash": "cdc4a473222b0112d4df0bcfbed12d44" }, "desc": { "Package": "desc", - "Version": "1.4.2", + "Version": "1.4.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "6b9602c7ebbe87101a9c8edb6e8b6d21" - }, - "devtools": { - "Package": "devtools", - "Version": "2.4.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ea5bc8b4a6a01e4f12d98b58329930bb" - }, - "dichromat": { - "Package": "dichromat", - "Version": "2.0-0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "16e66f2a483e124af5fc6582d26005f7" - }, - "diffobj": { - "Package": "diffobj", - "Version": "0.3.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "bcaa8b95f8d7d01a5dedfd959ce88ab8" + "Hash": "99b79fcbd6c4d1ce087f5c5c758b384f" }, "digest": { "Package": "digest", - "Version": "0.6.31", + "Version": "0.6.34", "Source": "Repository", "Repository": "CRAN", - "Hash": "8b708f296afd9ae69f450f9640be8990" - }, - "dockerfiler": { - "Package": "dockerfiler", - "Version": "0.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e4a4f46defa4b7b31e2c75bc7123e47b" - }, - "dockerstats": { - "Package": "dockerstats", - "Version": "0.1.0", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "dockerstats", - "RemoteUsername": "ColinFay", - "RemoteRef": "HEAD", - "RemoteSha": "2f15876a10c51d80918ab06df318c111202927b9", - "Hash": "0890f92caf622a05292842523acb2c0c" - }, - "downlit": { - "Package": "downlit", - "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "79bf3f66590752ffbba20f8d2da94c7c" - }, - "dplyr": { - "Package": "dplyr", - "Version": "1.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "eb5742d256a0d9306d85ea68756d8187" - }, - "dtplyr": { - "Package": "dtplyr", - "Version": "1.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "54ed3ea01b11e81a86544faaecfef8e2" - }, - "dygraphs": { - "Package": "dygraphs", - "Version": "1.1.1.6", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "716869fffc16e282c118f8894e082a7d" + "Hash": "7ede2ee9ea8d3edbf1ca84c1e333ad1a" }, "ellipsis": { "Package": "ellipsis", "Version": "0.3.2", - "Source": "Repository", - "Repository": "RSPM", + "Source": "CRAN", + "Repository": "CRAN", + "RemoteType": "standard", + "RemotePkgRef": "ellipsis", + "RemoteRef": "ellipsis", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "0.3.2", "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" }, "evaluate": { "Package": "evaluate", - "Version": "0.20", + "Version": "0.23", "Source": "Repository", "Repository": "CRAN", - "Hash": "4b68aa51edd89a0e044a66e75ae3cc6c" - }, - "fakir": { - "Package": "fakir", - "Version": "1.0.0", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "fakir", - "RemoteUsername": "ThinkR-open", - "RemoteRef": "HEAD", - "RemoteSha": "73fafbf976dece75cf560cedc530052d0da09fb6", - "Hash": "576933063b62932a856329628ae05701" - }, - "fansi": { - "Package": "fansi", - "Version": "1.0.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "1d9e7ad3c8312a192dea7d3db0274fde" - }, - "farver": { - "Package": "farver", - "Version": "2.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8106d78941f34855c440ddb946b8f7a5" + "Hash": "daf4a1246be12c1fa8c7705a0935c1a0" }, "fastmap": { "Package": "fastmap", "Version": "1.1.1", - "Source": "Repository", - "Repository": "RSPM", + "Source": "CRAN", + "Repository": "CRAN", + "RemoteType": "standard", + "RemotePkgRef": "fastmap", + "RemoteRef": "fastmap", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "1.1.1", "Hash": "f7736a18de97dea803bde0a2daaafb27" }, "fontawesome": { "Package": "fontawesome", - "Version": "0.5.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e80750aec5717dedc019ad7ee40e4a7c" - }, - "forcats": { - "Package": "forcats", - "Version": "1.0.0", + "Version": "0.5.2", "Source": "Repository", - "Repository": "RSPM", - "Hash": "1a0a9a3d5083d0d573c4214576f1e690" + "Repository": "CRAN", + "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" }, "foreign": { "Package": "foreign", - "Version": "0.8-84", + "Version": "0.8-86", "Source": "Repository", "Repository": "CRAN", - "Hash": "467ec0ca895d4e61a22cfbac9bccddf8" - }, - "fresh": { - "Package": "fresh", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "fa54367040deb4537da49b7ac0ee5770" + "Hash": "550170303dbb19d07b2bcc288068e7dc" }, "fs": { "Package": "fs", - "Version": "1.6.1", + "Version": "1.6.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "f4dcd23b67e33d851d2079f703e8b985" + "Hash": "47b5f30c720c23999b913a1a635cf0bb" }, - "fullPage": { - "Package": "fullPage", - "Version": "0.1.1", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "fullPage", - "RemoteUsername": "RinteRface", - "RemoteRef": "HEAD", - "RemoteSha": "4657d86a0cf43bb6b2451f5ee34b2410656bae0d", - "Hash": "492a48b1eb5fc083cf9dda16616e7fa6" - }, - "future": { - "Package": "future", - "Version": "1.32.0", + "glue": { + "Package": "glue", + "Version": "1.7.0", "Source": "Repository", - "Repository": "RSPM", - "Hash": "c68517cf2f78be4ea86e140b8598a4ca" + "Repository": "CRAN", + "Hash": "e0b3a53876554bd45879e596cdb10a52" }, - "gargle": { - "Package": "gargle", - "Version": "1.3.0", + "highr": { + "Package": "highr", + "Version": "0.10", "Source": "Repository", - "Repository": "RSPM", - "Hash": "bb3208dcdfeb2e68bf33c87601b3cbe3" + "Repository": "CRAN", + "Hash": "06230136b2d2b9ba5805e1963fa6e890" }, - "gargoyle": { - "Package": "gargoyle", - "Version": "0.0.1", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "gargoyle", - "RemoteUsername": "ColinFay", - "RemoteRef": "HEAD", - "RemoteSha": "83234de417b9b0b39be9b8f1556e5df1968624b2", - "Hash": "55cbb1f4fdd124adc5dc96395e50f3c8" + "htmltools": { + "Package": "htmltools", + "Version": "0.5.7", + "Source": "CRAN", + "Repository": "CRAN", + "RemoteType": "standard", + "RemotePkgRef": "htmltools", + "RemoteRef": "htmltools", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "0.5.7", + "Hash": "2d7b3857980e0e0d0a1fd6f11928ab0f" }, - "generics": { - "Package": "generics", - "Version": "0.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "CRAN", + "Repository": "CRAN", + "RemoteType": "standard", + "RemotePkgRef": "jquerylib", + "RemoteRef": "jquerylib", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "0.1.4", + "Hash": "5aab57a3bd297eee1c1d862735972182" }, - "geojsonsf": { - "Package": "geojsonsf", - "Version": "2.0.3", + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", "Source": "Repository", - "Repository": "RSPM", - "Hash": "8d077646c6713838233e8710910ef92e" + "Repository": "CRAN", + "Hash": "e1b9c55281c5adc4dd113652d9e26768" }, - "geometries": { - "Package": "geometries", - "Version": "0.2.2", + "knitr": { + "Package": "knitr", + "Version": "1.45", "Source": "Repository", - "Repository": "RSPM", - "Hash": "09604531daa57d9c3884b7a15488bab9" - }, - "gert": { - "Package": "gert", - "Version": "1.9.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "9122b3958e749badb5c939f498038b57" - }, - "ggbeeswarm": { - "Package": "ggbeeswarm", - "Version": "0.7.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e2adea988a575e168ad44022e80cd44e" - }, - "ggplot2": { - "Package": "ggplot2", - "Version": "3.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3a147ee02e85a8941aad9909f1b43b7b" - }, - "gh": { - "Package": "gh", - "Version": "1.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "03533b1c875028233598f848fda44c4c" - }, - "git2r": { - "Package": "git2r", - "Version": "0.31.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "acb972e0be37f83b9c762d962d75a188" - }, - "gitcreds": { - "Package": "gitcreds", - "Version": "0.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ab08ac61f3e1be454ae21911eb8bc2fe" - }, - "globals": { - "Package": "globals", - "Version": "0.16.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "baa9585ab4ce47a9f4618e671778cc6f" - }, - "glouton": { - "Package": "glouton", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "glouton", - "RemoteUsername": "colinfay", - "RemoteRef": "HEAD", - "RemoteSha": "f6b466be86800a945f1677022d93aac4da57aeb1", - "Hash": "2da15bf350e1a9f06fd8c9b2371906ad" - }, - "glue": { - "Package": "glue", - "Version": "1.6.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e" - }, - "golem": { - "Package": "golem", - "Version": "0.4.0", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "golem", - "RemoteUsername": "ThinkR-open", - "RemoteRef": "HEAD", - "RemoteSha": "d0e034600871d149fb560de0bac92c75ea0ed087", - "Hash": "e9c68803526c80de47f6d70b41592c28" - }, - "goodpractice": { - "Package": "goodpractice", - "Version": "1.0.3", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "goodpractice", - "RemoteUsername": "MangoTheCat", - "RemoteRef": "HEAD", - "RemoteSha": "b6c31d62ab3b0eca21224a307a51f55fcac2901f", - "Hash": "9a745e86597328a0468cdb657f421bc9" - }, - "googledrive": { - "Package": "googledrive", - "Version": "2.1.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e88ba642951bc8d1898ba0d12581850b" - }, - "googlesheets4": { - "Package": "googlesheets4", - "Version": "1.1.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "fd7b97bd862a14297b0bb7ed28a3dada" - }, - "gplots": { - "Package": "gplots", - "Version": "3.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "75437dd4c43599f6e9418ea249495fda" - }, - "gridExtra": { - "Package": "gridExtra", - "Version": "2.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "7d7f283939f563670a697165b2cf5560" - }, - "gtable": { - "Package": "gtable", - "Version": "0.3.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b44addadb528a0d227794121c00572a0" - }, - "gtools": { - "Package": "gtools", - "Version": "3.9.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "88bb96eaf7140cdf29e374ef74182220" - }, - "haven": { - "Package": "haven", - "Version": "2.5.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8b331e659e67d757db0fcc28e689c501" - }, - "here": { - "Package": "here", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "24b224366f9c2e7534d2344d10d59211" - }, - "highr": { - "Package": "highr", - "Version": "0.10", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "06230136b2d2b9ba5805e1963fa6e890" - }, - "hms": { - "Package": "hms", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b59377caa7ed00fa41808342002138f9" - }, - "htmltools": { - "Package": "htmltools", - "Version": "0.5.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ba0240784ad50a62165058a27459304a" - }, - "htmlwidgets": { - "Package": "htmlwidgets", - "Version": "1.6.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a865aa85bcb2697f47505bfd70422471" - }, - "httpuv": { - "Package": "httpuv", - "Version": "1.6.9", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "1046aa31a57eae8b357267a56a0b6d8b" - }, - "httr": { - "Package": "httr", - "Version": "1.4.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "f6844033201269bec3ca0097bc6c97b3" - }, - "httr2": { - "Package": "httr2", - "Version": "0.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5c09fe33064978ede54de42309c8b532" - }, - "hunspell": { - "Package": "hunspell", - "Version": "3.0.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "656219b6f3f605499d7cdbe208656639" - }, - "ids": { - "Package": "ids", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "99df65cfef20e525ed38c3d2577f7190" - }, - "ini": { - "Package": "ini", - "Version": "0.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "6154ec2223172bce8162d4153cda21f7" - }, - "isoband": { - "Package": "isoband", - "Version": "0.2.7", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "0080607b4a1a7b28979aecef976d8bc2" - }, - "jquerylib": { - "Package": "jquerylib", - "Version": "0.1.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5aab57a3bd297eee1c1d862735972182" - }, - "jsonify": { - "Package": "jsonify", - "Version": "1.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "49a9775e4f8c96c654b6018739067055" - }, - "jsonlite": { - "Package": "jsonlite", - "Version": "1.8.4", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "a4269a09a9b865579b2635c77e572374" - }, - "knitr": { - "Package": "knitr", - "Version": "1.42", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "8329a9bcc82943c8069104d4be3ee22d" - }, - "labeling": { - "Package": "labeling", - "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3d5108641f47470611a32d0bdf357a72" - }, - "later": { - "Package": "later", - "Version": "1.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "7e7b457d7766bc47f2a5f21cc2984f8e" - }, - "lattice": { - "Package": "lattice", - "Version": "0.20-45", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b64cdbb2b340437c4ee047a1f4c4377b" - }, - "lazyeval": { - "Package": "lazyeval", - "Version": "0.2.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "d908914ae53b04d4c0c0fd72ecc35370" + "Repository": "CRAN", + "Hash": "1ec462871063897135c1bcbe0fc8f07d" }, "lifecycle": { "Package": "lifecycle", - "Version": "1.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "001cecbeac1cff9301bdc3775ee46a86" - }, - "lintr": { - "Package": "lintr", - "Version": "3.0.2", + "Version": "1.0.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "b21ebd652d940f099915221f3328ab7b" - }, - "listenv": { - "Package": "listenv", - "Version": "0.9.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "4fbd3679ec8ee169ba28d4b1ea7d0e8f" - }, - "liteq": { - "Package": "liteq", - "Version": "1.1.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ddd65c6a43081d12ecba679815642c14" - }, - "lubridate": { - "Package": "lubridate", - "Version": "1.9.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e25f18436e3efd42c7c590a1c4c15390" + "Hash": "b8552d117e1b808b09a832f589b79035" }, "magrittr": { "Package": "magrittr", @@ -1060,910 +262,184 @@ "Repository": "CRAN", "Hash": "7ce2733a9826b3aeb1775d56fd305472" }, - "markdown": { - "Package": "markdown", - "Version": "1.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d209cfd1f4ff7260eae5a7f07da3aa4f" - }, - "matlab": { - "Package": "matlab", - "Version": "1.0.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "db326df29a08f91ec35e59b1a7ba1cea" - }, "memoise": { "Package": "memoise", "Version": "2.0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" - }, - "mgcv": { - "Package": "mgcv", - "Version": "1.8-42", - "Source": "Repository", + "Source": "CRAN", "Repository": "CRAN", - "Hash": "3460beba7ccc8946249ba35327ba902a" + "RemoteType": "standard", + "RemotePkgRef": "memoise", + "RemoteRef": "memoise", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "2.0.1", + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" }, "mime": { "Package": "mime", "Version": "0.12", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "18e9c28c1d3ca1560ce30658b22ce104" - }, - "miniUI": { - "Package": "miniUI", - "Version": "0.1.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "fec5f52652d60615fdb3957b3d74324a" - }, - "minifyr": { - "Package": "minifyr", - "Version": "0.0.0.9100", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "minifyr", - "RemoteUsername": "Colinfay", - "RemoteRef": "HEAD", - "RemoteSha": "b3942aae40055db300dbe2ecea6d34f112688775", - "Hash": "8b83859e3e8fdcf68d6c19ab969abe32" - }, - "modelr": { - "Package": "modelr", - "Version": "0.1.11", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "4f50122dc256b1b6996a4703fecea821" - }, - "munsell": { - "Package": "munsell", - "Version": "0.5.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "6dfe8bf774944bd5595785e3229d8771" - }, - "namer": { - "Package": "namer", - "Version": "0.1.6", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "14eedfb618c9e7dd4813dbead28935f3" - }, - "nessy": { - "Package": "nessy", - "Version": "0.0.0.9001", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "nessy", - "RemoteUsername": "ColinFay", - "RemoteRef": "HEAD", - "RemoteSha": "eec2be62dbc74ee447fed1ef235901ed1566f89c", - "Hash": "1a4793b4710c496015f287979f9d0de4" - }, - "nlme": { - "Package": "nlme", - "Version": "3.1-162", - "Source": "Repository", + "Source": "CRAN", "Repository": "CRAN", - "Hash": "0984ce8da8da9ead8643c5cbbb60f83e" - }, - "openssl": { - "Package": "openssl", - "Version": "2.0.6", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "0f7cd2962e3044bb940cca4f4b5cecbe" - }, - "packageMetrics2": { - "Package": "packageMetrics2", - "Version": "1.0.1.9000", - "Source": "GitHub", - "Remotes": "MangoTheCat/callr, MangoTheCat/goodpractice,\nMangoTheCat/remotes", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "packageMetrics2", - "RemoteUsername": "MangoTheCat", - "RemoteRef": "HEAD", - "RemoteSha": "2c19392f44436d7da966170aa7bc30d10217c6e7", - "Hash": "3efed369aefe6520cfe2320ef91d8b1d" - }, - "packrat": { - "Package": "packrat", - "Version": "0.9.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "481428983c19a7c443f7ea1beff0a2de" - }, - "pagedown": { - "Package": "pagedown", - "Version": "0.20", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d1cb0a04921876e321420588e9a5aa91" - }, - "pak": { - "Package": "pak", - "Version": "0.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "51e9efa3a8edbb798f923d91a5e16917" - }, - "parallelly": { - "Package": "parallelly", - "Version": "1.35.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "1cf5a54cfc5dcb0b84037acfd93cbca7" - }, - "parsedate": { - "Package": "parsedate", - "Version": "1.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "7f5024cc7af45eeecef657fa62beb568" - }, - "pillar": { - "Package": "pillar", - "Version": "1.9.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "15da5a8412f317beeee6175fbc76f4bb" + "RemoteType": "standard", + "RemotePkgRef": "mime", + "RemoteRef": "mime", + "RemoteRepos": "https://cran.rstudio.com", + "RemotePkgPlatform": "aarch64-apple-darwin20", + "RemoteSha": "0.12", + "Hash": "18e9c28c1d3ca1560ce30658b22ce104" }, "pkgbuild": { "Package": "pkgbuild", - "Version": "1.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d6c3008d79653a0f267703288230105e" - }, - "pkgconfig": { - "Package": "pkgconfig", - "Version": "2.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "01f28d4278f15c76cddbea05899c5d6f" - }, - "pkgdown": { - "Package": "pkgdown", - "Version": "2.0.7", + "Version": "1.4.3", "Source": "Repository", - "Repository": "RSPM", - "Hash": "16fa15449c930bf3a7761d3c68f8abf9" + "Repository": "CRAN", + "Hash": "c0143443203205e6a2760ce553dafc24" }, "pkgload": { "Package": "pkgload", - "Version": "1.3.2", + "Version": "1.3.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "6b0c222c5071efe0f3baf3dae9aa40e2" - }, - "plogr": { - "Package": "plogr", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "09eb987710984fc2905c7129c7d85e65" - }, - "plotly": { - "Package": "plotly", - "Version": "4.10.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3781cf6971c6467fa842a63725bbee9e" - }, - "praise": { - "Package": "praise", - "Version": "1.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a555924add98c99d2f411e37e7d25e9f" - }, - "prettyunits": { - "Package": "prettyunits", - "Version": "1.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "95ef9167b75dde9d2ccc3c7528393e7e" + "Hash": "876c618df5ae610be84356d5d7a5d124" }, "processx": { "Package": "processx", - "Version": "3.8.0", + "Version": "3.8.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "a33ee2d9bf07564efb888ad98410da84" - }, - "profmem": { - "Package": "profmem", - "Version": "0.6.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "4974ce1d5ab22f266af90826f295f6c7" - }, - "profvis": { - "Package": "profvis", - "Version": "0.3.7", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e9d21e79848e02e524bea6f5bd53e7e4" - }, - "progress": { - "Package": "progress", - "Version": "1.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "14dc9f7a3c91ebb14ec5bb9208a07061" - }, - "promises": { - "Package": "promises", - "Version": "1.2.0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "4ab2c43adb4d4699cf3690acd378d75d" + "Hash": "82d48b1aec56084d9438dbf98087a7e9" }, "ps": { "Package": "ps", - "Version": "1.7.4", + "Version": "1.7.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "d88be14c6790aa6fd7b27a2079a45a85" + "Hash": "dd2b9319ee0656c8acf45c7f40c59de7" }, "purrr": { "Package": "purrr", - "Version": "1.0.1", + "Version": "1.0.2", "Source": "Repository", "Repository": "CRAN", - "Hash": "d71c815267c640f17ddbf7f16144b4bb" - }, - "ragg": { - "Package": "ragg", - "Version": "1.2.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "690bc058ea2b1b8a407d3cfe3dce3ef9" - }, - "rapidjsonr": { - "Package": "rapidjsonr", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "88b9f48c93d17cdb811b54079a6a414f" + "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" }, "rappdirs": { "Package": "rappdirs", "Version": "0.3.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5e3c5dc0b071b21fa128676560dbe94d" - }, - "rcmdcheck": { - "Package": "rcmdcheck", - "Version": "1.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8f25ebe2ec38b1f2aef3b0d2ef76f6c4" - }, - "readr": { - "Package": "readr", - "Version": "2.1.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b5047343b3825f37ad9d3b5d89aa1078" - }, - "readxl": { - "Package": "readxl", - "Version": "1.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "2e6020b1399d95f947ed867045e9ca17" - }, - "rematch": { - "Package": "rematch", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c66b930d20bb6d858cd18e1cebcfae5c" - }, - "rematch2": { - "Package": "rematch2", - "Version": "2.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "76c9e04c712a05848ae7a23d2f170a40" - }, - "remotes": { - "Package": "remotes", - "Version": "2.4.2", "Source": "CRAN", "Repository": "CRAN", "RemoteType": "standard", - "RemotePkgRef": "remotes", - "RemoteRef": "remotes", + "RemotePkgRef": "rappdirs", + "RemoteRef": "rappdirs", "RemoteRepos": "https://cran.rstudio.com", "RemotePkgPlatform": "aarch64-apple-darwin20", - "RemoteSha": "2.4.2", - "Hash": "227045be9aee47e6dda9bb38ac870d67" + "RemoteSha": "0.3.3", + "Hash": "5e3c5dc0b071b21fa128676560dbe94d" + }, + "remotes": { + "Package": "remotes", + "Version": "2.4.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "63d15047eb239f95160112bcadc4fcb9" }, "renv": { "Package": "renv", "Version": "0.12.2", "Source": "Repository", - "Repository": "RSPM", - "Hash": "398cc1ea892e1aade66d1ecbb2874d24" - }, - "reprex": { - "Package": "reprex", - "Version": "2.0.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d66fe009d4c20b7ab1927eb405db9ee2" - }, - "resume": { - "Package": "resume", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "resume", - "RemoteUsername": "colinfay", - "RemoteRef": "HEAD", - "RemoteSha": "d9ec83d4df4440f24fa35d100d7b4e02e54c4b29", - "Hash": "c793ddd6955257f485293c4f101d6532" - }, - "rex": { - "Package": "rex", - "Version": "1.2.1", - "Source": "Repository", "Repository": "CRAN", - "Hash": "ae34cd56890607370665bee5bd17812f" - }, - "rhub": { - "Package": "rhub", - "Version": "1.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e0880f6783f720d136755fb92d63c78b" + "Hash": "398cc1ea892e1aade66d1ecbb2874d24" }, "rlang": { "Package": "rlang", - "Version": "1.1.0", + "Version": "1.1.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "dc079ccd156cde8647360f473c1fa718" + "Hash": "42548638fae05fd9a9b5f3f437fbbbe2" }, "rmarkdown": { "Package": "rmarkdown", - "Version": "2.21", + "Version": "2.26", "Source": "Repository", "Repository": "RSPM", - "Hash": "493df4ae51e2e984952ea4d5c75786a3" + "Hash": "9b148e7f95d33aac01f31282d49e4f44" }, "roxygen2": { "Package": "roxygen2", - "Version": "7.2.3", + "Version": "7.3.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "7b153c746193b143c14baa072bae4e27" + "Hash": "c25fe7b2d8cba73d1b63c947bf7afdb9" }, "rprojroot": { "Package": "rprojroot", - "Version": "2.0.3", + "Version": "2.0.4", "Source": "Repository", "Repository": "CRAN", - "Hash": "1de7ab598047a87bba48434ba35d497d" - }, - "rsconnect": { - "Package": "rsconnect", - "Version": "0.8.29", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "fe178fc15af80952f546aafedf655b36" - }, - "rstudioapi": { - "Package": "rstudioapi", - "Version": "0.14", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "690bd2acc42a9166ce34845884459320" - }, - "rversions": { - "Package": "rversions", - "Version": "2.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a9881dfed103e83f9de151dc17002cd1" - }, - "rvest": { - "Package": "rvest", - "Version": "1.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a4a5ac819a467808c60e36e92ddf195e" + "Hash": "4c8415e0ec1e29f3f4f6fc108bef0144" }, "sass": { "Package": "sass", - "Version": "0.4.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "2bb4371a4c80115518261866eab6ab11" - }, - "scales": { - "Package": "scales", - "Version": "1.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "906cb23d2f1c5680b8ce439b44c6fa63" - }, - "selectr": { - "Package": "selectr", - "Version": "0.4-2", + "Version": "0.4.8", "Source": "Repository", - "Repository": "RSPM", - "Hash": "3838071b66e0c566d55cc26bd6e27bf4" - }, - "servr": { - "Package": "servr", - "Version": "0.26", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "fd76750552bad91bbb9b89662f3a3f87" - }, - "sessioninfo": { - "Package": "sessioninfo", - "Version": "1.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3f9796a8d0a0e8c6eb49a4b029359d1f" - }, - "sever": { - "Package": "sever", - "Version": "0.0.7", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ed311815f35a5ef4884ae72ae0f86cca" - }, - "sfheaders": { - "Package": "sfheaders", - "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "0b835f43939178a3cac6712fbe8cc2e8" - }, - "shinipsum": { - "Package": "shinipsum", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "shinipsum", - "RemoteUsername": "Thinkr-open", - "RemoteRef": "HEAD", - "RemoteSha": "93fec148c4a105968aae2f69ab14d9298f68ca87", - "Hash": "aa015a6e7dc5981141bf998f054ca14e" - }, - "shiny": { - "Package": "shiny", - "Version": "1.7.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c2eae3d8c670fa9dfa35a12066f4a1d5" - }, - "shinyFeedback": { - "Package": "shinyFeedback", - "Version": "0.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "88a6b7ff3d135195ad0011fec04336f2" - }, - "shinyMobile": { - "Package": "shinyMobile", - "Version": "1.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "6753d101c69fefbb0f7c3ae879432464" - }, - "shinyalert": { - "Package": "shinyalert", - "Version": "3.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "2fd42421abd79dcaf0855fa1d21599a3" - }, - "shinydashboard": { - "Package": "shinydashboard", - "Version": "0.7.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e418b532e9bb4eb22a714b9a9f1acee7" - }, - "shinydashboardPlus": { - "Package": "shinydashboardPlus", - "Version": "2.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5045276dcad7ad9b785d593b1a710681" - }, - "shinyjs": { - "Package": "shinyjs", - "Version": "2.1.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "802e4786b353a4bb27116957558548d5" - }, - "skeleton": { - "Package": "skeleton", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "skeleton", - "RemoteUsername": "colinfay", - "RemoteRef": "HEAD", - "RemoteSha": "42c63945a86c653dfe643adde27f4c9d3d4d3ab7", - "Hash": "f6df5e9cbb6afa0390045fa6a637b6ab" - }, - "snippr": { - "Package": "snippr", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "snippr", - "RemoteUsername": "dgrtwo", - "RemoteRef": "29c1813", - "RemoteSha": "29c1813274ae85e99a1c2d37ffc851cae3daba6f", - "Hash": "eea34bc7fe937a6944e728efa8784b1e" - }, - "sourcetools": { - "Package": "sourcetools", - "Version": "0.1.7-1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5f5a7629f956619d519205ec475fe647" + "Repository": "CRAN", + "Hash": "168f9353c76d4c4b0a0bbf72e2c2d035" }, "stringi": { "Package": "stringi", - "Version": "1.7.12", + "Version": "1.8.3", "Source": "Repository", "Repository": "CRAN", - "Hash": "ca8bd84263c77310739d2cf64d84d7c9" + "Hash": "058aebddea264f4c99401515182e656a" }, "stringr": { "Package": "stringr", - "Version": "1.5.0", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "671a4d384ae9d32fc47a14e98bfa3dc8" - }, - "styler": { - "Package": "styler", - "Version": "1.9.1", + "Version": "1.5.1", "Source": "Repository", "Repository": "CRAN", - "Hash": "ed8c90822b7da46beee603f263a85fe0" - }, - "subprocess": { - "Package": "subprocess", - "Version": "0.8.4", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "subprocess", - "RemoteUsername": "lbartnik", - "RemoteRef": "HEAD", - "RemoteSha": "ecd741a14bd701b628da6a6e1978899047ee2ee8", - "Hash": "0fa4d39d9e8d1ecc12f76b57bd4916d0" - }, - "sys": { - "Package": "sys", - "Version": "3.4.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "34c16f1ef796057bfa06d3f4ff818a5d" - }, - "systemfonts": { - "Package": "systemfonts", - "Version": "1.0.4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "90b28393209827327de889f49935140a" - }, - "testthat": { - "Package": "testthat", - "Version": "3.1.7", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "7eb5fd202a61d2fb78af5869b6c08998" - }, - "textshaping": { - "Package": "textshaping", - "Version": "0.3.6", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "1ab6223d3670fac7143202cb6a2d43d5" - }, - "tibble": { - "Package": "tibble", - "Version": "3.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a84e2cc86d07289b3b6f5069df7a004c" - }, - "tictoc": { - "Package": "tictoc", - "Version": "1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e1a2cb41e4be769a941c90c11469db90" - }, - "tidymodules": { - "Package": "tidymodules", - "Version": "0.1.6", - "Source": "GitHub", - "Remotes": "dgrtwo/snippr@29c1813", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "tidymodules", - "RemoteUsername": "Novartis", - "RemoteRef": "HEAD", - "RemoteSha": "daa948f31910686171476865051dcee9e6f5b10f", - "Hash": "5dd082a5e5f4b456395d5b9b4205dd07" - }, - "tidyr": { - "Package": "tidyr", - "Version": "1.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "e47debdc7ce599b070c8e78e8ac0cfcf" - }, - "tidyselect": { - "Package": "tidyselect", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "79540e5fcd9e0435af547d885f184fd5" - }, - "tidytuesday201942": { - "Package": "tidytuesday201942", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "tidytuesday201942", - "RemoteUsername": "ColinFay", - "RemoteRef": "HEAD", - "RemoteSha": "ecefde5f77d90af421fde5e15b4fee26505cfa07", - "Hash": "7314f4cc8c8e1e9fa1316c9d79b47527" - }, - "tidyverse": { - "Package": "tidyverse", - "Version": "2.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c328568cd14ea89a83bd4ca7f54ae07e" - }, - "timechange": { - "Package": "timechange", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8548b44f79a35ba1791308b61e6012d7" + "Hash": "960e2ae9e09656611e0b8214ad543207" }, "tinytex": { "Package": "tinytex", - "Version": "0.44", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c0f007e2eeed7722ce13d42b84a22e07" - }, - "tufte": { - "Package": "tufte", - "Version": "0.12", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c291ba0e4194e339f7d04cd6b013f223" - }, - "tzdb": { - "Package": "tzdb", - "Version": "0.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b2e1cbce7c903eaf23ec05c58e59fb5e" - }, - "urlchecker": { - "Package": "urlchecker", - "Version": "1.0.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "409328b8e1253c8d729a7836fe7f7a16" - }, - "usethis": { - "Package": "usethis", - "Version": "2.1.6", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a67a22c201832b12c036cc059f1d137d" - }, - "utf8": { - "Package": "utf8", - "Version": "1.2.3", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "1fe17157424bb09c48a8b3b550c753bc" - }, - "uuid": { - "Package": "uuid", - "Version": "1.1-0", + "Version": "0.49", "Source": "Repository", "Repository": "RSPM", - "Hash": "f1cb46c157d080b729159d407be83496" + "Hash": "5ac22900ae0f386e54f1c307eca7d843" }, "vctrs": { "Package": "vctrs", - "Version": "0.6.1", + "Version": "0.6.5", "Source": "Repository", "Repository": "CRAN", - "Hash": "06eceb3a5d716fd0654cc23ca3d71a99" - }, - "vipor": { - "Package": "vipor", - "Version": "0.4.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ea85683da7f2bfa63a98dc6416892591" - }, - "viridis": { - "Package": "viridis", - "Version": "0.6.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ee96aee95a7a563e5496f8991e9fde4b" - }, - "viridisLite": { - "Package": "viridisLite", - "Version": "0.4.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "62f4b5da3e08d8e5bcba6cac15603f70" - }, - "visNetwork": { - "Package": "visNetwork", - "Version": "2.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "3e48b097e8d9a91ecced2ed4817a678d" - }, - "vroom": { - "Package": "vroom", - "Version": "1.6.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "7015a74373b83ffaef64023f4a0f5033" - }, - "waiter": { - "Package": "waiter", - "Version": "0.2.5", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "93e6b6c8ae3f81d4be77a0dc74e5cf5e" - }, - "waldo": { - "Package": "waldo", - "Version": "0.4.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "035fba89d0c86e2113120f93301b98ad" - }, - "websocket": { - "Package": "websocket", - "Version": "1.4.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "76e0d400757e318cca33def29ccebbc2" - }, - "whereami": { - "Package": "whereami", - "Version": "0.2.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5ede720db47e129812e1ec0579c9ea46" - }, - "whisker": { - "Package": "whisker", - "Version": "0.4.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c6abfa47a46d281a7d5159d0a8891e88" - }, - "whoami": { - "Package": "whoami", - "Version": "1.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "ef0f4d9b8f2cc2ebeccae1d725b8a023" + "Hash": "c03fa420630029418f7e6da3667aac4a" }, "withr": { "Package": "withr", - "Version": "2.5.0", + "Version": "3.0.0", "Source": "Repository", "Repository": "CRAN", - "Hash": "c0e49a9760983e81e55cdd9be92e7182" + "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" }, "xfun": { "Package": "xfun", - "Version": "0.38", + "Version": "0.42", "Source": "Repository", "Repository": "CRAN", - "Hash": "1ed71215d45e85562d3b1b29a068ccec" + "Hash": "fd1349170df31f7a10bd98b0189e85af" }, "xml2": { "Package": "xml2", - "Version": "1.3.3", + "Version": "1.3.6", "Source": "Repository", "Repository": "CRAN", - "Hash": "40682ed6a969ea5abfd351eb67833adc" - }, - "xmlparsedata": { - "Package": "xmlparsedata", - "Version": "1.0.5", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "45e4bf3c46476896e821fc0a408fb4fc" - }, - "xopen": { - "Package": "xopen", - "Version": "1.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "6c85f015dee9cc7710ddd20f86881f58" - }, - "xtable": { - "Package": "xtable", - "Version": "1.8-4", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" - }, - "xts": { - "Package": "xts", - "Version": "0.13.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "33585121b8677d584152db8008ca855d" + "Hash": "1d0336142f4cd25d8d23cd3ba7a8fb61" }, "yaml": { "Package": "yaml", - "Version": "2.3.7", + "Version": "2.3.8", "Source": "Repository", "Repository": "CRAN", - "Hash": "0d0056cc5383fbc240ccd0cb584bf436" - }, - "yesno": { - "Package": "yesno", - "Version": "0.1.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "4a2fb54761fec7c92bcf7d30b3d017e1" - }, - "zip": { - "Package": "zip", - "Version": "2.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "c42bfcec3fa6a0cce17ce1f8bc684f88" - }, - "zoo": { - "Package": "zoo", - "Version": "1.8-11", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "874a5b77fe0cfacf2a3450069ae70926" + "Hash": "29240487a071f535f5e5d5a323b7afbd" } } }