rocker-org / rocker

R configurations for Docker
https://rocker-project.org
GNU General Public License v2.0
1.45k stars 273 forks source link

docker tags mess #378

Closed dselivanov closed 4 years ago

dselivanov commented 4 years ago

I'm launching r-base:3.6.2 and discover R 3.6.3 RC inside

Screen Shot 2020-02-29 at 16 01 44
eddelbuettel commented 4 years ago

~David~Dmitry, I happen to know you so I will try my best to be polite and constructive but this is

edd@rob:~/git/rocker(master)$ docker pull r-base:3.6.2
3.6.2: Pulling from library/r-base
1fcd5305bc72: Pull complete 
11dae79a979e: Pull complete 
3bb692405f4d: Pull complete 
9280d4f7544d: Pull complete 
ab66f892f181: Pull complete 
d4c9c0b1c815: Pull complete 
Digest: sha256:1e10ff2cb64a5129ed4b23b0bb720854739dd31d677bcf2d289c897373fc2bf7
Status: Downloaded newer image for r-base:3.6.2
docker.io/library/r-base:3.6.2
edd@rob:~/git/rocker(master)$ docker run --rm -ti r-base R --version
R version 3.6.2 (2019-12-12) -- "Dark and Stormy Night"
Copyright (C) 2019 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 the terms of the
GNU General Public License versions 2 or 3.
For more information about these matters see
https://www.gnu.org/licenses/.

edd@rob:~/git/rocker(master)$ 

I happen to maintain both sides of the puzzle. I have to know that (Debian) R package (you show running) got from unstable to testing yesterday. I also know that it only to unstable last weekend when I made. And I demonstrate above that it does not see to affect to official image as no rebuild has been triggered.

So where did your containre come from? Did you by chance rebuild it youself?

dselivanov commented 4 years ago

@eddelbuettel

  1. Dmitry, not David
  2. you are running docker run --rm -ti r-base R --version, not docker run --rm -ti r-base:3.6.2 R --version
  3. good to see you can manage to be polite
dselivanov commented 4 years ago

additionally as can be seen from the screenshot, docopt is also missing. Should I open a separate ticket - I believe these are consequences of the same bug?

eddelbuettel commented 4 years ago
  1. Sorry, my bad. Edited.
  2. No idea why. r-base and r-base:latest give give 3.6.2; r-base:3.6.2 seems to have gotten the latest. I have no idea why. I also don't get paid for this so my patience for on-line abuse^Hgrowling is somewhat limited. If what I give you for isn't good enough, then I am sorry but there is a limit to what I can do. Right I am working on getting r-base:3.6.3 out (once the .deb binary is there).
  3. You are welcome.

So in short, someone or something triggered a rebuild. It wasn't me.

eddelbuettel commented 4 years ago

As for a fix, I recommend you just download the Dockerfile, rebuild and tag locally by using the 3.6.2 deb you want.

dselivanov commented 4 years ago

My automated builds depend on a tagged image from rocker docker hub. I would say released tags should not be touched to prevent such errors. Docker hub allows to trigger automated builds based on git tags. I don't know about the current process, but for such a popular project in makes sense to NOT trigger a build if base image is updated...

eddelbuettel commented 4 years ago
edd@rob:~/git/rcppannoy(master)$ docker run --rm -ti rocker/r-base:latest R --version | head -1
R version 3.6.2 (2019-12-12) -- "Dark and Stormy Night"
edd@rob:~/git/rcppannoy(master)$ 

I think it has do with the fact that I let the RC 'slip' into testing as Debian packagebefore 3.6.3 by not rebuilding once more as I usually do. And r-base being official, it probably watches the changes in unstable/testing and triggers a rebuild. Such is life.

So you should probably download and tag the rockre/r-base images and retag the current 'latest' ast 3.6.2. And hurry. Because it will be 3.6.3 in a day or two.

In short, don;t base your production requirements on my volunteer effforts here. What I do as a volunteer for, say, Debian or CRAN has more guards around it. This doesn't, so "stuff happens". I will try to avoid it next time, but for this the soup has spilled.

dselivanov commented 4 years ago

In short, don;t base your production requirements on my volunteer effforts here

No need for such excuse. Most of us are volunteers here.

eddelbuettel commented 4 years ago

But the fact of the matter is you did base on my work, and here it fell short. Oh well.

Congrats on getting RestRserve onto CRAN by the way. And to close, you opening Subject: above is still on the pushy/rude side of things. It doesn't help.

eddelbuettel commented 4 years ago

It is annoying. I had (for some tests in the past) also relied on these tags. I will try harder to retain 3.6.3 and not let it become 4.0.0 by accident. The delta between 3.6.1 and 3.6.2, as the one between 3.6.2 and 3.6.3 should matter less.

Maybe I will start pushing the build rocker/r-base:latest builds back under a tag to keep those.

eddelbuettel commented 4 years ago

Also, strictly speaking, your bug report was against this repo: https://github.com/docker-library/official-images

The image from here (ie rocker/r-base) did not yet change. Again, this was not planned. We'll try harder to avoid the change in the official image next time.

eddelbuettel commented 4 years ago

So as a postscriptum, the Dockerfile actually tries to address this:

ENV R_BASE_VERSION 3.6.3

## Now install R and littler, and create a link for littler in /usr/local/bin
RUN apt-get update \
    && apt-get install -t unstable -y --no-install-recommends \
        littler \
                r-cran-littler \
        r-base=${R_BASE_VERSION}-* \
        r-base-dev=${R_BASE_VERSION}-* \
        r-recommended=${R_BASE_VERSION}-* \
[...]

but that expression was apparently not enough to precent the roll over to the new version.

I think our best hope for a more tied-down approach of actual versioned r-base images is to manually upload tags. I may try that,but as a volunteer there are limits to how much I can take on / get done in addition to what I already do.

So in short, if you have a production process that really depends on this, maybe you need to bite the bullet and covert his from your end. What currently exists is plainly not solid enough.