NEWS.txt (modules-5.1.1.tar.bz2) | : | NEWS.txt (modules-5.2.0.tar.bz2) | ||
---|---|---|---|---|
Release notes | Release notes | |||
************* | ************* | |||
This file describes changes in recent versions of Modules. It | This file describes changes in recent versions of Modules. It | |||
primarily documents those changes that are of interest to users and | primarily documents those changes that are of interest to users and | |||
admins. | admins. | |||
Modules 5.2.0 (2022-11-08) | ||||
========================== | ||||
* Introduce the "--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. | ||||
* A dependency expressed in modulefile with "module try-load" 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. | ||||
* Raise error in case of unknown or misplaced option set on "prereq", | ||||
"prereq-all", "depends-on" or "always-load" modulefile commands. | ||||
* Add the "--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. | ||||
* Init: move "PATH" setup (to locate Modules' binaries location) from | ||||
shell initialization scripts to the "autoinit" sub-command. (fix | ||||
issue #462) | ||||
* Init: move "MANPATH" setup (to locate Modules' man-pages) from shell | ||||
initialization scripts to the "autoinit" sub-command. (fix issue | ||||
#462) | ||||
* Init: move shell completion setup from shell initialization scripts | ||||
to the "autoinit" sub-command. (fix issue #462) | ||||
* Enclose installation path references in shell code produced by | ||||
"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. | ||||
* Fix "source-sh" and "sh-to-mod" when used with *fish* shell script | ||||
if "regex-easyesc" fish option is enabled. (fix issue #463) | ||||
* Add the "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) | ||||
* Introduce the "lint" sub-command to statically analyze syntax of | ||||
modulefiles, modulerc and global/user rc. (fix issue #451) | ||||
* Add the "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. | ||||
* Add the "--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). | ||||
* Doc: add lint sub-command design notes. | ||||
* Install: use **install** command rather **cp** or **mkdir** to | ||||
install Modules and guaranty consistent permission modes on deployed | ||||
files. | ||||
* Also unset "pushenv" value stacks on "clear" sub-command. | ||||
* Doc: add mod-to-sh sub-command design notes. | ||||
* Introduce the "mod-to-sh" sub-command to translate designated | ||||
modulefile(s) into code for specified shell. (fix issue #447) | ||||
* Make "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) | ||||
* Doc: clarify "set-alias" only define shell alias and not shell | ||||
function. | ||||
* Add the ability to filter the list of collections returned by | ||||
"savelist" sub-command. Filtering pattern is matched in a case | ||||
insensitive manner by default. | ||||
* Add support for "--starts-with" and "--contains" options on | ||||
"savelist" sub-command. | ||||
* Highlight all search patterns on "list" sub-command output instead | ||||
of only the first one.. | ||||
* Highlight all search patterns on "savelist" sub-command output. | ||||
* Add support for "--all" option on "savelist" sub-command not to | ||||
limit result to the collection matching currently defined | ||||
"collection_target". | ||||
* Doc: add Shell support section in modulefile man page to describe | ||||
how shells support the different kind of environment changes that | ||||
can be defined in modulefiles. | ||||
* Record during "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. | ||||
* Add "reset" sub-command to restore initial environment. It takes | ||||
recorded environment in "__MODULES_LMINIT" and restores it. | ||||
* Initial environment is restored when collection name specified on | ||||
"restore" sub-command equals "__init__". | ||||
* When no argument is provided to "restore" sub-command and if | ||||
*default* collection does not exist, initial environment is | ||||
restored. | ||||
* Initial environment content is displayed when collection name | ||||
specified on "saveshow" sub-command equals "__init__". | ||||
* When no argument is provided to "saveshow" sub-command and if | ||||
*default* collection does not exist, initial environment content is | ||||
displayed. | ||||
* Add "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. | ||||
* Doc: add Initial environment design notes. | ||||
* Unload *sticky* modules on "restore" and "reset" sub-commands to | ||||
fully set environment in collection or initial state. | ||||
* Testsuite: add *lint* testsuite to validate syntax of shell and Tcl | ||||
scripts of this project. This testsuite can be invoked with "make | ||||
testlint" or "script/mt lint". sh, bash and ksh scripts are checked | ||||
with ShellCheck tool and tcl scripts are checked with Nagelfar. | ||||
* Update "modulecmd.tcl" code and add Nagelfar inline comments to fix | ||||
linter reports. | ||||
* Script: add usage message and support for "-h"/"--help" option on | ||||
**mrel**, **mpub**, **mt**, **mtreview**, **nglfar2ccov**, **mb** | ||||
and **mlprof** development utilities. | ||||
* Doc: describe **script/mt** and **script/mb** utilities in | ||||
Contributing guide. | ||||
* Fix ShellCheck error, warning and info reports over all sh, bash and | ||||
ksh shell scripts. (fix issue #470 with contribution from Lukáš | ||||
Zaoral) | ||||
* Init: update profile script for sh-like shells to only source sh or | ||||
bash initialization script when BASH environment variable is found | ||||
set. (fix issue #473) | ||||
* Add "stash" sub-command to save current environment and restore | ||||
initial one. | ||||
* Add "stashpop" sub-command to restore stash collection then delete | ||||
this collection file. | ||||
* Add "stashrm" sub-command to delete stash collection file. | ||||
* Add "stashshow" sub-command to display stash collection file. | ||||
* Add "stashclear" sub-command to delete all stash collection files. | ||||
* Add "stashlist" sub-command to list all stash collection files. | ||||
* Update "savelist" sub-command to filter out stash collections unless | ||||
if "--all" option is set. | ||||
* Doc: ensure current user environment does not break logging system | ||||
in Log module command recipe. (fix issue #475) | ||||
* Rename the default git branch from *master* to *main* to use | ||||
inclusive terminology. | ||||
* Mark loaded modules that could benefit from a refresh evaluation in | ||||
the "__MODULES_LMREFRESH" environment variable. | ||||
* Optimize "refresh" sub-command to only evaluate loaded modules that | ||||
defines volatile environment changes (shell completion, alias or | ||||
function). (fix issue #477) | ||||
* Add "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) | ||||
* Add "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) | ||||
* Add "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) | ||||
* Add "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) | ||||
* Doc: Add Site-specific configuration section in module man page. | ||||
* Doc: extend Collections section with examples in module man page. | ||||
Modules 5.1.1 (2022-05-31) | Modules 5.1.1 (2022-05-31) | |||
========================== | ========================== | |||
* Install: add **rpmlint** rc configuration file to filter false | * Install: add **rpmlint** rc configuration file to filter false | |||
positive warning messages. | positive warning messages. | |||
* Install: better guess "libdir64" and "libdir32" directory locations | * Install: better guess "libdir64" and "libdir32" directory locations | |||
when "libdir" does not end with *64* but contains *64*. | when "libdir" does not end with *64* but contains *64*. | |||
* Install: update RPM spec file to move libtclenvmodules in an | * Install: update RPM spec file to move libtclenvmodules in an | |||
skipping to change at line 1029 | skipping to change at line 1244 | |||
* Introduce super-stickiness: module tagged "super-sticky" with | * Introduce super-stickiness: module tagged "super-sticky" with | |||
"module-tag" command cannot be unloaded even if the unload is forced | "module-tag" command cannot be unloaded even if the unload is forced | |||
unless if the module is reloaded. (fix issue #269) | unless if the module is reloaded. (fix issue #269) | |||
* Allow swap of sticky or super-sticky modules by another modulefile | * Allow swap of sticky or super-sticky modules by another modulefile | |||
version if stickiness definition applies to module parent name. | version if stickiness definition applies to module parent name. | |||
E.g., *foo/1.0* can be swapped by *foo/2.0* if sticky tag applies to | E.g., *foo/1.0* can be swapped by *foo/2.0* if sticky tag applies to | |||
*foo*. | *foo*. | |||
* When forcing purge with a "purge --force" sub-command, also unload | * When forcing purge with a "purge --force" sub-command, also unload | |||
the modules that are depended by unloadable modules. | the modules that are depended by non-unloadable modules. | |||
* Doc: improve readability of Modules installation configuration in | * Doc: improve readability of Modules installation configuration in | |||
Installing Modules on Unix document and enable hypertext reference | Installing Modules on Unix document and enable hypertext reference | |||
to these elements. | to these elements. | |||
* Doc: improve readability of module command configuration option in | * Doc: improve readability of module command configuration option in | |||
module document and enable hypertext reference to these elements. | module document and enable hypertext reference to these elements. | |||
* Doc: describe in HTML documentation when installation options, | * Doc: describe in HTML documentation when installation options, | |||
module command configuration options and options of modulefile | module command configuration options and options of modulefile | |||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 216 lines changed or added |