We configure EB using env vars so I have EASYBUILD_HIDE_DEPS defined as so:

DEPS_LIST="Autoconf,Automake,Autotools,binutils,Bison,flex,gettext,help2man,hwloc,libpciaccess,libtool,libxml2,M4,ncurses,numactl,xorg-macros,XZ,zlib,libpng,ncurses,libsodium,pkg-config,Tcl,bzip2,OpenPGM,libreadline,util-linux,freetype,SQLite,libffi,gettext,expat,gperf,libxml2,fontconfig,gettext,GMP,ZeroMQ,XML-Parser,intltool,X11,Tk,Tkinter,SQLite,Doxygen,GSL,Guile,Libint,Szip,gc,libmatheval,libunistring,libxc,libxsmm,pkgconfig"

export EASYBUILD_HIDE_DEPS=$(echo $DEPS_LIST | sed -e $'s:,:\\\n:g' | sort -n | 
paste -sd ',' - | sed 's:,:,:g')

I'm in the habit of doing a dry run every time I install something now so I can 
have a quick scan of what EB is going to do and I add anything that I think the 
users won’t be too interested in. They can always see everything with ' ml av 
--show-hidden' (using Lmod).

Cheers,

Jon

------------------------------------------------
Jon Roddom
SCARF Systems Administrator
Scientific Computing Department
STFC Rutherford Appleton Laboratory
------------------------------------------------


-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Ole Holm Nielsen
Sent: 23 November 2018 11:10
To: [email protected]
Subject: Re: [easybuild] Retrospectively hiding modules / hiding by default

On 11/23/2018 11:44 AM, Alvarez, Damian wrote:
> A few notes of caution when rebuilding the whole stack:
> 
> -Doing --module-only is not guaranteed to work in all cases. Sometimes 
> variables are computed during the build, and might have an effect on the 
> module created. EB will print a diff if the module already exist, pay 
> attention to it.
> -However, if you are reinstalling a newly hidden module, EB won't find the 
> old one (since it will look for module/version, instead of module/.version) 
> and so the diff won't be printed and you can potentially miss something.
> -You will need to manually delete the old non-hidden modules carefully.
> -You have to be careful and filter out the hidden dependencies, you can't say 
> "eb $MY_EB_REPO/*eb --module-only", or you'll be recreating already existing 
> and visible modules.

Thanks very much for your important words of caution!  Dragons are 
obviously lurking in this field!

In this case, hiding of existing modules seems to be an error prone or 
impossible task.  It may be better to develop an entirely new EasyBuild 
module stack from scratch.  Then one can have two disjoint module stacks 
"old" and "current" available for the users, and users should be 
migrated slowly to the "current" stack until the "old" stack can be 
removed after a year or two.  Does this sound like a good approach?

We still need documentation of EASYBUILD_HIDE_DEPS and examples of usage 
for building a new stack.

> In my opinion, for a full stack makes more sense to use the rc files from 
> lmod, as Markus said.

Thanks.  Robert McLay (the author of Lmod) did recommend the 
isVisibleHook though when I asked him at the Supercomputing 2018 conference.

Thanks,
Ole

Reply via email to