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
>>
>>

Reply via email to