rocker-org / rocker-versioned2

Run current & prior versions of R using docker. rocker/r-ver, rocker/rstudio, rocker/shiny, rocker/tidyverse, and so on.
https://rocker-project.org
GNU General Public License v2.0
390 stars 163 forks source link

why is RSTUDIO_VERSION under the git tag R4.3.2 stuck to september 2023 ? #749

Closed odysseu closed 5 months ago

odysseu commented 5 months ago

Container image name

rocker/rstudio:4.3.2

Container image digest

rocker/rstudio@sha256:ca8f94e1c482afe7c72c9904b4bdf79b6fdf2edf44a5c30b53469bb5f390e38f

What operating system related to this question?

Linux

System information

No response

Question

It seems that the version of rstudio

Is there any reason why ?

Thanks in advance; always a pleasure using your images.

eitsupi commented 5 months ago

The Git tags are only pushed as a snapshot when a new version of R is released (technical reason: there is a CI that is triggered only when a new R is released, and the tags serve as the trigger), and the image build is always done from the main branch. Currently the latest rocker/rstudio:4.3.2 should have the latest RStudio Server installed. https://github.com/rocker-org/rocker-versioned2/wiki/rstudio_dbfe859ba748

Thanks in advance; always a pleasure using your images.

😍

odysseu commented 5 months ago

Ok I see; Would there be any chance of changing this behaviour in the future ?

I feel that the version for rstudio is not synchronized with the version of R and therefore when rstudio evolves it will not appear until a new version of R is released ? this is really a shame.

How about following Rstudio's way of versionning its images ?

I can start a PR if you feel this is a behaviour you would like to adopt :)

eitsupi commented 5 months ago

The purpose of this repository is to provide a fixed image of the R version, and we do not expect to issue tags or releases for that purpose, as RStudio is considered secondary. Also, installing any version of RStudio is relatively easy, and users would be able to install any version of RStudio at any time they want.

I feel that the version for rstudio is not synchronized with the version of R and therefore when rstudio evolves it will not appear until a new version of R is released ? this is really a shame.

Image builds are independent of releases, and if a new release of RStudio is made, an automatic check should push rocker/rstudio:latest with a new RStudio installation by one day. For example, this PR #737 triggered a build of rocker/rstudio https://github.com/rocker-org/rocker-versioned2/actions/runs/7260247883/job/19779039699

@cboettig Any thoughts?

cboettig commented 5 months ago

@odysseu sounds like there may be some confusion between tags in GitHub and tags on Docker images?

I feel that the version for rstudio is not synchronized with the version of R and therefore when rstudio evolves it will not appear until a new version of R is released ? this is really a shame.

I don't believe this is accurate, but please correct me. rocker/rstudio:4.3.2 , which is identical to the alias rocker/rstudio:latest so long as 4.3.2 is indeed the latest release, is built based on the main branch here, and thus the Docker image is always containing the latest version of RStudio. Just like how packages you install from CRAN on this image continue to update, so should the RStudio version.

Git tags are of course a different creature from docker tags, they occur at one instant in time, and are not supposed to be updated. The git tag for 4.3.2 is made by the repo when 4.3.2 is released, and thus represents the state of the Dockerfile at that moment. This operates rather differently than a Docker Image tag, where the image tagged 4.3.2 is updated with new software, including new RStudio, every time it is built. (Our project tries to 'freeze' all these versions once that tag number is no longer latest, but even so, we do backport occasional fixes to docker images with older tags.)

Hope this clarifies?

odysseu commented 5 months ago

I think I understand the situation.

I merely wished that when one pulls the docker image rocker/rstudio:X.Y.Z it will pull the docker image containing

Of course this is nonsense but this is why when a new version YYYY-MM-DD-suppl of Rstudio is released, there could be a build on your repo that rebuilds Rstudio x {all R X.Y.Z version you wish to support} with a tag something like rocker/rstudio:YYYY-MM-DD-suppl-RX.Y.Z. This would cause a massive DB of {rstudio}x{R} images and this is why I thought the nonsense would become sense :)

cboettig commented 5 months ago

I merely wished that when one pulls the docker image rocker/rstudio:X.Y.Z it will pull the docker image containing

the latest rstudio client (compatible for R:X.Y.Z - but I think this is the case for any R above 3.6.3) the R:X.Y.Z runner

@odysseu but that is what already happens when you pull the current version:

docker run --pull always --rm rocker/rstudio:4.3.2 rstudio-server version
4.3.2: Pulling from rocker/rstudio
Digest: sha256:a0d248647a4534c544266cb9cffd072900c008835ac10b8d0e7f2d4b15a31ae3
Status: Image is up to date for rocker/rstudio:4.3.2
2023.12.0+369 (Ocean Storm) for Ubuntu Jammy

However, if you pull an OLD version, i.e. 4.3.1,

docker run --pull always --rm rocker/rstudio:4.3.1 rstudio-server version
Digest: sha256:1bce32c088bda6cdbc5694b7728b89140542a9b0f9bf7c6bccf452d9ef530102
Status: Downloaded newer image for rocker/rstudio:4.3.1
2023.09.1+494 (Desert Sunflower) for Ubuntu Jammy

You will not get the latest version of RStudio. You will not get the latest version of R. You will not get the latest version of R packages from CRAN. We intentionally lock versions on old releases. If you want the newest RStudio, you can always opt into it manually. But please note that newer versions of RStudio may not always be compatible with older versions of R packages. Our version locked images try to provide a faithful, stable reproduction of the R environment (RStudio, R packages) that were current at the time that version of R was last current. If you are running the very latest version of RStudio but with old versions of R, your system may contain a combination of packages that couldn't have existed back when that was current, a combination of package versions that was never on CRAN at the same time and thus never tested against each other. By default, our locked version images try to help users avoid these potentially incompatible situations, but that is why we do not ship the 'latest' version of RStudio on old images. Those images are stable.