Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Waiter does not work on RStudio < 1.2 #41

Closed
Twan76 opened this issue Jan 17, 2020 · 10 comments
Closed

Waiter does not work on RStudio < 1.2 #41

Twan76 opened this issue Jan 17, 2020 · 10 comments

Comments

@Twan76
Copy link

Twan76 commented Jan 17, 2020

Hi John,

First of all, thanks for deploying this package and your effort you put on it.
I just install it from the CRAN today and i have a problem with your following example (and it seems with all the examples using renderplot) :

I don't have any action when i click on the draw button. Maybe problem with dependencies with others packages i installed before, maybe my R version? but it seems renderplot, renderDT, generates nothing...

PS : not working too for a non reactive expression.

Thanks for your help

library(shiny)
library(waiter)

ui <- fluidPage(
  use_waiter(),
  actionButton("draw", "draw plot"),
  plotOutput("plot")
)

server <- function(input, output){
  
  w <- Waiter$new(id = "plot")
  
  dataset <- reactive({
    input$draw
    
    w$show()
    
    Sys.sleep(3)
    
    w$hide()    
    
    runif(100)
  })
  
  output$plot <- renderPlot(plot(dataset()))
  
}

shinyApp(ui, server)
@JohnCoene
Copy link
Owner

Merci de reporter ça! C'est étrange, ca fonctionne de mon coté. Pourrais-tu me donner l'output de sessioninfo::session_info()?

@Twan76
Copy link
Author

Twan76 commented Jan 17, 2020

Merci

> sessioninfo::session_info()
- Session info -------------------------------------------------------------------------------------------------------------------
 setting  value                       
 version  R version 3.5.3 (2019-03-11)
 os       Windows >= 8 x64            
 system   x86_64, mingw32             
 ui       RStudio                     
 language (EN)                        
 collate  French_France.1252          
 ctype    French_France.1252          
 tz       Europe/Paris                
 date     2020-01-17                  

- Packages -----------------------------------------------------------------------------------------------------------------------
 package     * version date       lib source        
 assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.5.3)
 cli           1.1.0   2019-03-19 [1] CRAN (R 3.5.3)
 crayon        1.3.4   2017-09-16 [1] CRAN (R 3.5.3)
 digest        0.6.19  2019-05-20 [1] CRAN (R 3.5.3)
 htmltools     0.3.6   2017-04-28 [1] CRAN (R 3.5.3)
 httpuv        1.5.1   2019-04-05 [1] CRAN (R 3.5.3)
 jsonlite      1.6     2018-12-07 [1] CRAN (R 3.5.3)
 later         0.8.0   2019-02-11 [1] CRAN (R 3.5.3)
 magrittr      1.5     2014-11-22 [1] CRAN (R 3.5.3)
 mime          0.7     2019-06-11 [1] CRAN (R 3.5.3)
 promises      1.0.1   2018-04-13 [1] CRAN (R 3.5.3)
 R6            2.4.0   2019-02-14 [1] CRAN (R 3.5.3)
 Rcpp          1.0.1   2019-03-17 [1] CRAN (R 3.5.3)
 rlang         0.3.4   2019-04-07 [1] CRAN (R 3.5.3)
 rstudioapi    0.10    2019-03-19 [1] CRAN (R 3.5.3)
 sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.5.3)
 shiny       * 1.3.2   2019-04-22 [1] CRAN (R 3.5.3)
 waiter      * 0.1.0   2020-01-14 [1] CRAN (R 3.5.3)
 withr         2.1.2   2018-03-15 [1] CRAN (R 3.5.3)
 xtable        1.8-4   2019-04-21 [1] CRAN (R 3.5.3)
 yaml          2.2.0   2018-07-25 [1] CRAN (R 3.5.2)

@JohnCoene
Copy link
Owner

OK, a priori ca devrais fonctionner.

Tu peu reinstaller la version dev depuis github s'il te plaît et me dire si cela fonctionne?

#install.packages("remotes")
remotes::install_github("JohnCoene/waiter")

Aussi normalement quand tu specifie un plot/table/htmlwidget ou autre object "rendered" depuis le server R il n'y a pas besoin d'utilser la methode hide, waiter fais ca automatiquement quand le plot/table est "re-rendered"

library(shiny)
library(waiter)

ui <- fluidPage(
  use_waiter(),
  actionButton("draw", "draw plot"),
  plotOutput("plot")
)

server <- function(input, output){
  
  w <- Waiter$new(id = "plot")
  
  dataset <- reactive({
    input$draw
    
    w$show()
    
    Sys.sleep(3)
    
    runif(100)
  })
  
  output$plot <- renderPlot(plot(dataset()))
  
}

shinyApp(ui, server)

Excuse-moi, j'espère que ca fonctionne comme ça.

@Twan76
Copy link
Author

Twan76 commented Jan 19, 2020

Salut, merci beaucoup pour ta rapidité.
Alors j'ai testé depuis un mac, version R 3.5.3, ca marche sans problème.
Egalement testé depuis un autre Windows, installer R 3.5.3, "vierge", ca marche sans soucis egalement.

C'est avec l'ordi du travail que ca n'affiche pas les graphs/tableaux de type render.
J'ai beaucoup d'autres packages pré installés, le problème peut venir de là (dépendances...).
Je vais faire un peu de nettoyage dessus, réinstaller et te tiens au courant.

Je t'affiche le session_info() depuis le Windows qui marche (version packages bien différentes).

> sessioninfo::session_info()
- Session info -------------------------------------------------------------------
 setting  value                       
 version  R version 3.5.3 (2019-03-11)
 os       Windows 10 x64              
 system   x86_64, mingw32             
 ui       RStudio                     
 language (EN)                        
 collate  English_United Kingdom.1252 
 ctype    English_United Kingdom.1252 
 tz       Europe/Paris                
 date     2020-01-19                  

- Packages -----------------------------------------------------------------------
 package     * version date       lib source        
 assertthat    0.2.1   2019-03-21 [1] CRAN (R 3.5.3)
 cli           2.0.1   2020-01-08 [1] CRAN (R 3.5.3)
 crayon        1.3.4   2017-09-16 [1] CRAN (R 3.5.3)
 digest        0.6.23  2019-11-23 [1] CRAN (R 3.5.3)
 fansi         0.4.1   2020-01-08 [1] CRAN (R 3.5.3)
 fastmap       1.0.1   2019-10-08 [1] CRAN (R 3.5.3)
 glue          1.3.1   2019-03-12 [1] CRAN (R 3.5.3)
 htmltools     0.4.0   2019-10-04 [1] CRAN (R 3.5.3)
 httpuv        1.5.2   2019-09-11 [1] CRAN (R 3.5.3)
 jsonlite      1.6     2018-12-07 [1] CRAN (R 3.5.3)
 later         1.0.0   2019-10-04 [1] CRAN (R 3.5.3)
 magrittr      1.5     2014-11-22 [1] CRAN (R 3.5.3)
 mime          0.8     2019-12-19 [1] CRAN (R 3.5.3)
 promises      1.1.0   2019-10-04 [1] CRAN (R 3.5.3)
 R6            2.4.1   2019-11-12 [1] CRAN (R 3.5.3)
 Rcpp          1.0.3   2019-11-08 [1] CRAN (R 3.5.3)
 rlang         0.4.2   2019-11-23 [1] CRAN (R 3.5.3)
 sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 3.5.3)
 shiny       * 1.4.0   2019-10-10 [1] CRAN (R 3.5.3)
 waiter      * 0.1.0   2020-01-14 [1] CRAN (R 3.5.3)
 withr         2.1.2   2018-03-15 [1] CRAN (R 3.5.3)
 xtable        1.8-4   2019-04-21 [1] CRAN (R 3.5.3)

@JohnCoene
Copy link
Owner

JohnCoene commented Jan 20, 2020

Merci! C'est bien waiter qui casse renderDT, renderPlot, etc.? Ca marche bien sans waiter, correcte?

Si waiter fait fais planter les plot/renderDT, saurais-tu run le code ci-dessous.

library(shiny)
library(waiter)

ui <- fluidPage(
  use_waiter(),
  actionButton("draw", "draw plot"),
  plotOutput("plot")
)

server <- function(input, output){
  
  w <- Waiter$new(id = "plot")
  
  dataset <- reactive({
    input$draw
    
    w$show()
    
    Sys.sleep(3)
    
    runif(100)
  })
  
  output$plot <- renderPlot(plot(dataset()))
  
}

shinyApp(ui, server)

Et regarder la console de l'app depuis le browser voir s'il y a quelque chose dedans?

  1. Ouvre l'app depuis le browser
  2. Clique droit (n'importe où) et clique "inspect"
  3. Ouvrir la tab "console"

merci!

@Twan76
Copy link
Author

Twan76 commented Jan 20, 2020

Hello,

Alors, bonne nouvelle (ou pas), depuis le code de ton post précédent, lorsque j'ouvre avec le browser, ça marche parfaitement. C'est vraiment depuis la fenêtre R Studio que génère le RunApp que ça bug.

Pour info, dans la console du browser :

no waiter on plot waiter.js:110:13

J'ai testé avec d'autres applications, ça marche parfaitement aussi avec le browser, mais pas dans la fenêtre R Studio.
Merci

@JohnCoene
Copy link
Owner

Aaah OK, je vois si je peux changer ça. Cela fonctionnera sans doute si tu update RStudio. Sais-tu quelle version ne fonctionne pas pour toi? Je peux voir comment downgrade le JavaScript pour m'assurer que cela fonctionne.

@Twan76
Copy link
Author

Twan76 commented Jan 20, 2020

En effet, c'était bien la version de R Studio, bien vu :).
Je viens d'update avec la R Studio 1.2.5033, ça marche parfaitement dans la fenêtre R Studio.

J'avais la RStudio-1.1.463 avant.
Merci pour tout

@JohnCoene
Copy link
Owner

Merci d'avoir reporter ça. J'ai marqué cet issue "RStudio" et pour l'instant rajouté un warning quand on load le package si RStudio < 1.2 est loadé.

Encore merci!

@JohnCoene
Copy link
Owner

Je ne sais pas faire en sorte que waiter fonctionne sous des version antérieure de RStudio, il y a trop a "backport," le message devra suffire. Encore merci pour l'issue!

@JohnCoene JohnCoene changed the title Problem with renderplot/render DT ? Waiter does not work on RStudio < 1.2 Jan 21, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants