- Allow to designate module by its full path file name on
module-tag
,module-hide
andmodule-forbid
. (fix issue #485) - Introduce
tag
extra specifier to search modules onavail
,whatis
andpaths
sub-commands based on tags applied. Tag abbreviation may also be used as extra specifier name. - Add ability to specify multiple names on one extra specifier criterion to select modules matching any of these names (e.g.,
env:PATH,LD_LIBRARY_PATH
) - Add ability to specify multiple values on one variant criterion to select modules providing any of these variant values (e.g.,
foo=val1,val2
) - Add the
indesym
element in the allowed value list of thelist_output
andlist_terse_output
configuration options. When set, symbolic versions are reported as independent elements rather along the loaded module they are attached to. - Add the
alias
element in the allowed value list of thelist_output
andlist_terse_output
configuration options. When set, module aliases targeting loaded modules are reported. - Introduce
sticky_purge
configuration option to define behavior when unloading sticky or super-sticky module during apurge
command. Raise anerror
(default) or emit awarning
or besilent
. When set, it defines theMODULES_STICKY_PURGE
environment variable. Default value can be changed with--with-sticky-purge
installation option. (fix issue #502) - Introduce
modulepath-label
modulerc command, which defines label used instead of modulepath directory path inavail
output. - More than one global rc file can now be specified in
MODULERCFILE
or viarcfile
configuration option. - Add the
unique_name_loaded
configuration option to allow, when enabled, only one module loaded per module name. When set, it defines theMODULES_UNIQUE_NAME_LOADED
environment variable. Default value (disabled) can be changed with--enable-unique-name-loaded
installation option. - Add
evaluation-errors
design notes. - Add
abort_on_error
configuration option to define module sub-commands that should abort when a module evaluation fails instead of continuing their evaluation sequence. When configuration option is set, it defines theMODULES_ABORT_ON_ERROR
environment variable. Default value can be changed with--with-abort-on-error
installation option. - Add support for
abort_on_error
evaluation behavior onload
,mod-to-sh
andtry-load
sub-commands. - Report issue on modulefile when it fails to load an erroneous requirement through
module try-load
modulefile command. - Doc/Install: modernize modulefile code example in documentation and installed example modulefiles.
- Vim: correctly highlight modulefile commands containing a dash character.
- Update requirement load error report to place it only under the message block of the module requiring this load. This change helps to better understand the chronology of actions and from where an error occurs.
- Do not report requirement load error when an alternative requirement module is found and loaded afterward. (fix issue #509)
- Do not render an error exit code on multi-module option requirement when one module option fails to load but another does. (fix issue #510)
- Do not report module not found error when loading a requirement if an alternative requirement module is found and loaded afterward. (fix issue #511)
- Add
--glob
option toremove-path
modulefile command in order to remove any values in variable matching a glob-style pattern. - Record module specification on which loaded module stickiness applies in
__MODULES_LMSTICKYRULE
environment variable. It helps to determine if stickiness is satisfied when changing loaded modules. Which was not working correctly for virtual modules. (fix issue #506) - Silently ignore cache file when it requires a greater Modules version. (fix issue #515)
- Doc: move
modulefile(5)
man page in section 5. (fix issue #518 with contribution from Laurent Chardon) - Add
source_cache
configuration option to cache files evaluated in modulefiles withsource
Tcl command. Files sourced multiple times are only read once when option is enabled.source_cache
is disabled by default. When set, it defines theMODULES_SOURCE_CACHE
environment variable. Default value can be changed with--enable-source-cache
installation option. - Add support for
abort_on_error
evaluation behavior onunload
sub-command. - A modulefile is unloaded anyway even if an evaluation error occurs when
--force
option is used onml
,purge
,reload
,reset
,restore
,stash
,stashpop
,switch
andunload
sub-commands. To forbid the unload of a modulefile it is recommended to tag itsuper-sticky
withmodule-tag
command. - Disable
abort_on_error
when--force
option is used. In this case, behavior is to continue when an error occurs. - Add support for
abort_on_error
evaluation behavior onml
command. Abort on error behavior is on by default withml
. Removing it fromabort_on_error
's value enables the continue on error behavior. - Add support for
abort_on_error
evaluation behavior onreload
command. Abort on error behavior is on by default withreload
. Removing it fromabort_on_error
's value enables the continue on error behavior. - Add support for
abort_on_error
evaluation behavior onpurge
sub-command. - Add support for
abort_on_error
evaluation behavior on unload phase ofswitch
command. Abort on error behavior is on by default there. Removingswitch_unload
fromabort_on_error
's value enables the continue on error behavior. - Add support for
abort_on_error
evaluation behavior onswitch
command. Abort on error behavior is applied ifswitch
value is set inabort_on_error
and either switch unload or switch load phase fails. - Install: installation option
--enable-new-features
is updated to enable abort on error behavior onload
andswitch
sub-commands. - Lib: slightly adapt code of Modules Tcl extension library to properly build against Tcl 9.0.
- Adapt alias unset shell code for sh-kind shells to avoid errors when alias to unset is not defined.
- Adapt function unset shell code for sh-kind shells to avoid errors when function to unset is not defined.
- No output of unload of switched-off failed and load of switched-on failed error messages when
module switch
command is run from a modulefile. - No Switching block message report when
module switch
command is run from a modulefile. - Report all error and warning messages locally under Loading or Unloading block message rather reporting some of them under the block message of the main action. These errors and warnings are thus reported where they occur.
- Report switched-on load failure as error rather warning.
- Report switched-on module locating or access issues only once.
- Report conflict error message when it occurs rather than after modulefile evaluation.
- Update conflict error message to report all conflicting modules name and version rather conflict module specification.
- Fix conflict error check to avoid reporting both unloading conflict failed and conflict is loading messages.
- Raise an error and stop modulefile evaluation when
module switch
command fails unless if--force
option is set. - When a useless requirement unload fails, do not increase error count as this failure is reported as a warning and main unload process is not affected.
- Path element equals to delimiter character is allowed on
append-path
andprepend-path
modulefile commands. (fix issue #522) - Add
bash-eval
shell mode tosource-sh
modulefile command andsh-to-mod
sub-command. With this mode, the generated output of the bash shell script is evaluated to get the environment changes instead of sourcing this script. (fix issue #519) - Add
--ignore
option tosource-sh
modulefile command to define shell elements changed by shell script that should be ignored. (fix issue #503) - Init: Improve Tcsh shell completion script to complete against existing files when pattern starts with
/
,.
or~/
. (fix issue #523) - Add
--user
option tomodule-forbid
,module-hide
andmodule-tag
modulefile commands to forbid, hide or tag only if user is listed in the value of this new option. (fix issue #520 with contribution from Jérémy Déchard) - Add
--group
option tomodule-forbid
,module-hide
andmodule-tag
modulefile commands to forbid, hide or tag only if one user's group is listed in the value of this new option. (fix issue #520 with contribution from Jérémy Déchard)