- Doc: fix typos and grammar mistakes on module(1), modulefile(4) and diff_v3_v4 documents. (contribution from Colin Marquardt)
- Doc: update cookbook recipes to highlight code of the Tcl scripts included. (contribution from Colin Marquardt)
- Doc: improve markup of module(1), modulefile(4) and diff_v3_v4 documents to enable references to module sub-commands, command line switches, environment variables and modulefile Tcl commands. (contribution from Colin Marquardt)
- Doc: alphabetically sort module sub-commands, command-line switches, environment variables and modulefile Tcl commands in module(1) and modulefile(4) documents.
- Introduce the
ml
command, a handy frontend to themodule
command.ml
reduces the number of characters to type to triggermodule
. With no argumentml
is equivalent tomodule list
,ml mod
corresponds tomodule load mod
andml -mod
meansmodule 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 bymodule
command.ml
command is defined by default. Its definition can be controlled at./configure
time with--enable-ml
option or later on withml
configuration option (which definesMODULES_ML
environment variable when set). - Fix module sub-command abbreviation match to ensure passed abbreviated form fully match sub-command, not only its minimal abbreviated form. As an example,
lod
orloda
do not match anymore theload
sub-command,lo
orloa
still do. - Add the
-j
/--json
command line switches to theavail
,list
,savelist
,whatis
andsearch
module sub-commands to render their output in JSON format. (fix issue #303) - Script: remove need to build project management-specific tools (
mtreview
,mb
,mlprof
andplaydemo
) prior using them. - Script: gather all distributed and maintained scripts in a
script
directory at the root of the project repository tree. - Install: provide Windows-specific batch files when
./configure
option--enable-windows-support
is set. module command wrappermodule.cmd
is installed inbindir
and initialization scriptcmd.cmd
ininitdir
. Those batch files are relocatable and expectmodulecmd.tcl
in..\libexec
directory. (fix issue #272 with contribution from Jacques Raphanel) - Install: add ml command wrapper
ml.cmd
and install it inbindir
when./configure
option--enable-windows-support
is set. - Install: introduce envml command wrapper
envml.cmd
for Windowscmd
shell and install it inbindir
when./configure
option--enable-windows-support
is set. (contribution from Jacques Raphanel) - Doc: improve documentation portal index.
- Install: add
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
andUNINSTALL.bat
Windows batch files are introduced and shipped in the zipball to automate installation and basic configuration of Modules on the Windows platform. - Doc: update INSTALL-win document to describe how to install Modules with newly provided Windows-specific distribution zipball.
- Install: enable build of Modules from
git archive
tarball or zipball exports (like download source archives automatically provided on GitHub project) - Install: ship reStructuredText and MarkDown source documents at the root of Modules distribution tarball rather their built txt counterpart.
- Script: fix
createmodule.sh
script to correctly analyses environment when shell functions are found defined in it. - Script: inhibit output generated by scripts evaluated by
createmodule.sh
andcreatemodule.py
to ensure these outputs will not get in the way when analyzing the environment changes. (fix issue #309) - Correctly handle symbolic version target including a whitespace in their name.
- Testsuite: output test error details whatever the testsuite run verbose mode.
- Install: adapt configure script and Makefile to detect
python
command location and set it as shebang forcreatemodule.py
andgitlog2changelog.py
. Ifpython
command is not found,python3
thenpython2
are searched. - Install: enable to pass a specific Python interpreter command name or location at configure step with
--with-python
option. Specified command name or location should be found on build system only if building from git repository. - Install: build
createmodule.py
script and install it inbindir
. - Install: update RPM spec file to explicitly define Python interpreter location.
- Script: fix
createmodule.py
script for Python3 (fix issue #315 with contribution from Armin Wehrfritz) - Lift Perl variable strictness when defining
_mlstatus
variable in casemodulecmd.tcl
output is directly evaluated without use of themodule
sub-routine in Perl script. (with contribution from Andrey Maslennikov) - Script: fix path de-duplication in
createmodule.sh
. (fix issue #316) - Doc: add Handling Compiler and other Package Dependencies cookbook recipe, which discusses various strategies for creating modulefiles for packages with multiple builds depending on previously loaded compiler, MPI libraries, etc. (contribution from Tom Payerle)
- Init: test availability of
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) - Install: adapt configure step to detect if
sed
option-E
is supported and fallback to-r
otherwise in shell completion scripts. (fix issue #317) - Add support for the
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 overCLICOLOR
andCLICOLOR_FORCE
environment variables.MODULES_COLOR
overrides these three variables. (fix issue #310) - Script: when analyzing environment variable changes in
createmodule.sh
applied by shell script passed as argument, produce asetenv
modulefile statement for any variable found set prior script evaluation and for which value is completely changed after script evaluation. (fix issue #320) - When an error message is composed of multiple lines, render it in the same way whether it is part of a block message or not: lines after the first one are prepended with a 2-space padding. As a result error messages appear clearly separated from each other.
- Append to the error message the error stack trace when a general unknown error occurs in
modulecmd.tcl
and provide a link to encourage users to report such error to the GitHub project. - Add to the error message the error stack trace for errors occurring during site-specific configuration evaluation. Error stack is expunged from the
modulecmd.tcl
internals to only report information relevant to site-specific configuration file. - When an error occurs during the evaluation of a modulefile or a modulerc, report associated error stack trace expunged from
modulecmd.tcl
internal references to only output useful information for users. - GitHub: add issue templates to guide people submitting a bug report or a feature request.
- Doc: provide a link toward issues that have been fixed between versions 3.2 and 4.0 in diff_v3_v4 document.
- Script: introduce
envml.cmd
script for Windows platform providing similar behavior thanenvml
Bash script. (contribution from Jacques Raphanel) - Init: add Bash shell completion for the
ml
command. (contribution from Adrien Cotte) - Fix Fish shell stderr redirection for newer Fish versions. (fix issue #325)
- Correctly handle modulefiles and modulepaths containing a space character in their name whether they are used from the command-line, in collections, within modulefiles or from loaded environment definitions.
- Doc: add Default and latest version specifiers design note.
- An
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
andpaths
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)- alias and virtual module whose name mention a directory that does not exists are correctly handled. (fix issue #168)
- Hide special modules (aliases, symbolic versions and virtual modules) whose version name starts with a dot character (
.
) fromavail
,whatis
andpaths
searches if their query does not fully match special module name. (fix issue #329) - Filter-out from the output of the
aliases
sub-command all hidden aliases, symbolic versions or hidden modules targeted by a non-hidden symbolic version. (fix issue #330) - Enable resolution of default module in module sub-directory when this default symbol targets a hidden directory (whose name starts with a dot character). (fix issue #331)
- Doc: clarify hidden module location in modulefile(4) man page.
- Install: define
LD_PRELOAD
as quarantine var along withLD_LIBRARY_PATH
in RPM specfile. - When
implicit_default
andadvanced_version_spec
configuration are enabled, automatically define adefault
andlatest
symbolic version for each module name (at each module depth for deep modules) if those version names does not already exist. (fix issue #210) - Once a module is loaded, the automatically defined symbols associated to it are recorded in loaded environment in the
MODULES_LMALTNAME
environment variable. They are distinguished from the other alternative names applying to the module by aas|
prefix, which qualifies their auto symbol type. - When an advanced version specifier list contains symbolic version references, fix resolving to honor default version if part of the specified list. (fix issue #334)