This file describes changes in recent versions of Modules. It primarily documents those changes that are of interest to users and admins.
--optional
option on prereq
, prereq-all
, depends-on
and always-load
modulefile
commands. Expressed optional dependency is considered satisfied even if
modulefile is not loaded. If optional requirement is loaded afterward,
dependent module is automatically reloaded, unless if the auto_handling
configuration option is disabled.module try-load<module>
command is considered
optional. Dependent module is automatically reloaded if the optional
requirement is loaded afterward, unless if the auto_handling
configuration option is disabled.prereq
, prereq-all
, depends-on
or always-load
modulefile
commands.--timer
command-line switch to report the total execution time of the module
command. Also
report the execution time of every internal procedure calls when mixed
with --debug
option.PATH
setup (to locate Modules' binaries location) from shell initialization
scripts to the autoinit
sub-command. (fix issue #462)MANPATH
setup (to locate Modules' man-pages) from
shell initialization scripts to the autoinit
sub-command. (fix issue #462)autoinit
sub-command. (fix issue #462)autoinit
, in
initialization scripts and Makefiles to guaranty correct evaluation in
case these paths contain a space character. Note that the quarantine
mechanism is not compatible with such installation paths.source-sh
and
sh-to-mod
when used
with fish shell script if regex-easyesc
fish
option is enabled. (fix issue #463)protected_envvars
configuration option to define a
list of environment variables that cannot be modified by modulefile
commands. When set, protected_envvars
defines MODULES_PROTECTED_ENVVARS
environment variable. (fix issue #429 with contribution from Adrien
Cotte)lint
sub-command to statically analyze syntax of
modulefiles, modulerc and global/user rc. (fix issue #451)tcl_linter
configuration option to define the
program used to analyze files with lint
sub-command. This option is set to
nagelfar.tcl
by default. When changed from default value,
the MODULES_TCL_LINTER
environment variable is defined.
Default value can be changed with --with-tcl-linter
and --with-tcl-linter-opts
installation options.--enable-nagelfar-addons
installation option
(enabled by default) to install specific syntax databases and plugins to
lint modulefiles, modulerc and global/user rc with Nagelfar. These files are
installed in the directory designated by the --nagelfardatadir
(DATAROOTDIR/nagelfar
by default).lint-sub-command
design notes.install
command rather cp
or mkdir
to install Modules
and guaranty consistent permission modes on deployed files.pushenv
value stacks on clear
sub-command.mod-to-sh-sub-command
design notes.mod-to-sh
sub-command to translate designated
modulefile(s) into code for specified shell. (fix issue #447)source
sub-command accepts modulefile specification as argument. If argument
does not correspond to a file path, search it among available
modulefiles. (fix issue #424)set-alias
only define shell alias and not shell
function.savelist
sub-command.
Filtering pattern is matched in a case insensitive manner by
default.--starts-with
and --contains
options on savelist
sub-command.list
sub-command output instead of only the first
one..savelist
sub-command output.--all
option on savelist
sub-command not to limit result to the
collection matching currently defined collection_target
.Shell support
section in modulefile(4)
man page to
describe how shells support the different kind of environment changes
that can be defined in modulefiles.autoinit
sub-command the initial environment state
in __MODULES_LMINIT
.
Enabled modulepaths and loaded modulefiles through modulespath
and initrc
initialization
configuration files are recorded in this new environment variable.reset
sub-command to restore initial environment. It takes recorded
environment in __MODULES_LMINIT
and restores it.restore
sub-command
equals __init__
.restore
sub-command and if default
collection does not exist, initial environment is restored.saveshow
sub-command equals
__init__
.saveshow
sub-command and if default
collection does not exist, initial environment content is
displayed.reset_target_state
configuration option to
determine behavior of reset
sub-command. When set to
__init__
(default value) initial environment is restored.
When set to __purge__
, a purge
sub-command is performed. Any other value,
corresponds to the name of a collection to restore
. When set, reset_target_state
defines MODULES_RESET_TARGET_STATE
environment
variable.initial-environment
design notes.restore
and reset
sub-commands to fully set environment in
collection or initial state.make testlint
or script/mt lint
. sh, bash and
ksh scripts are checked with ShellCheck tool and tcl scripts
are checked with Nagelfar.modulecmd.tcl
code and add Nagelfar inline comments
to fix linter reports.-h
/--help
option on mrel
, mpub
, mt
, mtreview
, nglfar2ccov
, mb
and mlprof
development
utilities.script/mt
and script/mb
utilities in CONTRIBUTING
guide.stash
sub-command to save current environment and restore initial one.stashpop
sub-command to restore stash collection then delete this collection
file.stashrm
sub-command to delete stash collection file.stashshow
sub-command to display stash collection file.stashclear
sub-command to delete all stash collection files.stashlist
sub-command to list all stash collection files.savelist
sub-command to filter out stash collections unless if --all
option is set.log-module-command
recipe. (fix issue #475)__MODULES_LMREFRESH
environment variable.refresh
sub-command to only evaluate loaded modules that defines volatile
environment changes (shell completion, alias or function). (fix issue
#477)modulefile_extra_cmds
hook variable that could be
defined in siteconfig.tcl
file to define specific commands in
modulefile interpreter context. modulefile_extra_cmds
is a list of command name
and relative procedure pairs. (fix issue #286)modulefile_extra_vars
hook variable that could be
defined in siteconfig.tcl
file to define specific variables in
modulefile interpreter context. modulefile_extra_vars
is a list of variable name
and value pairs. (fix issue #286)modulerc_extra_cmds
hook variable that could be
defined in siteconfig.tcl
file to define specific commands in
modulerc interpreter context. modulerc_extra_cmds
is a list of command name and
relative procedure pairs. (fix issue #286)modulerc_extra_vars
hook variable that could be
defined in siteconfig.tcl
file to define specific variables in
modulerc interpreter context. modulerc_extra_vars
is a list of variable name and
value pairs. (fix issue #286)Site-specific configuration
section in module(1)
man page.Collections
section with examples in module(1)
man page.rpmlint
rc configuration file to filter false
positive warning messages.libdir64
and
libdir32
directory locations when libdir
does
not end with 64 but contains 64.libdir
.hi
color key.
(fix issue #455)verbose2
if new tags are
applied to the loaded module. (fix issue #456)prereq
command on all already loaded requirements.
(fix issue #459)lib/config.guess
and
lib/config.sub
scripts in distribution tarball if generated
by autoreconf
.git
command in Makefile
only
if the definitions of version.inc
need to get built or
refreshed.variant
with no list of accepted value. Such variant
accepts any value specified. (fix issue #405)redirect_output
configuration option to control on
sh, bash, ksh, zsh and fish
shells whether or not the output of the module
function should be redirected from stderr
to stdout. When set, redirect_output
defines MODULES_REDIRECT_OUTPUT
environment variable.--redirect
/--no-redirect
command-line switches to supersede
the value of the redirect_output
configuration option on
sh, bash, ksh, zsh and fish
shells. (fix issue #410)--return-value
option to the getenv
and getvariant
modulefile
commands to force to return the value of respectively designated
environment variable or variant when modulefile is evaluated in
display mode. (fix issue #422)state
sub-command to display Modules states.supported_shells
state to get the list of the
shells that are supported by modulecmd.tcl
through the state
sub-command . (fix
issue #426)sh-to-mod
sub-command or
source-sh
modulefile
command. (fix issue #427)control-mode-behaviors
design notes.add-new-config-option
design notes.add-new-sub-command
design notes.--remove-on-unload
option to the remove-path
to also remove
value when modulefile is unloaded.module use<module>
or
module unuse<module>
modulefile command.--append-on-unload
option to the remove-path
and module unuse<module>
modulefile commands to append back when modulefile is unloaded the value
removed at load time or a specific value set after this option.--prepend-on-unload
option to the remove-path
and module unuse<module>
modulefile commands to prepend back when modulefile is unloaded the
value removed at load time or a specific value set after this
option.--noop-on-unload
option to the unsetenv
, remove-path
and module unuse<module>
modulefile commands to perform no operation when modulefile is
unloaded.--unset-on-unload
option to the unsetenv
modulefile command
to also unset environment variable when modulefile is unloaded.--set-if-undef
option to the setenv
modulefile command
to set environment variable when modulefile is loaded only this variable
is not yet defined.--with-bashcompletiondir
, --with-fishcompletiondir
and --with-zshcompletiondir
installation options to
install shell completion scripts in their system-wide location. (fix
issue #428)lmod-tcl-modulefile-compat
design notes.add-property
,
remove-property
and extensions
modulefile
commands for compatibility with Lmod Tcl modulefiles. These commands are
evaluated as a no-operation command.prereq-any
modulefile command for compatibility with
Lmod Tcl modulefiles. prereq-any
is an alias of prereq
command.prereq
command.ModulesVersion
in Modules Variables section
in modulefile(4)
man
page.ModuleVersion
as an alias over ModulesVersion
modulefile
variable for compatibility with Lmod Tcl modulefiles.reportError
and reportWarning
modulefile commands.require-fullname
modulefile command for
compatibility with Lmod Tcl modulefiles. This command aborts modulefile
load evaluation if modulefile's name is not fully
specified.prereq-all
modulefile command, alias over the prereq
command which acts
as an AND operation when multiple modulefiles are
specified.depends-on
modulefile command, alias over the prereq-all
command for
compatibility with Lmod Tcl modulefiles.keep-loaded
module tag<Module tags>
that avoids an auto-loaded module to get automatically unloaded when its
dependent modules are getting unloaded. Update default tag_abbrev
configuration
option to add an abbreviation for the new tag (kL
) and
default light and dark color palettes.always-load
modulefile command for compatibility
with Lmod Tcl modulefiles. This command loads designated modulefile and
applies the keep-loaded
tag to it.load-any
sub-command and module load-any<module>
modulefile command for
compatibility with Lmod Tcl modulefiles. This command loads one
modulefile from specified list.--not-req
option on module try-load<module>
and module load-any<module>
modulefile
commands.magic-cookie-check
design notes.mcookie_check
configuration option that control
whether the magic cookie at the start of modulefile (i.e.,
#%Module
file signature) need to get checked or not. When
set to eval
the number of file checks is significantly
reduced when walking through modulepaths to search for modulefiles.
Default value for this option is overridden by the MODULES_MCOOKIE_CHECK
environment variable.puts
Tcl command and its specific feature when used
in modulefile.prestdout
channel for puts
modulefile command to
be able to send content that will be evaluated in current shell session
prior any other content. (fix issue #432)family
modulefile command for compatibility with Lmod Tcl modulefiles. This
command defines family name as a module alias over currently loading
module and express a conflict over this name to ensure only one member
of a family can be loaded in user environment. family
also defines the
MODULES_FAMILY_\<NAME\>
and LMOD_FAMILY_\<NAME\>
environment variables.reduce-io-load
cookbook recipe.list
sub-command.
Filtering pattern could be part of module name, symbolic version or
alias and is matched in a case insensitive manner by default. It could
also leverage the Advanced module version
specifiers
syntax.--starts-with
and --contains
options on list
sub-command.shell-completion
design notes.complete
and uncomplete
modulefile commands to respectively
enable and disable shell completion for a given command name.
bash, tcsh and fish shells are
supported.sh-to-mod
sub-command and source-sh
modulefile
command.sh-to-mod
and source-sh
mechanisms to support nested function
definition on fish shell.sh-to-mod
and source-sh
mechanisms to correctly detect functions
with a _
character in their name on fish shell.module
shell function definition for sh-kind shell
to enclose the output generated by modulecmd.tcl
in quotes in order to pass it to the
eval command. This change fixes definition of shell function, especially
when coming from shell script evaluation over the sh-to-mod
and source-sh
mechanisms. (fix
issue #434)sh-to-mod
and source-sh
mechanisms when enclosed in parenthesis.
(fix issue #434)sh-to-mod
and source-sh
mechanisms the
private functions defined by evaluated script, in order to catch all
definitions that may be useful for shell completion.sh-to-mod
and source-sh
mechanisms to correctly detect empty
function on fish shell.pre-commit
git hook script to help verify if
commits are free of misspellings (with codespell
tool) and trailing spaces.Dependencies between modulefiles
in modulefile(4)
man page. (fix
issues #431 and #433)pre-commit
git hook script to spell check
documentation files with Aspell
tool.commit-msg
git hook script to spell check commit
message with Aspell tool.#%Module
is a file signature also
called Modules magic cookie.module ENVIRONMENT
section in module(1)
man page to provide
for each Modules environment variable the name of the configuration
option that could be used to set the variable with the config
sub-command.module(1)
man page that MODULES_SET_SHELL_STARTUP
, MODULES_SHELLS_WITH_KSH_FPATH
and MODULES_WA_277
should be
set prior Modules initialization to get taken into account.INSTALL
document to provide the name of the configuration option linked the
installation options.module(1)
man page the default value of each
configuration option and linked installation option and command-line
switches.INSTALL
document with a table
summarizing all configuration options and their relative installation
options and environment variables.pushenv
modulefile command for compatibility with Lmod Tcl modulefiles. This
command sets designated environment variable with specified value and
save the previous value set to restore it when the modulefile is
unloaded. Previous values are saved in a __MODULES_PUSHENV_\<VAR\>
environment
variable.Compatibility with Lmod Tcl modulefile
section in
modulefile(4)
man
page.module()
python function and
python initialization script to explicitly send output to
sys.stderr
to get the ability to catch this content.sysconf
error in function implementing the
initStateUsergroups
procedure. (contribution from Lukáš
Zaoral)--tag
option for the load
, try-load
, load-any
, switch
sub-commands and associated module
modulefile commands
and prereq
, prereq-all
, depends-on
and always-load
modulefile
commands. This new option applies specified tags to the module to
load.--tag
option in the __MODULES_LMEXTRATAG
environment variable to make this information persists after module
being loaded.--tag
option and
those resulting from module load states (like auto-loaded
and keep-loaded
). The --notuasked
string
previously used to designate auto-loaded modules in collection is
changed into the --tag=auto-loaded
option.collection_pin_tag
configuration option, that
records in collection all tags set on loaded modules when enabled.
Option is disabled by default and when set it defines the
:envvar:`MODULES_COLLECTION_PIN_TAG` environment variable.#%Module5.1
file signature if --tag
option is recorded
in it.restore
, savelist
, saveshow
and is-saved
sub-commands to exclude from result or
return an error when checking a collection expressing a higher Modules
version requirement in its header signature than the one currently in
use.differences between run-command file and modulefile
interpretation<Modulefile and run-command interp diff>
in
modulefile(4)
man
page.module
sub-commands available as modulefile Tcl
command for each interpretation context in modulefile(4)
man page.--tag
option, if this
module is already loaded the new tags are added to those already
set.avail
or list
sub-commands, enclose module names in single
quotes if they contain a space character.list
sub-command.log-module-command
cookbook recipe not to break
Modules initialization when using provided siteconfig.tcl
file. (fix
issue #453 with contribution from Eric Burgueño)FAQ
.extended_default
option
is off and icase
option is on when resolving version list specification. (fix issue
#411)log-module-command
cookbook to rely on the
trace
Tcl command to track every modulefile evaluation and
module/ml procedure calls. (fix issue #412)variants
design doc. (fix
issue #413)__MODULES_AUTOINIT_INPROGRESS
environment variable
when running the autoinit
sub-command and quit autoinit process if
this variable is found defined and equal to 1 when starting it. Ensure
this way that an autoinit process will not be triggered indefinitely by
itself when the set_shell_startup
option is enabled and some
module loaded at initialization time relies on the execution of a bash
script. (fix issue #414)prepend-path
or append-path
modulefile
command with --duplicates
option set. (fix issue #421)initrc
configuration file
installed by default the version of Modules required to evaluate this
file.getenv
modulefile command to describe that an empty
string is now returned when designated environment variable is not
defined and no default value to return is specified.createmodule.sh
and createmodule.py
tools as shell script to
modulefile conversion is now achieved with the sh-to-mod
sub-command.init*<initadd>
sub-commands in module usage
message to put focus on the collection handling sub-commands.chdir
, module
,
module-trace
, module-verbosity
,
module-user
and module-log
commands under the
modulerc Tcl interpreter as no-op commands. A clear error message is
obtained if these commands are still used in modulerc files instead of
silently ignoring them._UNDEFINED_
on
getenv
modulefile
command if passed environment variable is not defined.use
sub-command with
message obtained when module or collection name is empty.use
sub-command.--enable-auto-handling
is set on by default which
enables the automated module handling mode (see MODULES_AUTO_HANDLING
).--enable-extended-default
is set on by default
which allows partial module version specification (see MODULES_EXTENDED_DEFAULT
).--enable-advanced-version-spec
is set on by
default which activates the Advanced module version
specifiers
--enable-color
is set on by default which enables
the auto
output color mode (see MODULES_COLOR
).--with-icase
is set to search
by
default to activate case insensitive match on search contexts (see MODULES_ICASE
).--enable-new-features
has been reset following
major version change as all the options it implied are now enabled by
default.--enable-set-shell-startup
is set off by default
but could be enabled once installed through the initrc
configuration
file.--with-initconf-in
is set to etcdir
by default to locate configuration files in the directory designated by
the --etcdir
option. Therefore the initialization configuration file is named initrc
in this directory,
and the modulepath-specific configuration file is named modulespath
.--etcdir
or
--initdir
option
(depending on the value of --with-initconf-in
option). Configuration files
were previously searched in both locations.--enable-compat-version
. Compatibility version
co-installation is discontinued. switchml
shell function and MODULES_USE_COMPAT_VERSION
are thus removed as well.QUICKTEST
environment variable is set to 1
, only the main tests from
the non-regression testsuite are run. When first argument of the mt
script is
quick
, tests are run in quick mode.MODULES_LM
). A __
prefix is added to the name
of these variables to indicate that they are intended for internal use
only.modulecmd.tcl
the value of
variables set in quarantine (variables whose name finishes with
_modquar
). A __MODULES_QUAR_<__MODULES_QUAR_\<VAR\>>
prefix is applied to the name of these variables instead of the
_modquar
suffix to indicate they are intended for Modules
internal use of only.modulecmd.tcl
to take benefit from the features
brought by Tcl 8.5.tcl
directory. When building Modules, the Tcl files are concatenated to make
the modulecmd.tcl
script.auto-loaded
tag of loaded modules in __MODULES_LMTAG
environment variable rather set a specific entry for module in the
__MODULES_LMNOTUASKED
environment variable.__MODULES_SHARE_<__MODULES_SHARE_\<VAR\>>
prefix is applied to the name of these variables instead of the
_modshare
suffix to clearly indicate they are intended for
Modules internal use of only.LOADEDMODULES
). As a result no __MODULES_SHARE_\<VAR\>
variable is set in
user environment for these variables. Exception is made for MODULEPATH
environment
variable where the mechanism still applies.append-path
or prepend-path
modulefile
commands, add this element to the associated reference counter variable
(named __MODULES_SHARE_\<VAR\>
) only when this
element is added multiple times to the path-like variable. When an
element is removed from a path-like variable, this element is removed
from the reference counter variable when its counter is equal to 1.use
and
unuse
module
sub-commands are not called during a modulefile evaluation, the
reference counter associated with each entry in MODULEPATH
environment
variable is ignored. In such context, a module use<use>
will not increase the
reference counter of a path entry already defined and a module unuse<unuse>
will remove specified path whatever its reference counter value.append-path
, prepend-path
and remove-path
module sub-commands are not called
during a modulefile evaluation, the reference counter associated with
each entry in targeted environment variable is ignored. In such context,
a module append-path/prepend-path<prepend-path>
will not increase the reference counter of a path entry already defined
and a module remove-path<remove-path>
will remove
specified path whatever its reference counter value.unuse
sub-command when several modulepaths are specified as a single argument
(i.e., /path/to/dir1:/path/to/dir2
). Enabled modulepaths
were not correctly detected when specified this way.use
sub-command or the append-path/prepend-path<prepend-path>
modulefile commands. (fix issue #60)refresh
sub-command to evaluate all loaded
modulefiles and re-apply the non-persistent environment changes they
define (i.e., shell aliases and functions). With this change the refresh
sub-command is
restored to the behavior it had on Modules version 3.2.source-sh
command through
the current modulefile Tcl interpreter in order to evaluate them
according to the current modulefile evaluation mode.refresh
sub-command
re-applies the non-persistent environment configuration (i.e., shell
alias and function that are not exported to the sub-shell). (fix issue
#86)initrc
, the initialization script of Modules, to
either restore user's default collection if it exists or load a
predefined module list at the end of the initialization process.initrc
configuration file in
addition to the the modulespath
configuration file and not instead of
this file. initrc
is
evaluated after modulespath
file.--enable-modulespath
is set, the list of
modulepath to enable by default is now only defined in the modulespath
configuration
file and not anymore in the initrc
configuration file.display
mode a
modulefile without a value specified for the variant
it defines. This
change helps to learn all the variant a modulefile defines. As a result,
the unspecified variant is not instantiated in the ModuleVariant
array
variable. (fix issue #406)unsetenv
modulefile command on an unload evaluation,
do not unset designated environment variable if no value to restore is
provided.unsetenv
to
distinguish between being called on a unload evaluation without a value
to restore or with an empty string value to restore.system
modulefile command available from a modulerc evaluation context whatever
the underlying module evaluation mode.is-used
modulefile command available from a modulerc evaluation context.tcl_version_lt85
as Tcl 8.5+ is
now a requirement.module source<source>
command in modulefile
or in an initialization rc file, the source
Tcl command
should be used instead. source
sub-command should only be called from the
command-line.module
command
initialization (i.e., during the evaluation of the initrc
configuration file).
These report messages are disabled when the verbosity
configuration
option is set to concise
or silent
.restore
or source
, only report the module load and unload
directly triggered by these sub-commands. Load and unload triggered by
other modules are reported through the automated module handling
messages of the main modules.#%Module
)
at the start of global or user rc files, initrc
configuration file or any scriptfile passed
for evaluation to the source
sub-command. These files are not evaluated
and an error is produced if the magic cookie is missing or if the
optional version number placed after the cookie string is higher than
the version of the modulecmd.tcl
script in use.INSTALL
document.--enable-quarantine-support
installation option to
control a quarantine_support
configuration option. When this
option is enabled, the autoinit
sub-command produces the shell code for
the module
shell
function definition with quarantine mechanism support. When disabled,
code is generated without quarantine support.--enable-quarantine-support
is set off by
default.MODULES_QUARANTINE_SUPPORT
environment variable to
control the quarantine_support
configuration option once
Modules is installed. To enable the quarantine mechanism, MODULES_QUARANTINE_SUPPORT
should be set to 1
prior Modules initialization or quarantine_support
configuration option should be set to 1
in the initrc
configuration
file.MODULES_RUN_QUARANTINE
.modulecmd.tcl
script to restore environment variables
put in quarantine is now always generated and applies if the __MODULES_QUARANTINE_SET
environment variable is set to 1
. This variable is set by
the Modules initialization script prior calling the autoinit
sub-command or by
the module
shell
function if it has been generated with quarantine support enabled.--enable-silent-shell-debug-support
is set off by
default.MODULES_SILENT_SHELL_DEBUG
environment variable is
set to 1
.module
shell function
could now be enabled if MODULES_SILENT_SHELL_DEBUG
is set to 1
prior Modules initialization or if the silent_shell_debug
configuration option is set to
1
in the initrc
configuration file.MIGRATING<MIGRATING>
document.INSTALL
document.initrc
and modulespath
configuration files in module(1)
man page.example.txt
by INSTALL.txt
guide in RPM.diff_v3_v4
document into changes<changes>
.changes
document to let room to describe Modules 5
changes.edit
sub-command that opens modulefile passed as
argument in a text editor. Modulefile can be specified like with any
other sub-command, leveraging defined symbolic versions, aliases or
using advanced version specifiers.editor
configuration option to select the text editor to use with edit
sub-command. When
this option is set through the config
sub-command, the MODULES_EDITOR
environment
variable is set. The --with-editor
installation option controls the
default value of editor
configuration option. If not set at
installation time, vi
is set as default editor.editor
configuration option is overridden by the
VISUAL
or the EDITOR
environment
variables, which are both in turn overridden by the MODULES_EDITOR
environment
variable.modulecmd.tcl
internal state check in recipes example
codes. (fix issue #396)Advanced module version specifiers
mechanism now
allows the use of version range in version list (for instance
mod@:1.2,1.4:1.6,1.8:
). Such specification helps to exclude
specific versions. (fix issue #397)source-script-in-modulefile
recipe how to use the
source-sh
command
when software provide a specific initialization script for each shell it
supports. (fix issue #399)set-function
modulefile
command, only export this function when using the Bash shell (using the
export -f
shell command) to make it available in sub-shell
contexts. Shell function export is not supported on other kind of sh
shell (sh, ksh and zsh). (fix issue #401)variants
design notes.variant
modulefile command that enables to pass down arguments, specified when
designating the module to evaluate, within modulefile evaluation
context. This command defines a variant name and a list of allowed
values. When evaluated, variant
instantiates an element in the ModuleVariant
array whose
name equals variant name and value is set with value specified for
variant when module is designated. If specified value does not
correspond to an allowed value or if no value is specified for variant
an error is raised.Advanced module version specifiers
to handle variant
specification following Spack's syntax (e.g.,
name=value). When the advanced_version_spec
configuration is enabled,
variant could be specified anywhere a module can be specified.--default
option to the variant
modulefile command
to indicate the default value of the variant to apply when the
designation of the evaluating module does not mention this variant.--boolean
option to the variant
modulefile command
to indicate that the variant defined is of the Boolean type, thus no
list of accepted value is expected.Advanced module version specifiers
to handle Boolean
variant specification following Spack's syntax (e.g.,
+name, ~name and -name). The -name
syntax is not supported on ml(1)
command as the minus sign already means to
unload designated module.advanced_version_spec
configuration is enabled and
if sub-command accepts Advanced module version specifiers
(like load
or unload
sub-commands). A
false value may be set to Boolean variant this way.variant_shortcut
configuration option to define
shortcut characters that could be used to specify and report module
variants. Default value for this option could be set at installation
time with the --with-variant-shortcut
option. No variant
shortcut is defined by default. This value could be superseded by
setting up the variant_shortcut
option with config
sub-command. Which
sets the MODULES_VARIANT_SHORTCUT
environment variable.Advanced module version specifiers
to handle variant
shortcut specification (e.g., <shortcut>value).MODULES_LMVARIANT<__MODULES_LMVARIANT>
environment variable, the value specified for the variants defined in
the loaded modulefiles and their properties (if it is a Boolean variant
and if the value set is the default one).variant
element in the allowed value list of
the list_output
and
list_terse_output
configuration options. Set this new element in the default value list of
the list_output
option. When set, the variant defined for loaded modules are reported on
module list
command
output.va
color key in default light and dark color
palettes to graphically enhance the report of variant value.list
sub-command output the reported variant
elements (name=value, +name, -name or
<shortcut>value)collection_pin_version
configuration is disabled,
only record in collections the variants whose value is not the default
one.getvariant
modulefile command to query for currently
evaluating module the value of a given variant name.@loaded
version specifier also
retrieve the variant specified for corresponding loaded module.avail
, whatis
, is-avail
, path
and paths
) is ignored.version
is declared
in a modulefile to let room for the future implementation of this
specific variant.changes
document argument handling change on setenv
since v3.2. (fix
issue #402)try-load
sub-command which like load
sub-command tries to
load the modulefile passed as argument, but does not complain if this
modulefile cannot be found. (fix issue #392)^
character to redirect stderr is
disabled by default (fish >=3.3).rcexpandparam
Zsh option when initializing the module
command on this shell. (fix issue
#403)configure
script assume the .
dot
directory when invoked without the prepended ./
" as consent
was not obtained from author to re-license the contribution to
GPLv2+.module(1)
and modulefile(4)
.sh-to-mod
mechanism to support version 3.2 of the
fish shell. Fish 3.2 introduces the .
builtin command that
should be regexp-escaped when determining the shell functions or aliases
defined by the script analyzed by sh-to-mod
.ModuleTool
, ModuleToolVersion
and ModulesCurrentModulefile
.--with-dark-background-colors
and --with-light-background-colors
installation
options.--with-dark-background-colors
and --with-light-background-colors
installation
options and for the MODULES_COLORS
environment variable.--with-tag-abbrev
installation option.sticky-modules-rcp
cookbook recipe.MIGRATING
documentModuleTool
and ModuleToolVersion
Modules variables to determine
during modulefile or modulerc evaluation the name and version of the
module implementation currently in use.versioncmp
modulefile command to compare two version
strings passed as argument.modulespath
configuration file. (fix issue #125)MODULES_LMALTNAME<__MODULES_LMALTNAME>
environment variable. Prefix these alias entries with the
al|
string.list
sub-command display
format.MODULES_LMALTNAME<__MODULES_LMALTNAME>
variable, to report the symbols applying to loaded modules on list
sub-command. Modulerc
files are not evaluated anymore when performing a module list.FPATH
environment variable for Modules
initialization on ksh shell from the initialization script of this shell
to the resulting output of the autoinit
sub-command.shells_with_ksh_fpath
configuration option to
define a list of shell where to ensure that any ksh sub-shell will get
the module function defined by use of the FPATH
environment variable. When the shells_with_ksh_fpath
option is set through the config
sub-command, the MODULES_SHELLS_WITH_KSH_FPATH
environment variable
is set. Accepted values are a list of shell among sh,
bash, csh, tcsh and fish separated
by colon character (:
).implicit_requirement
configuration option to
control whether a prereq or a conflict requirement should be implicitly
set onto modules respectively specified on module load<module>
or module unload<module>
commands in modulefile.
Default value for this option could be set at configure time with the
--enable-implicit-requirement
option (enabled by
default). This value could be superseded by setting up the implicit_requirement
option with config
sub-command. Which sets the MODULES_IMPLICIT_REQUIREMENT
environment variable.
(fix issue #260)--not-req
option to the module
modulefile command
to inhibit for its load
and unload
sub-commands the definition of a prereq or conflict requirement onto
specified modules.lpopState
and currentState
procedures to respectively remove or return the last entry from the list
of values of a given state.topState
and depthState
procedures
to respectively return the first element from or the number of elements
in the list of values of a given state.module config --dump-state<config>
command
unless if instantiated.loaded
symbolic version among advanced
version specifiers (e.g. foo@loaded
) to designate the
currently loaded version of specified module. (fix issue #366)avail
sub-command. Adapt
the regular, terse and JSON output styles to report these tags along the
module they are attached to (enclosed in <>
).
Reported tags currently are states that apply to modules:
auto-loaded
, forbidden
, hidden
,
loaded
, nearly-forbidden
, sticky
and super-sticky
.MODULES_LMTAG<__MODULES_LMTAG>
environment
variable to make this information persist after module being
loaded.list
sub-command. Adapt
the regular and JSON output styles to report these tags along the module
they are attached to (enclosed in <>
). Reported tags
currently are states applying to loaded modules:
auto-loaded
, hidden-loaded
,
nearly-forbidden
, sticky
and
super-sticky
.module-info tags<module-info>
modulefile
command to query the tags that apply to the currently evaluated
modulefile.module-tag
modulefile command to associate tag to
designated modulefile. Those tags are reported on avail
and list
sub-commands along
the module they are attached to. module-tag
supports the advanced module version
specifier syntax.tag_abbrev
configuration option to define
abbreviated strings for module tags and use these abbreviations instead
of tag names when reporting tags on avail
and list
command results. Default value for this option
could be set at configure time with the --with-tag-abbrev
option. By default the following
abbreviations are set: aL
for auto-loaded,
F
for forbidden, H
for
hidden, H
for hidden-loaded,
L
for loaded, nF
for
nearly-forbidden, S
for sticky,
sS
for super-sticky. This value could be
superseded by setting up the tag_abbrev
option with config
sub-command. Which
sets the MODULES_TAG_ABBREV
environment variable.tag_color_name
configuration option to designate
module tags whose graphical rendering should be applied to their own
name or abbreviation rather than over the module name they are attached
to. Default value for this option could be set at configure time with
the --with-tag-color-name
option (empty by default).
This value could be superseded by setting up the tag_color_name
option
with config
sub-command. Which sets the MODULES_TAG_COLOR_NAME
environment variable.--hidden-loaded
option to the module-hide
modulefile
command that indicates module should be hidden once loaded. When set,
the hidden-loaded
module tag applies to module
specification set on module-hide
command.list
sub-command results the loaded modules
associated with the hidden-loaded
tag, unless if the --all
option is set.hidden-loaded
example in the Hide and
forbid modules cookbook recipe.verbose2
verbosity level between
verbose
and trace
levels. Verbose2 mode can be
enabled by setting the verbosity
config to the verbose2
value or by using the -v
command-line switch twice.hidden-loaded
if these modules have been loaded, unloaded
or switched automatically. Unless the verbosity mode is set to
verbose2
or any higher level or if any specific messages
have to be reported for these module evaluations.verbose2
or any higher level. (fix issue
#187)changes
document.sticky
with module-tag
command cannot
be unloaded unless if the unload is forced or if the module is reloaded.
(fix issue #269)super-sticky
with module-tag
command cannot be unloaded even if the unload is forced unless if the
module is reloaded. (fix issue #269)purge --force<purge>
sub-command, also unload
the modules that are depended by non-unloadable modules.INSTALL
document and
enable hypertext reference to these elements.module(1)
document and
enable hypertext reference to these elements.MIGRATING
document.#%Module
magic cookie. (fix issue #375)--enable-new-features
that enables all at once the
installation options that are disabled by default due to the substantial
behavior changes they imply.avail
and list
sub-commands to
explain the meaning of graphical renditions or of elements set in
parentheses or chevrons along module name.avail
and list
sub-commands on very small terminal width.
(fix issue #378)mcookie_version_check
configuration to define if
version set in modulefile magic cookie should be checked against module
current version to
determine if modulefile can be evaluated. The new configuration, which
is enabled by default, can be set at installation time with configure
option --enable-mcookie-version-check
or can be
superseded later on with the MODULES_MCOOKIE_VERSION_CHECK
environment variable.
(fix issue #377)config
sub-command to set nearly_forbidden_days
configuration. (fix issue
#380)bash_completion
and tcsh_completion
that are
showing up in the output of the shell's set
command. (fix
issue #382 with contribution from Colin Marquardt)module load<load>
performed in the user or
the global RC file like load commands issued from initialization RC
file. (fix issue #372)configure
script assume the .
dot
directory when invoked without the prepended ./
.
(contribution from R.K. Owen)configure
script is ran
another time after building docs.nearly_forbidden_days
configuration and --with-nearly-forbidden-days
installation option
to integers comprised between 0 and 365.configure
script if output is sent to a terminal.configure
script over an
additional line when too long.avail_output
and avail_terse_output
configuration options to define
the content to report in addition to the available module names
respectively for avail
sub-command regular and terse output modes.
Excepted value for these configuration options is a colon separated list
of elements to report. Default value is
modulepath:alias:dirwsym:sym:tag:key
for avail_output
and
modulepath:alias:dirwsym:sym:tag
for avail_terse_output
. These
values can be changed at installation time respectively with the --with-avail-output
and
--with-avail-terse-output
options. These values
can then be superseded by using the config
sub-command which sets the MODULES_AVAIL_OUTPUT
and
MODULES_AVAIL_TERSE_OUTPUT
environment
variables.list_output
and list_terse_output
configuration options to define
the content to report in addition to the available module names
respectively for list
sub-command regular and terse output modes.
Excepted value for these configuration options is a colon separated list
of elements to report. Default value is
header:idx:sym:tag:key
for list_output
and header
for list_terse_output
. These
values can be changed at installation time respectively with the --with-list-output
and
--with-list-terse-output
options. These values can
then be superseded by using the config
sub-command which sets the MODULES_LIST_OUTPUT
and
MODULES_LIST_TERSE_OUTPUT
environment
variables.--output
/-o
command-line switches to supersede the output
configuration of avail
or list
sub-commands on their regular or terse output
modes.avail_report_dir_sym
and
avail_report_mfile_sym
locked configuration options whose
behaviors can now be obtained by respectively adding the
dirwsym
and sym
elements to the avail_output
or avail_terse_output
configuration options.modulepath
is omitted from the content to report
on avail
sub-command, available modules collected from global/user rc and enabled
modulepaths are aggregated and reported all together.V=1
is
passed to make
, the verbose mode is enabled and run
commands are shown. The simplified make
output does not
apply to the install, test and clean targets or any target similar to
them.mpub
command.make
package. Also remove
obsolete Group
RPM tag.term_width
configuration option to set the width
of the output. This configuration option is set to 0
by
default, which means that the output width is the full terminal width.
The --width
/-w
command line switches
are added to supersede the value of the configuration option. (fix issue
#359 with contribution from Anaïs Gaertner)INSTALL
document to provide
download links for Modules' sources. (fix issue #387)initStateClockSeconds
as a Tcl command
in libtclenvmodules to provide an optimized way to retrieve current
Epoch time.parseDateTimeArg
as a Tcl command in
libtclenvmodules to provide an optimized way to convert a datetime
string into an Epoch time.@
, raise an
error as no module name is provided. (fix issue #362)mb
utility.module-hide
and module-forbid
commands in modulefile(4)
document.changes
document that shell special characters like
backticks are escaped when used in values starting Modules 4.0. (fix
issue #365)modulefile(4)
man page point
to the ENVIRONMENT section of module(1)
man page.clear
sub-command to unset the MODULES_LMSOURCESH<__MODULES_LMSOURCESH>
environment variable. (fix issue #367)avail
sub-command a symbolic version defined in a
global RC file when specifically searched. (fix issue #368)module-hide
statements are set in the modulepath
where the modulefiles targeted by these symbols are located. (fix issue
#369)purge
sub-command,
preserve loaded the modules it requires to keep environment consistent.
(fix issue #370)getState
, for all these states.setState
, unsetState
,
lappendState
, isStateDefined
and
isStateEqual
procedures to provide unified ways to set or
check the value of state.sh-to-mod
sub-command, to evaluate shell script and
determine the environment changes it does. Corresponding modulefile
content is outputted as a result. Changes on environment variables,
shell aliases, shell functions and current working directory are
tracked. The following shells are supported: sh, dash, csh, tcsh, bash,
ksh, ksh93, zsh and fish.source-sh
modulefile command, to evaluate shell
script and apply resulting environment changes through modulefile
commands. When a modulefile using source-sh
modulefile command is loaded, the
modulefile commands resulting from shell script evaluation are recorded
in the MODULES_LMSOURCESH<__MODULES_LMSOURCESH>
environment variable to be able to undo these environment changes when
modulefile is unloaded and to report the modulefile commands used when
modulefile is displayed. The same kind of environment changes than the
sh-to-mod
sub-command are tracked. The same list of shells than sh-to-mod
sub-command are
supported. (fix issue #346)--enable-compat-version
has to be set to trigger
this build.username
sub-command to the module-info
modulefile
command to get the username of the user currently running modulecmd.tcl
or to test a
string passed as argument corresponds to this username.usergroups
sub-command to the module-info
modulefile
command to get all the groups of the user currently running modulecmd.tcl
or to test a
string passed as argument corresponds to one of these groups.NEWS
and MIGRATING
documents starting from this 4.6 version to
enable references to module sub-commands, command line switches,
environment variables and modulefile Tcl commands.--enable-multilib-support
configure option to add
mechanism in modulecmd.tcl
to look at an alternative location to
find the Modules Tcl extension library in case this library cannot be
found at its main location.getFilesInDirectory
procedure of Modules Tcl extension
library.module-hide
modulefile command, to dynamically hide
modulefile, module alias or symbolic version matching passed
specification. When hidden, a modulefile, an alias or a symbolic version
is not reported nor selected unless referred by its exact name, like for
module whose name or version starts with a dot character. module-hide
supports the
advanced module version specifiers. (fix issue #202)--soft
to the module-hide
modulefile command to introduce a soften
level of camouflage: modules targeted by such hide directive are made
visible as soon as their root name is part of search query.--hard
to the module-hide
modulefile command to introduce a
hardened level of camouflage: modules targeted by such hide directive
keep being hidden even if they are fully matched by search query.whatis
search result the modulefiles with version
name prefixed by a dot character and targeted by a symbolic version
unless if they are precisely searched.module-hide
statement), these alternative names are not recorded in environment
unless if they are not hard-hidden and if they have been used in query
to select loading module.avail
sub-command, remove hidden symbolic versions from the list to display
along modulefile or directory they target, unless these symbols are not
hard-hidden and are used in query to search modules.--default
filter of avail
sub-command is set, unhide all the
default symbolic versions or modules targeted by these symbols
unless if they are hard-hidden.load
tentative using the transitively applied
symbolic version will now correctly resolve to the modulefile targeted
by symbol.is-avail
modulefile
command.--all
/-a
option for avail
, aliases
, whatis
and search
sub-commands, to include in the search
process all hidden modulefiles, module aliases or symbolic versions.
Hard-hidden modules stay hidden even if --all
/-a
option is used.module-forbid
modulefile command, to dynamically
forbid evaluation of modulefile matching passed specification. When
forbidden, a module cannot be loaded and an access error is obtained
when trying to evaluate them. module-forbid
supports the advanced module version
specifiers.--not-user
and --not-group
options to
module-hide
and module-forbid
modulefile
commands to ignore hiding or forbidding definition if current user is
respectively part of specified username list or member of one of
specified group list.--before
and --after
options to module-hide
and module-forbid
modulefile
commands to ignore hiding or forbidding definition respectively after
and before a specified date time. Accepted date time format is
YYYY-MM-DD[THH:MM]
.--message
option to module-forbid
modulefile command to supplement the
error message obtained when trying to evaluate a forbidden module.--after
option of a matching module-forbid
command is
near) is evaluated, warn user this module access will soon be
denied.nearly_forbidden_days
configuration option, whose
value equals to the number of days prior the module starts to be
forbidden. This configuration is set to 14
(days) by
default and this value can be controlled at configure
time with --with-nearly-forbidden-days
option. When the
nearly_forbidden_days
configuration is set through
the config
sub-command, the MODULES_NEARLY_FORBIDDEN_DAYS
environment variable
is set.--nearly-message
option to module-forbid
modulefile
command to supplement the warning message obtained when evaluating a
nearly forbidden module.debug2
verbosity level, to report each call of
modulecmd.tcl
internal
procedures in addition to debug messages. Debug2 mode can be enabled by
setting the verbosity
config to the debug2
value
or by using the -D
command-line switch twice.make
rather gmake
on
MinGW and build library with a .dll
extension on this
platform.trace
verbosity level, to report details on
module searches, resolutions, selections and evaluations. Trace mode can
be enabled by setting the verbosity
config to the
trace
value or by using the -T
/--trace
command-line switches.tr
key in the color palette to
specifically render trace messages. Default value for tr
key is 2
(decreased intensity).--build
,
--host
, --target
,
--enable-dependency-tracking
and
--disable-dependency-tracking
configure options to transmit
them to the configure
scripts of Modules Tcl extension library and Modules compatibility
version. (fix issue #354)configure
script that are
useless for this project but usually implied in build macros (like RPM
%configure
macro).--enable-*
and
--with-*
options on configure
script rather raise an error and add
support to define environment variable and build system type as configure
script arguments
to comply with GNU
configuration recommendations.modulecmd
pre-alternatives check in RPM spec
file.%make_build
and %make_install
macros in RPM spec file.module switch<module>
command is used in
modulefile, do not state when processing it a conflict over switched-off
module if its specification on the module switch
command
also matches switched-on module's specification. Allow this way the
replacement of any loaded version of a module for a specific one
required by currently loading module. (fix issue #355)list
and
source
sub-commands
do not take available modules as argument in fish completion
script.search
sub-command in bash completion script.configure
script to pass to the configure
script of Modules
compatibility version only a subset of the options it supports (most
commonly used options).configure
script rather
silently ignore it. (fix issue #348)configure
script with
the --option value
syntax in addition to the
--option=value
syntax. (fix issue #348)module-info
modulefile Tcl
command in modulefile(4)
document.mrel
.modulecmd.tcl
evaluated command call in _module_raw
function for
sh, bash, ksh and zsh shells. (fix
issue #350)mrel
and mpub
commands
to produce new Modules release from a vZ.Y.x git branch rather
than from the repository main branch.mrel
script, that automates build of
the Modules release files and performs tests over these distribution
files to guaranty their correctness.mpub
script, that automates Modules new
release publishing over git repositories and websites.clear
sub-command is called from
ml
shortcut command. (fix issue #338)env
in every Tcl sub-interpreters. (fix
issue #340)module(1)
, modulefile(4)
and changes
documents.
(contribution from Colin Marquardt)module(1)
, modulefile(4)
and changes
documents to enable references to module
sub-commands, command line switches, environment variables and
modulefile Tcl commands. (contribution from Colin Marquardt)module(1)
and modulefile(4)
documents.ml
command, a handy frontend to the
module
command. ml
reduces the number of
characters to type to trigger module
. With no argument
ml
is equivalent to module list
,
ml mod
corresponds to module load mod
and
ml -mod
means module unload mod
. Multiple
modules to either load or unload can be combined on a single command.
ml
accepts all command-line switches and sub-commands
accepted by module
command. ml
command is
defined by default. Its definition can be controlled at
./configure
time with --enable-ml
option or later on with ml
configuration option
(which defines MODULES_ML
environment variable when
set).lod
or loda
do not match anymore the load
sub-command, lo
or loa
still do.-j
/--json
command line switches to
the avail
, list
, savelist
,
whatis
and search
module sub-commands to
render their output in JSON format. (fix issue
#303)mtreview
, mb
, mlprof
and
playdemo
) prior using them.script
directory at the root of the project repository
tree../configure
option --enable-windows-support
is set. module command
wrapper module.cmd
is installed in bindir
and
initialization script cmd.cmd
in initdir
.
Those batch files are relocatable and expect modulecmd.tcl
in ..\libexec
directory. (fix issue #272 with contribution
from Jacques Raphanel)ml.cmd
and install it
in bindir
when ./configure
option --enable-windows-support
is set.envml.cmd
for
Windows cmd
shell and install it in bindir
when ./configure
option --enable-windows-support
is set. (contribution
from Jacques Raphanel)dist-win
target to Makefile in order to
build a distribution zipball containing the required files to run
Modules on a Windows platform. INSTALL.bat
and
UNINSTALL.bat
Windows batch files are introduced and
shipped in the zipball to automate installation and basic configuration
of Modules on the Windows platform.INSTALL-win
document to describe how to install
Modules with newly provided Windows-specific distribution zipball.git archive
tarball or zipball exports (like download source archives automatically
provided on GitHub project)createmodule.sh
script to correctly
analyses environment when shell functions are found defined in it.createmodule.sh
and createmodule.py
to ensure
these outputs will not get in the way when analyzing the environment
changes. (fix issue #309)python
command location and set it as shebang for
createmodule.py
and gitlog2changelog.py
. If
python
command is not found, python3
then
python2
are searched.--with-python
option. Specified command name or
location should be found on build system only if building from git
repository.createmodule.py
script and install it in
bindir
.createmodule.py
script for Python3 (fix
issue #315 with contribution from Armin Wehrfritz)_mlstatus
variable in case modulecmd.tcl
output is directly evaluated
without use of the module
sub-routine in Perl script. (with
contribution from Andrey Maslennikov)createmodule.sh
.
(fix issue #316)compopt
Bash builtin prior
using it in Bash completion script to avoid error with versions of this
shell older than 4.0. (fix issue #318)sed
option
-E
is supported and fallback to -r
otherwise
in shell completion scripts. (fix issue #317)NO_COLOR
environment variable (https://no-color.org/) which when set
(regardless of its value) prevents the addition of ANSI color. When set,
NO_COLOR
prevails over CLICOLOR
and
CLICOLOR_FORCE
environment variables.
MODULES_COLOR
overrides these three variables. (fix issue
#310)createmodule.sh
applied by shell script passed as argument,
produce a setenv
modulefile statement for any variable
found set prior script evaluation and for which value is completely
changed after script evaluation. (fix issue #320)modulecmd.tcl
and provide a link to
encourage users to report such error to the GitHub project.modulecmd.tcl
internals to only report information
relevant to site-specific configuration file.modulecmd.tcl
internal references to only output useful
information for users.changes
document.envml.cmd
script for Windows platform
providing similar behavior than envml
Bash script.
(contribution from Jacques Raphanel)ml
command.
(contribution from Adrien Cotte)avail
search over a symbolic version targeting a
directory now correctly returns the special modules (alias and virtual
module) lying in this directory. (fix issue #327)whatis
and paths
searches only return
special modules (symbolic version, alias and virtual modules) that fully
match search query, not those that partially match it. (fix issue
#328).
)
from avail
, whatis
and paths
searches if their query does not fully match special module name. (fix
issue #329)aliases
sub-command
all hidden aliases, symbolic versions or hidden modules targeted by a
non-hidden symbolic version. (fix issue #330)modulefile(4)
man page.LD_PRELOAD
as quarantine var along with
LD_LIBRARY_PATH
in RPM specfile.implicit_default
and advanced_version_spec
configuration are enabled, automatically define a default
and latest
symbolic version for each module name (at each
module depth for deep modules) if those version names does not already
exist. (fix issue #210)MODULES_LMALTNAME
environment variable. They are
distinguished from the other alternative names applying to the module by
a as|
prefix, which qualifies their auto symbol
type.playdemo
script to play recorded
demonstration cast.el8
.module avail
query does not match a directory
but only its contained elements (for instance
module av mod/7
matches mod/7.1
and
mod/7.2
but not mod/
), fix query processing to
correctly return latest or default element in case --latest
or --default
flags are set.module avail
query performed in a no-indepth
mode with --latest
or --default
flags either
enabled or disabled, fix query processing to return directory elements
if they are part of result.module avail
query performed in no-indepth mode
targets a virtual module, fix result to filter-out the directory holding
the virtual module from result.module avail --default
queries when modulefile
default version does not match query: select latest version from
modulefiles matching query unless implicit_default
configuration is disabled in which case no default version is
returned.avail
and
whatis
search result by coloring module names matching
search query expressed with the advanced version specifiers.
name@1,3
or name@1:3
queries now highlight
name/1
and name/3
strings found in search
result.mlprof
script which wraps
modulecmd.tcl
to collect profiling information on its
execution.mb
script to profile
modulecmd.tcl
run tests rather bench them when
profile
argument is passed to the script.getConf
, for all these
options.setConf
, unsetConf
and
lappendConf
procedures to provide unified ways to set the
value of configuration option. These procedures should be used in site
configuration files to override configuration option value instead of
directly setting corresponding option variable as it was done in
previous Modules releases../configure
time with the --with-icase
option.
It could be superseded with the MODULES_ICASE
environment
variable, that could be set with config
module sub-command
through the icase
option. Command-line switch
--icase
(-i
) enables to supersede defined case
sensitiveness configuration. (fix issue #212 with contribution from Eric
Deveaud).
character, will get matched to the
appropriate complete version name. In case multiple versions match
partial version specified and only one module should be returned,
default version (implicit or explicit) among matches is returned. In
case implicit_default
option is disabled and no explicit
default is found among matches, an error is returned. This mechanism is
enabled through a new configuration option named
extended_default
(which defines
MODULES_EXTENDED_DEFAULT
environment variable when set). It
may be enabled by default in modulecmd.tcl
script with
option --enable-extended-default
passed to the
./configure
script.@
character. It leverages the version specifier syntax of
the Spack package manager.
A single version can be specified with the @version
syntax,
a list of versions with @version1,version2,...
, a greater
than or equal to range with @version1:
syntax, a less than
or equal to range with @:version2
and an in between or
equal to range with @version1:version2
syntax. In case
implicit_default
option is disabled and no explicit default
is found among version specifier matches, an error is returned. This
mechanism is enabled through a new configuration option named
advanced_version_spec
(which defines
MODULES_ADVANCED_VERSION_SPEC
environment variable when
set). It may be enabled by default in modulecmd.tcl
script
with option --enable-advanced-version-spec
passed to the
./configure
script.MODULESHOME
environment variable controllable
through the config
sub-command with home
configuration option. A --with-moduleshome
argument is also
added to the ./configure script to set specific default value for this
option at installation time. (fix issue #292)mb
script to bench Modules versions.modulecmd.tcl
script startup to correctly
report error in case Tcl extension library fails to load. (fix issue
#284)CFLAGS
definition in
lib/Makefile
. (fix issue #287 with contribution from Felix
Neumärker)wa_277
configuration option to workaround
an issue with Tcsh history mechanism. Default module
alias
definition for Tcsh hits an issue with shell history mechanism:
erroneous history entries are recorded each time the module
command is called. When wa_277
option is enabled (which
sets the MODULES_WA_277
environment variable to
1), an alternative module alias is defined which fixes the
history mechanism issue. However the alternative definition of the
module alias weakens shell evaluation of the code produced by
modulefiles. Characters with special meaning for Tcsh shell (like
{ and }) may not be used anymore in shell alias
definition elsewhere the evaluation of the code produced by modulefiles
will return a syntax error. (fix issue #277)whatis
and paths
sub-command
results for module symbolic versions targeting a directory when
implicit_default
configuration option is disabled. No error
is returned and same result is now obtained whether the symbolic name or
its target is used as argument for those two sub-commands. (fix issue
#294)whatis
and paths
sub-command
results for module aliases targeting a directory when
implicit_default
configuration option is disabled. No error
is returned and same result is now obtained whether the alias name or
its target is used as argument for those two sub-commands. (fix issue
#295)modulecmd.tcl
that may result in a nan value
(whatever the case used to write this string) as the expr
Tcl command raises an error when it returns such a value, which breaks
Modules as soon as a modulefile, an alias or a symbolic version is named
nan. (fix issue #296)--enable-vim-addons
and --vimdatadir
configure options. (contribution from Felix Neumärker)--libdir
,
--enable-libtclenvmodules
, --with-tcl
and
--with-tclinclude
options to configure script to control
libtclenvmodules build and installation..modulerc
file found at the root of a modulepath directory
into account. Which means these rc files are now evaluated like global
rc files and can be used to define module aliases targeting modulefiles
stored in the underlying file tree.*
wildcard character.avail
command
search results should recursively include or not modulefiles from
directories matching search query by use of the --indepth
and --no-indepth
command-line switches or the environment
variable MODULES_AVAIL_INDEPTH
. Default behavior is set at
the ./configure
time with the
--enable-avail-indepth
and
--disable-avail-indepth
switches. (fix issue #150)bash
, fish
and zsh
completion scripts to propose available modulefiles in the no in depth
mode.--color
command-line switch or the MODULES_COLOR
environment
variable. Both accept the following values: never
,
auto
and always
. When color mode is set to
auto
, output is colored if stderr is attached to a
terminal. Default color mode could be controlled at configure time with
the --enable-color
and the --disable-color
option, which respectively correspond to the auto
and
never
color mode.MODULES_COLORS
environment variable or the
--with-dark-background-colors
and
--with-light-background-colors
configure options. These
variable and options take as value a colon-separated list in the same
fashion LS_COLORS
does. In this list, each element that
should be highlighted is associated to a Select Graphic Rendition (SGR)
code.MODULES_TERM_BACKGROUND
environment variable or the
--with-terminal-background
configure option, which helps to
determine if either the dark or light background colors should be used
to color output in case no specific color set is defined with the
MODULES_COLORS
.use
command.avail
, aliases
, list
,
whatis
and search
commands.@
tag as the color already distinguish
them from regular modulefile.default
modulefile symbol, apply this SGR
code to the modulefile name instead of associating it the
default
symbol tag.avail
, whatis
and search
command
results.display
, help
, test
and
saveshow
command reports.display
command report.saveshow
command report.clear
sub-command. (fix issue #203)--force
command-line switch on
clear
sub-command to skip confirmation dialog. (fix issue
#268)VAR=val; export VAR
. (fix
issue #225)MODULES_SITECONFIG
. When set, the
script file pointed by the variable is sourced (if readable) after the
site-specific configuration file initially defined in
modulecmd.tcl
. (contribution from Ben Bowers, fix issue
#234)MODULERCFILE
in the environment section and
siteconfig.tcl
in the files section.etcdir
if no
pre-existing siteconfig.tcl
file is found at designated
location.config
sub-command to get and set
modulecmd.tcl
options and to report its current state.createmodule.py
script to support
execution from the cmd shell. (contribution from Jacques
Raphanel, fix issue #270)--with-unload-match-order
defines this setting which can be
superseded with the MODULES_UNLOAD_MATCH_ORDER
environment
variable. This variable can be set with the option
unload_match_order
on the config
sub-command.
By default, lastly loaded module is selected. It is recommended to keep
this behavior when the modulefiles used express dependencies between
each other../configure
time with
the --enable-implicit-default
and
--disable-implicit-default
options. It could be superseded
with the MODULES_IMPLICIT_DEFAULT
environment variable,
that could be set with config
module sub-command through
the implicit_default
option.--with-locked-configs
option to ignore environment variable
superseding of Modules configurations defined in
modulecmd.tcl
script. Lockable configuration option are
extra_siteconfig
and implicit_default
.
Currently locked options are reported through the
locked_configs
option on the config
sub-command../configure
time with the --with-search-match
option. It could be superseded with the
MODULES_SEARCH_MATCH
environment variable, that could be
set with config
module sub-command through the
search_match
option. Command-line switches
--starts-with
(-S
) and --contains
(-C
) for avail
module sub-command enable to
supersede defined search match configuration.module
command is defined once shell has been initialized.
Setting shell startup file currently means defining ENV
and
BASH_ENV
environment variables to the Modules bourne shell
initialization script. ./configure
options
--enable-set-shell-startup
and
--disable-set-shell-startup
define if shell startup should
be set or not by default. It could be superseded with the
MODULES_SET_SHELL_STARTUP
environment variable, that could
be set with config
module sub-command through the
set_shell_startup
option.@etcdir@/rc
instead
of @prefix@/etc/rc
to cope with @etcdir@
specific setup (@etcdir@
defaults to
@prefix@/etc
).etc
directory if they exist rather in init
directory. If initrc
configuration file is found in
etcdir
then it is preferred over modulerc
file
in initdir
. Following the same trend,
modulespath
configuration file is found in
etcdir
then it is preferred over .modulespath
file in initdir
.etcdir
rather than in the
initdir
. A new configure option is introduced for this
task: --with-initconf-in
. Accepted values for this option
are: etcdir
or initdir
(default).--enable-modulespath
configure option, which is
an alias for the --enable-dotmodulespath
option as
.modulespath
configuration file is named
modulespath
when installed in etcdic
.set_shell_startup
option by default, set
/etc/environment-modules
as configuration directory and
store Modules initialization configuration files in it.break
or exit
modulefile
commands. This error notification clarifies that module evaluation
failed. (fix issue #267)reload
,
purge
and restore
sub-commands to preserve
this output style for modulefile evaluation modes (load, unload and
switch) and thus clarify understanding.module load
or
module switch
modulefile command, inhibit the unload
performed of the useless requirement when auto_handling mode is disabled
if currently performing a purge
, reload
or
restore
sub-command. As the unload sequence is determined
and managed from these top commands.silent
, concise
,
normal
, verbose
and debug
. This
option could be set at ./configure
time with
--with-verbosity
option. It could be superseded with the
MODULES_VERBOSITY
environment variable, that could be set
with config
module sub-command through the
verbosity
option. Silent, verbose and debug verbosity modes
can be set at the command-line level respectively with
--silent
/-s
,
--verbose
/-v
and
--debug
/-D
command-line switches. (fix issue
#204)normal
or higher, reports every
module loads or unloads performed to restore
a collection
or source
a scriptfile, even if there is no specific
message to output for these module evaluations. Clarifies what module
evaluations have been triggered by these sub-commands.CLICOLOR
and CLICOLOR_FORCE
environment variables to define color mode. (fix issue #279)?
character in shell alias. (fix issue
#275)#%Module4.2##############
.append-path
,
prepend-path
and remove-path
modulefile
commands to consider every arguments found after the variable name as
variable values and not command option even if argument starts with
-
character. (fix issue #278)module load
modulefile command. When
auto_handling mode was disabled, the load of not loaded modules was not
achieved as soon as some modules on this list were already loaded. (fix
issue #281)list
sub-command when terminal width is
equal to the single column text width to be printed. (contribution from
Jesper Dahlberg)prereq
command,
drop the output of those modules that fails to load (by the
Requirement Load automated mechanism) to only keep the output
of the module whose load succeed. (fix issue #254)switch
sub-command when the switched-off module
cannot be unloaded when other loaded modules depend on it. Whole switch
process is failed and no load of the switched-on module is attempted.
(fix issue #251)module load
command, if this requirement is already loaded
or loading.module load
modulefile command, as it is
done for the prereq
command. (fix issue #265)append-path
, prepend-path
or
remove-path
modulefile command. (fix issue #249)MANPATH
environment
variable to an empty value when it starts. To preserve
manpath
system configuration even after addition to this
variable by modulefiles, set MANPATH
variable to
:
if found empty. (improve fix for issue #224)MANPATH
if not set with a value that preserves
manpath
system configuration even after addition of paths
to this variable by modulefiles. (fix issue#224)MODULEPATH
variable which corresponds to a variable reference only. (fix
issue#223)module switch
commands are found in modulefiles,
track switched-off modulefile as a conflict and switched-to modulefile
as a requirement to apply same behaviors than for
module load
and module unload
commands in
modulefiles. If module switch
has only one argument, do not
define a conflict toward switched-off modulefile. CAUTION: it is not
recommended to use module switch command in modulefiles. (fix
issue#229)module switch
commands
found in modulefile: switched-on module is converted to a
module unload
, like for module load
command.
Nothing is done for switched-off module, like for
module unload
command. (fix issue#226)module load
or
module switch
commands in its modulefile, select for unload
the automatically loaded requirement module which has been loaded prior
its dependent. (fix issue#232)switch
command, force mode is
enabled by default on the load phase. (fix issue#241)reload
sub-command, if one reloading module fails to unload or load, abort the
whole reload process to preserve environment sanity. (fix
issue#237)module load
modulefile command. If the unload of one of its
useless requirements (by the Useless Requirement Unload
mechanism) fails, whole unload process is not aborted and continue with
next module to unload. (fix issue#238)mtreview
utility script that analyzes test
suite log file to compare actual and expected output of failed test.
mt
does not output the full test suite logs anymore but
only the information produced by mtreview
on failed
tests.;
characters at the
beginning or end of the function body passed to set-function modulefile
command.--auto
,
--no-auto
and --force
command-line switches in
fish shell completion script.--auto
,
--no-auto
, --force
, --paginate
and --no-pager
command-line switches in zsh shell
completion script._module_not_yet_loaded
alias in tcsh
completion script to handle situation when noclobber
variable is set. Also ensure actual rm
command is called
and not an alias. (fix issue#219)system
modulefile Tcl command to execute the
command passed as argument through shell, like it is performed on
compatibility version. (fix issue#205)module unload
modulefile command from unloading
a module required by another loading module.is-loaded
modulefile Tcl command in modulerc
interpretation context, like done on compatibility version. (fix
issue#207)prereq
will just be considered as one module
matching this requirement.:q
rather double quotes to accommodate prompts with
embedded newlines. (fix issue#209 with contribution from Satya
Mishra)autoinit
command fails. (fix issue#208)chdir
and puts
environment settings to
the per-modulefile evaluation saved context. So previous values of these
settings are restored in case of evaluation failure.x-resource
environment settings
on the per-modulefile evaluation context.whatis
evaluations).append-path
, prepend-path
,
remove-path
and unsetenv
commands alter
env
Tcl global array during display
,
help
, test
or whatis
evaluation
modes. Thus an invalid argument passed to these commands will now raise
error on these modes. (see v42-variable-change-through-modulefile-evaluation
section in MIGRATING document)whatis
mode, append-path
,
prepend-path
, remove-path
, setenv
and unsetenv
commands initialize variables if undefined but
do not set them to their accurate value for performance concern.setenv
or *-path
commands to avoid breaking
later reference to the variable in modulefile.getenv
command returns value on help
,
test
or whatis
evaluation modes. (fix
issue#188)getenv
command to return the
value of this argument if the queried variable is undefined.display
mode. For the commands evaluated during this mode,
trigger this report at the end of the evaluation.chdir
, conflict
,
module
, module-log
, module-trace
,
module-user
, module-verbosity
,
prereq
, set-alias
, system
,
unset-alias
, x-resource
commands on
help
, test
and whatis
evaluation
modes.chdir
, module
,
module-trace
, module-verbosity
,
module-user
and module-log
commands found
during modulerc evaluation._moduleraw
shell function in
_module_raw
to use a common _module_
prefix
for all module-related internal shell functions.--enable-append-binpath
and
--enable-append-manpath
configure options to append rather
prepend the bin or man directory when adding them to the relative
environment variable.module
function should be passed as list and not as a single string.setenv
modulefile order during an
unload evaluation, variable is still set to be unset in generated shell
code but it is set to the value defined on the setenv
order
in the interpreter context instead of being cleared.MODULES_LMCONFLICT
) and ensure they keep
satisfied. (see v42-conflict-constraints-consistency
section in
MIGRATING document)MODULES_LMPREREQ
) and ensure they keep satisfied.
(see v42-prereq-constraints-consistency
section in
MIGRATING document)v42-automated-module-handling-mode
section in
MIGRATING document)MODULES_LMNOTUASKED
) to distinguish
them from modules that have been explicitly asked by user. This
information helps to determine what module becomes a useless requirement
once all its dependent modules are unloaded.--notuasked
argument to
module load
collection lines. So this information is
restored in loaded environment when collection is restored. This
--notuasked
argument is ignored outside of a collection
restore context.module source
file as
explicitly asked by user.--enable-auto-handling
configure option to
enable or disable the automatic modulefile handling mechanism.restore
, purge
and reload
sub-commands whatever the auto handling mode is.MODULES_AUTO_HANDLING
or from the command-line with
--auto
and --no-auto
switches. These
command-line switches are ignored when called from modulefile.MODULES_LMCONFLICT
,
MODULES_LMPREREQ
and MODULES_LMNOTUASKED
in
module.1 man page.-f
and --force
command-line switches
to by-pass dependency consistency during load
,
unload
or switch
sub-commands. (see v42-by-passing-module-constraints
section in MIGRATING
document)save
or loaded modules
reload
if some loaded modules have some of their dependency
constraints unsatisfied.load
,
unload
and switch
sub-commands excludes
modules that have unsatisfied constraints and includes modules whose
constraints are satisfied again (when sub-command process solves a
conflict for instance).--force
, --auto
and
--no-auto
command-line switches and
MODULES_AUTO_HANDLING
variable in module.1 man page..SYNC
(DesignSync) and
.sos
(SOS) when walking through modulepath directory
content. (contribution from Colin Marquardt)make
rather gmake
on
MSYS2.exec()
usage in Python module function definition
to retrieve the correct return status on Python3.gcc
to the build requirements in RPM
specfile.purge
sub-command.createmodule.sh
and
createmodule.py
scripts in FAQ. (fix issue#189)MODULES_LMALTNAME
variable. These names correspond to the
symbolic versions and aliases resolving to the loaded modules. Helps to
consistently solve conflict
or prereq
constraints set over these alternative names. (fix issue#143 / see v42-consistency-module-load-unload-commands
section in
MIGRATING document)MODULES_LMALTNAME
in module.1 man
page.--with-bin-search-path
configure option to
get in control of the path list used to search the tools required to
build and configure Modules. (fix issue#164)--enable-silent-shell-debug-support
configure option to add the ability to control whether or not code to
support silent shell debug should be added to the module function and
sh-kind initialization scripts. (fix issue#166)--enable-quarantine-support
configure
option to add the ability to control whether or not code to support
quarantine mechanism should be added to the module function and
initialization scripts. (fix issue#167)modulecmd.tcl
script version,
this modulefile is not evaluated like when no magic cookie is set at
all. (fix issue#171 / see v42-versioned-magic-cookie
section in MIGRATING
document)module load
modulefile
command once the modulefile defining it has been loaded by assimilating
this command to a prereq
command. Thus the defined
constraint is recorded in the MODULES_LMPREREQ
environment
variable. Same approach is used for module unload
modulefile command which is assimilated to a conflict
command. Thus the defined constraint is recorded in the
MODULES_LMCONFLICT
environment variable. (see v42-alias-symbolic-name-consistency
section in
MIGRATING document)ERROR
rather WARNING
, like when a conflict constraint is hit.
Moreover this kind of evaluation error is now silenced on global
evaluation like when processing avail
or
search
sub-commands.load
or an unload
modulefile evaluation to
improve readability on these evaluating modes that may cascade
additional actions. (see v42-module-message-report
section in MIGRATING
document)load
, unload
,
switch
and restore
actions (i.e., asked on the
command-line) now report a summary of the additional load and unload
evaluations that were eventually triggered in the process.del
and remove
aliases for
unload
sub-command like on compatibility version. (fix
issue#200 with contribution from Wenzler)system
modulefile command. (fix issue#201)mt
utility script which helps to run just
specific part of the test suite.set-function
and unset-function
modulefile commands to define shell function on sh-kind and fish shells.
(fix issue#193 with contribution from Ben Bowers)getenv
command description in
modulefile(4) man page and clarify this command should be preferred over
::env
variable to query environment variable value in
modulefile.bash
and zsh
completion scripts
to enable Extended Regular Expression (ERE) on sed
command
with -E
argument (rather -r
) for compatibility
with OS X's and BSDs' sed. (fix issue#178)ksh
initialization script for ksh88
compatibility. (fix issue#159)sed
command rather grep
and
cut
in configure
and Makefile
scripts. (fix issue#175 with contribution from Michael Sternberg)createmodule.py
utility script. (contribution from Jan
Synacek)ModulesVersion
value set from
.version
rc file to ensure this value refers to a version
name in current directory. Report error if a nested value is detected
and ignore this value. (fix issue#176)setenv
command alter env
Tcl global
array during help
, test
or whatis
evaluation modes. (fix issue#160)stderr
is attached to a terminal. Was previously checking
stdout
. (fix issue#169)csh
shells, quote code generated by modulecmd.tcl
to pass it to the eval
shell command.getenv
command in modulefile(4) man
page.bash
or zsh
to determine
current shell name. (fix issue#173)contrib/etc
directory
that ensures MODULEPATH
is always defined.HOME
environment variable is defined on
savelist
and is-saved
commands or raise error
if not.foo/bar/version
is default version
for foo
, collection will retain just foo
(was
retaining foo/bar
).puts
command not related to stderr
or
stdout
channels in calling modulefile context to correctly
get access to the targeted file channel. (fix issue#157)autoinit
result for eval interpretation on
SH-kind shells to avoid parameter expansion to randomly occur on
generated code depending on file or directory names of current working
directory. (fix RH bug#1549664)MODULEPATH
,
LOADEDMODULES
or _LMFILES_
to ensure all
elements in these variables are non-empty strings.LOADEDMODULES
and the _LMFILES_
environment
variables. Error raised on load
, unload
,
switch
, reload
, purge
,
list
, save
and restore
commands.
May affect info-loaded
or is-loaded
commands
if module passed as argument to these command is specified as a full
path modulefile.list
command to process loaded modules information
before performing any content output.configure
script and Makefiles to
support installation on Cygwin system.cmd
terminal with
mode
command.cmd
shell support: error code returned,
echoing text, shell alias creation and removal, working directory
change.load
, display
or
unload
.save
, saveshow
or
restore
.unuse
sub-command, like already done on use
sub-command.module
function definition for all shells in
autoinit
command to correctly handle empty-string
parameters or parameters containing white-spaces, quotes, escape
characters.module
function definition for Python to accept
being called with no argument.module
function for all
SH-kind shells when quarantine mode is activated.\
character when producing R shell code.display
command result
for instance, fit small screen width.sphinx-build
cannot be
found.configure
script and Makefiles to
support installation on FreeBSD, Solaris and OS X systems. (fix
issue#147)autoinit
for sh-kind shells to
avoid use of local variables as those are defined differently through
the sh variants. (also fix issue#147)-eu
mode. (fix
issue#151)MODULEPATH
before using it at
run-time, to make potential relative paths absolute, remove trailing
slashes, etc. (fix issue#152)list
action.MODULES_MODSHARE_<VAR>
instead of
<VAR>_modshare
) for DYLD-specific variables. (fix
issue#153)_moduleraw
sh
function from interfering content of current working directory. (fix
issue#154)hostname
RPM requirement to the compat
sub-package.PAGER
environment variable to configure Modules
pager to avoid side effects coming from a general pager configuration
not compatible with Modules pager handling. (fix issue#146)less
when the LESS
environment variable is
defined. (fix issue#146)Warning
With this bugfix release, changes have been made on the pager setup
to avoid side effects coming from the system general pager
configuration. As a result PAGER
environment variable is
now ignored and MODULES_PAGER
should be used instead to
adapt Modules pager configuration at run-time.
autoinit
command to
perform the same environment initialization as done in init
shell scripts (default value set for module-specific environment
variables, parse or source of configuration files).autoinit
command to
define the module
command and setup its default
environment.error
procedure.less
command with -eFKRX
options by default.
Environment variable MODULES_PAGER
or PAGER
may be used to supersede default pager command and options.
--paginate
and --no-pager
switches enable or
disable pager from the command line.--with-pager
and
--with-pager-opts
configure options to define default pager
command and its relative command-line options.MODULES_RUN_QUARANTINE
will be
emptied or set to the value hold by
MODULES_RUNENV_<VAR>
in the modulecmd.tcl run-time
environment. Quarantine variable original value is then restored within
modulecmd.tcl execution context once it has started.--with-quarantine-vars
configure option to
define at build time the MODULES_RUN_QUARANTINE
and
MODULES_RUNENV_<VAR>
environment variables set in
initialization scripts.MODULES_SILENT_SHELL_DEBUG
environment variable to
disable on sh shell and derivatives any xtrace
or
verbose
debugging property for the duration of either the
module command or the module shell initialization script. (fix
issue#121)module_result
global variable.puts
command during a modulefile interpretation, to effectively transmit this
content to stdout after rendering the environment changes made by this
modulefile. (fix issue#113)append-path
, prepend-path
,
remove-path
and is-loaded
module sub-commands,
based on existing modulefile-specific Tcl commands. (fix issue#116)is-saved
, is-used
and
is-avail
modulefile Tcl commands and module sub-commands to
test availability of collection, modulepath or modulefile.path
or paths
module sub-commands is attempted during a modulefile interpretation.
Both commands now return text rather print text on scripting languages.
An empty string is returned in no match case instead of a false boolean
value.module-info loaded
modulefile command and its
module sub-command counterpart info-loaded
. This new
command returns name of the modules currently loaded corresponding to
the name passed as argument. (fix issue#3)is-loaded
command to correctly handle multiple
module names passed as argument (fix issue#138)is-loaded
, is-saved
and is-used
commands to return if anything is respectively
loaded, saved or used.module source
command set in modulefile in
unload
mode when the modulefile itself is interpreted in
this mode../
or ../
a full path name modulefile, like those starting by
/
. These kind of names are converted to absolute path
names, for instance to register them in loaded modulefile list during a
load
command../
, ../
or /
) to already loaded
modulefile registered with regular module name (file name without its
modulepath prefix) to prevent for instance from loading twice same
modulefile. Correlate in the same way regular module name to already
loaded full path name modulefile.MODULES_COLLECTION_PIN_VERSION
environment
variable to record modulefile version number when saving collections
even if version corresponds to the default one. (fix issue#89)etc/rc
global RC file to
@prefix@/etc/rc
instead of $MODULESHOME/etc/rc
not to depend on MODULESHOME
environment variable
value.append-path
,
prepend-path
and remove-path
modulefile Tcl
commands and module sub-commands. Raise error if argument list is not
correct.--delim=C
argument form on
append-path
, prepend-path
and
remove-path
commands.append-path
, prepend-path
and
remove-path
commands.append-path
,
prepend-path
and remove-path
commands.--duplicates
argument option to
append-path
and prepend-path
commands to add a
path element already registered in variable.--index
argument option to
remove-path
command to delete a path entry by passing its
position index in variable.modulecmd.tcl
main procedure. This
configuration is a Tcl script named siteconfig.tcl
which
enables to supersede any Tcl definition made in
modulecmd.tcl
. Location of this file is controlled at
configure time with the --etcdir
option.MODULEPATH
. When these kind of paths are used
by module
command, the variable references are converted to
their corresponding value or to an empty string if they are not
defined..modulespath
initialization file to
handle lines without any #
character or to handle files
with no content to extract.--enable-versioning
configure option,
which appends Modules version to installation prefix and deploy a
versions
modulepath shared between all versioning enabled
Modules installation. A modulefile corresponding to Modules version is
added to the shared modulepath and enables to switch from one Modules
version to another.MODULES_CMD
environment variable to expose path to
the currently active module command script. This variable is set at
initialization time.modulecmd
wrapper script, installed in binary
directory, which executes the active module command.Starting with this release, modules-tcl has become Modules. The
following changes describe the differences with last modules-tcl release
(1.923). To learn about the changes between this release and last
Modules 3.2 release, please see the MIGRATING
document.
unsupported option
warning rather stop on error
when compatibility-version specific command-line switches are passed (
--force
, --human
, --verbose
,
--silent
, --create
, --icase
,
--userlvl
).module load
line in shell configuration
files after running the initrm
or initclear
commands.tcl_platform(osVersion)
for
uname release
1;
once
for a no-operation situation and for Python to not
import os
when there is only an error to render.uname -n
for
uname nodename
./
character used as suffix in modulefile name
passed on command line.perl.pm
and Python
in python.py
.avail
command even these
symbols are set over a module alias or another symbolic version. In this
situation the symbol spread along the resolution path until reaching a
modulefile.unload
situation.search
and paths
commands. Was previously
solved if their target was found in same modulepath directory.avail
command if no result are returned.avail
command.Module ERROR
prefix.display
,
help
and test
commands only output one
separator line between 2 interpreted modulefiles.switch
command, if the unloading part fails
the loading part will not be tried. Unloading part fails if module to
unload does not exist or its unload interpretation raise error.module source
rather shell command
source
to load modulerc system configuration in sh-kind,
csh-kind and fish shell init scripts.add.modules
and mkroot
utility scripts
(scripts developed by R.K. Owen).compat
sub-package.list
command when full pathname modulefile is
loaded (fix bug#132)Above changes describe the differences with modules-tcl release
1.923. To learn about the changes between Modules 4.0 and last Modules
3.2 release, please see the MIGRATING
document.
aliases
command when a global or user RC file is
set.search
, whatis
and paths
commands.avail
command. Correct display when at a given level a sub-directory element
is last element in directory among modulefiles. Previously sub-directory
was printed but last file among modulefiles was also printed (2 latest
versions at the same level). A directory tagged "default" does not
appear anymore in default listing result as its content (the default
version found in that directory) will be displayed.avail
display.module load
line are found in
shell initialization file.setenv
or an
unsetenv
command.avail
. Interpreter state is reset from
one interpretation to another: the initial variable and procedure state
is restored before each new interpretation to avoid spread of
definitions from one interpretation to another. Also in case of nested
interpretation each interpretation level has its own interpreter so a
module loaded by another does not influence the interpretation of the
module loading it.access
system call by trying access to
modulefile when reading the content of a modulefile directory rather
testing access before trying it.module load
line
in startup files. (fix SF bug#88)module load
line will also be
matched.module use
command when an empty path
string is provided rather ignoring it.min
and max
functions and
lreverse
procedure for correct operations under Tcl version
8.4.display
, help
and test
command
specific functions.debug
module commandpath
, paths
and
autoinit
module command.init*
module commands to behave more like C-version
and document remaining differences in diff_with_c-version.sh
init script closer to POSIX specification
to support sh flavors different than Bash or Zsh like Dash.install
non-regression testsuite
which is triggered by the make testinstall
command and
checks modules-tcl installation is operational.fish
init script.sh
init
script.module test
command to trigger when called
execution of a ModulesTest procedure in target modulefile following same
kind of mechanism than module help
.getenv
sub-command to correctly return environment
variable value.avail
command and management of file access
issue when locating modulefiles.load
, display
or whatis
commands. In addition on this kind of access, not readable .modulerc
files are ignored rather producing a missing magic cookie error.module load
commands in
modulefile are interpreted as module unload
commands. To
guaranty correct behavior regarding requirements, the module list passed
to the load command is reversed to unload the modulefiles in the reverse
order than they have been loaded.display
command to only report module commands
set in modulefile and not those set in the various .modulerc on the path
toward this modulefile.avail
command result.avail
command when a symbolic version-name is
passed as argument to return the modulefile target of this symbolic
version-name.list
command to correctly display the
default
tag along loaded modules when set via a .version
file.list
command to display the symbolic
version-names associated to each loaded module if any.avail
command to return alias module when an
alias name is passed as argument.--default
listing, a modulefile does not appear
anymore if a directory is set default at the same level. On a
--latest
listing, a directory does not appear anymore if
set default but not the latest.avail
command.--help
or --version
.switchml
tool, a shell function (or alias for
csh or tcsh shells) that swap currently enabled Modules version (C or
Tcl) by the other version (C or Tcl). Configure option
--with-cver-initdir
must be defined to enable
switchml
in initialization script.dist
target.bin
or a libexec
directory.default
) and targeted by aliases. Avail output was showing
the aliases holding the symbols instead of the modulefile.save
, restore
,
saverm
, saveshow
and savelist
commands.tclsh
once
if found in PATH.module-info mode
check against remove
and switch
values.module-info command
Modules-specific Tcl
command to distinguish complex load
or unload
commands that cannot be determined with module-info mode
alone. For instance a modulefile can now be aware that a
switch
, a restore
or a purge
command is currently being run.module-info
Modules-specific Tcl
command from a modulerc file.module-info specified
Modules-specific Tcl
command.avail
, aliases
, whatis
and
search
commands to avoid harming results from these global
commands if error exists in a few modulefiles.avail
, aliases
, whatis
and
search
commands to avoid error flood when parsing all
modulefiles or modulercs.module-whatis
Modules-specific
Tcl commands defined for the same modulefile.module-whatis
Modules-specific Tcl commands. They are joined to get a single line of
text.whatis
command if searched modulefile
is not found.envml
utility which acts as an application
launcher where module commands are instantiated to setup environment
before launching the given application.exit
Modules-specific Tcl command only if current mode is
load
.module-info shell
and
module-info shelltype
to test current shell or shelltype
value.default
version-name to not consider it as a
module symbol if a modulefile is named default
.:
character is used in
elements of a path-like variable.switch
command handle a single argument. The
modulefile to switch to is the one passed on the command-line and the
modulefile to unload is assumed to be the currently loaded module with
the same root name as this modulefile specified on the
command-line.switch
command idempotent by always ending up with
old
unloaded and new
loaded, whatever the
starting situation is.exit
Modules-specific Tcl command.refresh
command as alias on reload
command.module-log
, module-trace
,
module-user
and module-verbosity
Modules-specific Tcl commands to enable support for modulefiles using
them.system
Modules-specific Tcl command to behave like
described on the man page.module list
when module loaded with full pathg_force
property by default to avoid loading a
modulefile already loaded. It also avoids path element reference
counting to get increased when the same module is asked twice for
load.mode
option and set
help
mode on module help
command.flags
and user
options.add-path
ad
unload-path
commands.unsetenv
command on unload
mode if no value has been provided along.
On display mode, print environment variable value if any has been passed
to unsetenv
command.unuse
command instead of use
command
on a module unload
.continue
Modules-specific Tcl command.chdir
Modules-specific Tcl command.break
Modules-specific Tcl command.module aliases
on
module avail
command, as aliases are now directly included
in the avail
results.avail
command. Also display aliases defined in a global or
user modulerc file.module avail un
, wildcard
*
character implied.avail
command.saveshow
command, to display content of saved
collections.save
and restore
commands to
handle collection specified as absolute or relative file path.saverm
command, to delete saved
collections.restore
collection with multiple modulefiles
specified on the same line.restore
command when there is no module to load in
collection.restore
command when collection fully rewind module
paths.restore
command to preserve module path order set
in collection.