- Doc: add Return file basename on module-info name for full path modulefile recipe to cookbook. (fix issue #297)
- Rework internal handling of configuration options to gather all option definitions in a global array and use the same initialization and retrieval procedure, named
getConf
, for all these options. - Add the
setConf
,unsetConf
andlappendConf
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. - Add the ability to match module specification in a case insensitive manner. Default case sensitiveness behavior is set at
./configure
time with the--with-icase
option. It could be superseded with theMODULES_ICASE
environment variable, that could be set withconfig
module sub-command through theicase
option. Command-line switch--icase
(-i
) enables to supersede defined case sensitiveness configuration. (fix issue #212 with contribution from Eric Deveaud) - Introduce the extended default mechanism, to help selecting a module when only the first numbers in its version are specified. Starting portion of the version, part separated from the rest of the version string by a
.
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 caseimplicit_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 namedextended_default
(which definesMODULES_EXTENDED_DEFAULT
environment variable when set). It may be enabled by default inmodulecmd.tcl
script with option--enable-extended-default
passed to the./configure
script. - Introduce the advanced module version specifiers mechanism to specify finer constraints on module version. This new feature enables to filter the module selection to a given version list or range by specifying after the module name a version constraint prefixed by the
@
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 caseimplicit_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 namedadvanced_version_spec
(which definesMODULES_ADVANCED_VERSION_SPEC
environment variable when set). It may be enabled by default inmodulecmd.tcl
script with option--enable-advanced-version-spec
passed to the./configure
script. - Conflict defined with a generic module name or an advanced version specifier may match multiple loaded modules (generally in case multiple loaded modules share same root name). Loaded environment analysis has been fixed to bind conflict to all loaded modules matching it. As a result the Dependent Reload mechanism is not triggered when one loaded module matching conflict is removed if another loaded module still match the conflict.
- Doc: add Module selection contexts, Insensitive case, Extended default and Advanced module version specifiers design notes.
- Make
MODULESHOME
environment variable controllable through theconfig
sub-command withhome
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)