Comments (21)
Sure.
But I think it is out of scope for the rocker project.
from rocker.
(Technical reason: One repo, one commit, one trigger of rebuilds at hub.docker.com)
It would be pretty straightforward to take our 'build from source' recipe for r-devel, fetch a given versioned tarball of R from CRAN abd build it. Ditto with packages from the CRAN Archive section satisfying the date constraint.
You may also want to look into the (totally awesome and under-recognised) Debian Snapshot Archive as it already has dated / versioned .deb binaries for you.
So it sounds like a nice new 'nice to have' initiative but I fear I don;t have bandwidth for it. [ Unless we all commit to get at least one example run written, documented and written'ed up for hands-on publication. ]
from rocker.
@hadley definitely sounds interesting...
@eddelbuettel Now that we have a https://github.com/rocker-org, it's less
important to stick with the single repo model. In particular, creating
additional repos under http://github.com/rocker-org that still use the
http://hub.docker.com/repos/rocker namespace on DockerHub might be a good
way to organize around potential extensions like this, particularly if
someone like @hadley wanted to take the lead in building out that new
repo. What do you think?
On Fri, Oct 10, 2014 at 7:17 AM, Dirk Eddelbuettel <[email protected]
wrote:
(Technical reason: One repo, one commit, one trigger of rebuilds at
hub.docker.com)It would be pretty straightforward to take our 'build from source' recipe
for r-devel, fetch a given versioned tarball of R from CRAN abd build it.
Ditto with packages from the CRAN Archive section satisfying the date
constraint.You may also want to look into the (totally awesome and under-recognised) Debian
Snapshot Archive http://snapshot.debian.org/ as it already has dated /
versioned .deb binaries for you.So it sounds like a nice new 'nice to have' initiative but I fear I don;t
have bandwidth for it. [ Unless we all commit to get at least one example
run written, documented and written'ed up for hands-on publication. ]—
Reply to this email directly or view it on GitHub
#29 (comment).
Carl Boettiger
UC Santa Cruz
http://carlboettiger.info/
from rocker.
We are definitely open to other volunteers willing to run with this; I just wanted to sound you out as well in terms of whether you and I consider to be part of the current rocker scope.
I do not think so, hence I'd close this. Thoughts?
from rocker.
I'd be happy to help out to the extent that I'm able. Maybe create rocker-old/rchive
or similar?
from rocker.
rocker-versioned/r-base-x.y.z
for suitable values of x,y,z ?
from rocker.
Seems reasonable. Probably a question is whether we want r-base-x.y.z
or just r-base-x.y
which would just track the latest minor version.
from rocker.
One useability-limiting factor is that you can not just say 'run the r-2.13.0 image and install the matching foo package` as we AFAIK lack the ability to infer what matching version of foo we want. Right or wrong?
from rocker.
Where foo is an R package? It might be possible to build something either using https://github.com/metacran/crandb or by looking at which versions of the package have windows binaries for the corresponding R version.
from rocker.
Haven't used it, but loading the old package versions on earlier builds of
R sounds like it's along the lines of @gmbecker 's gRAN and switchr
packages do? see
http://blog.revolutionanalytics.com/2014/08/gran-and-switchr-cant-send-you-back-in-time-but-they-can-send-r-sort-of.html
though Gabe could probably comment or correct me.
On Fri, Oct 10, 2014 at 10:13 AM, Hadley Wickham [email protected]
wrote:
Where foo is an R package? It might be possible to build something either
using https://github.com/metacran/crandb or by looking at which versions
of the package have windows binaries for the corresponding R version.—
Reply to this email directly or view it on GitHub
#29 (comment).
Carl Boettiger
UC Santa Cruz
http://carlboettiger.info/
from rocker.
Regarding:
r-base-x.y.z
we may as well print the z that was last and use the 'final such version' -- but the idea is good to just use the last revision per major.minor.* suite- yes, 'foo` was meant to designate a CRAN package name; sorry for omitting all the underscores and 2s you're used too ;-)
- and yes, there may be some code floating around but we have to make it available here or else we set users up for the nasty ones of 'current version of foo does not build on ancient R' detracting from the whole idea
from rocker.
Thanks for thinking of me.
Indeed, I have a package (GRANBase, name possibly to be changed, paper
being written) which will get you old versions of package from CRAN or
Bioconductor (currently) or arbitrary SCM (experimental/forthcoming). The
software is functional but a bit rough right now but is in the process of
being polished during the paper-writing process.
In fact, in preparation for the blog post you linked, I did something quite
analagous to what I believe you are talking about, creating an AMI with R
2.12 and then populating it with old package versions listed in a published
sessionInfo using GRANBase+switchr.
GRANBase + switchr do a lot of things related to the same ideas you guys
are exploring, but the bits most relevant here are locatePkgVersion and
getPkgVersions.
We also have the concept of lazy/JIT repositorories, so it would be
sufficient to have a list of of the package versions you wish to define as
a cohort, whether it is a previous state of the entire CRAN ecosystem
(e.g., CRAN for R 2.x.x) or something narrower. Looks like the crandb
software @hadley mentions gives us that (and a lot more, cool project!)
Happy to chat about this stuff more.
~G
On Fri, Oct 10, 2014 at 10:24 AM, Dirk Eddelbuettel <
[email protected]> wrote:
Re
- r-base-x.y.z we may as well print the z that was last and use the
'final such version' -- but the idea is good.- yes, 'foo` was meant to designate a CRAN package name; sorry
omitting all the underscores and 2s you're used too ;-)- and yes, there may be some code floating around but we have to make
it available here or else we set users up for the nasty ones of 'current
version of foo does not build on ancient R' detracting from the whole idea—
Reply to this email directly or view it on GitHub
#29 (comment).
Gabriel Becker
Graduate Student
Statistics Department
University of California, Davis
from rocker.
@gmbecker thanks for chiming in here. Yeah, it sounded like your efforts
would be rather complementary: your approach pre-supposes the right version
of R (e.g. via the amazon AMI image), which is something it sounds like we
can can accomplish in a straight-forward manner on Docker as
@eddelbuettel's suggests, while it looks like you've figured out how to get
the right package for that version. Can you give us a quick example of what
that looks like? e.g. is there the equivalent of an install.packages
function in GRANbase that I could run on some very old version of R and
know that it would build correctly?
On Fri, Oct 10, 2014 at 11:00 AM, Gabe Becker [email protected]
wrote:
@cboetig,
Thanks for thinking of me.
Indeed, I have a package (GRANBase, name possibly to be changed, paper
being written) which will get you old versions of package from CRAN or
Bioconductor (currently) or arbitrary SCM (experimental/forthcoming). The
software is functional but a bit rough right now but is in the process of
being polished during the paper-writing process.In fact, in preparation for the blog post you linked, I did something
quite
analagous to what I believe you are talking about, creating an AMI with R
2.12 and then populating it with old package versions listed in a
published
sessionInfo using GRANBase+switchr.GRANBase + switchr do a lot of things related to the same ideas you guys
are exploring, but the bits most relevant here are locatePkgVersion and
getPkgVersions.We also have the concept of lazy/JIT repositorories, so it would be
sufficient to have a list of of the package versions you wish to define as
a cohort, whether it is a previous state of the entire CRAN ecosystem
(e.g., CRAN for R 2.x.x) or something narrower. Looks like the crandb
software @hadley mentions gives us that (and a lot more, cool project!)Happy to chat about this stuff more.
~GOn Fri, Oct 10, 2014 at 10:24 AM, Dirk Eddelbuettel <
[email protected]> wrote:Re
- r-base-x.y.z we may as well print the z that was last and use the
'final such version' -- but the idea is good.- yes, 'foo` was meant to designate a CRAN package name; sorry
omitting all the underscores and 2s you're used too ;-)- and yes, there may be some code floating around but we have to make
it available here or else we set users up for the nasty ones of 'current
version of foo does not build on ancient R' detracting from the whole
idea—
Reply to this email directly or view it on GitHub
#29 (comment).Gabriel Becker
Graduate Student
Statistics Department
University of California, Davis—
Reply to this email directly or view it on GitHub
#29 (comment).
Carl Boettiger
UC Santa Cruz
http://carlboettiger.info/
from rocker.
@hadley @gmbecker I've created
https://github.com/rocker-org/rocker-versioned and invited you both to the
repo.
On Fri, Oct 10, 2014 at 11:28 AM, Carl Boettiger [email protected] wrote:
@gmbecker thanks for chiming in here. Yeah, it sounded like your efforts
would be rather complementary: your approach pre-supposes the right version
of R (e.g. via the amazon AMI image), which is something it sounds like we
can can accomplish in a straight-forward manner on Docker as
@eddelbuettel's suggests, while it looks like you've figured out how to get
the right package for that version. Can you give us a quick example of what
that looks like? e.g. is there the equivalent of aninstall.packages
function in GRANbase that I could run on some very old version of R and
know that it would build correctly?On Fri, Oct 10, 2014 at 11:00 AM, Gabe Becker [email protected]
wrote:@cboetig,
Thanks for thinking of me.
Indeed, I have a package (GRANBase, name possibly to be changed, paper
being written) which will get you old versions of package from CRAN or
Bioconductor (currently) or arbitrary SCM (experimental/forthcoming). The
software is functional but a bit rough right now but is in the process of
being polished during the paper-writing process.In fact, in preparation for the blog post you linked, I did something
quite
analagous to what I believe you are talking about, creating an AMI with R
2.12 and then populating it with old package versions listed in a
published
sessionInfo using GRANBase+switchr.GRANBase + switchr do a lot of things related to the same ideas you guys
are exploring, but the bits most relevant here are locatePkgVersion and
getPkgVersions.We also have the concept of lazy/JIT repositorories, so it would be
sufficient to have a list of of the package versions you wish to define
as
a cohort, whether it is a previous state of the entire CRAN ecosystem
(e.g., CRAN for R 2.x.x) or something narrower. Looks like the crandb
software @hadley mentions gives us that (and a lot more, cool project!)Happy to chat about this stuff more.
~GOn Fri, Oct 10, 2014 at 10:24 AM, Dirk Eddelbuettel <
[email protected]> wrote:Re
- r-base-x.y.z we may as well print the z that was last and use the
'final such version' -- but the idea is good.- yes, 'foo` was meant to designate a CRAN package name; sorry
omitting all the underscores and 2s you're used too ;-)- and yes, there may be some code floating around but we have to make
it available here or else we set users up for the nasty ones of
'current
version of foo does not build on ancient R' detracting from the whole
idea—
Reply to this email directly or view it on GitHub
#29 (comment).Gabriel Becker
Graduate Student
Statistics Department
University of California, Davis—
Reply to this email directly or view it on GitHub
#29 (comment).Carl Boettiger
UC Santa Cruz
http://carlboettiger.info/
Carl Boettiger
UC Santa Cruz
http://carlboettiger.info/
from rocker.
I was able to get R 2.0.0 to compile from svn as Dirk suggested, but not R 1.0. I also took a look at installing the binaries from the debian snapshots, but this requires a bit more tweaking to grab dependencies. Anyway, I've added examples of both approaches to the new repository; feel free to modify or delete them as you see fit. You could probably knock out a lot of versions pretty quickly by merely adjusting the svn tags. Since development has moved to that repo I'll close this issue here.
from rocker.
Would it be possible to manually tag rocker/r-base
just before an update of the R version occurs? By 'manually', I mean go to the 'build settings' tab in docker hub, and triggering a build with the corresponding Docker tag name.
from rocker.
If I hear "manual" I don't want yet another job to take care of / have to remember. What we have now is not all that bad:
edd@max:~$ docker images r-base
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
r-base 3.2.3 7939bc63acf9 13 days ago 1.071 GB
r-base latest 7939bc63acf9 13 days ago 1.071 GB
r-base 3.2.2 d8d772db8b82 11 weeks ago 998.9 MB
r-base 3.2.1 38a6a6b62751 6 months ago 563.5 MB
r-base 3.2.0 c09b226d89bc 6 months ago 551.6 MB
r-base 3.1.3 8a0dd612a7f5 9 months ago 516.7 MB
r-base 3.1.2 c04052b3ddd2 10 months ago 483.5 MB
edd@max:~$
Good enough?
[ And yes, some of those where off. I think 3.1.2 and 3.1.3 both are 3.1.3 etc pp. But preservation of old versions is not really the stated goal of this project, irrespective of how many times people nudge us that way. We do have some related projects. ]
from rocker.
I think this might, thanks @eddelbuettel . (One of my packages apparently does not CRAN-check on R 3.1, and I am trying to hunt this down, so I need access to an 'old' version of R, preferrably via docker.) Given the mapping from tag to image ID, I think I can access these images from docker-hub by using the FROM image@digest
syntax which was introduced in Docker 1.6. I will write this up if/when I get it working. thanks again,
from rocker.
I'd add Depends: R (>= 3.2.0)
.
(and I am only half in jest...)
from rocker.
Steven,
If you have issues installing/managing appropriately old versions of your
package's dependencies, my switchr package (
https://github.com/gmbecker/switchr) is designed to help with that. See
specifically ?rVersionManifest to get a manifest of appropriate tarballs
for use in install_packages.
Please feel free to drop me a line if you have any questions or it doesn't
seem to meet your needs in some way (or doesn't work).
On Mon, Jan 11, 2016 at 10:02 AM, Steven Pav [email protected]
wrote:
I think this might, thanks @eddelbuettel https://github.com/eddelbuettel
. (One of my packages apparently does not CRAN-check on R 3.1, and I am
trying to hunt this down, so I need access to an 'old' version of R,
preferrably via docker.) Given the mapping from tag to image ID, I think I
can access these images from docker-hub by using the FROM image@digest
syntax which was introduced in Docker 1.6. I will write this up if/when I
get it working. thanks again,—
Reply to this email directly or view it on GitHub
#29 (comment).
Gabriel Becker, PhD
Associate Scientist (Bioinformatics)
Genentech Research
from rocker.
I think @eddelbuettel's half jest solution wins him a cigar, at least for now.
from rocker.
Related Issues (20)
- Use reticulate and python in docker container to deploy plumber api HOT 1
- libk5crypto in r-base image doesn't work: "Random number generator could not be seeded while getting initial credentials" HOT 8
- rocker/r-base:4.2.1: addgroup: addgroup with two arguments is an unspecified operation. HOT 3
- r-base:4.1.2 and higher on ppc64le does not work. HOT 4
- apt-get install failing for libssl-dev with dpkg error in docker build HOT 6
- Cannot connect to SQL database HOT 4
- cannot build docker due to usrmerge failing HOT 4
- `'lib = "/usr/local/lib/R/site-library"' is not writable` error when install R packages by non-root user HOT 3
- wiki: best practices for creating dockerfiles HOT 6
- `r-base` (Docker Official Image) is not updated HOT 5
- Migrating from Dockerhub? HOT 3
- Container for RStudio (not server) HOT 1
- MRAN repository snapshots were deleted - Failing jobs because packages can't be found anymore HOT 5
- docker v18 & packages repositories & rocker's images HOT 5
- unable to load shared object
- Update results in deletion of all install package...
- installation testing fails HOT 1
- r: error while loading shared libraries: libR.so: cannot open shared object file: No such file or directory
- Docker image r-base:4.2.1 not reproducible HOT 4
- Installing unstable apt packages? HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rocker.