From fbb621df1b86cc96af23e574ad291628382459e5 Mon Sep 17 00:00:00 2001 From: DivadNojnarg Date: Thu, 6 Jun 2024 22:25:38 +0200 Subject: [PATCH] cleanup Posit Connect workflow --- .github/workflows/ci.yml | 24 +- .github/workflows/deploy-app.yml | 47 -- deploy/deploy-workflow.R | 189 ----- inst/examples/deploy-deps.R | 5 - inst/examples/renv.lock | 1352 ------------------------------ renv.lock | 1 - 6 files changed, 6 insertions(+), 1612 deletions(-) delete mode 100644 .github/workflows/deploy-app.yml delete mode 100644 deploy/deploy-workflow.R delete mode 100644 inst/examples/deploy-deps.R delete mode 100644 inst/examples/renv.lock delete mode 120000 renv.lock diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecbca443..5e91d58c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,8 +8,14 @@ name: ci jobs: + lint: + + uses: ./.github/workflows/lint.yml + smoke: + needs: lint + runs-on: ubuntu-latest env: @@ -52,24 +58,6 @@ jobs: secrets: inherit - lint: - - needs: smoke - - uses: ./.github/workflows/lint.yml - - secrets: inherit - - deploy: - - needs: smoke - - if: github.event_name != 'pull_request' - - uses: ./.github/workflows/deploy-app.yml - - secrets: inherit - pkgdown: needs: smoke diff --git a/.github/workflows/deploy-app.yml b/.github/workflows/deploy-app.yml deleted file mode 100644 index 1f71422b..00000000 --- a/.github/workflows/deploy-app.yml +++ /dev/null @@ -1,47 +0,0 @@ -on: - workflow_call: - -name: deploy - -jobs: - - deploy: - - runs-on: ubuntu-latest - - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - CONNECT_USER: ${{ secrets.CONNECT_USER }} - CONNECT_API_KEY: ${{ secrets.CONNECT_API_KEY }} - CONNECT_SERVER: ${{ secrets.CONNECT_SERVER }} - - steps: - - uses: actions/checkout@v3 - - - uses: r-lib/actions/setup-pandoc@v2 - - - uses: r-lib/actions/setup-r@v2 - with: - use-public-rspm: true - - - uses: r-lib/actions/setup-renv@v2 - with: - # renv.lock is created inside inst/examples - # to capture all deps from all apps. - # We must create a symlink in the package root - # so packages are installed in the right location - # for the next step. - working-directory: "." - - - name: Deploy app - run: | - renv::status() - # Have to manually install blockr because - # it is ignored by renv restore, despite - # being in the lock file ... - # This will install the latest version from main branch. - renv::install("blockr-org/blockr") - source("deploy/deploy-workflow.R") - app_path <- "inst/examples/add-blocks" - deploy_app_rsc("blockr-demo", app_path) - shell: Rscript {0} diff --git a/deploy/deploy-workflow.R b/deploy/deploy-workflow.R deleted file mode 100644 index 79b90a30..00000000 --- a/deploy/deploy-workflow.R +++ /dev/null @@ -1,189 +0,0 @@ -add_connect_server <- function() { - if (!(Sys.getenv("CONNECT_SERVER") %in% rsconnect::servers()$url)) { - message("Adding server") - rsconnect::addServer( - url = Sys.getenv("CONNECT_SERVER"), - name = "rsc-prod" - ) - } -} - -cleanup_connect_user <- function() { - if (Sys.getenv("CONNECT_USER") %in% rsconnect::accounts(server = "rsc-prod")$name) { - message("Cleanup previous session ...") - rsconnect::removeAccount( - Sys.getenv("CONNECT_USER"), - "rsc-prod" - ) - message( - sprintf( - "Removed user: %s from server: %s", - Sys.getenv("CONNECT_USER"), "rsc-prod" - ) - ) - } -} - -register_connect_user <- function() { - message("Adding user") - rsconnect::connectApiUser( - account = Sys.getenv("CONNECT_USER"), - server = "rsc-prod", - apiKey = Sys.getenv("CONNECT_API_KEY") - ) -} - -allow_users_access <- function( - users = c( - #"david", - "nicolas", - "christoph" - ), - app_name -) { - # Get users and content from RSC client - rsc_client <- connectapi::connect() - rsc_content <- connectapi::get_content(rsc_client) - rsc_users <- connectapi::get_users(rsc_client, limit = Inf) - # Get users guids - users_guids <- rsc_users |> - dplyr::filter(username %in% users) |> - dplyr::pull(guid) - - # Get content guid - # Be careful if CONNECT_USER changes: in that case - # on would have to use connectapi::content_update_owner - # for each app to transfer ownership ... - # See the inst/utils/transfer-app-ownership.R - # that automates this process. - owner_guid <- rsc_users |> - dplyr::filter(username == Sys.getenv("CONNECT_USER")) |> - dplyr::pull(guid) - - content_guid <- rsc_content |> - dplyr::filter( - grepl(app_name, .data$name) & - owner_guid == owner_guid - ) |> - dplyr::pull(guid) - - # Content object (R6) necessary for - # connectapi::content_add_user and - # connectapi::set_vanity_url. This is different - # from the content tibble. - content_obj <- connectapi::content_item( - rsc_client, - content_guid - ) - - # Setting environment variables. - # Requires to setup env vars from GitLab CICD - #message("Setting environment variables ...") - #content_env <- connectapi::get_environment(content_obj) - #connectapi::set_environment_all( - # env = content_env, - # "ENV_VAR" = ..., - # "ENV_2" = Sys.getenv("..."), - # ... - #) - - # Update content access with API - lapply(seq_along(users), function(i) { - message( - sprintf( - "Adding user %s as viewer for %s", - users[[i]], - app_name - ) - ) - connectapi::content_add_user( - content_obj, - users_guids[[i]], - "owner" - ) - }) - - # Set custom url - message( - sprintf( - "To view the app, browse to: %s", - sprintf( - "%s%s", - Sys.getenv("CONNECT_SERVER"), - tolower(app_name) - ) - ) - ) - connectapi::set_vanity_url( - content = content_obj, - url = tolower(app_name) - ) -} - -# Required by CICD to deploy on dev, prod or a specific branch -deploy_app_rsc <- function(app_name, app_path) { - message(sprintf("Preparing to deploy %s", app_name)) - - # Required for R4.1.0 runner to avoid SSL issues - #Sys.setenv( - # http_proxy = "", - # https_proxy = "", - # no_proxy = "", - # noproxy = "" - #) - - # For SSL debugging - # options(rsconnect.http.verbose = TRUE) - - # Before going further you'll have to create some - # ENV variables from GitHub: - # CONNECT_API_KEY -> API key obtained from Posit Connect UI. - # CONNECT_SERVER -> https:// - # CONNECT_USER -> your connect ID, lower characters. - # Also a GITHUB_PAT just in case you need github. - - # Add server and connect to the account if necessary - # This MUST be done only once!!! - add_connect_server() - - # Cleanup previous sessions - cleanup_connect_user() - - # Register the user - register_connect_user() - - # Deploy! - app_name <- sub("\\.", "", app_name) - - tryCatch( - { - rsconnect::deployApp( - appDir = app_path, - appPrimaryDoc = NULL, - appName = app_name, - appTitle = app_name, - appId = NULL, - forceUpdate = TRUE, - logLevel = "verbose", - account = Sys.getenv("CONNECT_USER"), - server = "rsc-prod", - launch.browser = FALSE - ) - - message("App successfully deployed ...") - - # Adding extra users to user viewer list - # Viewer write should be enough - allow_users_access(app_name = app_name) - }, - error = function(e) { - message( - sprintf( - "\n---- Error deploying %s. Please review below ----\n", - app_name - ) - ) - stop(e$message) - } - ) -} diff --git a/inst/examples/deploy-deps.R b/inst/examples/deploy-deps.R deleted file mode 100644 index 9d7b1cec..00000000 --- a/inst/examples/deploy-deps.R +++ /dev/null @@ -1,5 +0,0 @@ -# This file is necessary so that -# renv is able to capture dependencies -# necessary for the deployment. -library(rsconnect) -library(connectapi) diff --git a/inst/examples/renv.lock b/inst/examples/renv.lock deleted file mode 100644 index c35f904a..00000000 --- a/inst/examples/renv.lock +++ /dev/null @@ -1,1352 +0,0 @@ -{ - "R": { - "Version": "4.3.1", - "Repositories": [ - { - "Name": "CRAN", - "URL": "https://packagemanager.posit.co/cran/latest" - } - ] - }, - "Packages": { - "DT": { - "Package": "DT", - "Version": "0.30", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "crosstalk", - "htmltools", - "htmlwidgets", - "httpuv", - "jquerylib", - "jsonlite", - "magrittr", - "promises" - ], - "Hash": "dffb4d94a00be1b4a4507e53ab95bd90" - }, - "MASS": { - "Package": "MASS", - "Version": "7.3-60", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats", - "utils" - ], - "Hash": "a56a6365b3fa73293ea8d084be0d9bb0" - }, - "Matrix": { - "Package": "Matrix", - "Version": "1.6-1.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "lattice", - "methods", - "stats", - "utils" - ], - "Hash": "1a00d4828f33a9d690806e98bd17150c" - }, - "R6": { - "Package": "R6", - "Version": "2.5.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "470851b6d5d0ac559e9d01bb352b4021" - }, - "RColorBrewer": { - "Package": "RColorBrewer", - "Version": "1.1-3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "45f0398006e83a5b10b72a90663d8d8c" - }, - "Rcpp": { - "Package": "Rcpp", - "Version": "1.0.11", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "methods", - "utils" - ], - "Hash": "ae6cbbe1492f4de79c45fce06f967ce8" - }, - "askpass": { - "Package": "askpass", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "sys" - ], - "Hash": "cad6cf7f1d5f6e906700b9d3e718c796" - }, - "assertthat": { - "Package": "assertthat", - "Version": "0.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "tools" - ], - "Hash": "50c838a310445e954bc13f26f26a6ecf" - }, - "backports": { - "Package": "backports", - "Version": "1.4.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "c39fbec8a30d23e721980b8afb31984c" - }, - "base64enc": { - "Package": "base64enc", - "Version": "0.1-3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "543776ae6848fde2f48ff3816d0628bc" - }, - "bit": { - "Package": "bit", - "Version": "4.0.5", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "d242abec29412ce988848d0294b208fd" - }, - "bit64": { - "Package": "bit64", - "Version": "4.0.5", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "bit", - "methods", - "stats", - "utils" - ], - "Hash": "9fe98599ca456d6552421db0d6772d8f" - }, - "blockr": { - "Package": "blockr", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteUsername": "blockr-org", - "RemoteRepo": "blockr", - "RemoteRef": "main", - "RemoteSha": "25e192f9c319fdf538466fd0f1eef03d3cb5f5c3", - "Remotes": "blockr-org/blockr.data, blockr-org/bmsui, DivadNojnarg/DiagrammeR", - "Requirements": [ - "DT", - "blockr.data", - "bmsui", - "bslib", - "dplyr", - "ggiraph", - "ggplot2", - "htmltools", - "magrittr", - "methods", - "shiny", - "sortable", - "utils" - ], - "Hash": "5644964f874a9dfe51495dda452d7d5e" - }, - "blockr.data": { - "Package": "blockr.data", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteUsername": "blockr-org", - "RemoteRepo": "blockr.data", - "RemoteRef": "main", - "RemoteSha": "39096adc2e6540490d9d19f4b5b3cd87d93888a6", - "Requirements": [ - "R" - ], - "Hash": "7ca642ce6a6273b5ccef8648a383f1dd" - }, - "bmsui": { - "Package": "bmsui", - "Version": "0.0.0.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteUsername": "blockr-org", - "RemoteRepo": "bmsui", - "RemoteRef": "master", - "RemoteSha": "b48e8c7bcc61760cb40802730476e09ba7c0f672", - "Requirements": [ - "assertthat", - "bslib", - "htmltools", - "shiny" - ], - "Hash": "c1a0708bdb3539e19ce7ce1e56390775" - }, - "bslib": { - "Package": "bslib", - "Version": "0.5.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "base64enc", - "cachem", - "grDevices", - "htmltools", - "jquerylib", - "jsonlite", - "memoise", - "mime", - "rlang", - "sass" - ], - "Hash": "283015ddfbb9d7bf15ea9f0b5698f0d9" - }, - "cachem": { - "Package": "cachem", - "Version": "1.0.8", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "fastmap", - "rlang" - ], - "Hash": "c35768291560ce302c0a6589f92e837d" - }, - "checkmate": { - "Package": "checkmate", - "Version": "2.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "backports", - "utils" - ], - "Hash": "ca9c113196136f4a9ca9ce6079c2c99e" - }, - "cli": { - "Package": "cli", - "Version": "3.6.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "utils" - ], - "Hash": "89e6d8219950eac806ae0c489052048a" - }, - "colorspace": { - "Package": "colorspace", - "Version": "2.1-0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats" - ], - "Hash": "f20c47fd52fae58b4e377c37bb8c335b" - }, - "commonmark": { - "Package": "commonmark", - "Version": "1.9.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "d691c61bff84bd63c383874d2d0c3307" - }, - "config": { - "Package": "config", - "Version": "0.3.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "yaml" - ], - "Hash": "8b7222e9d9eb5178eea545c0c4d33fc2" - }, - "connectapi": { - "Package": "connectapi", - "Version": "0.1.3.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "connectapi", - "RemoteUsername": "rstudio", - "RemoteRef": "HEAD", - "RemoteSha": "427ac1fe2eb72d45f6048c376ec94b6c545faf8d", - "Requirements": [ - "R6", - "bit64", - "config", - "dplyr", - "fs", - "glue", - "httr", - "jsonlite", - "lifecycle", - "magrittr", - "progress", - "purrr", - "rlang", - "tibble", - "uuid", - "vctrs", - "yaml" - ], - "Hash": "d715d8e16daf1707d7a7497d175f9999" - }, - "cpp11": { - "Package": "cpp11", - "Version": "0.4.6", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "707fae4bbf73697ec8d85f9d7076c061" - }, - "crayon": { - "Package": "crayon", - "Version": "1.5.2", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "grDevices", - "methods", - "utils" - ], - "Hash": "e8a1e41acf02548751f45c718d55aa6a" - }, - "crosstalk": { - "Package": "crosstalk", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R6", - "htmltools", - "jsonlite", - "lazyeval" - ], - "Hash": "6aa54f69598c32177e920eb3402e8293" - }, - "curl": { - "Package": "curl", - "Version": "5.1.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "9123f3ef96a2c1a93927d828b2fe7d4c" - }, - "digest": { - "Package": "digest", - "Version": "0.6.33", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "utils" - ], - "Hash": "b18a9cf3c003977b0cc49d5e76ebe48d" - }, - "dplyr": { - "Package": "dplyr", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "R6", - "cli", - "generics", - "glue", - "lifecycle", - "magrittr", - "methods", - "pillar", - "rlang", - "tibble", - "tidyselect", - "utils", - "vctrs" - ], - "Hash": "e85ffbebaad5f70e1a2e2ef4302b4949" - }, - "ellipsis": { - "Package": "ellipsis", - "Version": "0.3.2", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "rlang" - ], - "Hash": "bb0eec2fe32e88d9e2836c2f73ea2077" - }, - "evaluate": { - "Package": "evaluate", - "Version": "0.22", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "66f39c7a21e03c4dcb2c2d21d738d603" - }, - "fansi": { - "Package": "fansi", - "Version": "1.0.5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "utils" - ], - "Hash": "3e8583a60163b4bc1a80016e63b9959e" - }, - "farver": { - "Package": "farver", - "Version": "2.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "8106d78941f34855c440ddb946b8f7a5" - }, - "fastmap": { - "Package": "fastmap", - "Version": "1.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "f7736a18de97dea803bde0a2daaafb27" - }, - "fontawesome": { - "Package": "fontawesome", - "Version": "0.5.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "htmltools", - "rlang" - ], - "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" - }, - "fs": { - "Package": "fs", - "Version": "1.6.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "methods" - ], - "Hash": "47b5f30c720c23999b913a1a635cf0bb" - }, - "generics": { - "Package": "generics", - "Version": "0.1.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "methods" - ], - "Hash": "15e9634c0fcd294799e9b2e929ed1b86" - }, - "ggiraph": { - "Package": "ggiraph", - "Version": "0.8.7", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "Rcpp", - "ggplot2", - "grid", - "htmltools", - "htmlwidgets", - "purrr", - "rlang", - "stats", - "systemfonts", - "uuid", - "vctrs" - ], - "Hash": "cc4b14781abf296aab585c5c056d9685" - }, - "ggplot2": { - "Package": "ggplot2", - "Version": "3.4.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "MASS", - "R", - "cli", - "glue", - "grDevices", - "grid", - "gtable", - "isoband", - "lifecycle", - "mgcv", - "rlang", - "scales", - "stats", - "tibble", - "vctrs", - "withr" - ], - "Hash": "313d31eff2274ecf4c1d3581db7241f9" - }, - "glue": { - "Package": "glue", - "Version": "1.6.2", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "methods" - ], - "Hash": "4f2596dfb05dac67b9dc558e5c6fba2e" - }, - "gtable": { - "Package": "gtable", - "Version": "0.3.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "grid", - "lifecycle", - "rlang" - ], - "Hash": "b29cf3031f49b04ab9c852c912547eef" - }, - "highr": { - "Package": "highr", - "Version": "0.10", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "xfun" - ], - "Hash": "06230136b2d2b9ba5805e1963fa6e890" - }, - "hms": { - "Package": "hms", - "Version": "1.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "lifecycle", - "methods", - "pkgconfig", - "rlang", - "vctrs" - ], - "Hash": "b59377caa7ed00fa41808342002138f9" - }, - "htmltools": { - "Package": "htmltools", - "Version": "0.5.6.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "base64enc", - "digest", - "ellipsis", - "fastmap", - "grDevices", - "rlang", - "utils" - ], - "Hash": "1e12fe667316a76508898839ecfb2d00" - }, - "htmlwidgets": { - "Package": "htmlwidgets", - "Version": "1.6.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grDevices", - "htmltools", - "jsonlite", - "knitr", - "rmarkdown", - "yaml" - ], - "Hash": "a865aa85bcb2697f47505bfd70422471" - }, - "httpuv": { - "Package": "httpuv", - "Version": "1.6.11.9000", - "Source": "GitHub", - "RemoteType": "github", - "RemoteHost": "api.github.com", - "RemoteRepo": "httpuv", - "RemoteUsername": "rstudio", - "RemoteRef": "HEAD", - "RemoteSha": "99bfe9be81cea7395bf043f59045ac17c0812401", - "Requirements": [ - "R", - "R6", - "Rcpp", - "later", - "promises", - "utils" - ], - "Hash": "c07059f60b35a97f4ff579e48d23c2f2" - }, - "httr": { - "Package": "httr", - "Version": "1.4.7", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "R6", - "curl", - "jsonlite", - "mime", - "openssl" - ], - "Hash": "ac107251d9d9fd72f0ca8049988f1d7f" - }, - "isoband": { - "Package": "isoband", - "Version": "0.2.7", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "grid", - "utils" - ], - "Hash": "0080607b4a1a7b28979aecef976d8bc2" - }, - "jquerylib": { - "Package": "jquerylib", - "Version": "0.1.4", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "htmltools" - ], - "Hash": "5aab57a3bd297eee1c1d862735972182" - }, - "jsonlite": { - "Package": "jsonlite", - "Version": "1.8.7", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "methods" - ], - "Hash": "266a20443ca13c65688b2116d5220f76" - }, - "knitr": { - "Package": "knitr", - "Version": "1.45", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "evaluate", - "highr", - "methods", - "tools", - "xfun", - "yaml" - ], - "Hash": "1ec462871063897135c1bcbe0fc8f07d" - }, - "labeling": { - "Package": "labeling", - "Version": "0.4.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "graphics", - "stats" - ], - "Hash": "b64ec208ac5bc1852b285f665d6368b3" - }, - "later": { - "Package": "later", - "Version": "1.3.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "Rcpp", - "rlang" - ], - "Hash": "40401c9cf2bc2259dfe83311c9384710" - }, - "lattice": { - "Package": "lattice", - "Version": "0.21-9", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "stats", - "utils" - ], - "Hash": "5558c61e0136e247252f5f952cdaad6a" - }, - "lazyeval": { - "Package": "lazyeval", - "Version": "0.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "d908914ae53b04d4c0c0fd72ecc35370" - }, - "learnr": { - "Package": "learnr", - "Version": "0.11.5", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "checkmate", - "digest", - "ellipsis", - "evaluate", - "htmltools", - "htmlwidgets", - "jsonlite", - "knitr", - "lifecycle", - "markdown", - "parallel", - "promises", - "rappdirs", - "renv", - "rlang", - "rmarkdown", - "rprojroot", - "shiny", - "stats", - "utils", - "withr" - ], - "Hash": "3267d22ec2560045f5ff6e24d536c8d7" - }, - "lifecycle": { - "Package": "lifecycle", - "Version": "1.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "cli", - "glue", - "rlang" - ], - "Hash": "001cecbeac1cff9301bdc3775ee46a86" - }, - "magrittr": { - "Package": "magrittr", - "Version": "2.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "7ce2733a9826b3aeb1775d56fd305472" - }, - "markdown": { - "Package": "markdown", - "Version": "1.10", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "commonmark", - "utils", - "xfun" - ], - "Hash": "f00a677e0c006183f1232b6f1e0652d0" - }, - "memoise": { - "Package": "memoise", - "Version": "2.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "cachem", - "rlang" - ], - "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" - }, - "mgcv": { - "Package": "mgcv", - "Version": "1.9-0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "Matrix", - "R", - "graphics", - "methods", - "nlme", - "splines", - "stats", - "utils" - ], - "Hash": "086028ca0460d0c368028d3bda58f31b" - }, - "mime": { - "Package": "mime", - "Version": "0.12", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "tools" - ], - "Hash": "18e9c28c1d3ca1560ce30658b22ce104" - }, - "munsell": { - "Package": "munsell", - "Version": "0.5.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "colorspace", - "methods" - ], - "Hash": "6dfe8bf774944bd5595785e3229d8771" - }, - "nlme": { - "Package": "nlme", - "Version": "3.1-163", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "graphics", - "lattice", - "stats", - "utils" - ], - "Hash": "8d1938040a05566f4f7a14af4feadd6b" - }, - "openssl": { - "Package": "openssl", - "Version": "2.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "askpass" - ], - "Hash": "2a0dc8c6adfb6f032e4d4af82d258ab5" - }, - "packrat": { - "Package": "packrat", - "Version": "0.9.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "tools", - "utils" - ], - "Hash": "55ddd2d4a1959535f18393478b0c14a6" - }, - "pillar": { - "Package": "pillar", - "Version": "1.9.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "cli", - "fansi", - "glue", - "lifecycle", - "rlang", - "utf8", - "utils", - "vctrs" - ], - "Hash": "15da5a8412f317beeee6175fbc76f4bb" - }, - "pkgconfig": { - "Package": "pkgconfig", - "Version": "2.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "utils" - ], - "Hash": "01f28d4278f15c76cddbea05899c5d6f" - }, - "prettyunits": { - "Package": "prettyunits", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "6b01fc98b1e86c4f705ce9dcfd2f57c7" - }, - "progress": { - "Package": "progress", - "Version": "1.2.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R6", - "crayon", - "hms", - "prettyunits" - ], - "Hash": "14dc9f7a3c91ebb14ec5bb9208a07061" - }, - "promises": { - "Package": "promises", - "Version": "1.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R6", - "Rcpp", - "fastmap", - "later", - "magrittr", - "rlang", - "stats" - ], - "Hash": "0d8a15c9d000970ada1ab21405387dee" - }, - "purrr": { - "Package": "purrr", - "Version": "1.0.2", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "cli", - "lifecycle", - "magrittr", - "rlang", - "vctrs" - ], - "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" - }, - "rappdirs": { - "Package": "rappdirs", - "Version": "0.3.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "5e3c5dc0b071b21fa128676560dbe94d" - }, - "renv": { - "Package": "renv", - "Version": "1.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "utils" - ], - "Hash": "41b847654f567341725473431dd0d5ab" - }, - "rlang": { - "Package": "rlang", - "Version": "1.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "utils" - ], - "Hash": "a85c767b55f0bf9b7ad16c6d7baee5bb" - }, - "rmarkdown": { - "Package": "rmarkdown", - "Version": "2.25", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "bslib", - "evaluate", - "fontawesome", - "htmltools", - "jquerylib", - "jsonlite", - "knitr", - "methods", - "stringr", - "tinytex", - "tools", - "utils", - "xfun", - "yaml" - ], - "Hash": "d65e35823c817f09f4de424fcdfa812a" - }, - "rprojroot": { - "Package": "rprojroot", - "Version": "2.0.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "1de7ab598047a87bba48434ba35d497d" - }, - "rsconnect": { - "Package": "rsconnect", - "Version": "1.1.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "cli", - "curl", - "digest", - "jsonlite", - "lifecycle", - "openssl", - "packrat", - "renv", - "rlang", - "rstudioapi", - "tools", - "yaml" - ], - "Hash": "672fc66985074d17c86b6335105143b8" - }, - "rstudioapi": { - "Package": "rstudioapi", - "Version": "0.15.0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "5564500e25cffad9e22244ced1379887" - }, - "sass": { - "Package": "sass", - "Version": "0.4.7", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R6", - "fs", - "htmltools", - "rappdirs", - "rlang" - ], - "Hash": "6bd4d33b50ff927191ec9acbf52fd056" - }, - "scales": { - "Package": "scales", - "Version": "1.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "R6", - "RColorBrewer", - "farver", - "labeling", - "lifecycle", - "munsell", - "rlang", - "viridisLite" - ], - "Hash": "906cb23d2f1c5680b8ce439b44c6fa63" - }, - "shiny": { - "Package": "shiny", - "Version": "1.7.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "R6", - "bslib", - "cachem", - "commonmark", - "crayon", - "ellipsis", - "fastmap", - "fontawesome", - "glue", - "grDevices", - "htmltools", - "httpuv", - "jsonlite", - "later", - "lifecycle", - "methods", - "mime", - "promises", - "rlang", - "sourcetools", - "tools", - "utils", - "withr", - "xtable" - ], - "Hash": "5ec01cc255f2138fc2f0dc74d2b1a1a1" - }, - "sortable": { - "Package": "sortable", - "Version": "0.5.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "assertthat", - "ellipsis", - "htmltools", - "htmlwidgets", - "jsonlite", - "learnr", - "rlang", - "shiny", - "utils" - ], - "Hash": "511867ad5a94d16603467409aa625bcb" - }, - "sourcetools": { - "Package": "sourcetools", - "Version": "0.1.7-1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "5f5a7629f956619d519205ec475fe647" - }, - "stringi": { - "Package": "stringi", - "Version": "1.7.12", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "stats", - "tools", - "utils" - ], - "Hash": "ca8bd84263c77310739d2cf64d84d7c9" - }, - "stringr": { - "Package": "stringr", - "Version": "1.5.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "magrittr", - "rlang", - "stringi", - "vctrs" - ], - "Hash": "671a4d384ae9d32fc47a14e98bfa3dc8" - }, - "sys": { - "Package": "sys", - "Version": "3.4.2", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "3a1be13d68d47a8cd0bfd74739ca1555" - }, - "systemfonts": { - "Package": "systemfonts", - "Version": "1.0.5", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "cpp11" - ], - "Hash": "15b594369e70b975ba9f064295983499" - }, - "tibble": { - "Package": "tibble", - "Version": "3.2.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "fansi", - "lifecycle", - "magrittr", - "methods", - "pillar", - "pkgconfig", - "rlang", - "utils", - "vctrs" - ], - "Hash": "a84e2cc86d07289b3b6f5069df7a004c" - }, - "tidyselect": { - "Package": "tidyselect", - "Version": "1.2.0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang", - "vctrs", - "withr" - ], - "Hash": "79540e5fcd9e0435af547d885f184fd5" - }, - "tinytex": { - "Package": "tinytex", - "Version": "0.48", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "xfun" - ], - "Hash": "8f96d229b7311beb32b94cf413b13f84" - }, - "utf8": { - "Package": "utf8", - "Version": "1.2.3", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "1fe17157424bb09c48a8b3b550c753bc" - }, - "uuid": { - "Package": "uuid", - "Version": "1.1-1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "3d78edfb977a69fc7a0341bee25e163f" - }, - "vctrs": { - "Package": "vctrs", - "Version": "0.6.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang" - ], - "Hash": "266c1ca411266ba8f365fcc726444b87" - }, - "viridisLite": { - "Package": "viridisLite", - "Version": "0.4.2", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R" - ], - "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" - }, - "withr": { - "Package": "withr", - "Version": "2.5.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "stats" - ], - "Hash": "d77c6f74be05c33164e33fbc85540cae" - }, - "xfun": { - "Package": "xfun", - "Version": "0.40", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "stats", - "tools" - ], - "Hash": "be07d23211245fc7d4209f54c4e4ffc8" - }, - "xtable": { - "Package": "xtable", - "Version": "1.8-4", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "stats", - "utils" - ], - "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" - }, - "yaml": { - "Package": "yaml", - "Version": "2.3.7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "0d0056cc5383fbc240ccd0cb584bf436" - } - } -} diff --git a/renv.lock b/renv.lock deleted file mode 120000 index fd1155b7..00000000 --- a/renv.lock +++ /dev/null @@ -1 +0,0 @@ -inst/examples/renv.lock \ No newline at end of file