---
# System prepended metadata

title: 'Agenda for Lmod Zoom Mtg Nov. 08, 2022'

---

# Agenda for Lmod Zoom Mtg Nov. 08, 2022

- Q/A
- Discussion on **module category**
    - see https://github.com/TACC/Lmod/pull/600
    - to what extend can output be controlled from a hook?
        - Lmod has two types of tables:
            - beautiful tables
                - these "go horizontally"
            - column tables (as produced by "ml cat" or "ml" or "ml av")
        - Alan is looking into support for subcategories in hook
            - mostly working, but can't (always?) control order of how subcategories appear in output
- Renaming **master** branch to **main**
- The sourceforge Git repo has been removed
  - Now only contains a README file that points to GitHub repo
  - Due to problems with mirroring between SourceForge + GitHub
  - Tarball distribution will continue
- File and Internal changes (to get rid of "master" term in the codebase)
  - Also helps with tab completion in editor (Master vs MasterControl)
  - Changing MasterControl.lua -> MainControl.lua
  - Changing Master.lua -> Hub.lua
  - Internal Change **masterTbl()** -> **optionTbl()**
  - Note: `masterTbl = optionTbl` so that the files `SitePackage.lua` and `/etc/lmod/lmod_config.lua` can continue to use `masterTbl()` to access commandline options. This means that Sites do not have to change to `optionTbl()`.
      - Can't produce a (deprecation) warning when `masterTbl` is still used since that would be visible to end users of Lmod
- Should users be allowed to unload dependent modules?
    - see thread on Lmod-users mailing list: https://sourceforge.net/p/lmod/mailman/message/37730407
    - triggered by integrating Lmod into JupyterHub
        - users can load modules through clicking
        - unloading of modules can easily be done accidentally in this context
        - fixing that mistake again is tricky...
    - with depends_on, Lmod actually knows when a required module gets unloaded (since it prints a warning)
        - but there's currently no option to make this an error
    - could be supported through a new "requires" statement, which could be stricter than "depends_on"
        - "requires(Python)" would not allow unloading Python unless Jupyter is unloaded
    - another option could be to have to add a configure option to Lmod to make "depends_on" more strict
        - something like LMOD_DEPENDS_ON_UNLOAD=warning vs LMOD_DEPENDS_ON_UNLOAD=error (or 'strict'?)
    - things get complex with depends_on in a hierarchy
    - with depends_on: if gnuplot is loaded directly by the user, it's not considered a dependency by Lmod
        - so unloading Octave (which depends on gnuplot) would not trigger an unload of gnuplot
    - Lmod could perhaps also support automatically unloading of modules that depend on what's being unloaded
        - for example unload TensorFlow if Python gets unloaded 
- Presentation "How Lmod processes TCL modulefiles"
    - slides at https://github.com/TACC/Lmod/blob/main/my_docs/22/lmod_zoom_mtg_2022_11_08/presentation.pdf


## Attendees

- Robert McLay (TACC)
- Kenneth Hoste (HPC-UGent, Belgium)
- Alex Domingo (Vrije Universiteit Brussel, Belgium)
- Danilo González (HPCNow!)
- Dan Green (NC State Univ.)
- Alan O'Cais (CECAM/University of Barcelona)
- Raj Ayyampalayam (University of Georgia)
- Google Pixel 6a (?)
- mk (?)
- Matthew Cawood (TACC)

## Next meeting

- Tue 6 Dec 2022 at 09:30 US Central / 15:30 UTC