Hi Pieter,

On 24/06/15 10:58, Pieter Neerincx wrote:
Hi,

On Jun 24, 2015, at 7:34 AM, Kenneth Hoste <kenneth.ho...@ugent.be> wrote:

Hi Riccardo,

On 19/06/15 10:32, Riccardo Murri wrote:
Hi Ken, all,

(Kenneth Hoste, Thu, Jun 18, 2015 at 04:32:27PM +0200:)
We deliberately do not enable 'dependency=True', to ensure we can reproduce
the exact same installation later; if you let R automagically resolve
dependencies and let it pick the most recent version at that time for the
dependencies, you can't do an exact reproduced install.
Could this be worked around by having EB save the list of installed R
packages + versions (like `pip freeze`) upon first install, then re-use
the saved list if available.

Something along these lines (pseudo-code):

         package_list_file = easyconfig_file_name.replace('.eb', '.pkglist.csv')
         if not exists(package_list_file):
            # 1. install packages by name, let R choose version
            # 2. dump list of installed packages to file: (pkgname, version)
         else:
            # 1. read in the pkglist.csv file
            # 2. use R's install_version() to install the exact same pkg and 
version
I like this idea...
+1

We could have an easyconfig parameter like 'auto_deps = True', and when that is 
set, EasyBuild lets R resolve dependencies by itself.

Once the full list of easyconfigs has been installed, EasyBuild could then see 
what got installed, and which versions, and adjust the list of extensions 
included in the easyconfig file. The tricky bit may be the order, but there's 
probably a solution for that (see Stefano's R script).

Now, who's up for implementing this? :-)
Yesterday I started working on an R-script that generates an *.eb from an 
existing R installation. This is based on Stefano's code (Many thanks for 
sharing that!) and adds some commandline switches, help and code to figure out 
whether a package came from a CRAN repo or from BioConductor. Hence this is 
slightly different compared to the above as it generates a complete *.eb from 
pure R, but I can easily add an option to only generate a pkglist file, which 
may then be used by an existing *.eb.

Is it Ok if I add this with a README to the ..../r/R/ dir in the EasyConfigs 
repo and create a pull request or would you prefer this kind of supplementary 
code to go elsewhere?

It would be better if you could integrate this in the R easyblock somehow (I realize that may be a lot to ask for).

We currently don't have a good location for this; I don't think we should start adding 'random' scripts to the easyconfigs repo...

Maybe go with https://github.com/fgeorgatos/easybuild.experimental for now to share it with others?

We should look into a contrib directory in the main EasyBuild repo (https://github.com/hpcugent/easybuild), where people can get stuff included without too much reviewing or very strict requirements, we already have a couple of PRs for stuff like that (see https://github.com/hpcugent/easybuild-framework/pull/1190, https://github.com/hpcugent/easybuild-framework/pull/1180).


regards,

Kenneth

Reply via email to