Skip to content

Commit 8c2a62c

Browse files
committed
doc: add "Reducing maintenance load" section in EESSI doc
Signed-off-by: Xavier Delaruelle <[email protected]>
1 parent a615311 commit 8c2a62c

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

doc/source/design/eessi.rst

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ equivalent Tcl modulefile to ensure the same functionality:
3737
* ``error`` command is equivalent to ``LmodError``
3838
* ``module-help`` (v5.6+) is equivalent to ``help`` (if version below 5.6 is
3939
expected, define a ``ModulesHelp`` procedure)
40-
41-
A ``.modulerc`` file will be needed to define the ``sticky`` tag onto EESSI
42-
module.
40+
* ``module-tag`` command is equivalent to ``add_property`` (needed to define
41+
the ``sticky`` tag)
4342

4443
.. _EESSI bash script:
4544

@@ -209,19 +208,6 @@ stored in the same directory as the Lua modulefile: when evaluating the
209208
``EESSI/2025.06`` module, Lmod will interpret the ``EESSI/2025.06.lua`` file
210209
and Environment Modules the ``EESSI/2025.06`` file.
211210

212-
The ``.modulerc`` file needed in this directory by Environment Modules to
213-
eventually set the ``EESSI`` module sticky should use code to avoid Lmod to
214-
parse it (as Lmod does not know the ``module-tag`` modulefile command):
215-
216-
.. code-block:: tcl
217-
218-
#%Module
219-
if {![info exists ::env(LMOD_VERSION_MAJOR)]} {
220-
if {[info exists ::env(EESSI_MODULE_STICKY)]} {
221-
module-tag sticky EESSI
222-
}
223-
}
224-
225211
Sourcing the EESSI ``bash`` initialization script
226212
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
227213

@@ -244,4 +230,29 @@ determine the correct module tool initialization script to source.
244230
Such adaptation helps to keep a single ``bash`` initialization script whatever
245231
the module tool used.
246232

233+
Reducing maintenance load
234+
-------------------------
235+
236+
``EESSI/2025.06`` modulefile only in Tcl syntax
237+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
238+
239+
To reduce the maintenance load, it would be nice to have the ``EESSI``
240+
modulefiles only in Tcl and not in both Tcl and Lua syntaxes.
241+
242+
Lmod supports evaluation of Tcl modulefiles, but we need to check that a
243+
syntax understood by both module tools exists to have a single implementation
244+
of ``EESSI`` modulefile.
245+
246+
Based on the analysis of `EESSI Lua module`_, the following things should be
247+
taken into account:
248+
249+
* ``report`` procedure should be added to Lmod to support an equivalent to
250+
``LmodMessage`` in Tcl evaluation context
251+
* ``module-help`` is available on Lmod (in the not yet released version after
252+
8.7.65): if EESSI would like to support older Lmod releases, the
253+
``ModulesHelp`` procedure should be used instead
254+
* ``add-property`` should be used instead of ``module-tag`` to define the
255+
module ``sticky``: Environment Modules 5.6+ supports defining a tag with
256+
this command
257+
247258
.. vim:set tabstop=2 shiftwidth=2 expandtab autoindent:

0 commit comments

Comments
 (0)