- 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
mlcommand, a handy frontend to the
mlreduces the number of characters to type to trigger
module. With no argument
mlis equivalent to
ml modcorresponds to
module load modand
module unload mod. Multiple modules to either load or unload can be combined on a single command.
mlaccepts all command-line switches and sub-commands accepted by
mlcommand is defined by default. Its definition can be controlled at
--enable-mloption or later on with
mlconfiguration option (which defines
MODULES_MLenvironment 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,
lodado not match anymore the
- Add the
--jsoncommand line switches to the
searchmodule sub-commands to render their output in JSON format. (fix issue #303)
- Script: remove need to build project management-specific tools (
playdemo) prior using them.
- Script: gather all distributed and maintained scripts in a
scriptdirectory at the root of the project repository tree.
- Install: provide Windows-specific batch files when
--enable-windows-supportis set. module command wrapper
module.cmdis installed in
bindirand initialization script
initdir. Those batch files are relocatable and expect
..\libexecdirectory. (fix issue #272 with contribution from Jacques Raphanel)
- Install: add ml command wrapper
ml.cmdand install it in
- Install: introduce envml command wrapper
cmdshell and install it in
--enable-windows-supportis set. (contribution from Jacques Raphanel)
- Doc: improve documentation portal index.
- Install: add
dist-wintarget to Makefile in order to build a distribution zipball containing the required files to run Modules on a Windows platform.
UNINSTALL.batWindows 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 archivetarball 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.shscript to correctly analyses environment when shell functions are found defined in it.
- Script: inhibit output generated by scripts evaluated by
createmodule.pyto 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
pythoncommand location and set it as shebang for
pythoncommand is not found,
- Install: enable to pass a specific Python interpreter command name or location at configure step with
--with-pythonoption. Specified command name or location should be found on build system only if building from git repository.
- Install: build
createmodule.pyscript and install it in
- Install: update RPM spec file to explicitly define Python interpreter location.
- Script: fix
createmodule.pyscript for Python3 (fix issue #315 with contribution from Armin Wehrfritz)
- Lift Perl variable strictness when defining
_mlstatusvariable in case
modulecmd.tcloutput is directly evaluated without use of the
modulesub-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
compoptBash 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
-Eis supported and fallback to
-rotherwise in shell completion scripts. (fix issue #317)
- Add support for the
NO_COLORenvironment variable (https://no-color.org/) which when set (regardless of its value) prevents the addition of ANSI color. When set,
MODULES_COLORoverrides these three variables. (fix issue #310)
- Script: when analyzing environment variable changes in
createmodule.shapplied by shell script passed as argument, produce a
setenvmodulefile 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.tcland 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.tclinternals 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.tclinternal 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.cmdscript for Windows platform providing similar behavior than
envmlBash script. (contribution from Jacques Raphanel)
- Init: add Bash shell completion for the
mlcommand. (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.
availsearch over a symbolic version targeting a directory now correctly returns the special modules (alias and virtual module) lying in this directory. (fix issue #327)
pathssearches 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 (
pathssearches if their query does not fully match special module name. (fix issue #329)
- Filter-out from the output of the
aliasessub-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_PRELOADas quarantine var along with
LD_LIBRARY_PATHin RPM specfile.
advanced_version_specconfiguration are enabled, automatically define a
latestsymbolic 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_LMALTNAMEenvironment variable. They are distinguished from the other alternative names applying to the module by a
as|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)