From 5c3c5b7bd7ceeb6a477b5168fef75e5a0b643b83 Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sat, 25 Sep 2021 17:35:34 +0200 Subject: [PATCH 1/7] New look with bs4_book --- .gitignore | 1 + .travis.yml | 31 --- 01-big-shiny.Rmd | 2 +- 06-ux-matters.Rmd | 4 +- 14-when_optimize.Rmd | 6 +- CONTRIBUTING.md | 48 ++++ DESCRIPTION | 6 +- _bookdown.yml | 1 + _output.yml | 9 +- before-build.R | 2 +- css/style_gitbook.css | 8 +- gitbook-footer-thinkr.html | 2 +- index.Rmd | 16 +- prep.R | 3 + renv.lock | 445 ++++++++++++++++++++----------------- 15 files changed, 329 insertions(+), 255 deletions(-) delete mode 100644 .travis.yml diff --git a/.gitignore b/.gitignore index 9d7b3510..98c1f4ce 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ _book/* !engineering-production-grade-shiny-apps.Rproj golex/ todoedit +_site/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 281cf0c4..00000000 --- a/.travis.yml +++ /dev/null @@ -1,31 +0,0 @@ -language: r -cache: packages -os: linux -dist: bionic - -env: - global: - - MAKEFLAGS="-j 2" - -jobs: - include: - - r: 3.6 - -install: - - Rscript -e 'if(dir.exists("cache")){unlink("cache")}' - - Rscript -e 'install.packages("remotes")' - - Rscript -e "install.packages('tinytex')" - - Rscript -e "tinytex::install_tinytex()" - - Rscript -e 'remotes::install_github("ThinkR-open/golem", ref = "dev")' - - Rscript -e 'remotes::install_local(force = TRUE)' - -script: - - if [ $TRAVIS_BRANCH == "wip" ] ; then make html_wip; fi - - if [ $TRAVIS_BRANCH == "master" ] ; then make html_master; fi - - if [ $TRAVIS_BRANCH == "wip" ] ; then make pdf; fi - -after_success: - - if ([ $TRAVIS_PULL_REQUEST == "false" ] && [ $TRAVIS_BRANCH == "wip" ]) ; then bash deploy.sh; fi - - if ([ $TRAVIS_PULL_REQUEST == "false" ] && [ $TRAVIS_BRANCH == "master" ]) ; then bash deploy.sh; fi - - diff --git a/01-big-shiny.Rmd b/01-big-shiny.Rmd index eb249777..74450984 100644 --- a/01-big-shiny.Rmd +++ b/01-big-shiny.Rmd @@ -445,7 +445,7 @@ This package can now be used to assess the dependencies we use in our applicatio To do that, let's create a small function that computes this metric and returns a tibble: ```{r 01-big-shiny-25 } -library() +library(packageMetrics2) # A function to turn the output of the metrics into a data.frame frame_metric <- function(pkg){ metrics <- package_metrics(pkg) diff --git a/06-ux-matters.Rmd b/06-ux-matters.Rmd index a7ec0f1a..f30ef90d 100644 --- a/06-ux-matters.Rmd +++ b/06-ux-matters.Rmd @@ -50,8 +50,8 @@ First of all, users rarely carefully read all the instructions: they **scan** an Navigating the web, users try to optimize their decision, not by making the decision that would be "optimal", but by doing the first action that is sufficiently satisfactory in relevance. They behave like that for a lot of reasons, but notably because they want to be as quick as possible on the web, and because the cost of being wrong is very low most of the time - even if you make the wrong decision on a website, chances are that you are just a "return" or "cancel" button away from canceling your last action. -(ref:scanningcap) How we design a web page versus how a user will really scan it. -From [@stevekrug2014]. +(ref:scanningcap) How we design a web page versus how a user will really scan it. From [@stevekrug2014]. + ```{r 06-ux-matters-1, echo=FALSE, fig.cap="(ref:scanningcap)", out.width="100%"} knitr::include_graphics("img/scanning.png") diff --git a/14-when_optimize.Rmd b/14-when_optimize.Rmd index c44f6170..e36b7a9a 100644 --- a/14-when_optimize.Rmd +++ b/14-when_optimize.Rmd @@ -597,9 +597,11 @@ Here is what it can look like inside a `Dockerfile` (Note that you will need to FROM rocker/shiny-verse:3.6.3 - RUN apt-get -y install curl RUN curl -sL \ + RUN apt-get -y install curl + RUN curl -sL \ <https://deb.nodesource.com/setup_14.x> \ - | bash - RUN apt-get install -y nodejs + | bash - + RUN apt-get install -y nodejs RUN Rscript -e 'remotes::install_github("colinfay/minifyr")' RUN Rscript -e 'remotes::install_cran("cicerone")' diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 447f69a4..f98da4d7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,3 +24,51 @@ There are two ways to contribute to the book: + Add your name in the Acknowledgment section in the introduction. + If you want to contribute written content, you might want to open an issue first so that we can discuss the topic first. + +## Building + +### Build the book locally with existing cache + +This requires Docker, Node and multiple dependencies installed using {renv}. +By default, this will use the cache to restore outputs. + +*hexmake* +```sh +docker pull colinfay/hexmake +``` + +*minifyr* +```sh +sudo apt-get -y install curl +sudo apt-get install -y nodejs + +Rscript -e 'remotes::install_github("colinfay/minifyr")' +Rscript -e 'remotes::install_cran("cicerone")' +# Verify it works +Rscript -e 'library(minifyr); + minifyr_npm_install(TRUE); + minify_package_js("cicerone", minifyr_js_uglify)' +``` + +Then you can build it in a Terminal +```sh +Rscript prep.R +Rscript -e 'bookdown::render_book("index.Rmd")' +Rscript -e 'browseURL("_site/index.html")' +``` + +### Update the list of dependencies in DESCRIPTION + +```sh +Rscript -e 'source("before-build.R")' +``` + +### Update versions of packages in {renv} + +```sh +Rscript -e 'renv::snapshot()' +``` + +### Recreate datasets + +Run the content of 'render_all.R' diff --git a/DESCRIPTION b/DESCRIPTION index bccb795f..5e76fc39 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -28,9 +28,9 @@ Authors@R: Description: Open source book on R for reproducible, robust and maintainable Shiny applications for production. License: MIT + file LICENSE -URL: https://github.com/ThinkR-open/building-shiny-apps-workflow +URL: https://github.com/ThinkR-open/engineering-shiny-book BugReports: - https://github.com/ThinkR-open/building-shiny-apps-workflow/issues + https://github.com/ThinkR-open/engineering-shiny-book/issues Depends: bookdown (>= 0.18) Imports: @@ -39,6 +39,7 @@ Imports: bank (>= 0.0.0.9000), bench (>= 1.1.1), bs4Dash (>= 0.5.0), + bslib, bubble (>= 0.0.0.9003), chromote (>= 0.0.0.9001), cli (>= 2.0.2), @@ -58,6 +59,7 @@ Imports: dichromat (>= 2.0.0), dockerfiler (>= 0.1.3), dockerstats (>= 0.0.0.9000), + downlit, dplyr (>= 1.0.2), DT (>= 0.15), fakir (>= 0.2.0), diff --git a/_bookdown.yml b/_bookdown.yml index c6dc4789..ed2ecbc8 100644 --- a/_bookdown.yml +++ b/_bookdown.yml @@ -1,6 +1,7 @@ book_filename: engineering-production-grade-shiny-apps clean: [packages.bib, bookdown.bbl] delete_merged_file: yes +repo: https://github.com/ThinkR-open/engineering-shiny-book language: label: fig: "FIGURE " diff --git a/_output.yml b/_output.yml index 5e686c45..daec3a34 100644 --- a/_output.yml +++ b/_output.yml @@ -1,5 +1,5 @@ -bookdown::gitbook: - css: [css/style.css, css/thinkr.css, css/style_gitbook.css] +bookdown::bs4_book: + css: [css/style.css, css/style_gitbook.css] toc_depth: 3 config: toc: @@ -17,6 +17,11 @@ bookdown::gitbook: includes: 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/before-build.R b/before-build.R index af89373f..ef1d6486 100644 --- a/before-build.R +++ b/before-build.R @@ -28,7 +28,7 @@ paks <- c( "tidymodules", "shinyjs", "htmlwidgets", "hunspell", "rhub", "spelling", "tufte", "uuid", "attachment", "remotes", "usethis", "namer", "desc", "spelling", "tufte", - "dockerstats", "spelling", "tidymodules", "bank" + "dockerstats", "spelling", "tidymodules", "bank", "downlit", "bslib" ) paks <- unique(paks) diff --git a/css/style_gitbook.css b/css/style_gitbook.css index 1d65af18..48385256 100644 --- a/css/style_gitbook.css +++ b/css/style_gitbook.css @@ -34,7 +34,7 @@ /* Document formatting*/ body { font-family: "Noto Sans", sans-serif; - font-size: 1.5rem; + /* font-size: 1.5rem; */ text-align: justify; } @@ -78,10 +78,11 @@ h3 { text-align: center; } -.book .book-body .page-wrapper .page-inner section.normal a { +#content a, .book .book-body .page-wrapper .page-inner section.normal a { color: #DE633C; } + /* thinkr.css .container-fluid.main-container { margin-top: 80px; @@ -114,6 +115,9 @@ h1 { h2 { color: #15b7d6; } +.sidebar h2 { + color: black; +} /* Footer with logo */ footer { diff --git a/gitbook-footer-thinkr.html b/gitbook-footer-thinkr.html index 2ab998b7..b5ca8efc 100644 --- a/gitbook-footer-thinkr.html +++ b/gitbook-footer-thinkr.html @@ -1,6 +1,6 @@ <hr/> <footer> -<a href="rtask.thinkr.fr"><img src="img/logo400_129.png" alt="ThinkR Website"/></a> +<a href="https://rtask.thinkr.fr"><img src="img/logo400_129.png" alt="ThinkR Website"/></a> <!--https://yihui.org/en/2018/09/target-blank/--> <script> (function() { diff --git a/index.Rmd b/index.Rmd index 0c19eb8b..083efb80 100644 --- a/index.Rmd +++ b/index.Rmd @@ -1,6 +1,6 @@ --- title: "Engineering Production-Grade Shiny Apps" -author: "Colin Fay, Sébastien Rochette, Vincent Guyader, Cervan Girard" +author: ["Colin Fay", "Sébastien Rochette", "Vincent Guyader", "Cervan Girard"] date: "`r Sys.Date()`" documentclass: krantz lof: yes @@ -13,7 +13,7 @@ colorlinks: yes site: bookdown::bookdown_site description: "A book about engineering shiny application that will later be sent to production. This book cover project management, structuring your project, building a solid testing suite, and optimizing your codebase. We describe in this book a specific workflow: design, prototype, build, strengthen and deploy." favicon: img/favicon.ico -github-repo: ThinkR-open/building-shiny-apps-workflow +github-repo: ThinkR-open/engineering-shiny-book graphics: yes nocite: '@*' cover-image: https://raw.githubusercontent.com/ThinkR-open/engineering-shiny-book/master/img/engineering-shiny.jpg @@ -59,14 +59,8 @@ options(width = 55) # Introduction {-} -<style> -img.left { -float: left; -margin-right: 1em; -} -</style> +<img src="img/engineering-shiny.jpg" width="300" align="right" alt="" class="cover" /> Welcome to "Engineering Production-Grade Shiny Apps" by [Colin Fay](https://colinfay.me/), [Sébastien Rochette](statnmap.com), [Vincent Guyader](https://rtask.thinkr.fr/consultants-r-experts/vincent-guyader/) and [Cervan Girard](https://rtask.thinkr.fr/consultants-r-experts/cervan-girard). -<img src="img/engineering-shiny.jpg" class = "left" width = "300px"> `r if (knitr::is_html_output()) ' This book will soon be available in print, published in the [R Series](https://www.crcpress.com/go/the-r-series) by Chapman & Hall. @@ -225,7 +219,7 @@ means that the package will be installed from GitHub, and that you can use the ` ## Want to help? {-} Any feedback on the book is very welcome. -Feel free to [open an issue](https://github.com/ThinkR-open/building-shiny-apps-workflow/issues), or to make a Pull Request if you spot a typo. +Feel free to [open an issue](https://github.com/ThinkR-open/engineering-shiny-book/issues), or to make a Pull Request if you spot a typo. ## Other resources {-} @@ -247,7 +241,7 @@ You can also find more resources in the bibliography. + [Shiny in production: Principles, practices, and tools](https://resources.rstudio.com/rstudio-conf-2019/shiny-in-production-principles-practices-and-tools-joe-cheng) + [Shiny in Production](https://kellobri.github.io/shiny-prod-book/) -Feel free to [suggest a resource](https://github.com/ThinkR-open/building-shiny-apps-workflow/issues)! +Feel free to [suggest a resource](https://github.com/ThinkR-open/engineering-shiny-book/issues)! ## Acknowledgments {-} diff --git a/prep.R b/prep.R index 4e2f30c9..16a6ef54 100644 --- a/prep.R +++ b/prep.R @@ -1,5 +1,8 @@ # To do locally on Colin's computer, thanks options(repos = c(REPO_NAME = "https://packagemanager.rstudio.com/all/latest")) +renv::install("r-lib/fastmap") +renv::install("rstudio/htmltools") +renv::install("bookdown") renv::restore() remotes::install_local(Ncpus = 4, upgrade = "never", force = TRUE) if (!file.exists("packages.bib")){ diff --git a/renv.lock b/renv.lock index 2985d57e..28a02fc7 100644 --- a/renv.lock +++ b/renv.lock @@ -1,6 +1,6 @@ { "R": { - "Version": "3.6.1", + "Version": "4.1.1", "Repositories": [ { "Name": "REPO_NAME", @@ -9,14 +9,14 @@ ] }, "Bioconductor": { - "Version": "3.10" + "Version": "3.13" }, "Packages": { "AsioHeaders": { "Package": "AsioHeaders", "Version": "1.12.2-1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "a631d045d5d2cf9bc01421b9f6a25abc" }, "BH": { @@ -30,70 +30,70 @@ "Package": "BiocManager", "Version": "1.30.10", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "db75371846625725e221470b310da1d5" }, "DBI": { "Package": "DBI", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "4744be45519d675af66c28478720fce5" }, "DT": { "Package": "DT", "Version": "0.15", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "85738c69035e67ec4b484a5e02640ef6" }, "KernSmooth": { "Package": "KernSmooth", "Version": "2.23-17", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "bbff70c8c0357b5b88238c83f680fcd3" }, "MASS": { "Package": "MASS", "Version": "7.3-51.6", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "1dad32ac9dbd8057167b2979fb932ff7" }, "Matrix": { "Package": "Matrix", "Version": "1.2-18", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "08588806cba69f04797dab50627428ed" }, "R.cache": { "Package": "R.cache", "Version": "0.14.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "1ca02d43e1a4d49e616bd23bb39b17e6" }, "R.methodsS3": { "Package": "R.methodsS3", "Version": "1.8.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "23822a838096ceb132e5041c9a68c3ef" }, "R.oo": { "Package": "R.oo", "Version": "1.23.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6be65e89d25f79fb4d147d65e19601e8" }, "R.utils": { "Package": "R.utils", "Version": "2.9.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "63cdbbf467a00d0ed2aa3391f4918d6e" }, "R6": { @@ -114,7 +114,7 @@ "Package": "RSQLite", "Version": "2.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "2e813101e637bfd423f763d20350ed3d" }, "Rcpp": { @@ -128,7 +128,7 @@ "Package": "RcppSimdJson", "Version": "0.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "e87e7a3d4b9785c3f2e110756ec1d0d4" }, "askpass": { @@ -149,7 +149,7 @@ "Package": "attachment", "Version": "0.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9f87673bfca2344df71186f5e41be796" }, "attempt": { @@ -163,21 +163,33 @@ "Package": "backports", "Version": "1.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "fb0efa7042b45dac543dd3995a6dac0b" }, + "bank": { + "Package": "bank", + "Version": "0.0.0.9000", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "bank", + "RemoteUsername": "thinkr-open", + "RemoteRef": "HEAD", + "RemoteSha": "f708655388d51d3b1a3cb8ecd2cc3172414e49b7", + "Hash": "17671d59443d27ceae9a6cda621be174" + }, "base64enc": { "Package": "base64enc", "Version": "0.1-3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "543776ae6848fde2f48ff3816d0628bc" }, "beeswarm": { "Package": "beeswarm", "Version": "0.2.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "dc538ec663e38888807ef3034489403d" }, "bench": { @@ -196,14 +208,14 @@ "Package": "bit", "Version": "1.1-15.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "eb6c52d8cc44463085a4cde1c63df163" }, "bit64": { "Package": "bit64", "Version": "0.9-7", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "3338d4a9b1352f5a613e2bdcefe784ea" }, "blob": { @@ -215,10 +227,10 @@ }, "bookdown": { "Package": "bookdown", - "Version": "0.18", + "Version": "0.24", "Source": "Repository", - "Repository": "CRAN", - "Hash": "72e9c52caf3f7aacb4e368b75f6ec72a" + "Repository": "RSPM", + "Hash": "3837766a1e1b527af25fa3e2d12a2800" }, "brew": { "Package": "brew", @@ -231,23 +243,30 @@ "Package": "brio", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "570a24963009b9cce0869a0463c83580" }, "broom": { "Package": "broom", "Version": "0.7.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b00000a87b8a4a1e8a8fc413c1dbad03" }, "bs4Dash": { "Package": "bs4Dash", "Version": "0.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9f36dfae17465b995101258e4016e8f8" }, + "bslib": { + "Package": "bslib", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "074ebc936dbcecd7115ed8083643b550" + }, "bubble": { "Package": "bubble", "Version": "0.0.0.9003", @@ -264,14 +283,14 @@ "Package": "callr", "Version": "3.5.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b7d7f1e926dfcd57c74ce93f5c048e80" }, "cellranger": { "Package": "cellranger", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f61dbaec772ccd2e17705c1e872e9e7c" }, "charlatan": { @@ -302,14 +321,14 @@ "Package": "cicerone", "Version": "1.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9c24ab6daafa8887d50359d18a5a172d" }, "class": { "Package": "class", "Version": "7.3-17", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9267f5dab59a4ef44229858a142bded1" }, "classInt": { @@ -321,23 +340,23 @@ }, "cli": { "Package": "cli", - "Version": "2.2.0", + "Version": "3.0.1", "Source": "Repository", "Repository": "RSPM", - "Hash": "3ef298932294b775fa0a3eeaa3a645b0" + "Hash": "e3ae5d68dea0c55a12ea12a9fda02e61" }, "clipr": { "Package": "clipr", "Version": "0.7.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "08cf4045c149a0f0eaf405324c7495bd" }, "clisymbols": { "Package": "clisymbols", "Version": "1.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "96c01552bfd5661b9bbdefbc762f4bcd" }, "cloc": { @@ -356,7 +375,7 @@ "Package": "codetools", "Version": "0.2-16", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "89cf4b8207269ccf82fbeb6473fd662b" }, "colorspace": { @@ -370,7 +389,7 @@ "Package": "colourvalues", "Version": "0.3.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "eec3f6df8e50ddc32365012bff8c00f0" }, "commonmark": { @@ -384,14 +403,14 @@ "Package": "config", "Version": "0.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "76268942467fa8ba171e9aa34203ee2a" }, "covr": { "Package": "covr", "Version": "3.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "cbc6df1ef6ee576f844f973c1fc04ab4" }, "covrpage": { @@ -429,7 +448,7 @@ "Package": "crosstalk", "Version": "1.1.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ae55f5d7c02f0ab43c58dd050694f2b4" }, "crrri": { @@ -448,14 +467,14 @@ "Package": "crrry", "Version": "0.0.0.9001", "Source": "GitHub", - "Remotes": "rlesur/crrri", "RemoteType": "github", + "Remotes": "rlesur/crrri", "RemoteHost": "api.github.com", "RemoteRepo": "crrry", "RemoteUsername": "colinfay", "RemoteRef": "HEAD", "RemoteSha": "cb56e7656ec0d231c2aeccba5bf66180c33ccb50", - "Hash": "bc815d7766e5751b6aaeaf2c37d9e6ca" + "Hash": "94ebfc10a9cf2e0467221d0363111fdb" }, "curl": { "Package": "curl", @@ -468,28 +487,28 @@ "Package": "cyclocomp", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "53cbed70a2f7472d48fb6aef08442f25" }, "data.table": { "Package": "data.table", "Version": "1.12.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "cd711af60c47207a776213a368626369" }, "dbplyr": { "Package": "dbplyr", "Version": "1.4.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "81ae261735c247d9551126462db5a4b5" }, "dccvalidator": { "Package": "dccvalidator", "Version": "0.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "62f5331dd73221a08f287d3703534ee3" }, "debugme": { @@ -510,7 +529,7 @@ "Package": "devtools", "Version": "2.3.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "d55dae3aa077e25128115a81e974f318" }, "dichromat": { @@ -524,14 +543,14 @@ "Package": "diffobj", "Version": "0.2.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "17e9db86f01ff49ee4d70877b0997dfb" }, "digest": { "Package": "digest", "Version": "0.6.27", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "a0cbe758a531d054b537d16dff4d58a1" }, "dockerfiler": { @@ -553,6 +572,13 @@ "RemoteSha": "2f15876a10c51d80918ab06df318c111202927b9", "Hash": "e29b06f2666893df3a068059a19d1cb2" }, + "downlit": { + "Package": "downlit", + "Version": "0.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "f24f1e44320a978c03050b8403a83793" + }, "dplyr": { "Package": "dplyr", "Version": "1.0.2", @@ -571,7 +597,7 @@ "Package": "e1071", "Version": "1.7-3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "728e85416ffc90743054c1ac04486d69" }, "ellipsis": { @@ -585,7 +611,7 @@ "Package": "evaluate", "Version": "0.14", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ec8ca05cffcc70569eaaad8469d2a3a7" }, "fakir": { @@ -616,35 +642,30 @@ }, "fastmap": { "Package": "fastmap", - "Version": "1.0.1", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "fastmap", - "RemoteUsername": "r-lib", - "RemoteRef": "master", - "RemoteSha": "e7bd985fe44815259c84657b5e5cef2915c2efeb", - "Hash": "533af0685c97d7a7152116593495ef8b" + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "77bd60a6157420d4ffa93b27cf6a58b8" }, "forcats": { "Package": "forcats", "Version": "0.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "1cb4279e697650f0bd78cd3601ee7576" }, "foreign": { "Package": "foreign", "Version": "0.8-76", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "649b9c7a979d50d869578c73fed072cd" }, "fs": { "Package": "fs", "Version": "1.4.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "780713bd2f53156fae001443dcdbdcd5" }, "fullPage": { @@ -663,7 +684,7 @@ "Package": "future", "Version": "1.17.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "71c119f236429d7b19fd29229b013cba" }, "gargoyle": { @@ -682,7 +703,7 @@ "Package": "gdtools", "Version": "0.2.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "38f4026c0d09edb3a4474685cef68342" }, "generics": { @@ -696,62 +717,63 @@ "Package": "geojsonsf", "Version": "1.3.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "22149e0e0ea1cb4725b15d05ee6ed01f" }, "getPass": { "Package": "getPass", "Version": "0.2-2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "07a91f99e56951818ab911366db77700" }, "ggbeeswarm": { "Package": "ggbeeswarm", "Version": "0.6.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "dd68b9b215b2d3119603549a794003c3" }, "ggimage": { "Package": "ggimage", "Version": "0.2.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "7237b654c1fb1fc33cab107cebd7398f" }, "ggplot2": { "Package": "ggplot2", "Version": "3.3.5", "Source": "Repository", - "Repository": "CRAN" + "Repository": "CRAN", + "Hash": "d7566c471c7b17e095dd023b9ef155ad" }, "ggplotify": { "Package": "ggplotify", "Version": "0.0.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "01f6ad9ce2c4a474974dac7482e4c19f" }, "gh": { "Package": "gh", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "89ea5998938d1ad55f035c8a86f96b74" }, "git2r": { "Package": "git2r", "Version": "0.27.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "531a82d1beed1f545beb25f4f5945bf7" }, "globals": { "Package": "globals", "Version": "0.12.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "e9e529fb7a579ad4b4ff65e052e76ed8" }, "glouton": { @@ -770,7 +792,7 @@ "Package": "glue", "Version": "1.4.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6efd734b14c6471cfe443345f3e35e29" }, "golem": { @@ -808,7 +830,7 @@ "Package": "gridGraphics", "Version": "0.5-0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "83c2c0812de7b6e04c2ff471b4d7f920" }, "gtable": { @@ -822,36 +844,36 @@ "Package": "haven", "Version": "2.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "e3f662e125e9fdffd1ee4e94baea3451" }, "here": { "Package": "here", "Version": "0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "2c0406b8e0a4c3516ab37be62da74e3c" }, "hexSticker": { "Package": "hexSticker", "Version": "0.4.6", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f22506e59e7e6647417ffe2e77c156ea" }, "hexbin": { "Package": "hexbin", "Version": "1.28.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "3d59212f2814d65dff517e6899813c58" }, "hexmake": { "Package": "hexmake", "Version": "0.1.3", "Source": "GitHub", - "Remotes": "JohnCoene/cicerone", "RemoteType": "github", + "Remotes": "JohnCoene/cicerone", "RemoteHost": "api.github.com", "RemoteRepo": "hexmake", "RemoteUsername": "colinfay", @@ -863,7 +885,7 @@ "Package": "highr", "Version": "0.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "4dc5bb88961e347a0f4d8aad597cbfac" }, "hms": { @@ -875,21 +897,16 @@ }, "htmltools": { "Package": "htmltools", - "Version": "0.5.0.9002", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "htmltools", - "RemoteUsername": "rstudio", - "RemoteRef": "HEAD", - "RemoteSha": "07412132fc3a621493b9a89b9f95c1b6a2d1fb95", - "Hash": "9b2aade69c2d27653525dc925eb4df37" + "Version": "0.5.2", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "526c484233f42522278ab06fb185cb26" }, "htmlwidgets": { "Package": "htmlwidgets", "Version": "1.5.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "0aaf56b7960bb066646e1868cadcaf07" }, "httpuv": { @@ -903,35 +920,42 @@ "Package": "httr", "Version": "1.4.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "7146fea4685b4252ebf478978c75f597" }, "hunspell": { "Package": "hunspell", "Version": "3.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "71e7853d60b6b4ba891d62ede21752e9" }, "ini": { "Package": "ini", "Version": "0.3.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6154ec2223172bce8162d4153cda21f7" }, "isoband": { "Package": "isoband", "Version": "0.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9b2f7cf1899f583a36d367702ecf49a3" }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "5aab57a3bd297eee1c1d862735972182" + }, "jsonify": { "Package": "jsonify", "Version": "1.1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "5b6d70fc92e471ba0d10f9cb6f4ce19a" }, "jsonlite": { @@ -943,10 +967,10 @@ }, "knitr": { "Package": "knitr", - "Version": "1.30", + "Version": "1.34", "Source": "Repository", - "Repository": "CRAN", - "Hash": "eed7ee0d02eee88d53881cdc92457c62" + "Repository": "RSPM", + "Hash": "aa958054ac6f0360926bb952ea302f0f" }, "labeling": { "Package": "labeling", @@ -966,7 +990,7 @@ "Package": "lattice", "Version": "0.20-41", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "fbd9285028b0263d76d18c95ae51a53d" }, "lazyeval": { @@ -992,7 +1016,7 @@ "Package": "lintr", "Version": "2.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "023cecbdc0a32f86ad3cb1734c018d2e" }, "listenv": { @@ -1018,14 +1042,14 @@ "Package": "lubridate", "Version": "1.7.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6c04c31012c1be39783bebbbfc27b3a3" }, "magick": { "Package": "magick", "Version": "2.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "c84d4acbc7da7638dbd0076d5b069330" }, "magrittr": { @@ -1046,7 +1070,7 @@ "Package": "matlab", "Version": "1.0.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "7e17d4b237b82050ed00dedd121f439c" }, "memoise": { @@ -1065,7 +1089,7 @@ "Package": "mgcv", "Version": "1.8-31", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "4bb7e0c4f3557583e1e8d3c9ffb8ba5c" }, "mime": { @@ -1098,14 +1122,14 @@ "Package": "modelr", "Version": "0.1.7", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "5a10316936c16bb3b341f687c9ac0fff" }, "mongolite": { "Package": "mongolite", "Version": "2.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9c67ac4d839defc4217022876a10fc7a" }, "munsell": { @@ -1119,7 +1143,7 @@ "Package": "namer", "Version": "0.1.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "21dcaa2b67617940705163ef5ded3708" }, "nessy": { @@ -1138,22 +1162,22 @@ "Package": "nlme", "Version": "3.1-147", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "dd4a1423f1472a2a8e05dd2c8945c3af" }, "openssl": { "Package": "openssl", "Version": "1.4.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "49f7258fd86ebeaea1df24d9ded00478" }, "packageMetrics2": { "Package": "packageMetrics2", "Version": "1.0.1.9000", "Source": "GitHub", - "Remotes": "MangoTheCat/callr, MangoTheCat/goodpractice,\nMangoTheCat/remotes", "RemoteType": "github", + "Remotes": "MangoTheCat/callr, MangoTheCat/goodpractice, MangoTheCat/remotes", "RemoteHost": "api.github.com", "RemoteRepo": "packageMetrics2", "RemoteUsername": "mangothecat", @@ -1165,42 +1189,42 @@ "Package": "packrat", "Version": "0.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "2ebd34a38f4248281096cc723535b66d" }, "pagedown": { "Package": "pagedown", "Version": "0.10", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "3bd736602cd52200b958e6d06c077fe1" }, "parsedate": { "Package": "parsedate", "Version": "1.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9ab1426429ad716b42088a0fd8e909ee" }, "pillar": { "Package": "pillar", "Version": "1.4.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b01d2494d0e2b6b02fae40e1543fbcb0" }, "pingr": { "Package": "pingr", "Version": "2.0.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b5199dfece367f035f51a985b7a11cb3" }, "pkgbuild": { "Package": "pkgbuild", "Version": "1.0.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "8d8b5e29223aabb829246397299f0592" }, "pkgconfig": { @@ -1221,14 +1245,14 @@ "Package": "plogr", "Version": "0.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "09eb987710984fc2905c7129c7d85e65" }, "plotly": { "Package": "plotly", "Version": "4.9.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b08edf378e0e38959a6983e3d5902795" }, "png": { @@ -1263,14 +1287,14 @@ "Package": "profmem", "Version": "0.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "2837ca8769773fc0f4a0af8ce015d348" }, "profvis": { "Package": "profvis", "Version": "0.3.6", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "61d3d30ce122b6e55460a849d263e496" }, "progress": { @@ -1291,7 +1315,7 @@ "Package": "ps", "Version": "1.4.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f5d7d94cc097aa9dade988e3e6715067" }, "purrr": { @@ -1312,7 +1336,7 @@ "Package": "rappdirs", "Version": "0.3.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "8c8298583adbbe76f3c2220eef71bebc" }, "rcmdcheck": { @@ -1326,35 +1350,35 @@ "Package": "reactR", "Version": "0.4.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "5818303f1c8bd90daff8ff8c97c780d1" }, "reactable": { "Package": "reactable", "Version": "0.1.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "d9162cd2c6170ed505b7b87b23d48e20" }, "readr": { "Package": "readr", "Version": "1.3.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "af8ab99cd936773a148963905736907b" }, "readxl": { "Package": "readxl", "Version": "1.3.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "63537c483c2dbec8d9e3183b3735254a" }, "rematch": { "Package": "rematch", "Version": "1.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "c66b930d20bb6d858cd18e1cebcfae5c" }, "rematch2": { @@ -1382,14 +1406,14 @@ "Package": "repr", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "466aee1b69232becb73769daa894c171" }, "reprex": { "Package": "reprex", "Version": "0.3.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b06bfb3504cc8a4579fd5567646f745b" }, "resume": { @@ -1408,7 +1432,7 @@ "Package": "reticulate", "Version": "1.16", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "5db95d35ae4605b46cea66b6e3bcab3e" }, "rex": { @@ -1422,35 +1446,42 @@ "Package": "rhub", "Version": "1.1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "977cce19c029acc6d88a1c861f224819" }, + "rlang": { + "Package": "rlang", + "Version": "0.4.11", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "515f341d3affe0de9e4a7f762efb0456" + }, "rmarkdown": { "Package": "rmarkdown", - "Version": "2.5", + "Version": "2.11", "Source": "Repository", - "Repository": "CRAN", - "Hash": "20a0a94af9e8f7040510447763aab3e9" + "Repository": "RSPM", + "Hash": "320017b52d05a943981272b295750388" }, "roxygen2": { "Package": "roxygen2", "Version": "7.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f173062c04dc8e91d7376d914df6efee" }, "rprojroot": { "Package": "rprojroot", "Version": "1.3-2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f6a407ae5dd21f6f80a6708bbb6eb3ae" }, "rsconnect": { "Package": "rsconnect", "Version": "0.8.16", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "3924a1c20ce2479e89a08b0ca4c936c6" }, "rstudioapi": { @@ -1464,42 +1495,49 @@ "Package": "rvcheck", "Version": "0.1.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "11ebf2d3d4990e8bb9f28d5ab0c204fc" }, "rversions": { "Package": "rversions", "Version": "2.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "2aa84e83767ba93ee6415b439fa981d2" }, "rvest": { "Package": "rvest", "Version": "0.3.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6a20c2cdf133ebc7ac45888c9ccc052b" }, + "sass": { + "Package": "sass", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "50cf822feb64bb3977bda0b7091be623" + }, "scales": { "Package": "scales", "Version": "1.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "a1c68369c629ea3188d0676e37069c65" }, "selectr": { "Package": "selectr", "Version": "0.4-2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "3838071b66e0c566d55cc26bd6e27bf4" }, "servr": { "Package": "servr", "Version": "0.20", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "c98fc352524de67e12886775ba99081f" }, "sessioninfo": { @@ -1513,21 +1551,21 @@ "Package": "sever", "Version": "0.0.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "bcaf31f5974c527e3474021e5e3d3895" }, "sf": { "Package": "sf", "Version": "0.9-3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f16ad0ac903df6727dbfb2e30eafcc26" }, "sfheaders": { "Package": "sfheaders", "Version": "0.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "0daf332f569bde82b56326eb9e545cc8" }, "shinipsum": { @@ -1541,91 +1579,91 @@ "Package": "shiny", "Version": "1.5.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ee4ed72d7a5047d9e73cf922ad66e9c9" }, "shinyBS": { "Package": "shinyBS", "Version": "0.61", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f895dafd39733c4a70d425f605a832e7" }, "shinyFeedback": { "Package": "shinyFeedback", "Version": "0.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "fea371188ee6323f6994fa69b47c51a1" }, "shinyMobile": { "Package": "shinyMobile", "Version": "0.1.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "47e2d613d12a48b12cf89548c737c747" }, "shinyalert": { "Package": "shinyalert", "Version": "1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "9fdadeb9ff341144e7cd4e7d27068eab" }, "shinydashboard": { "Package": "shinydashboard", "Version": "0.7.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "133639dc106955eee4ffb8ec73edac37" }, "shinydashboardPlus": { "Package": "shinydashboardPlus", "Version": "0.7.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "7e3b01c98e487d003d7e189ceb8317cd" }, "shinyjs": { "Package": "shinyjs", "Version": "1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b40a5207b6624f6e2b8cdb50689cdb69" }, "shinyloadtest": { "Package": "shinyloadtest", "Version": "1.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "5eadb4e78ce2da545ffe29ac4770f90e" }, "shinytest": { "Package": "shinytest", "Version": "1.3.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "990715e35396c43714346cdd30359c3e" }, "showimage": { "Package": "showimage", "Version": "1.0.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "841927b226db842d24d9c288c99ed27b" }, "showtext": { "Package": "showtext", "Version": "0.7-1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "5108601787f5fe0a41feecf8cdb04387" }, "showtextdb": { "Package": "showtextdb", "Version": "2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "8e0df803ddce30dddcec4c4c09af8676" }, "skeleton": { @@ -1644,7 +1682,7 @@ "Package": "skimr", "Version": "2.1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "fa365cc94b8d11fd241dcc6bb5e03500" }, "snippr": { @@ -1670,28 +1708,28 @@ "Package": "spelling", "Version": "2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b3a5ecc3351f41eb30ef87f65cbff390" }, "stringi": { "Package": "stringi", "Version": "1.5.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "a063ebea753c92910a4cca7b18bc1f05" }, "stringr": { "Package": "stringr", "Version": "1.4.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "0759e6b6c0957edb1311028a49a35e76" }, "styler": { "Package": "styler", "Version": "1.3.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "60b23effde8d08a56a64ebeb92a32749" }, "subprocess": { @@ -1710,50 +1748,57 @@ "Package": "svglite", "Version": "1.2.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ed61a9516ba30e7ebe72855931007255" }, "sys": { "Package": "sys", "Version": "3.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "507f3116a38d37ad330a038b3be07b66" }, "sysfonts": { "Package": "sysfonts", "Version": "0.8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "dcae252f838195aaae0c5ac1b27a7545" }, "systemfonts": { "Package": "systemfonts", "Version": "0.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "b9cbe1031f93e8d06e36a330705c654f" }, "testthat": { "Package": "testthat", "Version": "3.0.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "13298cedd051cb7b8a8972d380b559a6" }, "tibble": { "Package": "tibble", "Version": "3.0.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "1c61e4cad000e03b1bd687db16a75926" }, + "tictoc": { + "Package": "tictoc", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "5acb66b0266ad1f0ebf7ffe1aa36ff4c" + }, "tidymodules": { "Package": "tidymodules", "Version": "0.1.1", "Source": "GitHub", - "Remotes": "dgrtwo/snippr@29c1813", "RemoteType": "github", + "Remotes": "dgrtwo/snippr@29c1813", "RemoteHost": "api.github.com", "RemoteRepo": "tidymodules", "RemoteUsername": "Novartis", @@ -1765,7 +1810,7 @@ "Package": "tidyr", "Version": "1.0.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "df860e8e4e1a1b454f18537c8bc96211" }, "tidyselect": { @@ -1791,35 +1836,35 @@ "Package": "tidyverse", "Version": "1.3.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "bd51be662f359fa99021f3d51e911490" }, "tinytex": { "Package": "tinytex", - "Version": "0.27", + "Version": "0.33", "Source": "Repository", - "Repository": "CRAN", - "Hash": "264b4a31d35bb6833566a7763356ab63" + "Repository": "RSPM", + "Hash": "6e0ad90ac5669e35d5456cb61b295acb" }, "tufte": { "Package": "tufte", "Version": "0.7", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "95767e628eb2fe3eaba2423a7271bef2" }, "units": { "Package": "units", "Version": "0.6-6", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "687aa5dfc4ec01ad4da86862a7e6a05b" }, "usethis": { "Package": "usethis", "Version": "1.6.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "c541a7aed5f7fb3b487406bf92842e34" }, "utf8": { @@ -1833,7 +1878,7 @@ "Package": "uuid", "Version": "0.1-4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "e4169eb989a5d03ccb6b628cad1b1b50" }, "vctrs": { @@ -1847,14 +1892,14 @@ "Package": "vipor", "Version": "0.4.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ea85683da7f2bfa63a98dc6416892591" }, "viridis": { "Package": "viridis", "Version": "0.5.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6f6b49e5b3b5ee5a6d0c28bf1b4b9eb3" }, "viridisLite": { @@ -1875,28 +1920,28 @@ "Package": "visdat", "Version": "0.5.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "f62b960320b18fdffb2f0f76bb65dbaf" }, "vroom": { "Package": "vroom", "Version": "1.2.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "0be0ae21e53285ae782143a076098fce" }, "waldo": { "Package": "waldo", "Version": "0.2.2", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "6aa53cb78ef07cfcd7bcee7435f1d1f5" }, "webdriver": { "Package": "webdriver", "Version": "1.0.5", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "966f2cee50cf95fdbce9c395187b2baf" }, "websocket": { @@ -1915,36 +1960,36 @@ "Package": "whereami", "Version": "0.1.9", "Source": "Repository", - "Repository": null, + "Repository": "RSPM", "Hash": "c06f41941f905d192241f1d4ed17d58b" }, "whisker": { "Package": "whisker", "Version": "0.4", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ca970b96d894e90397ed20637a0c1bbe" }, "whoami": { "Package": "whoami", "Version": "1.3.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "ef0f4d9b8f2cc2ebeccae1d725b8a023" }, "withr": { "Package": "withr", "Version": "2.3.0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "7307d79f58d1885b38c4f4f1a8cb19dd" }, "xfun": { "Package": "xfun", - "Version": "0.19", + "Version": "0.26", "Source": "Repository", - "Repository": "CRAN", - "Hash": "a42372606cb76f34da9d090326e9f955" + "Repository": "RSPM", + "Hash": "a270216f7ffda25e53298293046d1d05" }, "xml2": { "Package": "xml2", @@ -1957,7 +2002,7 @@ "Package": "xmlparsedata", "Version": "1.0.3", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "90d3cba62daa9f1e5313afef106f719d" }, "xopen": { @@ -1978,28 +2023,28 @@ "Package": "xts", "Version": "0.12-0", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "cae1f4b14c523f62b61276fb3962d4fb" }, "yaml": { "Package": "yaml", "Version": "2.2.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "2826c5d9efb0a88f657c7a679c7106db" }, "yesno": { "Package": "yesno", "Version": "0.1.1", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "032488bc948da5912c0844706e76a653" }, "zoo": { "Package": "zoo", "Version": "1.8-8", "Source": "Repository", - "Repository": "CRAN", + "Repository": "RSPM", "Hash": "c2ea03282caa1f6972dc84fc5bf671cc" } } From 91293d362765a11db437175555b7fb45e3b8bcbf Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sat, 25 Sep 2021 17:51:38 +0200 Subject: [PATCH 2/7] Allow Actions on PR --- .github/workflows/build_bookdown_pr.yml | 50 +++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/build_bookdown_pr.yml diff --git a/.github/workflows/build_bookdown_pr.yml b/.github/workflows/build_bookdown_pr.yml new file mode 100644 index 00000000..8428d732 --- /dev/null +++ b/.github/workflows/build_bookdown_pr.yml @@ -0,0 +1,50 @@ +on: + pull_request: + branches: + - master + +name: renderbookpr + +jobs: + bookdown: + + name: Render-Book + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + + - uses: r-lib/actions/setup-r@v1 + with: + crayon.enabled: 'FALSE' + r-version: '3.6.1' + + - 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-pandoc@v1 + + - name: Install tinytex + uses: r-lib/actions/setup-tinytex@master + + - 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: Before build + run: Rscript prep.R + + - name: Render Book + run: Rscript -e 'bookdown::render_book("index.Rmd")' From ae5b7442e341e665a618131cbbd3a76315d6be53 Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sat, 25 Sep 2021 18:10:20 +0200 Subject: [PATCH 3/7] GA artifact and no install_local --- .github/workflows/build_bookdown_pr.yml | 5 +++++ prep.R | 5 +---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_bookdown_pr.yml b/.github/workflows/build_bookdown_pr.yml index 8428d732..38463a76 100644 --- a/.github/workflows/build_bookdown_pr.yml +++ b/.github/workflows/build_bookdown_pr.yml @@ -48,3 +48,8 @@ jobs: - name: Render Book run: Rscript -e 'bookdown::render_book("index.Rmd")' + + - uses: actions/upload-artifact@v2 + with: + name: _site + path: _site/ diff --git a/prep.R b/prep.R index 16a6ef54..b524bdb6 100644 --- a/prep.R +++ b/prep.R @@ -1,10 +1,7 @@ # To do locally on Colin's computer, thanks options(repos = c(REPO_NAME = "https://packagemanager.rstudio.com/all/latest")) -renv::install("r-lib/fastmap") -renv::install("rstudio/htmltools") -renv::install("bookdown") renv::restore() -remotes::install_local(Ncpus = 4, upgrade = "never", force = TRUE) +# remotes::install_local(Ncpus = 4, upgrade = "never", force = TRUE) if (!file.exists("packages.bib")){ knitr::write_bib(c( desc::desc_get_deps()$package From 4421f398abf872383023c4349d191291927cf1b5 Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sat, 25 Sep 2021 23:34:24 +0200 Subject: [PATCH 4/7] golex without deps --- 01-big-shiny.Rmd | 3 ++- DESCRIPTION | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/01-big-shiny.Rmd b/01-big-shiny.Rmd index 74450984..4cdd1019 100644 --- a/01-big-shiny.Rmd +++ b/01-big-shiny.Rmd @@ -346,7 +346,8 @@ While developing your application, the one you will be interested in is `cycloco Here is, for example, the cyclomatic complexity of the default golem template (assuming it is located in a `golex/` subdirectory): ```{r 01-big-shiny-13, include = FALSE} -remotes::install_local("golex", upgrade = "never") +# Assume dependencies already installed to avoid GitHub rate limit +remotes::install_local("golex", upgrade = "never", dependencies = FALSE) if (!dir.exists("golex")){ source("golembuild.R") } diff --git a/DESCRIPTION b/DESCRIPTION index 5e76fc39..a3f818d1 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -39,7 +39,7 @@ Imports: bank (>= 0.0.0.9000), bench (>= 1.1.1), bs4Dash (>= 0.5.0), - bslib, + bslib (>= 0.2.5.1), bubble (>= 0.0.0.9003), chromote (>= 0.0.0.9001), cli (>= 2.0.2), @@ -59,7 +59,7 @@ Imports: dichromat (>= 2.0.0), dockerfiler (>= 0.1.3), dockerstats (>= 0.0.0.9000), - downlit, + downlit (>= 0.2.1), dplyr (>= 1.0.2), DT (>= 0.15), fakir (>= 0.2.0), From a7bf6884170de6c982c0e1323b689735c0c8b621 Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sat, 25 Sep 2021 23:41:27 +0200 Subject: [PATCH 5/7] put back deps and set github_pat --- .github/workflows/build_bookdown_pr.yml | 6 +++++- 01-big-shiny.Rmd | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_bookdown_pr.yml b/.github/workflows/build_bookdown_pr.yml index 38463a76..4d9a6825 100644 --- a/.github/workflows/build_bookdown_pr.yml +++ b/.github/workflows/build_bookdown_pr.yml @@ -45,10 +45,14 @@ jobs: - name: Before build run: Rscript prep.R + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - name: Render Book run: Rscript -e 'bookdown::render_book("index.Rmd")' - + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + - uses: actions/upload-artifact@v2 with: name: _site diff --git a/01-big-shiny.Rmd b/01-big-shiny.Rmd index 4cdd1019..74450984 100644 --- a/01-big-shiny.Rmd +++ b/01-big-shiny.Rmd @@ -346,8 +346,7 @@ While developing your application, the one you will be interested in is `cycloco Here is, for example, the cyclomatic complexity of the default golem template (assuming it is located in a `golex/` subdirectory): ```{r 01-big-shiny-13, include = FALSE} -# Assume dependencies already installed to avoid GitHub rate limit -remotes::install_local("golex", upgrade = "never", dependencies = FALSE) +remotes::install_local("golex", upgrade = "never") if (!dir.exists("golex")){ source("golembuild.R") } From 98938a718c86519608bcc02033aa517c96d291b6 Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sat, 25 Sep 2021 23:46:09 +0200 Subject: [PATCH 6/7] global env in CI --- .github/workflows/build_bookdown_pr.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build_bookdown_pr.yml b/.github/workflows/build_bookdown_pr.yml index 4d9a6825..bee0c93a 100644 --- a/.github/workflows/build_bookdown_pr.yml +++ b/.github/workflows/build_bookdown_pr.yml @@ -3,6 +3,9 @@ on: branches: - master +env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + name: renderbookpr jobs: @@ -45,13 +48,9 @@ jobs: - name: Before build run: Rscript prep.R - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - name: Render Book run: Rscript -e 'bookdown::render_book("index.Rmd")' - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - uses: actions/upload-artifact@v2 with: From 9c86853f34a54d59496fa7d1f50e1b5cb4c2002b Mon Sep 17 00:00:00 2001 From: statnmap <sebastien@thinkr.fr> Date: Sun, 26 Sep 2021 08:31:22 +0200 Subject: [PATCH 7/7] Add Github_pat to deploy_bookdown Action --- .github/workflows/deploy_bookdown.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy_bookdown.yml b/.github/workflows/deploy_bookdown.yml index fc668ede..7ca95b81 100644 --- a/.github/workflows/deploy_bookdown.yml +++ b/.github/workflows/deploy_bookdown.yml @@ -3,6 +3,9 @@ on: branches: - master +env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + name: renderbook jobs: @@ -53,7 +56,7 @@ jobs: run: Rscript prep.R - name: Render Book - run: docker pull colinfay/hexmake && Rscript -e 'bookdown::render_book("index.Rmd")' + run: Rscript -e 'bookdown::render_book("index.Rmd")' - name: Build redirect run: Rscript redirect.R