-
Notifications
You must be signed in to change notification settings - Fork 85
Closed
Labels
Description
UPDATE
This is now a simple feature request: support DESCRIPTION files as a way to specify dependencies for rsconnect::AppDeploy().
After some deployment grief with #197, I am looking for a simpler / more robust way to tell shinyapps.io about its required dependencies, and I was hoping a DESCRIPTION would do it.
But when I add a DESCRIPTION like the below to the manifest, the deploy fails:
Package: accio
Title: Accio Web Frontend for Pensieve
Author: Maximilian Held
AuthorUrl: http://www.maxheld.de
License: Proprietary
DisplayMode: Showcase
Type: Package
Imports:
pensieve
Remotes:
maxheld83/pensieve
----- Deployment log started at 2017-08-21 13:04:17 -----
Deploy command:
rsconnect::deployApp(appDir = "~/GitHub/pensieve/inst/accio", appFileManifest = "/var/folders/dn/1kkm6bgs7c38dfm943_1gmmh0000gn/T/3654-efab-0bd8-7a0b", account = "maxheld83", server = "shinyapps.io", appName = "accio", appTitle = "accio", launch.browser = function(url) { message("Deployment completed: ", url) }, lint = FALSE, metadata = list(asMultiple = FALSE, asStatic = FALSE, ignoredFiles = ".git|LICENSE|README.md"), logLevel = "verbose")
Session information:
R version 3.4.1 (2017-06-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.4.1 rsconnect_0.8.4
Cookies:
[1] "None"
GET /v1/applications/?filter=account_id:23594&filter=name:accio&count=100&offset=0 1047ms
----- Bundle upload started at 2017-08-21 13:04:18 -----
10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
9: tryCatchList(expr, classes, parentenv, handlers)
8: tryCatch({
performPackratSnapshot(bundleDir)
}, error = function(e) {
e$msg <- paste0("----- Error snapshotting dependencies (Packrat) -----\n",
e$msg)
if (isTRUE(getOption("rsconnect.error.trace"))) {
traceback(3, sys.calls())
}
stop(e)
})
7: addPackratSnapshot(appDir, implicit_dependencies)
6: snapshotDependencies(appDir, inferDependencies(appMode, hasParameters))
5: createAppManifest(bundleDir, appMode, contentCategory, hasParameters,
appPrimaryDoc, assetTypeName, users)
4: bundleApp(target$appName, appDir, appFiles, appPrimaryDoc, assetTypeName,
contentCategory)
3: force(code)
2: withStatus(paste0("Uploading bundle for ", assetTypeName, ": ",
application$id), {
bundlePath <- bundleApp(target$appName, appDir, appFiles,
appPrimaryDoc, assetTypeName, contentCategory)
if (isShinyapps(accountDetails)) {
bundleSize <- file.info(bundlePath)$size
checkSum <- digest::digest(bundlePath, "md5", file = TRUE)
bundle <- client$createBundle(application$id, "application/x-tar",
bundleSize, checkSum)
if (!uploadBundle(bundle, bundleSize, bundlePath)) {
stop("Could not upload file.")
}
response <- client$updateBundleStatus(bundle$id, status = "ready")
bundle <- client$getBundle(bundle$id)
}
else {
bundle <- client$uploadApplication(application$id, bundlePath)
}
})
1: rsconnect::deployApp(appDir = "~/GitHub/pensieve/inst/accio",
appFileManifest = "/var/folders/dn/1kkm6bgs7c38dfm943_1gmmh0000gn/T/3654-efab-0bd8-7a0b",
account = "maxheld83", server = "shinyapps.io", appName = "accio",
appTitle = "accio", launch.browser = function(url) {
message("Deployment completed: ", url)
}, lint = FALSE, metadata = list(asMultiple = FALSE, asStatic = FALSE,
ignoredFiles = ".git|LICENSE|README.md"), logLevel = "verbose")
----- Deployment error -----
Error: Unable to retrieve package records for the following packages:
- 'pensieve'
----- Error stack trace -----
12: stop(e)
11: value[[3L]](cond)
10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
9: tryCatchList(expr, classes, parentenv, handlers)
8: tryCatch({
performPackratSnapshot(bundleDir)
}, error = function(e) {
e$msg <- paste0("----- Error snapshotting dependencies (Packrat) -----\n",
e$msg)
if (isTRUE(getOption("rsconnect.error.trace"))) {
traceback(3, sys.calls())
}
stop(e)
})
7: addPackratSnapshot(appDir, implicit_dependencies)
6: snapshotDependencies(appDir, inferDependencies(appMode, hasParameters))
5: createAppManifest(bundleDir, appMode, contentCategory, hasParameters,
appPrimaryDoc, assetTypeName, users)
4: bundleApp(target$appName, appDir, appFiles, appPrimaryDoc, assetTypeName,
contentCategory)
3: force(code)
2: withStatus(paste0("Uploading bundle for ", assetTypeName, ": ",
application$id), {
bundlePath <- bundleApp(target$appName, appDir, appFiles,
appPrimaryDoc, assetTypeName, contentCategory)
if (isShinyapps(accountDetails)) {
bundleSize <- file.info(bundlePath)$size
checkSum <- digest::digest(bundlePath, "md5", file = TRUE)
bundle <- client$createBundle(application$id, "application/x-tar",
bundleSize, checkSum)
if (!uploadBundle(bundle, bundleSize, bundlePath)) {
stop("Could not upload file.")
}
response <- client$updateBundleStatus(bundle$id, status = "ready")
bundle <- client$getBundle(bundle$id)
}
else {
bundle <- client$uploadApplication(application$id, bundlePath)
}
})
1: rsconnect::deployApp(appDir = "~/GitHub/pensieve/inst/accio",
appFileManifest = "/var/folders/dn/1kkm6bgs7c38dfm943_1gmmh0000gn/T/3654-efab-0bd8-7a0b",
account = "maxheld83", server = "shinyapps.io", appName = "accio",
appTitle = "accio", launch.browser = function(url) {
message("Deployment completed: ", url)
}, lint = FALSE, metadata = list(asMultiple = FALSE, asStatic = FALSE,
ignoredFiles = ".git|LICENSE|README.md"), logLevel = "verbose")
Error: Unable to retrieve package records for the following packages:
- 'pensieve'
In addition: Warning messages:
1: In FUN(X[[i]], ...) :
Package 'pensieve' not available in repository or locally
2: In FUN(X[[i]], ...) :
Failed to infer source for package 'pensieve'; using latest available version on CRAN instead
Execution halted
Is this generally a supported way to specify dependencies, and if so, what am I doing wrong?
If not, could this be supported?
To be clear, this is kind of the inverse of #192; I want rsconnect to ignore dark packrat magic and just adhere to the DESCRIPTION.
Reactions are currently unavailable