rstudio / rsconnect

Publish Shiny Applications, RMarkdown Documents, Jupyter Notebooks, Plumber APIs, and more
http://rstudio.github.io/rsconnect/
131 stars 80 forks source link

use renv::dependencies rather than renv::snapshot to compute dependencies #917

Closed aronatkins closed 1 year ago

aronatkins commented 1 year ago

side-effect: an renv dependency is included when consuming an renv.lock, as there is no way to distinguish between a code-dependency and bootstrapping-dependency.

fixes #916

After installing this branch:

remotes::install_github("rstudio/rsconnect", "aron-renv-dependencies")

Using this installation technique is needed to avoid pre-flight errors caused by https://github.com/rstudio/rsconnect/issues/915

packageVersion("rsconnect")
#> [1] '1.0.0.9000'
packageVersion("renv")
#> [1] '1.0.0'
rsconnect::writeManifest(appFiles = c("app.R"))
#> ℹ Capturing R dependencies with renv
#> ✔ Found 40 dependencies
manifest <- jsonlite::read_json("manifest.json")
manifest$packages$rsconnect$description$Imports
#> [1] "cli, curl, digest, jsonlite, lifecycle, openssl (>= 2.0.0),\npackrat (>= 0.6), renv (>= 1.0.0), rlang (>= 1.0.0), rstudioapi\n(>= 0.5), tools, yaml (>= 2.1.5)"
"renv" %in% names(manifest$packages)
#> [1] TRUE

Created on 2023-07-18 with reprex v2.0.2