NEWS.rst (modules-5.1.1.tar.bz2) | : | NEWS.rst (modules-5.2.0.tar.bz2) | ||
---|---|---|---|---|
.. _NEWS: | .. _NEWS: | |||
Release notes | Release notes | |||
============= | ============= | |||
This file describes changes in recent versions of Modules. It primarily | This file describes changes in recent versions of Modules. It primarily | |||
documents those changes that are of interest to users and admins. | documents those changes that are of interest to users and admins. | |||
.. _5.2 release notes: | ||||
Modules 5.2.0 (2022-11-08) | ||||
-------------------------- | ||||
* Introduce the ``--optional`` option on :mfcmd:`prereq`, :mfcmd:`prereq-all`, | ||||
:mfcmd:`depends-on` and :mfcmd:`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 :mconfig:`auto_handling` configuration | ||||
option is disabled. | ||||
* A dependency expressed in modulefile with :mfcmd:`module try-load<module>` | ||||
command is considered optional. Dependent module is automatically reloaded | ||||
if the optional requirement is loaded afterward, unless if the | ||||
:mconfig:`auto_handling` configuration option is disabled. | ||||
* Raise error in case of unknown or misplaced option set on :mfcmd:`prereq`, | ||||
:mfcmd:`prereq-all`, :mfcmd:`depends-on` or :mfcmd:`always-load` modulefile | ||||
commands. | ||||
* Add the :option:`--timer` command-line switch to report the total execution | ||||
time of the :command:`module` command. Also report the execution time of | ||||
every internal procedure calls when mixed with :option:`--debug` option. | ||||
* Init: move :envvar:`PATH` setup (to locate Modules' binaries location) from | ||||
shell initialization scripts to the :subcmd:`autoinit` sub-command. (fix | ||||
issue #462) | ||||
* Init: move :envvar:`MANPATH` setup (to locate Modules' man-pages) from | ||||
shell initialization scripts to the :subcmd:`autoinit` sub-command. (fix | ||||
issue #462) | ||||
* Init: move shell completion setup from shell initialization scripts to the | ||||
:subcmd:`autoinit` sub-command. (fix issue #462) | ||||
* Enclose installation path references in shell code produced by | ||||
:subcmd:`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 :mfcmd:`source-sh` and :subcmd:`sh-to-mod` when used with *fish* shell | ||||
script if ``regex-easyesc`` fish option is enabled. (fix issue #463) | ||||
* Add the :mconfig:`protected_envvars` configuration option to define a list | ||||
of environment variables that cannot be modified by modulefile commands. | ||||
When set, :mconfig:`protected_envvars` defines | ||||
:envvar:`MODULES_PROTECTED_ENVVARS` environment variable. (fix issue #429 | ||||
with contribution from Adrien Cotte) | ||||
* Introduce the :subcmd:`lint` sub-command to statically analyze syntax of | ||||
modulefiles, modulerc and global/user rc. (fix issue #451) | ||||
* Add the :mconfig:`tcl_linter` configuration option to define the program | ||||
used to analyze files with :subcmd:`lint` sub-command. This option is set to | ||||
``nagelfar.tcl`` by default. When changed from default value, the | ||||
:envvar:`MODULES_TCL_LINTER` environment variable is defined. Default value | ||||
can be changed with :instopt:`--with-tcl-linter` and | ||||
:instopt:`--with-tcl-linter-opts` installation options. | ||||
* Add the :instopt:`--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 :instopt:`--nagelfardatadir` | ||||
(``DATAROOTDIR/nagelfar`` by default). | ||||
* Doc: add :ref:`lint-sub-command` design notes. | ||||
* Install: use :command:`install` command rather :command:`cp` or | ||||
:command:`mkdir` to install Modules and guaranty consistent permission modes | ||||
on deployed files. | ||||
* Also unset :mfcmd:`pushenv` value stacks on :subcmd:`clear` sub-command. | ||||
* Doc: add :ref:`mod-to-sh-sub-command` design notes. | ||||
* Introduce the :subcmd:`mod-to-sh` sub-command to translate designated | ||||
modulefile(s) into code for specified shell. (fix issue #447) | ||||
* Make :subcmd:`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 :mfcmd:`set-alias` only define shell alias and not shell | ||||
function. | ||||
* Add the ability to filter the list of collections returned by | ||||
:subcmd:`savelist` sub-command. Filtering pattern is matched in a case | ||||
insensitive manner by default. | ||||
* Add support for :option:`--starts-with` and :option:`--contains` options on | ||||
:subcmd:`savelist` sub-command. | ||||
* Highlight all search patterns on :subcmd:`list` sub-command output instead | ||||
of only the first one.. | ||||
* Highlight all search patterns on :subcmd:`savelist` sub-command output. | ||||
* Add support for :option:`--all` option on :subcmd:`savelist` sub-command not | ||||
to limit result to the collection matching currently defined | ||||
:mconfig:`collection_target`. | ||||
* Doc: add :ref:`Shell support` section in :ref:`modulefile(4)` man page to | ||||
describe how shells support the different kind of environment changes that | ||||
can be defined in modulefiles. | ||||
* Record during :subcmd:`autoinit` sub-command the initial environment state | ||||
in :envvar:`__MODULES_LMINIT`. Enabled modulepaths and loaded modulefiles | ||||
through :file:`modulespath` and :file:`initrc` initialization configuration | ||||
files are recorded in this new environment variable. | ||||
* Add :subcmd:`reset` sub-command to restore initial environment. It takes | ||||
recorded environment in :envvar:`__MODULES_LMINIT` and restores it. | ||||
* Initial environment is restored when collection name specified on | ||||
:subcmd:`restore` sub-command equals ``__init__``. | ||||
* When no argument is provided to :subcmd:`restore` sub-command and if | ||||
*default* collection does not exist, initial environment is restored. | ||||
* Initial environment content is displayed when collection name specified on | ||||
:subcmd:`saveshow` sub-command equals ``__init__``. | ||||
* When no argument is provided to :subcmd:`saveshow` sub-command and if | ||||
*default* collection does not exist, initial environment content is | ||||
displayed. | ||||
* Add :mconfig:`reset_target_state` configuration option to determine behavior | ||||
of :subcmd:`reset` sub-command. When set to ``__init__`` (default value) | ||||
initial environment is restored. When set to ``__purge__``, a | ||||
:subcmd:`purge` sub-command is performed. Any other value, corresponds to | ||||
the name of a collection to :subcmd:`restore`. When set, | ||||
:mconfig:`reset_target_state` defines :envvar:`MODULES_RESET_TARGET_STATE` | ||||
environment variable. | ||||
* Doc: add :ref:`initial-environment` design notes. | ||||
* Unload *sticky* modules on :subcmd:`restore` and :subcmd:`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 :file:`modulecmd.tcl` code and add Nagelfar inline comments to fix | ||||
linter reports. | ||||
* Script: add usage message and support for ``-h``/``--help`` option on | ||||
:command:`mrel`, :command:`mpub`, :command:`mt`, :command:`mtreview`, | ||||
:command:`nglfar2ccov`, :command:`mb` and :command:`mlprof` development | ||||
utilities. | ||||
* Doc: describe :command:`script/mt` and :command:`script/mb` utilities in | ||||
:ref:`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 :subcmd:`stash` sub-command to save current environment and restore | ||||
initial one. | ||||
* Add :subcmd:`stashpop` sub-command to restore stash collection then delete | ||||
this collection file. | ||||
* Add :subcmd:`stashrm` sub-command to delete stash collection file. | ||||
* Add :subcmd:`stashshow` sub-command to display stash collection file. | ||||
* Add :subcmd:`stashclear` sub-command to delete all stash collection files. | ||||
* Add :subcmd:`stashlist` sub-command to list all stash collection files. | ||||
* Update :subcmd:`savelist` sub-command to filter out stash collections unless | ||||
if :option:`--all` option is set. | ||||
* Doc: ensure current user environment does not break logging system in | ||||
:ref:`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 | ||||
:envvar:`__MODULES_LMREFRESH` environment variable. | ||||
* Optimize :subcmd:`refresh` sub-command to only evaluate loaded modules that | ||||
defines volatile environment changes (shell completion, alias or function). | ||||
(fix issue #477) | ||||
* Add :sitevar:`modulefile_extra_cmds` hook variable that could be defined in | ||||
:file:`siteconfig.tcl` file to define specific commands in modulefile | ||||
interpreter context. :sitevar:`modulefile_extra_cmds` is a list of command | ||||
name and relative procedure pairs. (fix issue #286) | ||||
* Add :sitevar:`modulefile_extra_vars` hook variable that could be defined in | ||||
:file:`siteconfig.tcl` file to define specific variables in modulefile | ||||
interpreter context. :sitevar:`modulefile_extra_vars` is a list of variable | ||||
name and value pairs. (fix issue #286) | ||||
* Add :sitevar:`modulerc_extra_cmds` hook variable that could be defined in | ||||
:file:`siteconfig.tcl` file to define specific commands in modulerc | ||||
interpreter context. :sitevar:`modulerc_extra_cmds` is a list of command | ||||
name and relative procedure pairs. (fix issue #286) | ||||
* Add :sitevar:`modulerc_extra_vars` hook variable that could be defined in | ||||
:file:`siteconfig.tcl` file to define specific variables in modulerc | ||||
interpreter context. :sitevar:`modulerc_extra_vars` is a list of variable | ||||
name and value pairs. (fix issue #286) | ||||
* Doc: Add :ref:`Site-specific configuration` section in :ref:`module(1)` man | ||||
page. | ||||
* Doc: extend :ref:`Collections` section with examples in :ref:`module(1)` man | ||||
page. | ||||
.. _Nagelfar: http://nagelfar.sourceforge.net/ | ||||
.. _ShellCheck: https://www.shellcheck.net/ | ||||
.. _5.1 release notes: | .. _5.1 release notes: | |||
Modules 5.1.1 (2022-05-31) | Modules 5.1.1 (2022-05-31) | |||
-------------------------- | -------------------------- | |||
* Install: add :command:`rpmlint` rc configuration file to filter false | * Install: add :command:`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 260 | skipping to change at line 425 | |||
enclose module names in single quotes if they contain a space character. | enclose module names in single quotes if they contain a space character. | |||
* When mentioning the loading, unloading or refreshing evaluation of a module, | * When mentioning the loading, unloading or refreshing evaluation of a module, | |||
report the tags associated to this module as done when printing results of | report the tags associated to this module as done when printing results of | |||
:subcmd:`list` sub-command. | :subcmd:`list` sub-command. | |||
* Fix :ref:`log-module-command` cookbook recipe not to break Modules | * Fix :ref:`log-module-command` cookbook recipe not to break Modules | |||
initialization when using provided :file:`siteconfig.tcl` file. (fix issue | initialization when using provided :file:`siteconfig.tcl` file. (fix issue | |||
#453 with contribution from Eric Burgueño) | #453 with contribution from Eric Burgueño) | |||
* Mention tagging evaluation of a module, when tag list of an already loaded | * Mention tagging evaluation of a module, when tag list of an already loaded | |||
module is updated. | module is updated. | |||
.. _Code of conduct: https://github.com/cea-hpc/modules/blob/master/CODE_OF_COND UCT.md | .. _Code of conduct: https://github.com/cea-hpc/modules/blob/main/CODE_OF_CONDUC T.md | |||
.. _codespell: https://github.com/codespell-project/codespell | .. _codespell: https://github.com/codespell-project/codespell | |||
.. _Aspell: http://aspell.net/ | .. _Aspell: http://aspell.net/ | |||
.. _5.0 release notes: | .. _5.0 release notes: | |||
Modules 5.0.1 (2021-10-16) | Modules 5.0.1 (2021-10-16) | |||
-------------------------- | -------------------------- | |||
* Doc: add *How to preserve my loaded environment when running screen* entry | * Doc: add *How to preserve my loaded environment when running screen* entry | |||
in :ref:`FAQ`. | in :ref:`FAQ`. | |||
skipping to change at line 797 | skipping to change at line 962 | |||
* Introduce stickiness: module tagged ``sticky`` with :mfcmd:`module-tag` | * Introduce stickiness: module tagged ``sticky`` with :mfcmd:`module-tag` | |||
command cannot be unloaded unless if the unload is forced or if the module | command cannot be unloaded unless if the unload is forced or if the module | |||
is reloaded. (fix issue #269) | is reloaded. (fix issue #269) | |||
* Introduce super-stickiness: module tagged ``super-sticky`` with | * Introduce super-stickiness: module tagged ``super-sticky`` with | |||
:mfcmd:`module-tag` command cannot be unloaded even if the unload is forced | :mfcmd:`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 version | * Allow swap of sticky or super-sticky modules by another modulefile version | |||
if stickiness definition applies to module parent name. E.g., *foo/1.0* can | 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 *foo*. | be swapped by *foo/2.0* if sticky tag applies to *foo*. | |||
* When forcing purge with a :subcmd:`purge --force<purge>` sub-command, also | * When forcing purge with a :subcmd:`purge --force<purge>` sub-command, also | |||
unload the modules that are depended by unloadable modules. | unload 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 | |||
:ref:`INSTALL` document and enable hypertext reference to these elements. | :ref:`INSTALL` document and enable hypertext reference to these elements. | |||
* Doc: improve readability of module command configuration option in | * Doc: improve readability of module command configuration option in | |||
:ref:`module(1)` document and enable hypertext reference to these elements. | :ref:`module(1)` document and enable hypertext reference to these elements. | |||
* Doc: describe in HTML documentation when installation options, module | * Doc: describe in HTML documentation when installation options, module | |||
command configuration options and options of modulefile command or module | command configuration options and options of modulefile command or module | |||
sub-command were introduced. | sub-command were introduced. | |||
* Doc: update HTML documentation Table Of Content. | * Doc: update HTML documentation Table Of Content. | |||
* Doc: improve markup of module sub-commands, modulefile commands, | * Doc: improve markup of module sub-commands, modulefile commands, | |||
installation option, module configuration option across documentation. | installation option, module configuration option across documentation. | |||
End of changes. 3 change blocks. | ||||
2 lines changed or deleted | 167 lines changed or added |