Hi Todd, Jack,

I’ll do top-posting for change :), and keep the relevant bits visible below.


The unfortunate issue with letting R handling its dependencies downloading
on its own is, that it turns difficult to ensure consistent environment across 
sites:
* build reproducibility is shot in the foot, since you will rely on external 
downloads
* algorithmic reproducibility is shot in the head, since versions can creep 
forward

AFAIK, cases like with R Bioconductor are hopeless, because these fellows are 
moving
in a totally different angle, than people that wish to rely on artefacts 
(repositories)
and the view that most EasyBuilders have, which is that of bit-accurate 
rebuilds.


The concept of using symlinks to activate/deactive software components, though,
is a very valid one and not all that remote from what was discussed
during a spring 2013 hackathon in Cyprus, about trying out “Stowed 
toolchains/bundles” :
* ie. let many module versions exist and create mix’n’match symlinked 
metamodules

If you read about “Stow” tool on GNU’s pages you will probably realise this 
option:
https://www.gnu.org/software/stow/

fi. this technique would allow to trim down HPCBIOS_Bioinfo inflated 70+ 
modules bundle,
down to a dozen AND permit extensions management in a way similar to what you 
describe.
This may prove to be an essential method to let $PATH, $LD_LIBRARY_PATH etc to 
breath,
look reasonable again & give users freedom to choose what they wish included 
and not.

After all, it IS cheaper to manage a symlink farm than a bunch of modulefiles!

To summarise: using symlinks may prove to be a reasonable approach to deal
with complicated extensions or modules sets, although it is not clear yet
what may be the side-effects of applying this logic universally. I’ve used R 
as an example, but the arguments may well apply for Python, Perl, Ruby, etc.
(claiming no expert in any of these categories)

I’d be interested to hear more about Spack’s experience/insight on the matter.

cheers,
Fotis

On Apr 2, 2015, at 7:01 AM, Todd Gamblin <[email protected]> wrote:
> Activation *mostly* just symlinks the external module (and any dependency
> extensions) into the python install, but the python package itself can
> extend the way activation is done.  That is used to provide some custom
> logic for merging easy_install.pth files and other things that would
> otherwise conflict within the same prefix.  So, Spack python installs are
> a bit like virtualenvs, in that you can swap versions of extensions in and
> out by activating/deactivating them.
[.. ..]
> With this kind of design, I *think* it would just require overriding
> activate/deactivate in the R package, unless R has something MUCH more
> complicated than Python.


-- 
echo "sysadmin know better bash than english" | sed s/min/mins/ \
  | sed 's/better bash/bash better/' # signal detected in a CERN forum






Reply via email to