Here's what some output looks like from using that hook: [ocaisa@gpunode1 hier]$ module cat
To get a list of every module in a category execute: $ module category Foo ------------------------------------------------------------- List of Categories -------------------------------------------------------------- Catchall: This is everything │ ├──Develop: This is develop │ │ ├──Tools: This is tools │ │ │ ├──MPI: This is MPI │ ├──Math: This is math │ │ ├──Eigen: This is eigen [ocaisa@gpunode1 hier]$ module cat develop tools To learn more about a package and how to load it execute: $ module spider Bar ------------------------------------------------------------------- Develop ------------------------------------------------------------------- scikit-build (1) └─MPI/OpenMPI (1) └─Tools/FFTW (1) └─Tools/scikit-build (1) -------------------------------------------------------------------- Tools -------------------------------------------------------------------- FFTW (1) scikit-build (1) └─MPI/OpenMPI (1) On Thu, 10 Nov 2022 at 12:30, Alan O'Cais <[email protected]> wrote: > Hi Frank, > > On Thu, 10 Nov 2022 at 11:42, Heckes, Frank <[email protected]> wrote: > >> The EB hook injecting categories into lmod would be really great thing to >> have. >> > > To be clear, the EasyBuild hook would be a parser hook that would inject > something like `categories=['Tools','Develop']` into the easyconfig > instance. With support for `categories` in EasyBuild, this would result in > `whatis("Category: Tools, Develop")` being injected into the final module > file (which is something that _only_ Lmod understands right now). > > >> Sorry, if I might have overlooked it, but I would be very interested to >> have a look at the lmod – hook you implemented for the lmod subcategories. >> Could you please share a link, if it’s ‘git-able’? >> > I sent a link to the Lmod hook already, but just in case > https://gist.github.com/ocaisa/3a72804123923fbd753c1cae12261d9c (requires > Lmod 8.7.14, and modules that already include some `Category`ies). > > One thing about the EB installation for plain HMNS. The module method to >> install EB instead of utilizing pip is perfectly fine? (as long as the >> environment is set-up correctly) >> > > Yes, that's fine. There's no link between how EB was installed and what > module naming scheme you want to use. > > Alan > > >> Cheers, >> >> -Frank >> >> >> >> *From:* [email protected] < >> [email protected]> *On Behalf Of *Alan O'Cais >> *Sent:* Wednesday, 9 November 2022 17:27 >> *To:* [email protected] >> *Subject:* Re: [easybuild] CategorizedHMNS: easybuild installation method >> >> >> >> Hi Frank, >> >> >> >> CategorizedHMNS is not widely used (as far as I know) so you there may be >> some issues lurking there. Plain HMNS is much more widely used and I'd say >> a better choice. Additionally there's a new feature in Lmod that just got >> released that allows us to define *multiple *categories inside a module >> file (EasyBuild currently only allows one "moduleclass"). I haven't added >> support for it yet in EB but it's something I want to look at really soon. >> >> >> >> The plan would be that you use an EB hook to inject the categories that >> you want for a piece of software (based off some mapping that you store). >> This would add the categories to the module file and then you use Lmod to >> search for software based on categories. You use `module cat` to see >> available categories, `module cat <category name>` to show software in a >> category and then `module spider <software name>` to see how to load >> (versions of) that software (including any gateway modules). >> >> >> >> You can also use Lmod hooks with categories, for example I can imagine >> wanting to hide modules of a certain category for users in certain groups. >> Personally, I've implemented an Lmod hook that allows me to have >> subcategories so I can implement a complete taxonomy. >> >> >> >> Hope that helps, >> >> >> >> Alan >> >> >> >> >> >> On Wed, 9 Nov 2022 at 16:37, Heckes, Frank <[email protected]> wrote: >> >> Hi all, >> >> The latest and also the previous tutorials recommends upon using HMNS: >> >> >> >> ‘. . . *We strongly recommend using an EasyBuild installation that was >> **installed >> via "**pip install**" or "**pip3 install**"* >> <https://easybuilders.github.io/easybuild-tutorial/2022-isc22/installation/#method-1-using-pip-recommended>* >> in >> this part of the tutorial. **. . .’* >> >> (in >> https://easybuilders.github.io/easybuild-tutorial/2022-isc22/module_naming_schemes/ >> ) >> >> >> >> Does the recommendation also apply to ‘production’ environments or is >> this only a didactical safety set-up to avoid the clashes resulting from >> eventually existing installation with flat namespace or other modules? My >> question is, can I use the module installation procedure for >> CategorizedHMNS builds without running into problems, as long as I follow >> the donts described in the page above ? Many thanks in advance. >> >> Cheers, >> >> -Frank Heckes >> >>

