Bioconductor / bioconductor_docker

Docker Containers for Bioconductor
https://bioconductor.org/help/docker/
Artistic License 2.0
73 stars 31 forks source link

R/Rstudio version conflict #39

Open bschilder opened 2 years ago

bschilder commented 2 years ago

There's now a version conflict between R and Rstudio in the devel version of the container , which was last pushed 4 days ago.

This results in plots being unable to print, as indicated by the following warning message, which is produced in a variety of situations but in my case occurred when I tried installing a remote repo (remotes::install_github("neurogenomics/MAGMA_Celltyping@bschilder_dev")):

....
In addition: Warning messages:
1: R graphics engine version 15 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed. 

Example Dockerfile: https://github.com/NathanSkene/EWCE/blob/master/Dockerfile

bschilder commented 2 years ago

Another issue with the devel container that I just noticed.

When developing R packages, I noticed that devtools::install_dev_deps() produces errors.

Reprex

  1. Create devel Bioconductor docker container, e.g. using these instructions.
  2. Run devtools::install_dev_deps():

Output:

2: In read.dcf(path) :
  cannot open compressed file '/buildzone/DESCRIPTION', probable reason 'No such file or directory'

I confirmed this works fine on my desktop installation of Rstudio.

Session info

``` R Under development (unstable) (2021-12-16 r81386) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 20.04.3 LTS Matrix products: default BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] magrittr_2.0.1 usethis_2.1.5 devtools_2.4.3 pkgload_1.2.4 R6_2.5.1 [6] rlang_0.4.12 fastmap_1.1.0 fansi_0.5.0 tools_4.2.0 pkgbuild_1.3.1 [11] sessioninfo_1.2.2 utf8_1.2.2 cli_3.1.0 withr_2.4.3 ellipsis_0.3.2 [16] remotes_2.4.2 rprojroot_2.0.2 tibble_3.1.6 lifecycle_1.0.1 crayon_1.4.2 [21] processx_3.5.2 purrr_0.3.4 callr_3.7.0 vctrs_0.3.8 fs_1.5.2 [26] ps_1.6.0 testthat_3.1.1 memoise_2.0.1 glue_1.6.0 cachem_1.0.6 [31] compiler_4.2.0 pillar_1.6.4 desc_1.4.0 prettyunits_1.1.1 pkgconfig_2.0.3 ```
bschilder commented 2 years ago

Related issue from September 2021

35

nturaga commented 2 years ago

I'm able to reproduce the issue you are having with the R/RStudio version mismatch,

Warning messages:
1: R graphics engine version 15 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed. 

I will investigate this and get back to you.

However, I'm unable to reproduce the read.dcf issue. Can you just put in a dcf file manually in a path you know exists and try to read it?

I'm able to successfully read dcf files.

nturaga commented 2 years ago

Even the issue of R/RStudio version mismatch comes from rocker/rstudio:devel.

I launched the rstudio:devel docker container and am able to reproduce this. The next step is to explore the rocker-versioned2 GitHub issues and see if anyone has found a solution there.

R Under development (unstable) (2022-01-04 r81445) -- "Unsuffered Consequences"
Copyright (C) 2022 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> 
Warning message:
R graphics engine version 15 is not supported by this version of RStudio. The Plots tab will be disabled until a newer version of RStudio is installed. 
bschilder commented 2 years ago

@nturaga thanks so much for the quick response!

1. R/Rstudio mismatch

I see, the root of the issue being caused by rocker/rstudio:devel makes it tough for you to resolve yourself. Perhaps in the meantime including a warning at the top of the Readme in this repo would help. That way users can know to only use older version of the bioconductor_docker container that don't have these issues (assuming that's the case).

2. read.dcf error

I use read.dcf in my Readme and vignette headers (and in some code chunks) to dynamically pull in info about the package from the DESCRIPTION file (e.g. here). Though I'm not sure why this would be an issue for install_dev_deps. Plus, i don't get this error when using the release version of R/Rstudio.

eitsupi commented 2 years ago

Hi, rocker/rstudio:devel are images that installed the release version of RStudio Server on rocker/r-ver:devel, and it seems that RStudio supporting R graphics engine 15 has not been released yet. See https://github.com/rstudio/rstudio/issues/10058

The workaround is to install the RStudio daily build on rocker/r-ver:devel instead of using rocker/rstudio:devel.

FROM rocker/r-ver:devel

ENV S6_VERSION=v2.1.0.2
ENV RSTUDIO_VERSION=daily
ENV DEFAULT_USER=rstudio
ENV PATH=/usr/lib/rstudio-server/bin:$PATH

RUN /rocker_scripts/install_rstudio.sh && /rocker_scripts/install_pandoc.sh

EXPOSE 8787

CMD ["/init"]

https://github.com/rocker-org/rocker-versioned2/blob/756d2cb0b1e192e5eb21d133926ff8fb793747f2/dockerfiles/rstudio_latest-daily.Dockerfile

Since the installation of RStudio Server takes only a few minutes, rewriting the Dockerfile of this repository like that should have little impact on the build time.

eitsupi commented 2 years ago

It seems that the latest stable version of RStudio with new graphics support has been released. So the next build may resolve this issue.