From: "Todor Kondić via Bug reports for GNU Guix" <bug-guix@gnu.org>
To: 50483@debbugs.gnu.org
Subject: bug#50483: [R] Package r-shiny: Shiny server logic inactive
Date: Thu, 09 Sep 2021 12:35:40 +0000 [thread overview]
Message-ID: <xfU6gJxxN6gNlm9POSFFvQhYn6dlID8ZSL8nizDsoPMA29YsxpNCKYt7EEGL9yZvvHGYtidINfl9kXqu0SMAW8cW1_2HKP6wezk799pfFmE=@protonmail.com> (raw)
Hi,
I started having issues with R Shiny applications with newer Guix distro commits. I have a feeling that this is an issue arising from `r-shiny` dependency clashes and that (some) of those dependencies should be either downgraded, or upgraded.
The problem is that the server logic of a shiny application is never active. The web application UI is displayed correctly, even initialised correctly, but the logic behind it does not work.
Take, for example, a classic shiny demo app [1]. The control with the number of observations is displayed, but the plot depending on it never shows up. This behavior exists on recent Guix builds [2].
However, on one older build from a few months ago [3], the application runs fine.
You will find below the manifest[4] for creating the environment where Shiny programs malfunction and the command[5] to create the environment with the manifest.
By the way, for those of you who are R savvy, comparing sessionInfo() between the running and non-running version did uncover few version changes. I have not yet delved deeper in
what is the root cause, but I think I noticed that this is not
the difference in versions of R itself.
Lastly, if this is really a universal (ie I am not the
only one seeing this), then this is a significant problem
for a lot of people doing scientific computing on Guix.
sessionInfo() for working version:
R version 4.1.0 (2021-05-18)
Platform: x86_64-unknown-linux-gnu (64-bit)
Matrix products: default
BLAS/LAPACK: /gnu/store/bs9pl1f805ins80xaf4s3n35a0x2lyq3-openblas-0.3.9/lib/libopenblasp-r0.3.9.so
locale:
[1] C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] shiny_1.6.0
loaded via a namespace (and not attached):
[1] compiler_4.1.0 fastmap_1.1.0 ellipsis_0.3.2 magrittr_2.0.1
[5] R6_2.5.0 promises_1.2.0.1 later_1.2.0 tools_4.1.0
[9] htmltools_0.5.1.1 Rcpp_1.0.6 digest_0.6.27 xtable_1.8-4
[13] httpuv_1.6.1 lifecycle_1.0.0 mime_0.10 rlang_0.4.11
sessionInfo for the non-working version:
R version 4.1.1 (2021-08-10)
Platform: x86_64-unknown-linux-gnu (64-bit)
Matrix products: default
BLAS/LAPACK: /gnu/store/bs9pl1f805ins80xaf4s3n35a0x2lyq3-openblas-0.3.9/lib/libopenblasp-r0.3.9.so
locale:
[1] LC_CTYPE=en_GB.utf8 LC_NUMERIC=C
[3] LC_TIME=en_GB.utf8 LC_COLLATE=en_GB.utf8
[5] LC_MONETARY=en_GB.utf8 LC_MESSAGES=en_GB.utf8
[7] LC_PAPER=en_GB.utf8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_GB.utf8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] shiny_1.6.0
loaded via a namespace (and not attached):
[1] compiler_4.1.1 fastmap_1.1.0 ellipsis_0.3.2 magrittr_2.0.1
[5] R6_2.5.1 promises_1.2.0.1 later_1.3.0 htmltools_0.5.1.1
[9] tools_4.1.1 Rcpp_1.0.7 digest_0.6.27 xtable_1.8-4
[13] httpuv_1.6.2 lifecycle_1.0.0 mime_0.11 rlang_0.4.11
Reproducible-ish demo:
1. runme.R
```r
library(ggplot2)
library(shiny)
app <- shinyApp(
ui = bootstrapPage(
numericInput('n', 'Number of obs', 100),
plotOutput('plot')
),
server = function(input, output) {
output$plot <- renderPlot({ hist(runif(input$n)) })
}
)
# Will show a warning, because the browser is not in the manifest, but
# it it will serve the application on a listed port, which means it
# can be accessed by a browser external to the environment.
options(browser="itdoesnotmatter")
shiny::runApp(app)
```
2. for example, guix version: 816d52ba93d262548f5e1139ff6051887f13dd0d
3. for example, guix version:
29745d23b87529275a677ee7962b0405594e84db
4. Manifest for creating the environment:
```scheme
(use-modules (guix packages)
(guix inferior)
(guix channels)
(guix profiles)
(guix utils)
(guix build-system gnu)
(gnu packages)
(gnu packages commencement)
(gnu packages gcc)
(srfi srfi-1)
(ice-9 pretty-print))
(define base-specs '("git"
"rsync"
"make"))
(define font-specs '("unicode-emoji"
"fontconfig"
"font-dejavu"
"font-gnu-freefont"
"font-terminus"
"font-liberation"
"font-inconsolata"
"font-gnu-unifont"
"font-public-sans"
"font-misc-misc"
"font-awesome"
"font-hack"
"font-iosevka"
"font-iosevka-term"
"font-iosevka-term-slab"
"font-iosevka-slab"
"font-iosevka-etoile"
"font-iosevka-aile"
"font-google-noto"))
(define r-specs '("r"
"r-curl"
"r-ellipsis"
"r-future"
"r-rmarkdown"
"r-knitr"
"r-rcolorbrewer"
"r-data-table"
"r-shiny"
"r-cowplot"
"r-pander"
"r-rstatix"
"r-r-utils"))
(define texlive-specs '("texlive"))
(define misc-specs '("sshpass"
"xdg-utils"
"xdg-user-dirs"
"pango"
"libxft"
"cairo"
"gnupg"
"openssl"))
(define java-specs '(;"maven"
"openjdk:out"
"openjdk:jdk"))
(define perl-specs '("perl-yaml-libyaml"))
(define gnu-toolchain-specs '("gcc-toolchain"))
(define specs `(,@base-specs
,@font-specs
,@perl-specs
,@r-specs
,@java-specs
,@gnu-toolchain-specs
,@misc-specs
,@texlive-specs))
(define dev-channels
(list (channel
;; This is custom Environmental Cheminformatics LCSB channel.
(name 'eci-addons)
(url "https://git.sr.ht/~condor/eci-guix")
(branch "master")
(introduction
(make-channel-introduction
"6642600059913e86657242ba369d752c0af2bff5"
(openpgp-fingerprint
"EDC3 9790 A06D 5F72 41D9 70F9 BBEF E71B 7A28 3C6F"))))
(channel
(name 'guix)
(url "https://git.savannah.gnu.org/git/guix.git")
(commit "29745d23b87529275a677ee7962b0405594e84db"))))
(define inferior (inferior-for-channels dev-channels))
(define inferior-mnf-entry-list
(map (lambda (spec)
(let*
((spkgout (string-split spec #\:))
(spkg (car spkgout))
(rest (cdr spkgout))
(sout (if (null? rest)
"out"
(car rest)))
(pkg (first
(lookup-inferior-packages inferior spkg))))
(display (format #f "Commiting ~a to the inferior manifest list.\n" spkg))
(inferior-package->manifest-entry pkg sout)))
specs))
(display "Done building inferior list.\n")
(define default-manifest
(make-manifest '()))
(define all-manifest-entries inferior-mnf-entry-list)
(define manifest (make-manifest all-manifest-entries))
;;; For the fresh version
;;; (define manifest (specifications->manifest specs))
(display "Ready to go.") (newline)
manifest
```
5. Shell command to invoke the environment
```shell
guix environment -m ~/.local/my-scripts/r-manif.scm -c4 --pure -- R
```
After the command is run, just `source('runme.R')`.
next reply other threads:[~2021-09-09 12:47 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-09 12:35 Todor Kondić via Bug reports for GNU Guix [this message]
2021-09-15 16:50 ` bug#50483: [R] Package r-shiny: Shiny server logic inactive zimoun
2021-09-16 5:57 ` Charles via Bug reports for GNU Guix
2021-09-16 6:32 ` zimoun
2021-09-18 5:14 ` Charles via Bug reports for GNU Guix
2021-09-20 19:03 ` zimoun
2021-09-20 19:30 ` Charles via Bug reports for GNU Guix
2021-09-26 12:26 ` Todor Kondić via Bug reports for GNU Guix
2021-09-27 12:50 ` zimoun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='xfU6gJxxN6gNlm9POSFFvQhYn6dlID8ZSL8nizDsoPMA29YsxpNCKYt7EEGL9yZvvHGYtidINfl9kXqu0SMAW8cW1_2HKP6wezk799pfFmE=@protonmail.com' \
--to=bug-guix@gnu.org \
--cc=50483@debbugs.gnu.org \
--cc=tk.code@protonmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).