"Fossies" - the Fresh Open Source Software Archive

Member "modules-5.2.0/ChangeLog" (8 Nov 2022, 1723001 Bytes) of package /linux/misc/modules-5.2.0.tar.bz2:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog": 5.1.1_vs_5.2.0.

    1 2022-11-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
    2 
    3   * MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
    4   doc/source/conf.py, version.inc.in: Release of version 5.2.0
    5 
    6 2022-11-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
    7 
    8   * .aspell.en.pws, NEWS.rst, doc/source/module.rst: doc: extend Collections
    9   desc in module man
   10 
   11 2022-11-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   12 
   13   * CONTRIBUTING.rst, INSTALL-win.rst, INSTALL.rst,
   14   contrib/vim/syntax/modulefile.vim,
   15   doc/source/cookbook/log-module-commands.rst: doc/vim: update tcl.tk links
   16   into tcl-lang.org
   17 
   18   * doc/source/module.rst: doc: desc hooks made with rename in module man
   19 
   20 2022-11-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   21 
   22   * .aspell.en.pws, MIGRATING.rst: doc: desc. siteconfig hook var in MIGRATING
   23 
   24   * MIGRATING.rst: doc: fix path issue in sticky module examples
   25 
   26 2022-10-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   27 
   28   * .aspell.en.pws, NEWS.rst, doc/source/module.rst, siteconfig.tcl: doc: add
   29   Site-specific configuration section in man
   30 
   31 2022-10-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   32 
   33   * testsuite/example/siteconfig.tcl-1, testsuite/modulefiles.3/.modulerc,
   34   testsuite/modulefiles.3/interp/.modulerc, testsuite/modulefiles.3/interp/0,
   35   testsuite/modulefiles.3/interp/1, testsuite/modulefiles.3/interp/2,
   36   .../modules.50-cmds/560-siteconfig-interp.exp: ts: test specific vars/cmds
   37   hooks in 50/560
   38 
   39 2022-10-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   40 
   41   * .aspell.en.pws, NEWS.rst, doc/source/conf.py: doc: desc. cmds/vars hooks
   42   in NEWS
   43 
   44   * siteconfig.tcl, tcl/mfinterp.tcl.in: Add hooks for specific vars/cmds in
   45   modulerc interp ctx  Introduce hooks to define specific variables and
   46   commands for modulerc interpreter context. It relies on variables defined in
   47   siteconfig.tcl configuration file:  * modulerc_extra_vars is a list of
   48   variable name and value pairs * modulerc_extra_cmds is a list of command
   49   name and procedure pairs  Fixes #286
   50 
   51   * siteconfig.tcl, tcl/mfinterp.tcl.in: Add hooks for specific vars/cmds in
   52   modulefile interp ctx  Introduce hooks to define specific variables and
   53   commands for modulefile interpreter context. It relies on variables defined
   54   in siteconfig.tcl configuration file:  * modulefile_extra_vars is a list of
   55   variable name and value pairs * modulefile_extra_cmds is a list of command
   56   name and procedure pairs  Fixes #286
   57 
   58 2022-10-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   59 
   60   * tcl/modfind.tcl.in: Remove modvr default value on setLoadedModule proc
   61 
   62 2022-10-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
   63 
   64   * testsuite/install.00-init/025-autoinit.exp,
   65   .../modules.20-locate/130-mcookie_check_eval.exp,
   66   testsuite/modules.50-cmds/075-alias.exp,
   67   testsuite/modules.50-cmds/076-alias-sub.exp,
   68   testsuite/modules.50-cmds/077-alias-undo.exp,
   69   testsuite/modules.50-cmds/078-refresh.exp,
   70   testsuite/modules.50-cmds/083-info-mode.exp,
   71   testsuite/modules.50-cmds/084-info-mode-exp.exp,
   72   testsuite/modules.50-cmds/282-info-command.exp,
   73   testsuite/modules.50-cmds/283-info-command-exp.exp,
   74   testsuite/modules.50-cmds/350-allin.exp,
   75   testsuite/modules.50-cmds/360-restoreenv.exp,
   76   testsuite/modules.50-cmds/390-function.exp,
   77   testsuite/modules.50-cmds/391-function-undo.exp,
   78   testsuite/modules.50-cmds/400-source-sh.exp,
   79   testsuite/modules.50-cmds/540-complete.exp,
   80   testsuite/modules.50-cmds/541-uncomplete.exp,
   81   testsuite/modules.70-maint/120-autoinit.exp,
   82   testsuite/modules.70-maint/210-clear.exp: ts: adapt existing tests to
   83   __MODULES_LMREFRESH
   84 
   85   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
   86   refresh only modules requiring it
   87 
   88   * .aspell.en.pws, NEWS.rst, doc/source/changes.rst, doc/source/module.rst:
   89   doc: desc. __MODULES_LMREFRESH in NEWS/man/changes
   90 
   91   * tcl/subcmd.tcl.in: Only refresh loaded modules requiring it  Use the
   92   qualified refresh property to only evaluate in refresh mode the loaded
   93   modules marked with this property.  Fixes #477
   94 
   95   * tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modfind.tcl.in,
   96   tcl/subcmd.tcl.in: Track loaded modules qualified for refresh eval  Track
   97   loaded modules that are qualified for a refresh evaluation. Refresh
   98   evaluation is only useful if module defines volatile environment changes:
   99   shell completion, alias or function.  An internal state, named
  100   refresh_qualified, marks loading modules defining such volatile environment
  101   changes. Such modules are then added to the __MODULES_LMREFRESH environment
  102   variable to track this property once module is loaded.  Code is also added
  103   to remove module from __MODULES_LMREFRESH when it is unloaded.
  104 
  105   * .github/workflows/differential_shellcheck.yml,
  106   .github/workflows/lint_tests.yaml, .github/workflows/linux_tests.yaml,
  107   .github/workflows/windows_tests.yaml, CONTRIBUTING.rst, Makefile, NEWS.rst,
  108   README.md, configure, doc/source/conf.py,
  109   doc/source/cookbook/modulefiles-in-git.rst, script/mpub, script/mrel: Use
  110   main as new name for default git branch
  111 
  112 2022-10-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  113 
  114   * .github/workflows/windows_tests.yaml: gh: use cygwin-install-action rather
  115   builtin chocolatey  Chocolatey version 1.2.0 shipped with latest windows
  116   2022 image does not seem to correctly install packages from Cygwin source.
  117   So move to cygwin/cygwin-install-action to install Cygwin packages.
  118 
  119   * Makefile: install: use newer version of nagelfar (1.3.3)
  120 
  121 2022-10-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  122 
  123   * testsuite/modules.00-init/005-init_ts.exp,
  124   .../modules.20-locate/112-hide-user-group.exp,
  125   .../modules.20-locate/117-forbid-user-group.exp,
  126   testsuite/modules.20-locate/119-hide-cascading.exp,
  127   testsuite/modules.50-cmds/287-info-usergroups.exp,
  128   testsuite/modules.50-cmds/440-module-tag.exp,
  129   testsuite/modules.70-maint/220-config.exp,
  130   testsuite/modules.70-maint/390-state.exp: ts: fix testsuite run when id cmd
  131   cannot resolve group  Update testsuite to cope with user group whose name
  132   cannot be resolved.  Fixes #476.
  133 
  134 2022-10-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  135 
  136   * Makefile, NEWS.rst, init/Makefile, init/zsh.in, tcl/subcmd.tcl.in,
  137   testsuite/modules.70-maint/120-autoinit.exp: Revert "init: setup zsh FPATH
  138   through autoinit command"  This reverts commit
  139   59ac24e2431df012d8b22872a0e8fd1e86a20e9f.  FPATH variable cannot be handled
  140   within autoinit process as this is not an environment variable. Thus when
  141   modulecmd.tcl is executed, it does not know the current value of FPATH. So
  142   if it sets FPATH during autoinit, previous value of this variable is lost.
  143   As a result FPATH must stay defined in initialization script.
  144 
  145 2022-10-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  146 
  147   * .aspell.en.pws, NEWS.rst, doc/example/log-module-commands/siteconfig.tcl,
  148   doc/source/cookbook/log-module-commands.rst: doc: fix logging sys on
  149   log-module-command recipe  Update log-module-command recipe to ensure the
  150   logging system is not broken by the current user environment.  Fixes #475.
  151 
  152 2022-10-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  153 
  154   * testsuite/install.00-init/005-init_ts.exp: ts: skip basheu tests on bash
  155   5.2  bash -eu test of install testsuite are skipped on new version of bash
  156   (5.2) as internal messages currently appear when using module function with
  157   -eu options on this version.  A bug as been submitted to the bash
  158   developers:
  159   https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00073.html
  160 
  161 2022-10-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  162 
  163   * .github/workflows/linux_tests.yaml: gh: update to codecov-action v3
  164 
  165   * .github/workflows/lint_tests.yaml, .github/workflows/linux_tests.yaml,
  166   .github/workflows/windows_tests.yaml: gh: update actions/upload-artifact to
  167   v3
  168 
  169   * .github/workflows/lint_tests.yaml, .github/workflows/linux_tests.yaml,
  170   .github/workflows/windows_tests.yaml: gh: update actions/checkout to v3
  171 
  172   * .github/workflows/windows_tests.yaml: gh: move windows tests to
  173   windows-2022 image
  174 
  175 2022-10-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  176 
  177   * testsuite/modules.70-maint/210-clear.exp: ts: fix env of clear subcmd test
  178   case
  179 
  180   * Makefile: install: correct arg order for date cmd on FreeBSD
  181 
  182 2022-10-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  183 
  184   * MIGRATING.rst: doc: desc. stash env in MIGRATING
  185 
  186 2022-10-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  187 
  188   * doc/source/module.rst: doc: desc stash in collection section of man page
  189 
  190   * testsuite/modules.70-maint/457-stash-savelist.exp: ts: test savelist
  191   subcmd with stash collections
  192 
  193 2022-10-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  194 
  195   * NEWS.rst, doc/source/design/stash-environment.rst, doc/source/module.rst:
  196   doc: desc. savelist stash filter in design/NEWS/man doc
  197 
  198   * tcl/subcmd.tcl.in: Filter stash collection on savelist  Update savelist
  199   sub-command to filter out stash collections unless --all option is set.
  200 
  201   * testsuite/modules.70-maint/456-stash-restore.exp: ts: test restore subcmd
  202   with stash collections
  203 
  204 2022-10-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  205 
  206   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
  207   init/zsh-functions/_module.in: init: update completion with stashlist output
  208   Update stashpop, stashrm and stashshow completion definition to use
  209   stashlist output.
  210 
  211 2022-10-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  212 
  213   * testsuite/install.00-init/010-environ.exp,
  214   testsuite/modules.00-init/010-environ.exp: ts: clear
  215   MODULES_QUARANTINE_SUPPORT prior tests
  216 
  217   * testsuite/modules.00-init/005-init_ts.exp,
  218   testsuite/modules.70-maint/455-stashlist.exp: ts: add stashlist sub-cmd
  219   tests
  220 
  221   * testsuite/modules.00-init/005-init_ts.exp,
  222   testsuite/modules.50-cmds/152-module-emptyarg.exp,
  223   testsuite/modules.50-cmds/350-allin.exp,
  224   testsuite/modules.61-coll/020-savelist.exp,
  225   testsuite/modules.61-coll/021-savelist-search.exp,
  226   testsuite/modules.61-coll/080-access-coll.exp,
  227   testsuite/modules.70-maint/190-emptyarg.exp,
  228   testsuite/modules.70-maint/350-term_width.exp: ts: add helper procs for
  229   collection list header msgs
  230 
  231 2022-10-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  232 
  233   * tcl/subcmd.tcl.in: Core code for cmdModuleStashlist  Implement 'stashlist'
  234   sub-command. Rely on cmdModuleSavelist but adapt this procedure to make
  235   several behavior changes when called by cmdModuleStashlist:  * elements are
  236   sorted in reverse order * element index starts at 0 * when no collection
  237   target set, only return collection without a target set
  238 
  239 2022-10-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  240 
  241   * tcl/report.tcl.in, tcl/subcmd.tcl.in, tcl/util.tcl: Add getCallingProcName
  242   util proc  Return name of calling procedure with getCallingProcName.
  243 
  244   * tcl/report.tcl.in, tcl/subcmd.tcl.in, testsuite/example/siteconfig.tcl-1:
  245   Add start_idx argument on displayElementList  Add start_idx argument on
  246   displayElementList procedure to define what is the starting index for the
  247   elements to report.
  248 
  249 2022-09-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  250 
  251   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  252   stashlist subcmd in NEWS/man/changes
  253 
  254   * testsuite/modulefiles.3/modbad/stashlist,
  255   testsuite/modules.00-init/071-args.exp,
  256   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
  257   testfiles for stashlist sub-command
  258 
  259   * init/Makefile, init/bash_completion.in, init/fish_completion,
  260   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashlist
  261   subcmd to completion scripts
  262 
  263 2022-09-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  264 
  265   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  266   'stashlist' sub-command  Introduce stashlist sub-command to list stash
  267   collection file.  This sub-command cannot be called from a modulefile
  268   evaluation context.  Add sub-command empty skeleton: cmdModuleStashlist.
  269   Sub-command accepts no argument. It accepts --terse, --long and --json
  270   options.
  271 
  272   * .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
  273   stashlist in stash-environment design doc
  274 
  275 2022-09-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  276 
  277   * testsuite/config/base-config.exp,
  278   testsuite/modules.70-maint/454-stashclear.exp: ts: add stashclear sub-cmd
  279   tests
  280 
  281   * tcl/subcmd.tcl.in: Core code for cmdModuleStashclear  Implement
  282   'stashclear' sub-command. Fetch all existing stash collection for current
  283   collection target. Then call 'saverm' sub-command over all of these
  284   collection obtained.
  285 
  286 2022-09-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  287 
  288   * testsuite/modulefiles.3/modbad/stashclear,
  289   testsuite/modules.00-init/071-args.exp,
  290   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
  291   testfiles for stashclear subcmd
  292 
  293   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  294   stashclear subcmd in NEWS/man/changes
  295 
  296 2022-09-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  297 
  298   * init/Makefile, init/bash_completion.in, init/fish_completion,
  299   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashclear
  300   subcmd to completion scripts
  301 
  302   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  303   'stashclear' sub-command  Introduce stashclear sub-command to delete all
  304   stash collection file.  This sub-command cannot be called from a modulefile
  305   evaluation context.  Add sub-command empty skeleton: cmdModuleStashclear.
  306   Sub-command accepts no argument nor option.
  307 
  308   * .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
  309   stashclear in stash-environment design doc
  310 
  311   * testsuite/modules.00-init/005-init_ts.exp: ts: accept version name with
  312   '/' char
  313 
  314   * testsuite/modules.70-maint/453-stashshow.exp: ts: add stashshow sub-cmd
  315   tests
  316 
  317   * tcl/subcmd.tcl.in: Core code for cmdModuleStashshow  Implement 'stashshow'
  318   sub-command. Parse stash argument to get corresponding collection, then call
  319   saveshow over this collection name.
  320 
  321   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  322   stashshow subcmd in NEWS/man/changes
  323 
  324   * testsuite/modulefiles.3/modbad/stashshow,
  325   testsuite/modules.00-init/071-args.exp,
  326   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
  327   testfiles for stashshow sub-command
  328 
  329   * init/Makefile, init/bash_completion.in, init/fish_completion,
  330   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashshow
  331   subcmd to completion scripts
  332 
  333   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  334   'stashshow' sub-command  Introduce stashshow sub-command to display stash
  335   collection file.  This sub-command cannot be called from a modulefile
  336   evaluation context.  Add sub-command empty skeleton: cmdModuleStashshow.
  337   Sub-command accepts no option. It may take an optional argument: the index
  338   of the stash collection to display or the name of the stash collection. If
  339   no argument is provided, stash collection 0 is assumed.
  340 
  341   * .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
  342   stashshow in stash-environment design doc
  343 
  344   * testsuite/config/base-config.exp,
  345   testsuite/modules.70-maint/452-stashrm.exp: ts: add stashrm sub-cmd tests
  346 
  347 2022-09-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  348 
  349   * tcl/subcmd.tcl.in: Core code for cmdModuleStashrm  Implement 'stashrm'
  350   sub-command. Parse stash argument to get corresponding collection, then call
  351   saverm over this collection name.
  352 
  353   * tcl/coll.tcl.in, tcl/subcmd.tcl.in: Move collection resolution from stash
  354   in dedicated proc  Move collection name resolution from stash name from
  355   cmdModuleStashpop into getCollectionFromStash procedure.
  356 
  357   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  358   stashrm subcmd in NEWS/man/changes
  359 
  360   * testsuite/modulefiles.3/modbad/stashrm,
  361   testsuite/modules.00-init/071-args.exp,
  362   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
  363   testfiles for stashrm sub-command
  364 
  365   * init/Makefile, init/bash_completion.in, init/fish_completion,
  366   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashrm
  367   subcmd to completion scripts
  368 
  369   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  370   'stashrm' sub-command  Introduce stashrm sub-command to delete stash
  371   collection file.  This sub-command cannot be called from a modulefile
  372   evaluation context.  Add sub-command empty skeleton: cmdModuleStashrm.
  373   Sub-command accepts no option. It may take an optional argument: the index
  374   of the stash collection to delete or the name of the stash collection. If no
  375   argument is provided, stash collection 0 is assumed.
  376 
  377   * .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
  378   stashrm in stash-environment design doc
  379 
  380 2022-09-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  381 
  382   * testsuite/modules.00-init/005-init_ts.exp,
  383   testsuite/modules.70-maint/451-stashpop.exp: ts: add stashpop sub-cmd tests
  384 
  385   * tcl/subcmd.tcl.in: Core code for cmdModuleStashpop  Implement 'stashpop'
  386   sub-command. First parse stash argument to determine corresponding stash
  387   collection name or raise an error if stash value is invalid. Then restore
  388   stash collection. Afterward delete stash collection.
  389 
  390 2022-09-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  391 
  392   * tcl/coll.tcl.in: Add no_other_target option to findCollections  Add
  393   no_other_target option to findCollections procedure to filter when glob
  394   searching the result from other target. Especially useful when collections
  395   for specific targets exist but no target is currently set in user
  396   environment.  This no_other_target is disabled by default. savelist
  397   sub-command currently returns other targets when no target is set. But the
  398   option will be enabled for stashpop, to ensure that the popped collection is
  399   from the current target or from the *no target* if none set.
  400 
  401 2022-09-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  402 
  403   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  404   stashpop subcmd in NEWS/man/changes
  405 
  406   * testsuite/modulefiles.3/modbad/stashpop,
  407   testsuite/modules.00-init/071-args.exp,
  408   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
  409   testfiles for stashpop sub-command
  410 
  411   * doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
  412   testsuite/modules.50-cmds/282-info-command.exp,
  413   testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add stashpop
  414   test/doc on 'module-info command'
  415 
  416   * doc/source/design/stash-environment.rst: doc: desc. stashpop in
  417   stash-environment design doc
  418 
  419   * init/Makefile, init/bash_completion.in, init/fish_completion,
  420   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashpop
  421   subcmd to completion scripts
  422 
  423   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  424   'stashpop' sub-command  Introduce stashpop sub-command to restore a stash
  425   collection then delete it.  This sub-command cannot be called from a
  426   modulefile evaluation context.  Add sub-command empty skeleton:
  427   cmdModuleStashpop.  Sub-command accepts no option. It may take an optional
  428   argument: the index of the stash collection to restore or the name of the
  429   stash collection. If no argument is provided, stash collection 0 is assumed.
  430 
  431 2022-09-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  432 
  433   * testsuite/config/base-config.exp, testsuite/modulefiles.3/foo/.modulerc,
  434   testsuite/modulefiles.3/tag/.modulerc,
  435   testsuite/modules.00-init/005-init_ts.exp,
  436   testsuite/modules.70-maint/450-stash.exp: ts: add stash sub-cmd tests
  437 
  438 2022-09-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  439 
  440   * testsuite/modules.00-init/005-init_ts.exp,
  441   testsuite/modules.61-coll/030-save.exp: ts: move unsatisfied constraint msg
  442   to init section
  443 
  444   * testsuite/modules.00-init/005-init_ts.exp,
  445   testsuite/modules.61-coll/030-save.exp: ts: move nothing to save err msg in
  446   init section
  447 
  448 2022-09-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  449 
  450   * testsuite/modules.00-init/005-init_ts.exp,
  451   testsuite/modules.61-coll/040-restore.exp,
  452   testsuite/modules.61-coll/060-saveshow.exp: ts: put coll not valid msg in a
  453   proc
  454 
  455   * testsuite/modules.00-init/005-init_ts.exp,
  456   testsuite/modules.61-coll/040-restore.exp,
  457   testsuite/modules.61-coll/050-saverm.exp,
  458   testsuite/modules.61-coll/060-saveshow.exp,
  459   testsuite/modules.61-coll/080-access-coll.exp,
  460   testsuite/modules.70-maint/240-icase.exp,
  461   testsuite/modules.70-maint/440-reset.exp: ts: put coll not found msg in a
  462   proc
  463 
  464 2022-09-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  465 
  466   * tcl/modfind.tcl.in: Fix init property unserialization  Update
  467   getLoadedModulePropertyList to apply unserialization translation map also
  468   for property not requiring sub-element split, like init.
  469 
  470 2022-09-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  471 
  472   * tcl/subcmd.tcl.in: Core code for cmdModuleStash  Implement stash
  473   sub-command. First check that a difference exists between current
  474   environment and initial one. If so, save current environment in a
  475   collection, then reset to initial environment.
  476 
  477 2022-09-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  478 
  479   * tcl/coll.tcl.in, tcl/subcmd.tcl.in: Reword findCollections to swap default
  480   coll by __init__  Update findCollections procedure to add swap_by_init
  481   argument, disabled by default. When enabled if specified collection is not
  482   found, change it to __init__.  Helps to remove duplicate code from
  483   cmdModuleSaveshow and cmdModuleRestore.
  484 
  485 2022-09-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  486 
  487   * tcl/coll.tcl.in, tcl/subcmd.tcl.in: Return is_tags_diff from
  488   getDiffBetweenCurEnvAndColl  Update getDiffBetweenCurEnvAndColl to also
  489   return is_tags_diff information. is_tags_diff indicates if loaded modules
  490   that matches modules in collection have different tags set.
  491 
  492   * tcl/util.tcl: Add unordered_lists_compared arg on getDiffBetweenArray
  493   Update getDiffBetweenArray procedure to add unordered_lists_compared
  494   argument (disabled by default). When enabled, array elements are considered
  495   unordered list, so value comparison is adapted to check differences between
  496   two lists.
  497 
  498   * tcl/util.tcl, testsuite/example/siteconfig.tcl-1,
  499   testsuite/modules.00-init/120-siteconfig.exp: Add notset_equals_empty arg to
  500   getDiffBetweenArray  Update getDiffBetweenArray procedure to add
  501   notset_equals_empty argument (disabled by default). When enabled not-set
  502   element in array is equivalent to element set to an empty value.
  503 
  504 2022-09-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  505 
  506   * tcl/coll.tcl.in, tcl/subcmd.tcl.in: Create getDiffBetweenCurEnvAndColl
  507   from cmdModuleRestore  Create getDiffBetweenCurEnvAndColl procedure from
  508   code of cmdModuleRestore to analyze a collection content and produce
  509   differences compared to current environment.
  510 
  511 2022-09-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  512 
  513   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. stash
  514   subcmd in NEWS/man/changes
  515 
  516   * testsuite/modulefiles.3/modbad/stash,
  517   testsuite/modules.00-init/071-args.exp,
  518   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
  519   testfiles for stash sub-command
  520 
  521   * doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
  522   testsuite/modules.00-init/005-init_ts.exp,
  523   testsuite/modules.50-cmds/282-info-command.exp,
  524   testsuite/modules.50-cmds/283-info-command-exp.exp,
  525   testsuite/modules.61-coll/030-save.exp: ts/doc: add stash test/doc on
  526   'module-info command'
  527 
  528   * init/Makefile, init/bash_completion.in, init/fish_completion,
  529   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stash
  530   subcmd to completion scripts
  531 
  532   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  533   'stash' sub-command  Introduce stash sub-command to save current environment
  534   and restore initial one.  This sub-command cannot be called from a
  535   modulefile evaluation context.  Add sub-command empty skeleton:
  536   cmdModuleStash.  Sub-command accepts no argument nor option.
  537 
  538   * .aspell.en.pws, doc/source/design/initial-environment.rst,
  539   doc/source/design/stash-environment.rst: doc: add stash-environment design
  540   doc
  541 
  542 2022-09-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  543 
  544   * .cirrus.yml: cirrus: test FreeBSD 13.1 instead of eol 13.0
  545 
  546 2022-09-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  547 
  548   * testsuite/lint.00-init/005-init_ts.exp: ts: do not lint lib/config.guess
  549   generated file
  550 
  551   * .aspell.en.pws, NEWS.rst, testsuite/lint.00-init/005-init_ts.exp: ts:
  552   temporarily ignore remaining shellcheck reports  Make 'mt lint' pass with
  553   remaining shellcheck reports on sh, bash and ksh scripts. Waiting for
  554   another contribution to fix the remaining warnings and notices.  Related:
  555   #470
  556 
  557   * NEWS.rst, init/profile.sh.in: init: only source sh or bash init if BASH
  558   var is set  Update profile script for sh-like shells to only source sh or
  559   bash initialization script when BASH environment variable is found set.
  560   Fixes #473
  561 
  562 2022-09-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  563 
  564   * CONTRIBUTING.rst, NEWS.rst: doc: desc. script/mb in CONTRIBUTING
  565 
  566 2022-09-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  567 
  568   * CONTRIBUTING.rst: doc: desc lint testsuite in CONTRIBUTING
  569 
  570   * .aspell.en.pws, CONTRIBUTING.rst: doc: desc. script/mt utility in
  571   CONTRIBUTING
  572 
  573   * CONTRIBUTING.rst: doc: desc. quick testsuite mode in CONTRIBUTING
  574 
  575 2022-09-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  576 
  577   * tcl/envmngt.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Update
  578   autoinit sh code to fix SC2166/SC2086  Apply on auto-generated autoinit code
  579   for sh-kind shells the same changes than initialization scripts to fix the
  580   SC2166 and SC2086 issues reported by ShellCheck linter.  Autoinit generated
  581   code is thus kept in line with initialization script code.
  582 
  583 2022-08-31  Lukáš Zaoral <lzaoral@redhat.com>
  584 
  585   * configure: lint(ShellCheck): fix SC2163 warning  According to ShellCheck's
  586   documentation:  export takes a variable name, but ShellCheck has noticed
  587   that you give it an expanded variable instead.  Remove $/${} for that, or
  588   use ${var?} to quiet.  Related: https://www.shellcheck.net/wiki/SC2163
  589   Related: #470
  590 
  591   * init/profile.sh.in, script/add.modules.in, script/mkroot:
  592   lint(ShellCheck): fix SC2046 warning  According to ShellCheck's
  593   documentation:  When command expansions are unquoted, word splitting and
  594   globbing will occur. This often manifests itself by breaking when filenames
  595   contain spaces.  Related: https://www.shellcheck.net/wiki/SC2046 Related:
  596   #470
  597 
  598   * configure, .../example-sessions/bar-defaults.sh,
  599   .../example-sessions/bar-loads.sh, .../example-sessions/bar-switch.sh,
  600   .../example-sessions/foo-avail1.sh, .../example-sessions/foo-avail2.sh,
  601   .../example-sessions/foo-defaults.sh, .../example-sessions/foo-loads.sh,
  602   .../example-sessions/foo-switch.sh, .../example-sessions/modavail.sh,
  603   .../example-sessions/modversion.sh, .../example-sessions/ompi-defaults.sh,
  604   .../example-sessions/ompi-loads1.sh, .../example-sessions/ompi-switch.sh,
  605   .../example-sessions/ompi-switch.sh.m431, init/bash.in,
  606   init/bash_completion.in, init/ksh.in, init/sh.in, script/add.modules.in,
  607   script/commit-msg, script/envml, script/mkroot, script/mt,
  608   script/pre-commit, testsuite/bin/install_test_sh, testsuite/systest:
  609   lint(ShellCheck): fix SC2086 info diagnostic  Some variables, that were
  610   unquoted intentionally were converted to arrays.  According to ShellCheck's
  611   documentation:  Quoting variables prevents word splitting and glob
  612   expansion, and prevents the script from breaking when input contains spaces,
  613   line feeds, glob characters and such.  Related:
  614   https://www.shellcheck.net/wiki/SC2086 Related: #470
  615 
  616   * configure, doc/example/source-script-in-modulefile/bar-2.1/bar-setup.sh,
  617   doc/example/source-script-in-modulefile/foo-1.2/foo-setup.sh:
  618   lint(ShellCheck): fix SC2155 warning  According to ShellCheck's
  619   documentation:  In the original code, the return value of mycmd in $(mycmd)
  620   is ignored, and export will instead always return true.  This may prevent
  621   conditionals, set -e and traps from working correctly.  Related:
  622   https://www.shellcheck.net/wiki/SC2155 Related: #470
  623 
  624 2022-08-26  Lukáš Zaoral <lzaoral@redhat.com>
  625 
  626   * doc/example/source-script-in-modulefile/bar-2.1/bar-setup.sh,
  627   doc/example/source-script-in-modulefile/foo-1.2/foo-setup.sh:
  628   lint(ShellCheck): fix SC2128 warning  These occurrences do not cause any
  629   problems described below but it's better to be verbose that we indeed want
  630   to access the first array element.  According to ShellCheck's documentation:
  631   When referencing arrays, $myarray is equivalent to ${myarray[0]} -- it
  632   results in only the first of multiple elements.  Related:
  633   https://www.shellcheck.net/wiki/SC2128 Related: #470
  634 
  635   * script/envml, testsuite/cmd.exe: lint(ShellCheck): fix SC2048 warning
  636   According to ShellCheck's documentation:  Use "$@" (with quotes) to prevent
  637   whitespace problems.  $* and ${array[*]}, unquoted, is subject to word
  638   splitting and globbing.  Related: https://www.shellcheck.net/wiki/SC2048
  639   Related: #470
  640 
  641   * init/bash_completion.in: lint(ShellCheck): fix SC2178 warning  These
  642   occurrences do not seem to cause any problems described below but let's
  643   still fix it for the sake of consistency within this script.  According to
  644   ShellCheck's documentation:  ShellCheck noticed that you have used a
  645   variable as an array, but then assign it a string.  array=foo is equivalent
  646   to array[0]=foo, and leaves the rest of the elements unaffected.  Related:
  647   https://www.shellcheck.net/wiki/SC2178 Related: #470
  648 
  649 2022-08-25  Lukáš Zaoral <lzaoral@redhat.com>
  650 
  651   * configure, init/bash.in, init/bash_completion.in, init/ksh.in, init/sh.in,
  652   script/envml, testsuite/bin/install_test_sh: lint(ShellCheck): fix SC2166
  653   warning  According to ShellCheck's documentation:  -a and -o  in [ .. ] test
  654   expressions are not well defined, and can cause incorrect results when
  655   arguments start with dashes or contain !.  Related:
  656   https://www.shellcheck.net/wiki/SC2166 Related: #470
  657 
  658   * init/bash_completion.in: lint(ShellCheck): fix SC1035 error  According to
  659   ShellCheck's documentation:  Bourne shells are very whitespace sensitive.
  660   Adding or removing spaces can drastically alter the meaning of a script.
  661   Related: https://www.shellcheck.net/wiki/SC1035 Related: #470
  662 
  663   * script/envml, script/mt: lint(ShellCheck): fix SC2068 error  According to
  664   ShellCheck's documentation:  Double quotes around $@ and ${array[@]})
  665   prevent globbing and word splitting of individual elements, while still
  666   expanding to multiple separate arguments.  Related:
  667   https://www.shellcheck.net/wiki/SC2068 Related: #470
  668 
  669   * doc/example/compiler-etc-dependencies/example-sessions/common_code.sh,
  670   init/bash.in, init/bash_completion.in, init/ksh.in, init/profile.sh.in,
  671   init/sh.in: lint(ShellCheck): fix SC2148 error  According to ShellCheck's
  672   documentation:  Different shells support different features.  To give
  673   effective advice, ShellCheck needs to know which shell your script is going
  674   to run on.  Related: https://www.shellcheck.net/wiki/SC2148 Related: #470
  675 
  676   * init/bash.in, init/ksh.in, init/sh.in: init: add vim modeline to {,b,k}sh
  677   scripts  ... to enable correct syntax highlighting.
  678 
  679 2022-08-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  680 
  681   * .aspell.en.pws, NEWS.rst: doc: desc. usage and --help work for scripts in
  682   NEWS
  683 
  684   * script/mtreview: script: add usage msg and --help option on mtreview
  685 
  686   * script/mlprof: script: add usage msg and --help option on mlprof
  687 
  688   * script/mt: script: add usage msg and --help option on mt
  689 
  690 2022-08-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  691 
  692   * testsuite/modules.00-init/005-init_ts.exp: ts: accept version name with
  693   '_' char
  694 
  695   * script/mb: script: keep old releases among benched versions in mb  Update
  696   mb script to skip several releases and be able to run bench or profiling on
  697   old and recent releases. Versions 4.1, 4.3, 4.5, 4.7 and 5.1 are retained
  698   for bench mode. 4.5, 4.7 and 5.1 are retained for profile mode.
  699 
  700   * script/mb: script: add usage msg and --help option on mb
  701 
  702   * script/mrel: script: add usage msg and --help option on mrel
  703 
  704   * script/mpub: script: add usage msg and --help option on mpub
  705 
  706 2022-08-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  707 
  708   * NEWS.rst, tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in,
  709   tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modfind.tcl.in, tcl/modspec.tcl,
  710   tcl/report.tcl.in, tcl/subcmd.tcl.in,
  711   testsuite/lint.00-init/005-init_ts.exp: Fix notices reported by linter on
  712   tcl source files  All linter reports are now fixed. Remove specific linter
  713   rule for modulecmd.tcl in lint testsuite.
  714 
  715   * .aspell.en.pws, .github/workflows/linux_tests.yaml: gh: migrate linux
  716   tests to ubuntu-20.04  ubuntu-18.04 is being deprecated and will be removed
  717   in a few weeks. For Tcl 8.5 jobs, the Tcl version has to be deployed
  718   manually.
  719 
  720   * tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in,
  721   tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in:
  722   Fix too long line issues on Tcl source files
  723 
  724   * .github/workflows/lint_tests.yaml: gh: add lint-tests workflow
  725 
  726   * tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in,
  727   tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in:
  728   Fix warnings reported by linter on tcl source files
  729 
  730 2022-08-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  731 
  732   * tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modspec.tcl,
  733   tcl/report.tcl.in, tcl/subcmd.tcl.in, tcl/util.tcl: Fix errors reported by
  734   linter on tcl source files  Use Nagelfar comments to help linter to
  735   correctly understand dynamic aspects of the code.
  736 
  737   * init/tcl.in: init: fix too long line issues in tcl
  738 
  739   * script/mb, script/mrel, script/nglfar2ccov: script: fix too long line
  740   issues in mb/mrel/nglfar2ccov
  741 
  742   * script/mlprof, script/mrel, script/mtreview: script: fix lint issues on
  743   mrel/mlprof/mtreview
  744 
  745   * testsuite/lint.00-init/030-tcl.exp: ts: add tcl script lint tests
  746 
  747   * Makefile: Remove testsyntax Makefile target  testsyntax Makefile target is
  748   removed. testlint testsuite has to be used instead.
  749 
  750   * testsuite/lint.00-init/022-ksh.exp: ts: add ksh script lint tests
  751 
  752   * testsuite/lint.00-init/021-bash.exp: ts: add bash script lint tests
  753 
  754   * testsuite/lint.00-init/020-sh.exp: ts: add sh script lint tests
  755 
  756   * .aspell.en.pws, .gitignore, Makefile, NEWS.rst, script/mt,
  757   testsuite/config/unix.exp, testsuite/lint.00-init/005-init_ts.exp,
  758   testsuite/lint.00-init/006-procs.exp,
  759   testsuite/lint.00-init/011-save_test_env.exp: ts: add lint testsuite
  760 
  761 2022-08-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  762 
  763   * contrib/readme.txt, contrib/scripts/resetenv, contrib/scripts/resetgnome,
  764   contrib/template/.aliases, contrib/template/.bash_profile,
  765   contrib/template/.bashrc, contrib/template/.cshrc,
  766   contrib/template/.fvwm2rc, contrib/template/.login,
  767   contrib/template/.logout, contrib/template/.mailcap,
  768   contrib/template/.mime.types, contrib/template/README.dotfiles,
  769   contrib/template/resetenv.conf: contrib: remove unmaintained template/script
  770   content  Remove the contrib template and scripts files as they are not
  771   maintained since a long time in this repository and seem to be deprecated.
  772 
  773 2022-08-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  774 
  775   * MIGRATING.rst: doc: desc initial environment in MIGRATING
  776 
  777 2022-08-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  778 
  779   * doc/source/changes.rst: doc: fix changed/new features dispatch in changes
  780   doc
  781 
  782 2022-08-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  783 
  784   * doc/source/design/initial-environment.rst,
  785   doc/source/design/module-tags.rst, doc/source/design/sticky-modules.rst:
  786   doc: desc. sticky unload on restore in design notes
  787 
  788   * doc/source/changes.rst: doc: use bullet list for concise desc. in change
  789   doc
  790 
  791   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. sticky
  792   unload on restore in NEWS/man/changes
  793 
  794 2022-08-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  795 
  796   * testsuite/modules.50-cmds/460-sticky.exp,
  797   testsuite/modules.50-cmds/462-sticky-corner.exp,
  798   testsuite/modules.70-maint/440-reset.exp: ts: adapt existing tests for
  799   sticky unload on restore
  800 
  801   * tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Allow unload of sticky modules on
  802   restore sub-cmd  Allow the unload of sticky modules when restoring
  803   collection. Goal is to be able to restore designated collection as it was
  804   saved, thus without the loaded sticky modules. If such collections were
  805   saved without the sticky modules in it, it means that these sticky modules
  806   can safely be unloaded when moving to the collection state.  As a result,
  807   using the --force option is of no use for restore sub-command.  This change
  808   does not impact super-sticky modules. Such modules cannot be unloaded during
  809   a restore, even if forced.  With this change, behavior of restore
  810   sub-command with sticky modules is aligned with Lmod.
  811 
  812 2022-08-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  813 
  814   * NEWS.rst, doc/source/design/initial-environment.rst: doc: add
  815   initial-environment design notes
  816 
  817 2022-08-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  818 
  819   * testsuite/modules.70-maint/440-reset.exp: ts: add reset_target_state tests
  820   in 70/440
  821 
  822   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  823   reset_target_state in NEWS/man/changes
  824 
  825 2022-08-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  826 
  827   * testsuite/install.00-init/010-environ.exp,
  828   testsuite/modules.00-init/010-environ.exp,
  829   testsuite/modules.70-maint/220-config.exp: ts: test reset_target_state
  830   config option
  831 
  832   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
  833   add reset_target_state config to completion script
  834 
  835   * tcl/init.tcl.in, tcl/subcmd.tcl.in: Add reset_target_state configuration
  836   option  Add reset_target_state configuration option that defines the
  837   environment state restored by the reset sub-command. Equals __init__ by
  838   default, which means reset restore the initial environment by default.
  839   Other valid values are __purge__, which means target state is purged
  840   environment, and any existing collection name.
  841 
  842 2022-08-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  843 
  844   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
  845   testsuite/modules.61-coll/060-saveshow.exp: doc: desc module saveshow when
  846   no default in NEWS/man/changes
  847 
  848   * testsuite/modules.61-coll/060-saveshow.exp: ts: update/add tests for
  849   'module saveshow' behavior
  850 
  851   * tcl/subcmd.tcl.in: Show initial env when no default collection exists
  852   Update saveshow sub-command to display initial environment when no specific
  853   collection is asked and default collection does not exist.
  854 
  855   * testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
  856   ts: test 'module restore' without arg in initrc
  857 
  858   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc module
  859   restore when no default in NEWS/man/changes
  860 
  861   * testsuite/modules.61-coll/040-restore.exp: ts: update/add tests for
  862   'module restore' behavior
  863 
  864   * tcl/subcmd.tcl.in: Restore initial env when no default collection exists
  865   Update restore sub-command to restore initial environment when no specific
  866   collection is asked and default collection does not exist.
  867 
  868   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. module
  869   restore __init__ in NEWS/man/changes
  870 
  871   * testsuite/modules.70-maint/310-sh-to-mod.exp: ts: fix binpath add
  872   detection in 70/310
  873 
  874   * tcl/main.tcl.in, tcl/report.tcl.in: Same special treatment for reset than
  875   restore subcmd  Reports loads/unloads like restore sub-command. No auto
  876   unload of modules if auto_handling is disabled.
  877 
  878   * testsuite/modulefiles.3/reset/1, testsuite/modulefiles.3/reset/2,
  879   testsuite/modules.70-maint/440-reset.exp: ts: add auto unload test during
  880   reset sub-cmd in 70/440
  881 
  882 2022-08-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  883 
  884   * testsuite/modules.70-maint/440-reset.exp: ts: add restore __init__ tests
  885   in 70/440
  886 
  887   * testsuite/example/initrc.in, testsuite/modulefiles.3/foo/.modulerc,
  888   testsuite/modules.70-maint/120-autoinit.exp,
  889   testsuite/modules.70-maint/440-reset.exp: ts: add reset sub-cmd tests
  890 
  891 2022-08-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  892 
  893   * testsuite/example/initrc.in, testsuite/modulefiles.3/variant/1.0,
  894   testsuite/modules.70-maint/120-autoinit.exp: ts: add autoinit tests for
  895   __MODULES_LMINIT
  896 
  897   * testsuite/modules.70-maint/210-clear.exp: ts: add clear tests for
  898   __MODULES_LMINIT
  899 
  900   * .github/workflows/linux_tests.yaml: gh: add missing xrdb tool to test
  901   x-resource on bionic
  902 
  903   * testsuite/modules.00-init/005-init_ts.exp: ts: add X11 setup state info to
  904   test log
  905 
  906 2022-08-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  907 
  908   * testsuite/install.00-init/010-environ.exp,
  909   testsuite/modules.00-init/010-environ.exp,
  910   testsuite/modules.70-maint/120-autoinit.exp: ts: adapt autoinit tests for
  911   __MODULES_LMINIT  Fix several issues in 70/120 test case on the way.
  912 
  913   * .aspell.en.pws, tcl/coll.tcl.in, tcl/modfind.tcl.in, tcl/subcmd.tcl.in:
  914   Core code for cmdModuleReset  Implement reset sub-command as a 'module
  915   restore __init__'. Where __init__ designates the virtual init collection
  916   made of the initial environment state described in __MODULES_LMINIT.
  917   readCollectionContent has been split to create parseCollectionContent
  918   procedure which analyzes collection content passed as argument.  When
  919   __init__ collection is designated, cmdModuleRestore do not check collection
  920   files but parseCollectionContent based on value fetched from
  921   __MODULES_LMINIT environment variable.
  922 
  923   * testsuite/modulefiles.3/modbad/reset,
  924   testsuite/modules.00-init/071-args.exp,
  925   testsuite/modules.50-cmds/151-module-onlytop.exp: ts: add tests for
  926   mod-to-sh sub-command
  927 
  928   * doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
  929   testsuite/modules.50-cmds/282-info-command.exp,
  930   testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add reset
  931   test/doc on 'module-info command'
  932 
  933   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. reset
  934   subcmd in NEWS/man/changes
  935 
  936   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
  937   'reset' sub-command  Introduce reset sub-command to restore initial
  938   environment state.  This sub-command cannot be called from a modulefile
  939   evaluation context.  Add sub-command empty skeleton: cmdModuleReset.
  940   Sub-command accepts no argument nor option.
  941 
  942 2022-08-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  943 
  944   * init/Makefile, init/bash_completion.in, init/fish_completion,
  945   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add reset
  946   subcmd to completion scripts
  947 
  948   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
  949   __MODULES_LMINIT in NEWS/man/changes
  950 
  951   * .aspell.en.pws, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record init state
  952   in __MODULES_LMINIT  During the autoinit sub-command, record the initial
  953   loaded state (state obtained after evaluating modulespath and initrc
  954   initialization files) in the __MODULES_LMINIT environment variable.  The
  955   initial loaded state is formed as a collection content, describing the
  956   enabled modulepaths and the loaded modules with the tags applied to these
  957   modules.  __MODULES_LMINIT is a colon-separated list. Each entry
  958   corresponding to a 'module use' or 'module load' collection line.
  959 
  960 2022-08-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  961 
  962   * tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
  963   tcl/modfind.tcl.in, tcl/subcmd.tcl.in,
  964   testsuite/modules.00-init/120-siteconfig.exp: Fetch loaded mod props with
  965   getLoadedModulePropertyList  Create the getLoadedModulePropertyList
  966   procedure to fetch the different loaded module properties.
  967   getLoadedModulePropertyList replaces the specific procedure used for each
  968   property kind.
  969 
  970 2022-08-24  Jan Macku <jamacku@redhat.com>
  971 
  972   * .github/workflows/differential_shellcheck.yml: ci(lint): add shell linter
  973   - Differential ShellCheck  It performs differential ShellCheck scans and
  974   report results directly in pull request.  documentation:
  975   https://github.com/redhat-plumbers-in-action/differential-shellcheck
  976 
  977 2022-08-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  978 
  979   * NEWS.rst, doc/source/modulefile.rst: doc: add shell support section in
  980   modulefile man
  981 
  982 2022-08-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  983 
  984   * README.md, doc/source/changes.rst, doc/source/index.rst,
  985   doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing ref to
  986   cmd shell support
  987 
  988 2022-08-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
  989 
  990   * doc/source/module.rst: doc: desc changes on --all/--force options in man
  991 
  992   * doc/source/module.rst: doc: reword --auto/--no-auto option desc. in man
  993   --auto and --no-auto options are global to all sub-commands evaluating
  994   modulefile in load or unload mode. Rewrite the description of these option
  995   in module(1) man not to update them each time a new load or unload
  996   sub-command is introduced (as --auto and --no-auto are not changed).
  997 
  998   * testsuite/modules.61-coll/021-savelist-search.exp: ts: add savelist --all
  999   tests
 1000 
 1001 2022-08-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1002 
 1003   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. --all
 1004   option on savelist in NEWS/man/changes
 1005 
 1006   * tcl/coll.tcl.in, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in:
 1007   List coll from any target with --all opt on savelist  Add support for --all
 1008   command-line option for savelist sub-command. When set, all collections are
 1009   reported and not only those for currently defined collection target.
 1010 
 1011 2022-08-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1012 
 1013   * NEWS.rst, tcl/subcmd.tcl.in, testsuite/modules.00-init/140-color.exp:
 1014   Highlight all savelist subcmd search patterns  Refactor on the way a little
 1015   bit cmdModuleSavelist.
 1016 
 1017   * NEWS.rst, tcl/report.tcl.in, tcl/subcmd.tcl.in,
 1018   testsuite/modules.00-init/140-color.exp: Highlight all list subcmd search
 1019   patterns
 1020 
 1021   * testsuite/modules.61-coll/021-savelist-search.exp,
 1022   testsuite/modules.70-maint/290-json.exp: ts: test pattern search on savelist
 1023   sub-cmd
 1024 
 1025 2022-08-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1026 
 1027   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
 1028   savelist filtering in NEWS/changes/man
 1029 
 1030   * testsuite/modules.00-init/005-init_ts.exp,
 1031   testsuite/modules.00-init/071-args.exp,
 1032   testsuite/modules.50-cmds/152-module-emptyarg.exp,
 1033   testsuite/modules.50-cmds/350-allin.exp,
 1034   testsuite/modules.61-coll/020-savelist.exp,
 1035   testsuite/modules.61-coll/080-access-coll.exp,
 1036   testsuite/modules.70-maint/190-emptyarg.exp,
 1037   testsuite/modules.70-maint/350-term_width.exp: ts: adapt existing tests now
 1038   savelist accepts args
 1039 
 1040   * tcl/init.tcl.in, tcl/subcmd.tcl.in: Add search capabilities to savelist
 1041   subcmd  When one or multiple strings are passed to the savelist sub-command,
 1042   only output the collections that match at least one of this string (OR
 1043   operation).  Sub-command header message is adapted when strings are passed
 1044   to the sub-command. However same header message is reported if there is no
 1045   saved collection to report from the start.  Search capabilities rely on the
 1046   modEq comparison procedure, so it takes into account the search_match mode
 1047   (starts-with/contains) and the insensitive case search mode.  Icase mode is
 1048   set to search by default for savelist sub-command.
 1049 
 1050   * tcl/subcmd.tcl.in: Use coll name/file array rather list in
 1051   cmdModuleSavelist
 1052 
 1053 2022-08-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1054 
 1055   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow search match
 1056   option on savelist subcmd  Allow to pass the search match options (-S/-C) to
 1057   the savelist sub-command.
 1058 
 1059   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow collection
 1060   name as argument to savelist subcmd  Allow the savelist sub-command to
 1061   receive collection name as argument.
 1062 
 1063 2022-08-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1064 
 1065   * tcl/modspec.tcl, tcl/subcmd.tcl.in: Unset mod spec on source subcmd if
 1066   file exists  In case module specification corresponds to a full path name
 1067   file, unset parsed module specification on source sub-command. It is done
 1068   not to confuse specific character in file path name (like '+') with module
 1069   variant specification.
 1070 
 1071 2022-07-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1072 
 1073   * NEWS.rst, doc/source/modulefile.rst: doc: clarify set-alias only define
 1074   shell alias
 1075 
 1076   * testsuite/modules.00-init/005-init_ts.exp,
 1077   testsuite/modules.00-init/170-cwd.exp,
 1078   testsuite/modules.70-maint/090-source.exp: ts: add avail modfile source
 1079   tests in 70/090
 1080 
 1081   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. arg
 1082   update on source subcmd in changes/man/news
 1083 
 1084   * tcl/main.tcl.in, tcl/subcmd.tcl.in: Allow module to be specified on source
 1085   subcmd  Update source sub-command to accept module specification as
 1086   argument. File path stay the main specification kind. Which means if a file
 1087   foo/1.0 exists, this file is sourced and not the modulefile foo/1.0 in
 1088   enabled modulepath.  Fixes #424.
 1089 
 1090 2022-08-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1091 
 1092   * tcl/modspec.tcl: Record raw arg with parsed module spec  Update module
 1093   specification parsing to record the raw argument translated by specification
 1094   analysis.  Add getRawArgumentFromVersSpec procedure to fetch this raw spec
 1095   from recorded analyzed module specification.
 1096 
 1097 2022-07-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1098 
 1099   * tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in:
 1100   Check state is defined before unset in unsetState
 1101 
 1102   * testsuite/config/base-config.exp, testsuite/modulefiles.3/mod-to-sh/1.0,
 1103   testsuite/modulefiles.3/mod-to-sh/1.1,
 1104   testsuite/modulefiles.3/mod-to-sh/2.0,
 1105   testsuite/modulefiles.3/modbad/mod-to-sh,
 1106   testsuite/modules.00-init/005-init_ts.exp,
 1107   testsuite/modules.00-init/071-args.exp,
 1108   testsuite/modules.50-cmds/151-module-onlytop.exp,
 1109   testsuite/modules.70-maint/430-mod-to-sh.exp: ts: add tests for mod-to-sh
 1110   sub-command
 1111 
 1112 2022-07-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1113 
 1114   * MIGRATING.rst, NEWS.rst: doc: desc mod-to-sh in NEWS/MIGRATING
 1115 
 1116 2022-07-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1117 
 1118   * doc/source/module.rst: doc: desc. mod-to-sh subcmd in module man
 1119 
 1120   * NEWS.rst, doc/source/module.rst: doc: fix subcmd list using
 1121   --auto/--no-auto/--force opts
 1122 
 1123   * doc/source/design/add-new-config-option.rst,
 1124   doc/source/design/add-new-sub-command.rst,
 1125   .../design/advanced-module-version-specifiers.rst,
 1126   doc/source/design/control-mode-behaviors.rst,
 1127   .../design/default-latest-version-specifiers.rst,
 1128   doc/source/design/extended-default.rst,
 1129   doc/source/design/hide-or-forbid-modulefile.rst,
 1130   doc/source/design/insensitive-case.rst,
 1131   doc/source/design/lmod-tcl-modulefile-compat.rst,
 1132   doc/source/design/module-selection-contexts.rst,
 1133   doc/source/design/module-tags.rst,
 1134   doc/source/design/output-configuration.rst,
 1135   .../design/source-shell-script-in-modulefile.rst,
 1136   doc/source/design/sticky-modules.rst, doc/source/design/variants.rst: doc:
 1137   fix indent in design documents
 1138 
 1139   * doc/source/design/add-new-config-option.rst,
 1140   doc/source/design/add-new-sub-command.rst,
 1141   doc/source/design/advanced-module-version-specifiers.rst,
 1142   doc/source/design/control-mode-behaviors.rst,
 1143   doc/source/design/default-latest-version-specifiers.rst,
 1144   doc/source/design/extended-default.rst,
 1145   doc/source/design/hide-or-forbid-modulefile.rst,
 1146   doc/source/design/insensitive-case.rst,
 1147   doc/source/design/lint-sub-command.rst,
 1148   doc/source/design/lmod-tcl-modulefile-compat.rst,
 1149   doc/source/design/magic-cookie-check.rst,
 1150   doc/source/design/module-selection-contexts.rst,
 1151   doc/source/design/module-tags.rst,
 1152   doc/source/design/output-configuration.rst,
 1153   doc/source/design/shell-completion.rst,
 1154   doc/source/design/source-shell-script-in-modulefile.rst,
 1155   doc/source/design/sticky-modules.rst, doc/source/design/variants.rst: doc:
 1156   add vim settings at end of design documents
 1157 
 1158   * .aspell.en.pws, doc/source/cookbook/compiler-etc-dependencies.rst,
 1159   doc/source/cookbook/ensure-user-qualify-modules.rst,
 1160   doc/source/cookbook/expose-procs-vars-to-modulefiles.rst,
 1161   doc/source/cookbook/hide-and-forbid-modules.rst,
 1162   doc/source/cookbook/inhibit-report-info.rst,
 1163   doc/source/cookbook/log-module-commands.rst,
 1164   doc/source/cookbook/module-info-name-return-basename.rst,
 1165   doc/source/cookbook/modulefiles-in-git.rst,
 1166   doc/source/cookbook/modulepaths-persist-over-sudo.rst,
 1167   doc/source/cookbook/new-features-without-breaking-old-module.rst,
 1168   doc/source/cookbook/reduce-io-load.rst,
 1169   doc/source/cookbook/source-script-in-modulefile.rst,
 1170   doc/source/cookbook/sticky-modules.rst,
 1171   doc/source/cookbook/test-modulefiles.rst,
 1172   doc/source/cookbook/tips-for-code-reuse.rst,
 1173   doc/source/cookbook/top-priority-values.rst,
 1174   doc/source/cookbook/unload-firstly-loaded.rst: doc: add vim settings at end
 1175   of cookbook documents
 1176 
 1177   * doc/source/cookbook/tips-for-code-reuse.rst: doc: fix trailing wspace &
 1178   list ident in tips-for-code-reuse
 1179 
 1180 2022-07-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1181 
 1182   * NEWS.rst, doc/source/design/mod-to-sh-sub-command.rst: doc: add mod-to-sh
 1183   subcmd design notes
 1184 
 1185   * NEWS.rst: doc: desc. lint-sub-command design notes in NEWS
 1186 
 1187 2022-07-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1188 
 1189   * testsuite/modules.70-maint/210-clear.exp,
 1190   testsuite/modules.70-maint/280-ml.exp: ts: update clear subcmd tests as only
 1191   set vars are unset
 1192 
 1193   * testsuite/modules.00-init/100-pager.exp,
 1194   testsuite/modules.00-init/120-siteconfig.exp,
 1195   testsuite/modules.00-init/150-access-init.exp,
 1196   testsuite/modules.70-maint/070-display.exp: ts: adapt existing tests to new
 1197   shelltype state setup
 1198 
 1199   * tcl/subcmd.tcl.in: Silence message report on mod-to-sh subcmd  When
 1200   performing a mod-to-sh sub-command make message report silent not to mix
 1201   these messages with the produced shell code that will be output on the
 1202   message channel.  If a debugging verbosity is defined (trace mode or above),
 1203   message report is left as is.
 1204 
 1205   * tcl/envmngt.tcl.in: Filter Modules-specific env var from mod-to-sh result
 1206   When running modulefile evaluation for mod-to-sh sub-command, removes all
 1207   Modules-specific environment variable from result to only report the
 1208   environment changes done by modulefile, not the Modules load context.
 1209 
 1210 2022-07-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1211 
 1212   * tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Get list of Modules-specific env
 1213   var in glob form  Add getModulesEnvVarGlobList procedure to get all
 1214   Modules-specific environment variable in glob form.  Update clear and state
 1215   sub-command to rely on this procedure.  With this change clear sub-command
 1216   only unset Modules-specific environment variables that are set.
 1217 
 1218   * NEWS.rst, tcl/subcmd.tcl.in: Clear pushenv stacks on clear subcmd
 1219 
 1220   * tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Core code for cmdModuleModToSh  Add
 1221   code for mod-to-sh sub-command. Introduce modtosh_real_shell shell to save
 1222   evaluation shell set for modulecmd.tcl. Then shell set for mod-to-sh is set
 1223   as target shell for shell code production.  Modulefiles specified are loaded
 1224   through cmdModuleLoad. Generated shell code is then sent to the report
 1225   message channel (stderr) by renderSettings. Shell code is then cleared and
 1226   modulecmd.tcl evaluation shell is restored to get final evaluation status on
 1227   regular shell code output channel (stdout).
 1228 
 1229   * tcl/envmngt.tcl.in, tcl/main.tcl.in: Rename cleanupAndExit into
 1230   flushAndExit
 1231 
 1232   * tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in: Deduce shelltype
 1233   state value from shell state  Add initStateShellType procedure to set
 1234   shelltype state when first retrieving its value (with getState). shelltype
 1235   is set based on value set for shell state.
 1236 
 1237 2022-07-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1238 
 1239   * tcl/main.tcl.in, tcl/report.tcl.in: Move report msg flush in dedicated
 1240   proc  Create reportFlush, procedure that output the final report messages,
 1241   flush the message channel and close it. Make cleanupAndExit procedure call
 1242   reportFlush rather implementing these actions locally.
 1243 
 1244   * tcl/envmngt.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in: Output produced
 1245   shell code in one puts call  Instead of outputting shell code to sdtout for
 1246   each line, collect all produced shell code in a list variable (g_shcode_out)
 1247   and output all the code in a single puts call at the end of module command
 1248   execution.  Create a specific renderFlush procedure to make the puts to
 1249   stdout as output could occur after renderSettings but also after
 1250   reportErrorAndExit and the exit catch branch in the main procedure.
 1251   renderFlush is called in cleanupAndExit procedure, as it is always run in
 1252   the end of the execution whatever if everything goes well or if error
 1253   occurs.  Code of the putsModfileCmd procedure is also adapted to build list
 1254   of message to output to stdout with a flag to know if end-of-line should be
 1255   added at end of message. Previously this procedure was listing arguments to
 1256   directly pass to puts calls.
 1257 
 1258 2022-07-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1259 
 1260   * doc/source/modulefile.rst, testsuite/modulefiles/info/command,
 1261   testsuite/modulefiles/info/commandexp,
 1262   testsuite/modules.50-cmds/282-info-command.exp,
 1263   testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add mod-to-sh
 1264   test/doc on 'module-info command'
 1265 
 1266 2022-07-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1267 
 1268   * doc/source/design/add-new-sub-command.rst, doc/source/modulefile.rst: doc:
 1269   desc. subcmd in modulefile(4) if avail from this ctx
 1270 
 1271   * doc/source/changes.rst: doc: desc. mod-to-sh in changes
 1272 
 1273   * doc/source/design/add-new-sub-command.rst: doc: add subcmd to linter db if
 1274   callable from modfile
 1275 
 1276   * init/Makefile, init/bash_completion.in, init/fish_completion,
 1277   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add mod-to-sh
 1278   subcmd to completion scripts
 1279 
 1280   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add 'mod-to-sh'
 1281   sub-command  Introduce mod-to-sh sub-command to output shell code
 1282   corresponding to the environment changes of designated modulefiles.  This
 1283   sub-command cannot be called from a modulefile evaluation context.  Add
 1284   sub-command empty skeleton: cmdModuleModToSh.  Sub-command accepts --icase,
 1285   --auto/--no-auto and --force options.  Fixes #447.
 1286 
 1287   * CONTRIBUTING.rst: doc: fix misplaced anchor in CONTRIBUTING
 1288 
 1289 2022-07-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1290 
 1291   * .aspell.en.pws, Makefile, NEWS.rst, doc/Makefile, init/Makefile: install:
 1292   use install rather mkdir or cp  Use install command rather mkdir or cp to
 1293   apply regular file mode when installing Modules. A specific umask
 1294   configuration set in the current environment will not impact modes set on
 1295   installed files.  Follow same approach than Makefiles generated by
 1296   autotools, with an INSTALL Makefile variable.
 1297 
 1298 2022-07-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1299 
 1300   * .aspell.en.pws, MIGRATING.rst: doc: desc. lint subcmd and options in
 1301   MIGRATING  Closes #451.
 1302 
 1303 2022-07-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1304 
 1305   * NEWS.rst: doc: desc. lint subcmd and options in NEWS
 1306 
 1307   * Makefile, tcl/subcmd.tcl.in: Disable nagelfar syntaxdb/plugin usage if
 1308   addons disabled
 1309 
 1310   * .aspell.en.pws, doc/source/design/lint-sub-command.rst: doc: desc. lint
 1311   subcmd in design
 1312 
 1313 2022-07-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1314 
 1315   * contrib/rpm/environment-modules.spec.in: rpm: recommends nagelfar
 1316   installation  Now nagelfar is available on Fedora and EPEL, recommends its
 1317   installation to be able to lint modulefiles.
 1318 
 1319 2022-07-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1320 
 1321   * doc/source/design/add-new-sub-command.rst: doc: update linter scripts when
 1322   adding new subcmd
 1323 
 1324 2022-07-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1325 
 1326   * doc/source/changes.rst, doc/source/module.rst: doc: desc lint subcmd in
 1327   man/changes
 1328 
 1329 2022-07-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1330 
 1331   * testsuite/install.00-init/030-options.exp,
 1332   testsuite/modules.70-maint/420-lint.exp: ts: add module lint install test
 1333 
 1334 2022-07-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1335 
 1336   * Makefile: install: add rules to deploy global rc linter plugin
 1337 
 1338   * contrib/nagelfar/plugin_globalrc.tcl, tcl/subcmd.tcl.in: Lint global rc
 1339   file specifically  Global rc file are evaluated as modulefile but it is not
 1340   recommended to use commands that change user environment in such file. When
 1341   linting global rc file, the modulefile syntax database is used but a
 1342   specific plugin is set to warn against non-recommended usages.
 1343 
 1344 2022-07-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1345 
 1346   * tcl/main.tcl.in, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Lint global RC
 1347   files  When no argument is provided to lint sub-command, also lint all
 1348   existing and readable global RC files. When arguments are provided to lint,
 1349   test if resolved files are global RC files. If so, lint them as modulerc
 1350   files instead of modulefile.  The getGlobalRcFileList procedure has been
 1351   created from code present in runModulerc procedure. The new procedure return
 1352   the list of existing and readable global RC files.
 1353 
 1354 2022-07-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1355 
 1356   * tcl/subcmd.tcl.in: Detect whether file to lint is modulefile or modulerc
 1357   When a file path is provided as argument, detect if it is a modulerc or a
 1358   modulefile to accurately lint this file.
 1359 
 1360   * .aspell.en.pws, INSTALL.rst: doc: desc.
 1361   --nagelfardatadir/--enable-nagelfar-addons
 1362 
 1363   * contrib/rpm/environment-modules.spec.in: rpm: install Modules-specific
 1364   Nagelfar linter addons
 1365 
 1366   * Makefile, Makefile.inc.in, configure, tcl/subcmd.tcl.in: install: add
 1367   --nagelfardatadir/--enable-nagelfar-addons  Add --nagelfardatadir and
 1368   --enable-nagelfar-addons installation option to control whether or not
 1369   Modules-specific Nagelfar files need to be installed and in what location.
 1370 
 1371 2022-06-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1372 
 1373   * testsuite/modulefiles.3/lint/.modulerc, testsuite/modulefiles.3/lint/1.0,
 1374   testsuite/modulefiles.3/lint/1.1, testsuite/modulefiles.3/lint/1.2,
 1375   testsuite/modulefiles.3/lint/1.3, testsuite/modulefiles.3/lint/1.4,
 1376   testsuite/modulefiles.3/lint/2.0, testsuite/modulefiles.3/modbad/lint,
 1377   testsuite/modules.00-init/005-init_ts.exp,
 1378   testsuite/modules.50-cmds/151-module-onlytop.exp,
 1379   testsuite/modules.70-maint/420-lint.exp: ts: add tests for lint sub-command
 1380 
 1381 2022-07-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1382 
 1383   * tcl/subcmd.tcl.in: Use specific-plugin when linting with Nagelfar  Use the
 1384   specific plugin to lint modulefile or the one to lint modulerc when Tcl
 1385   linter is Nagelfar.
 1386 
 1387   * contrib/nagelfar/plugin_modulefile.tcl,
 1388   contrib/nagelfar/plugin_modulerc.tcl: nagelfar: add plugins to lint
 1389   modulefile/modulerc  Create a Nagelfar plugin to lint modulefile and another
 1390   one to lint modulerc. These plugins help to report usage of deprecated, not
 1391   implemented or not recommended commands or variables. Also help to handle
 1392   --option=value argument form.
 1393 
 1394 2022-06-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1395 
 1396   * contrib/modulefiles/module-git, contrib/modulefiles/use.own: contrib: fix
 1397   lint warning on example modulefiles
 1398 
 1399   * tcl/subcmd.tcl.in: Use Nagelfar syntax db located in contrib directory
 1400 
 1401   * contrib/nagelfar/syntaxdb_modulefile.tcl,
 1402   contrib/nagelfar/syntaxdb_modulerc.tcl: Add specific syntaxdb for modulefile
 1403   and modulerc  Add Nagelfar syntax databases to lint modulefile and another
 1404   one to lint modulerc.
 1405 
 1406 2022-06-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1407 
 1408   * tcl/subcmd.tcl.in: Lint modulerc files when no arg provided  In addition
 1409   to the modulefiles available from enabled modulepaths, also lint the
 1410   modulerc files from these modulepaths.  Set specific command for linting
 1411   modulerc files, with a different syntax db file when Nagelfar is used.
 1412 
 1413   * tcl/subcmd.tcl.in: Use syntax database when linting with Nagelfar  When
 1414   Tcl linter is Nagelfar, use a specific syntax database to lint modulefiles.
 1415 
 1416   * .aspell.en.pws, tcl/subcmd.tcl.in: Lint all avail modfile when no arg
 1417   provided  When no argument is provided to the lint sub-command, resolve all
 1418   modulefiles that current user has access to and lint all these files.
 1419   Update cmdModuleLint to first gather the list of all files to lint, then
 1420   lint these files.
 1421 
 1422 2022-06-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1423 
 1424   * .github/workflows/linux_tests.yaml: gh: add --with-tcl-linter on a test
 1425   case
 1426 
 1427 2022-06-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1428 
 1429   * tcl/report.tcl.in, tcl/subcmd.tcl.in: Move linter output report in
 1430   dedicated proc  Create displayLinterOutput procedure to handle the parsing
 1431   and output of each linter messages. Current code handles specific output
 1432   from Nagelfar linter and generic error report for other programs set as
 1433   linter.
 1434 
 1435   * configure: install: warning if tcllinter program not found
 1436 
 1437   * INSTALL.rst, doc/source/module.rst: doc: desc --with-tcl-linter-opts in
 1438   INSTALL/man
 1439 
 1440   * testsuite/modules.70-maint/220-config.exp: ts: adapt tcl_linter tests for
 1441   --with-tcl-linter-opts
 1442 
 1443   * Makefile, Makefile.inc.in, configure, site.exp.in, tcl/init.tcl.in:
 1444   install: add --with-tcl-linter-opts configure option  Introduce the
 1445   --with-tcl-linter-opts configure option to choose at installation time the
 1446   options to pass to the tcl linter program. Default option is ''.
 1447 
 1448 2022-06-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1449 
 1450   * testsuite/install.00-init/010-environ.exp,
 1451   testsuite/modules.00-init/010-environ.exp,
 1452   testsuite/modules.70-maint/220-config.exp: ts: test tcl_linter config option
 1453 
 1454   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 1455   MODULES_TCL_LINTER in man/changes
 1456 
 1457   * INSTALL.rst: doc: desc --with-tcl-linter in INSTALL
 1458 
 1459   * INSTALL.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
 1460   tcl_linter config in man/changes
 1461 
 1462   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 1463   add tcl_linter config to completion script
 1464 
 1465   * Makefile, Makefile.inc.in, configure, site.exp.in, tcl/init.tcl.in:
 1466   install: add --with-tcl-linter configure option  Introduce the
 1467   --with-tcl-linter configure option to choose at installation time the
 1468   default program command to use to lint modulefiles. Default Tcl linter is
 1469   'nagelfar.tcl'.
 1470 
 1471   * tcl/init.tcl.in, tcl/subcmd.tcl.in: Introduce tcl_linter configuration
 1472   option  Add tcl_linter option to configure the program to use by lint
 1473   sub-command to lint modulefiles. When configuration is modified it sets the
 1474   MODULES_TCL_LINTER environment variable.
 1475 
 1476 2022-06-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1477 
 1478   * .aspell.en.pws, tcl/subcmd.tcl.in: Parse and format linter output  Output
 1479   linter output under a *Linting* message block. Parse each output line to
 1480   produce NOTICE, WARNING or ERROR report messages.
 1481 
 1482 2022-06-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1483 
 1484   * .aspell.en.pws, tcl/subcmd.tcl.in: Lint every modulefile passed as
 1485   argument  Update cmdModuleLint to resolve each argument and find
 1486   corresponding modulefile. Pass these modulefile to Nagelfar to lint them.
 1487   In this initial code, Nagelfar is expected to be found at
 1488   nagelfar/nagelfar.tcl and its execution output is sent to the terminal.
 1489 
 1490 2022-06-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1491 
 1492   * init/Makefile, init/bash_completion.in, init/fish_completion,
 1493   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add lint
 1494   subcmd to completion scripts
 1495 
 1496   * .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in:
 1497   Introduce 'lint' sub-command  Add the lint sub-command to check syntax of
 1498   modulefiles.  Initial commit which adds empty cmdModuleLint procedure and
 1499   add code to reach it through module procedure.  General sub-command
 1500   properties: * shortcut name: none * accepted options: --all, --icase *
 1501   expected number of argument: 0 to N * accept boolean variant specification:
 1502   no * parse module version specification: yes * fully read modulefile when
 1503   checking validity: no * only called from top level: yes
 1504 
 1505 2022-07-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1506 
 1507   * NEWS.rst: doc: desc protected_envvars in NEWS  Fixes #429.
 1508 
 1509 2022-07-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1510 
 1511   * .github/workflows/windows_tests.yaml: gh: fix missing liblapack0 dep for R
 1512   pkg on Cygwin
 1513 
 1514   * .cirrus.yml: cirrus: update to python39 on FreeBSD-13
 1515 
 1516 2022-06-08  Adrien Cotte <adrien@cotte.com>
 1517 
 1518   * testsuite/modulefiles.3/protect/1.0, testsuite/modulefiles.3/protect/2.0,
 1519   .../modules.70-maint/410-protected_envvars.exp: ts: add 70/410
 1520   protected_envvars
 1521 
 1522 2022-03-04  Adrien Cotte <adrien@cotte.com>
 1523 
 1524   * testsuite/install.00-init/010-environ.exp,
 1525   testsuite/modules.00-init/010-environ.exp,
 1526   testsuite/modules.70-maint/220-config.exp: ts: test protected_envvars config
 1527   option
 1528 
 1529 2022-02-21  Adrien Cotte <adrien@cotte.com>
 1530 
 1531   * init/zsh-functions/_module.in: Zsh completion support for
 1532   protected_envvars config
 1533 
 1534   * init/fish_completion: Fish completion support for protected_envvars config
 1535 
 1536   * init/Makefile: Bash completion support for protected_envvars config
 1537 
 1538   * .aspell.en.pws, INSTALL.rst, doc/source/changes.rst,
 1539   doc/source/module.rst: doc: desc. protected_envvars configuration
 1540 
 1541   * tcl/envmngt.tcl.in, tcl/init.tcl.in: Add protected_envvars configuration
 1542   option  Add the protected_envvars configuration option that prevents choosen
 1543   environment variables to be set or unset by Module commands.
 1544 
 1545 2022-06-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1546 
 1547   * .aspell.en.pws, NEWS.rst, tcl/mfinterp.tcl.in: Fix source-sh/sh-to-mod
 1548   when fish regex-easyesc is on  Fix source-sh modulefile command and
 1549   sh-to-mod sub-command when used with a fish shell script when the
 1550   regex-easyesc fish option is enabled. This option has been introduced in
 1551   fish 3.1 and is turned on by default starting fish 3.5.  Fixes #463.
 1552 
 1553   * NEWS.rst: doc: desc. enclose install paths work in NEWS
 1554 
 1555 2022-06-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1556 
 1557   * init/Makefile: install: create etcdir from init Makefile if used
 1558 
 1559 2022-06-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1560 
 1561   * doc/source/_static/literal_block.css,
 1562   doc/source/_static/rtd_literal_block.css, doc/source/conf.py: doc: fix css
 1563   config for sphinx >= 3.5  Use html_css_files configuration option introduced
 1564   in Sphinx 1.8 to setup CSS in a more conventional way. Also fix
 1565   pre.literal-block specific styling as the 'section' div is not used anymore
 1566   in newer Sphinx versions.
 1567 
 1568 2022-06-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1569 
 1570   * .cirrus.yml: cirrus: test install path containing space char  Transform
 1571   the second FreeBSD test case into a Ubuntu testcase, running on last LTS
 1572   release. For this test case, installation is made over a path containing a
 1573   whitespace character.  No specific quarantine setup with this test case, as
 1574   it is not compatible with installation in path containing a whitespace
 1575   character.
 1576 
 1577 2022-06-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1578 
 1579   * testsuite/bin/install_test_csh, testsuite/bin/install_test_fish,
 1580   testsuite/bin/install_test_sh, testsuite/bin/install_test_tcl,
 1581   testsuite/config/unix.exp, testsuite/install.00-init/005-init_ts.exp,
 1582   testsuite/install.00-init/030-options.exp,
 1583   testsuite/install.00-init/060-quar.exp,
 1584   testsuite/install.00-init/080-args.exp: ts: fix install tests if space char
 1585   in install path
 1586 
 1587 2022-06-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1588 
 1589   * tcl/envmngt.tcl.in: Update autoinit produced code to enclose install path
 1590   Update code generated by the autoinit sub-command to enclose all references
 1591   to installation path to cope with an installation done in a path containing
 1592   whitespace character.  Enclosing modulecmd.tcl installation path this way is
 1593   not effective with the quarantine mechanism that implies a double shell code
 1594   evaluation. So it is advised not to install Modules in a path containing a
 1595   whitespace character if the quarantine mechanism is needed.
 1596 
 1597 2022-06-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1598 
 1599   * testsuite/config/unix.exp, testsuite/modules.00-init/005-init_ts.exp,
 1600   testsuite/modules.00-init/120-siteconfig.exp,
 1601   testsuite/modules.00-init/140-color.exp,
 1602   testsuite/modules.50-cmds/400-source-sh.exp,
 1603   testsuite/modules.70-maint/120-autoinit.exp,
 1604   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: fix tests if space char in
 1605   install location path
 1606 
 1607   * Makefile, doc/Makefile, init/Makefile: install: enclose install path refs
 1608   in Makefiles
 1609 
 1610   * init/bash.in, init/cmake.in, init/csh.in, init/fish.in, init/ksh.in,
 1611   init/perl.pm.in, init/profile.csh.in, init/profile.sh.in, init/r.R.in,
 1612   init/ruby.rb.in, init/sh.in, init/tcl.in, init/tcsh_completion.in,
 1613   init/zsh.in: init: enclose installation path references  Update
 1614   initialization, profile and completion scripts to enclose all references to
 1615   the installation paths.  Enclosing modulecmd.tcl installation path this way
 1616   is not effective with the quarantine mechanism that implies a double shell
 1617   code evaluation. So it is advised not to install Modules in a path
 1618   containing a whitespace character if the quarantine mechanism is needed.
 1619 
 1620   * contrib/modulefiles/modules.in, contrib/modulefiles/version.in,
 1621   script/add.modules.in: contrib,script: enclose installation path references
 1622   Update add.modules script and example modulefiles to enclose all references
 1623   to the installation paths.
 1624 
 1625   * tcl/init.tcl.in, tcl/main.tcl.in, tcl/subcmd.tcl.in: Enclose all
 1626   installation path references  Fix modulecmd.tcl to enclose all references to
 1627   an installation path. These references are thus robust in case a space
 1628   character is part of the installation location.
 1629 
 1630   * NEWS.rst: doc: desc. init scripts > autoinit migration work
 1631 
 1632   * .github/workflows/linux_tests.yaml: gh: update test case with disabled
 1633   bin/manpath config
 1634 
 1635 2022-06-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1636 
 1637   * testsuite/modules.70-maint/120-autoinit.exp: ts: test source of shell
 1638   completion during autoinit
 1639 
 1640   * testsuite/modules.70-maint/120-autoinit.exp: ts: add autoinit MANPATH
 1641   setup tests
 1642 
 1643 2022-06-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1644 
 1645   * .cirrus.yml: cirrus: use leap 15.3 to get python-Sphinx
 1646 
 1647 2022-06-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1648 
 1649   * site.exp.in, testsuite/modules.00-init/005-init_ts.exp,
 1650   testsuite/modules.50-cmds/400-source-sh.exp,
 1651   testsuite/modules.70-maint/120-autoinit.exp,
 1652   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: update tests now autoinit
 1653   sets PATH/MANPATH/etc
 1654 
 1655   * Makefile, init/Makefile, init/zsh.in, tcl/subcmd.tcl.in: init: setup zsh
 1656   FPATH through autoinit command  Add zsh FPATH setup in autoinit command
 1657   instead of zsh shell initialization script. This way all the shell setup is
 1658   gathered in the autoinit process. What is left in initialization script is
 1659   the code to properly call the autoinit process.  Fixes #462.
 1660 
 1661   * Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
 1662   tcl/subcmd.tcl.in: init: setup shell completion through autoinit command
 1663   Add shell completion setup in autoinit command instead of shell
 1664   initialization scripts. Use this way one modulecmd.tcl internal code instead
 1665   of shell code for every shell having some completion to source (bash, tcsh,
 1666   fish).  Fixes #462.
 1667 
 1668 2022-06-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1669 
 1670   * Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
 1671   init/ksh.in, init/sh.in, init/zsh.in, tcl/subcmd.tcl.in: init: setup MANPATH
 1672   through autoinit command  Add MANPATH setup in autoinit command instead of
 1673   shell initialization scripts. Use this way one modulecmd.tcl internal code
 1674   instead of shell code for every shell requiring to setup MANPATH with
 1675   Modules binaries location (sh, bash, ksh, zsh, csh, tcsh, fish).  Fixes
 1676   #462.
 1677 
 1678 2022-06-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1679 
 1680   * Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
 1681   init/ksh.in, init/sh.in, init/zsh.in, tcl/subcmd.tcl.in: init: setup PATH
 1682   through autoinit command  Add PATH setup in autoinit command instead of
 1683   shell initialization scripts. Use this way one modulecmd.tcl internal code
 1684   instead of shell code for every shell requiring to setup PATH with Modules
 1685   binaries location (sh, bash, ksh, zsh, csh, tcsh, fish).  Fixes #462.
 1686 
 1687   * init/bash.in, tcl/envmngt.tcl.in: Export module bash functions directly
 1688   through autoinit  Export the module, _module_raw and ml bash shell functions
 1689   directly through the autoinit sub-command process rather within the bash
 1690   shell initialization script.  Cannot apply the same change to the sh shell
 1691   when it is bash launched as sh, since we cannot tell in the modulecmd.tcl
 1692   execution that the current sh shell is bash (as BASH environment variable is
 1693   not exported to sub-shells).  Fixes #462.
 1694 
 1695 2022-05-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1696 
 1697   * testsuite/modules.00-init/005-init_ts.exp,
 1698   testsuite/modules.70-maint/410-timer.exp: ts: add --timer tests in 70/410
 1699 
 1700   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
 1701   --timer option in NEWS/changes/man
 1702 
 1703   * testsuite/modules.00-init/100-pager.exp,
 1704   testsuite/modules.00-init/120-siteconfig.exp,
 1705   testsuite/modules.00-init/150-access-init.exp: ts: adapt existing tests for
 1706   timer state introduction
 1707 
 1708 2022-05-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1709 
 1710   * tcl/mfinterp.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in: Report duration
 1711   of each proc in timer debug mode  When --timer option is enabled and
 1712   verbosity level is higher or equal to verbose, report trace of each
 1713   procedure executed with their duration. All regular debug messages are
 1714   replaced by these timer trace messages.
 1715 
 1716 2022-05-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1717 
 1718   * .aspell.en.pws, tcl/init.tcl.in, tcl/main.tcl.in, tcl/report.tcl.in:
 1719   Introduce --timer option  Add --timer global option to report execution time
 1720   in milliseconds at the end.  Set start time in timer_start global variable
 1721   when --timer is set. Also enable timer state, to know later on that timer
 1722   mode has been asked. Timer report is produced at the and, in last run
 1723   procedure: cleanupAndExit.  Report is shown at any verbosity level.  Timer
 1724   reports are kind of debug information, thus they also use the 'db' sgr key
 1725   to get graphically enhanced.  No need for a dummy reportTimer procedure like
 1726   for reportDebug, to use to gather all messages prior error report
 1727   initialization, as reportTimer is always called after error report being
 1728   initialized.
 1729 
 1730 2022-05-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1731 
 1732   * MIGRATING.rst: doc: describe Optional requirements in MIGRATING
 1733 
 1734   * testsuite/modulefiles.3/optional/1.0,
 1735   testsuite/modules.50-cmds/465-tag-opt.exp,
 1736   testsuite/modules.50-cmds/550-optional-opt.exp,
 1737   testsuite/modules.70-maint/240-icase.exp: ts: test misplaced/invalid prereq
 1738   option in 50/550
 1739 
 1740   * NEWS.rst, tcl/mfinterp.tcl.in: Error on misplaced/invalid options on
 1741   prereq commands  Update prereq command parsing to raise error in case of an
 1742   invalid option or a misplaced one.
 1743 
 1744   * testsuite/modules.50-cmds/550-optional-opt.exp: ts: adapt optional tests
 1745   as eval failure are not reported
 1746 
 1747   * tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: No report of eval
 1748   error of optional requirement  Do not report the evaluation error of
 1749   optional requirements. Proceed like on a prereq-any command, when some
 1750   evaluation fails but one succeed.  Update the loadRequirementModuleList
 1751   procedure by adding an argument named 'optional' to know if current load
 1752   attempt is mandatory or not.
 1753 
 1754 2022-05-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1755 
 1756   * tcl/mfinterp.tcl.in: Disable auto loading on always-load in DepRe context
 1757   Disable auto-loading on always-load sub-command when evaluated in a
 1758   Dependency Reload context.
 1759 
 1760 2022-05-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1761 
 1762   * testsuite/modulefiles.3/foo/1.0, testsuite/modulefiles.3/optional/1.0,
 1763   testsuite/modulefiles.3/optional/2.0,
 1764   testsuite/modules.50-cmds/550-optional-opt.exp: ts: add --optional option
 1765   tests in 50/550
 1766 
 1767 2022-05-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1768 
 1769   * NEWS.rst: doc: desc. --optional and try-load changes in NEWS
 1770 
 1771   * doc/source/changes.rst, doc/source/design/lmod-tcl-modulefile-compat.rst,
 1772   doc/source/modulefile.rst: doc: desc --optional option in man/changes/design
 1773 
 1774 2022-05-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1775 
 1776   * testsuite/modulefiles.3/tryload/2.0,
 1777   testsuite/modules.50-cmds/490-try-load.exp,
 1778   testsuite/modules.50-cmds/518-load-any.exp: ts: add depre tests for
 1779   try-load/load-any mfcmd
 1780 
 1781 2022-05-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1782 
 1783   * tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in:
 1784   Change try_modulefile state into a cmdModuleLoad arg  Replace the
 1785   try_modulefile state by the tryload argument on the cmdModuleLoad procedure.
 1786   Update prereqAnyModfileCmd, prereqAllModfileCmd and
 1787   loadRequirementModuleList procedure to pass this tryload argument all along
 1788   toward cmdModuleLoad. This is needed when evaluating module try-load and
 1789   module load-any commands in modulefile.
 1790 
 1791   * tcl/mfinterp.tcl.in: Allow to pass multiple pre-args on interp cmd alias
 1792   Update initialization of the command aliases on modulefile interpreter to
 1793   allow to pre defined more than one argument to transmit.
 1794 
 1795 2022-05-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1796 
 1797   * .aspell.en.pws, tcl/main.tcl.in: Inhibit autoload in depre ctx for all
 1798   kind of load cmd  Inhibit the auto loading mechanism when module is
 1799   currently evaluated in a Dependency Reload (DepRe) context for load,
 1800   try-load and load-any sub-commands.  This way it avoids to auto reload the
 1801   optional dependency module currently targeted by the main unload order from
 1802   user.
 1803 
 1804   * testsuite/modules.50-cmds/152-module-emptyarg.exp,
 1805   testsuite/modules.50-cmds/465-tag-opt.exp,
 1806   testsuite/modules.50-cmds/490-try-load.exp,
 1807   testsuite/modules.61-coll/040-restore.exp: ts: adapt existing tests to
 1808   try-load prereq record change
 1809 
 1810 2022-05-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1811 
 1812   * tcl/main.tcl.in: Use optional prereq to record try-load requirements  When
 1813   try-load is used in a modulefile, record implied requirement as optional
 1814   instead of only recording those that are loaded. This way the modulefile
 1815   will get reloaded if requirement is loaded afterward.  Cannot fully rely on
 1816   prereqAllModfileCmd procedure as try-load does not fully correspond to a
 1817   prereq-all --optional: an requirement evaluation error will lead to an error
 1818   of the module try-load command that will abort the modulefile evaluation.
 1819 
 1820   * tcl/main.tcl.in: Refactor module load/try-load/load-any modulefile code
 1821 
 1822   * testsuite/modules.70-maint/080-help.exp: ts: adapt existing tests for
 1823   prereq cmds refactoring
 1824 
 1825   * .aspell.en.pws, tcl/main.tcl.in, tcl/mfinterp.tcl.in: Merge
 1826   prereq-all/prereq-allAH into prereqAllModfileCmd  Merge the prereq-all and
 1827   prereq-allAH procedure into a single prereqAllModfileCmd procedure taking
 1828   current auto_handling option value as first arg to know whether to
 1829   automatically load requirements or not.
 1830 
 1831   * .aspell.en.pws, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in:
 1832   Merge prereq/prereqAH into prereqAnyModfileCmd proc  Merge the prereq and
 1833   prereqAH procedure into a single prereqAnyModfileCmd procedure taking
 1834   current auto_handling option value as first arg to know whether to
 1835   automatically load requirements or not.
 1836 
 1837 2022-05-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1838 
 1839   * testsuite/modules.50-cmds/465-tag-opt.exp,
 1840   testsuite/modules.50-cmds/513-prereq-any.exp,
 1841   testsuite/modules.50-cmds/515-depends-on.exp,
 1842   testsuite/modules.50-cmds/516-prereq-all.exp,
 1843   testsuite/modules.50-cmds/517-always-load.exp: ts: adapt existing tests to
 1844   --optional addition
 1845 
 1846   * tcl/mfinterp.tcl.in: Add --optional option to prereq commands  Introduce
 1847   the --optional option on prereq commands (prereq, prereq-all, always-load,
 1848   prereq-any and depends-on) to indicate that the prereq list is fully
 1849   optional: if none of these prereqs are loaded, no error occurs.  When
 1850   recording these prereq list in persistency information (__MODULES_LMPREREQ
 1851   variable), the current module name is added as first module in prereq list
 1852   to get this rule always satisfied even if no module from the prereq list is
 1853   loaded.
 1854 
 1855 2022-05-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1856 
 1857   * tcl/main.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in: Change any_modulefile
 1858   state into a cmdModuleLoad arg  Replace any_modulefile state by the anyload
 1859   argument on cmdModuleLoad procedure.  any_modulefile branch were already not
 1860   in use for 'module load-any' commands used in modulefiles.
 1861 
 1862   * tcl/mfinterp.tcl.in: Make always-load proc directly use prereq-all  Update
 1863   always-load procedure to make it use directly the auto_handling version of
 1864   prereq-all command.
 1865 
 1866   * testsuite/modules.50-cmds/152-module-emptyarg.exp,
 1867   testsuite/modules.70-maint/080-help.exp: ts: adapt existing tests for prereq
 1868   interp refactoring
 1869 
 1870   * tcl/subcmd.tcl.in: No need to disable auto_handling to call prereq  Update
 1871   cmdModuleSwitch procedure as it is not anymore needed to disable
 1872   auto_handling option to call a prereq command that does not automatically
 1873   load requirements.
 1874 
 1875   * tcl/main.tcl.in: Make module load rely on prereq/prereq-all cmds  Update
 1876   module procedure to directly use, when 'module load' is called within a
 1877   modulefile, the prereq/prereq-all commands in their auto_handling or
 1878   non-auto_handling versions.
 1879 
 1880   * .aspell.en.pws, tcl/mfinterp.tcl.in: Create auto_handling and not version
 1881   of prereq procs  Split prereq and prereq-all procedures into a auto_handling
 1882   version, that attempts to automatically load requirements, and a non
 1883   auto_handling version that raise an error directly if requirement is not
 1884   already loaded.  Adapt Tcl sub-interpreter initialization to make it
 1885   dependent of the auto_handling option enablement. When auto_handling is
 1886   enabled, the auto_handling versions of the prereqs procedure are configured.
 1887   With this change other parts of the code will be able to call either prereq
 1888   or prereqAH directly whether they need a load attempt or not, whatever the
 1889   current status of the auto_handling option.
 1890 
 1891 2022-05-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1892 
 1893   * NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
 1894   version.inc.in: Release of version 5.1.1
 1895 
 1896   * testsuite/is_module_defined, testsuite/modules.00-init/005-init_ts.exp:
 1897   ts: fix is_modules_defined test  Add bash script to test whether module
 1898   function is defined
 1899 
 1900   * Makefile, NEWS.rst: install: call git cmds in Makefile only if needed
 1901   Update Makefile to call git command only if the version.inc file needs to
 1902   get rebuilt (if it does not exist or if the git repository has been updated
 1903   after version.inc built).  Include version.inc file in main Makefile only if
 1904   its variables have not been just generated within Makefile flow.
 1905 
 1906 2022-05-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1907 
 1908   * .aspell.en.pws, Makefile, NEWS.rst, lib/.gitignore, lib/Makefile.in:
 1909   install: include generated config.{guess,sub} in dist  Include the
 1910   lib/config.guess and lib/config.sub scripts in distribution tarball if
 1911   generated by autoreconf
 1912 
 1913   * Makefile, init/Makefile: install: no dependency to version.inc in
 1914   init/Makefile  The Makefile script in the init directory does not depend on
 1915   the definitions stored in the version.inc file. So remove inclusion and
 1916   requirement definition to this version.inc file in init/Makefile.
 1917 
 1918   * script/mrel: install: locate rpmlint rc file with -r in mrel  Update mrel
 1919   script to locate rpmlint rc file with the -r command-line switch as -f is
 1920   not recognized anymore on rpmlint v2.
 1921 
 1922   * contrib/rpm/environment-modules.rpmlintrc: install: update rpmlint rc
 1923   config for fc36  Update rpmlint rc file to match the new rpmlint version and
 1924   configuration provided in Fedora 36.
 1925 
 1926 2022-05-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1927 
 1928   * testsuite/modulefiles.3/lcompat/1.7,
 1929   testsuite/modules.50-cmds/517-always-load.exp: ts: add depre tests for
 1930   always-load command in 50/517
 1931 
 1932   * NEWS.rst, tcl/subcmd.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp:
 1933   Update mod designation with tags set by DepRe modules  Update module
 1934   designation with the tags set by reloading dependent module.  Closes #460.
 1935 
 1936 2022-05-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1937 
 1938   * NEWS.rst, doc/source/design/module-tags.rst, tcl/mfinterp.tcl.in,
 1939   tcl/modeval.tcl, testsuite/modulefiles.3/tag/8.0,
 1940   testsuite/modules.50-cmds/465-tag-opt.exp: Update tags set with prereq on
 1941   all loaded mods  Update tags set through prereq command on all already
 1942   loaded requirements.  Closes #459.
 1943 
 1944 2022-05-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1945 
 1946   * testsuite/example/siteconfig.tcl-1, testsuite/modules.00-init/170-cwd.exp:
 1947   ts: test module over a removed current working dir
 1948 
 1949   * NEWS.rst, tcl/util.tcl: Report known error when cwd cannot be retrieved
 1950   Closes #457.
 1951 
 1952 2022-05-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1953 
 1954   * tcl/mfinterp.tcl.in, tcl/report.tcl.in: Migration conflict error report in
 1955   dedicated proc  Add reportPresentConflictError procedure to report error
 1956   when a conflict is detected.
 1957 
 1958   * tcl/mfinterp.tcl.in, tcl/report.tcl.in: Migrate prereq error report in
 1959   dedicated proc  Add the reportMissingPrereqError procedure to report error
 1960   when prereq is not satisfied.
 1961 
 1962   * tcl/mfinterp.tcl.in: Add getCurrentModfileInterpName proc  Add
 1963   getCurrentModfileInterpName procedure to return identifier name of current
 1964   Tcl modulefile interpreter.
 1965 
 1966 2022-05-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1967 
 1968   * tcl/main.tcl.in, tcl/modeval.tcl: Return if prereq has been loaded on
 1969   loadRequirementModuleList  Update loadRequirementModuleList procedure to
 1970   also return if one of the requirement from list has been loaded.
 1971 
 1972 2022-05-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1973 
 1974   * tcl/subcmd.tcl.in: Remove dependency to try_modulefile of cmdModuleUnload
 1975   The try_modulefile state does not impact the cmdModuleUnload procedure as
 1976   the only kind of error reported here is when an empty module name is
 1977   specified. Such error should be reported whatever the try_modulefile state.
 1978 
 1979   * tcl/main.tcl.in: Clarify {try,any}_modulefile state in ml proc  Clarify
 1980   that the try_modulefile and any_modulefile states cannot be enabled when set
 1981   through the ml procedure: ml shortcut syntax leads to regular load and not
 1982   load-any or try-load.
 1983 
 1984 2022-05-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1985 
 1986   * tcl/main.tcl.in, tcl/subcmd.tcl.in: Move load-any no load error into
 1987   cmdModuleLoad  Refactor module procedure to move the error raise when no
 1988   error and no module loaded in case of a load-any sub-command. This code is
 1989   moved directly at the end of cmdModuleLoad.
 1990 
 1991 2022-05-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1992 
 1993   * tcl/modfind.tcl.in: Refactor setModuleTag call in setLoadedModule  As
 1994   setModuleTag now ensures no duplicate tag are set, no need to check if
 1995   auto-loaded tag is already set. Simplify also the if/else branch as same
 1996   commands are applied whether the loaded or auto-loaded tag need to be set.
 1997 
 1998 2022-05-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 1999 
 2000   * tcl/main.tcl.in, tcl/modeval.tcl,
 2001   testsuite/modules.50-cmds/517-always-load.exp: Refactor 'module load' to use
 2002   loadRequirementModuleList  Update module procedure to use
 2003   loadRequirementModuleList procedure when loading modules in load evaluation
 2004   mode when auto_handling is disabled.  Update the loadRequirementModuleList
 2005   to return 0 is everything went well or 1 if an issue occurred.
 2006 
 2007   * testsuite/modules.70-maint/310-sh-to-mod.exp: ts: fix 70/310 tests when
 2008   module is defined in env
 2009 
 2010   * tcl/main.tcl.in: Refactor use of --tag option within module load
 2011 
 2012   * testsuite/modules.70-maint/350-term_width.exp: ts: add tests to improve
 2013   --width option coverage
 2014 
 2015   * testsuite/modules.50-cmds/520-pushenv.exp: ts: add pushenv test to improve
 2016   coverage
 2017 
 2018   * testsuite/modules.50-cmds/400-source-sh.exp: ts: test loaded completion
 2019   not defined in source-sh script
 2020 
 2021   * testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
 2022   testsuite/example/sh-to-mod.sh, testsuite/example/siteconfig.tcl-1,
 2023   testsuite/modules.50-cmds/400-source-sh.exp: ts: test removal of
 2024   alias/func/comp from source-sh script
 2025 
 2026 2022-05-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2027 
 2028   * NEWS.rst, tcl/subcmd.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp,
 2029   testsuite/modules.70-maint/322-tag-sgr.exp: No already loaded msg if new tag
 2030   applied  Remove the *already loaded* message displayed when verbosity level
 2031   is higher or equal to 'verbose2', if new tags are applied to the loaded
 2032   module.  Closes #456
 2033 
 2034 2022-05-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2035 
 2036   * testsuite/modules.50-cmds/465-tag-opt.exp,
 2037   testsuite/modules.70-maint/321-tag_abbrev.exp,
 2038   testsuite/modules.70-maint/322-tag-sgr.exp: ts: test module designation with
 2039   tags when loading
 2040 
 2041   * NEWS.rst, tcl/report.tcl.in: Fix module designation rendering when no 'hi'
 2042   color key  Fix rendering of loading or unloading module designation when
 2043   configured color palette does not set the 'hi' color key.  Closes #455
 2044 
 2045 2022-05-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2046 
 2047   * testsuite/modules.70-maint/045-listlong.exp,
 2048   testsuite/modules.70-maint/290-json.exp,
 2049   testsuite/modules.70-maint/322-tag-sgr.exp: ts: test space in module name on
 2050   list/avail outputs
 2051 
 2052 2022-05-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2053 
 2054   * testsuite/example/siteconfig.tcl-1,
 2055   testsuite/modules.00-init/120-siteconfig.exp: ts: add readCollectionContent
 2056   coverage test
 2057 
 2058 2022-05-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2059 
 2060   * .cirrus.yml: cirrus: test FreeBSD 13.0 instead of eol 11.4
 2061 
 2062   * testsuite/example/siteconfig.tcl-1,
 2063   testsuite/modules.00-init/120-siteconfig.exp: ts: add
 2064   unsetModuleTag/unsetModuleExtraTag coverage test
 2065 
 2066   * testsuite/modules.00-init/120-siteconfig.exp: ts: no tcl ext lib err call
 2067   tests if test libs not there
 2068 
 2069   * NEWS.rst, contrib/rpm/environment-modules.spec.in: rpm: install lib in
 2070   specific directory  Move libtclenvmodules in an environment-modules
 2071   directory under libdir, as it is a private library.
 2072 
 2073   * NEWS.rst, configure: install: fix libdir64/32 guess in configure script
 2074   Update configure script to better guess the libdir64 and libdir32 directory
 2075   locations based on specified libdir.  Correctly guess these directories when
 2076   libdir does not end with '64' but contains '64' like in
 2077   '/usr/lib64/environment-modules'.
 2078 
 2079   * .aspell.en.pws, NEWS.rst, contrib/rpm/environment-modules.rpmlintrc,
 2080   script/mrel: install: add rpmlint rc config file  Add rpmlint rc
 2081   configuration file to filter false positive warning messages when checking
 2082   RPM spec file and built packages.  Update 'mrel' script to use this rc
 2083   configuration file when linting RPM spec file.
 2084 
 2085   * contrib/rpm/environment-modules.spec.in: rpm: remove useless
 2086   environment-modules provides  Remove useless environment-modules Provides
 2087   statement since this package is already named environment-modules.
 2088 
 2089 2022-05-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2090 
 2091   * testsuite/example/sh-to-mod.sh, testsuite/modules.00-init/005-init_ts.exp,
 2092   testsuite/modules.50-cmds/400-source-sh.exp: ts: fix 50/400 tests when
 2093   module was defined but uninstalled  Correct source-sh tests in 50/400 to
 2094   succeed when tests are run in an environment where module is defined but has
 2095   been uninstalled. It corresponds to the environment created for 'mrel'
 2096   script execution.
 2097 
 2098 2022-05-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2099 
 2100   * .../modules.20-locate/130-mcookie_check_eval.exp: ts: fix 20/130 tests
 2101   when run from path containing + char
 2102 
 2103   * script/mpub, script/mrel: script: no line number dependency for expected
 2104   errors  Update mpub and mrel scripts not to depend on the line number
 2105   expressed in error message when comparing them to expected error message.
 2106 
 2107   * NEWS.rst: doc: fix rst typo in 5.1 NEWS
 2108 
 2109 2022-04-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2110 
 2111   * MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
 2112   doc/source/conf.py, lib/configure.ac, tcl/subcmd.tcl.in,
 2113   testsuite/home/coll40, testsuite/home/coll41, testsuite/home/coll42,
 2114   testsuite/home/coll43, testsuite/home/coll45, testsuite/home/coll46,
 2115   testsuite/home/coll49, testsuite/home/coll49-tosource,
 2116   testsuite/modules.61-coll/010-init_ts.exp, version.inc.in: Release of
 2117   version 5.1.0
 2118 
 2119 2022-04-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2120 
 2121   * testsuite/home/coll49-tosource, testsuite/modules.50-cmds/465-tag-opt.exp,
 2122   testsuite/modules.61-coll/040-restore.exp: ts: tests tagging messages on
 2123   verbose/verbose2 modes
 2124 
 2125 2022-04-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2126 
 2127   * doc/source/design/hide-or-forbid-modulefile.rst, tcl/main.tcl.in,
 2128   tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in: No Tagging msg
 2129   block if hidden and nuasked  Do not output Tagging message block if module
 2130   is set hidden-loaded and evaluation has not been directly asked by user.
 2131   Add uasked argument to cmdModuleTag procedure to know if the evaluation of
 2132   module has been asked or not by user.
 2133 
 2134   * .aspell.en.pws, MIGRATING.rst, doc/source/_static/terminal_output.css,
 2135   doc/source/conf.py: doc: add examples in more tagging section in MIGRATING
 2136 
 2137   * NEWS.rst, doc/source/design/module-tags.rst, doc/source/module.rst: doc:
 2138   desc. tagging evaluation message
 2139 
 2140   * testsuite/modules.00-init/005-init_ts.exp,
 2141   testsuite/modules.61-coll/040-restore.exp: ts: adapt existing restore tests
 2142   to the Tagging msg
 2143 
 2144   * tcl/subcmd.tcl.in: Add Tagging message block  When just tagging a module
 2145   already loaded, report a *Tagging* message with module denomination. Like
 2146   for *Loading* message, it is only seen during a restore/source sub-commands
 2147   or in verbose mode.
 2148 
 2149   * .aspell.en.pws, NEWS.rst, doc/example/log-module-commands/siteconfig.tcl,
 2150   doc/source/cookbook/log-module-commands.rst: doc: fix log-module-command
 2151   recipe siteconfig.tcl  Fix the siteconfig.tcl file of the log-module-command
 2152   cookbook recipe not to break when a file is sourced through cmdModuleSource.
 2153   Limit the addition of the 'auto' log field only if load evaluation comes
 2154   from cmdModuleLoad procedure.  Fixes #453
 2155 
 2156   * NEWS.rst, doc/source/design/module-tags.rst, doc/source/module.rst: doc:
 2157   desc. tag report on load/unload/refresh msg block
 2158 
 2159 2022-04-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2160 
 2161   * testsuite/install.00-init/020-module.exp,
 2162   testsuite/install.00-init/024-ml.exp,
 2163   testsuite/modules.00-init/130-auto_handling.exp,
 2164   testsuite/modules.20-locate/100-wspace.exp,
 2165   testsuite/modules.20-locate/115-forbid.exp,
 2166   testsuite/modules.20-locate/118-hidden-loaded.exp,
 2167   testsuite/modules.20-locate/119-hide-cascading.exp,
 2168   testsuite/modules.50-cmds/078-refresh.exp,
 2169   testsuite/modules.50-cmds/120-prereq-full.exp,
 2170   testsuite/modules.50-cmds/121-prereq-module.exp,
 2171   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 2172   testsuite/modules.50-cmds/150-module.exp,
 2173   testsuite/modules.50-cmds/170-swap.exp,
 2174   testsuite/modules.50-cmds/288-info-tags.exp,
 2175   testsuite/modules.50-cmds/370-deps-bis.exp,
 2176   testsuite/modules.50-cmds/370-deps.exp,
 2177   testsuite/modules.50-cmds/372-deps3.exp,
 2178   testsuite/modules.50-cmds/373-deps4.exp,
 2179   testsuite/modules.50-cmds/374-deps5.exp,
 2180   testsuite/modules.50-cmds/375-deps6.exp,
 2181   testsuite/modules.50-cmds/375-order.exp,
 2182   testsuite/modules.50-cmds/376-deps7.exp,
 2183   testsuite/modules.50-cmds/376-switch.exp,
 2184   testsuite/modules.50-cmds/377-cyclic.exp,
 2185   testsuite/modules.50-cmds/377-error.exp,
 2186   testsuite/modules.50-cmds/377-opposite.exp,
 2187   testsuite/modules.50-cmds/378-sametarget.exp,
 2188   testsuite/modules.50-cmds/379-module-unload.exp,
 2189   testsuite/modules.50-cmds/380-altname.exp,
 2190   testsuite/modules.50-cmds/430-implicit-req.exp,
 2191   testsuite/modules.50-cmds/431-not-req.exp,
 2192   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 2193   testsuite/modules.50-cmds/460-sticky.exp,
 2194   testsuite/modules.50-cmds/461-super-sticky.exp,
 2195   testsuite/modules.50-cmds/462-sticky-corner.exp,
 2196   testsuite/modules.50-cmds/465-tag-opt.exp,
 2197   testsuite/modules.50-cmds/473-variant-prereq.exp,
 2198   testsuite/modules.50-cmds/474-variant-conflict.exp,
 2199   testsuite/modules.50-cmds/475-variant-tag.exp,
 2200   testsuite/modules.61-coll/040-restore.exp,
 2201   testsuite/modules.70-maint/120-autoinit.exp,
 2202   testsuite/modules.70-maint/230-verbosity.exp,
 2203   .../modules.70-maint/270-adv_version_spec.exp,
 2204   .../modules.70-maint/271-adv_version_spec-in.exp,
 2205   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
 2206   .../274-adv_version_spec-autosym.exp,
 2207   testsuite/modules.70-maint/320-tags.exp,
 2208   .../modules.70-maint/377-variant-shortcut.exp: ts: update tests with tags
 2209   reported in msg block
 2210 
 2211   * tcl/report.tcl.in: Report module tags in header message block  Update
 2212   Loading/Unloading/Refreshing header message block to render the tags
 2213   applying on the currently analyzed module over or along this module name, as
 2214   done when reporting loaded modules with list sub-command.
 2215 
 2216   * tcl/report.tcl.in: Make getModuleDesignation rely on
 2217   formatListEltToDisplay  Use formatListEltToDisplay in getModuleDesignation
 2218   to render module designation.
 2219 
 2220 2022-04-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2221 
 2222   * testsuite/modules.20-locate/090-memcache.exp,
 2223   testsuite/modules.20-locate/100-wspace.exp,
 2224   testsuite/modules.70-maint/240-icase.exp,
 2225   .../272-adv_version_spec-range.exp,
 2226   testsuite/modules.70-maint/376-variant-tag.exp,
 2227   testsuite/modules.90-avail/080-noindepth.exp: ts: update avail/list tests
 2228   when space in module name
 2229 
 2230   * NEWS.rst, tcl/report.tcl.in: Quote name if it contains space when listing
 2231   modules  Update formatListEltToDisplay and formatListEltToLongDisplay to
 2232   enclose element name in single quote if it contains a space character. As a
 2233   result list and avail output will now report enclosed module names if space
 2234   character if found in them, like it is done when reporting module
 2235   designation as loading/unloading header.  Only enclose element name and not
 2236   suffix, to follow the same output approach than 'ls' command.
 2237 
 2238   * tcl/report.tcl.in, tcl/subcmd.tcl.in: Register tag list in module
 2239   designation  Update registerModuleDesignation procedure to also register the
 2240   list of tags applied along module name and variants.
 2241 
 2242   * MIGRATING.rst, NEWS.rst: doc: desc. tags improvement in NEWS/MIGRATING
 2243 
 2244   * doc/source/design/module-tags.rst: doc: list mfcmd where --tag opt is
 2245   available in design
 2246 
 2247   * NEWS.rst, doc/source/changes.rst, doc/source/design/module-tags.rst: doc:
 2248   link to --tag option section
 2249 
 2250 2022-04-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2251 
 2252   * .github/workflows/windows_tests.yaml: gh: configure safe.directory git opt
 2253   on Cygwin & win native
 2254 
 2255   * doc/source/module.rst: doc: mention --tag in Module tags section
 2256 
 2257   * doc/source/module.rst, doc/source/modulefile.rst: doc: --tag update tag
 2258   list if mod is loaded already
 2259 
 2260   * doc/source/module.rst: doc: add an option section for --tag in module(1)
 2261 
 2262   * testsuite/modules.50-cmds/465-tag-opt.exp: ts: test tag set with full path
 2263   module spec
 2264 
 2265 2022-04-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2266 
 2267   * testsuite/home/coll49, testsuite/modulefiles.3/foo/.modulerc,
 2268   testsuite/modulefiles.3/keep/1.0, testsuite/modulefiles.3/tag/8.0,
 2269   testsuite/modules.61-coll/010-init_ts.exp,
 2270   testsuite/modules.61-coll/040-restore.exp,
 2271   testsuite/modules.61-coll/999-cleanup.exp: ts: add restore tests with tags
 2272   set or not
 2273 
 2274   * tcl/subcmd.tcl.in: Clear auto-loaded tag on cmdModuleTag  When the
 2275   unset_extra flag is enabled, also remove the auto-loaded tag on module if it
 2276   is not part of the target tag_list.
 2277 
 2278   * tcl/subcmd.tcl.in: Clear auto-loaded/keep-loaded tags when unloading
 2279   Remove from the in-memory knowledge the auto-loaded and keep-loaded tags set
 2280   on unloading modules. These tags are then forgotten and will not be
 2281   reapplied if module is currently reloading.
 2282 
 2283 2022-04-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2284 
 2285   * tcl/modeval.tcl, tcl/subcmd.tcl.in,
 2286   testsuite/modules.50-cmds/377-error.exp,
 2287   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 2288   testsuite/modules.50-cmds/465-tag-opt.exp: Save/restore extra tags when
 2289   reloading modules  Update reloadModuleListUnloadPhase and
 2290   reloadModuleListLoadPhase procedures to save extra tags of unloaded modules
 2291   to re-inject them when reloading these modules.
 2292 
 2293   * testsuite/modules.61-coll/040-restore.exp: ts: update restore tests now
 2294   extra tags are cleared
 2295 
 2296   * tcl/subcmd.tcl.in: Clear extra tags when unloading module  Remove from the
 2297   in-memory knowledge the extra tags set on unloading modules. These extra
 2298   tags are then forgotten and will not be reapplied if module is currently
 2299   reloading.
 2300 
 2301   * tcl/subcmd.tcl.in: Clear extra tags when restoring collection  When
 2302   restoring a collection, unset the extra tags on loaded modules that are not
 2303   defined in collection.
 2304 
 2305   * tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modfind.tcl.in,
 2306   tcl/subcmd.tcl.in: Unset extra tags on cmdModuleTag  Add unset_extra
 2307   argument to the cmdModuleTag procedure to remove, when enabled, the extra
 2308   tags currently set on designated modules that are not part of the
 2309   transmitted tag list.  Update every cmdModuleTag calls to take into account
 2310   this new unset_extra argument.
 2311 
 2312 2022-04-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2313 
 2314   * doc/source/design/module-tags.rst: doc: desc. updating tags on loaded mods
 2315   in design doc
 2316 
 2317 2022-04-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2318 
 2319   * testsuite/modulefiles.3/foo/1.0, testsuite/modulefiles.3/tag/8.0,
 2320   testsuite/modules.50-cmds/465-tag-opt.exp,
 2321   testsuite/modules.50-cmds/517-always-load.exp: ts: add tests where tags are
 2322   updated on loaded mods
 2323 
 2324 2022-04-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2325 
 2326   * testsuite/modules.50-cmds/465-tag-opt.exp: ts: fix existing tests to set
 2327   tags on already loaded mod
 2328 
 2329   * tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: Apply new tags set
 2330   on loaded requirement  Update the loadRequirementModuleList procedure to
 2331   apply tags defined on the first requirement found loaded.
 2332 
 2333 2022-04-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2334 
 2335   * tcl/subcmd.tcl.in: Apply new tags set on loaded module  When a module load
 2336   attempt is made on an already loaded module with additional tag set, update
 2337   the tag list set on this loaded module: add the new tags not already set on
 2338   the loaded module.
 2339 
 2340 2022-04-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2341 
 2342   * .cirrus.yml: cirrus: test over newer FreeBSD 12 release
 2343 
 2344   * NEWS.rst, doc/source/modulefile.rst: doc: desc avail module subcmds in
 2345   modulefile interp ctx
 2346 
 2347 2022-04-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2348 
 2349   * NEWS.rst, doc/source/modulefile.rst: doc: add mfile/rc interp diff table
 2350   in modulefile man
 2351 
 2352 2022-04-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2353 
 2354   * INSTALL.rst, doc/source/module.rst: doc: mention rc files are not for
 2355   module config
 2356 
 2357 2022-04-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2358 
 2359   * doc/source/modulefile.rst: doc: mention use/unuse in module modulefile man
 2360   section
 2361 
 2362   * NEWS.rst: doc: desc. coll file signature change in NEWS
 2363 
 2364 2022-04-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2365 
 2366   * testsuite/home/.module/coll48, testsuite/modules.00-init/005-init_ts.exp,
 2367   testsuite/modules.61-coll/010-init_ts.exp,
 2368   testsuite/modules.61-coll/020-savelist.exp,
 2369   testsuite/modules.61-coll/040-restore.exp,
 2370   testsuite/modules.61-coll/050-saverm.exp,
 2371   testsuite/modules.61-coll/060-saveshow.exp,
 2372   testsuite/modules.61-coll/999-cleanup.exp,
 2373   testsuite/modules.70-maint/154-is-saved.exp: ts: verify coll compat on all
 2374   coll subcmds
 2375 
 2376 2022-04-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2377 
 2378   * testsuite/modules.61-coll/080-access-coll.exp: ts: adapt existing tests
 2379   now coll compat is verified
 2380 
 2381 2022-04-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2382 
 2383   * .gitignore, Makefile, tcl/{coll.tcl => coll.tcl.in}: install: tcl/coll.tcl
 2384   should be built  Need to build tcl/coll.tcl as this part of the code need to
 2385   use the @MODULES_VERSION@ pattern.
 2386 
 2387 2022-04-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2388 
 2389   * tcl/coll.tcl, tcl/subcmd.tcl.in: Check collections are valid when
 2390   searching them  Update findCollections procedure to rely on a checkValidColl
 2391   procedure that verifies given collections can be read and are compatible
 2392   with current Modules version if they express a minimum version requirement.
 2393   As a side effect, when listing available collections with savelist
 2394   sub-command, now the collections that cannot be read are withdrawn from
 2395   result list.
 2396 
 2397 2022-04-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2398 
 2399   * tcl/coll.tcl, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Merge
 2400   getCollectionFilename into findCollections  Update findCollections procedure
 2401   to merge behavior of getCollectionFilename in it. If search argument is set
 2402   to 'exact' an exact collection search match is performed. If search argument
 2403   is set to 'name', only the name of the collection file is computed.
 2404 
 2405 2022-04-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2406 
 2407   * testsuite/home/coll40, testsuite/home/coll41, testsuite/home/coll42,
 2408   testsuite/home/coll43, testsuite/home/coll45, testsuite/home/coll46,
 2409   testsuite/modules.61-coll/010-init_ts.exp,
 2410   testsuite/modules.61-coll/030-save.exp,
 2411   testsuite/modules.61-coll/999-cleanup.exp: ts: update tag saved in
 2412   collection tests  Set temporarily file signature to 5.0 version. Will move
 2413   to 5.1 version with the release commit of 5.1.0.
 2414 
 2415   * tcl/coll.tcl, tcl/subcmd.tcl.in: Add Module header when saving coll with
 2416   tags  Record Modules magic cookie at the beginning of a collection when tags
 2417   are found set on the module to save. The #%Module file signature is followed
 2418   by the version number of Modules introducing the tag support.  This version
 2419   number is temporarily set to 5.0 for test purpose. It will be moved to 5.1,
 2420   on the release commit of 5.1.0.  If collection starts with a Modules file
 2421   signature, this header will not be reported on saveshow output.
 2422 
 2423   * tcl/coll.tcl, tcl/modfind.tcl.in: No empty entry in tag array for build
 2424   coll  Update getSimplifiedLoadedModuleList and
 2425   getLoadedModuleWithVariantSaveTagArrayList procedure to fill the tag array
 2426   only with entries for modules with tags applied to them. This way it is
 2427   possible to know if collection define tags by checking number if this array
 2428   is empty.
 2429 
 2430 2022-04-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2431 
 2432   * testsuite/modulefiles.3/tag/.modulerc,
 2433   testsuite/modules.61-coll/010-init_ts.exp,
 2434   testsuite/modules.61-coll/030-save.exp,
 2435   testsuite/modules.61-coll/999-cleanup.exp: ts: test saving nearly-forbidden
 2436   tag in collection
 2437 
 2438   * testsuite/home/coll45, testsuite/home/coll46,
 2439   testsuite/modules.61-coll/010-init_ts.exp,
 2440   testsuite/modules.61-coll/040-restore.exp,
 2441   testsuite/modules.61-coll/999-cleanup.exp: ts: test restore colls with
 2442   invalid tags saved
 2443 
 2444 2022-03-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2445 
 2446   * NEWS.rst: doc: desc. __MODULES_LMEXTRATAG/collection_pin_tag in NEWS
 2447 
 2448 2022-03-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2449 
 2450   * testsuite/modulefiles.3/tag/8.0,
 2451   testsuite/modules.50-cmds/465-tag-opt.exp: ts: test reload with extra tags
 2452   in 50/465
 2453 
 2454   * doc/source/design/module-tags.rst: doc: desc. collection_pin_tag in design
 2455   doc
 2456 
 2457   * testsuite/modules.61-coll/010-init_ts.exp,
 2458   testsuite/modules.61-coll/030-save.exp,
 2459   testsuite/modules.61-coll/040-restore.exp,
 2460   testsuite/modules.61-coll/999-cleanup.exp: ts: test save/restore with
 2461   collection_pin_tag enabled
 2462 
 2463 2022-03-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2464 
 2465   * tcl/modfind.tcl.in: Save all tags if collection_pin_tag is enabled  Update
 2466   the getSaveTagList procedure to return all defined tags for given module
 2467   when the collection_pin_tag configuration option is enabled. An exception is
 2468   made for nearly-forbidden tag which is not saved due to its temporal
 2469   meaning.
 2470 
 2471   * testsuite/modules.00-init/010-environ.exp,
 2472   testsuite/modules.70-maint/220-config.exp: ts: test collection_pin_tag
 2473   config option
 2474 
 2475   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 2476   MODULES_COLLECTION_PIN_TAG in man/changes
 2477 
 2478   * INSTALL.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
 2479   collection_pin_tag config in man/changes/INSTALL
 2480 
 2481   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 2482   add collection_pin_tag config to completion scripts
 2483 
 2484   * tcl/init.tcl.in: Add collection_pin_tag configuration option  Add
 2485   collection_pin_tag configuration option that controls whether all tags
 2486   should be recorded in collection or just the tags specifically set with
 2487   --tag option or describing loaded module state (like auto-loaded or
 2488   keep-loaded tags). Disabled by default. When configuration is modified it
 2489   sets the MODULES_COLLECTION_PIN_TAG environment variable.
 2490 
 2491   * testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
 2492   testsuite/modules.61-coll/010-init_ts.exp,
 2493   testsuite/modules.61-coll/030-save.exp,
 2494   testsuite/modules.61-coll/040-restore.exp,
 2495   testsuite/modules.61-coll/999-cleanup.exp: ts: add collection tests for
 2496   extra tag record
 2497 
 2498 2022-03-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2499 
 2500   * .aspell.en.pws, tcl/coll.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Only
 2501   record extra tags in collection  Update way collection is saved to only
 2502   record in it the extra tags set through --tag option and tags describing the
 2503   load state of a module like auto-loaded and keep-loaded.  The getSaveTagList
 2504   procedure is introduce to return the list of tag to save for each loaded
 2505   module.
 2506 
 2507   * testsuite/modules.61-coll/010-init_ts.exp,
 2508   testsuite/modules.61-coll/030-save.exp,
 2509   testsuite/modules.61-coll/040-restore.exp,
 2510   testsuite/modules.61-coll/999-cleanup.exp: ts: adapt --tag option collection
 2511   tests
 2512 
 2513   * testsuite/modules.50-cmds/465-tag-opt.exp: ts: adapt --tag option tests
 2514 
 2515 2022-03-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2516 
 2517   * testsuite/modules.70-maint/210-clear.exp,
 2518   testsuite/modules.70-maint/280-ml.exp: ts: adapt clear subcmd tests for
 2519   __MODULES_LMEXTRATAG
 2520 
 2521   * tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record extra tags in
 2522   __MODULES_LMEXTRATAG  Introduce __MODULES_LMEXTRATAG environment variable to
 2523   record the extra tags that have been set on loaded modules through the --tag
 2524   option.  Exclude from this variable the auto-loaded and keep-loaded tags
 2525   that may be in some situation set through --tag option.
 2526 
 2527   * testsuite/install.00-init/010-environ.exp,
 2528   testsuite/modules.00-init/010-environ.exp: ts: clear __MODULES_LMEXTRATAG
 2529   prior tests
 2530 
 2531   * .aspell.en.pws, doc/source/changes.rst, doc/source/design/module-tags.rst,
 2532   doc/source/module.rst: doc: desc. __MODULES_LMEXTRATAG in man/changes/design
 2533 
 2534 2022-03-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2535 
 2536   * .aspell.en.pws, NEWS.rst: doc: desc. sysconf error handling in ext lib
 2537 
 2538   * Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-sysconf.c,
 2539   testsuite/example/siteconfig.tcl-1,
 2540   testsuite/modules.00-init/005-init_ts.exp,
 2541   testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
 2542   against a failed sysconf call  Add an utility library that supersedes the
 2543   sysconf function from libc. The sysconf function from this added library
 2544   always returns an error (-1). It is used for coverage test of the sysconf
 2545   call made within the Envmodules_InitStateUsergroupsObjCmd function of the
 2546   Tcl extension library.
 2547 
 2548 2022-03-30  Lukáš Zaoral <lzaoral@redhat.com>
 2549 
 2550   * lib/envmodules.c: lib: handle sysconf failure in InitStateUsergroupsObjCmd
 2551   sysconf may fail to obtain the value of the NGROUPS_MAX variable.  In such
 2552   case, it returns -1 and sets errno to indicate the error.  Let's handle this
 2553   situation as the size argument of ckalloc is an unsigned int so the size of
 2554   the allocated memory would be UINT_MAX instead. Subsequently, getgroups
 2555   would fail with EINVAL as maxgroupsize is non-zero but less than the number
 2556   of GIDs that would have been returned.  Note that if sysconf returns -1 and
 2557   leaves errno intact, the given variable has no limit.  However, that does
 2558   not seem to be the case on any reasonable operating system [1].  Found by
 2559   Coverity.  Resolves: modules-5.0.1/lib/envmodules.c:355: negative_return_fn:
 2560   Function "sysconf(_SC_NGROUPS_MAX)" returns a negative number.
 2561   modules-5.0.1/lib/envmodules.c:355: assign: Assigning: "maxgroups" =
 2562   "sysconf(_SC_NGROUPS_MAX)". modules-5.0.1/lib/envmodules.c:368:
 2563   negative_returns: "maxgroups" is passed to a parameter that cannot be
 2564   negative. 366| 367|   #if defined (HAVE_GETGROUPS) 368|->    if ((ngroups =
 2565   getgroups(maxgroups, groups)) == -1) { 369|         Tcl_SetErrno(errno);
 2566   370|         Tcl_SetObjResult(interp,  [1] https://www.j3e.de/ngroups.html
 2567 
 2568 2022-03-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2569 
 2570   * init/python.py.in: init: explicitly send err output to sys.stderr in
 2571   python  Update python initialization script to explicitly send error output
 2572   to the sys.stderr channel (instead of parent process stderr channel) to be
 2573   able to catch this content.
 2574 
 2575 2022-03-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2576 
 2577   * testsuite/modules.70-maint/120-autoinit.exp: ts: update autoinit tests to
 2578   new python code
 2579 
 2580   * .aspell.en.pws, NEWS.rst, tcl/envmngt.tcl.in: Update module() python func
 2581   to send output to sys.stderr  Update definition of the module() python
 2582   function to explicitly send output to sys.stderr to get the ability to catch
 2583   this content.
 2584 
 2585   * MIGRATING.rst: doc: fix missing word in Lmod Tcl mfile support desc.
 2586 
 2587   * MIGRATING.rst: doc: desc. Lmod Tcl mfile support in MIGRATING
 2588 
 2589 2022-03-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2590 
 2591   * NEWS.rst, doc/source/modulefile.rst: doc: add Lmod Tcl mfile support
 2592   section in modulefile(4)
 2593 
 2594 2022-03-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2595 
 2596   * .aspell.en.pws, doc/source/design/lmod-tcl-modulefile-compat.rst: doc:
 2597   desc. pushenv in design notes
 2598 
 2599 2022-03-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2600 
 2601   * NEWS.rst: doc: desc. pushenv in NEWS
 2602 
 2603   * testsuite/install.00-init/010-environ.exp,
 2604   testsuite/modules.00-init/010-environ.exp: ts: clean family envvar prior
 2605   tests
 2606 
 2607   * testsuite/install.00-init/010-environ.exp,
 2608   testsuite/modules.00-init/010-environ.exp: ts: clean pushenv stack envvar
 2609   prior tests
 2610 
 2611 2022-03-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2612 
 2613   * testsuite/modulefiles.3/flatlcompat,
 2614   testsuite/modulefiles.3/lcompat/.modulerc,
 2615   testsuite/modulefiles.3/lcompat/1.10, testsuite/modulefiles.3/lcompat/1.11,
 2616   testsuite/modules.50-cmds/511-remove-property.exp,
 2617   testsuite/modules.50-cmds/520-pushenv.exp: ts: test pushenv mfcmd in 50/520
 2618 
 2619 2022-03-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2620 
 2621   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Ensure pushenv stack var is
 2622   cleared by other cmds  Like for the reference counter array, ensure the push
 2623   stack environment variable is cleared when targeted variable is handled by
 2624   append-path, prepend-path, remove-path, setenv and unsetenv modulefile
 2625   commands.
 2626 
 2627 2022-03-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2628 
 2629   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Add pushenv modulefile command
 2630   Introduce the pushenv modulefile command that sets an environment variable
 2631   with a value specified as argument but saves the previous value set to
 2632   restore it when modulefile is unloaded.  Use a __MODULES_PUSHENV_<VAR>
 2633   environment variable as a stack to record the previous values of environment
 2634   variable <VAR>. Each element in this Modules-specific variable is the
 2635   combination of the currently evaluating modulename and pushed value. When
 2636   unloading, the value set by this module is removed not the value on top of
 2637   the list.  When saving value set before any module, an empty module name is
 2638   used to push to the stack. When restoring this initial value, initial entry
 2639   in stack is also cleared (as no other module unload will unset it).  Follow
 2640   same implementation principle that setenv, with a dedicated procedure for
 2641   the unload and whatis modes.
 2642 
 2643 2022-03-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2644 
 2645   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 2646   __MODULES_PUSHENV_<VAR> in changes/man
 2647 
 2648   * doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. pushenv in
 2649   changes/man
 2650 
 2651 2022-03-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2652 
 2653   * contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for pushenv
 2654   mfcmd
 2655 
 2656   * INSTALL.rst, doc/source/_static/rtd_theme_overrides.css: doc: fix config
 2657   opt table layout in INSTALL  Update CSS and content of table to make default
 2658   value words correctly wrap and be able to see the 4th and 5th cols on small
 2659   screens.
 2660 
 2661 2022-03-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2662 
 2663   * .aspell.en.pws, INSTALL.rst, NEWS.rst,
 2664   doc/source/design/add-new-config-option.rst: doc: add Configuration options
 2665   section in INSTALL
 2666 
 2667 2022-03-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2668 
 2669   * doc/source/module.rst: doc: reorder silent_shell_debug config opt in
 2670   module(1)
 2671 
 2672   * doc/source/module.rst: doc: see linked envvar for details on configs
 2673 
 2674 2022-03-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2675 
 2676   * INSTALL.rst: doc: fix wrong default value for some install opts
 2677 
 2678   * CONTRIBUTING.rst: doc: use plural for Commit hook section in CONTRIBUTING
 2679 
 2680 2022-03-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2681 
 2682   * .aspell.en.pws, NEWS.rst, doc/source/conf.py, doc/source/module.rst: doc:
 2683   clarify instopt & default value of config opts
 2684 
 2685 2022-03-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2686 
 2687   * doc/source/module.rst: doc: MODULES_ML has to get set prior Modules init
 2688 
 2689   * INSTALL.rst, NEWS.rst: doc: clarify config opt linked to install opt
 2690 
 2691   * NEWS.rst, doc/source/module.rst: doc: clarify env vars to set prior
 2692   Modules initialization
 2693 
 2694   * doc/source/module.rst: doc: clarify module-generated env vars in module(1)
 2695 
 2696 2022-03-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2697 
 2698   * NEWS.rst, doc/source/module.rst: doc: clarify config opt linked to env var
 2699   Update the ENVIRONMENT section in module(1) man page to provide for each
 2700   Modules environment variable the name of the configuration option that could
 2701   be used to set the variable through the config sub-command.
 2702 
 2703 2022-03-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2704 
 2705   * INSTALL.rst, MIGRATING.rst, NEWS.rst, doc/source/changes.rst,
 2706   doc/source/cookbook/reduce-io-load.rst, doc/source/module.rst,
 2707   doc/source/modulefile.rst: doc: magic cookie means file signature  Update
 2708   documentation to clarify that the Modules magic cookie corresponds to a file
 2709   signature.
 2710 
 2711 2022-03-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2712 
 2713   * .gitattributes: install: exclude git hook stuff from git export
 2714 
 2715   * CONTRIBUTING.rst, INSTALL.rst, NEWS.rst, script/commit-msg: script: add
 2716   commit-msg hook script to check commit msg
 2717 
 2718   * .aspell.en.pws, .codespellrc, .gitignore, CONTRIBUTING.rst, NEWS.rst,
 2719   script/pre-commit: script: update pre-commit to spell check docs with Aspell
 2720 
 2721 2022-03-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2722 
 2723   * script/pre-commit: script: pre-commit warn if codespell not installed
 2724 
 2725   * NEWS.rst, doc/source/modulefile.rst: doc: desc. Dependencies between
 2726   modulefiles  Fixes #431. Fixes #433.
 2727 
 2728 2022-03-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2729 
 2730   * CONTRIBUTING.rst, MIGRATING.rst, NEWS.rst, README.md, doc/source/FAQ.rst,
 2731   doc/source/changes.rst, doc/source/cookbook/compiler-etc-dependencies.rst,
 2732   doc/source/design/hide-or-forbid-modulefile.rst,
 2733   doc/source/design/output-configuration.rst,
 2734   .../design/source-shell-script-in-modulefile.rst,
 2735   doc/source/design/variants.rst, doc/source/index.rst: doc: fix typos found
 2736   with Aspell
 2737 
 2738 2022-03-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2739 
 2740   * CONTRIBUTING.rst, NEWS.rst, script/pre-commit: script: add pre-commit
 2741   script to verify commits
 2742 
 2743   * NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
 2744   testsuite/modules.70-maint/310-sh-to-mod.exp: Handle empty fish shell
 2745   function in sh-to-mod/source-sh  Update the sh-to-mod and source-sh
 2746   mechanism to handle fish shell function with an empty body.
 2747 
 2748   * NEWS.rst: doc: desc. recent sh-to-mod/source-sh fixes in NEWS
 2749 
 2750   * tcl/mfinterp.tcl.in, testsuite/install.00-init/091-source-sh.exp,
 2751   testsuite/modules.70-maint/310-sh-to-mod.exp: Include private functions in
 2752   fish sh-to-mod analysis  Update the environment analysis made for sh-to-mod
 2753   sub-command and source-sh modulefile command for fish shell to include the
 2754   private functions. Catch this way all definition that may be used to set
 2755   shell completion.
 2756 
 2757 2022-02-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2758 
 2759   * testsuite/install.00-init/091-source-sh.exp: ts: test unload of source-sh
 2760   mods in install ts
 2761 
 2762 2022-02-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2763 
 2764   * .github/workflows/windows_tests.yaml: gh: upgrade to python 3.9 on Cygwin
 2765   Seem a new python37-sphinx release on Cygwin has broken dependencies, so
 2766   upgrate Cygwin test cases to python 3.9 which is the recommanded version.
 2767 
 2768   * .codespellrc: codespell: ignore spack/miniconda3/OpenFOAM-dev content
 2769 
 2770   * .cirrus.yml, .gitignore, Makefile,
 2771   testsuite/install.00-init/091-source-sh.exp,
 2772   testsuite/modulefiles.3/source-sh/openfoam: install/ts: test source-sh over
 2773   OpenFOAM scripts
 2774 
 2775 2022-02-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2776 
 2777   * testsuite/install.00-init/091-source-sh.exp: ts: test source-sh over Conda
 2778   script on ksh/zsh/tcsh/fish
 2779 
 2780   * tcl/mfinterp.tcl.in: Fix csh alias detection on source-sh  Alias
 2781   definition may sometimes be enclosed in parenthesis on csh shell. Fix alias
 2782   parsing regexp to support such definition.  Useful for Conda initialization
 2783   script for csh shell: conda shell alias definition is presented by csh shell
 2784   enclosed in parenthesis.  Fixes #434.
 2785 
 2786   * .cirrus.yml, .gitignore, Makefile: install/ts: fetch/install Conda/Spack
 2787   for source-sh tests  Add directives into Makefile to fetch and install Spack
 2788   and Conda in order to test source-sh feature against their profile scripts.
 2789 
 2790   * testsuite/example/sh-to-mod.fish: ts: test fish complete def without -c
 2791   when fish>=3.2  Test fish shell completion definition without -c/--complete
 2792   option when fish is >=3.2 instead of >=3.0.
 2793 
 2794   * .cirrus.yml, testsuite/install.00-init/091-source-sh.exp,
 2795   testsuite/modulefiles.3/source-sh/conda: ts: test source-sh over Conda
 2796   scripts in install ts
 2797 
 2798   * .cirrus.yml: cirrus: upgrade linux test env to ubuntu 20.04
 2799 
 2800 2022-02-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2801 
 2802   * testsuite/modules.70-maint/120-autoinit.exp: ts: fix autoinit tests after
 2803   modulecmd.tcl output quoting
 2804 
 2805   * testsuite/install.00-init/020-module.exp,
 2806   testsuite/install.00-init/090-sh-to-mod.exp,
 2807   testsuite/modulefiles.3/noglobeval/1.0: ts: update install tests after
 2808   modulecmd.tcl output quoting
 2809 
 2810   * .github/workflows/linux_tests.yaml, INSTALL.rst, Makefile,
 2811   Makefile.inc.in, NEWS.rst, configure, doc/source/changes.rst,
 2812   doc/source/module.rst, init/Makefile, init/fish_completion,
 2813   init/zsh-functions/_module.in, site.exp.in, tcl/envmngt.tcl.in,
 2814   tcl/init.tcl.in, testsuite/example/initrc.in,
 2815   testsuite/install.00-init/010-environ.exp,
 2816   testsuite/modules.00-init/010-environ.exp,
 2817   testsuite/modules.70-maint/120-autoinit.exp,
 2818   testsuite/modules.70-maint/220-config.exp: Revert work on noglob_eval_shells
 2819   config option  Remove entirely the work on the noglob_eval_shells option as
 2820   enclosing in quotes the generated output of modulecmd.tcl to pass it to the
 2821   eval command is equivalent to disable the pathname expansion mechanism of
 2822   sh-kind shells.
 2823 
 2824   * init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: init: translate ``
 2825   into $() for sh-kind shells
 2826 
 2827   * doc/source/FAQ.rst, doc/source/module.rst: doc: translate `` into $() for
 2828   sh-kind shells
 2829 
 2830 2022-02-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2831 
 2832   * tcl/envmngt.tcl.in: Translate `` into $() for sh-kind shells  As the
 2833   module shell function code is currently updated for sh-kind shells, take
 2834   this opportunity to translate the `cmd` execution syntax into the more
 2835   modern $(cmd) syntax.
 2836 
 2837 2022-02-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2838 
 2839   * testsuite/install.00-init/091-source-sh.exp: ts: test ksh/zsh over Spack
 2840   scripts in install ts
 2841 
 2842   * tcl/envmngt.tcl.in: Enclose modulecmd.tcl output in quotes on sh-kind
 2843   shells  Update the module shell function definition for sh-kind shell to
 2844   enclose the output generated by modulecmd.tcl in quotes in order to pass it
 2845   to the eval command.  Quoting code to pass it to eval brings correctness to
 2846   the definition of shell functions without harming already well functionning
 2847   definition. Regular shell function definition could now be correctly defined
 2848   in user environment: no more need to get each command line in these function
 2849   ending with a ';' character.  Same mechanism was applied in initialization
 2850   script to evaluate the code produced by the autoinit sub-command.  Multiple
 2851   function-definition issues spotted when using source-sh across environment
 2852   setting script shell are fixed with this change.  Moreover, all the
 2853   noglob_eval_shells work is made useless with this change as no globbing is
 2854   applyed to the code produced by modulecmd.tcl as it is now enclosed in
 2855   quotes.
 2856 
 2857 2022-02-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2858 
 2859   * testsuite/example/sh-to-mod.fish, testsuite/example/sh-to-mod.sh,
 2860   testsuite/install.00-init/090-sh-to-mod.exp,
 2861   testsuite/modules.50-cmds/078-refresh.exp,
 2862   testsuite/modules.50-cmds/400-source-sh.exp,
 2863   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test wildcard char in func
 2864   on sh-to-mod tests
 2865 
 2866 2022-02-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2867 
 2868   * testsuite/bin/install_test_csh, testsuite/example/sh-to-mod.csh,
 2869   testsuite/example/sh-to-mod.fish, testsuite/example/sh-to-mod.sh,
 2870   testsuite/install.00-init/090-sh-to-mod.exp,
 2871   testsuite/modules.50-cmds/400-source-sh.exp,
 2872   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test wildcard char in
 2873   envvar on sh-to-mod tests
 2874 
 2875 2022-02-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2876 
 2877   * .cirrus.yml, testsuite/install.00-init/091-source-sh.exp,
 2878   testsuite/modulefiles.3/source-sh/spack: ts: test source-sh over Spack
 2879   scripts in install ts
 2880 
 2881   * doc/source/changes.rst: doc: desc. MODULES_NOGLOB_EVAL_SHELLS in changes
 2882 
 2883   * testsuite/example/sh-to-mod.fish,
 2884   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test sh-to-mod against
 2885   fish nested func/_ in name
 2886 
 2887 2022-02-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2888 
 2889   * tcl/mfinterp.tcl.in: Correctly escape [ and | in builtin fish funcs
 2890   Update execShAndGetEnv to correctly escape the '[' and '|' characters in
 2891   fish shell code to filter builtin commands. These character were not
 2892   correctly escaped previously (replaced by '$1').
 2893 
 2894   * tcl/mfinterp.tcl.in: Remove dup ';' in execShAndGetEnv getfunc fish code
 2895 
 2896   * NEWS.rst, tcl/mfinterp.tcl.in: Fix fish builtin func withdrawal on
 2897   sh-to-mod/source-sh  Fix the fish code to withdraw builtin functions to
 2898   compare functions defined before and after fish script shell execution in
 2899   execShAndGetEnv procedure.  Previous regexp was not matching the full
 2900   string, so every function whose name contained a substring equal to the name
 2901   of a builtin function (like '_') where filtered.
 2902 
 2903   * NEWS.rst, doc/source/design/source-shell-script-in-modulefile.rst,
 2904   tcl/mfinterp.tcl.in: Support fish nested function on sh-to-mod/source-sh  On
 2905   fish shell, function definition can be embedded inside function definition.
 2906   Update the execShAndGetEnv procedure to add a string separated after each
 2907   function definition (%ModulesSubShToMod%) to clearly delimitate the shell
 2908   function to analyse and report and skip the definition of nested functions.
 2909 
 2910 2022-02-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2911 
 2912   * .cirrus.yml, .github/workflows/linux_tests.yaml: cirrus/gh: remove broken
 2913   snapd fish config  Remove snapd file that breaks fish shell on bionic (see
 2914   https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1961365).
 2915 
 2916   * testsuite/install.00-init/020-module.exp,
 2917   testsuite/modulefiles.3/noglobeval/1.0: ts: add install tests for
 2918   noglob_eval_shells
 2919 
 2920   * .github/workflows/linux_tests.yaml, testsuite/example/initrc.in,
 2921   testsuite/modules.70-maint/120-autoinit.exp: ts: test noglob_eval_shells
 2922   over autoinit subcmd
 2923 
 2924 2022-02-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2925 
 2926   * testsuite/install.00-init/010-environ.exp,
 2927   testsuite/modules.00-init/010-environ.exp,
 2928   testsuite/modules.70-maint/220-config.exp: ts: test noglob_eval_shells
 2929   config option
 2930 
 2931 2022-02-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2932 
 2933   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
 2934   noglob_eval_shells in man/changes/NEWS
 2935 
 2936 2022-02-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2937 
 2938   * INSTALL.rst: doc: desc. --with-noglob-eval-shells option in INSTALL
 2939 
 2940   * tcl/envmngt.tcl.in: Disable pathname expansion prior shell eval  Add code
 2941   in module shell function (for shells listed in noglob_eval_shells) to
 2942   disable pathname expansion for the time of produced shell code evaluation.
 2943 
 2944 2022-02-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2945 
 2946   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 2947   add noglob_eval_shells config to completion scripts
 2948 
 2949   * Makefile, Makefile.inc.in, configure, site.exp.in, tcl/init.tcl.in:
 2950   install: add --with-noglob-eval-shells configure opt  Introduce the
 2951   --with-noglob-eval-shells configure option to choose at installation time if
 2952   the pathname expansion should be disabled or not in the module function to
 2953   evaluate shell code produced by modulecmd.tcl, for the shells listed in
 2954   option value.
 2955 
 2956   * tcl/init.tcl.in: Add noglob_eval_shells configuration option  Add
 2957   noglob_eval_shells configuration option that controls whether or not the
 2958   module shell function should disable pathname expansion to evaluate shell
 2959   code produced by modulecmd.tcl script.  Enabled by default for sh, bash ans
 2960   ksh shells. Support also zsh shell. When configuration option is modified it
 2961   sets the MODULES_NOGLOB_EVAL_SHELLS environment variable.  Pathname
 2962   expansion is primarily an issue of bash and ksh93 shells when evaluating
 2963   shell function body code. It also impacts bash-flavored sh shells. So the
 2964   option is provided to support any shell from the sh family, but disabled by
 2965   default for shells not having the globbing issue (zsh).
 2966 
 2967 2022-02-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2968 
 2969   * .codespellrc: Add codespell configuration for the project
 2970 
 2971   * contrib/modulefiles/openwin, testsuite/modules.50-cmds/190-load.exp: ts:
 2972   fix some other typos in tests
 2973 
 2974   * MIGRATING.rst, NEWS.rst, doc/source/cookbook/sticky-modules.rst,
 2975   doc/source/design/sticky-modules.rst, doc/source/design/variants.rst,
 2976   doc/source/module.rst, tcl/modeval.tcl, tcl/subcmd.tcl.in,
 2977   testsuite/modules.50-cmds/460-sticky.exp,
 2978   testsuite/modules.50-cmds/461-super-sticky.exp,
 2979   testsuite/modules.50-cmds/462-sticky-corner.exp,
 2980   testsuite/modules.50-cmds/475-variant-tag.exp,
 2981   testsuite/modules.61-coll/040-restore.exp: Fix stickiness typos  Fixes #442.
 2982 
 2983 2022-02-17  Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
 2984 
 2985   * INSTALL.rst, contrib/modulefiles/scheme/racket/5.0.2,
 2986   doc/source/cookbook/new-features-without-breaking-old-module.rst,
 2987   doc/source/design/extended-default.rst,
 2988   doc/source/design/hide-or-forbid-modulefile.rst,
 2989   doc/source/design/insensitive-case.rst,
 2990   doc/source/design/sticky-modules.rst: Fix typos not found by codespell
 2991 
 2992   * contrib/modulefiles/gnu, contrib/modulefiles/openwin: contrib: fix
 2993   additional typos
 2994 
 2995 2022-02-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 2996 
 2997   * contrib/modulefiles/java/6/35, contrib/modulefiles/java/6/38,
 2998   contrib/modulefiles/java/7/07, contrib/modulefiles/java/7/11,
 2999   contrib/modulefiles/openwin, contrib/readme.txt,
 3000   contrib/rpm/environment-modules.spec.in: contrib: fix typos found in several
 3001   files
 3002 
 3003   * NEWS.rst: doc: fix typos in NEWS
 3004 
 3005   * testsuite/modulefiles/module/unk,
 3006   testsuite/modules.50-cmds/150-module.exp,
 3007   testsuite/modules.50-cmds/170-swap.exp,
 3008   testsuite/modules.50-cmds/180-unload.exp,
 3009   testsuite/modules.70-maint/055-whatis.exp,
 3010   testsuite/modules.70-maint/070-display.exp,
 3011   testsuite/modules.70-maint/080-help.exp,
 3012   testsuite/modules.70-maint/085-test.exp: ts: fix NonExistent typo in several
 3013   tests  Fixes #439
 3014 
 3015 2022-02-16  Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
 3016 
 3017   * init/bash.in, init/cmake.in, init/fish.in, init/ksh.in, init/perl.pm.in,
 3018   init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
 3019   init/zsh.in: init: fix typo in comment
 3020 
 3021 2022-02-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3022 
 3023   * testsuite/modules.00-init/120-siteconfig.exp,
 3024   testsuite/modules.00-init/140-color.exp: ts: fix 00/{120,140} tests after
 3025   typos fix
 3026 
 3027   * NEWS.rst: doc: desc. typos fix in NEWS
 3028 
 3029 2022-02-13  Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
 3030 
 3031   * .github/ISSUE_TEMPLATE/bug_report.md, Makefile.inc.in, README.md,
 3032   configure, .../guide/get_started/08-guide_modulefile_search-alias.sh,
 3033   doc/example/compiler-etc-dependencies/homebrewed/bar/common,
 3034   doc/example/expose-procs-vars-to-modulefiles/siteconfig.tcl,
 3035   doc/example/inhibit-report-info/siteconfig.tcl,
 3036   doc/example/unload-firstly-loaded/siteconfig.tcl, doc/source/FAQ.rst,
 3037   doc/source/changes.rst, doc/source/cookbook/compiler-etc-dependencies.rst,
 3038   doc/source/cookbook/modulefiles-in-git.rst,
 3039   .../cookbook/new-features-without-breaking-old-module.rst,
 3040   doc/source/design/default-latest-version-specifiers.rst,
 3041   doc/source/design/hide-or-forbid-modulefile.rst,
 3042   doc/source/design/lmod-tcl-modulefile-compat.rst,
 3043   doc/source/design/sticky-modules.rst, doc/source/design/variants.rst,
 3044   doc/source/module.rst, script/mlprof, script/mpub, tcl/coll.tcl,
 3045   tcl/init.tcl.in, tcl/modfind.tcl.in, testsuite/config/base-config.exp,
 3046   testsuite/example/siteconfig.tcl-1,
 3047   testsuite/install.00-init/005-init_ts.exp,
 3048   testsuite/install.00-init/070-stderrtty.exp,
 3049   testsuite/modulefiles/append/1.7, testsuite/modulefiles/append/2.4,
 3050   testsuite/modulefiles/help/2.0, testsuite/modulefiles/info/mode3,
 3051   testsuite/modulefiles/info/mode4, testsuite/modulefiles/info/userexp,
 3052   testsuite/modulefiles/loc_dv1/1.0, testsuite/modulefiles/loc_dv1/2.0,
 3053   testsuite/modulefiles/loc_dv1/3.0, testsuite/modulefiles/loc_dv2/1.0,
 3054   testsuite/modulefiles/loc_dv2/2.0, testsuite/modulefiles/loc_dv3/1.0,
 3055   testsuite/modulefiles/loc_dv3/2.0, testsuite/modulefiles/loc_dv4/1.0,
 3056   testsuite/modulefiles/loc_dv4/2.0, testsuite/modulefiles/loc_dv6/1.0,
 3057   testsuite/modulefiles/loc_dv7/1.0, testsuite/modulefiles/loc_dv7/3.0,
 3058   testsuite/modulefiles/loc_dv8/1.0, testsuite/modulefiles/loc_dv8/2.0,
 3059   testsuite/modulefiles/loc_dv9/.version, testsuite/modulefiles/loc_dv9/1.0,
 3060   testsuite/modulefiles/loc_dv9/2.0, testsuite/modulefiles/loc_dvv1/.common,
 3061   testsuite/modulefiles/loc_dvv1/.modulerc,
 3062   testsuite/modulefiles/loc_dvv1/.version, testsuite/modulefiles/loc_fq/1.0,
 3063   testsuite/modulefiles/loc_fq/2.0, testsuite/modulefiles/loc_rc5/1.0,
 3064   testsuite/modulefiles/loc_rc5/2.0, testsuite/modulefiles/loc_sym/alias3,
 3065   testsuite/modulefiles/loc_sym/alias5, testsuite/modulefiles/loc_sym/alias8,
 3066   testsuite/modulefiles/loc_sym/getvers10,
 3067   testsuite/modulefiles/loc_sym/getvers5,
 3068   testsuite/modulefiles/loc_sym/getvers6,
 3069   testsuite/modulefiles/loc_sym/getvers7,
 3070   testsuite/modulefiles/loc_sym/versinf3,
 3071   testsuite/modulefiles/loc_sym/versinf4,
 3072   testsuite/modulefiles/loc_sym/versinf5,
 3073   testsuite/modulefiles/loc_sym/version11,
 3074   testsuite/modulefiles/loc_sym/version12,
 3075   testsuite/modulefiles/loc_sym/version13,
 3076   testsuite/modulefiles/loc_sym/version14,
 3077   testsuite/modulefiles/loc_sym/version2,
 3078   testsuite/modulefiles/loc_sym/version3,
 3079   testsuite/modulefiles/loc_sym/version4,
 3080   testsuite/modulefiles/loc_sym/version6,
 3081   testsuite/modulefiles/loc_sym/version7,
 3082   testsuite/modulefiles/loc_sym/version8,
 3083   testsuite/modulefiles/loc_sym/version9, testsuite/modulefiles/spread/1.0,
 3084   testsuite/modulefiles/spread/2.0, testsuite/modulefiles/spread/3.0,
 3085   testsuite/modulefiles/spread/4.0, testsuite/modulefiles/spread/5.0,
 3086   testsuite/modulefiles/spread/6.0, testsuite/modulefiles/spread/7.0,
 3087   testsuite/modulefiles/spread/8.0, testsuite/modulefiles/spreadrc/dir1/1.0,
 3088   testsuite/modulefiles/spreadrc/dir2/1.0,
 3089   testsuite/modulefiles/spreadrc/dir3/1.0,
 3090   testsuite/modulefiles/spreadrc/dir4/1.0,
 3091   testsuite/modulefiles/spreadrc/dir5/1.0,
 3092   testsuite/modulefiles/spreadrc/dir6/1.0,
 3093   testsuite/modulefiles/spreadrc/dir7/1.0,
 3094   testsuite/modulefiles/spreadrc/dir8/1.0,
 3095   testsuite/modules.00-init/005-init_ts.exp,
 3096   testsuite/modules.00-init/100-pager.exp,
 3097   testsuite/modules.00-init/120-siteconfig.exp,
 3098   testsuite/modules.00-init/130-auto_handling.exp,
 3099   testsuite/modules.00-init/140-color.exp,
 3100   testsuite/modules.10-use/030-use.exp,
 3101   testsuite/modules.20-locate/030-defvers.exp,
 3102   testsuite/modules.20-locate/031-defvers2.exp,
 3103   testsuite/modules.20-locate/038-defcontext.exp,
 3104   testsuite/modules.20-locate/065-rcerrs.exp,
 3105   testsuite/modules.20-locate/069-cross.exp,
 3106   testsuite/modules.20-locate/110-hide.exp,
 3107   testsuite/modules.20-locate/111-hide-hard.exp,
 3108   testsuite/modules.20-locate/115-forbid.exp,
 3109   testsuite/modules.20-locate/118-hidden-loaded.exp,
 3110   testsuite/modules.20-locate/119-hide-cascading.exp,
 3111   testsuite/modules.50-cmds/035-unsetenv-undo.exp,
 3112   testsuite/modules.50-cmds/040-append.exp,
 3113   testsuite/modules.50-cmds/076-alias-sub.exp,
 3114   testsuite/modules.50-cmds/084-info-mode-exp.exp,
 3115   testsuite/modules.50-cmds/085-info-flags.exp,
 3116   testsuite/modules.50-cmds/100-loglevel.exp,
 3117   testsuite/modules.50-cmds/170-swap.exp,
 3118   testsuite/modules.50-cmds/180-unload.exp,
 3119   testsuite/modules.50-cmds/190-load.exp,
 3120   testsuite/modules.50-cmds/371-deps2.exp,
 3121   testsuite/modules.50-cmds/372-deps3.exp,
 3122   testsuite/modules.50-cmds/375-deps6.exp,
 3123   testsuite/modules.50-cmds/376-deps7.exp,
 3124   testsuite/modules.50-cmds/376-switch.exp,
 3125   testsuite/modules.50-cmds/377-deps8.exp,
 3126   testsuite/modules.50-cmds/378-sametarget.exp,
 3127   testsuite/modules.50-cmds/380-altname.exp,
 3128   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 3129   testsuite/modules.61-coll/020-savelist.exp,
 3130   testsuite/modules.61-coll/040-restore.exp,
 3131   testsuite/modules.61-coll/060-saveshow.exp,
 3132   testsuite/modules.70-maint/030-purge.exp,
 3133   testsuite/modules.70-maint/040-list.exp,
 3134   testsuite/modules.70-maint/048-listlongno.exp,
 3135   testsuite/modules.70-maint/056-whatis-nullpath.exp,
 3136   testsuite/modules.70-maint/060-apropos.exp,
 3137   testsuite/modules.70-maint/070-display.exp,
 3138   testsuite/modules.70-maint/080-help.exp,
 3139   testsuite/modules.70-maint/120-autoinit.exp,
 3140   testsuite/modules.70-maint/200-errdisp.exp,
 3141   testsuite/modules.70-maint/271-adv_version_spec-in.exp,
 3142   testsuite/modules.70-maint/272-adv_version_spec-range.exp,
 3143   testsuite/modules.70-maint/273-adv_version_spec-space.exp,
 3144   testsuite/modules.70-maint/310-sh-to-mod.exp,
 3145   testsuite/modules.70-maint/320-tags.exp,
 3146   testsuite/modules.70-maint/350-term_width.exp,
 3147   testsuite/modules.70-maint/360-avail_output.exp,
 3148   testsuite/modules.70-maint/999-cleanup.exp,
 3149   testsuite/modules.90-avail/020-single.exp,
 3150   testsuite/modules.90-avail/030-multiple.exp,
 3151   testsuite/modules.90-avail/040-wild.exp,
 3152   testsuite/modules.90-avail/050-long.exp,
 3153   testsuite/modules.90-avail/060-empty.exp,
 3154   testsuite/modules.90-avail/070-full.exp,
 3155   testsuite/modules.91-sort/020-avail.exp: Fix typos found by codespell
 3156 
 3157 2022-02-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3158 
 3159   * .cirrus.yml: cirrus: move from centos8 to rockylinux8
 3160 
 3161 2022-02-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3162 
 3163   * MIGRATING.rst: doc: desc. shell completion features in MIGRATING
 3164 
 3165 2022-02-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3166 
 3167   * testsuite/modules.50-cmds/400-source-sh.exp: ts: add refresh tests on
 3168   source-sh in 50/400
 3169 
 3170   * doc/source/design/shell-completion.rst,
 3171   .../design/source-shell-script-in-modulefile.rst,
 3172   testsuite/modules.50-cmds/400-source-sh.exp,
 3173   testsuite/modules.50-cmds/540-complete.exp: doc/ts: completion is first
 3174   cleared before set on fish
 3175 
 3176   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Ensure pre-existing fish
 3177   completion is cleared  When defining completion for a given command on fish
 3178   shell, start by clearing any potential previous completion definition.
 3179   Modulefile should this way provide the full completion definition for
 3180   command and cannot rely on partial definition coming from other sides.
 3181 
 3182 2022-02-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3183 
 3184   * NEWS.rst: doc: desc. completion support on source-sh/sh-to-mod in NEWS
 3185 
 3186   * .../design/source-shell-script-in-modulefile.rst: doc: desc. shell
 3187   completion support on source-sh in design
 3188 
 3189   * doc/source/changes.rst: doc: desc. completion support on
 3190   sh-to-mod/source-sh in changes
 3191 
 3192   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc. completion
 3193   support on sh-to-mod/source-sh man
 3194 
 3195 2022-02-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3196 
 3197   * testsuite/example/sh-to-mod.fish, testsuite/modulefiles.2/source-sh/7.2,
 3198   testsuite/modules.50-cmds/400-source-sh.exp,
 3199   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test fish complete on
 3200   sh-to-mod/source-sh
 3201 
 3202 2022-02-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3203 
 3204   * testsuite/example/sh-to-mod.sh, testsuite/modulefiles.2/source-sh/7.1,
 3205   testsuite/modules.50-cmds/400-source-sh.exp,
 3206   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test bash complete on
 3207   sh-to-mod/source-sh
 3208 
 3209 2022-02-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3210 
 3211   * testsuite/example/sh-to-mod.csh, testsuite/modulefiles.2/source-sh/7.0,
 3212   testsuite/modulefiles.2/source-sh/8.0,
 3213   testsuite/modules.00-init/005-init_ts.exp,
 3214   testsuite/modules.50-cmds/400-source-sh.exp,
 3215   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test tcsh complete on
 3216   sh-to-mod/source-sh
 3217 
 3218 2022-02-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3219 
 3220   * tcl/mfinterp.tcl.in: Tcsh support for complete/uncomplete changes on
 3221   sh-to-mod  Update execShAndGetEnv procedure to add support for complete and
 3222   uncomplete changes on sh-to-mod for tcsh shell.
 3223 
 3224   * tcl/mfinterp.tcl.in: Fish support for complete/uncomplete changes on
 3225   sh-to-mod  Update execShAndGetEnv procedure to add support for complete and
 3226   uncomplete changes on sh-to-mod for fish shell.
 3227 
 3228   * tcl/mfinterp.tcl.in: Bash support for complete/uncomplete changes on
 3229   sh-to-mod  Update execShAndGetEnv procedure to add support for complete and
 3230   uncomplete changes on sh-to-mod for bash shell.
 3231 
 3232   * tcl/mfinterp.tcl.in, tcl/modfind.tcl.in: Support for complete/uncomplete
 3233   changes on sh-to-mod  Update the sh-to-mod and execShAndGetEnv procedures to
 3234   analyze complete and uncomplete changes on sourced shell script and render
 3235   the corresponding modulefile commands.  Add basic code for shells that do no
 3236   support complete/uncomplete environment changes.
 3237 
 3238 2022-02-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3239 
 3240   * testsuite/install.00-init/020-module.exp,
 3241   testsuite/modulefiles.3/complete/1.0, testsuite/modulefiles.3/complete/1.1:
 3242   ts: add complete test in install ts
 3243 
 3244 2022-02-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3245 
 3246   * testsuite/modulefiles.3/complete/.modulerc,
 3247   testsuite/modulefiles.3/complete/1.1, testsuite/modulefiles.3/complete/1.2,
 3248   testsuite/modules.50-cmds/541-uncomplete.exp: ts: add tests for uncomplete
 3249   mfcmd in 50/541
 3250 
 3251 2022-01-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3252 
 3253   * testsuite/modulefiles.3/complete/.modulerc,
 3254   testsuite/modulefiles.3/complete/1.0, testsuite/modulefiles.3/complete/1.2,
 3255   testsuite/modulefiles.3/complete/2.0,
 3256   testsuite/modules.50-cmds/540-complete.exp: ts: add tests for complete mfcmd
 3257   in 50/540
 3258 
 3259 2022-01-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3260 
 3261   * contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for
 3262   complete/uncomplete
 3263 
 3264   * doc/source/modulefile.rst: doc: desc. complete/uncomplete in man
 3265 
 3266   * NEWS.rst, doc/source/changes.rst: doc: desc. complete/uncomplete in
 3267   NEWS/changes
 3268 
 3269   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: Add
 3270   complete/uncomplete modulefile commands  Introduce the complete and
 3271   uncomplete modulefile commands to define completion mechanism on running
 3272   shell. It supports only shell with completion capabilities that could be
 3273   defined with shell commands: bash, tcsh and fish.  complete command takes a
 3274   shell name as first argument to apply completion specification only if
 3275   currently running shell corresponds to this shell name set as argument. This
 3276   is done as completion implementation is really different from one shell to
 3277   another. Also the arguments passed after command name are specific of the
 3278   shell and are not checked by module command.  When unloading module,
 3279   complete becomes uncomplete. uncomplete can also be set as an independent
 3280   modulefile command and only acts on load evaluation module. complete is also
 3281   evaluated in refresh evaluation mode to push completion definition in
 3282   sub-shells for instance.  Multiple completion definition for the same
 3283   command may be defined and will be applied to shell. Some shell, like fish,
 3284   needs multiple complete commands to fully define all parameters for the
 3285   completion of a single command.
 3286 
 3287   * NEWS.rst, doc/source/design/shell-completion.rst: doc: add
 3288   shell-completion design notes
 3289 
 3290 2022-01-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3291 
 3292   * testsuite/modules.70-maint/230-verbosity.exp: ts: check trace of
 3293   dynamically defined procs
 3294 
 3295 2022-01-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3296 
 3297   * testsuite/modulefiles.3/list/1.0, testsuite/modulefiles.3/list/2.0,
 3298   testsuite/modulefiles.3/variant/6.0,
 3299   testsuite/modules.00-init/140-color.exp,
 3300   testsuite/modules.50-cmds/530-module-list.exp,
 3301   testsuite/modules.70-maint/290-json.exp,
 3302   testsuite/modules.70-maint/361-list_output.exp,
 3303   testsuite/modules.70-maint/400-list-search.exp: ts: test pattern search on
 3304   list sub-cmd
 3305 
 3306 2022-01-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3307 
 3308   * doc/source/module.rst: doc: improve pattern search desc. on avail subcmd
 3309 
 3310 2022-01-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3311 
 3312   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. list
 3313   filtering in NEWS/changes/man
 3314 
 3315 2022-01-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3316 
 3317   * testsuite/modules.00-init/005-init_ts.exp,
 3318   testsuite/modules.00-init/071-args.exp,
 3319   testsuite/modules.50-cmds/152-module-emptyarg.exp,
 3320   testsuite/modules.70-maint/190-emptyarg.exp: ts: adapt existing tests now
 3321   list accepts args
 3322 
 3323 2022-01-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3324 
 3325   * tcl/init.tcl.in, tcl/subcmd.tcl.in: Add search capabilities to list subcmd
 3326   When module specification is passed to the list sub-command, only output the
 3327   loaded modules that matches at least one of these specification (OR
 3328   operation).  Sub-command header message is adapted when module
 3329   specifications are passed to the sub-command. However same header message is
 3330   reported if there is no loaded module to report from the start.  Search
 3331   capabilities rely on the modEq comparison procedure, so it takes into
 3332   account the search_match mode (starts-with/contains), the alternative names
 3333   set over loaded modules and the variant defined.  Only the first specified
 3334   search pattern is set for SGR highlight due to the current limitation of
 3335   reportModules procedure (which only accepts one mod argument).
 3336 
 3337 2022-01-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3338 
 3339   * tcl/modspec.tcl, testsuite/example/siteconfig.tcl-1,
 3340   testsuite/modules.00-init/120-siteconfig.exp: Restore psuf arg on modEq proc
 3341   Pattern suffix is useful again on modEq comparison procedure due to the
 3342   introduction of search capabilities on the list sub-command.
 3343 
 3344 2022-01-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3345 
 3346   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow search match
 3347   option on list subcmd  Allow to pass the search match options (-S/-C) to the
 3348   list sub-command.
 3349 
 3350   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow mod spec as
 3351   argument to list subcmd  Allow the list sub-command to receive module
 3352   specifications as argument.
 3353 
 3354   * tcl/modspec.tcl: Trace dynamically defined procs in debug2 mode  When
 3355   verbosity is set to debug2 or an higher mode, also add trace to the
 3356   procedure that are dynamically generated during the modulecmd.tcl run.
 3357 
 3358 2022-01-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3359 
 3360   * tcl/main.tcl.in, testsuite/modules.00-init/090-switches.exp: Add
 3361   --initial_load cmd-line option  Add dummy support for the --initial_load
 3362   command-line option for compatiblity with script written for Lmod.  Goal
 3363   here is just to avoid error when this option is used.
 3364 
 3365   * tcl/main.tcl.in, testsuite/modules.00-init/090-switches.exp: Add
 3366   --no_redirect cmd-line option  Add dummy support for the --no_redirect
 3367   command-line option for compatiblity with script written for Lmod.  Goal
 3368   here is to avoid error when this option is used. Support not added within
 3369   module shell function.
 3370 
 3371 2022-01-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3372 
 3373   * MIGRATING.rst: doc: add ref to reduce-io-load recipe in MIGRATING
 3374 
 3375   * MIGRATING.rst, doc/source/changes.rst,
 3376   doc/source/cookbook/reduce-io-load.rst: doc: fix typos in
 3377   MIGRATING/changes/reduce-io-load
 3378 
 3379 2022-01-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3380 
 3381   * NEWS.rst, doc/source/_static/terminal_output.css, doc/source/conf.py,
 3382   doc/source/cookbook/reduce-io-load.rst: doc: add reduce-io-load cookbook
 3383   recipe
 3384 
 3385 2022-01-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3386 
 3387   * testsuite/modulefiles.3/flatlcompat,
 3388   testsuite/modulefiles.3/lcompat/.modulerc,
 3389   testsuite/modulefiles.3/lcompat/1.8,
 3390   testsuite/modulefiles.3/lcompat/1.9/1.9,
 3391   testsuite/modulefiles.3/lcompat/1.9/2.0,
 3392   testsuite/modules.50-cmds/519-family.exp: ts: test family mfcmd in 50/519
 3393 
 3394 2022-01-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3395 
 3396   * doc/source/design/lmod-tcl-modulefile-compat.rst: doc: desc. family in
 3397   design doc
 3398 
 3399   * NEWS.rst: doc: desc. family/MODULES_FAMILY_<NAME> in NEWS
 3400 
 3401   * contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for family
 3402   mfcmd
 3403 
 3404   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 3405   MODULES_FAMILY_<NAME> in man/changes
 3406 
 3407   * doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. family in
 3408   man/changes
 3409 
 3410 2022-01-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3411 
 3412   * tcl/mfinterp.tcl.in: Add family modulefile command  Introduce the family
 3413   modulefile command that indicates currently loading module provides name
 3414   passed as argument and this name could only be provided by one loaded
 3415   module.  family is implemented with the combined definition of a conflict
 3416   and a module alias.  An environment variable is set to indicate what module
 3417   currently provides for the family within the loaded environment.
 3418 
 3419 2022-01-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3420 
 3421   * testsuite/modulefiles.3/puts/prestdout,
 3422   testsuite/modules.50-cmds/311-puts-prestdout.exp: ts: test prestdout channel
 3423   on puts command in 50/311
 3424 
 3425   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3426   prestdout channel in man/changes/NEWS
 3427 
 3428   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: Add prestdout
 3429   channel to puts command  Introduce the prestdout channel for the modified
 3430   puts command to be able to set specific content prior any other content sent
 3431   to stdout after the environment changes generated by modulefile evaluation.
 3432   Fixes #432
 3433 
 3434   * NEWS.rst, doc/source/modulefile.rst: doc: desc. puts mfcmd in man
 3435 
 3436 2022-01-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3437 
 3438   * doc/source/modulefile.rst: doc: desc auto_handling on prereq in man
 3439 
 3440 2022-01-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3441 
 3442   * tcl/modfind.tcl.in: Clean useless code in setLoadedAltname
 3443 
 3444 2022-01-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3445 
 3446   * MIGRATING.rst: doc: desc. mcookie_check in MIGRATING
 3447 
 3448 2022-01-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3449 
 3450   * tcl/modfind.tcl.in: Protect 'file mtime' call when do not know what we
 3451   check  Catch error of file mtime when targeted file has not been checked
 3452   previously (when mcookie_check is set to 'eval').
 3453 
 3454 2022-01-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3455 
 3456   * NEWS.rst: doc: desc. mcookie_check in NEWS
 3457 
 3458 2021-12-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3459 
 3460   * testsuite/modulefiles/loc_dv1/3.0, testsuite/modulefiles/loc_dv4/1.0,
 3461   testsuite/modulefiles/loc_dv4/2.0, testsuite/modulefiles/loc_rc1/.modulerc,
 3462   testsuite/modulefiles/loc_virt2/.modulerc, testsuite/modulefiles/mcookie/1,
 3463   testsuite/modules.00-init/005-init_ts.exp,
 3464   .../modules.20-locate/130-mcookie_check_eval.exp,
 3465   testsuite/modules.61-coll/040-restore.exp: ts: test mcookie_check set to
 3466   eval in 20/130
 3467 
 3468 2021-12-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3469 
 3470   * NEWS.rst, doc/source/design/magic-cookie-check.rst: doc: add
 3471   magic-cookie-check design notes
 3472 
 3473 2021-12-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3474 
 3475   * testsuite/install.00-init/010-environ.exp,
 3476   testsuite/modules.00-init/010-environ.exp,
 3477   testsuite/modules.70-maint/220-config.exp: ts: test mcookie_check config
 3478   option
 3479 
 3480   * tcl/modfind.tcl.in: No mcookie check when searching module  Update
 3481   checkValidModule to skip Module magic cookie check in file if mcookie_check
 3482   configuration option is not set to 'always'.  When mcookie_check is set to
 3483   'eval', files are not read when searching modulefiles. Which means any file
 3484   located within a modulepath directory is considered a modulefile. An error
 3485   will be obtained if an attempt is made to evaluate a non-modulefile located
 3486   in a modulepath directory.  Also if a modulefile is specified fullpath,
 3487   Modules magic cookie will also not be checked if mcookie_check is set to
 3488   'eval', and if this file is not a modulefile an error will be obtained if an
 3489   attempt is made to evaluate this file.
 3490 
 3491 2021-12-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3492 
 3493   * doc/source/changes.rst, doc/source/module.rst, doc/source/modulefile.rst:
 3494   doc: desc mcookie_check in changes/man
 3495 
 3496   * doc/source/changes.rst, doc/source/module.rst: doc: desc
 3497   MODULES_MCOOKIE_CHECK in changes/man
 3498 
 3499   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 3500   add mcookie_check config to completion script
 3501 
 3502   * tcl/init.tcl.in: Add mcookie_check configuration option  Add the
 3503   mcookie_check configuration option that controls whether or not the magic
 3504   cookie at the start of modulefile (`#%Module`) need to get checked.
 3505 
 3506 2022-01-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3507 
 3508   * configure, doc/source/conf.py, tcl/coll.tcl, tcl/envmngt.tcl.in,
 3509   tcl/init.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
 3510   tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in,
 3511   tcl/util.tcl: New year (2022) copyright mention update
 3512 
 3513 2021-12-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3514 
 3515   * .github/workflows/windows_tests.yaml: gh: precise python-sphinx deps on
 3516   Cygwin  Need to precise all sphinxcontrib packages required as dependency
 3517   specification of python37-sphinx Cygwin package is regularly broken.
 3518 
 3519 2021-12-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3520 
 3521   * testsuite/modulefiles.3/notreq/loadany,
 3522   testsuite/modulefiles.3/notreq/loadanymul,
 3523   testsuite/modulefiles.3/notreq/tryload,
 3524   testsuite/modulefiles.3/notreq/tryloadmul,
 3525   testsuite/modules.50-cmds/431-not-req.exp: ts: test --not-req with module
 3526   try-load/load-any in 50/431
 3527 
 3528   * tcl/main.tcl.in: Add support for --not-req on module try-load/load-any
 3529 
 3530   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3531   --not-req support on module try-load/load-any
 3532 
 3533   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
 3534   doc/source/modulefile.rst: doc: desc. load-any in NEWS/changes/man
 3535 
 3536   * NEWS.rst, doc/source/changes.rst, doc/source/design/module-tags.rst,
 3537   doc/source/modulefile.rst: doc: desc. --tag opt on load-any in
 3538   NEWS/changes/man/design
 3539 
 3540   * doc/source/design/add-new-sub-command.rst: doc: desc. module-info command
 3541   in add new subcmd guide
 3542 
 3543   * testsuite/modulefiles.3/tag/8.0,
 3544   testsuite/modules.50-cmds/465-tag-opt.exp: ts: add --tag tests for load-any
 3545   subcmd in 50/465
 3546 
 3547 2021-12-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3548 
 3549   * testsuite/modulefiles.3/loadany/.modulerc,
 3550   testsuite/modulefiles.3/loadany/1.0, testsuite/modulefiles.3/loadany/2.0,
 3551   testsuite/modules.00-init/005-init_ts.exp,
 3552   testsuite/modules.50-cmds/518-load-any.exp: ts: test load-any subcmd in
 3553   50/518
 3554 
 3555 2021-12-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3556 
 3557   * doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
 3558   testsuite/modules.50-cmds/282-info-command.exp,
 3559   testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add load-any
 3560   test/doc on 'module-info command'
 3561 
 3562   * testsuite/modulefiles.2/modemptyarg/load-any,
 3563   testsuite/modules.00-init/071-args.exp,
 3564   testsuite/modules.50-cmds/152-module-emptyarg.exp: ts: adapt existing tests
 3565   for try-load subcmd
 3566 
 3567   * init/Makefile, init/bash_completion.in, init/fish_completion,
 3568   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add load-any
 3569   sub-cmd to completion scripts
 3570 
 3571   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Introduce load-any
 3572   sub-command  Add the load-any module sub-command that loads first valid
 3573   module in specified list. Errors for unknown modulefile are silenced like
 3574   for try-load sub-command. add-any is an alias over load-any sub-command.
 3575   The any_modulefile state is introduced to indicate cmdModuleLoad to stop
 3576   after first loaded modulefile in list.  When used from a modulefile
 3577   evaluation context, load-any first checks if a module from its specified
 3578   list is already loaded. If this is the case, no additional requirement load
 3579   is performed as constraint is considered satisfied.
 3580 
 3581 2021-12-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3582 
 3583   * tcl/mfinterp.tcl.in, tcl/modeval.tcl: Move requirement load code of prereq
 3584   in dedicated proc  Create the dedicated loadRequirementModuleList procedure
 3585   to attempt to load a list of module requirement in an OR operation. This
 3586   procedure is called by prereq modulefile command when auto_handling mode is
 3587   enabled.
 3588 
 3589 2021-12-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3590 
 3591   * doc/source/design/lmod-tcl-modulefile-compat.rst: doc: desc module
 3592   load-any in design doc
 3593 
 3594   * doc/source/design/lmod-tcl-modulefile-compat.rst: doc: desc. always-load
 3595   in design doc
 3596 
 3597 2021-12-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3598 
 3599   * tcl/modfind.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp,
 3600   testsuite/modules.50-cmds/467-keep-loaded.exp,
 3601   testsuite/modules.61-coll/010-init_ts.exp,
 3602   testsuite/modules.61-coll/040-restore.exp: Ensure no duplicate in tags set
 3603   to module  Update setModuleTag procedure to avoid adding a tag to module
 3604   which is already set to avoid duplicate entries. Adapt existing tests.
 3605 
 3606 2021-12-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3607 
 3608   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3609   always-load in NEWS/changes/man
 3610 
 3611   * testsuite/modules.50-cmds/465-tag-opt.exp: ts: fix tests in 50/465 for Tcl
 3612   8.5
 3613 
 3614 2021-12-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3615 
 3616   * testsuite/modulefiles.3/keep/1.0,
 3617   testsuite/modulefiles.3/lcompat/.modulerc,
 3618   testsuite/modulefiles.3/lcompat/1.7, testsuite/modulefiles.3/tag/8.0,
 3619   testsuite/modules.50-cmds/465-tag-opt.exp,
 3620   testsuite/modules.50-cmds/467-keep-loaded.exp,
 3621   testsuite/modules.50-cmds/517-always-load.exp: ts: test always-load mfcmd in
 3622   50/{465,467,517}
 3623 
 3624   * tcl/mfinterp.tcl.in: Add always-load modulefile command  Introduce
 3625   always-load modulefile command that loads all modulefile specified (AND
 3626   operation) and applies to them the keep-loaded module tag in order to avoid
 3627   these modules to get automatically unloaded.
 3628 
 3629 2021-12-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3630 
 3631   * tcl/mfinterp.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp,
 3632   testsuite/modules.50-cmds/515-depends-on.exp,
 3633   testsuite/modules.50-cmds/516-prereq-all.exp: Pass mfcmd name to
 3634   parsePrereqCommandArgs proc
 3635 
 3636   * contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for
 3637   always-load mfcmd
 3638 
 3639 2021-12-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3640 
 3641   * contrib/vim/syntax/modulefile.vim: vim: add
 3642   prereq-{all,any}/require-filename/depends-on mfcmds
 3643 
 3644   * testsuite/modulefiles.3/keep/1.0, testsuite/modulefiles.3/keep/2.0,
 3645   testsuite/modules.50-cmds/467-keep-loaded.exp: ts: test keep-loaded module
 3646   tag in 50/467
 3647 
 3648   * doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing only
 3649   html directive in mans
 3650 
 3651   * NEWS.rst: doc: desc keep-loaded tag in NEWS
 3652 
 3653   * doc/source/changes.rst: doc: fix missing tag_abbrev mconfig in changes
 3654 
 3655 2021-12-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3656 
 3657   * INSTALL.rst, doc/source/design/module-tags.rst, doc/source/module.rst,
 3658   doc/source/modulefile.rst: doc: desc keep-loaded tag in INSTALL/design/mans
 3659 
 3660   * configure: install: add default abbrev/sgr for keep-loaded tag
 3661 
 3662   * tcl/modeval.tcl: Add keep-loaded module tag  Introduce the keep-loaded
 3663   module tag that avoids an auto-loaded module to get automatically unloaded
 3664   when all its dependent modules are unloaded.
 3665 
 3666 2021-12-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3667 
 3668   * doc/source/module.rst: doc: reorg option desc for load/switch/try-load in
 3669   man
 3670 
 3671   * doc/source/module.rst: doc: fix sort of try-add subcmd in man
 3672 
 3673   * NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
 3674   doc/source/modulefile.rst: doc: desc --tag option in changes/NEWS/mans
 3675 
 3676   * testsuite/home/coll39, testsuite/home/coll40, testsuite/home/coll41,
 3677   testsuite/home/coll42, testsuite/home/coll43,
 3678   testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
 3679   testsuite/modules.61-coll/010-init_ts.exp,
 3680   testsuite/modules.61-coll/030-save.exp,
 3681   testsuite/modules.61-coll/040-restore.exp,
 3682   testsuite/modules.61-coll/060-saveshow.exp,
 3683   testsuite/modules.61-coll/999-cleanup.exp: ts: add collection tests for
 3684   --tag option
 3685 
 3686 2021-12-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3687 
 3688   * testsuite/modules.20-locate/118-hidden-loaded.exp,
 3689   testsuite/modules.50-cmds/350-allin.exp,
 3690   testsuite/modules.61-coll/010-init_ts.exp,
 3691   testsuite/modules.61-coll/040-restore.exp: ts: adapt existing collection
 3692   tests for --tag record
 3693 
 3694   * tcl/coll.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Create
 3695   getExportTagList from getTagList  Create getExportTagList procedure to get
 3696   list of tags applying to module that can be exported (not loaded or hidden).
 3697   Use getExportTagList when building persistency variable so serializing code
 3698   is only useful in this procedure and not anymore in getTagList.
 3699 
 3700   * testsuite/modules.61-coll/010-init_ts.exp,
 3701   testsuite/modules.61-coll/040-restore.exp,
 3702   testsuite/modules.61-coll/999-cleanup.exp: ts: fix auto-loaded module
 3703   restore tests in 61/040
 3704 
 3705 2021-12-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3706 
 3707   * tcl/coll.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Save tags set on
 3708   loaded modules in collection  Adapt collection mechanism to dump the tags
 3709   set on loaded module when saving a collection and setting them back when
 3710   collection is restored.  Tags are recorded in collection with the --tag=
 3711   option set on module load lines. Previously used --notuasked option is still
 3712   processed if found in collection but when saving new ones the auto-loaded
 3713   tag is dumped instead 'module load --tag=auto-loaded foo/1.0' for instance.
 3714   With this current patch savec tags are restored if module is not yet loaded
 3715   at the correct position in expected loaded module list.
 3716 
 3717 2021-12-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3718 
 3719   * testsuite/modules.50-cmds/513-prereq-any.exp,
 3720   testsuite/modules.50-cmds/515-depends-on.exp,
 3721   testsuite/modules.50-cmds/516-prereq-all.exp: ts: adapt existing prereq
 3722   tests for --tag opt
 3723 
 3724 2021-12-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3725 
 3726   * testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
 3727   testsuite/modulefiles.3/tag/9.0, testsuite/modules.00-init/005-init_ts.exp,
 3728   testsuite/modules.50-cmds/465-tag-opt.exp: ts: add test for --tag option in
 3729   50/465
 3730 
 3731 2021-12-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3732 
 3733   * tcl/main.tcl.in, tcl/mfinterp.tcl.in: Add --tag option to prereq
 3734   modulefile command  Add the --tag option for the prereq modulefile command
 3735   to be albe to precise tags to apply to loading module when auto handling
 3736   mode is enabled. This way tags could be specified whatever the dependency
 3737   mechanism used.  Also apply on prereq-any, prereq-all and depends-on
 3738   modulefile commands.
 3739 
 3740 2021-12-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3741 
 3742   * doc/source/design/module-tags.rst: doc: update module tag design for --tag
 3743   opt
 3744 
 3745 2021-12-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3746 
 3747   * tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in:
 3748   Pass and apply tag_list in cmdModuleLoad  Transmit the tag list specified on
 3749   module load, try-load or switch to the cmdModuleLoad procedure to apply
 3750   these tags to the module to load.  Need to refine later on tag list
 3751   transmission on collection management (cmdModuleRestore) and environment
 3752   reload (reloadModuleListLoadPhase).  An already loaded module will not be
 3753   reloaded if a different tag list is specified. Loaded tags for this module
 3754   are not changed either.
 3755 
 3756   * init/Makefile, init/bash_completion.in, init/fish_completion,
 3757   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add --tag= opt
 3758   to completion scripts
 3759 
 3760 2021-12-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3761 
 3762   * tcl/main.tcl.in, tcl/report.tcl.in: Add parsing of --tag opt for
 3763   load/switch/try-load subcmds  Adapt parseModuleCommandArgs and reportUsage
 3764   procedures to handle the --tag option for the load, switch and try-load
 3765   sub-comands.  '--tag=LIST' is the syntax for the command-line whereas '--tag
 3766   LIST' is the main syntax for use within modulefiles. LIST is composed of tag
 3767   names separated by colon character.  Allow --tag for unload sub-command to
 3768   avoid errors on mixed unload/load ml command.
 3769 
 3770 2021-12-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3771 
 3772   * testsuite/modulefiles.3/lcompat/.modulerc,
 3773   testsuite/modulefiles.3/lcompat/1.6,
 3774   testsuite/modules.50-cmds/516-prereq-all.exp: ts: add tests for prereq-all
 3775   in 50/516
 3776 
 3777 2021-12-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3778 
 3779   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc
 3780   prereq-all in NEWS/changes/man
 3781 
 3782   * tcl/mfinterp.tcl.in: Add prereq-all modulefile command  Rename depends-on
 3783   into prereq-all modulefile command and make depends-on an alias on it.
 3784 
 3785   * testsuite/modulefiles.3/lcompat/.modulerc,
 3786   testsuite/modulefiles.3/lcompat/1.5,
 3787   testsuite/modules.50-cmds/515-depends-on.exp: ts: add tests for depends-on
 3788   in 50/515
 3789 
 3790   * doc/source/modulefile.rst: doc: split prereq/conflict man description
 3791 
 3792   * tcl/mfinterp.tcl.in: Add depends-on modulefile command  Introduce the
 3793   depends-on modulefile command which defines module requirements for
 3794   currently loading modulefile. This command is an alias over prereq command
 3795   with all modulefile arguments treated as a Boolean AND operation: all
 3796   specified modulefiles are required.
 3797 
 3798   * NEWS.rst, doc/source/changes.rst,
 3799   doc/source/design/lmod-tcl-modulefile-compat.rst, doc/source/modulefile.rst:
 3800   doc: desc depends-on in NEWS/changes/man/design
 3801 
 3802 2021-11-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3803 
 3804   * testsuite/modulefiles.3/lcompat/.modulerc,
 3805   testsuite/modulefiles.3/lcompat/1.4, testsuite/modulefiles.3/lcompatdep/1.4,
 3806   testsuite/modulefiles.3/lcompatdep/2.0,
 3807   testsuite/modules.00-init/005-init_ts.exp,
 3808   testsuite/modules.50-cmds/514-require-fullname.exp: ts: add tests for
 3809   require-fullname in 50/514
 3810 
 3811   * tcl/mfinterp.tcl.in, tcl/modfind.tcl.in, tcl/modspec.tcl: Add
 3812   require-fullname modulefile command  Introduce the require-fullname
 3813   modulefile command that raises an error if loading module is not fully
 3814   qualified. Alias and symbols are considered fully qualified versions expect
 3815   for the default symbol.  Add the filter_default argument on
 3816   getAllModuleResolvedName procedure to exclude module parent name and default
 3817   symbol version from alternative name list.  Update modEq procedures to call
 3818   for getAllModuleResolvedName with filter_default mode enabled when ismodlo
 3819   argument is set to 4.
 3820 
 3821 2021-11-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3822 
 3823   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3824   require-fullname in man/changes/NEWS
 3825 
 3826   * NEWS.rst, doc/source/design/lmod-tcl-modulefile-compat.rst: doc: add
 3827   lmod-tcl-modulefile-compat initial version
 3828 
 3829   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc
 3830   reportError and reportWarning in man/changes/NEWS
 3831 
 3832 2021-11-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3833 
 3834   * testsuite/modulefiles.3/lcompat/.version,
 3835   testsuite/modules.20-locate/120-moduleversion.exp: ts: test ModuleVersion in
 3836   20/120
 3837 
 3838   * NEWS.rst, doc/source/changes.rst, tcl/mfinterp.tcl.in: Set ModuleVersion
 3839   as an alias over ModulesVersion  Set ModuleVersion as an alias over
 3840   ModulesVersion modulefile variable for compatibility with Lmod Tcl
 3841   modulefiles.
 3842 
 3843   * NEWS.rst, doc/source/modulefile.rst: doc: desc ModulesVersion mfvar in man
 3844 
 3845   * NEWS.rst, tcl/mfinterp.tcl.in,
 3846   testsuite/modules.50-cmds/513-prereq-any.exp: Clear msg when no arg is
 3847   passed to prereq  Produce a clear error message when wrong number of
 3848   argument is received by prereq command.
 3849 
 3850   * testsuite/modulefiles.3/lcompat/.modulerc,
 3851   testsuite/modulefiles.3/lcompat/1.3,
 3852   testsuite/modules.50-cmds/513-prereq-any.exp: ts: add tests for prereq-any
 3853   in 50/513
 3854 
 3855   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc
 3856   prereq-any in man/NEWS/changes
 3857 
 3858   * tcl/mfinterp.tcl.in: Add prereq-any modulefile command  Introduce the
 3859   prereq-any modulefile command which is a bare alias for the prereq command.
 3860 
 3861   * NEWS.rst, doc/source/modulefile.rst: doc: desc
 3862   {add,remove}-property/extensions in man/NEWS
 3863 
 3864 2021-11-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3865 
 3866   * testsuite/modulefiles.3/lcompat/.modulerc,
 3867   testsuite/modulefiles.3/lcompat/1.2,
 3868   testsuite/modules.50-cmds/512-extensions.exp: ts: add test for extensions in
 3869   50/512
 3870 
 3871   * testsuite/modulefiles.3/lcompat/.modulerc,
 3872   testsuite/modulefiles.3/lcompat/1.1,
 3873   testsuite/modules.50-cmds/511-remove-property.exp: ts: add tests for
 3874   remove-property in 50/511
 3875 
 3876   * testsuite/modulefiles.3/lcompat/.modulerc,
 3877   testsuite/modulefiles.3/lcompat/1.0, testsuite/modulefiles.3/lcompat/2.0,
 3878   testsuite/modules.50-cmds/510-add-property.exp: ts: add tests for
 3879   add-property in 50/510
 3880 
 3881   * doc/source/changes.rst: doc: desc. add-property/remove-property/extensions
 3882   in changes
 3883 
 3884   * tcl/mfinterp.tcl.in: Add add-property/extensions/remove-property cmds
 3885   Introduce the add-property, extensions and remove-property modulefile
 3886   commands. Implemented as a no-operation command for modulefile evaluation
 3887   context.
 3888 
 3889 2021-11-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3890 
 3891   * .cirrus.yml: ts: update CI config to test completiondir install opt
 3892 
 3893 2021-11-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3894 
 3895   * INSTALL.rst, NEWS.rst: doc: desc completiondir install opts in
 3896   NEWS/INSTALL
 3897 
 3898 2021-11-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3899 
 3900   * contrib/rpm/environment-modules.spec.in: rpm: use shell-specific
 3901   completion dir
 3902 
 3903   * Makefile.inc.in, configure, init/Makefile, init/fish.in, site.exp.in:
 3904   install: add --with-fishcompletiondir configure opt  Add the
 3905   --with-fishcompletiondir option to the configure installation script to
 3906   define a particular installation directory for the fish completion script.
 3907   If option is not defined, fish completion script is installed by default in
 3908   initdir and it is sourced in fish init script. If option is set, completion
 3909   script is installed in designated directory and fish init script does not
 3910   source it.
 3911 
 3912   * Makefile.inc.in, configure, init/Makefile, init/bash.in, site.exp.in:
 3913   install: add --with-bashcompletiondir configure opt  Add the
 3914   --with-bashcompletiondir option to the configure installation script to
 3915   define a particular installation directory for the bash completion script.
 3916   If option is not defined, bash completion script is installed by default in
 3917   initdir and it is sourced in bash init script. If option is set, completion
 3918   script is installed in designated directory and bash init script does not
 3919   source it.
 3920 
 3921 2021-11-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3922 
 3923   * Makefile.inc.in, configure, init/Makefile, init/zsh.in, site.exp.in:
 3924   install: add --with-zshcompletiondir configure opt  Add the
 3925   --with-zshcompletiondir option to the configure installation script to
 3926   define a particular installation directory for the zsh completion script.
 3927   If option is not defined, zsh completion script is installed by default in
 3928   initdir and the FPATH environment variable is set in zsh init script. If
 3929   option is set, completion script is installed in designated directory and
 3930   zsh init script does not set the FPATH environment variable.  Fixes #428
 3931 
 3932   * MIGRATING.rst: doc: desc. modfile command behavior opts in MIGRATING
 3933 
 3934 2021-11-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3935 
 3936   * testsuite/modulefiles.3/path-cmd-opt/1.5,
 3937   testsuite/modules.50-cmds/505-set-if-undef.exp: ts: test setenv
 3938   --set-if-undef on modfile cmds
 3939 
 3940   * doc/example/top-priority-values/siteconfig.tcl,
 3941   doc/source/cookbook/top-priority-values.rst: doc: update setenv in
 3942   top-priority-values recipe config
 3943 
 3944 2021-11-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3945 
 3946   * testsuite/modules.00-init/120-siteconfig.exp,
 3947   testsuite/modules.50-cmds/400-source-sh.exp,
 3948   testsuite/modules.50-cmds/504-unset-on-unload.exp,
 3949   testsuite/modules.70-maint/300-err_stack.exp: ts: fix existing setenv tests
 3950   for --set-if-undef
 3951 
 3952   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3953   setenv --set-if-undef in man/changes/NEWS
 3954 
 3955   * tcl/mfinterp.tcl.in: Add --set-if-undef option on setenv  Add the
 3956   --set-if-undef option on the setenv modulefile command. When set, the
 3957   environment variable is set when modulefile is loaded only if currently
 3958   unset.  Fixes #425
 3959 
 3960 2021-11-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3961 
 3962   * tcl/mfinterp.tcl.in: Parse setenv args with parseUnsetenvCommandArgs  Add
 3963   the parseUnsetenvCommandArgs procedure to parse arguments set on setenv
 3964   modulefile command.  Split procedure for setenv and unsetenv commands in
 3965   whatis evaluation mode, as both commands now have different set of options
 3966   that should also be parsed in whatis mode to extract targeted environment
 3967   variable name.
 3968 
 3969   * testsuite/modulefiles.3/path-cmd-opt/1.4,
 3970   testsuite/modules.00-init/005-init_ts.exp,
 3971   testsuite/modules.50-cmds/504-unset-on-unload.exp: ts: test unsetenv
 3972   --unset-on-unload on modfile cmds
 3973 
 3974   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3975   unsetenv --unset-on-unload in man/changes/NEWS
 3976 
 3977   * testsuite/modules.50-cmds/030-unsetenv.exp,
 3978   testsuite/modules.50-cmds/035-unsetenv-undo.exp: ts: fix existing unsetenv
 3979   tests for --unset-on-unload
 3980 
 3981   * tcl/mfinterp.tcl.in: Add --unset-on-unload option on unsetenv  Add the
 3982   --unset-on-unload option on the unsetenv modulefile command. When set, the
 3983   environment variable is unset when modulefile is unloaded, like it does when
 3984   modulefile is loaded.
 3985 
 3986 2021-11-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 3987 
 3988   * testsuite/modulefiles.3/path-cmd-opt/1.3,
 3989   testsuite/modules.50-cmds/503-noop-on-unload.exp: ts: test unsetenv
 3990   --noop-on-unload on modfile cmds
 3991 
 3992   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 3993   unsetenv --noop-on-unload in man/changes/NEWS
 3994 
 3995   * testsuite/modules.50-cmds/030-unsetenv.exp,
 3996   testsuite/modules.50-cmds/035-unsetenv-undo.exp: ts: fix existing unsetenv
 3997   tests for --noop-on-unload
 3998 
 3999   * tcl/mfinterp.tcl.in: Add --noop-on-unload option on unsetenv  Add the
 4000   --noop-on-unload option to the unsetenv modulefile command. Corresponds to
 4001   the actual default behavior, which is enforced even if a value to restore on
 4002   unload mode is specified.
 4003 
 4004   * tcl/mfinterp.tcl.in: Parse unsetenv args with parseUnsetenvCommandArgs
 4005   Add the parseUnsetenvCommandArgs procedure to parse the arguments set on an
 4006   unsetenv moduefile command.
 4007 
 4008 2021-11-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4009 
 4010   * testsuite/modulefiles.3/path-cmd-opt/1.3,
 4011   testsuite/modules.50-cmds/503-noop-on-unload.exp: ts: test --noop-on-unload
 4012   option on modfile cmds
 4013 
 4014 2021-11-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4015 
 4016   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 4017   --noop-on-unload in man/changes/NEWS
 4018 
 4019   * testsuite/modules.10-use/030-use.exp,
 4020   testsuite/modules.10-use/070-unuse.exp,
 4021   testsuite/modules.70-maint/150-append-path.exp,
 4022   testsuite/modules.70-maint/151-prepend-path.exp,
 4023   testsuite/modules.70-maint/152-remove-path.exp: ts: test --noop-on-unload
 4024   option on subcmds
 4025 
 4026   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Add
 4027   --noop-on-unload on remove-path/module unuse  Add the --noop-on-unload
 4028   option to the remove-path and module unuse sub-command to perform no
 4029   operation when commands are evaluated in unload mode.
 4030 
 4031 2021-11-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4032 
 4033   * testsuite/modulefiles.3/path-cmd-opt/1.2,
 4034   .../modules.50-cmds/502-prepend-on-unload.exp: ts: test --prepend-on-unload
 4035   option on modfile cmds
 4036 
 4037   * testsuite/modules.10-use/030-use.exp,
 4038   testsuite/modules.10-use/070-unuse.exp,
 4039   testsuite/modules.70-maint/150-append-path.exp,
 4040   testsuite/modules.70-maint/151-prepend-path.exp,
 4041   testsuite/modules.70-maint/152-remove-path.exp: ts: test --prepend-on-unload
 4042   option on subcmds
 4043 
 4044   * tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Add --prepend-on-unload on
 4045   remove-path/module unuse  Add the --prepend-on-unload option to the
 4046   remove-path and module unuse sub-command to append specified paths when
 4047   commands are evaluated in unload mode.  If option is set prior path list
 4048   specification, this path list which is unsets when modulefile loads is
 4049   appended back when modulefile unloads. If a different path list is passed
 4050   after option specification, this list is appended on unload mode instead of
 4051   the list removed at load time.  --prepend-on-unload option cannot be mixed
 4052   with --index option.
 4053 
 4054   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Pass precise
 4055   behavior to apply to add-path  Instead of barely setting 'add' as default
 4056   behavior to apply on add-path procedure, precise this behavior with 'append'
 4057   and 'prepend' value.
 4058 
 4059   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 4060   --prepend-on-unload in man/changes/NEWS
 4061 
 4062   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 4063   --append-on-unload in man/changes/NEWS
 4064 
 4065   * doc/source/design/control-mode-behaviors.rst: doc: add noop-on-unload +
 4066   details in ctrl mode bhv design
 4067 
 4068 2021-11-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4069 
 4070   * doc/example/top-priority-values/siteconfig.tcl: doc: update
 4071   top-priority-values recipe config  Update the siteconfig.tcl configuration
 4072   of top-priority-values cookbook recipe after the add-path/unload-path
 4073   changes.
 4074 
 4075 2021-11-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4076 
 4077   * testsuite/modulefiles.3/path-cmd-opt/1.0,
 4078   testsuite/modulefiles.3/path-cmd-opt/1.1,
 4079   testsuite/modules.50-cmds/500-remove-on-load.exp,
 4080   testsuite/modules.50-cmds/501-append-on-unload.exp: ts: additional
 4081   --remove-on-unload/--append-on-unload tests
 4082 
 4083   * tcl/subcmd.tcl.in, testsuite/modules.50-cmds/500-remove-on-load.exp,
 4084   testsuite/modules.50-cmds/501-append-on-unload.exp: Allow use of
 4085   --remove-on-unload on module unuse  Even if it corresponds to the default
 4086   behavior, allow the use of the --remove-on-unload option on the module unuse
 4087   modulefile command.  Adapt existing tests.
 4088 
 4089   * tcl/envmngt.tcl.in, testsuite/modules.50-cmds/500-remove-on-load.exp,
 4090   testsuite/modules.50-cmds/501-append-on-unload.exp: Allow --remove-on-unload
 4091   to get set after variable name  Adapt parsePathCommandArgs procedure to
 4092   allow the --remove-on-unload option to get set after the variable name, like
 4093   for --append-on-unload.  Adapt existing tests.
 4094 
 4095   * testsuite/modules.50-cmds/501-append-on-unload.exp: ts: fix
 4096   append-on-unload tests for reuse of load path list
 4097 
 4098   * tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Reuse more path list defined for
 4099   load in parsePathCommandArgs  In case the --append-on-unload argument is set
 4100   after environment variable name but prior path list definition, the path
 4101   list to use for load evaluation will also be used on the append behavior
 4102   during unload evaluation.  In addition, if no path list is defined after
 4103   --append-on-unload argument, the list used for load evaluation is reused on
 4104   the append behavior of unload evaluation.  Applies to remove-path and module
 4105   unuse modulefile commands.
 4106 
 4107   * tcl/report.tcl.in: Filter internal cmd starting from $ sign from stack
 4108   trace  Update the formatErrStackTrace procedure to filter from error stack
 4109   trace the internal calls made through the use of a variable to designate the
 4110   command to call (like done in runModuleUse).
 4111 
 4112   * tcl/subcmd.tcl.in: No error catch in runModuleUse  Remove the error catch
 4113   set in runModuleUse when calling for add-path or unload-path. Errors are
 4114   this way rendered like any other: internal module bug if called during a
 4115   modulefile evaluation or top error with report link advice.
 4116 
 4117 2021-11-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4118 
 4119   * testsuite/modulefiles.3/path-cmd-opt/1.1,
 4120   testsuite/modules.50-cmds/501-append-on-unload.exp: ts: test
 4121   --append-on-unload option on modfile cmds
 4122 
 4123   * tcl/subcmd.tcl.in: Make runModuleUse rely on add-path/unload-path  Make
 4124   the runModuleUse procedure rely on the add-path and unload-path procedures
 4125   rather {append,prepend,remove}-path to be able to precise the current
 4126   evaluation mode.
 4127 
 4128   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Align add-path args with
 4129   unload-path  Adopt same argument list for add-path procedure as unload-path
 4130   to make it easy to dynamically call one or the other.
 4131 
 4132   * tcl/main.tcl.in, tcl/subcmd.tcl.in: Pass down eval mode to runModuleUse
 4133   Add argument mode to the runModuleUse procedure to get knowledge of current
 4134   evaluation mode in order to distinguish a module unuse in load or unload
 4135   evaluation mode.  Update the module, cmdModuleUse and cmdModuleUnuse
 4136   procedures to pass down the mode information.
 4137 
 4138 2021-11-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4139 
 4140   * testsuite/modules.10-use/030-use.exp,
 4141   testsuite/modules.10-use/070-unuse.exp,
 4142   testsuite/modules.70-maint/150-append-path.exp,
 4143   testsuite/modules.70-maint/151-prepend-path.exp,
 4144   testsuite/modules.70-maint/152-remove-path.exp: ts: test --append-on-unload
 4145   option on subcmds
 4146 
 4147   * tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Add --append-on-unload on
 4148   remove-path/module unuse  Add the --append-on-unload option to the
 4149   remove-path and module unuse sub-command to append specified paths when
 4150   commands are evaluated in unload mode.  If option is set prior path list
 4151   specification, this path list which is unsets when modulefile loads is
 4152   appended back when modulefile unloads. If a different path list is passed
 4153   after option specification, this list is appended on unload mode instead of
 4154   the list removed at load time.  --append-on-unload option cannot be mixed
 4155   with --index option.  Fixes #114
 4156 
 4157 2021-11-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4158 
 4159   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Add mode arg to
 4160   unload-path/parsePathCommandArgs  Update the unload-path and
 4161   parsePathCommandArgs procedure to add a mode argument to get knowledge of
 4162   the current evaluation mode when checking passed arguments.
 4163 
 4164 2021-11-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4165 
 4166   * testsuite/modules.10-use/030-use.exp,
 4167   testsuite/modules.10-use/031-append.exp,
 4168   testsuite/modules.10-use/032-prepend.exp,
 4169   testsuite/modules.10-use/070-unuse.exp: ts: add use/unuse tests with var ref
 4170   in modpath
 4171 
 4172   * testsuite/modules.10-use/030-use.exp,
 4173   testsuite/modules.50-cmds/040-append.exp: ts: fix comments on work to be
 4174   done in a future release
 4175 
 4176   * testsuite/modules.00-init/120-siteconfig.exp,
 4177   testsuite/modules.20-locate/090-memcache.exp,
 4178   testsuite/modules.50-cmds/310-puts.exp,
 4179   testsuite/modules.70-maint/080-help.exp,
 4180   testsuite/modules.70-maint/230-verbosity.exp: ts: adapt existing debug msg
 4181   tests
 4182 
 4183   * NEWS.rst: doc: desc. debug msg rework in NEWS
 4184 
 4185   * tcl/main.tcl.in: Add debug report at end of parseModuleCommandName
 4186 
 4187   * tcl/mfinterp.tcl.in: Move arg debug report of getenv/getvariant in parse
 4188   proc
 4189 
 4190   * tcl/envmngt.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
 4191   tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Remove obvious debug reports  Remove
 4192   the debug reports of argument passed to the procedure as they are already
 4193   generated when debug2 verbosity mode is enabled and for the debug verbosity
 4194   mode the procedures bound to a modulefile command are traced to emit a debug
 4195   report of their call.
 4196 
 4197   * tcl/mfinterp.tcl.in: Trace mfcmd calls to report them in debug verbosity
 4198   mode  Add trace over each modulefile/modulerc commands to report when they
 4199   are called and with what paramaters. These traces are set only if the
 4200   verbosity equals to debug. When verbosity is higher than debug, traces are
 4201   set on all modulecmd.tcl procedures.
 4202 
 4203 2021-11-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4204 
 4205   * NEWS.rst, doc/source/changes.rst: doc: error when unk opt for use/unuse in
 4206   changes/NEWS
 4207 
 4208 2021-11-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4209 
 4210   * NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
 4211   --remove-on-unload in man/changes/NEWS
 4212 
 4213   * testsuite/modulefiles.3/path-cmd-opt/1.0,
 4214   testsuite/modulefiles.3/path-cmd-opt/2.0,
 4215   testsuite/modules.50-cmds/500-remove-on-load.exp: ts: test
 4216   --remove-on-unload option on modfile cmds
 4217 
 4218   * tcl/subcmd.tcl.in: Raise error when unknown argument passed to use/unuse
 4219   Raise an error when an unknown option is passed to module use or module
 4220   unuse modulefile command.
 4221 
 4222   * tcl/main.tcl.in, tcl/subcmd.tcl.in: Add runModuleUse procedure for both
 4223   use/unuse subcmd  Introduce the runModuleUse procedure that is called by
 4224   cmdModuleUse and cmdModuleUnuse to share execution code between both
 4225   sub-commands. runModuleUse takes a position argument (append, prepend,
 4226   remove) and a command (use or unuse) to know what arguments are allowed and
 4227   what kind of path change to apply.  Aplying module use in unload mode now
 4228   calls for cmdModuleUse with position argument set to remove. To allow same
 4229   set of arguments for the module use command whatever the evaluation mode
 4230   set.
 4231 
 4232 2021-11-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4233 
 4234   * tcl/subcmd.tcl.in: Push eval mode if none on use/unuse  Push a load
 4235   evaluation mode when processing module use or module unuse command only if
 4236   no evaluation mode already set.
 4237 
 4238 2021-11-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4239 
 4240   * testsuite/modules.00-init/005-init_ts.exp,
 4241   testsuite/modules.10-use/030-use.exp,
 4242   testsuite/modules.10-use/070-unuse.exp,
 4243   testsuite/modules.70-maint/150-append-path.exp,
 4244   testsuite/modules.70-maint/151-prepend-path.exp,
 4245   testsuite/modules.70-maint/152-remove-path.exp: ts: test --remove-on-unload
 4246   option on subcmds
 4247 
 4248   * tcl/envmngt.tcl.in: Add --remove-on-unload option to remove-path  Add the
 4249   --remove-on-unload option on remove-path modulefile command to also remove
 4250   the path elements specified when modulefile is evaluated in unload mode.
 4251 
 4252   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Update unload-path for nop and
 4253   return bhv & var  Update the unload-path procedure to return immediately
 4254   when the behavior to apply is 'nop' (no-operation). Also always make this
 4255   procedure return a list with behavior applied and variable name.  Make
 4256   remove-path-un procedure (remove-path when called within an unload mode
 4257   modulefile interpreter) rely on unload-path after this change, instead of
 4258   directly calling parsePathCommandArgs.
 4259 
 4260   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Precise default behavior to apply
 4261   by parsePathCommandArgs  Pass down the default behavior to apply on
 4262   parsePathCommandArgs procedure to prepare ground for upcoming new arguments
 4263   to change path command behavior.
 4264 
 4265 2021-10-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4266 
 4267   * testsuite/modules.50-cmds/040-append.exp,
 4268   testsuite/modules.50-cmds/042-append-delim.exp,
 4269   testsuite/modules.50-cmds/045-append-undo.exp,
 4270   testsuite/modules.50-cmds/047-app-del-undo.exp,
 4271   testsuite/modules.50-cmds/050-prepend.exp,
 4272   testsuite/modules.50-cmds/052-prepend-delim.exp,
 4273   testsuite/modules.50-cmds/055-prepend-undo.exp,
 4274   testsuite/modules.50-cmds/057-pre-del-undo.exp,
 4275   testsuite/modules.50-cmds/060-remove.exp,
 4276   testsuite/modules.50-cmds/062-remove-delim.exp,
 4277   testsuite/modules.50-cmds/065-remove-undo.exp,
 4278   testsuite/modules.50-cmds/150-module.exp,
 4279   testsuite/modules.50-cmds/170-swap.exp,
 4280   testsuite/modules.70-maint/140-multiargs.exp,
 4281   testsuite/modules.70-maint/150-append-path.exp,
 4282   testsuite/modules.70-maint/151-prepend-path.exp,
 4283   testsuite/modules.70-maint/152-remove-path.exp,
 4284   testsuite/modules.70-maint/190-emptyarg.exp: ts: update unload-path/add-path
 4285   error msgs
 4286 
 4287   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Pass effective mfcmd name to
 4288   parsePathCommandArgs  Update the procedure chain from append-path,
 4289   prepend-path and remove-path modulefile commands to parsePathCommandArgs, to
 4290   pass command name down the way.  So add-path and unload-path are changed to
 4291   get modulefile command name as first argument and pass it down to
 4292   parsePathCommandArgs.  As a consequence error message raised from
 4293   parsePathCommandArgs now use the accurate modulefile command name.
 4294 
 4295 2021-10-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4296 
 4297   * tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Revert "Pass calling name as first
 4298   arg of remove-path"  This reverts commit
 4299   2970dcc2fa10725548325c7a2adf702969fc6850.
 4300 
 4301   * tcl/mfinterp.tcl.in: Use specific proc for {append,prepend}-path on unload
 4302   When modulefile interpreter is set for unload mode, use specific procedures
 4303   for the append-path and prepend-path suffixed -un rather reusing remove-path
 4304   proc. This way it is possible to distinguish a real remove-path call.
 4305 
 4306 2021-10-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4307 
 4308   * tcl/subcmd.tcl.in: Use append-path instead of add-path in subcmd procs
 4309   Update sub-command procedures to make use of append-path rather directly
 4310   add-path.
 4311 
 4312   * tcl/subcmd.tcl.in: Use remove-path instead of unload-path in subcmd procs
 4313   Update sub-command procedures to make use of remove-path rather directly
 4314   unload-path.
 4315 
 4316   * tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Pass calling name as first arg of
 4317   remove-path  Update way to call remove-path procedure to pass as first
 4318   argument the alias name used to call it. Will enable to distinguish a true
 4319   remove-path call from an append-path call in unload mode.
 4320 
 4321 2021-11-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4322 
 4323   * .cirrus.yml: cirrus: update OSX image version
 4324 
 4325 2021-11-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4326 
 4327   * CONTRIBUTING.rst: doc: add design notes section in CONTRIBUTING
 4328 
 4329 2021-11-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4330 
 4331   * NEWS.rst, doc/source/design/add-new-sub-command.rst: doc: add
 4332   add-new-sub-command design doc
 4333 
 4334   * doc/source/design/add-new-config-option.rst: doc: fix typo in
 4335   add-new-config-option design doc
 4336 
 4337 2021-11-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4338 
 4339   * doc/source/design/add-new-config-option.rst: doc: use ghcommit role in
 4340   add-new-config-option doc
 4341 
 4342   * doc/source/conf.py: doc: add new 'ghcommit' sphinx role
 4343 
 4344   * CODE_OF_CONDUCT.md, Makefile, NEWS.rst, README.md: Set a Code of conduct
 4345   for Modules  Set a Code of conduct for the Modules project and its
 4346   community. This Code of conduct is based on the Contribution Covenant,
 4347   version 2.1.
 4348 
 4349   * doc/source/design/control-mode-behaviors.rst: doc: refine
 4350   {restore,set}-on-unload in ctrl mode bhvs
 4351 
 4352 2021-10-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4353 
 4354   * NEWS.rst, doc/source/design/add-new-config-option.rst: doc: add
 4355   add-new-config-option design doc
 4356 
 4357 2021-10-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4358 
 4359   * NEWS.rst, doc/source/design/control-mode-behaviors.rst: doc: add
 4360   control-mode-behaviors design doc
 4361 
 4362 2021-10-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4363 
 4364   * doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing
 4365   only-html tag in man pages
 4366 
 4367 2021-10-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4368 
 4369   * testsuite/modules.50-cmds/400-source-sh.exp: ts: module usage in script
 4370   run through source-sh
 4371 
 4372 2021-10-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4373 
 4374   * NEWS.rst: doc: desc. env filtering for sh-to-mod/source-sh in NEWS
 4375 
 4376 2021-10-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4377 
 4378   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc var filtering
 4379   on source-sh/sh-to-mod man
 4380 
 4381   * doc/source/design/source-shell-script-in-modulefile.rst: doc: desc private
 4382   env var filter on sh-to-mod design
 4383 
 4384   * tcl/mfinterp.tcl.in: ignore Modules private variables on sh-to-mod
 4385   processing  Filter out the variables intended for Modules private usage when
 4386   processing the environment changes made by a script evaluated by sh-to-mod
 4387   sub-command or source-sh modulefile command.  _LMFILES_, LOADEDMODULES and
 4388   any variable prefixed by __MODULES_ are withdrawn this way.  Closes #427.
 4389 
 4390   * testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
 4391   testsuite/example/sh-to-mod.sh,
 4392   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: module usage in script run
 4393   through sh-to-mod
 4394 
 4395 2021-10-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4396 
 4397   * doc/source/design/source-shell-script-in-modulefile.rst: doc: note to
 4398   extend source-sh/sh-to-mod for other tools
 4399 
 4400 2021-10-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4401 
 4402   * NEWS.rst: doc: desc state/supported_shells in NEWS
 4403 
 4404   * testsuite/modulefiles.3/modbad/state,
 4405   testsuite/modules.00-init/071-args.exp,
 4406   testsuite/modules.00-init/100-pager.exp,
 4407   testsuite/modules.00-init/120-siteconfig.exp,
 4408   testsuite/modules.00-init/150-access-init.exp,
 4409   testsuite/modules.50-cmds/151-module-onlytop.exp,
 4410   testsuite/modules.70-maint/220-config.exp,
 4411   testsuite/modules.70-maint/390-state.exp: ts: add tests for state subcmd
 4412 
 4413 2021-10-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4414 
 4415   * init/Makefile, init/bash_completion.in, init/fish_completion,
 4416   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add state
 4417   subcmd to completion scripts
 4418 
 4419   * tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Introduce 'state'
 4420   sub-command  Add the state sub-command to get all states or one state
 4421   specified as argument.  Code that was previously reporting state for config
 4422   sub-command has been moved to a dedicated cmdModuleState procedure. state
 4423   sub-command can only be called from top level and accepts 0 or 1 argument.
 4424   Closes #426
 4425 
 4426 2021-10-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4427 
 4428   * doc/source/changes.rst, doc/source/module.rst, doc/source/modulefile.rst:
 4429   doc: desc. state subcmd in man/changes
 4430 
 4431   * tcl/main.tcl.in: Add supported_shells state  Add the supported_shells
 4432   state to list the shells Modules is able to produce output for.
 4433 
 4434 2021-10-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4435 
 4436   * testsuite/modules.50-cmds/260-getenv.exp,
 4437   testsuite/modules.50-cmds/472-getvariant.exp: ts: fix --return-value tests
 4438   for Tcl8.5 in 50/{260,472}
 4439 
 4440 2021-10-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4441 
 4442   * testsuite/modulefiles.3/variant/5.1,
 4443   testsuite/modules.50-cmds/472-getvariant.exp: ts: add getvariant
 4444   --return-value tests in 50/472
 4445 
 4446 2021-10-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4447 
 4448   * testsuite/modulefiles/getenv/1.0,
 4449   testsuite/modules.50-cmds/260-getenv.exp: ts: add getenv --return-value
 4450   tests in 50/260
 4451 
 4452   * NEWS.rst: doc: desc. --return-value option in NEWS
 4453 
 4454   * doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. getvariant
 4455   --return-value option in man/changes
 4456 
 4457   * tcl/mfinterp.tcl.in: Add --return-value option to getvariant modulefile
 4458   command  Add the --return-value option to the getvariant modulefile command
 4459   to force to return the value of designated variant when modulefile is
 4460   evaluated in display mode.
 4461 
 4462   * doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. getenv
 4463   --return-value option in man/changes
 4464 
 4465   * tcl/mfinterp.tcl.in: Add --return-value option to getenv modulefile
 4466   command  Add the --return-value option to the getenv modulefile command to
 4467   force to return the value of designated environment variable when modulefile
 4468   is evaluated in display mode.  Closes #422.
 4469 
 4470 2021-10-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4471 
 4472   * MIGRATING.rst, NEWS.rst: doc: desc. redirect_output in NEWS/MIGRATING
 4473 
 4474 2021-10-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4475 
 4476   * testsuite/install.00-init/005-init_ts.exp,
 4477   testsuite/install.00-init/070-stderrtty.exp: ts: add install tests to check
 4478   redirect_output
 4479 
 4480 2021-10-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4481 
 4482   * testsuite/modules.70-maint/120-autoinit.exp: ts: adapt autoinit test for
 4483   output redirection code
 4484 
 4485   * tcl/envmngt.tcl.in: Add output redirection handling on fish module
 4486   function  Update the definition of the module function for fish shell family
 4487   to support the output redirection.  Now both _module_raw and module shell
 4488   functions are always defined. Default redirection behavior depends on the
 4489   interactiveness of the shell when the autoinit command is run. Then shell
 4490   code is set in module function definition to adapt behavior depending on
 4491   MODULES_REDIRECT_OUTPUT environment variable value or
 4492   --redirect/--no-redirect command-line switches.
 4493 
 4494 2021-10-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4495 
 4496   * init/bash.in, init/sh.in, tcl/envmngt.tcl.in: Add output redirection
 4497   handling on sh module function  Update the definition of the module function
 4498   for sh shell family (sh, bash, ksh and zsh) to support the output
 4499   redirection.  Now both _module_raw and module shell functions are always
 4500   defined. Default redirection behavior depends on the interactiveness of the
 4501   shell when the autoinit command is run. Then shell code is set in module
 4502   function definition to adapt behavior depending on MODULES_REDIRECT_OUTPUT
 4503   environment variable value or --redirect/--no-redirect command-line
 4504   switches.
 4505 
 4506 2021-10-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4507 
 4508   * doc/source/module.rst, tcl/main.tcl.in, tcl/report.tcl.in,
 4509   testsuite/modules.00-init/090-switches.exp: Warn if --redirect is used on
 4510   unsupported shells  --redirect is only supported on sh, bash, ksh, zsh and
 4511   fish shells. Emit a warning message when used on another shells.
 4512 
 4513 2021-10-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4514 
 4515   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 4516   --redirect/--no-redirect in man/changes
 4517 
 4518   * testsuite/modules.00-init/090-switches.exp,
 4519   testsuite/modules.70-maint/220-config.exp: ts: basic tests for
 4520   --redirect/--no-redirect switches
 4521 
 4522   * tcl/main.tcl.in, tcl/report.tcl.in: Add --redirect/--no-redirect cmdline
 4523   switches  Add the --redirect and --no-redirect command line switches to
 4524   control where the output of the module command should be sent. When
 4525   redirected it is sent to stdout otherwise not redirected means it is left on
 4526   stderr.  These command line switches have no effect within modulecmd.tcl
 4527   code. They are treated directly in module shell function to adapt output
 4528   redirection.  Closes #410.
 4529 
 4530 2021-10-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4531 
 4532   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 4533   MODULES_REDIRECT_OUTPUT in man/changes
 4534 
 4535   * doc/source/changes.rst, doc/source/module.rst: doc: desc. redirect_output
 4536   config in man/changes
 4537 
 4538   * testsuite/install.00-init/010-environ.exp,
 4539   testsuite/modules.00-init/010-environ.exp,
 4540   testsuite/modules.70-maint/220-config.exp: ts: test redirect_output config
 4541   option
 4542 
 4543   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 4544   add redirect_output config to completion script
 4545 
 4546 2021-10-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4547 
 4548   * tcl/init.tcl.in: Add redirect_output configuration option  Add
 4549   redirect_output configuration option that controls whether or not the output
 4550   of module command should be redirected from stderr to stdout. Enabled by
 4551   default. When configuration is modified it sets the MODULES_REDIRECT_OUTPUT
 4552   environment variable.
 4553 
 4554 2021-09-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4555 
 4556   * NEWS.rst, doc/source/changes.rst: doc: desc open value variant in
 4557   NEWS/changes
 4558 
 4559   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/vrreq1/1.0,
 4560   testsuite/modulefiles.3/vrreq2/1.0,
 4561   testsuite/modules.00-init/005-init_ts.exp,
 4562   testsuite/modules.50-cmds/470-variant.exp,
 4563   testsuite/modules.50-cmds/471-variant-unload.exp,
 4564   testsuite/modules.50-cmds/473-variant-prereq.exp,
 4565   testsuite/modules.50-cmds/479-variant-boolean.exp: ts: add new variant tests
 4566   to check open value variant
 4567 
 4568 2021-09-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4569 
 4570   * testsuite/modules.50-cmds/470-variant.exp,
 4571   testsuite/modules.70-maint/375-variant-whatis.exp: ts: adapt existing tests
 4572   for open value variant
 4573 
 4574   * tcl/mfinterp.tcl.in: Allow variant with no accepted value list  Allow to
 4575   declare variant with no list of accepted value. Such variant accepts any
 4576   value specified.  Closes #405.
 4577 
 4578   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc optional
 4579   variant value list in man pages
 4580 
 4581   * doc/source/design/variants.rst: doc: allow variant definition with no
 4582   accepted value list
 4583 
 4584 2021-10-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4585 
 4586   * NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
 4587   version.inc.in: Release of version 5.0.1
 4588 
 4589 2021-10-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4590 
 4591   * Makefile: install: use newer version of icdiff (2.0.4)
 4592 
 4593   * Makefile: install: use newer version of nagelfar (1.3.2)
 4594 
 4595   * .cirrus.yml, .github/workflows/linux_tests.yaml: codecov: migrate to new
 4596   uploader  see
 4597   https://about.codecov.io/blog/introducing-codecovs-new-uploader/.  gcov
 4598   needs to be run manually with new uploader.
 4599 
 4600   * doc/source/modulefile.rst: doc: fix default value returned on getenv in
 4601   man  Fix documentation of getenv modulefile command to describe that an
 4602   empty string is now returned when designated environment variable is not
 4603   defined and no default value to return is specified.
 4604 
 4605   * init/initrc.in: init: set min version required to run default initrc  Set
 4606   in the module magic cookie of the initrc configuration file installed by
 4607   default the version of Modules required to evaluate this file.  Set version
 4608   to 5.0 as current configuration file mention the quarantine_support
 4609   configuration option.
 4610 
 4611 2021-10-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4612 
 4613   * doc/source/modulefile.rst: doc: clarify module subcmd allowed in
 4614   modulefile  Clarify the module sub-commands that are allowed to be used
 4615   within a modulefile.  Fixes #423
 4616 
 4617 2021-10-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4618 
 4619   * tcl/envmngt.tcl.in: No warning on {preprend,append}-path --duplicates
 4620   unload  Remove warning message when unloading a prepend-path or append-path
 4621   modulefile command with --duplicates option set.  Fixes #421
 4622 
 4623   * testsuite/modules.50-cmds/040-append.exp,
 4624   testsuite/modules.50-cmds/060-remove.exp: ts: highlight --duplicates issue
 4625   when unloading
 4626 
 4627 2021-09-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4628 
 4629   * doc/source/changes.rst, doc/source/module.rst: doc: desc.
 4630   __MODULES_AUTOINIT_INPROGRESS in man/changes
 4631 
 4632   * testsuite/example/initrc.in, testsuite/modulefiles.3/refresh/5.0,
 4633   testsuite/modulefiles.3/refresh/6.0,
 4634   testsuite/modules.70-maint/120-autoinit.exp, testsuite/systest2: ts: check
 4635   autoinit loop safeguard mechanism in 70/120
 4636 
 4637   * tcl/subcmd.tcl.in: Ensure no autoinit loop when set_shell_startup set  Set
 4638   the __MODULES_AUTOINIT_INPROGRESS environment variable when running the
 4639   `autoinit` sub-command and quit autoinit process if this variable is found
 4640   defined and equal to 1 when starting it. Ensure this way that an autoinit
 4641   process will not be triggered indefinitely by itself when the
 4642   set_shell_startup option is enabled and some module loaded at initialization
 4643   time relies on the execution of a bash script.  Fixes #414.
 4644 
 4645 2021-09-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4646 
 4647   * testsuite/modules.00-init/010-environ.exp: ts: ensure shell startup is not
 4648   set when running tests
 4649 
 4650 2021-09-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4651 
 4652   * tcl/modfind.tcl.in, testsuite/modules.50-cmds/078-refresh.exp: Set tag on
 4653   modvr desig of loaded mod  Correctly detect tags set on loaded modules when
 4654   refreshing them.  Update the cacheCurrentModules procedure to record the
 4655   tags of loaded modules also on the module name version and variant list
 4656   designation. So when the `module-info tags` command is called from a
 4657   modulefile loaded with variant set, it correctly retrieves the tags defined
 4658   on this module if currently loaded.  Add the report mode '6' on
 4659   getVariantList procedure to proceed like mode '1' but without updating the
 4660   key map reference.
 4661 
 4662 2021-09-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4663 
 4664   * doc/source/design/variants.rst: doc: fix missing space between list
 4665   entries in variant doc
 4666 
 4667 2021-09-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4668 
 4669   * doc/example/log-module-commands/siteconfig.tcl,
 4670   doc/source/cookbook/log-module-commands.rst: doc: extend *Log module
 4671   commands* cookbook  Improve the *Log module commands* cookbook to rely on
 4672   the `trace` Tcl command to track every modulefile evaluation and module/ml
 4673   procedure calls.  Fixes #412.
 4674 
 4675 2021-09-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4676 
 4677   * tcl/modspec.tcl,
 4678   testsuite/modules.70-maint/276-adv_version_spec-rangein.exp: Fix version res
 4679   when icase on & extdfl off  Fix the advanced version specifier resolution
 4680   when the extended_default option is off and icase option is on when
 4681   resolving version list specification.  Fixes #411.
 4682 
 4683 2021-09-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4684 
 4685   * doc/source/FAQ.rst: doc: desc module reload on screen session in FAQ
 4686 
 4687 2021-09-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4688 
 4689   * NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
 4690   version.inc.in: Release of version 5.0.0
 4691 
 4692   * MIGRATING.rst: doc: desc. Upgraded dfl conf in MIGRATING for Modules 5
 4693 
 4694 2021-09-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4695 
 4696   * MIGRATING.rst, doc/source/changes.rst: doc: describe first MIGRATING items
 4697   for Modules 5.0
 4698 
 4699 2021-09-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4700 
 4701   * doc/source/changes.rst: doc: desc. new special chars for module name in
 4702   change doc
 4703 
 4704   * doc/source/index.rst: doc: add ref to changes doc on index
 4705 
 4706   * README.md: doc: add ref to changes doc in README
 4707 
 4708 2021-09-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4709 
 4710   * doc/source/changes.rst: doc: desc. Modules 5 diffs in changes document
 4711 
 4712   * NEWS.rst: doc: fix rst markup in NEWS
 4713 
 4714 2021-09-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4715 
 4716   * doc/source/changes.rst: doc: add config option section in changes doc
 4717 
 4718   * NEWS.rst, doc/source/changes.rst: doc: reorg changes document
 4719 
 4720   * MIGRATING.rst, Makefile, NEWS.rst, configure,
 4721   contrib/rpm/environment-modules.spec.in, doc/Makefile,
 4722   doc/source/{diff_v3_v4.rst => changes.rst}, doc/source/index.rst:
 4723   doc/install: rename 'diff_v3_v4' doc into 'changes'
 4724 
 4725   * NEWS.rst, contrib/rpm/environment-modules.spec.in: rpm: add INSTALL.txt
 4726   Include INSTALL guide to the rpm package.
 4727 
 4728   * contrib/rpm/environment-modules.spec.in, doc/Makefile, doc/example.txt,
 4729   doc/readme.txt: doc/install: remove deprecated example.txt guide
 4730   example.txt was providing hints applying to old version of Modules. Now the
 4731   new commands and configuration mechanism simplify such tasks. Should rely on
 4732   INSTALL guide instead.
 4733 
 4734 2021-09-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4735 
 4736   * INSTALL.rst, NEWS.rst, .../cookbook/ensure-user-qualify-modules.rst: doc:
 4737   apply file rst markup for initrc/modulespath
 4738 
 4739   * NEWS.rst, doc/source/conf.py, doc/source/module.rst: doc: document
 4740   initrc/modulespath files in module(1)
 4741 
 4742   * INSTALL.rst, NEWS.rst, doc/source/module.rst: doc: fix some rst markup in
 4743   INSTALL/NEWS/module(1)
 4744 
 4745 2021-09-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4746 
 4747   * INSTALL.rst, NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst:
 4748   doc: improve config steps explanation in INSTALL
 4749 
 4750 2021-09-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4751 
 4752   * Makefile, README.md: doc: add doc ref and links in README
 4753 
 4754   * README.md, doc/source/index.rst: doc: update gcc example in README/index
 4755 
 4756   * doc/source/index.rst: doc: add 'Get started with Modules' section in index
 4757 
 4758   * doc/source/index.rst: doc: fix envvar/command markup in index
 4759 
 4760 2021-09-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4761 
 4762   * MIGRATING.rst, NEWS.rst: doc: clarify TOC and title of MIGRATING
 4763 
 4764   * NEWS.rst: doc: desc. silent_shell_debug changes in NEWS
 4765 
 4766   * doc/source/module.rst: doc: update MODULES_SILENT_SHELL_DEBUG in module(1)
 4767 
 4768   * testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
 4769   ts: add silent_shell_debug autoinit test
 4770 
 4771   * testsuite/modules.70-maint/220-config.exp: ts: update silent_shell_debug
 4772   config tests
 4773 
 4774   * .cirrus.yml, .github/workflows/linux_tests.yaml: ts: update CI configs as
 4775   silent sh dbg is disabled by dfl
 4776 
 4777 2021-08-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4778 
 4779   * init/initrc.in: init: example to enable silent_shell_debug in dfl initrc
 4780 
 4781   * INSTALL.rst: doc: update --enable-silent-shell-debug-support desc in
 4782   INSTALL
 4783 
 4784   * configure: install: disable silent_shell_debug by default  Change
 4785   installation option --enable-silent-shell-debug-support to disable it by
 4786   default. Now the silent_shell_debug configuration option enables to locally
 4787   enable this feature from the initrc configuration file.
 4788 
 4789   * Makefile, tcl/envmngt.tcl.in, tcl/init.tcl.in: Set silent_shell_debug code
 4790   if option enabled on autoinit  Generate the silent_shell_debug code in
 4791   module shell function during the autoinit processing if the
 4792   silent_shell_debug configuration option is enabled.  Choice made at
 4793   installation time may now be updated later on with the silent_shell_debug
 4794   configuration option. If enabled prior calling autoinit (or enabled within
 4795   initrc configuration file), the silent shell debug code will be included in
 4796   module shell function.
 4797 
 4798   * init/Makefile, init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: init:
 4799   always set code for silent_shell_debug code  Update initialization scripts
 4800   to make the code for the silent_shell_debug mechanism always defined there.
 4801 
 4802   * NEWS.rst: doc: desc. quarantine mechanism changes in NEWS
 4803 
 4804 2021-08-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4805 
 4806   * doc/source/module.rst: doc: desc. MODULES_QUARANTINE_SUPPORT in module(1)
 4807 
 4808   * doc/source/module.rst: doc: desc. __MODULES_QUARANTINE_SET in module(1)
 4809 
 4810   * INSTALL.rst: doc: update --enable-quarantine-support desc in INSTALL
 4811 
 4812   * testsuite/example/initrc.in, testsuite/modules.00-init/110-quar.exp,
 4813   testsuite/modules.70-maint/120-autoinit.exp: ts: add some quarantine tests
 4814 
 4815 2021-08-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4816 
 4817   * .cirrus.yml, .github/workflows/linux_tests.yaml: ts: update CI configs as
 4818   quarantine is disabled by dfl
 4819 
 4820 2021-08-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4821 
 4822   * init/initrc.in: init: example to enable quarantine_support in dfl initrc
 4823 
 4824   * configure: install: disable quarantine_support by default  Change
 4825   installation option --enable-quarantine-support to disable it by default.
 4826   Now the quarantine_support configuration option enables to locally enable
 4827   this feature from the initrc configuration file.
 4828 
 4829   * testsuite/modules.70-maint/220-config.exp: ts: test quarantine_support
 4830   config option
 4831 
 4832   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 4833   add quarantine_support config to completion script
 4834 
 4835   * Makefile, init/Makefile, tcl/envmngt.tcl.in, tcl/init.tcl.in: Add
 4836   quarantine_support configuration option  Convert the
 4837   --enable-quarantine-support installation option in a quarantine_support
 4838   configuration option. When this option is enabled the autoinit sub-command
 4839   produces the module shell code with quarantine mecahnism support. When
 4840   disabled, code is generated without quarantine support.  This way decision
 4841   to have or not the quarantine mechanism code can also be made in initrc
 4842   configuration file. As a result --enable-quarantine-support installation
 4843   option new controls the default behavior to generate or not the quarantine
 4844   code, but this could now be superseded in initrc configuration file.
 4845   Different setup cases are foreseen: 1. quarantine code has been included in
 4846   module shell function, then quarantine_support config is disabled > config
 4847   disablement is not effective as shell code is already set 2. quarantine code
 4848   has not been included in module shell function, then quarantine_support
 4849   config is enabled >  config enablement is not effective as shell code is
 4850   already set 3. during module initialization, quarantine_support config is
 4851   enabled in initrc > shell code generated with quarantine code 4. during
 4852   module initialization, quarantine_support config is disabled in initrc >
 4853   shell code generated without quarantine code 5. during module
 4854   initialization, quarantine_support config is enabled by default or via env >
 4855   shell code generated with quarantine code 6. during module initialization,
 4856   quarantine_support config is disabled by default or via env > shell code
 4857   generated with quarantine code
 4858 
 4859 2021-08-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4860 
 4861   * testsuite/modules.00-init/110-quar.exp,
 4862   testsuite/modules.70-maint/120-autoinit.exp: ts: update module function
 4863   def/quarantine tests
 4864 
 4865   * tcl/main.tcl.in: Always enable quarantine restore mecanishm code  Always
 4866   set in modulecmd.tcl script the code to restore the user environment set in
 4867   quarantine by module shell function of shell initialization script. Do not
 4868   depend on the quarantinesupport installation option to enable of disable
 4869   this code in the main procedure of the modulecmd.tcl script.  Thanks to the
 4870   __MODULES_QUARANTINE_SET environment variable, we know when to branch to
 4871   execute the quarantine unhold code.
 4872 
 4873   * init/bash.in, init/cmake.in, init/fish.in, init/ksh.in, init/perl.pm.in,
 4874   init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
 4875   init/zsh.in, tcl/envmngt.tcl.in, tcl/main.tcl.in: Restore quarantine if
 4876   __MODULES_QUARANTINE_SET defined  Introduce the __MODULES_QUARANTINE_SET
 4877   environment variable to put back when starting modulecmd.tcl run the
 4878   environment set on hold by initialization script (for autoinit calls) or by
 4879   module shell function (for regular calls).  This new environment variable is
 4880   tested to apply quarantine unhold mechanism instead of checking if the
 4881   run_quarantine configuration option is set and shell accurately supports the
 4882   mecanishm. With this change it is possible to enable or disable the
 4883   quarantine support at module initialization time (through initrc
 4884   configuration file) instead of freezing this configuration when building the
 4885   modulecmd.tcl script.
 4886 
 4887 2021-08-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4888 
 4889   * init/bash.in, init/cmake.in, init/fish.in, init/ksh.in, init/perl.pm.in,
 4890   init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
 4891   init/zsh.in: init: quarantine mech always set for autoinit call  Update
 4892   initialization scripts to make the quarantine mechanism always defined for
 4893   the module autoinit call.
 4894 
 4895 2021-08-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4896 
 4897   * .gitignore, .globalrc, Makefile: install: add Makefile rules to build
 4898   Gtags indexes
 4899 
 4900   * INSTALL.rst, NEWS.rst: doc: alphabetically sort installation option in
 4901   INSTALL
 4902 
 4903   * doc/source/design/sticky-modules.rst: doc: clarify unload sticky errors in
 4904   design doc
 4905 
 4906 2021-08-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4907 
 4908   * doc/source/conf.py: doc: same index template for mfcmd/mfvar than others
 4909 
 4910 2021-08-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4911 
 4912   * testsuite/home.3/.modulerc, testsuite/home.4/.modulerc,
 4913   testsuite/home/coll-hide-once-loaded,
 4914   testsuite/modules.20-locate/057-mcookie.exp,
 4915   testsuite/modules.20-locate/060-rc.exp,
 4916   testsuite/modules.20-locate/070-homerc.exp,
 4917   testsuite/modules.70-maint/090-source.exp,
 4918   testsuite/modules.70-maint/120-autoinit.exp: ts: test magic cookie on
 4919   init/global/user rc files
 4920 
 4921   * NEWS.rst, doc/source/module.rst, tcl/mfinterp.tcl.in, tcl/modfind.tcl.in,
 4922   tcl/subcmd.tcl.in: Enforce magic cookie in source and init/user/global rc
 4923   Enforce use of the module magic cookie (i.e., `#%Module`) at the start of
 4924   global or user rc files, `initrc` configuration file or any scriptfile
 4925   passed for evaluation to the `source` sub-command. These files are not
 4926   evaluated and an error is produced if the magic cookie is missing or if the
 4927   optional version number placed after the cookie string is higher than the
 4928   version of the `modulecmd.tcl` script in use.  Note that version 3.2 of
 4929   Modules was already enforcing the magic cookie for the user/global rc files.
 4930   This enforced back globally to ensure people understand, especially for the
 4931   source sub-command, that the script is made for module and it is not a shell
 4932   script. It will also help to protect module from automatically evaluating
 4933   files with expected file name but unrelated content.  This commit among
 4934   things reverts 3fe71c0d.
 4935 
 4936   * init/initrc.in: init: remove useless '1.0' in initrc magic cookie  Remove
 4937   the '1.0' in the #%Module magic cookie header of the generated initrc
 4938   configuration file. Users may define a more appropriate magic cookie
 4939   compatibility version.
 4940 
 4941   * testsuite/install.00-init/006-procs.exp,
 4942   testsuite/install.00-init/030-options.exp,
 4943   testsuite/install.00-init/060-quar.exp: ts: fix install tests when dfl
 4944   loadedmodules are set  When the loadedmodules installation option is set and
 4945   if the module initialization is triggered then the default module to load
 4946   will emit a message on stderr. Adapt the testsuite code, especially the
 4947   _test_sub procedure to automatically take this situation into account (no
 4948   need to set these load message in each expected stderr answer).
 4949 
 4950   * tcl/mfinterp.tcl.in, testsuite/modulefiles.3/unsetenv/2.0,
 4951   testsuite/modules.50-cmds/030-unsetenv.exp,
 4952   testsuite/modules.50-cmds/035-unsetenv-undo.exp: Error if bad arg number on
 4953   unsetenv  Raise error if more than 2 arguments are set on the unsetenv
 4954   modulefile command. Specific code need to be set here as we now use args for
 4955   the unsetenv procedure (to distinguish between no value to restore and an
 4956   empty string value to restore)
 4957 
 4958   * tcl/subcmd.tcl.in: rc_running state is useless for initrc eval  The
 4959   rc_running state used to distinguish top evaluation from the rest is useless
 4960   for the initrc evaluation as the isTopEvaluation procedure already
 4961   recognized it as top evaluation as in this situation depth of modulename
 4962   state is 1 and above command name is source.
 4963 
 4964 2021-08-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 4965 
 4966   * NEWS.rst, tcl/report.tcl.in, tcl/subcmd.tcl.in,
 4967   testsuite/modules.50-cmds/430-implicit-req.exp,
 4968   testsuite/modules.50-cmds/431-not-req.exp,
 4969   testsuite/modules.50-cmds/490-try-load.exp,
 4970   testsuite/modules.61-coll/040-restore.exp,
 4971   testsuite/modules.70-maint/120-autoinit.exp: Fix module load/unload msg of
 4972   restore/source subcmds  Report the modules loading and unloading during the
 4973   `module` command initialization (i.e., during the evaluation of the `initrc`
 4974   configuration file). These report messages are disabled when the `verbosity`
 4975   configuration option is set to `concise` or `silent`.  During a module
 4976   `restore` or `source`, only report the module load and unload directly
 4977   triggered by these sub-commands. Load and unload triggered by other modules
 4978   are reported through the automated module handling messages of the main
 4979   modules.  Register the cmdModuleSource call made by cmdModuleAutoinit as a
 4980   `source` command call to benefit from the message report mechanism. Do not
 4981   apply the same for the cmdModuleSource call made by runModulerc as those
 4982   calls will be changed to execute-modulerc in the future.
 4983 
 4984   * .../modemptyarg => modulefiles.3/modbad}/source,
 4985   testsuite/modulefiles.allin/allin/1,
 4986   testsuite/modules.50-cmds/151-module-onlytop.exp,
 4987   testsuite/modules.50-cmds/152-module-emptyarg.exp,
 4988   testsuite/modules.50-cmds/330-source.exp,
 4989   testsuite/modules.50-cmds/350-allin.exp,
 4990   testsuite/modules.70-maint/090-source.exp: ts: adapt 'module source' tests
 4991   Do not remove now useless source/* modulefiles not to break 'module avail'
 4992   bench comparison with previous versions.
 4993 
 4994   * NEWS.rst, tcl/main.tcl.in, tcl/subcmd.tcl.in: Forbid use of source subcmd
 4995   in modulefile  Forbid use of `module source` command in modulefile or in an
 4996   initialization rc file, the `source` Tcl command should be used instead.
 4997   `source` module sub-command should only be called from the command-line.
 4998   Using 'module source' in a modulefile was a non-sense as it does not provide
 4999   any benefit than using the regular 'source' Tcl command. It also implied to
 5000   reverse the subcommand to the unsource one when unloading the module.
 5001 
 5002   * doc/source/modulefile.rst: doc: desc when --not-req option has been added
 5003 
 5004   * NEWS.rst, tcl/init.tcl.in, tcl/mfinterp.tcl.in,
 5005   testsuite/modules.70-maint/220-config.exp: Remove useless tcl_version_lt85
 5006   internal state  Remove internal state tcl_version_lt85 as Tcl 8.5+ is now a
 5007   requirement.
 5008 
 5009 2021-08-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5010 
 5011   * NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modulefiles/info/.modulerc,
 5012   testsuite/modules.50-cmds/321-is-used.exp: Enable is-used mfcmd in modulerc
 5013   Make is-used modulefile command available from a modulerc evaluation
 5014   context.
 5015 
 5016   * NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modulefiles/system/.modulerc,
 5017   testsuite/modules.50-cmds/140-system.exp: Enable system mfcmd in modulerc
 5018   Fully enable the system modulefile command in modulerc, whatever the
 5019   underlying module evaluation mode (unload, display, whatis, etc).
 5020 
 5021 2021-08-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5022 
 5023   * NEWS.rst, doc/source/modulefile.rst: doc: update desc. of unsetenv on
 5024   unload in NEWS/man
 5025 
 5026   * testsuite/modules.50-cmds/035-unsetenv-undo.exp,
 5027   testsuite/modules.50-cmds/039-unsetenv-env.exp,
 5028   testsuite/modules.50-cmds/269-getenv-env.exp,
 5029   testsuite/modules.50-cmds/360-restoreenv.exp: ts: update tests of unsetenv
 5030   value to restore mechanism
 5031 
 5032   * tcl/mfinterp.tcl.in: Distinguish empty str from no value to restore on
 5033   unsetenv  Distinguish if the unsetenv command is called without a value to
 5034   restore on unload or with an empty string value to restore.
 5035 
 5036   * tcl/mfinterp.tcl.in: No var unset if unsetenv is run on unload mode  Do
 5037   not unset environment variable when running the unsetenv modulefile command
 5038   during an unload evaluation with no value to restore provided.  With this
 5039   change, the unsetenv command acts like the remove-path command on unload
 5040   mode.
 5041 
 5042   * NEWS.rst: doc: fix few markup issues in NEWS
 5043 
 5044 2021-08-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5045 
 5046   * NEWS.rst, doc/source/design/variants.rst, doc/source/modulefile.rst,
 5047   tcl/mfinterp.tcl.in, testsuite/modulefiles.3/variant/4.0,
 5048   testsuite/modules.70-maint/372-variant-display.exp: No error if variant
 5049   unspecified on display mode  No error is raised when evaluating in `display`
 5050   mode a modulefile without a value specified for the variant it defines. This
 5051   change helps to learn all the variant a modulefile defines. As a result, the
 5052   unspecified variant is not instantiated in the ModuleVariant array variable.
 5053   Fixes #406.
 5054 
 5055   * NEWS.rst, init/Makefile, init/initrc.in: init: set modulepaths only in
 5056   modulespath if installed  When the installation option
 5057   `--enable-modulespath` is set, the list of modulepath to enable by default
 5058   is now only defined in the `modulespath` configuration file and not anymore
 5059   in the `initrc` configuration file.
 5060 
 5061 2021-08-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5062 
 5063   * init/Makefile: install: use bash shell to translate init scripts  Set init
 5064   Makefile to use bash as shell to correctly expand the $'' syntax used in
 5065   translate-in-script.
 5066 
 5067 2021-08-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5068 
 5069   * testsuite/modules.70-maint/120-autoinit.exp: ts: modulespath and initrc
 5070   are both use if deployed
 5071 
 5072 2021-08-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5073 
 5074   * testsuite/install.00-init/025-autoinit.exp,
 5075   testsuite/modulefiles.3/refresh/4.0,
 5076   testsuite/modules.70-maint/120-autoinit.exp: ts: test refresh mechanism
 5077   during autoinit
 5078 
 5079   * NEWS.rst, tcl/subcmd.tcl.in: Eval both modulespath and initrc when
 5080   initializing  When initializing Modules, evaluate the initrc configuration
 5081   file in addition to the the modulespath configuration file and not instead
 5082   of this file. initrc is evaluated after modulespath file.  Both
 5083   configuration files are only evaluated if the current environment if found
 5084   unset, in other words when the MODULEPATH and LOADEDMODULES environment
 5085   variables are both found unset or empty.  As initrc is evaluated after
 5086   modulespath, it has the ability to undo what was done by modulespath,
 5087   especially if it restores a module collection.
 5088 
 5089   * NEWS.rst, init/initrc.in: init: add example code to load init env in
 5090   initrc  Add example code in default initrc, the initialization script of
 5091   Modules, to either restore user's default collection if it exists or load a
 5092   predefined module list when initializating Modules.
 5093 
 5094   * NEWS.rst, tcl/subcmd.tcl.in: Refresh loaded modules when initializing
 5095   When initializing Modules, refresh the loaded modules in case some user
 5096   environment is already configured. This is especially useful when starting a
 5097   sub-shell session as it ensures that the loaded environment in parent shell
 5098   will be correctly inherited, as the `refresh` sub-command re-applies the
 5099   non-persistent environment configuration (i.e., shell alias and function
 5100   that are not exported to the sub-shell).  If a refresh has to be attempted,
 5101   loaded environment is parsed. In case this environment is inconsistent, an
 5102   error code is returned but this error is trapped and initialization
 5103   evaluation continues without launching the refresh process. No error message
 5104   is reported to avoid noise on the full shell session initialization. The
 5105   user will get the error message as soon as he will launch the next module
 5106   command that parse the loaded environment.  Fixes #86.
 5107 
 5108 2021-08-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5109 
 5110   * testsuite/modulefiles.3/refresh/1.0, testsuite/modulefiles.3/refresh/2.0,
 5111   testsuite/modules.50-cmds/078-refresh.exp: ts: test
 5112   break/exit/continue/unkcmd err on refresh subcmd
 5113 
 5114   * tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Handle break/exit/continue err in
 5115   refresh subcmd
 5116 
 5117 2021-08-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5118 
 5119   * testsuite/modules.00-init/005-init_ts.exp,
 5120   testsuite/modules.50-cmds/078-refresh.exp: ts: test refresh subcmd in
 5121   verbose mode
 5122 
 5123   * tcl/subcmd.tcl.in: Apply msg record mech to refresh subcmd
 5124 
 5125   * NEWS.rst, tcl/mfinterp.tcl.in: Run resulting source-sh mfcmd through
 5126   modfile interp  Evaluate the modulefile commands resulting from the
 5127   `source-sh` evaluation through the current modulefile Tcl interpreter. This
 5128   way the modulefile commands are evaluated according to the current
 5129   modulefile evaluation mode.
 5130 
 5131   * NEWS.rst: doc: desc. refresh subcmd change in NEWS
 5132 
 5133   * testsuite/example/initrc.in, testsuite/modulefiles.3/modbad/refresh,
 5134   testsuite/modulefiles.3/refresh/.modulerc,
 5135   testsuite/modulefiles.3/refresh/1.0, testsuite/modulefiles.3/refresh/2.0,
 5136   testsuite/modulefiles.3/refresh/3.0, testsuite/modulefiles/info/commandexp,
 5137   testsuite/modulefiles/info/mode3, testsuite/modules.00-init/071-args.exp,
 5138   testsuite/modules.50-cmds/078-refresh.exp,
 5139   testsuite/modules.50-cmds/083-info-mode.exp,
 5140   testsuite/modules.50-cmds/084-info-mode-exp.exp,
 5141   testsuite/modules.50-cmds/151-module-onlytop.exp,
 5142   testsuite/modules.50-cmds/282-info-command.exp,
 5143   testsuite/modules.50-cmds/283-info-command-exp.exp,
 5144   testsuite/modules.70-maint/120-autoinit.exp,
 5145   testsuite/modules.70-maint/180-reload.exp: ts: add tests for 'refresh'
 5146   subcmd
 5147 
 5148   * testsuite/config/base-config.exp: ts: allow expected result with only OK
 5149   code  To produce the accurate "return true" code for tested shell.
 5150 
 5151   * doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
 5152   testsuite/modules.50-cmds/282-info-command.exp,
 5153   testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add try-load
 5154   test/doc on 'module-info command'
 5155 
 5156   * doc/source/modulefile.rst: doc: desc. new mode/cmd on 'module-info
 5157   {mode,command}'
 5158 
 5159   * tcl/mfinterp.tcl.in: Set 'nonpersist' as an alias of 'refresh' eval mode
 5160   For compatibility with Modules 3.2, module-info mode returns true if tested
 5161   against the `nonpersist` string and currently in `refresh` evaluation mode.
 5162 
 5163   * init/fish_completion, init/zsh-functions/_module.in: init: update refresh
 5164   subcmd desc in completion scripts
 5165 
 5166   * doc/source/module.rst: doc: desc. refresh subcmd in module(1)
 5167 
 5168   * tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/report.tcl.in,
 5169   tcl/subcmd.tcl.in: Revive the refresh subcmd  Restore the refresh
 5170   sub-command as it worked in version 3.2: not anymore an alias on the reload
 5171   sub-command but an evaluation of each loaded module (in their loaded order)
 5172   in 'refresh' mode.  `refresh` evaluation mode only execute the modulefile
 5173   commands generating volatile environment changes like set-alias and
 5174   set-function. variant and source-sh commands should also be enabled to
 5175   ensure a modulefile evaluation that regenerates the expected volatile
 5176   environment changes.  `refresh` evaluation mode does not require that the
 5177   modulefile commands triggering environment variable changes (setenv,
 5178   unsetenv, append-path, etc) to operate as the targetted variables should
 5179   already be set as the refreshed modules are loaded. Same goes for the
 5180   x-resource and system modulefile commands. Configuring these commands as 'no
 5181   operation' for this refresh mode should not disrupt the modulefile
 5182   evaluation.  refresh sub-command does not accept any argument and cannot be
 5183   called within modulefile or sourced or initilization module script (initrc).
 5184   When the evaluation of a refreshed modulefile fails, the environment changes
 5185   prior this evaluation is restored. Then refresh evaluation continue on the
 5186   remaining loaded modules.
 5187 
 5188 2021-08-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5189 
 5190   * NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst: doc: clarify
 5191   already defined path on use/{append,prepend}-path  Fixes #60.
 5192 
 5193   * NEWS.rst: doc: update next release target in NEWS
 5194 
 5195   * testsuite/modules.10-use/070-unuse.exp,
 5196   testsuite/modules.50-cmds/017-use-undo.exp,
 5197   testsuite/modules.50-cmds/350-allin.exp: ts: fix unuse when multiple paths
 5198   are set as one str
 5199 
 5200   * NEWS.rst, doc/source/module.rst, tcl/subcmd.tcl.in: Fix unuse when
 5201   multiple paths are passed as single arg  Fix unuse sub-command when sereval
 5202   modulepaths are specified as a single argument (i.e.,
 5203   `/path/to/dir1:/path/to/dir2`). Enabled modulepaths were not correctly
 5204   detected when specified this way.
 5205 
 5206   * NEWS.rst: doc: desc. ignore ref count on subcmds in NEWS
 5207 
 5208 2021-08-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5209 
 5210   * testsuite/example/initrc.in, testsuite/modulefiles/use/2.0,
 5211   testsuite/modules.10-use/030-use.exp,
 5212   testsuite/modules.10-use/070-unuse.exp,
 5213   testsuite/modules.50-cmds/015-use.exp,
 5214   testsuite/modules.50-cmds/017-use-undo.exp,
 5215   testsuite/modules.70-maint/120-autoinit.exp,
 5216   testsuite/modules.70-maint/151-prepend-path.exp,
 5217   testsuite/modules.70-maint/152-remove-path.exp: ts: add new ref count tests
 5218   on *use/*-path subcmds
 5219 
 5220   * testsuite/modules.10-use/030-use.exp,
 5221   testsuite/modules.10-use/031-append.exp,
 5222   testsuite/modules.10-use/032-prepend.exp,
 5223   testsuite/modules.10-use/070-unuse.exp,
 5224   testsuite/modules.20-locate/118-hidden-loaded.exp,
 5225   testsuite/modules.70-maint/150-append-path.exp,
 5226   testsuite/modules.70-maint/151-prepend-path.exp,
 5227   testsuite/modules.70-maint/152-remove-path.exp: ts: ignore ref count from
 5228   *use/*-path subcmds
 5229 
 5230   * doc/source/module.rst: doc: ignore ref count from *use/*-path subcmds
 5231 
 5232   * tcl/subcmd.tcl.in: Ignore ref count on append/prepend/remove-path subcmds
 5233   The append-path, prepend-path and remove-path sub-commands are always called
 5234   from a top level context. The reference counter associated with each entry
 5235   in targeted environment variable is now ignored so:  - a "module
 5236   prepend/append-path" will not increase the reference counter of a path entry
 5237   already defined unless if the duplication mode is enabled  - a "module
 5238   remove-path" will remove specified paths whatever their reference counter
 5239   value.
 5240 
 5241   * tcl/subcmd.tcl.in: Ignore ref count on use/unuse subcmds  When the use and
 5242   unuse sub-commands are called from a top level context, ignore the reference
 5243   counter associated to each entry in the MODULEPATH environment variable.
 5244   This way a "module use" called from top context will not increase the
 5245   reference counter of a path entry already defined and a "module unuse"
 5246   called from top context will remove specified paths whatever their reference
 5247   counter value.
 5248 
 5249   * tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Add --ignore-refcount opt to
 5250   add-path/unload-path proc  Add the '--ignore-refcount' option to the
 5251   add-path and unload-path procedures (parsed by parsePathCommandArgs
 5252   procedure). When set this option makes the reference counter value ignored.
 5253   Which means on add-path that the reference counter of each path element
 5254   passed is not increased unless if the duplication mode is enabled.  On
 5255   unload-path it means that the reference counter is not take into account and
 5256   each path element is removed (even if the reference counter is greater than
 5257   1).
 5258 
 5259   * tcl/subcmd.tcl.in: Pass all paths at once to {add,unload}-path in
 5260   use/unuse  Update cmdModuleUse and cmdModuleUnuse to pass all the paths
 5261   specified respectively for addition or removal to the underlying environment
 5262   management procedure (respectively add-path and unload-path).
 5263 
 5264   * tcl/main.tcl.in: Add isTopEvaluation proc  Gather in a dedicated procedure
 5265   named isTopEvaluation the test to know if current evaluation is made at top
 5266   level.  "Top level" is either: (1) at the modulecmd level (module command
 5267   written by user in terminal or script) or (2) during  the evaluation of rc
 5268   or modulefile by a source or autoinit sub-command triggered from modulecmd
 5269   level or (3) during the evaluation of global rc file.  (2) and (3) are
 5270   considered "extended" top evaluation contexts.
 5271 
 5272 2021-08-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5273 
 5274   * testsuite/modules.50-cmds/040-append.exp,
 5275   testsuite/modules.70-maint/151-prepend-path.exp: ts: unset ref cnt var if
 5276   found set but no cnt to record
 5277 
 5278   * tcl/envmngt.tcl.in: Unset ref cnt var if found set but no cnt to record
 5279   Unset the reference counter variable if it is found defined whereas there is
 5280   no counter to record for the associated path-like variable.
 5281 
 5282   * testsuite/modules.00-init/120-siteconfig.exp,
 5283   testsuite/modules.50-cmds/042-append-delim.exp,
 5284   testsuite/modules.50-cmds/047-app-del-undo.exp,
 5285   testsuite/modules.50-cmds/062-remove-delim.exp,
 5286   testsuite/modules.70-maint/151-prepend-path.exp,
 5287   testsuite/modules.70-maint/152-remove-path.exp: ts: add new reference
 5288   counter tests
 5289 
 5290   * tcl/envmngt.tcl.in: Ignore reference count lower than 1  If a reference
 5291   count for an element in a path-like variable is lower than 1, this value is
 5292   ignored which means element is considered added only once.
 5293 
 5294 2021-08-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5295 
 5296   * testsuite/config/base-config.exp,
 5297   testsuite/modules.00-init/120-siteconfig.exp,
 5298   testsuite/modules.10-use/030-use.exp,
 5299   testsuite/modules.10-use/031-append.exp,
 5300   testsuite/modules.10-use/032-prepend.exp,
 5301   testsuite/modules.10-use/040-load-use.exp,
 5302   testsuite/modules.10-use/070-unuse.exp,
 5303   testsuite/modules.10-use/080-access-use.exp,
 5304   testsuite/modules.10-use/090-bad.exp,
 5305   testsuite/modules.20-locate/100-wspace.exp,
 5306   testsuite/modules.20-locate/118-hidden-loaded.exp,
 5307   testsuite/modules.50-cmds/015-use.exp,
 5308   testsuite/modules.50-cmds/017-use-undo.exp,
 5309   testsuite/modules.50-cmds/028-setenv-refcount.exp,
 5310   .../modules.50-cmds/038-unsetenv-refcount.exp,
 5311   testsuite/modules.50-cmds/040-append.exp,
 5312   testsuite/modules.50-cmds/042-append-delim.exp,
 5313   testsuite/modules.50-cmds/045-append-undo.exp,
 5314   testsuite/modules.50-cmds/047-app-del-undo.exp,
 5315   testsuite/modules.50-cmds/049-append-env.exp,
 5316   testsuite/modules.50-cmds/050-prepend.exp,
 5317   testsuite/modules.50-cmds/052-prepend-delim.exp,
 5318   testsuite/modules.50-cmds/055-prepend-undo.exp,
 5319   testsuite/modules.50-cmds/057-pre-del-undo.exp,
 5320   testsuite/modules.50-cmds/059-prepend-env.exp,
 5321   testsuite/modules.50-cmds/060-remove.exp,
 5322   testsuite/modules.50-cmds/062-remove-delim.exp,
 5323   testsuite/modules.50-cmds/069-remove-env.exp,
 5324   testsuite/modules.50-cmds/172-swap-app-delim.exp,
 5325   testsuite/modules.50-cmds/173-swap-app-delim.exp,
 5326   testsuite/modules.50-cmds/175-swap2.exp,
 5327   testsuite/modules.50-cmds/177-swap-prep-delim.exp,
 5328   testsuite/modules.50-cmds/178-swap-prep-delim.exp,
 5329   testsuite/modules.50-cmds/180-unload.exp,
 5330   testsuite/modules.50-cmds/321-is-used.exp,
 5331   testsuite/modules.50-cmds/330-source.exp,
 5332   testsuite/modules.50-cmds/350-allin.exp,
 5333   testsuite/modules.50-cmds/359-allin-env.exp,
 5334   testsuite/modules.50-cmds/373-deps4.exp,
 5335   testsuite/modules.50-cmds/400-source-sh.exp,
 5336   testsuite/modules.50-cmds/431-not-req.exp,
 5337   testsuite/modules.50-cmds/471-variant-unload.exp,
 5338   testsuite/modules.50-cmds/472-getvariant.exp,
 5339   testsuite/modules.50-cmds/479-variant-boolean.exp,
 5340   testsuite/modules.61-coll/040-restore.exp,
 5341   testsuite/modules.61-coll/080-access-coll.exp,
 5342   testsuite/modules.70-maint/020-update.exp,
 5343   testsuite/modules.70-maint/120-autoinit.exp,
 5344   testsuite/modules.70-maint/140-multiargs.exp,
 5345   testsuite/modules.70-maint/150-append-path.exp,
 5346   testsuite/modules.70-maint/151-prepend-path.exp,
 5347   testsuite/modules.70-maint/152-remove-path.exp,
 5348   testsuite/modules.70-maint/210-clear.exp,
 5349   testsuite/modules.70-maint/280-ml.exp,
 5350   testsuite/modules.95-version/020-load-version.exp,
 5351   testsuite/modules.95-version/020-unload.exp,
 5352   testsuite/modules.95-version/022-load2.exp,
 5353   testsuite/modules.95-version/022-unload2.exp,
 5354   testsuite/modules.95-version/050-fullpathentry.exp: ts: update tests for ref
 5355   cnt change for elt added once
 5356 
 5357   * NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst: doc: desc
 5358   removal from ref count var of elts added once
 5359 
 5360   * tcl/envmngt.tcl.in: Update ref count var when element is added several
 5361   times  When an element is added to a path-like variable through the
 5362   append-path or prepend-path modulefile commands, add this element to the
 5363   associated reference counter variable only when this element is added
 5364   multiple times to the path-like variable. When an element is removed from a
 5365   path-like variable, this element is removed from the reference counter
 5366   variable when its counter is equal to 1.  Exception is made when element is
 5367   an empty string: in this case element is added to the reference counter
 5368   variable even if only added once to the path-like variable in order to
 5369   distinguish between an empty path-like variable and a path-like variable
 5370   containing an empty string as single element.
 5371 
 5372   * NEWS.rst: doc: desc. __MODULES_SHARE_* renaming in NEWS
 5373 
 5374   * testsuite/install.00-init/005-init_ts.exp,
 5375   testsuite/modules.00-init/005-init_ts.exp: ts: remove lassign/lreverse proc
 5376   setup for Tcl8.4  Since Tcl8.5 or later is now required.
 5377 
 5378 2021-08-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5379 
 5380   * doc/source/diff_v3_v4.rst, doc/source/module.rst,
 5381   doc/source/modulefile.rst: doc: update reference to renamed
 5382   __MODULES_SHARE_* vars
 5383 
 5384   * script/mb: script: update modshare var name in mb
 5385 
 5386   * testsuite/config/base-config.exp,
 5387   testsuite/install.00-init/010-environ.exp,
 5388   testsuite/modules.00-init/010-environ.exp,
 5389   testsuite/modules.00-init/120-siteconfig.exp,
 5390   testsuite/modules.10-use/030-use.exp,
 5391   testsuite/modules.10-use/031-append.exp,
 5392   testsuite/modules.10-use/032-prepend.exp,
 5393   testsuite/modules.10-use/070-unuse.exp,
 5394   testsuite/modules.10-use/080-access-use.exp,
 5395   testsuite/modules.50-cmds/028-setenv-refcount.exp,
 5396   .../modules.50-cmds/038-unsetenv-refcount.exp,
 5397   testsuite/modules.50-cmds/040-append.exp,
 5398   testsuite/modules.50-cmds/042-append-delim.exp,
 5399   testsuite/modules.50-cmds/045-append-undo.exp,
 5400   testsuite/modules.50-cmds/047-app-del-undo.exp,
 5401   testsuite/modules.50-cmds/050-prepend.exp,
 5402   testsuite/modules.50-cmds/052-prepend-delim.exp,
 5403   testsuite/modules.50-cmds/055-prepend-undo.exp,
 5404   testsuite/modules.50-cmds/057-pre-del-undo.exp,
 5405   testsuite/modules.50-cmds/060-remove.exp,
 5406   testsuite/modules.50-cmds/062-remove-delim.exp,
 5407   testsuite/modules.50-cmds/065-remove-undo.exp,
 5408   testsuite/modules.50-cmds/350-allin.exp,
 5409   testsuite/modules.50-cmds/359-allin-env.exp,
 5410   testsuite/modules.50-cmds/373-deps4.exp,
 5411   testsuite/modules.50-cmds/400-source-sh.exp,
 5412   testsuite/modules.50-cmds/471-variant-unload.exp,
 5413   testsuite/modules.61-coll/040-restore.exp,
 5414   testsuite/modules.70-maint/120-autoinit.exp,
 5415   testsuite/modules.70-maint/140-multiargs.exp,
 5416   testsuite/modules.70-maint/150-append-path.exp,
 5417   testsuite/modules.70-maint/151-prepend-path.exp,
 5418   testsuite/modules.70-maint/152-remove-path.exp,
 5419   testsuite/modules.70-maint/210-clear.exp,
 5420   testsuite/modules.70-maint/220-config.exp,
 5421   testsuite/modules.70-maint/280-ml.exp: ts: update reference to renamed
 5422   __MODULES_SHARE_* vars
 5423 
 5424   * tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Use '__MODULES_SHARE_' prefix on
 5425   ref count env var  Rename the environment variables used to record the
 5426   reference count of each element in path-like environment variables. A
 5427   `__MODULES_SHARE_` prefix is applied to the name of these variables instead
 5428   of the `_modshare` suffix to indicate they are intended for Modules internal
 5429   use of only.  It also helps with DYLD_* environment variables where using a
 5430   suffixed-variable led to warning messages on OS X.
 5431 
 5432   * NEWS.rst: doc: desc no more ref count for mod-specific vars in NEWS
 5433 
 5434   * testsuite/modules.50-cmds/120-prereq-full.exp,
 5435   testsuite/modules.50-cmds/130-conflict-full.exp,
 5436   testsuite/modules.50-cmds/380-altname.exp,
 5437   testsuite/modules.70-maint/180-reload.exp,
 5438   testsuite/modules.70-maint/320-tags.exp: ts: empty elts are now cleared from
 5439   variable  Adapt tests with element elements injected in Modules environment
 5440   variables like LOADEDMODULES: since there is no more reference counter
 5441   variable (like LOADEDMODULES_modshare) the empty entries added on such
 5442   variable are cleared when a new entry is added to the variable.  Such empty
 5443   entries are non-sense for these Modules variables so having them cleaned
 5444   when the variable is updated is a positive side effect.
 5445 
 5446 2021-08-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5447 
 5448   * testsuite/modules.50-cmds/377-deps8.exp,
 5449   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 5450   testsuite/modules.50-cmds/473-variant-prereq.exp,
 5451   testsuite/modules.50-cmds/474-variant-conflict.exp,
 5452   testsuite/modules.70-maint/280-ml.exp: ts: correct erroneous env of some
 5453   tests
 5454 
 5455 2021-08-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5456 
 5457   * testsuite/config/base-config.exp, testsuite/modulefiles/spread/3.0,
 5458   testsuite/modulefiles/spread/7.0,
 5459   testsuite/modulefiles/spreadrc/dir3/.modulerc,
 5460   testsuite/modulefiles/spreadrc/dir3/1.0,
 5461   testsuite/modulefiles/spreadrc/dir4/.modulerc,
 5462   testsuite/modulefiles/spreadrc/dir7/.modulerc,
 5463   testsuite/modulefiles/spreadrc/dir7/1.0,
 5464   testsuite/modulefiles/spreadrc/dir8/.modulerc,
 5465   testsuite/modules.00-init/071-args.exp,
 5466   testsuite/modules.00-init/100-pager.exp,
 5467   testsuite/modules.00-init/120-siteconfig.exp,
 5468   testsuite/modules.00-init/130-auto_handling.exp,
 5469   testsuite/modules.00-init/140-color.exp,
 5470   testsuite/modules.10-use/040-load-use.exp,
 5471   testsuite/modules.10-use/080-access-use.exp,
 5472   testsuite/modules.20-locate/031-defvers2.exp,
 5473   testsuite/modules.20-locate/035-defname.exp,
 5474   testsuite/modules.20-locate/038-defcontext.exp,
 5475   testsuite/modules.20-locate/040-alias.exp,
 5476   testsuite/modules.20-locate/043-virtual.exp,
 5477   testsuite/modules.20-locate/045-symvers.exp,
 5478   testsuite/modules.20-locate/046-getsym.exp,
 5479   testsuite/modules.20-locate/047-symerrs.exp,
 5480   testsuite/modules.20-locate/048-symexec.exp,
 5481   testsuite/modules.20-locate/050-locrc.exp,
 5482   testsuite/modules.20-locate/057-mcookie.exp,
 5483   testsuite/modules.20-locate/060-rc.exp,
 5484   testsuite/modules.20-locate/066-modulepath-rc.exp,
 5485   testsuite/modules.20-locate/067-hidden.exp,
 5486   testsuite/modules.20-locate/068-transitive.exp,
 5487   testsuite/modules.20-locate/069-cross.exp,
 5488   testsuite/modules.20-locate/070-homerc.exp,
 5489   testsuite/modules.20-locate/075-symlink.exp,
 5490   testsuite/modules.20-locate/080-access.exp,
 5491   testsuite/modules.20-locate/081-access-rc.exp,
 5492   testsuite/modules.20-locate/100-wspace.exp,
 5493   testsuite/modules.20-locate/110-hide.exp,
 5494   testsuite/modules.20-locate/111-hide-hard.exp,
 5495   testsuite/modules.20-locate/111-hide-soft.exp,
 5496   .../modules.20-locate/112-hide-user-group.exp,
 5497   testsuite/modules.20-locate/113-hide-all-opt.exp,
 5498   .../modules.20-locate/114-hide-before-after.exp,
 5499   testsuite/modules.20-locate/115-forbid.exp,
 5500   .../modules.20-locate/116-forbid-before-after.exp,
 5501   .../modules.20-locate/117-forbid-user-group.exp,
 5502   testsuite/modules.20-locate/118-hidden-loaded.exp,
 5503   testsuite/modules.20-locate/119-hide-cascading.exp,
 5504   testsuite/modules.50-cmds/015-use.exp,
 5505   testsuite/modules.50-cmds/017-use-undo.exp,
 5506   testsuite/modules.50-cmds/020-setenv.exp,
 5507   testsuite/modules.50-cmds/022-setenv-eschars.exp,
 5508   testsuite/modules.50-cmds/025-setenv-undo.exp,
 5509   testsuite/modules.50-cmds/028-setenv-refcount.exp,
 5510   testsuite/modules.50-cmds/029-setenv-env.exp,
 5511   testsuite/modules.50-cmds/030-unsetenv.exp,
 5512   testsuite/modules.50-cmds/035-unsetenv-undo.exp,
 5513   testsuite/modules.50-cmds/036-unsetenv-x.exp,
 5514   .../modules.50-cmds/038-unsetenv-refcount.exp,
 5515   testsuite/modules.50-cmds/039-unsetenv-env.exp,
 5516   testsuite/modules.50-cmds/040-append.exp,
 5517   testsuite/modules.50-cmds/042-append-delim.exp,
 5518   testsuite/modules.50-cmds/045-append-undo.exp,
 5519   testsuite/modules.50-cmds/047-app-del-undo.exp,
 5520   testsuite/modules.50-cmds/049-append-env.exp,
 5521   testsuite/modules.50-cmds/050-prepend.exp,
 5522   testsuite/modules.50-cmds/052-prepend-delim.exp,
 5523   testsuite/modules.50-cmds/055-prepend-undo.exp,
 5524   testsuite/modules.50-cmds/057-pre-del-undo.exp,
 5525   testsuite/modules.50-cmds/059-prepend-env.exp,
 5526   testsuite/modules.50-cmds/060-remove.exp,
 5527   testsuite/modules.50-cmds/062-remove-delim.exp,
 5528   testsuite/modules.50-cmds/065-remove-undo.exp,
 5529   testsuite/modules.50-cmds/069-remove-env.exp,
 5530   testsuite/modules.50-cmds/075-alias.exp,
 5531   testsuite/modules.50-cmds/076-alias-sub.exp,
 5532   testsuite/modules.50-cmds/077-alias-undo.exp,
 5533   testsuite/modules.50-cmds/078-refresh.exp,
 5534   testsuite/modules.50-cmds/080-info-name.exp,
 5535   testsuite/modules.50-cmds/081-info-user.exp,
 5536   testsuite/modules.50-cmds/082-info-user-exp.exp,
 5537   testsuite/modules.50-cmds/083-info-mode.exp,
 5538   testsuite/modules.50-cmds/084-info-mode-exp.exp,
 5539   testsuite/modules.50-cmds/085-info-flags.exp,
 5540   testsuite/modules.50-cmds/086-info-shells.exp,
 5541   testsuite/modules.50-cmds/087-info-shells-exp.exp,
 5542   testsuite/modules.50-cmds/088-info-isloaded.exp,
 5543   testsuite/modules.50-cmds/089-info-type.exp,
 5544   testsuite/modules.50-cmds/095-uname.exp,
 5545   testsuite/modules.50-cmds/100-loglevel.exp,
 5546   testsuite/modules.50-cmds/101-badfac.exp,
 5547   testsuite/modules.50-cmds/105-trace.exp,
 5548   testsuite/modules.50-cmds/110-verbose.exp,
 5549   testsuite/modules.50-cmds/115-verbose-msg.exp,
 5550   testsuite/modules.50-cmds/120-prereq-full.exp,
 5551   testsuite/modules.50-cmds/121-prereq-module.exp,
 5552   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 5553   testsuite/modules.50-cmds/130-conflict-full.exp,
 5554   testsuite/modules.50-cmds/131-conflict-module.exp,
 5555   .../modules.50-cmds/132-conflict-fullpath.exp,
 5556   testsuite/modules.50-cmds/140-system.exp,
 5557   testsuite/modules.50-cmds/150-module.exp,
 5558   testsuite/modules.50-cmds/152-module-emptyarg.exp,
 5559   testsuite/modules.50-cmds/170-swap.exp,
 5560   testsuite/modules.50-cmds/172-swap-app-delim.exp,
 5561   testsuite/modules.50-cmds/173-swap-app-delim.exp,
 5562   testsuite/modules.50-cmds/175-swap2.exp,
 5563   testsuite/modules.50-cmds/177-swap-prep-delim.exp,
 5564   testsuite/modules.50-cmds/178-swap-prep-delim.exp,
 5565   testsuite/modules.50-cmds/180-unload.exp,
 5566   testsuite/modules.50-cmds/190-load.exp,
 5567   testsuite/modules.50-cmds/195-load-recurs.exp,
 5568   testsuite/modules.50-cmds/197-load-lots.exp,
 5569   testsuite/modules.50-cmds/200-break.exp,
 5570   testsuite/modules.50-cmds/210-exit.exp,
 5571   testsuite/modules.50-cmds/220-continue.exp,
 5572   testsuite/modules.50-cmds/230-loop.exp,
 5573   testsuite/modules.50-cmds/240-chdir.exp,
 5574   testsuite/modules.50-cmds/250-x-resource.exp,
 5575   testsuite/modules.50-cmds/260-getenv.exp,
 5576   testsuite/modules.50-cmds/269-getenv-env.exp,
 5577   testsuite/modules.50-cmds/280-info-specified.exp,
 5578   testsuite/modules.50-cmds/281-info-modulerc.exp,
 5579   testsuite/modules.50-cmds/282-info-command.exp,
 5580   testsuite/modules.50-cmds/283-info-command-exp.exp,
 5581   testsuite/modules.50-cmds/285-info-loaded.exp,
 5582   testsuite/modules.50-cmds/286-info-username.exp,
 5583   testsuite/modules.50-cmds/287-info-usergroups.exp,
 5584   testsuite/modules.50-cmds/288-info-tags.exp,
 5585   testsuite/modules.50-cmds/300-interp.exp,
 5586   testsuite/modules.50-cmds/301-interp-command.exp,
 5587   testsuite/modules.50-cmds/302-interp-cascaded.exp,
 5588   testsuite/modules.50-cmds/310-puts.exp,
 5589   testsuite/modules.50-cmds/320-is-saved.exp,
 5590   testsuite/modules.50-cmds/321-is-used.exp,
 5591   testsuite/modules.50-cmds/322-is-avail.exp,
 5592   testsuite/modules.50-cmds/330-source.exp,
 5593   testsuite/modules.50-cmds/340-modvar.exp,
 5594   testsuite/modules.50-cmds/350-allin.exp,
 5595   testsuite/modules.50-cmds/359-allin-env.exp,
 5596   testsuite/modules.50-cmds/360-restoreenv.exp,
 5597   testsuite/modules.50-cmds/370-deps-bis.exp,
 5598   testsuite/modules.50-cmds/370-deps-fullpath.exp,
 5599   testsuite/modules.50-cmds/370-deps.exp,
 5600   testsuite/modules.50-cmds/371-deps2.exp,
 5601   testsuite/modules.50-cmds/372-deps3.exp,
 5602   testsuite/modules.50-cmds/373-deps4.exp,
 5603   testsuite/modules.50-cmds/374-deps5.exp,
 5604   testsuite/modules.50-cmds/375-deps6.exp,
 5605   testsuite/modules.50-cmds/375-order.exp,
 5606   testsuite/modules.50-cmds/376-deps7.exp,
 5607   .../modules.50-cmds/376-switch-change-vers.exp,
 5608   testsuite/modules.50-cmds/376-switch.exp,
 5609   testsuite/modules.50-cmds/377-cyclic.exp,
 5610   testsuite/modules.50-cmds/377-deps8.exp,
 5611   testsuite/modules.50-cmds/377-error.exp,
 5612   testsuite/modules.50-cmds/377-opposite.exp,
 5613   testsuite/modules.50-cmds/378-sametarget.exp,
 5614   testsuite/modules.50-cmds/379-module-unload.exp,
 5615   testsuite/modules.50-cmds/380-altname.exp,
 5616   testsuite/modules.50-cmds/390-function.exp,
 5617   testsuite/modules.50-cmds/391-function-undo.exp,
 5618   testsuite/modules.50-cmds/400-source-sh.exp,
 5619   testsuite/modules.50-cmds/410-modvar.exp,
 5620   testsuite/modules.50-cmds/420-versioncmp.exp,
 5621   testsuite/modules.50-cmds/430-implicit-req.exp,
 5622   testsuite/modules.50-cmds/431-not-req.exp,
 5623   testsuite/modules.50-cmds/440-module-tag.exp,
 5624   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 5625   testsuite/modules.50-cmds/460-sticky.exp,
 5626   testsuite/modules.50-cmds/461-super-sticky.exp,
 5627   testsuite/modules.50-cmds/462-sticky-corner.exp,
 5628   testsuite/modules.50-cmds/470-variant.exp,
 5629   testsuite/modules.50-cmds/471-variant-unload.exp,
 5630   testsuite/modules.50-cmds/472-getvariant.exp,
 5631   testsuite/modules.50-cmds/473-variant-prereq.exp,
 5632   testsuite/modules.50-cmds/474-variant-conflict.exp,
 5633   testsuite/modules.50-cmds/475-variant-tag.exp,
 5634   testsuite/modules.50-cmds/476-variant-aliassym.exp,
 5635   testsuite/modules.50-cmds/477-variant-info.exp,
 5636   testsuite/modules.50-cmds/479-variant-boolean.exp,
 5637   testsuite/modules.50-cmds/490-try-load.exp,
 5638   testsuite/modules.61-coll/030-save.exp,
 5639   testsuite/modules.61-coll/040-restore.exp,
 5640   testsuite/modules.61-coll/060-saveshow.exp,
 5641   testsuite/modules.61-coll/080-access-coll.exp,
 5642   testsuite/modules.70-maint/020-update.exp,
 5643   testsuite/modules.70-maint/030-purge.exp,
 5644   testsuite/modules.70-maint/040-list.exp,
 5645   testsuite/modules.70-maint/045-listlong.exp,
 5646   testsuite/modules.70-maint/050-whatis-load.exp,
 5647   testsuite/modules.70-maint/120-autoinit.exp,
 5648   testsuite/modules.70-maint/140-multiargs.exp,
 5649   testsuite/modules.70-maint/180-reload.exp,
 5650   testsuite/modules.70-maint/190-emptyarg.exp,
 5651   testsuite/modules.70-maint/210-clear.exp,
 5652   testsuite/modules.70-maint/220-config.exp,
 5653   testsuite/modules.70-maint/230-verbosity.exp,
 5654   testsuite/modules.70-maint/231-verbose2.exp,
 5655   testsuite/modules.70-maint/240-icase.exp,
 5656   testsuite/modules.70-maint/250-nan.exp,
 5657   .../modules.70-maint/260-extended_default.exp,
 5658   .../modules.70-maint/270-adv_version_spec.exp,
 5659   .../modules.70-maint/271-adv_version_spec-in.exp,
 5660   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
 5661   .../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
 5662   .../276-adv_version_spec-rangein.exp, testsuite/modules.70-maint/280-ml.exp,
 5663   testsuite/modules.70-maint/290-json.exp,
 5664   testsuite/modules.70-maint/300-err_stack.exp,
 5665   testsuite/modules.70-maint/320-tags.exp,
 5666   testsuite/modules.70-maint/321-tag_abbrev.exp,
 5667   testsuite/modules.70-maint/322-tag-sgr.exp,
 5668   testsuite/modules.70-maint/330-large-file.exp,
 5669   testsuite/modules.70-maint/340-output-key.exp,
 5670   testsuite/modules.70-maint/350-term_width.exp,
 5671   testsuite/modules.70-maint/360-avail_output.exp,
 5672   testsuite/modules.70-maint/361-list_output.exp,
 5673   testsuite/modules.70-maint/370-variant.exp,
 5674   testsuite/modules.70-maint/371-variant-msg.exp,
 5675   testsuite/modules.70-maint/372-variant-display.exp,
 5676   testsuite/modules.70-maint/373-variant-help.exp,
 5677   testsuite/modules.70-maint/374-variant-test.exp,
 5678   testsuite/modules.70-maint/375-variant-whatis.exp,
 5679   testsuite/modules.70-maint/376-variant-tag.exp,
 5680   .../modules.70-maint/377-variant-shortcut.exp,
 5681   testsuite/modules.80-deep/020-load-deep.exp,
 5682   testsuite/modules.80-deep/021-unload.exp,
 5683   testsuite/modules.80-deep/022-switch.exp,
 5684   testsuite/modules.80-deep/068-transitive-deep.exp,
 5685   testsuite/modules.80-deep/080-access-deep.exp,
 5686   testsuite/modules.80-deep/090-deepvirt.exp,
 5687   testsuite/modules.90-avail/080-noindepth.exp,
 5688   testsuite/modules.90-avail/100-tags.exp,
 5689   testsuite/modules.91-sort/040-load-sort.exp,
 5690   testsuite/modules.95-version/020-load-version.exp,
 5691   testsuite/modules.95-version/020-unload.exp,
 5692   testsuite/modules.95-version/022-load2.exp,
 5693   testsuite/modules.95-version/022-unload2.exp,
 5694   testsuite/modules.95-version/040-xgetenv.exp,
 5695   testsuite/modules.95-version/050-fullpathentry.exp: ts: no ref count on most
 5696   Modules-specific env var
 5697 
 5698   * tcl/envmngt.tcl.in: No ref count for Modules-specific path variables
 5699   Exclude the Modules-specific variables (like LOADEDMODULES) from the
 5700   reference counting mechanism. As a result no <VAR>_modshare variable is set
 5701   in user environment for these variables. Exception is made for MODULEPATH
 5702   environment variable that still benefit from the mechanism.  This change is
 5703   made as the reference counting mechanism is useless for all Modules-specific
 5704   variables except for MODULEPATH. Either the entries are unique (same module
 5705   cannot be loaded twice in LOADEDMODULES) or duplicate elements are allowed
 5706   (same modulefile could be used twice by virtual modules in _LMFILES_). Also
 5707   each entry in the __MODULES_LM* variables uses as prefix the loaded module
 5708   name the entry is associated to.
 5709 
 5710 2021-08-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5711 
 5712   * .gitignore, Makefile: install: add Makefile rule to build Ctags index
 5713 
 5714 2021-08-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5715 
 5716   * testsuite/config/base-config.exp,
 5717   testsuite/install.00-init/010-environ.exp, testsuite/modulefiles/spread/3.0,
 5718   testsuite/modulefiles/spread/7.0,
 5719   testsuite/modulefiles/spreadrc/dir3/.modulerc,
 5720   testsuite/modulefiles/spreadrc/dir3/1.0,
 5721   testsuite/modulefiles/spreadrc/dir4/.modulerc,
 5722   testsuite/modulefiles/spreadrc/dir7/.modulerc,
 5723   testsuite/modulefiles/spreadrc/dir7/1.0,
 5724   testsuite/modulefiles/spreadrc/dir8/.modulerc,
 5725   testsuite/modules.00-init/010-environ.exp,
 5726   testsuite/modules.00-init/130-auto_handling.exp,
 5727   testsuite/modules.20-locate/069-cross.exp,
 5728   testsuite/modules.20-locate/070-homerc.exp,
 5729   testsuite/modules.20-locate/100-wspace.exp,
 5730   testsuite/modules.20-locate/110-hide.exp,
 5731   testsuite/modules.20-locate/111-hide-hard.exp,
 5732   testsuite/modules.20-locate/111-hide-soft.exp,
 5733   testsuite/modules.20-locate/115-forbid.exp,
 5734   testsuite/modules.20-locate/118-hidden-loaded.exp,
 5735   testsuite/modules.50-cmds/120-prereq-full.exp,
 5736   testsuite/modules.50-cmds/121-prereq-module.exp,
 5737   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 5738   testsuite/modules.50-cmds/150-module.exp,
 5739   testsuite/modules.50-cmds/170-swap.exp,
 5740   testsuite/modules.50-cmds/195-load-recurs.exp,
 5741   testsuite/modules.50-cmds/197-load-lots.exp,
 5742   testsuite/modules.50-cmds/288-info-tags.exp,
 5743   testsuite/modules.50-cmds/302-interp-cascaded.exp,
 5744   testsuite/modules.50-cmds/310-puts.exp,
 5745   testsuite/modules.50-cmds/340-modvar.exp,
 5746   testsuite/modules.50-cmds/350-allin.exp,
 5747   testsuite/modules.50-cmds/370-deps-bis.exp,
 5748   testsuite/modules.50-cmds/370-deps.exp,
 5749   testsuite/modules.50-cmds/371-deps2.exp,
 5750   testsuite/modules.50-cmds/373-deps4.exp,
 5751   testsuite/modules.50-cmds/374-deps5.exp,
 5752   testsuite/modules.50-cmds/375-deps6.exp,
 5753   testsuite/modules.50-cmds/375-order.exp,
 5754   testsuite/modules.50-cmds/376-deps7.exp,
 5755   .../modules.50-cmds/376-switch-change-vers.exp,
 5756   testsuite/modules.50-cmds/376-switch.exp,
 5757   testsuite/modules.50-cmds/377-cyclic.exp,
 5758   testsuite/modules.50-cmds/377-deps8.exp,
 5759   testsuite/modules.50-cmds/377-error.exp,
 5760   testsuite/modules.50-cmds/377-opposite.exp,
 5761   testsuite/modules.50-cmds/378-sametarget.exp,
 5762   testsuite/modules.50-cmds/379-module-unload.exp,
 5763   testsuite/modules.50-cmds/380-altname.exp,
 5764   testsuite/modules.50-cmds/410-modvar.exp,
 5765   testsuite/modules.50-cmds/430-implicit-req.exp,
 5766   testsuite/modules.50-cmds/431-not-req.exp,
 5767   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 5768   testsuite/modules.50-cmds/460-sticky.exp,
 5769   testsuite/modules.50-cmds/461-super-sticky.exp,
 5770   testsuite/modules.50-cmds/473-variant-prereq.exp,
 5771   testsuite/modules.50-cmds/474-variant-conflict.exp,
 5772   testsuite/modules.50-cmds/475-variant-tag.exp,
 5773   testsuite/modules.50-cmds/479-variant-boolean.exp,
 5774   testsuite/modules.50-cmds/490-try-load.exp,
 5775   testsuite/modules.61-coll/010-init_ts.exp,
 5776   testsuite/modules.61-coll/040-restore.exp,
 5777   testsuite/modules.70-maint/120-autoinit.exp,
 5778   testsuite/modules.70-maint/210-clear.exp,
 5779   testsuite/modules.70-maint/230-verbosity.exp,
 5780   testsuite/modules.70-maint/240-icase.exp,
 5781   testsuite/modules.70-maint/250-nan.exp,
 5782   .../modules.70-maint/260-extended_default.exp,
 5783   .../modules.70-maint/270-adv_version_spec.exp,
 5784   .../modules.70-maint/271-adv_version_spec-in.exp,
 5785   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
 5786   .../274-adv_version_spec-autosym.exp, .../276-adv_version_spec-rangein.exp,
 5787   testsuite/modules.70-maint/280-ml.exp,
 5788   testsuite/modules.70-maint/320-tags.exp,
 5789   testsuite/modules.70-maint/321-tag_abbrev.exp,
 5790   testsuite/modules.70-maint/322-tag-sgr.exp,
 5791   .../modules.70-maint/377-variant-shortcut.exp,
 5792   testsuite/modules.80-deep/020-load-deep.exp: ts: adapt tests for
 5793   __MODULES_LMNOTUASKED removal
 5794 
 5795   * tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record loaded/auto-loaded tag on
 5796   mod name with variants  Also set loaded or auto-loaded tag on the module
 5797   designation including variants, as tags to export in __MODULES_LMTAG
 5798   variable are those set on the variant designation.
 5799 
 5800 2021-08-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5801 
 5802   * NEWS.rst: doc: desc auto-loaded tag record change in NEWS
 5803 
 5804   * doc/source/design/module-tags.rst, doc/source/diff_v3_v4.rst,
 5805   doc/source/module.rst: doc: remove ref of __MODULES_LMNOTUASKED env var
 5806 
 5807   * tcl/coll.tcl, tcl/modeval.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in:
 5808   Check loaded/auto-loaded tag rather specific struct/proc  Remove the
 5809   isModuleUserAsked procedure and g_loadedModuleUasked array. Check if the
 5810   'loaded' or 'auto-loaded' tag is set instead.
 5811 
 5812   * tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record auto-loaded tag rather use
 5813   specific env variable  Record the 'auto-loaded' tag for loaded modules that
 5814   have been loaded automatically, rather recording this state in a specific
 5815   environment variable __MODULES_LMNOTUASKED.
 5816 
 5817   * lib/.gitignore, lib/Makefile.in: install: split lib build in two steps for
 5818   coverage  To ensure the coverage files are correctly named after the .c
 5819   source file name, first build the object file then process it with linker to
 5820   build the shared library.
 5821 
 5822   * NEWS.rst: doc: desc. source code split in NEWS
 5823 
 5824   * CONTRIBUTING.rst: doc: desc. coverage build changes in CONTRIBUTING
 5825 
 5826 2021-07-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5827 
 5828   * script/mb: script: exclude alpha/beta and old releases in mb  Exclude from
 5829   bench or profiling tests releases older than 4.3 (or 4.6 in profiling mode).
 5830   Also exclude from these tests the alpha and beta releases.
 5831 
 5832 2021-07-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5833 
 5834   * .cirrus.yml, .github/workflows/linux_tests.yaml, script/nglfar2ccov:
 5835   script: call nglfar2ccov over each tcl split scripts
 5836 
 5837   * testsuite/modules.00-init/005-init_ts.exp: ts: more precise extension
 5838   library filename guess
 5839 
 5840   * .gitignore, Makefile: ts: check coverage of split tcl files  Update
 5841   makefile rules to check coverage of split tcl source files rather built
 5842   modulecmd.tcl script.
 5843 
 5844 2021-07-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5845 
 5846   * .gitignore, Makefile: install: add rules to build modulecmd.tcl from split
 5847   files  modulecmd.tcl has been split in the repository in several tcl files
 5848   located in the tcl/ directory. This change has been done to make code
 5849   editing easier.  modulecmd.tcl is still shipped as a single executable
 5850   script to ensure best performances. This single script is made by joining
 5851   all the tcl files from tcl/ directory.  An alternative approach has been
 5852   tested where modulecmd.tcl auto loads the procedure located in external tcl
 5853   files. But a performance overhead was observed. So it has been decided to
 5854   split code to edit sources but still build and ship a standalone
 5855   modulecmd.tcl script.
 5856 
 5857 2021-07-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5858 
 5859   * script/mt, modulecmd.tcl.in => tcl/main.tcl.in: Split main procs and code
 5860   in dedicated file
 5861 
 5862   * modulecmd.tcl.in, tcl/report.tcl.in: Split report procs in dedicated file
 5863 
 5864   * modulecmd.tcl.in, tcl/envmngt.tcl.in: Split env management procs in
 5865   dedicated file
 5866 
 5867   * modulecmd.tcl.in, tcl/util.tcl: Split utility procs in dedicated file
 5868 
 5869   * modulecmd.tcl.in, tcl/init.tcl.in: Split config and state handling procs
 5870   in dedicated file
 5871 
 5872   * modulecmd.tcl.in, tcl/subcmd.tcl.in: Make dedicated procs for usage msg
 5873   report  Extract the usage message report from cmdModuleHelp and cmdMlHelp
 5874   procedures and create standalone procedures respectively reportUsage and
 5875   reportMlUsage.  When usage message has to be printed, the appropriate
 5876   procedure can be fetched from the report side and not from the sub-command
 5877   side.
 5878 
 5879   * script/mb: script: limit output header length in mb
 5880 
 5881 2021-07-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5882 
 5883   * modulecmd.tcl.in, tcl/subcmd.tcl.in: Split module sub-command procs in
 5884   dedicated file
 5885 
 5886   * modulecmd.tcl.in, tcl/coll.tcl: Split collection mngt procs in dedicated
 5887   file
 5888 
 5889   * modulecmd.tcl.in, tcl/modspec.tcl: Split module specification procs in
 5890   dedicated file
 5891 
 5892   * modulecmd.tcl.in, tcl/modeval.tcl: Split module evaluation procs in
 5893   dedicated file
 5894 
 5895   * modulecmd.tcl.in, tcl/modfind.tcl.in: Split avail/loaded module find procs
 5896   in dedicated file
 5897 
 5898   * modulecmd.tcl.in, tcl/mfinterp.tcl.in: Split modulefile interpretation
 5899   procs in dedicated file
 5900 
 5901   * modulecmd.tcl.in: Regroup avail/loaded module find procs
 5902 
 5903   * modulecmd.tcl.in: Regroup module evaluation procs
 5904 
 5905   * modulecmd.tcl.in: Regroup module specification procs
 5906 
 5907   * modulecmd.tcl.in: Regroup collection management procs
 5908 
 5909   * modulecmd.tcl.in: Regroup module sub-commands procs
 5910 
 5911   * modulecmd.tcl.in: Regroup utilities procs
 5912 
 5913   * modulecmd.tcl.in: Regroup modulefile interpretation procs
 5914 
 5915   * modulecmd.tcl.in: Regroup main procs and core code
 5916 
 5917   * modulecmd.tcl.in: Regroup report procedures
 5918 
 5919   * modulecmd.tcl.in: Regroup environment management procs
 5920 
 5921   * modulecmd.tcl.in: Regroup config and state handling procs
 5922 
 5923 2021-07-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5924 
 5925   * NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
 5926   version.inc.in: Release of version 5.0.0-alpha
 5927 
 5928   * script/mpub, script/mrel: script: consider alpha/beta valid release name
 5929   in mrel/mpub
 5930 
 5931   * modulecmd.tcl.in: Make use of 'list' or 'lappend' instead of 'concat'
 5932   Joining two lists should be achieved with 'list' or 'lappend' commands in
 5933   conjunction with '{*}' rather using the 'concat' command.
 5934 
 5935   * testsuite/modules.50-cmds/286-info-username.exp,
 5936   testsuite/modules.50-cmds/287-info-usergroups.exp,
 5937   testsuite/modules.70-maint/120-autoinit.exp: ts: update tests changed by use
 5938   of '{*}'
 5939 
 5940   * modulecmd.tcl.in: Also use '{*}' for module proc def on Tcl  Use '{*}'
 5941   instead of 'eval' in the definition of the 'module' procedure for Tcl shell.
 5942 
 5943   * modulecmd.tcl.in: Use '{*}' to unfold list in place  Update
 5944   'modulecmd.tcl' code to use '{*}' rather than 'eval' to unfold list in
 5945   place.
 5946 
 5947   * testsuite/example/siteconfig.tcl-1,
 5948   testsuite/modules.00-init/120-siteconfig.exp,
 5949   testsuite/modules.20-locate/110-hide.exp,
 5950   .../modules.20-locate/114-hide-before-after.exp,
 5951   testsuite/modules.20-locate/115-forbid.exp,
 5952   .../modules.20-locate/116-forbid-before-after.exp,
 5953   testsuite/modules.20-locate/119-hide-cascading.exp,
 5954   testsuite/modules.50-cmds/095-uname.exp,
 5955   testsuite/modules.50-cmds/151-module-onlytop.exp,
 5956   testsuite/modules.50-cmds/152-module-emptyarg.exp,
 5957   testsuite/modules.50-cmds/284-info-others.exp,
 5958   testsuite/modules.50-cmds/286-info-username.exp,
 5959   testsuite/modules.50-cmds/287-info-usergroups.exp,
 5960   testsuite/modules.50-cmds/288-info-tags.exp,
 5961   testsuite/modules.50-cmds/330-source.exp,
 5962   testsuite/modules.50-cmds/400-source-sh.exp,
 5963   testsuite/modules.50-cmds/440-module-tag.exp,
 5964   testsuite/modules.50-cmds/475-variant-tag.exp,
 5965   testsuite/modules.50-cmds/476-variant-aliassym.exp,
 5966   testsuite/modules.50-cmds/478-variant-version.exp,
 5967   testsuite/modules.50-cmds/479-variant-boolean.exp,
 5968   testsuite/modules.70-maint/070-display.exp,
 5969   testsuite/modules.70-maint/080-help.exp,
 5970   testsuite/modules.70-maint/085-test.exp,
 5971   testsuite/modules.70-maint/120-autoinit.exp,
 5972   testsuite/modules.70-maint/170-contact.exp,
 5973   testsuite/modules.70-maint/300-err_stack.exp,
 5974   testsuite/modules.70-maint/320-tags.exp: ts: update/clean tests with
 5975   specific answer for Tcl 8.4
 5976 
 5977 2021-07-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 5978 
 5979   * modulecmd.tcl.in: Use 'in' list containment test available starting Tcl
 5980   8.5  Update 'modulecmd.tcl' code to use the 'in' list containment test from
 5981   'expr' rather the home-made isInList procedure.
 5982 
 5983   * modulecmd.tcl.in: Use 'ni' list containment test available starting Tcl
 5984   8.5  Update 'modulecmd.tcl' code to use the 'ni' list containment test from
 5985   'expr' rather the home-made notInList procedure.
 5986 
 5987   * modulecmd.tcl.in: Rely on 'glob -nocomplain' to raise permission error  On
 5988   Tcl 8.4, the -nocomplain option of glob command was also catching file
 5989   permission error in addition to empty result error. Starting Tcl 8.5, the
 5990   -nocompain option let the permission error be thrown upward.
 5991 
 5992   * modulecmd.tcl.in: Use min/max procedures available starting Tcl 8.5.
 5993   Update 'modulecmd.tcl' code to use the tcl::mathfunc::min and
 5994   tcl::mathfunc::max procedures that are available starting Tcl version 8.5.
 5995 
 5996   * modulecmd.tcl.in: Remove lreverse/lassign procs provided for Tcl8.4
 5997   Remove the lreverse and lassign procedures defined when 'modulecmd.tcl'
 5998   script were running with Tcl 8.4. These two procedures are natively
 5999   available on Tcl 8.5.
 6000 
 6001   * .github/workflows/linux_tests.yaml: gh: migrate Tcl 8.4 test cases to Tcl
 6002   8.5
 6003 
 6004   * lib/configure.ac, lib/envmodules.c: lib: Tcl requirement moved to version
 6005   8.5+  Update Tcl Envmodules library to clean specific code required to raise
 6006   error on Tcl 8.4.  Bump version of Tcl Envmodules library to 1.4.0.
 6007 
 6008   * CONTRIBUTING.rst, INSTALL-win.rst, INSTALL.rst, NEWS.rst, README.md: doc:
 6009   Tcl requirement moved to version 8.5+  Update Tcl requirement to version 8.5
 6010   as Tcl 8.4 is deprecated since a long time and this version is not available
 6011   anymore on recent OS distributions. Update internal code of
 6012   :file:`modulecmd.tcl` to take benefit from the features brought by Tcl 8.5.
 6013 
 6014 2021-07-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6015 
 6016   * testsuite/install.00-init/010-environ.exp, testsuite/modulefiles.2/quar,
 6017   testsuite/modules.00-init/010-environ.exp,
 6018   testsuite/modules.00-init/110-quar.exp,
 6019   testsuite/modules.70-maint/120-autoinit.exp,
 6020   testsuite/modules.70-maint/220-config.exp: ts: update reference to renamed
 6021   __MODULES_QUAR_* vars
 6022 
 6023   * doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: update reference to
 6024   renamed __MODULES_QUAR_* vars
 6025 
 6026   * NEWS.rst, init/bash.in, init/cmake.in, init/fish.in, init/ksh.in,
 6027   init/perl.pm.in, init/python.py.in, init/r.R.in, init/ruby.rb.in,
 6028   init/sh.in, init/tcl.in, init/zsh.in, modulecmd.tcl.in: Use
 6029   '__MODULES_QUAR_' prefix on env var set in quarantine  Rename the
 6030   environment variables used to indirectly pass to `modulecmd.tcl` the value
 6031   of variables set in quarantine (variables whose name finishes with
 6032   `_modquar`). A `__MODULES_QUAR_` prefix is applied to the name of these
 6033   variables instead of the `_modquar` suffix to indicate they are intended for
 6034   Modules internal use of only.
 6035 
 6036   * testsuite/modules.10-use/080-access-use.exp,
 6037   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 6038   .../modules.50-cmds/132-conflict-fullpath.exp,
 6039   testsuite/modules.50-cmds/197-load-lots.exp,
 6040   testsuite/modules.50-cmds/280-info-specified.exp,
 6041   testsuite/modules.50-cmds/281-info-modulerc.exp,
 6042   testsuite/modules.50-cmds/350-allin.exp,
 6043   testsuite/modules.50-cmds/400-source-sh.exp,
 6044   testsuite/modules.61-coll/040-restore.exp,
 6045   testsuite/modules.70-maint/120-autoinit.exp,
 6046   testsuite/modules.70-maint/210-clear.exp,
 6047   testsuite/modules.70-maint/220-config.exp,
 6048   testsuite/modules.70-maint/280-ml.exp,
 6049   testsuite/modules.80-deep/020-load-deep.exp: ts: update tests after LM env
 6050   var renaming
 6051 
 6052   * testsuite/config/base-config.exp,
 6053   testsuite/install.00-init/010-environ.exp, testsuite/modulefiles/spread/3.0,
 6054   testsuite/modulefiles/spread/7.0,
 6055   testsuite/modulefiles/spreadrc/dir3/.modulerc,
 6056   testsuite/modulefiles/spreadrc/dir3/1.0,
 6057   testsuite/modulefiles/spreadrc/dir4/.modulerc,
 6058   testsuite/modulefiles/spreadrc/dir7/.modulerc,
 6059   testsuite/modulefiles/spreadrc/dir7/1.0,
 6060   testsuite/modulefiles/spreadrc/dir8/.modulerc,
 6061   testsuite/modules.00-init/010-environ.exp,
 6062   testsuite/modules.00-init/071-args.exp,
 6063   testsuite/modules.00-init/120-siteconfig.exp,
 6064   testsuite/modules.00-init/130-auto_handling.exp,
 6065   testsuite/modules.00-init/140-color.exp,
 6066   testsuite/modules.10-use/040-load-use.exp,
 6067   testsuite/modules.10-use/080-access-use.exp,
 6068   testsuite/modules.20-locate/031-defvers2.exp,
 6069   testsuite/modules.20-locate/035-defname.exp,
 6070   testsuite/modules.20-locate/038-defcontext.exp,
 6071   testsuite/modules.20-locate/045-symvers.exp,
 6072   testsuite/modules.20-locate/048-symexec.exp,
 6073   testsuite/modules.20-locate/050-locrc.exp,
 6074   testsuite/modules.20-locate/060-rc.exp,
 6075   testsuite/modules.20-locate/066-modulepath-rc.exp,
 6076   testsuite/modules.20-locate/067-hidden.exp,
 6077   testsuite/modules.20-locate/068-transitive.exp,
 6078   testsuite/modules.20-locate/069-cross.exp,
 6079   testsuite/modules.20-locate/070-homerc.exp,
 6080   testsuite/modules.20-locate/075-symlink.exp,
 6081   testsuite/modules.20-locate/080-access.exp,
 6082   testsuite/modules.20-locate/100-wspace.exp,
 6083   testsuite/modules.20-locate/110-hide.exp,
 6084   testsuite/modules.20-locate/111-hide-hard.exp,
 6085   testsuite/modules.20-locate/111-hide-soft.exp,
 6086   .../modules.20-locate/112-hide-user-group.exp,
 6087   testsuite/modules.20-locate/113-hide-all-opt.exp,
 6088   .../modules.20-locate/114-hide-before-after.exp,
 6089   testsuite/modules.20-locate/115-forbid.exp,
 6090   .../modules.20-locate/116-forbid-before-after.exp,
 6091   .../modules.20-locate/117-forbid-user-group.exp,
 6092   testsuite/modules.20-locate/118-hidden-loaded.exp,
 6093   testsuite/modules.20-locate/119-hide-cascading.exp,
 6094   testsuite/modules.50-cmds/015-use.exp,
 6095   testsuite/modules.50-cmds/120-prereq-full.exp,
 6096   testsuite/modules.50-cmds/121-prereq-module.exp,
 6097   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 6098   testsuite/modules.50-cmds/130-conflict-full.exp,
 6099   testsuite/modules.50-cmds/131-conflict-module.exp,
 6100   .../modules.50-cmds/132-conflict-fullpath.exp,
 6101   testsuite/modules.50-cmds/150-module.exp,
 6102   testsuite/modules.50-cmds/170-swap.exp,
 6103   testsuite/modules.50-cmds/195-load-recurs.exp,
 6104   testsuite/modules.50-cmds/197-load-lots.exp,
 6105   testsuite/modules.50-cmds/280-info-specified.exp,
 6106   testsuite/modules.50-cmds/281-info-modulerc.exp,
 6107   testsuite/modules.50-cmds/288-info-tags.exp,
 6108   testsuite/modules.50-cmds/302-interp-cascaded.exp,
 6109   testsuite/modules.50-cmds/310-puts.exp,
 6110   testsuite/modules.50-cmds/340-modvar.exp,
 6111   testsuite/modules.50-cmds/350-allin.exp,
 6112   testsuite/modules.50-cmds/370-deps-bis.exp,
 6113   testsuite/modules.50-cmds/370-deps-fullpath.exp,
 6114   testsuite/modules.50-cmds/370-deps.exp,
 6115   testsuite/modules.50-cmds/371-deps2.exp,
 6116   testsuite/modules.50-cmds/372-deps3.exp,
 6117   testsuite/modules.50-cmds/373-deps4.exp,
 6118   testsuite/modules.50-cmds/374-deps5.exp,
 6119   testsuite/modules.50-cmds/375-deps6.exp,
 6120   testsuite/modules.50-cmds/375-order.exp,
 6121   testsuite/modules.50-cmds/376-deps7.exp,
 6122   .../modules.50-cmds/376-switch-change-vers.exp,
 6123   testsuite/modules.50-cmds/376-switch.exp,
 6124   testsuite/modules.50-cmds/377-cyclic.exp,
 6125   testsuite/modules.50-cmds/377-deps8.exp,
 6126   testsuite/modules.50-cmds/377-error.exp,
 6127   testsuite/modules.50-cmds/377-opposite.exp,
 6128   testsuite/modules.50-cmds/378-sametarget.exp,
 6129   testsuite/modules.50-cmds/379-module-unload.exp,
 6130   testsuite/modules.50-cmds/380-altname.exp,
 6131   testsuite/modules.50-cmds/400-source-sh.exp,
 6132   testsuite/modules.50-cmds/410-modvar.exp,
 6133   testsuite/modules.50-cmds/430-implicit-req.exp,
 6134   testsuite/modules.50-cmds/431-not-req.exp,
 6135   testsuite/modules.50-cmds/440-module-tag.exp,
 6136   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 6137   testsuite/modules.50-cmds/460-sticky.exp,
 6138   testsuite/modules.50-cmds/461-super-sticky.exp,
 6139   testsuite/modules.50-cmds/462-sticky-corner.exp,
 6140   testsuite/modules.50-cmds/470-variant.exp,
 6141   testsuite/modules.50-cmds/471-variant-unload.exp,
 6142   testsuite/modules.50-cmds/472-getvariant.exp,
 6143   testsuite/modules.50-cmds/473-variant-prereq.exp,
 6144   testsuite/modules.50-cmds/474-variant-conflict.exp,
 6145   testsuite/modules.50-cmds/475-variant-tag.exp,
 6146   testsuite/modules.50-cmds/476-variant-aliassym.exp,
 6147   testsuite/modules.50-cmds/477-variant-info.exp,
 6148   testsuite/modules.50-cmds/479-variant-boolean.exp,
 6149   testsuite/modules.50-cmds/490-try-load.exp,
 6150   testsuite/modules.61-coll/030-save.exp,
 6151   testsuite/modules.61-coll/040-restore.exp,
 6152   testsuite/modules.61-coll/080-access-coll.exp,
 6153   testsuite/modules.70-maint/040-list.exp,
 6154   testsuite/modules.70-maint/045-listlong.exp,
 6155   testsuite/modules.70-maint/120-autoinit.exp,
 6156   testsuite/modules.70-maint/210-clear.exp,
 6157   testsuite/modules.70-maint/220-config.exp,
 6158   testsuite/modules.70-maint/230-verbosity.exp,
 6159   testsuite/modules.70-maint/231-verbose2.exp,
 6160   testsuite/modules.70-maint/240-icase.exp,
 6161   testsuite/modules.70-maint/250-nan.exp,
 6162   .../modules.70-maint/260-extended_default.exp,
 6163   .../modules.70-maint/270-adv_version_spec.exp,
 6164   .../modules.70-maint/271-adv_version_spec-in.exp,
 6165   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
 6166   .../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
 6167   .../276-adv_version_spec-rangein.exp, testsuite/modules.70-maint/280-ml.exp,
 6168   testsuite/modules.70-maint/290-json.exp,
 6169   testsuite/modules.70-maint/300-err_stack.exp,
 6170   testsuite/modules.70-maint/320-tags.exp,
 6171   testsuite/modules.70-maint/321-tag_abbrev.exp,
 6172   testsuite/modules.70-maint/322-tag-sgr.exp,
 6173   testsuite/modules.70-maint/340-output-key.exp,
 6174   testsuite/modules.70-maint/350-term_width.exp,
 6175   testsuite/modules.70-maint/361-list_output.exp,
 6176   testsuite/modules.70-maint/370-variant.exp,
 6177   testsuite/modules.70-maint/371-variant-msg.exp,
 6178   testsuite/modules.70-maint/372-variant-display.exp,
 6179   testsuite/modules.70-maint/373-variant-help.exp,
 6180   testsuite/modules.70-maint/374-variant-test.exp,
 6181   testsuite/modules.70-maint/375-variant-whatis.exp,
 6182   testsuite/modules.70-maint/376-variant-tag.exp,
 6183   .../modules.70-maint/377-variant-shortcut.exp,
 6184   testsuite/modules.80-deep/020-load-deep.exp,
 6185   testsuite/modules.80-deep/021-unload.exp,
 6186   testsuite/modules.80-deep/022-switch.exp,
 6187   testsuite/modules.80-deep/068-transitive-deep.exp,
 6188   testsuite/modules.80-deep/080-access-deep.exp,
 6189   testsuite/modules.80-deep/090-deepvirt.exp,
 6190   testsuite/modules.90-avail/100-tags.exp,
 6191   testsuite/modules.91-sort/040-load-sort.exp,
 6192   testsuite/modules.95-version/022-load2.exp: ts: update reference to renamed
 6193   __MODULES_LM* vars
 6194 
 6195   * NEWS.rst, .../design/advanced-module-version-specifiers.rst,
 6196   .../design/default-latest-version-specifiers.rst,
 6197   doc/source/design/hide-or-forbid-modulefile.rst,
 6198   doc/source/design/module-tags.rst,
 6199   .../design/source-shell-script-in-modulefile.rst,
 6200   doc/source/design/variants.rst, doc/source/diff_v3_v4.rst,
 6201   doc/source/module.rst, doc/source/modulefile.rst: doc: update reference to
 6202   renamed __MODULES_LM* vars
 6203 
 6204   * NEWS.rst, modulecmd.tcl.in, script/mb: Add '__' prefix to name of loaded
 6205   env tracking env variable  Rename the environment variables that are used by
 6206   Modules to track loaded environment state (variables whose name starts with
 6207   `MODULES_LM`). A `__` prefix is added to the name of these variables to
 6208   indicate that they are intended for internal use only.
 6209 
 6210   * testsuite/modules.50-cmds/015-use.exp,
 6211   testsuite/modules.50-cmds/017-use-undo.exp,
 6212   testsuite/modules.50-cmds/020-setenv.exp,
 6213   testsuite/modules.50-cmds/022-setenv-eschars.exp,
 6214   testsuite/modules.50-cmds/025-setenv-undo.exp,
 6215   testsuite/modules.50-cmds/028-setenv-refcount.exp,
 6216   testsuite/modules.50-cmds/029-setenv-env.exp,
 6217   testsuite/modules.50-cmds/035-unsetenv-undo.exp,
 6218   testsuite/modules.50-cmds/036-unsetenv-x.exp,
 6219   testsuite/modules.50-cmds/038-unsetenv-refcount.exp,
 6220   testsuite/modules.50-cmds/039-unsetenv-env.exp,
 6221   testsuite/modules.50-cmds/040-append.exp,
 6222   testsuite/modules.50-cmds/042-append-delim.exp,
 6223   testsuite/modules.50-cmds/045-append-undo.exp,
 6224   testsuite/modules.50-cmds/047-app-del-undo.exp,
 6225   testsuite/modules.50-cmds/049-append-env.exp,
 6226   testsuite/modules.50-cmds/050-prepend.exp,
 6227   testsuite/modules.50-cmds/052-prepend-delim.exp,
 6228   testsuite/modules.50-cmds/055-prepend-undo.exp,
 6229   testsuite/modules.50-cmds/057-pre-del-undo.exp,
 6230   testsuite/modules.50-cmds/059-prepend-env.exp,
 6231   testsuite/modules.50-cmds/060-remove.exp,
 6232   testsuite/modules.50-cmds/062-remove-delim.exp,
 6233   testsuite/modules.50-cmds/065-remove-undo.exp,
 6234   testsuite/modules.50-cmds/069-remove-env.exp,
 6235   testsuite/modules.50-cmds/076-alias-sub.exp,
 6236   testsuite/modules.50-cmds/081-info-user.exp,
 6237   testsuite/modules.50-cmds/082-info-user-exp.exp,
 6238   testsuite/modules.50-cmds/084-info-mode-exp.exp,
 6239   testsuite/modules.50-cmds/085-info-flags.exp,
 6240   testsuite/modules.50-cmds/087-info-shells-exp.exp,
 6241   testsuite/modules.50-cmds/088-info-isloaded.exp,
 6242   testsuite/modules.50-cmds/089-info-type.exp,
 6243   testsuite/modules.50-cmds/090-uname-proc.exp,
 6244   testsuite/modules.50-cmds/095-uname.exp,
 6245   testsuite/modules.50-cmds/100-loglevel.exp,
 6246   testsuite/modules.50-cmds/101-badfac.exp,
 6247   testsuite/modules.50-cmds/105-trace.exp,
 6248   testsuite/modules.50-cmds/110-verbose.exp,
 6249   testsuite/modules.50-cmds/115-verbose-msg.exp,
 6250   testsuite/modules.50-cmds/120-prereq-full.exp,
 6251   testsuite/modules.50-cmds/121-prereq-module.exp,
 6252   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 6253   testsuite/modules.50-cmds/130-conflict-full.exp,
 6254   testsuite/modules.50-cmds/131-conflict-module.exp,
 6255   testsuite/modules.50-cmds/132-conflict-fullpath.exp,
 6256   testsuite/modules.50-cmds/140-system.exp,
 6257   testsuite/modules.50-cmds/150-module.exp,
 6258   testsuite/modules.50-cmds/151-module-onlytop.exp,
 6259   testsuite/modules.50-cmds/152-module-emptyarg.exp,
 6260   testsuite/modules.50-cmds/170-swap.exp,
 6261   testsuite/modules.50-cmds/172-swap-app-delim.exp,
 6262   testsuite/modules.50-cmds/173-swap-app-delim.exp,
 6263   testsuite/modules.50-cmds/175-swap2.exp,
 6264   testsuite/modules.50-cmds/177-swap-prep-delim.exp,
 6265   testsuite/modules.50-cmds/178-swap-prep-delim.exp,
 6266   testsuite/modules.50-cmds/180-unload.exp,
 6267   testsuite/modules.50-cmds/190-load.exp,
 6268   testsuite/modules.50-cmds/195-load-recurs.exp,
 6269   testsuite/modules.50-cmds/197-load-lots.exp,
 6270   testsuite/modules.50-cmds/210-exit.exp,
 6271   testsuite/modules.50-cmds/220-continue.exp,
 6272   testsuite/modules.50-cmds/230-loop.exp,
 6273   testsuite/modules.50-cmds/240-chdir.exp,
 6274   testsuite/modules.50-cmds/250-x-resource.exp,
 6275   testsuite/modules.50-cmds/260-getenv.exp,
 6276   testsuite/modules.50-cmds/269-getenv-env.exp,
 6277   testsuite/modules.50-cmds/280-info-specified.exp,
 6278   testsuite/modules.50-cmds/281-info-modulerc.exp,
 6279   testsuite/modules.50-cmds/282-info-command.exp,
 6280   testsuite/modules.50-cmds/283-info-command-exp.exp,
 6281   testsuite/modules.50-cmds/284-info-others.exp,
 6282   testsuite/modules.50-cmds/285-info-loaded.exp,
 6283   testsuite/modules.50-cmds/286-info-username.exp,
 6284   testsuite/modules.50-cmds/287-info-usergroups.exp,
 6285   testsuite/modules.50-cmds/288-info-tags.exp,
 6286   testsuite/modules.50-cmds/300-interp.exp,
 6287   testsuite/modules.50-cmds/301-interp-command.exp,
 6288   testsuite/modules.50-cmds/302-interp-cascaded.exp,
 6289   testsuite/modules.50-cmds/310-puts.exp,
 6290   testsuite/modules.50-cmds/320-is-saved.exp,
 6291   testsuite/modules.50-cmds/321-is-used.exp,
 6292   testsuite/modules.50-cmds/330-source.exp,
 6293   testsuite/modules.50-cmds/350-allin.exp,
 6294   testsuite/modules.50-cmds/359-allin-env.exp,
 6295   testsuite/modules.50-cmds/360-restoreenv.exp,
 6296   testsuite/modules.50-cmds/370-deps-bis.exp,
 6297   testsuite/modules.50-cmds/370-deps-fullpath.exp,
 6298   testsuite/modules.50-cmds/370-deps.exp,
 6299   testsuite/modules.50-cmds/371-deps2.exp,
 6300   testsuite/modules.50-cmds/372-deps3.exp,
 6301   testsuite/modules.50-cmds/373-deps4.exp,
 6302   testsuite/modules.50-cmds/374-deps5.exp,
 6303   testsuite/modules.50-cmds/375-deps6.exp,
 6304   testsuite/modules.50-cmds/375-order.exp,
 6305   testsuite/modules.50-cmds/376-deps7.exp,
 6306   testsuite/modules.50-cmds/376-switch-change-vers.exp,
 6307   testsuite/modules.50-cmds/376-switch.exp,
 6308   testsuite/modules.50-cmds/377-cyclic.exp,
 6309   testsuite/modules.50-cmds/377-deps8.exp,
 6310   testsuite/modules.50-cmds/377-error.exp,
 6311   testsuite/modules.50-cmds/377-opposite.exp,
 6312   testsuite/modules.50-cmds/378-sametarget.exp,
 6313   testsuite/modules.50-cmds/379-module-unload.exp,
 6314   testsuite/modules.50-cmds/380-altname.exp,
 6315   testsuite/modules.50-cmds/390-function.exp,
 6316   testsuite/modules.50-cmds/400-source-sh.exp,
 6317   testsuite/modules.50-cmds/410-modvar.exp,
 6318   testsuite/modules.50-cmds/430-implicit-req.exp,
 6319   testsuite/modules.50-cmds/431-not-req.exp,
 6320   testsuite/modules.50-cmds/440-module-tag.exp,
 6321   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 6322   testsuite/modules.50-cmds/460-sticky.exp,
 6323   testsuite/modules.50-cmds/461-super-sticky.exp,
 6324   testsuite/modules.50-cmds/462-sticky-corner.exp,
 6325   testsuite/modules.50-cmds/470-variant.exp,
 6326   testsuite/modules.50-cmds/471-variant-unload.exp,
 6327   testsuite/modules.50-cmds/472-getvariant.exp,
 6328   testsuite/modules.50-cmds/473-variant-prereq.exp,
 6329   testsuite/modules.50-cmds/474-variant-conflict.exp,
 6330   testsuite/modules.50-cmds/475-variant-tag.exp,
 6331   testsuite/modules.50-cmds/476-variant-aliassym.exp,
 6332   testsuite/modules.50-cmds/477-variant-info.exp,
 6333   testsuite/modules.50-cmds/478-variant-version.exp,
 6334   testsuite/modules.50-cmds/479-variant-boolean.exp,
 6335   testsuite/modules.50-cmds/490-try-load.exp: ts: add skip_if_quick_mode in 50
 6336   suite
 6337 
 6338 2021-07-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6339 
 6340   * testsuite/modules.70-maint/030-purge.exp,
 6341   testsuite/modules.70-maint/040-list.exp,
 6342   testsuite/modules.70-maint/045-listlong.exp,
 6343   testsuite/modules.70-maint/050-whatis-load.exp,
 6344   testsuite/modules.70-maint/055-whatis.exp,
 6345   testsuite/modules.70-maint/056-whatis-nullpath.exp,
 6346   testsuite/modules.70-maint/060-apropos.exp,
 6347   testsuite/modules.70-maint/070-display.exp,
 6348   testsuite/modules.70-maint/080-help.exp,
 6349   testsuite/modules.70-maint/085-test.exp,
 6350   testsuite/modules.70-maint/090-source.exp,
 6351   testsuite/modules.70-maint/100-path.exp,
 6352   testsuite/modules.70-maint/110-paths.exp,
 6353   testsuite/modules.70-maint/120-autoinit.exp,
 6354   testsuite/modules.70-maint/130-aliases.exp,
 6355   testsuite/modules.70-maint/140-multiargs.exp,
 6356   testsuite/modules.70-maint/150-append-path.exp,
 6357   testsuite/modules.70-maint/151-prepend-path.exp,
 6358   testsuite/modules.70-maint/152-remove-path.exp,
 6359   testsuite/modules.70-maint/153-is-loaded.exp,
 6360   testsuite/modules.70-maint/154-is-saved.exp,
 6361   testsuite/modules.70-maint/155-is-used.exp,
 6362   testsuite/modules.70-maint/157-info-loaded.exp,
 6363   testsuite/modules.70-maint/170-contact.exp,
 6364   testsuite/modules.70-maint/180-reload.exp,
 6365   testsuite/modules.70-maint/190-emptyarg.exp,
 6366   testsuite/modules.70-maint/200-errdisp.exp,
 6367   testsuite/modules.70-maint/210-clear.exp,
 6368   testsuite/modules.70-maint/220-config.exp,
 6369   testsuite/modules.70-maint/230-verbosity.exp,
 6370   testsuite/modules.70-maint/231-verbose2.exp,
 6371   testsuite/modules.70-maint/240-icase.exp,
 6372   testsuite/modules.70-maint/250-nan.exp,
 6373   .../modules.70-maint/260-extended_default.exp,
 6374   .../modules.70-maint/270-adv_version_spec.exp,
 6375   .../modules.70-maint/271-adv_version_spec-in.exp,
 6376   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
 6377   .../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
 6378   .../276-adv_version_spec-rangein.exp, testsuite/modules.70-maint/280-ml.exp,
 6379   testsuite/modules.70-maint/290-json.exp,
 6380   testsuite/modules.70-maint/300-err_stack.exp,
 6381   testsuite/modules.70-maint/310-sh-to-mod.exp,
 6382   testsuite/modules.70-maint/320-tags.exp,
 6383   testsuite/modules.70-maint/321-tag_abbrev.exp,
 6384   testsuite/modules.70-maint/322-tag-sgr.exp,
 6385   testsuite/modules.70-maint/330-large-file.exp,
 6386   testsuite/modules.70-maint/340-output-key.exp,
 6387   testsuite/modules.70-maint/350-term_width.exp,
 6388   testsuite/modules.70-maint/360-avail_output.exp,
 6389   testsuite/modules.70-maint/361-list_output.exp,
 6390   testsuite/modules.70-maint/370-variant.exp,
 6391   testsuite/modules.70-maint/371-variant-msg.exp,
 6392   testsuite/modules.70-maint/372-variant-display.exp,
 6393   testsuite/modules.70-maint/373-variant-help.exp,
 6394   testsuite/modules.70-maint/374-variant-test.exp,
 6395   testsuite/modules.70-maint/375-variant-whatis.exp,
 6396   testsuite/modules.70-maint/376-variant-tag.exp,
 6397   .../modules.70-maint/377-variant-shortcut.exp,
 6398   testsuite/modules.70-maint/380-edit.exp: ts: add skip_if_quick_mode in 70
 6399   suite
 6400 
 6401   * testsuite/modules.90-avail/020-single.exp,
 6402   testsuite/modules.90-avail/030-multiple.exp,
 6403   testsuite/modules.90-avail/040-wild.exp,
 6404   testsuite/modules.90-avail/050-long.exp,
 6405   testsuite/modules.90-avail/060-empty.exp,
 6406   testsuite/modules.90-avail/070-full.exp,
 6407   testsuite/modules.90-avail/080-noindepth.exp,
 6408   testsuite/modules.90-avail/100-tags.exp,
 6409   testsuite/modules.91-sort/020-avail.exp,
 6410   testsuite/modules.95-version/020-unload.exp,
 6411   testsuite/modules.95-version/022-load2.exp,
 6412   testsuite/modules.95-version/022-unload2.exp,
 6413   testsuite/modules.95-version/050-fullpathentry.exp,
 6414   testsuite/modules.95-version/090-dup-modpath-version.exp: ts: add
 6415   skip_if_quick_mode in 90/91/95 suites
 6416 
 6417   * testsuite/modules.60-initx/015-list.exp,
 6418   testsuite/modules.60-initx/020-add.exp,
 6419   testsuite/modules.60-initx/030-switch.exp,
 6420   testsuite/modules.60-initx/040-prepend.exp,
 6421   testsuite/modules.60-initx/050-rm.exp,
 6422   testsuite/modules.60-initx/060-2nd.exp,
 6423   testsuite/modules.60-initx/080-access-initx.exp,
 6424   testsuite/modules.61-coll/020-savelist.exp,
 6425   testsuite/modules.61-coll/030-save.exp,
 6426   testsuite/modules.61-coll/040-restore.exp,
 6427   testsuite/modules.61-coll/050-saverm.exp,
 6428   testsuite/modules.61-coll/060-saveshow.exp,
 6429   testsuite/modules.61-coll/080-access-coll.exp,
 6430   testsuite/modules.80-deep/020-load-deep.exp,
 6431   testsuite/modules.80-deep/021-unload.exp,
 6432   testsuite/modules.80-deep/022-switch.exp,
 6433   testsuite/modules.80-deep/030-display.exp,
 6434   testsuite/modules.80-deep/050-whatis.exp,
 6435   testsuite/modules.80-deep/068-transitive-deep.exp,
 6436   testsuite/modules.80-deep/080-access-deep.exp,
 6437   testsuite/modules.80-deep/090-deepvirt.exp: ts: add skip_if_quick_mode in
 6438   60/61/80 suites
 6439 
 6440   * testsuite/modules.00-init/100-pager.exp,
 6441   testsuite/modules.00-init/110-quar.exp,
 6442   testsuite/modules.00-init/120-siteconfig.exp,
 6443   testsuite/modules.00-init/130-auto_handling.exp,
 6444   testsuite/modules.00-init/140-color.exp,
 6445   testsuite/modules.00-init/150-access-init.exp,
 6446   testsuite/modules.10-use/030-use.exp,
 6447   testsuite/modules.10-use/031-append.exp,
 6448   testsuite/modules.10-use/032-prepend.exp,
 6449   testsuite/modules.10-use/070-unuse.exp,
 6450   testsuite/modules.10-use/080-access-use.exp,
 6451   testsuite/modules.10-use/090-bad.exp,
 6452   testsuite/modules.20-locate/030-defvers.exp,
 6453   testsuite/modules.20-locate/031-defvers2.exp,
 6454   testsuite/modules.20-locate/035-defname.exp,
 6455   testsuite/modules.20-locate/038-defcontext.exp,
 6456   testsuite/modules.20-locate/040-alias.exp,
 6457   testsuite/modules.20-locate/043-virtual.exp,
 6458   testsuite/modules.20-locate/045-symvers.exp,
 6459   testsuite/modules.20-locate/048-symexec.exp,
 6460   testsuite/modules.20-locate/050-locrc.exp,
 6461   testsuite/modules.20-locate/057-mcookie.exp,
 6462   testsuite/modules.20-locate/060-rc.exp,
 6463   testsuite/modules.20-locate/066-modulepath-rc.exp,
 6464   testsuite/modules.20-locate/067-hidden.exp,
 6465   testsuite/modules.20-locate/068-transitive.exp,
 6466   testsuite/modules.20-locate/069-cross.exp,
 6467   testsuite/modules.20-locate/070-homerc.exp,
 6468   testsuite/modules.20-locate/075-symlink.exp,
 6469   testsuite/modules.20-locate/080-access.exp,
 6470   testsuite/modules.20-locate/081-access-rc.exp,
 6471   testsuite/modules.20-locate/090-memcache.exp,
 6472   testsuite/modules.20-locate/100-wspace.exp,
 6473   testsuite/modules.20-locate/110-hide.exp,
 6474   testsuite/modules.20-locate/111-hide-hard.exp,
 6475   testsuite/modules.20-locate/111-hide-soft.exp,
 6476   testsuite/modules.20-locate/112-hide-user-group.exp,
 6477   testsuite/modules.20-locate/113-hide-all-opt.exp,
 6478   testsuite/modules.20-locate/114-hide-before-after.exp,
 6479   testsuite/modules.20-locate/115-forbid.exp,
 6480   testsuite/modules.20-locate/116-forbid-before-after.exp,
 6481   testsuite/modules.20-locate/117-forbid-user-group.exp,
 6482   testsuite/modules.20-locate/118-hidden-loaded.exp,
 6483   testsuite/modules.20-locate/119-hide-cascading.exp: ts: add
 6484   skip_if_quick_mode in 00/10/20 suites
 6485 
 6486   * NEWS.rst, contrib/rpm/environment-modules.spec.in: rpm: run tests in quick
 6487   mode
 6488 
 6489   * NEWS.rst, script/mt, testsuite/config/base-config.exp: ts: introduce quick
 6490   test mode  Introduce the non-regression quick test mode. When the
 6491   `QUICKTEST` environment variable is set to 1, only the main tests from the
 6492   non-regression testsuite are run.  When first argument of the `mt` script is
 6493   `quick`, tests are run in quick mode.  Goal is to complete the quick tests
 6494   in a minute, rather the 10+ minutes required by the full testsuite.
 6495 
 6496 2021-07-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6497 
 6498   * contrib/rpm/environment-modules.spec.in: rpm: remove compat specific
 6499   subpackage  Remove the code that was specific to the generation of the
 6500   compat subpackage.  Make environment-modules-compat subpackage obsolete by
 6501   the environment-module package, following Fedora guidelines [1]  [1] https:/
 6502   /docs.fedoraproject.org/en-US/packaging-guidelines/#renaming-or-replacing-ex
 6503   isting-packages
 6504 
 6505   * script/mb, script/mt: script: remove compat version-related code in mt/mb
 6506 
 6507   * script/mpub, script/mrel: script: remove compat version-related code in
 6508   mrel/mpub
 6509 
 6510   * NEWS.rst, doc/source/module.rst, script/modulecmd.in: Remove
 6511   MODULES_USE_COMPAT_VERSION env variable
 6512 
 6513   * init/.gitignore, init/bash.in, init/bash_completion.in, init/cmake.in,
 6514   init/csh.in, init/fish.in, init/ksh.in, init/perl.pm.in,
 6515   init/profile-compat.csh.in, init/profile-compat.sh.in, init/python.py.in,
 6516   init/ruby.rb.in, init/sh.in, init/zsh.in: init: remove compat
 6517   version-related code
 6518 
 6519   * README.md: doc: remove compat version transition section from README
 6520 
 6521   * .gitignore, Makefile, Makefile.inc.in, doc/Makefile, init/Makefile:
 6522   install: remove compat version-related rules
 6523 
 6524   * Makefile.inc.in, configure: install: remove useless gitworktree install
 6525   config var
 6526 
 6527   * Makefile.inc.in, configure: install: remove useless EXEEXT install config
 6528   var
 6529 
 6530 2021-07-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6531 
 6532   * .cirrus.yml, .github/workflows/linux_tests.yaml,
 6533   .github/workflows/windows_tests.yaml: cirrus/gh: no more test case with
 6534   compat version build
 6535 
 6536   * site.exp.in, testsuite/install.00-init/005-init_ts.exp,
 6537   testsuite/install.00-init/022-module-compat.exp,
 6538   testsuite/install.00-init/030-options.exp: ts: remove install tests of
 6539   compat version
 6540 
 6541   * INSTALL.rst, NEWS.rst, configure: install: remove --enable-compat-version
 6542   install option  Remove installation option '--enable-compat-version'.
 6543   Compatiblity version co-installation is discontinued.
 6544 
 6545   * init/.gitignore, init/Makefile, init/{modulerc.in => initrc.in},
 6546   init/{.modulespath.in => modulespath.in}: init: name default config files
 6547   initrc/modulespath  Rename the configuration template files following the
 6548   new default naming scheme for these files: modulerc becomes initrc and
 6549   .modulespath becomes modulespath.
 6550 
 6551   * .github/workflows/linux_tests.yaml, .gitignore, Makefile,
 6552   testsuite/example/{modulerc-1.in => initrc-1.in},
 6553   .../example/{.modulespath-empty => modulespath-empty},
 6554   .../{.modulespath-wild.in => modulespath-wild.in},
 6555   testsuite/modules.70-maint/120-autoinit.exp: ts: use default conf names in
 6556   example for tests
 6557 
 6558   * testsuite/install.00-init/005-init_ts.exp,
 6559   testsuite/install.00-init/020-module.exp,
 6560   testsuite/install.00-init/024-ml.exp,
 6561   testsuite/modules.00-init/050-modpath.exp,
 6562   testsuite/modules.50-cmds/029-setenv-env.exp,
 6563   testsuite/modules.50-cmds/180-unload.exp,
 6564   testsuite/modules.50-cmds/190-load.exp,
 6565   testsuite/modules.50-cmds/321-is-used.exp,
 6566   testsuite/modules.50-cmds/370-deps-fullpath.exp,
 6567   testsuite/modules.50-cmds/372-deps3.exp,
 6568   testsuite/modules.61-coll/040-restore.exp,
 6569   testsuite/modules.70-maint/070-display.exp,
 6570   testsuite/modules.70-maint/080-help.exp,
 6571   testsuite/modules.70-maint/085-test.exp: ts: adapt full path tests when +
 6572   sign is found in modpath  Plus sign in full path modulefile designation is
 6573   understood as a variant specification when advanced_version_spec config
 6574   option is enabled. So disable the option for the full path tests.
 6575 
 6576 2021-07-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6577 
 6578   * testsuite/install.00-init/005-init_ts.exp: ts: report env properties when
 6579   starting install tests
 6580 
 6581   * .cirrus.yml, .github/workflows/linux_tests.yaml,
 6582   testsuite/modules.70-maint/120-autoinit.exp: cirrus/gh: adapt setup
 6583   following default config changes
 6584 
 6585   * testsuite/modules.10-use/080-access-use.exp,
 6586   testsuite/modules.20-locate/110-hide.exp,
 6587   testsuite/modules.50-cmds/472-getvariant.exp,
 6588   testsuite/modules.70-maint/220-config.exp,
 6589   testsuite/modules.70-maint/260-extended_default.exp,
 6590   testsuite/modules.70-maint/270-adv_version_spec.exp,
 6591   testsuite/modules.70-maint/271-adv_version_spec-in.exp,
 6592   .../modules.70-maint/272-adv_version_spec-range.exp,
 6593   .../modules.70-maint/276-adv_version_spec-rangein.exp,
 6594   testsuite/modules.80-deep/090-deepvirt.exp,
 6595   testsuite/modules.91-sort/040-load-sort.exp: ts: adapt tests setup following
 6596   default config changes  Now some features are enabled by default, some test
 6597   files have to be corrected to ensure the appropriate setup is made prior
 6598   running these tests.
 6599 
 6600 2021-07-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6601 
 6602   * testsuite/install.00-init/005-init_ts.exp,
 6603   testsuite/install.00-init/030-options.exp,
 6604   testsuite/install.00-init/050-crossshell.exp: ts: fix subshell tests when sh
 6605   kind is bash  sh is transmitting exported function definition to a bash
 6606   subshell if sh is the bash one.
 6607 
 6608   * .github/workflows/linux_tests.yaml, INSTALL.rst, Makefile.inc.in,
 6609   configure, contrib/rpm/environment-modules.spec.in, init/Makefile: install:
 6610   swap --enable-dotmodulespath/--enable-modulespath  Make --enable-modulespath
 6611   the primary option name and --enable-dotmodulespath the secondary option
 6612   name as .modulespath is not anymore the primary name of this configuration
 6613   file.
 6614 
 6615   * Makefile, NEWS.rst, modulecmd.tcl.in,
 6616   testsuite/install.00-init/005-init_ts.exp: Look at conf files in etcdir or
 6617   initdir not both  Only look at configuration files found in the location
 6618   designated by the '--etcdir' or '--initdir' option (depending on the value
 6619   of '--with-initconf-in' option). Configuration files were previously
 6620   searched in both locations.
 6621 
 6622   * INSTALL.rst, NEWS.rst, configure, contrib/rpm/environment-modules.spec.in:
 6623   install: set --with-initconf-in to etcdir by default  Installation option
 6624   '--with-initconf-in' is set to 'etdir' by default to locate configuration
 6625   files in the directory designated by the '--etcdir' option. Therefore the
 6626   initialization configuration file is named `initrc` in this directory, and
 6627   the  modulepath-specific configuration file is named `modulespath`.
 6628   Configuration files are thus located in a traditional etcdir rather being
 6629   part of the init dir among scripts that should stay read only.
 6630 
 6631 2021-07-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6632 
 6633   * INSTALL.rst, configure: missing/doc: missing inst opt default value
 6634   mention
 6635 
 6636   * INSTALL.rst, NEWS.rst, configure, contrib/rpm/environment-modules.spec.in,
 6637   init/modulerc.in: install: set --enable-set-shell-startup off by default
 6638   Installation option '--enable-set-shell-startup' is set off by default but
 6639   could be enabled once installed through the `initrc` configuration file.  It
 6640   seems better to let people choose to enable this option than being surprised
 6641   to find Modules initialization script run automatically each time a
 6642   sub-shell is spawn.
 6643 
 6644   * INSTALL.rst, NEWS.rst, configure: install: reset --enable-new-features
 6645   Installation option '--enable-new-features' has been reset following major
 6646   version change as all the options it implied are now enabled by default.
 6647 
 6648   * INSTALL.rst, NEWS.rst, configure: install: set --with-icase on by default
 6649   Installation option '--with-icase' is set to `search` by default to activate
 6650   case insensitive match on search contexts.
 6651 
 6652   * INSTALL.rst, NEWS.rst, configure: install: set --enable-color on by
 6653   default  Installation option '--enable-color' is set on by default which
 6654   enables the `auto` output color mode.
 6655 
 6656   * INSTALL.rst: doc: mention variant on --enable-advanced-version-spec
 6657 
 6658   * INSTALL.rst, NEWS.rst, configure: install: set
 6659   --enable-advanced-version-spec on by default  Installation option
 6660   '--enable-advanced-version-spec' is set on by default which activates the
 6661   Advanced module version specifiers.
 6662 
 6663   * INSTALL.rst, NEWS.rst, configure: install: set --enable-extended-default
 6664   on by default  Installation option '--enable-extended-default' is set on by
 6665   default which allows partial module version specification.
 6666 
 6667   * INSTALL.rst, NEWS.rst, configure: install: set --enable-auto-handling on
 6668   by default  Installation option '--enable-auto-handling' is set on by
 6669   default which enables the automated module handling mode.
 6670 
 6671   * configure: install: remove debug statement in configure
 6672 
 6673 2021-07-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6674 
 6675   * testsuite/modules.10-use/030-use.exp,
 6676   testsuite/modules.10-use/031-append.exp,
 6677   testsuite/modules.10-use/032-prepend.exp,
 6678   testsuite/modules.50-cmds/350-allin.exp,
 6679   testsuite/modules.70-maint/230-verbosity.exp: ts: update non-existent dir
 6680   add on use subcmd
 6681 
 6682   * NEWS.rst, doc/source/module.rst, modulecmd.tcl.in: Accept non-existent
 6683   modulepath on use subcmd  Allow non-existent directory to be specified to
 6684   use sub-command so directory that does not exist yet could be added to
 6685   MODULEPATH prior being created.  Also it may allow a shared module
 6686   configuration to define all existing paths across the network but only some
 6687   of these paths are enabled on a given host.
 6688 
 6689   * modulecmd.tcl.in: Gather invalid empty name err msg in a proc  Add
 6690   getEmptyNameMsg procedure to gather all error message strings when a module,
 6691   directory or collection name is an empty string.
 6692 
 6693   * testsuite/install.00-init/080-args.exp,
 6694   testsuite/modules.00-init/005-init_ts.exp,
 6695   testsuite/modules.50-cmds/015-use.exp: ts: update invalid directory name err
 6696   msg
 6697 
 6698   * NEWS.rst, modulecmd.tcl.in: Update empty dir err msg on use/unuse subcmd
 6699   Align empty directory name error message obtained on use and unuse
 6700   sub-commands with message obtained when module or collection name is empty.
 6701 
 6702   * testsuite/modules.50-cmds/260-getenv.exp,
 6703   testsuite/modules.50-cmds/269-getenv-env.exp,
 6704   testsuite/modules.50-cmds/350-allin.exp,
 6705   testsuite/modules.50-cmds/359-allin-env.exp: ts: update getenv default
 6706   return value tests
 6707 
 6708   * NEWS.rst, modulecmd.tcl.in: Return empty string on getenv if var not
 6709   defined  Return by default an empty string rather `_UNDEFINED` on `getenv`
 6710   modulefile command if passed environment variable is not defined.  Behavior
 6711   is this way aligned with `getvariant` procedure. It is also the most common
 6712   behavior for this kind of fetch procedure.
 6713 
 6714   * NEWS.rst, modulecmd.tcl.in: Remove nop cmds from modulerc interp  Do not
 6715   declare anymore the chdir, module, module-trace, module-verbosity,
 6716   module-user and module-log commands in modulerc Tcl interpreter. A clear
 6717   error message will be obtained if an attempt to use these commands is made
 6718   instead of a silent no-operation treatment.
 6719 
 6720   * NEWS.rst, modulecmd.tcl.in: Remove mention of init* subcmd in usage msg
 6721 
 6722   * MIGRATING.rst, doc/source/FAQ.rst: doc: advertise sh-to-mod/source-sh in
 6723   FAQ
 6724 
 6725   * testsuite/install.00-init/030-options.exp: ts: remove createmodule.py
 6726   install test
 6727 
 6728   * contrib/rpm/environment-modules.spec.in: rpm: remove specific installation
 6729   of createmodule.sh
 6730 
 6731   * .gitignore, Makefile, NEWS.rst, script/createmodule.py.in,
 6732   script/createmodule.sh: script: remove createmodule.sh and createmodule.py
 6733   createmodule.sh and createmodule.py scripts are superseded by the
 6734   `sh-to-mod` sub-command that supports conversion from more shell languages
 6735   (ksh, zsh, fish, csh) and handles more environment changes (alias, shell
 6736   function).
 6737 
 6738 2021-07-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6739 
 6740   * NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
 6741   version.inc.in: Release of version 4.8.0
 6742 
 6743   * MIGRATING.rst: doc: desc. 'Variant shortcuts' in MIGRATING
 6744 
 6745 2021-07-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6746 
 6747   * MIGRATING.rst: doc: desc. 'Module variants' in MIGRATING
 6748 
 6749   * .cirrus.yml: cirrus: update to python38 on FreeBSD test cases  py37-sphinx
 6750   is not available anymore on freebsd-12-2 and freebsd-11-4.
 6751 
 6752   * NEWS.rst, init/zsh.in, modulecmd.tcl.in,
 6753   testsuite/modules.70-maint/120-autoinit.exp: Inhibit rcexpandparam Zsh
 6754   option when initializing  Protect quarantine mechanism code from
 6755   'rcexpandparam' Zsh option when initializing the module command on this
 6756   shell.  Fixes #403
 6757 
 6758 2021-07-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6759 
 6760   * doc/source/modulefile.rst: doc: desc. variant mfcmd in modulefile(4)
 6761 
 6762 2021-07-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6763 
 6764   * doc/source/module.rst: doc: add 'Module variants' section in module(1)
 6765 
 6766   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc. variant
 6767   specification in module(1)/modulefile(4)
 6768 
 6769   * doc/source/module.rst: doc: fix syntax of edit subcmd desc. in module(1)
 6770 
 6771 2021-07-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6772 
 6773   * NEWS.rst: doc: desc. variant work in NEWS
 6774 
 6775   * doc/source/modulefile.rst: doc: add variant info to module-info in
 6776   modulefile(4)
 6777 
 6778 2021-07-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6779 
 6780   * doc/source/module.rst: doc: desc. MODULES_VARIANT_SHORTCUT in module(1)
 6781 
 6782   * doc/source/module.rst: doc: desc. MODULES_LMVARIANT in module(1)
 6783 
 6784 2021-07-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6785 
 6786   * .cirrus.yml: cirrus: start darwin test by updating homebrew  Fix
 6787   inconsistent issue with deprecated homebrew setup.
 6788 
 6789   * doc/source/modulefile.rst: doc: desc. no implicit req if module not found
 6790   by try-load
 6791 
 6792   * doc/source/modulefile.rst: doc: desc. getenv on display eval mode in
 6793   modulefile(4)
 6794 
 6795   * doc/source/modulefile.rst: doc: desc. ModuleVariant in modulefile(4)
 6796 
 6797   * doc/source/diff_v3_v4.rst, doc/source/modulefile.rst: doc: mention getenv
 6798   introduction release
 6799 
 6800   * doc/source/modulefile.rst: doc: desc. getvariant in modulefile(4)
 6801 
 6802 2021-07-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6803 
 6804   * MIGRATING.rst: doc: desc. try-load addition in MIGRATING
 6805 
 6806 2021-07-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6807 
 6808   * NEWS.rst: doc: desc. try-load addition in NEWS
 6809 
 6810   * init/fish.in: init: update stderr redirection in fish init script  Use of
 6811   '^' character to redirect stderr has been deprecated starting Fish version
 6812   3.1. It now produces an error. Stderr should be redirected with '2>' like on
 6813   SH shells. Hopefully '2>' redirection is also supported on old Fish versions
 6814   (all version 2 support it).  This update was performed on modulecmd.tcl with
 6815   711c901 commit, but fish initialization script was forgotten at that time.
 6816 
 6817   * doc/source/diff_v3_v4.rst: doc: use catch to get v3 module load behavior
 6818   in modfile  Add description to the diff doc to get the behavior of Modules
 6819   v3 back when using `module load` command in modulefile. To pursue evaluation
 6820   even when the `module load` fails, enclose it within a `catch` Tcl command.
 6821   Fixes #197.
 6822 
 6823   * doc/source/module.rst: doc: fix options on subcmd aliases in module(1)
 6824 
 6825   * doc/source/module.rst: doc: desc try-load in module(1) man
 6826 
 6827   * testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
 6828   ts: test try-load in rc file
 6829 
 6830   * testsuite/modulefiles.3/tryload/.modulerc,
 6831   testsuite/modulefiles.3/tryload/1.0, testsuite/modulefiles.3/tryload/2.0,
 6832   testsuite/modules.50-cmds/490-try-load.exp: ts: add specific tests for
 6833   try-load subcmd in 50/490
 6834 
 6835   * testsuite/modulefiles.2/modemptyarg/try-load,
 6836   testsuite/modules.00-init/071-args.exp,
 6837   testsuite/modules.50-cmds/152-module-emptyarg.exp: ts: adapt existing tests
 6838   for try-load subcmd
 6839 
 6840 2021-07-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6841 
 6842   * modulecmd.tcl.in: No requirement record when try-load fails  Do not record
 6843   the prereq requirement on the try-loaded module, if this load temptative
 6844   fails.
 6845 
 6846 2021-07-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6847 
 6848   * modulecmd.tcl.in: Add 'try-load' sub-command  Introduce the `try-load`
 6849   sub-command that could also be aliased `try-add`. try-load attempts to load
 6850   modulefile(s) but does not raise error (message or code) if module(s) cannot
 6851   be found (does not exist or forbidden).  Error is still raised if an
 6852   evaluation error occurs.  The `try_modulefile` internal state is added to
 6853   transmit the information that the load (or unload when load is proccessed
 6854   during an unload evaluation) is performed in *try* mode or not.  Fixes #392
 6855 
 6856 2021-06-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6857 
 6858   * doc/source/diff_v3_v4.rst: doc: desc. try-load in diff doc
 6859 
 6860   * init/Makefile, init/bash_completion.in, init/fish_completion,
 6861   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add try-load
 6862   sub-cmd to completion scripts
 6863 
 6864   * init/Makefile, init/bash_completion.in, init/fish_completion,
 6865   init/tcsh_completion.in, init/zsh-functions/_module.in: init: add edit
 6866   sub-cmd to completion scripts
 6867 
 6868 2021-06-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6869 
 6870   * modulecmd.tcl.in: Dead code cleanup in
 6871   parseModuleSpecificationProcAdvVersSpec  Remove code branches in the
 6872   parseModuleSpecificationProcAdvVersSpec procedure that are never reached due
 6873   to the code refactoring done for boolean variant and variant shortcut.
 6874 
 6875 2021-06-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6876 
 6877   * testsuite/modules.70-maint/210-clear.exp,
 6878   testsuite/modules.70-maint/280-ml.exp: ts: unset MODULES_LMVARIANT on clear
 6879   subcmd tests
 6880 
 6881   * modulecmd.tcl.in: Unset MODULES_LMVARIANT env var on clear subcmd
 6882 
 6883   * doc/source/design/variants.rst: doc: refine desc of variant_shortcut in
 6884   design
 6885 
 6886   * testsuite/modulefiles.3/variant/1.0,
 6887   .../modules.70-maint/377-variant-shortcut.exp: ts: test specific mod desig.
 6888   with variant_shortcut in 70/377
 6889 
 6890   * testsuite/modulefiles.3/variant/1.0,
 6891   testsuite/modules.61-coll/010-init_ts.exp,
 6892   testsuite/modules.61-coll/030-save.exp,
 6893   testsuite/modules.61-coll/040-restore.exp,
 6894   testsuite/modules.61-coll/060-saveshow.exp,
 6895   testsuite/modules.61-coll/999-cleanup.exp: ts: test collection with
 6896   variant_shortcut in 61
 6897 
 6898   * modulecmd.tcl.in: Ignore shortcut when reporting variant set for
 6899   collection  When saving collection, do not use variant shortcut to produce
 6900   the module designation to save in collection files, as shortcuts are a
 6901   configuration that could evolve over time.  Add the '5' report mode in
 6902   getVariantList procedure to avoid defined shortcuts when producing module
 6903   designation.
 6904 
 6905 2021-06-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6906 
 6907   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/7.0,
 6908   .../modules.70-maint/377-variant-shortcut.exp: ts: test variant_shortcut use
 6909   in modfile in 70/377
 6910 
 6911   * testsuite/modulefiles.3/variant/.modulerc,
 6912   .../modules.70-maint/377-variant-shortcut.exp: ts: test module tag with
 6913   variant_shortcut in 70/377
 6914 
 6915   * .../modules.70-maint/377-variant-shortcut.exp: ts: test unload subcmd with
 6916   variant_shortcut in 70/377
 6917 
 6918   * .../modules.70-maint/377-variant-shortcut.exp: ts: test load subcmd with
 6919   variant_shortcut in 70/377
 6920 
 6921 2021-06-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6922 
 6923   * .../modules.70-maint/377-variant-shortcut.exp: ts: test list subcmd with
 6924   variant_shortcut in 70/377
 6925 
 6926   * testsuite/install.00-init/010-environ.exp,
 6927   testsuite/modules.00-init/010-environ.exp: ts: add variant to default
 6928   MODULES_LIST_OUTPUT value
 6929 
 6930   * testsuite/example/siteconfig.tcl-1,
 6931   .../modules.70-maint/377-variant-shortcut.exp: ts: variant_shortcut specific
 6932   config tests in 70/377
 6933 
 6934   * testsuite/modules.70-maint/370-variant.exp: ts: update variant explanation
 6935   in display key in 70/370
 6936 
 6937   * modulecmd.tcl.in: Explain each variant shortcut in display key  For each
 6938   variant shortcut reported, add an entry in the display key to expose the
 6939   variant name associated with the shortcut.
 6940 
 6941 2021-06-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6942 
 6943   * modulecmd.tcl.in: Rework display key for variant  Use a single global
 6944   array '::g_used_va' to track usage of the different variant report form
 6945   (var=val, +var, ...).  Use the {variant=value} syntax to explain enabled or
 6946   disabled boolean variant in display key: {+variant}={variant=on}.  As a
 6947   consequence of last point, '{variant=value}' is added to display key to
 6948   explain the {variant=on} or {variant=off} part of boolean variant key entry.
 6949 
 6950   * modulecmd.tcl.in: Use defined shortcut to report variant  Like boolean
 6951   variants are reported '+name' or '-name', variant with a defined shortcut
 6952   are reported using this shortcut, for instance '%value'.
 6953 
 6954 2021-06-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6955 
 6956   * modulecmd.tcl.in: Parse variant shortcut in module specification  Adapt
 6957   the parseModuleSpecification process to also resolve the variant shortcut
 6958   defined when analyzing module specifications.
 6959 
 6960   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 6961   add variant_shortcut config to completion script
 6962 
 6963 2021-06-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6964 
 6965   * testsuite/modules.70-maint/220-config.exp: ts: adapt existing config tests
 6966   for variant_shortcut
 6967 
 6968 2021-06-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6969 
 6970   * testsuite/install.00-init/010-environ.exp,
 6971   testsuite/modules.00-init/010-environ.exp: ts: clean any variant_shortcut
 6972   config
 6973 
 6974 2021-06-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6975 
 6976   * INSTALL.rst: doc: desc --with-variant-shortcut in INSTALL
 6977 
 6978   * Makefile, Makefile.inc.in, configure, site.exp.in: install: add
 6979   --with-variant-shortcut configure option
 6980 
 6981 2021-06-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6982 
 6983   * modulecmd.tcl.in: Add 'variant_shortcut' config option
 6984 
 6985   * doc/source/design/variants.rst: doc: update boolean variant specs
 6986 
 6987 2021-06-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6988 
 6989   * testsuite/modules.00-init/071-args.exp: ts: fix tests with -* arg and
 6990   advverspec enabled in 00/071
 6991 
 6992 2021-06-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 6993 
 6994   * testsuite/example/siteconfig.tcl-1: ts: update tests using '+' in mod name
 6995   in 00/120
 6996 
 6997   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/6.0,
 6998   testsuite/modules.61-coll/010-init_ts.exp,
 6999   testsuite/modules.61-coll/030-save.exp,
 7000   testsuite/modules.61-coll/040-restore.exp,
 7001   testsuite/modules.61-coll/999-cleanup.exp: ts: bool variant and collection
 7002   in 61/{030,040}
 7003 
 7004   * testsuite/modulefiles.3/variant/7.0,
 7005   testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant and
 7006   requirement in 50/479
 7007 
 7008 2021-06-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7009 
 7010   * testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant
 7011   specified multiple times in 50/479
 7012 
 7013   * testsuite/modulefiles.3/variant/1.0,
 7014   testsuite/modules.00-init/005-init_ts.exp,
 7015   testsuite/modules.50-cmds/470-variant.exp,
 7016   testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bad boolean variant
 7017   specification in 50/479
 7018 
 7019   * modulecmd.tcl.in: Raise error if variant specification contains several
 7020   '='
 7021 
 7022 2021-06-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7023 
 7024   * testsuite/modulefiles.3/variant/1.0,
 7025   testsuite/modules.00-init/005-init_ts.exp,
 7026   testsuite/modules.50-cmds/479-variant-boolean.exp: ts: non-boolean variant
 7027   with boolean-like value in 50/479
 7028 
 7029   * modulecmd.tcl.in: Translate var=val boolean value in canonical boolean
 7030   When variant is specified with the variant=value form, translate any boolean
 7031   value in boolean canonical form (0 or 1).  Specifications are parsed prior
 7032   knowing if variant is defined as a boolean or not. Thus boolean value are
 7033   forbidden on non-boolean variant (see previous commit).
 7034 
 7035   * modulecmd.tcl.in: Raise error when bool val set on non-bool variant  Raise
 7036   an error when a non-boolean variant defines a boolean value in its accepted
 7037   value list. Integers which also are boolean (0 and 1) are yet accepted on
 7038   non-boolean variant.  As boolean value are translated in canonical form (0
 7039   or 1) when the module specification is parsed, boolean value cannot be
 7040   defined as accepted value of non-boolean variant since it would never get
 7041   matched.
 7042 
 7043 2021-06-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7044 
 7045   * testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant and
 7046   @loaded version specifier
 7047 
 7048   * testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant and
 7049   is-loaded/unload/switch
 7050 
 7051   * testsuite/modulefiles.3/variant/4.0,
 7052   testsuite/modules.70-maint/372-variant-display.exp,
 7053   testsuite/modules.70-maint/373-variant-help.exp,
 7054   testsuite/modules.70-maint/374-variant-test.exp: ts: bool variant and
 7055   display/help/test
 7056 
 7057   * testsuite/modules.70-maint/370-variant.exp,
 7058   testsuite/modules.70-maint/375-variant-whatis.exp: ts: bool variant and
 7059   is-avail/avail/path/paths/whatis
 7060 
 7061 2021-06-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7062 
 7063   * testsuite/modules.70-maint/370-variant.exp: ts: test boolean variant with
 7064   list sub-cmd in 70/370
 7065 
 7066   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/5.0,
 7067   testsuite/modules.50-cmds/479-variant-boolean.exp: ts: test boolean variant
 7068   specification in 50/479
 7069 
 7070   * modulecmd.tcl.in: Render boolean variant value as boolean json value  When
 7071   reporting variant set in the JSON output mode, render the value of boolean
 7072   variant as boolean JSON value (true/false, no quote).  Update the
 7073   getVariantList to provide variant with value and is-boolean flag when report
 7074   mode is set to 4.
 7075 
 7076   * testsuite/modulefiles.2/{e+t.fl => e.t.fl}/1.3.1,
 7077   testsuite/modulefiles.2/{e+t.fl => e.t.fl}/1.3.7,
 7078   testsuite/modulefiles.2/{e+t.fl => e.t.fl}/1.4.5,
 7079   testsuite/modules.70-maint/260-extended_default.exp,
 7080   testsuite/modules.70-maint/270-adv_version_spec.exp,
 7081   testsuite/modules.70-maint/271-adv_version_spec-in.exp,
 7082   testsuite/modules.70-maint/272-adv_version_spec-range.exp: ts: rename
 7083   'e+t.fl' test mod into 'e.t.fl'  As '+' followed by alpha characters is now
 7084   a boolean variant specification, change the test module 'e+t.fl' name into
 7085   'e.t.fl'. (cannot use '*' or '?' in file name on Windows)
 7086 
 7087   * modulecmd.tcl.in: Accept + char at end of module name  Accept any number
 7088   of plus (+) character at the end of module name to be part of this module
 7089   name instead of being parsed as a boolean variant character.  '+' character
 7090   should not be followed by alpha character otherwise it will be treated as
 7091   part of boolean variant specification.  Thus 'name+' or 'name++' are
 7092   accepted module names but 'name+name' are taken as module name and enabled
 7093   boolean variant.
 7094 
 7095 2021-06-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7096 
 7097   * modulecmd.tcl.in: Explain var=val/+var/-var on display key  Improve
 7098   display key to also explain the +variant and -variant elements.  Track the
 7099   elements to report from getVariantList procedure, rather when the 'va' SGR
 7100   key is used in order to be able to distinguish the different variant kind.
 7101 
 7102   * modulecmd.tcl.in: Avoid variant collect when not reporting them  Adapt
 7103   reportModules procedure to avoid collecting variant for each module to
 7104   report in case these variant information should not be reported.
 7105 
 7106   * modulecmd.tcl.in: Allow -* arg on cmdline for bool variant  Accept any
 7107   minus argument (-*) set after the sub-command name when the
 7108   advanced_version_spec configuration is enabled and if sub-command accepts
 7109   advanced module specification. Boolean variant may be set to false this way.
 7110 
 7111 2021-06-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7112 
 7113   * testsuite/modulefiles.3/variant/1.0,
 7114   testsuite/modules.00-init/005-init_ts.exp,
 7115   testsuite/modules.50-cmds/479-variant-boolean.exp: ts: test boolean variant
 7116   definition in 50/479
 7117 
 7118 2021-06-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7119 
 7120   * testsuite/modules.20-locate/113-hide-all-opt.exp,
 7121   testsuite/modules.50-cmds/470-variant.exp,
 7122   testsuite/modules.50-cmds/471-variant-unload.exp,
 7123   testsuite/modules.50-cmds/472-getvariant.exp,
 7124   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7125   testsuite/modules.50-cmds/474-variant-conflict.exp,
 7126   testsuite/modules.50-cmds/475-variant-tag.exp,
 7127   testsuite/modules.50-cmds/476-variant-aliassym.exp,
 7128   testsuite/modules.50-cmds/477-variant-info.exp,
 7129   testsuite/modules.61-coll/010-init_ts.exp,
 7130   testsuite/modules.61-coll/040-restore.exp,
 7131   testsuite/modules.70-maint/370-variant.exp,
 7132   testsuite/modules.70-maint/371-variant-msg.exp,
 7133   testsuite/modules.70-maint/372-variant-display.exp,
 7134   testsuite/modules.70-maint/373-variant-help.exp,
 7135   testsuite/modules.70-maint/374-variant-test.exp,
 7136   testsuite/modules.70-maint/375-variant-whatis.exp,
 7137   testsuite/modules.70-maint/376-variant-tag.exp: ts: add isbool flag to
 7138   persistency in existing vr tests
 7139 
 7140   * modulecmd.tcl.in: Record is-boolean state of variant in internal/env
 7141   struct  Record the is-boolean property of each variant either in the
 7142   internal structure or in the persistency information recorded in user
 7143   environment.  Use this recorded property to adapt reporting of boolean
 7144   variant (use the +name or -name to report them instead of name=1 or name=0).
 7145 
 7146 2021-06-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7147 
 7148   * modulecmd.tcl.in: Add --boolean option to variant mfcmd  Add the --boolean
 7149   option to the variant modulefile command to define a boolean variant. When
 7150   set, no list of accepted value should be defined the variant and any default
 7151   value set should be a boolean value.  When boolean variant is evaluated it
 7152   is checked against any value accepted as boolean by Tcl as described in Tcl
 7153   manual:  "If string is any of 0, false, no, or off, then Tcl_GetBoolean
 7154   stores a zero value at *boolPtr. If string is any of 1, true, yes, or on,
 7155   then 1 is stored at *boolPtr. Any of these values may be abbreviated, and
 7156   upper-case spellings are also acceptable."
 7157 
 7158 2021-06-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7159 
 7160   * modulecmd.tcl.in: Parse boolean variant shortcut  Add support for boolean
 7161   variant in module specification: +variant, ~variant and -variant. The
 7162   -variant syntax is not supported on ml command, as the minus sign already
 7163   means to unload specified module. ~variant and +variant could also be
 7164   defined appended to another specification word, whereas -variant must be the
 7165   start of a new specification word.
 7166 
 7167   * testsuite/example/siteconfig.tcl-1,
 7168   testsuite/modules.70-maint/271-adv_version_spec-in.exp,
 7169   testsuite/modules.70-maint/280-ml.exp: ts: adapt err msg after
 7170   parseModuleSpecification update
 7171 
 7172 2021-06-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7173 
 7174   * modulecmd.tcl.in: Refactor parseModuleSpecificationProcAdvVersSpec  Rework
 7175   code of parseModuleSpecificationProcAdvVersSpec procedure to prepare for
 7176   parsing boolean variant and variant shortcut.
 7177 
 7178   * modulecmd.tcl.in: Split parseModuleSpecification in 2 procs  Define
 7179   parseModuleSpecification on the fly depending on the advanced_version_spec
 7180   configuration. Two flavor of the procedure are defined, separately to
 7181   improve code readability.
 7182 
 7183 2021-06-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7184 
 7185   * testsuite/modulefiles.3/variant/.modulerc,
 7186   testsuite/modulefiles.3/variant/2.1/2/1,
 7187   testsuite/modules.50-cmds/470-variant.exp: ts: test vr transmit. with hidden
 7188   mod resolution in 50/470
 7189 
 7190 2021-06-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7191 
 7192   * modulecmd.tcl.in: No vr array check needed on reloadModuleListLoadPhase
 7193   The vr array is the result of the reloadModuleListUnloadPhase procedure
 7194   which fills it with an entry for every module to reload. So there is no need
 7195   to check if vr contains an entry for each module to reload in
 7196   reloadModuleListLoadPhase.
 7197 
 7198   * testsuite/example/siteconfig.tcl-1,
 7199   testsuite/modules.00-init/120-siteconfig.exp: ts: test getModuleDesignation
 7200   when sgr=0 in 00/120
 7201 
 7202   * testsuite/modulefiles.3/variant/1.0,
 7203   testsuite/modules.50-cmds/470-variant.exp,
 7204   testsuite/modules.61-coll/010-init_ts.exp,
 7205   testsuite/modules.61-coll/030-save.exp,
 7206   testsuite/modules.61-coll/999-cleanup.exp: ts: variant redefinition with
 7207   default value in 61/030 & 50/470
 7208 
 7209   * modulecmd.tcl.in: No need to define modEq in getModuleTag  modEq procedure
 7210   is already defined whatever the context it is called from.
 7211 
 7212   * testsuite/modulefiles.3/variant/1.0,
 7213   testsuite/modules.50-cmds/470-variant.exp: ts: test variant without name,
 7214   values and option in 50/470
 7215 
 7216 2021-06-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7217 
 7218   * testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/7.0,
 7219   testsuite/modules.50-cmds/473-variant-prereq.exp: ts: icase/ext_dfl &
 7220   versrange & altname & variant tests
 7221 
 7222 2021-06-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7223 
 7224   * modulecmd.tcl.in: No altname check when modEq is called in eqspec mode  Do
 7225   not check alternative names of the passed module specification when modEq
 7226   procedure is called with the eqspec test mode. As in this mode, alternative
 7227   names are currently checked independently from the module they target.
 7228 
 7229   * modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
 7230   testsuite/modules.70-maint/371-variant-msg.exp: Normalize other variant is
 7231   already loaded msg  Use the same variant representation than anywhere else
 7232   when reporting an *other variant is already loaded* error message. Use SGR
 7233   codes to improve readability of such message.
 7234 
 7235   * testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/7.0,
 7236   testsuite/modules.50-cmds/473-variant-prereq.exp: ts: icase/ext_dfl &
 7237   altname & variant tests
 7238 
 7239 2021-05-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7240 
 7241   * testsuite/modules.61-coll/040-restore.exp: ts: add icase/ext_dfl & variant
 7242   tests on restore
 7243 
 7244   * modulecmd.tcl.in, testsuite/modules.50-cmds/470-variant.exp: Raise error
 7245   with modnvspec from getEqArrayKeyProc  When the implicit default mechanism
 7246   is disabled, raise error with the module name and version but without the
 7247   eventually specified variants.
 7248 
 7249   * testsuite/modulefiles.3/variant/7.0, testsuite/modulefiles.3/vrreq1/1.0,
 7250   testsuite/modules.50-cmds/470-variant.exp,
 7251   testsuite/modules.50-cmds/473-variant-prereq.exp: ts: add
 7252   icase/extended_default & variant tests
 7253 
 7254 2021-05-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7255 
 7256   * modulecmd.tcl.in: Handle break within switch on OS X  On OS X platform,
 7257   when a break command is issued within a switch block the return value is
 7258   TCL_BREAK but there is no specific errorMsg set. Also :errorCode variable is
 7259   not set.  Add support for this case to catch module evaluation abort.
 7260 
 7261   * testsuite/modules.50-cmds/286-info-username.exp,
 7262   testsuite/modules.50-cmds/287-info-usergroups.exp: ts: fix module-info error
 7263   stack test in 50/{286,287}
 7264 
 7265 2021-05-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7266 
 7267   * doc/source/design/variants.rst: doc: desc. is-dfl-specifically-asked in
 7268   variant design
 7269 
 7270   * modulecmd.tcl.in: Preserve variant auto set dfl state when reloading  When
 7271   running `reload` sub-command, ensure the automatically set default value
 7272   state of variant is preserved to end with the exact same loaded module
 7273   properties once reloading is finished.  getVariantList procedure is adapted
 7274   to pass the '2' value to the excl_dflval argument, which means that we want
 7275   to exclude the default value that have been automatically set (so when
 7276   reloading they will be this time also automatically set).
 7277 
 7278 2021-05-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7279 
 7280   * doc/source/design/variants.rst: doc: desc. forbidden  version variant in
 7281   design doc
 7282 
 7283   * testsuite/modulefiles.3/variant/6.0,
 7284   testsuite/modules.50-cmds/478-variant-version.exp: ts: test version variant
 7285   in 50/478
 7286 
 7287   * modulecmd.tcl.in: Forbid use of 'version' variant name  Raise an error if
 7288   variant name 'version' is used in order to avoid use of this variant name
 7289   prior implementation of the specific behaviors of this variant.
 7290 
 7291   * testsuite/modules.50-cmds/470-variant.exp,
 7292   testsuite/modules.50-cmds/471-variant-unload.exp,
 7293   testsuite/modules.50-cmds/472-getvariant.exp,
 7294   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7295   testsuite/modules.50-cmds/474-variant-conflict.exp,
 7296   testsuite/modules.50-cmds/475-variant-tag.exp,
 7297   testsuite/modules.50-cmds/476-variant-aliassym.exp,
 7298   testsuite/modules.50-cmds/477-variant-info.exp,
 7299   testsuite/modules.61-coll/010-init_ts.exp,
 7300   testsuite/modules.61-coll/040-restore.exp: ts: adapt tests with auto set
 7301   variants
 7302 
 7303 2021-05-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7304 
 7305   * modulecmd.tcl.in: Record if variant has been asked by user  Adapt
 7306   is-default variant hint to also record if the default value was asked or if
 7307   it was automatically set.  is-default hint is set to 1 if asked or to 2 if
 7308   default value was automatically set.
 7309 
 7310   * doc/source/design/variants.rst: doc: desc variant in requirement spec in
 7311   design doc
 7312 
 7313   * doc/source/design/variants.rst: doc: desc module-info {name,specified} &
 7314   variant in design doc
 7315 
 7316   * testsuite/modulefiles.3/variant/6.0,
 7317   testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info name &
 7318   variant tests in 50/477
 7319 
 7320   * testsuite/modulefiles.3/variant/6.0,
 7321   testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info specified &
 7322   variant tests in 50/477
 7323 
 7324 2021-05-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7325 
 7326   * doc/source/design/variants.rst: doc: module-info tags/loaded & variant in
 7327   design doc
 7328 
 7329   * doc/source/design/variants.rst: doc: fix module-info specified desc. when
 7330   unloading variant
 7331 
 7332   * testsuite/modulefiles.3/variant/.modulerc,
 7333   testsuite/modulefiles.3/variant/6.0,
 7334   testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info tags &
 7335   variant tests in 50/477
 7336 
 7337   * modulecmd.tcl.in: collect tags over variant on module-info tags  When
 7338   module-info tags is called, collect the tags recorded against the module
 7339   name version and variants designation to get all tags applying to currently
 7340   evaluating module.
 7341 
 7342   * testsuite/modulefiles.3/variant/6.0,
 7343   testsuite/modules.50-cmds/477-variant-info.exp: ts: is-avail & variant tests
 7344   in 50/477
 7345 
 7346   * testsuite/modulefiles.3/variant/6.0,
 7347   testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info loaded &
 7348   variant tests in 50/477
 7349 
 7350   * testsuite/modulefiles.3/variant/6.0,
 7351   testsuite/modules.50-cmds/477-variant-info.exp: ts: is-loaded & variant
 7352   tests in 50/477
 7353 
 7354 2021-05-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7355 
 7356   * doc/source/design/variants.rst, testsuite/modulefiles.3/.modulerc,
 7357   testsuite/modulefiles.3/variant/6.0,
 7358   testsuite/modules.50-cmds/476-variant-aliassym.exp: doc/ts: no variant on
 7359   module-info {alias,symbols,version}
 7360 
 7361 2021-05-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7362 
 7363   * doc/source/design/variants.rst, testsuite/modulefiles.3/.modulerc,
 7364   testsuite/modulefiles.3/variant/6.0,
 7365   testsuite/modules.50-cmds/476-variant-aliassym.exp: doc/ts: no variant on
 7366   module-{alias,virtual,version}
 7367 
 7368   * testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/6.0,
 7369   testsuite/modules.50-cmds/476-variant-aliassym.exp: ts: simple alias/sym
 7370   resolution tests with variant
 7371 
 7372   * doc/source/design/variants.rst, testsuite/modulefiles.3/variant/7.0,
 7373   testsuite/modulefiles.3/vrreq1/2.0, testsuite/modulefiles.3/vrreq2/2.0,
 7374   testsuite/modules.50-cmds/473-variant-prereq.exp: doc/ts: depre mod relying
 7375   on default variant  When an optional requirement is loaded by not specifying
 7376   its variant value to rely on default, the Dependent Reload mechanism will
 7377   miss to detect the dependent module to reload, as variant is not specified
 7378   on command line thus it does not match the requirement specification prior
 7379   load.
 7380 
 7381 2021-05-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7382 
 7383   * testsuite/modulefiles.3/var=val,
 7384   testsuite/modules.70-maint/370-variant.exp,
 7385   testsuite/modules.70-maint/375-variant-whatis.exp: ts: variant specified on
 7386   search context
 7387 
 7388   * doc/source/design/variants.rst: doc: desc. use of variant on search
 7389   contexts
 7390 
 7391 2021-05-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7392 
 7393   * testsuite/modulefiles.3/variant/4.0, testsuite/modulefiles.3/variant/6.0,
 7394   testsuite/modules.50-cmds/471-variant-unload.exp: ts: check variant impact
 7395   over modStartNb proc
 7396 
 7397 2021-05-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7398 
 7399   * doc/source/design/variants.rst: doc: desc sticky/hide/tag in variant
 7400   design
 7401 
 7402 2021-05-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7403 
 7404   * modulecmd.tcl.in: Fix several typos in modulecmd.tcl's comments/debug msgs
 7405 
 7406   * testsuite/modules.00-init/005-init_ts.exp,
 7407   testsuite/modules.50-cmds/460-sticky.exp,
 7408   testsuite/modules.50-cmds/461-super-sticky.exp,
 7409   testsuite/modules.50-cmds/462-sticky-corner.exp,
 7410   testsuite/modules.50-cmds/475-variant-tag.exp,
 7411   testsuite/modules.61-coll/040-restore.exp,
 7412   testsuite/modules.70-maint/231-verbose2.exp: ts: adapt sticky unload
 7413   error/warn messages
 7414 
 7415   * modulecmd.tcl.in: No ref to mod in sticky unload msg  Remove reference to
 7416   module name in the sticky module unload message as this kind of message is
 7417   always produced under the "Unloading" message block that already provides
 7418   the module designation.
 7419 
 7420 2021-05-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7421 
 7422   * testsuite/home/coll32, testsuite/home/coll33,
 7423   testsuite/modulefiles.3/variant/.modulerc,
 7424   testsuite/modules.61-coll/010-init_ts.exp,
 7425   testsuite/modules.61-coll/040-restore.exp,
 7426   testsuite/modules.61-coll/999-cleanup.exp: ts: check stickyness and variants
 7427   when restoring coll
 7428 
 7429   * modulecmd.tcl.in: Use modvr to test stickyness reload on cmdModuleRestore
 7430 
 7431 2021-05-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7432 
 7433   * modulecmd.tcl.in: Remove useless cmp arg on isModuleTagged
 7434 
 7435   * testsuite/modulefiles.3/variant/.modulerc,
 7436   testsuite/modules.50-cmds/475-variant-tag.exp,
 7437   testsuite/modules.70-maint/376-variant-tag.exp: ts: test module-tag &
 7438   variant in 50/475 and 70/376
 7439 
 7440   * modulecmd.tcl.in: Add variant support to stickyness handling  Adapt
 7441   stickyness handling to support variant as, like any other tags, stickyness
 7442   may be applied to module specification including variants.  When testing if
 7443   stickyness is reloading pass the currently module name version with defined
 7444   variants included.  Update isStickynessReloading procedure to handle module
 7445   specification with variants. Improve by the way the test to determine if tag
 7446   applies to module name and version and then if the expected designation is
 7447   reloading or not.
 7448 
 7449   * modulecmd.tcl.in: Add return_rule arg to getModuleTag  Add the return_rule
 7450   argument to the getModuleTag procedure to return the module specification
 7451   that matches passed mod rather the corresponding tag and its properties.
 7452 
 7453 2021-05-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7454 
 7455   * modulecmd.tcl.in: No need to fetch tags or update modnamevr when unloading
 7456   There is no need to fetch the tags or update the module name version and
 7457   variants designation of an unloading module, as this information were found
 7458   complete in the persistent environment.
 7459 
 7460 2021-05-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7461 
 7462   * testsuite/modulefiles.3/variant/.modulerc,
 7463   testsuite/modules.00-init/005-init_ts.exp,
 7464   testsuite/modules.50-cmds/475-variant-tag.exp,
 7465   testsuite/modules.70-maint/376-variant-tag.exp: ts: test module-forbid &
 7466   variant in 50/475 and 70/376
 7467 
 7468   * doc/source/design/variants.rst: doc: variant ignored on avail/whatis
 7469 
 7470   * modulecmd.tcl.in: Check nearly-forbidden tag against modnamevr  Check if
 7471   the nearly-forbidden tag applies to a module by using its full name version
 7472   and variant designation.  Also test if this tag applies right after
 7473   modulefile evaluation in case the update designation, with default variant
 7474   set, now matches a module-forbid rule.
 7475 
 7476   * modulecmd.tcl.in: Check if forbidden tag applies right after mod eval
 7477   Right after the modulefile evaluation, the full variant designation of this
 7478   module is updated. Check is here added to verify that this new designation
 7479   does not match any module-forbid statement. If this is the case, raise an
 7480   error to undo evaluation.
 7481 
 7482   * testsuite/modules.50-cmds/440-module-tag.exp: ts: fix module-tag eval
 7483   within modulefile in 50/{440,462}
 7484 
 7485   * modulecmd.tcl.in: Check mod with variants against forbidden tag in
 7486   getPathToModule  Update the getPathToModule procedure to check module
 7487   against the forbidden tag with its full designation (module name version and
 7488   variants).
 7489 
 7490 2021-05-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7491 
 7492   * doc/source/design/variants.rst: doc: tags on variant do not appear on
 7493   avail
 7494 
 7495   * modulecmd.tcl.in: Update modnamevr after mod eval in execute-modulefile
 7496   Update the module name version with variant designation once modulefile has
 7497   been evaluated in the execute-modulefile procedure. After evaluation, the
 7498   variants with default value are set, so the designation is then complete.
 7499   Tags are then collected for this new designation has it can change the tag
 7500   list applying to loading module.  The up_namevr argument is added to the
 7501   execute-modulefile procedure. When set, it means the modnamevrvar argument
 7502   is a variable name from the calling context to bound to. Otherwise
 7503   modnamevrvar contains the module name version and variant string.  As the
 7504   tags are fetched again after modulefile evaluation, the tags that have been
 7505   defined within modulefile are now collected and exported in persistency
 7506   variable.
 7507 
 7508   * testsuite/modulefiles.3/variant/.modulerc,
 7509   testsuite/modulefiles.3/variant/.w s, testsuite/modulefiles.3/variant/7.0,
 7510   testsuite/modulefiles.3/variant/8.0,
 7511   testsuite/modules.50-cmds/475-variant-tag.exp,
 7512   testsuite/modules.70-maint/376-variant-tag.exp: ts: test module-hide &
 7513   variant in 50/475 and 70/376
 7514 
 7515   * modulecmd.tcl.in: Update tag collect/query mechanisms to support variants
 7516 
 7517   * modulecmd.tcl.in: Fetch variants from spec if mod not load{ed,ing} on
 7518   modEq  Update modEq procedure to fetch the variants set on mod argument from
 7519   the specification of this argument if mod is not loaded or loading (ismodlo
 7520   argument set to 0).
 7521 
 7522 2021-05-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7523 
 7524   * modulecmd.tcl.in: Check mod name with variant to know if hidden-loaded
 7525   When loading a module, check if it is tagged hidden-loaded by comparing its
 7526   full designation (module name, version and variant).  When this module is
 7527   unloading, no need to check against variant as tags are recorded in the
 7528   environment over the module name and version.
 7529 
 7530   * modulecmd.tcl.in: Check variant set on hidden module spec  When checking
 7531   if module is hidden, compare the variant set on the hidden specifications.
 7532   As a result, hiding specification containing variant specification should
 7533   not hide any module since hiding is checked against available module name
 7534   and version, not their variants.
 7535 
 7536   * modulecmd.tcl.in: Add vrcmp option to modEq proc  Add the vrcmp option to
 7537   the modEq procedure to indicate whether or not variant should be compared,
 7538   instead of relying on values of the ismodlo option.
 7539 
 7540 2021-05-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7541 
 7542   * doc/source/design/variants.rst: doc: desc already loaded mod in variant
 7543   design
 7544 
 7545 2021-05-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7546 
 7547   * doc/source/design/variants.rst: doc: desc variant cmp when restoring coll
 7548   in variant design
 7549 
 7550   * modulecmd.tcl.in: Unset variant in collection means default value set  In
 7551   a collection when a variant is not specified (no value set) on the module
 7552   load line it means this variant is set at the default value for variant.
 7553   Code is adapted here in getVariantList and modEq to transmit the is-default
 7554   hint for each variant set on the loaded module against which the module
 7555   specification defined in collection is compared to.  The *missmeandfl*
 7556   option is added to the modVariantCmp procedure to add a specific comparison
 7557   when enabled: if the variant set on loaded module is not the default version
 7558   but this variant is not set on the collection definition, it means module
 7559   specification in collection and loaded module differ.
 7560 
 7561   * modulecmd.tcl.in: Too soon to rely on autosym on
 7562   getLoadedAltAndSimplifiedName  Autosymbols are not yet ready be used to
 7563   fetch simplified default names when saving/restoring collection. Currently a
 7564   module gets loaded with the default auto-symbol even if there is an explicit
 7565   default set for this module in another enabled modulepath.  Also some
 7566   environment gets loaded and then after user enables the implicit_default and
 7567   advanced_version_spec options, the autosymbols will not be set but modulecmd
 7568   will expect them when saving/restoring collection.
 7569 
 7570 2021-05-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7571 
 7572   * modulecmd.tcl.in: Use computed alt and simplified names when saving coll
 7573   Adapt getSimplifiedLoadedModuleList procedure, which is now only called when
 7574   saving a collection, to rely on the getLoadedAltAndSimplifiedName procedure
 7575   to fetch alternative and simplified names of loaded modules.
 7576 
 7577   * testsuite/modules.61-coll/010-init_ts.exp,
 7578   testsuite/modules.61-coll/030-save.exp,
 7579   testsuite/modules.61-coll/999-cleanup.exp: ts: correct env when saving coll
 7580   with autosym in 61/040
 7581 
 7582   * modulecmd.tcl.in: Make restore process rely on regular modEq cmp  Adapt
 7583   getMovementBetweenList procedure to compare element in provided lists with
 7584   the modEq procedure when lists are composed of module specifications. Call
 7585   modEq with a comparison of alternative and simplified names of loaded
 7586   modules.  The module restore process in cmdModuleRestore procedure only need
 7587   one call to getMovementBetweenList to get the list of module to unload, then
 7588   another call to get the list of module to load, in order to restore the
 7589   collection. Whether collection is version-pinned or not the modEq call made
 7590   during collection and loaded module comparison will also check collection
 7591   module name against loaded module simplified names.
 7592 
 7593   * modulecmd.tcl.in: Compute list of alt and simplified names for loaded mods
 7594   Add the getLoadedAltAndSimplifiedName procedure that compute for designated
 7595   loaded module passed as argument the list of its alternative names and
 7596   simplified names (in case this module name version is the implicit default).
 7597   This information is only fetched from the alternative names in case the
 7598   automated symbols are generated: simplified names are part of the
 7599   alternative names in this case. Otherwise the parent module name is resolve
 7600   against currently set modulepath to determine if parent module resolves to
 7601   currently loaded module version.  Add the ability on modEq procedure to
 7602   compare a module pattern against these alternative and simplified names of a
 7603   loaded module: ismodlo argument should be set to '3'.
 7604 
 7605 2021-05-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7606 
 7607   * testsuite/home/coll30, testsuite/home/coll31,
 7608   testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/1.0,
 7609   testsuite/modulefiles.3/variant/6.0,
 7610   testsuite/modules.61-coll/010-init_ts.exp,
 7611   testsuite/modules.61-coll/040-restore.exp,
 7612   testsuite/modules.61-coll/999-cleanup.exp: ts: restore coll when different
 7613   variant loaded
 7614 
 7615 2021-05-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7616 
 7617   * modulecmd.tcl.in: Identify already reported conflict with evalid
 7618 
 7619   * testsuite/modules.00-init/005-init_ts.exp,
 7620   testsuite/modules.20-locate/110-hide.exp,
 7621   testsuite/modules.20-locate/111-hide-hard.exp,
 7622   testsuite/modules.20-locate/115-forbid.exp,
 7623   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7624   testsuite/modules.50-cmds/474-variant-conflict.exp,
 7625   .../modules.70-maint/270-adv_version_spec.exp,
 7626   .../modules.70-maint/271-adv_version_spec-in.exp,
 7627   .../272-adv_version_spec-range.exp: ts: adapt mod designation when express
 7628   as spec
 7629 
 7630 2021-05-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7631 
 7632   * modulecmd.tcl.in: Add formatted mod designation from spec on err/warn msgs
 7633   Adapt error and warning messages relative to requirement or conflict issue
 7634   to report the module specification with the new standard module designation.
 7635 
 7636   * testsuite/modules.50-cmds/470-variant.exp,
 7637   testsuite/modules.50-cmds/471-variant-unload.exp,
 7638   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7639   testsuite/modules.50-cmds/474-variant-conflict.exp,
 7640   testsuite/modules.61-coll/040-restore.exp,
 7641   testsuite/modules.70-maint/231-verbose2.exp,
 7642   testsuite/modules.70-maint/371-variant-msg.exp: ts: adapt mod designation
 7643   string
 7644 
 7645   * modulecmd.tcl.in: If evalid not found use mod arg as spec in
 7646   getModuleDesignation  If the specified evaluation id passed to
 7647   getModuleDesignation procedure is not found, use the mod argument as a
 7648   module specification to compute the module designation, instead of using it
 7649   as the resulting designation.  Designation of switched-on module that fails
 7650   to load is this way formatted with the regular module designation syntax.
 7651 
 7652   * modulecmd.tcl.in: Remove variant and separator with SGR in err/warn/info
 7653   msgs  Graphically enhance variants and separators from module designation in
 7654   every error, warning or informational messages. Diminish variant graphically
 7655   impact with the se SGR code unless if it should be hightlighted (when used
 7656   in message block title).
 7657 
 7658   * modulecmd.tcl.in: Improve mod designation with variant readability  Remove
 7659   space between module name version and variant list and between variants in
 7660   that list. Use the separator sgr color (se) to reduce the visual impact of
 7661   {, } and : separator characters.  Message reports now use same module
 7662   designation syntax than 'module list' report.
 7663 
 7664 2021-05-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7665 
 7666   * testsuite/modules.00-init/005-init_ts.exp,
 7667   testsuite/modules.50-cmds/471-variant-unload.exp,
 7668   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7669   testsuite/modules.50-cmds/474-variant-conflict.exp,
 7670   .../modules.70-maint/270-adv_version_spec.exp,
 7671   .../modules.70-maint/271-adv_version_spec-in.exp,
 7672   .../272-adv_version_spec-range.exp,
 7673   testsuite/modules.70-maint/371-variant-msg.exp: ts: adapt prereq/conflict
 7674   err/warn msgs
 7675 
 7676   * modulecmd.tcl.in: Add complete mod designation from spec on err/warn msgs
 7677   Use getModuleDesignation procedure over module specification to report the
 7678   full module name version and variants.
 7679 
 7680   * modulecmd.tcl.in: Fetch info from mod spec in getModuleDesignation  Add
 7681   the ability to fetch module information from module specification on
 7682   getModuleDesignation procedure. If from argument equals 'spec', mod argument
 7683   is taken as a module specification and module name version and variants are
 7684   retrieved from the parsed properties of this module specification.
 7685 
 7686   * modulecmd.tcl.in: Add complete loaded mod designation on err/warn mesgs
 7687   Use getModuleDesignation procedure over loaded modules to report the full
 7688   module name version and variants.
 7689 
 7690   * modulecmd.tcl.in: Fetch info from loaded context in getModuleDesignation
 7691   Add the ability to fetch module information from loaded context on
 7692   getModuleDesignation procedure. If from argument equals 'loaded', mod
 7693   argument is taken as the module name and version designation, then specified
 7694   variants are fetched from loaded context.
 7695 
 7696   * modulecmd.tcl.in: Process module designation in getModuleDesignation
 7697   Rather recording generated designation in registerModuleDesignation
 7698   procedure, only record module name and version and specified variant list in
 7699   this procedure.  Then process the module designation from the
 7700   getModuleDesignation procedure.
 7701 
 7702   * modulecmd.tcl.in: Adapt getModuleDesignation arguments  Reorder and rename
 7703   arguments of the getModuleDesignation procedure to prepare it being called
 7704   from multiple contexts.
 7705 
 7706   * testsuite/modules.00-init/005-init_ts.exp,
 7707   testsuite/modules.00-init/130-auto_handling.exp,
 7708   testsuite/modules.00-init/140-color.exp,
 7709   testsuite/modules.20-locate/100-wspace.exp,
 7710   testsuite/modules.50-cmds/120-prereq-full.exp,
 7711   testsuite/modules.50-cmds/121-prereq-module.exp,
 7712   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
 7713   testsuite/modules.50-cmds/130-conflict-full.exp,
 7714   .../modules.50-cmds/132-conflict-fullpath.exp,
 7715   testsuite/modules.50-cmds/370-deps-bis.exp,
 7716   testsuite/modules.50-cmds/370-deps-fullpath.exp,
 7717   testsuite/modules.50-cmds/370-deps.exp,
 7718   testsuite/modules.50-cmds/372-deps3.exp,
 7719   testsuite/modules.50-cmds/373-deps4.exp,
 7720   testsuite/modules.50-cmds/374-deps5.exp,
 7721   testsuite/modules.50-cmds/375-deps6.exp,
 7722   testsuite/modules.50-cmds/375-order.exp,
 7723   testsuite/modules.50-cmds/376-deps7.exp,
 7724   testsuite/modules.50-cmds/376-switch.exp,
 7725   testsuite/modules.50-cmds/377-cyclic.exp,
 7726   testsuite/modules.50-cmds/377-deps8.exp,
 7727   testsuite/modules.50-cmds/377-opposite.exp,
 7728   testsuite/modules.50-cmds/378-sametarget.exp,
 7729   testsuite/modules.50-cmds/379-module-unload.exp,
 7730   testsuite/modules.50-cmds/380-altname.exp,
 7731   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 7732   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7733   testsuite/modules.50-cmds/474-variant-conflict.exp,
 7734   testsuite/modules.70-maint/240-icase.exp,
 7735   .../modules.70-maint/260-extended_default.exp,
 7736   .../modules.70-maint/270-adv_version_spec.exp,
 7737   .../modules.70-maint/271-adv_version_spec-in.exp,
 7738   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
 7739   .../274-adv_version_spec-autosym.exp: ts: adapt conflict/prereq default err
 7740   mesg
 7741 
 7742   * modulecmd.tcl.in: Simplify conflict/prereq default error message  Do not
 7743   recall current module designation on the default conflict and prereq error
 7744   message, as they are produced under the Loading/Unload message block which
 7745   already report current module designation.
 7746 
 7747 2021-04-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7748 
 7749   * testsuite/modules.50-cmds/470-variant.exp: ts: forced load when another
 7750   variant is loaded in 50/470
 7751 
 7752   * testsuite/modulefiles.3/variant/7.0, testsuite/modulefiles.3/vrreq1/1.0,
 7753   testsuite/modulefiles.3/vrreq1/2.0, testsuite/modulefiles.3/vrreq2/1.0,
 7754   testsuite/modulefiles.3/vrreq2/2.0, testsuite/modulefiles.3/vrreq3/1.0,
 7755   testsuite/modulefiles.3/vrreq3/2.0,
 7756   testsuite/modules.50-cmds/473-variant-prereq.exp: ts: variant special
 7757   requirement spec tests in 50/473
 7758 
 7759 2021-04-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7760 
 7761   * testsuite/modulefiles.3/variant/7.0, testsuite/modulefiles.3/variant/7.1,
 7762   testsuite/modulefiles.3/vrreq1/1.0, testsuite/modulefiles.3/vrreq1/2.0,
 7763   testsuite/modulefiles.3/vrreq2/1.0, testsuite/modulefiles.3/vrreq2/2.0,
 7764   testsuite/modulefiles.3/vrreq3/1.0, testsuite/modulefiles.3/vrreq3/2.0,
 7765   testsuite/modules.50-cmds/473-variant-prereq.exp,
 7766   testsuite/modules.50-cmds/474-variant-conflict.exp: ts: add auto_handling
 7767   switch tests in 50/{473,474}
 7768 
 7769 2021-04-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7770 
 7771   * testsuite/modulefiles.3/variant/7.0,
 7772   testsuite/modulefiles.3/vrreq1/.modulerc,
 7773   testsuite/modulefiles.3/vrreq1/1.0, testsuite/modulefiles.3/vrreq1/2.0,
 7774   testsuite/modulefiles.3/vrreq2/1.0, testsuite/modulefiles.3/vrreq2/2.0,
 7775   testsuite/modulefiles.3/vrreq3/1.0, testsuite/modulefiles.3/vrreq3/2.0,
 7776   testsuite/modulefiles.3/vrreq4/1.0, testsuite/modulefiles.3/vrreq4/2.0,
 7777   testsuite/modules.50-cmds/474-variant-conflict.exp: ts: test variant with
 7778   conflict auto_handling mechanism
 7779 
 7780 2021-04-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7781 
 7782   * testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/7.0,
 7783   testsuite/modulefiles.3/vrreq1/.modulerc,
 7784   testsuite/modulefiles.3/vrreq1/1.0, testsuite/modulefiles.3/vrreq1/2.0,
 7785   testsuite/modulefiles.3/vrreq1/w s, testsuite/modulefiles.3/vrreq2/1.0,
 7786   testsuite/modulefiles.3/vrreq2/2.0, testsuite/modulefiles.3/vrreq2/w s,
 7787   testsuite/modulefiles.3/vrreq3/1.0, testsuite/modulefiles.3/vrreq3/2.0,
 7788   testsuite/modulefiles.3/vrreq4/1.0, testsuite/modulefiles.3/vrreq4/2.0,
 7789   testsuite/modules.50-cmds/473-variant-prereq.exp: ts: test variant with
 7790   prereq auto_handling mechanism
 7791 
 7792   * modulecmd.tcl.in: Pass down variant when recursively calling
 7793   getPathToModule
 7794 
 7795   * modulecmd.tcl.in: Pass modnamevr to getUnmetDependentLoadedModuleList
 7796   Pass the module name and variants set as argument to the
 7797   getUnmetDependentLoadedModuleList procedure to make it use the variants
 7798   specified to determine the dependent modules. This information has to be
 7799   passed to the modEq procedure as no modulefile evaluation occurred yet when
 7800   getUnmetDependentLoadedModuleList is called, so variants have to be
 7801   transmitted as argument to modEq.
 7802 
 7803 2021-04-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7804 
 7805   * modulecmd.tcl.in: Preserve variants set when reloading DepRe mods
 7806 
 7807 2021-04-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7808 
 7809   * modulecmd.tcl.in: Update mod name and variants using already loaded mod
 7810 
 7811   * modulecmd.tcl.in: Transmit mod name and variants for switch report sum
 7812 
 7813   * testsuite/modules.20-locate/100-wspace.exp,
 7814   .../273-adv_version_spec-space.exp: ts: eval mods are reported enclosed if
 7815   contains space
 7816 
 7817   * modulecmd.tcl.in: Use mod name with variants to define a unique msgrecid
 7818 
 7819   * modulecmd.tcl.in: Record msgrecid in mod evaluation struct  Use the
 7820   message recording id (msgrecid) to register the module evaluation instead of
 7821   the module name. Call for the module designation based on this recording id
 7822   when reporting evaluated modules. Update the registerModuleEval and
 7823   registerModuleEvalHidden procedures to use msgrecid rather module name. In
 7824   case of evaluation failure, pass the module name with its specified variant
 7825   to record for the isModuleEvalFailed query.  When evaluated modules are
 7826   reported, they use the full denomination syntax with specified variants and
 7827   space enclosed in single quotes.
 7828 
 7829   * modulecmd.tcl.in: Record both regular and sgr version of mod designation
 7830   When recording evaluated module designation, record it in both regular and
 7831   SGR versions, and add the ability to fetch one or the other.
 7832 
 7833   * testsuite/modules.00-init/005-init_ts.exp,
 7834   testsuite/modules.50-cmds/470-variant.exp,
 7835   testsuite/modules.70-maint/371-variant-msg.exp: ts: adapt error when another
 7836   variant of mod is loaded
 7837 
 7838 2021-04-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7839 
 7840   * modulecmd.tcl.in: Error if module is already loaded with diff. variant set
 7841   Break process of cmdModuleLoad if the same module is detected as already
 7842   loaded but with a different variant set than the one specified on this
 7843   module load.
 7844 
 7845 2021-04-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7846 
 7847   * modulecmd.tcl.in: Record modulenamevr in evaluation attempt struct  When
 7848   recording module evaluation attempt use module name with variant as
 7849   identifier. Update all calls to isModuleEvaluated and
 7850   registerModuleEvalAttempt procedures.
 7851 
 7852   * testsuite/modules.00-init/005-init_ts.exp,
 7853   testsuite/modules.20-locate/100-wspace.exp,
 7854   .../273-adv_version_spec-space.exp: ts: correctly enclose mod name on eval
 7855   msg block
 7856 
 7857   * testsuite/modules.50-cmds/471-variant-unload.exp: ts: fix specifiedname
 7858   test in 50/471
 7859 
 7860   * modulecmd.tcl.in: Add modnamevr arg to execute-modulefile procedure  Add
 7861   the modnamevr argument to the execute-modulefile procedure and save this
 7862   information into the modulenamevr state to make it available during
 7863   evaluation context.  Use that new modulenamevr state to pass variant list to
 7864   the variant procedure when module is unloading. This way the specifiedname
 7865   on unload mode is the specification set by user on command line or in
 7866   modulefile code, like on any other evaluation modes.
 7867 
 7868   * modulecmd.tcl.in: Fetch modnamevr from getPathToModule calls
 7869 
 7870 2021-04-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7871 
 7872   * modulecmd.tcl.in: Return modnamevr on getPathToModule  Update the
 7873   getPathToModule procedure to return an additional string as result which
 7874   corresponds to the module name plus specified variants. When no variant are
 7875   specified, modnamevr equals to modname.
 7876 
 7877   * modulecmd.tcl.in: Compare with variant set in isModuleEvaluated
 7878 
 7879   * modulecmd.tcl.in: Add modvrlist option to modEq proc  Add the modvrlist
 7880   option to the modEq procedure in order to specify the list of variant of mod
 7881   to compare pattern to.  Useful when comparing against a mod that is not
 7882   loaded or loading.
 7883 
 7884   * modulecmd.tcl.in: Add g_loadedModuleVariant to push/pop/restore settings
 7885 
 7886 2021-04-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7887 
 7888   * testsuite/modules.50-cmds/471-variant-unload.exp: ts: update unload tests
 7889   in 50/471 now variants are compared
 7890 
 7891   * modulecmd.tcl.in: Add variant comparison ability to modEq  Adapt the modEq
 7892   procedures to compare the variant specified for pattern to the variant set
 7893   for designated loaded or loading module. Only perform such comparison if
 7894   module name and version comparison is successful.  Variant comparison relies
 7895   on the modVariantCmp procedure. Every variant set for pattern should be
 7896   found defined and with an identical value on loaded/loading module.
 7897   Otherwise there is no match.
 7898 
 7899 2021-04-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7900 
 7901   * doc/source/design/variants.rst: doc: desc. variant cmp in design doc
 7902 
 7903 2021-04-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7904 
 7905   * modulecmd.tcl.in: Remove unused icase var in isModuleEvaluated
 7906 
 7907   * modulecmd.tcl.in: Update isModuleEvaluated to rely on new modEq  Update
 7908   the isModuleEvaluated procedure to indicate to also test alternative names
 7909   of evaluated modules through new modEq procedure.
 7910 
 7911 2021-04-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7912 
 7913   * doc/source/design/module-selection-contexts.rst: doc: remove ref to
 7914   does*ModuleMatchesName ref in doc
 7915 
 7916   * modulecmd.tcl.in: Make conflict report detection rely on new modEq  modEq
 7917   procedure now also test alternative names of loaded modules if ismodlo
 7918   argument is set to 2. Update conflict report detection code to take into
 7919   account this new ability of modEq when checking against loaded modules.
 7920 
 7921   * modulecmd.tcl.in: Remove useless doesLoadingModuleMatchesName proc
 7922 
 7923   * modulecmd.tcl.in: Remove useless doesModuleMatchesName proc  Since modEq
 7924   procedure treats alternative names of loaded modules, the
 7925   doesModuleMatchesName procedure is now useless and replaced by a direct call
 7926   to modEq with its ismodlo option set to 1.
 7927 
 7928   * modulecmd.tcl.in: Retrieve variant list specified in pattern on modEq
 7929   procs
 7930 
 7931   * modulecmd.tcl.in: No variant comparison on modEqStatic proc  As specified
 7932   variant is currently only useful for module specification comparison with
 7933   loaded or loading module, the modEqStatic procedure does not need to handle
 7934   the variant specified for `modspec` as this procedure is only called on
 7935   non-loaded modules contexts
 7936 
 7937   * modulecmd.tcl.in: Treat alt names of load{ed,ing} mods on modEq  Add the
 7938   `ismodlo` argument to the modEq procedure to determine is passed `mod` is a
 7939   non-loaded module (0), a loaded module (1) or a loading module (2). If `mod`
 7940   is loaded or loading comparison against `pattern` is also performed over the
 7941   alternative names of mod.  This with one call to modEq, all module name and
 7942   its alternatives are tested against pattern: pattern properties are fetched
 7943   and comparison is prepared only once instead of calling modEq procedure over
 7944   each alternative name of module.
 7945 
 7946 2021-04-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7947 
 7948   * doc/source/_static/terminal_output.css, doc/source/conf.py: doc: define
 7949   sphinx roles/css to colorize variant
 7950 
 7951 2021-04-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7952 
 7953   * testsuite/modules.50-cmds/470-variant.exp: ts: adapt result if
 7954   implicit_default is disabled on 50/470
 7955 
 7956 2021-04-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7957 
 7958   * testsuite/modules.50-cmds/470-variant.exp: ts: fix stack trace err msgs
 7959   for Tcl<8.6 in 50/470
 7960 
 7961 2021-04-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7962 
 7963   * testsuite/install.00-init/010-environ.exp,
 7964   testsuite/modules.00-init/010-environ.exp: ts: clear test-related env var
 7965   prior tests start
 7966 
 7967   * testsuite/install.00-init/010-environ.exp,
 7968   testsuite/modules.00-init/010-environ.exp: ts: clear MODULES_LMVARIANT prior
 7969   test start
 7970 
 7971 2021-03-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7972 
 7973   * testsuite/modules.50-cmds/470-variant.exp,
 7974   testsuite/modules.50-cmds/471-variant-unload.exp,
 7975   testsuite/modules.70-maint/372-variant-display.exp,
 7976   testsuite/modules.70-maint/373-variant-help.exp,
 7977   testsuite/modules.70-maint/374-variant-test.exp,
 7978   testsuite/modules.70-maint/375-variant-whatis.exp: ts: test @loaded spec
 7979   with variant
 7980 
 7981   * modulecmd.tcl.in: Add defined variant when translating @loaded  When
 7982   translating the @loaded version specifier, also retrieve the variant
 7983   specified for corresponding loaded module.
 7984 
 7985 2021-03-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 7986 
 7987   * testsuite/modulefiles.3/variant/6.0,
 7988   testsuite/modules.50-cmds/472-getvariant.exp,
 7989   testsuite/modules.70-maint/375-variant-whatis.exp: ts: test
 7990   getvariant/variant on whatis eval mode in 70/375
 7991 
 7992   * modulecmd.tcl.in: Update variant procs to pass Tcl itrp as first arg
 7993   Update the variant, variant-wh and getvariant procedures to pass them the
 7994   reference to the current Tcl modulefile interpreter, instead of guessing
 7995   this reference within the procedures.
 7996 
 7997   * modulecmd.tcl.in: Set an optimized version of variant cmd for whatis eval
 7998   Add an optimized version of the variant modulefile command for the whatis
 7999   evaluation mode, not to specifically raise specification error for this mode
 8000   and barely set the variant to an empty string value in the modulefile
 8001   context. This way, operations on variant are lighter on this global
 8002   evaluation mode.  Variant definition errors still produce error which stops
 8003   modulefile evaluation but they are not reported unless if verbosity is set
 8004   to debug mode like any other errors during a whatis global evaluation.
 8005 
 8006   * modulecmd.tcl.in: Parse variant cmd args in parseVariantCommandArgs proc
 8007   Add the parseVariantCommandArgs procedure to specifically parse arguments
 8008   set on variant modulefile command.
 8009 
 8010 2021-03-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8011 
 8012   * testsuite/modulefiles.3/variant/5.0,
 8013   testsuite/modules.50-cmds/472-getvariant.exp: ts: test getvariant on
 8014   help/test eval mode in 50/472
 8015 
 8016   * testsuite/modulefiles.3/variant/4.0,
 8017   testsuite/modules.70-maint/374-variant-test.exp: ts: test variant on test
 8018   evalulation mode in 70/374
 8019 
 8020   * testsuite/modulefiles.3/variant/4.0,
 8021   testsuite/modules.70-maint/373-variant-help.exp: ts: test variant on help
 8022   evalulation mode in 70/373
 8023 
 8024   * testsuite/modules.00-init/005-init_ts.exp,
 8025   testsuite/modules.70-maint/372-variant-display.exp: ts: test variant on
 8026   display evalulation mode in 70/372
 8027 
 8028   * testsuite/modulefiles.3/variant/5.0,
 8029   testsuite/modules.50-cmds/472-getvariant.exp: ts: test getvariant in 50/472
 8030 
 8031   * doc/source/design/variants.rst: doc: desc. getvariant in variant design
 8032   doc
 8033 
 8034 2021-03-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8035 
 8036   * contrib/vim/syntax/modulefile.vim: vim: add variant-related modulefile
 8037   cmds & var
 8038 
 8039   * modulecmd.tcl.in: Add 'getvariant' modulefile command  Introduce the
 8040   getvariant modulefile command to query the current value of a given variant
 8041   name. If variant is not defined, an empty string is return or the specific
 8042   value passed as argument. During a display evaluation, getvariant output the
 8043   variant name enclosed in curly braces.
 8044 
 8045   * modulecmd.tcl.in: Use msgrecid to identify registerd mod designation
 8046   Update the registerModuleDesignation and getModuleDesignation procedures to
 8047   identify the module designation with the message record id, which is also
 8048   the evaluation id. Identification is this way improve as the same module
 8049   name and version could be evaluated multiple times with different variant
 8050   set during the same modulecmd.tcl run.
 8051 
 8052 2021-03-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8053 
 8054   * testsuite/modulefiles.3/variant/4.0,
 8055   testsuite/modules.50-cmds/470-variant.exp,
 8056   testsuite/modules.50-cmds/471-variant-unload.exp: ts: test variant
 8057   evaluation on unload mode in 50/471
 8058 
 8059 2021-03-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8060 
 8061   * modulecmd.tcl.in: Record variant for persistency unless if unloading
 8062 
 8063   * modulecmd.tcl.in: Return updated module specification on getPathToModule
 8064   When getPathToModule is called to find a module specification from the
 8065   loaded module list, return an updated version of this module specification
 8066   fully matching the designation of found loaded module (name, version and
 8067   variants).  When unloading module, set this updated designation as the
 8068   module specified to unload. Which means querying the [module-info specified]
 8069   during an unload evaluation will return the loaded module specification not
 8070   the module specification set by user.
 8071 
 8072   * modulecmd.tcl.in: Enclose modname when setting it in switch upper ctx
 8073 
 8074 2021-03-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8075 
 8076   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/w s,
 8077   testsuite/modules.61-coll/010-init_ts.exp,
 8078   testsuite/modules.61-coll/040-restore.exp: ts: update collections tests with
 8079   --default variant opt
 8080 
 8081   * testsuite/modulefiles.3/variant/1.0,
 8082   testsuite/modules.50-cmds/470-variant.exp: ts: add --default tests in 50/470
 8083 
 8084   * modulecmd.tcl.in: Add --default option to variant modfile cmd
 8085 
 8086   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/2.0,
 8087   testsuite/modules.50-cmds/470-variant.exp: ts: test variant defined without
 8088   allowed value list in 50/470
 8089 
 8090 2021-03-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8091 
 8092   * modulecmd.tcl.in: Raise error when no allowed val list defined for variant
 8093 
 8094   * testsuite/modules.00-init/005-init_ts.exp,
 8095   testsuite/modules.50-cmds/470-variant.exp,
 8096   testsuite/modules.61-coll/040-restore.exp: ts: add err_unkvar helper proc
 8097 
 8098   * testsuite/modulefiles.3/variant/1.0,
 8099   testsuite/modules.00-init/005-init_ts.exp,
 8100   testsuite/modules.50-cmds/470-variant.exp,
 8101   testsuite/modules.61-coll/040-restore.exp: ts: update variant tests for
 8102   unspecified variant global err
 8103 
 8104   * modulecmd.tcl.in: Raise global error if no val specified for variant
 8105 
 8106 2021-03-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8107 
 8108   * doc/source/design/variants.rst: doc: remove --multivalued opt from variant
 8109   cmd  Ability to specify multiple values for a variant does not seem to be
 8110   needed in the first version of the mechanism.
 8111 
 8112   * testsuite/modules.00-init/005-init_ts.exp,
 8113   testsuite/modules.50-cmds/470-variant.exp: ts: invalid value for variant is
 8114   global error
 8115 
 8116 2021-03-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8117 
 8118   * modulecmd.tcl.in: Invalid variant value specified is a global error  Raise
 8119   a global error rather a modulefile error when value specified for variant is
 8120   not part of the allowed variant list.
 8121 
 8122 2021-03-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8123 
 8124   * testsuite/modules.70-maint/231-verbose2.exp: ts: test not loaded mod name
 8125   vers spec returned by getPathToModule
 8126 
 8127   * modulecmd.tcl.in: Return on getPathToModule mod name vers spec if not
 8128   loaded  When looking at a loaded module with getPathToModule procedure, if
 8129   this module designation is not found loaded, return as module name the
 8130   module name and version specification (module specification without the
 8131   variant eventually specified)
 8132 
 8133   * modulecmd.tcl.in: Record module name and version spec when parsing
 8134   specification  Add to the g_moduleVersSpec structure the module name and
 8135   version specified on the command-line or in modulefile (which is equivalent
 8136   to the module specification minus the variant specified in this
 8137   specification).  Add the getModuleNameAndVersFromVersSpec procedure to
 8138   retrieve this module name and version specification from full module
 8139   specification string.
 8140 
 8141   * modulecmd.tcl.in: Return empty modname when mod is empty on
 8142   getPathToModule
 8143 
 8144   * modulecmd.tcl.in: Update mod desis. for switch ctx when unload is skipped
 8145   When the unload phase of a switch action is skipped, because for instance
 8146   module is not loaded, update the switched-off module designation for the
 8147   switch context prior ending the unload phase.
 8148 
 8149 2021-03-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8150 
 8151   * testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/w s,
 8152   testsuite/modules.70-maint/371-variant-msg.exp: ts: add specific report msg
 8153   tests for variant in 70/371
 8154 
 8155   * testsuite/modules.50-cmds/470-variant.exp,
 8156   testsuite/modules.61-coll/040-restore.exp: ts: update mod designation in
 8157   variant tests
 8158 
 8159 2021-03-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8160 
 8161   * testsuite/install.00-init/020-module.exp,
 8162   testsuite/modules.20-locate/100-wspace.exp,
 8163   .../273-adv_version_spec-space.exp: ts: mod desig. with space is now
 8164   enclosed in ''
 8165 
 8166   * doc/source/design/variants.rst: doc: desc variant report on info msgs in
 8167   design doc
 8168 
 8169   * modulecmd.tcl.in: Record module designation prior its evaluation  Record
 8170   module designation (module name and version + variants specified on
 8171   load/unload sub-command arguments) prior its load or unload evaluation to
 8172   report an accurate designation on top of the error message obtained.  Update
 8173   getVariantList procedure to get the variant specified list for given module
 8174   from module specification instead of getting it from the loaded environment.
 8175 
 8176 2021-03-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8177 
 8178   * modulecmd.tcl.in: Record/use module designation including variant spec
 8179   Add the registerModuleDesignation and getModuleDesignation procedures to
 8180   report specified variants in addition to module name and version when
 8181   reporting load, unload or switch of modules.  Module name or variant
 8182   specifications are enclosed between single quotes if they contain a space
 8183   character.  Module name and variant specifications are highlighted if
 8184   configured when registered to produce a graphically enhanced report message.
 8185   Variant specification is enclosed between {} to distinguish it from module
 8186   name and version.
 8187 
 8188 2021-03-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8189 
 8190   * modulecmd.tcl.in: Work with mod+variant designations on restore sub-cmd
 8191   Adapt cmdModuleRestore to work with the full module name, version and
 8192   variant specification to compare currently loaded environment against
 8193   environment specified in saved collection.
 8194 
 8195   * testsuite/modules.70-maint/290-json.exp,
 8196   testsuite/modules.70-maint/320-tags.exp,
 8197   testsuite/modules.70-maint/340-output-key.exp,
 8198   testsuite/modules.70-maint/361-list_output.exp: ts: adapt list sub-cmd json
 8199   tests for variant
 8200 
 8201   * testsuite/modules.61-coll/040-restore.exp: ts: test variant on restore
 8202   sub-cmd in 61/040
 8203 
 8204 2021-03-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8205 
 8206   * testsuite/home/coll27, testsuite/home/coll28, testsuite/home/coll29,
 8207   testsuite/modulefiles.3/variant/1.0,
 8208   testsuite/modules.61-coll/010-init_ts.exp,
 8209   testsuite/modules.61-coll/060-saveshow.exp,
 8210   testsuite/modules.61-coll/999-cleanup.exp: ts: test variant on saveshow
 8211   sub-cmd in 61/060
 8212 
 8213   * testsuite/home/coll26, testsuite/modulefiles.3/variant/1.0,
 8214   testsuite/modulefiles.3/variant/3.0, testsuite/modulefiles.3/variant/w s,
 8215   testsuite/modules.50-cmds/470-variant.exp,
 8216   testsuite/modules.61-coll/010-init_ts.exp,
 8217   testsuite/modules.61-coll/030-save.exp,
 8218   testsuite/modules.61-coll/999-cleanup.exp: ts: test variant on save sub-cmd
 8219   in 61/030
 8220 
 8221   * testsuite/config/base-config.exp,
 8222   testsuite/modules.00-init/005-init_ts.exp: ts: add '*' to the list of
 8223   escaped chars on regexp tests
 8224 
 8225 2021-03-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8226 
 8227   * doc/source/design/variants.rst: doc: desc. recording collection in variant
 8228   design
 8229 
 8230 2021-03-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8231 
 8232   * modulecmd.tcl.in: Record variant specification in saved collection  When
 8233   modules have been loaded with variants specified, record the variants
 8234   specification along module name and version when saving the loaded
 8235   environment as a collection.  In case the collection_pin_version
 8236   configuration option is disabled, only record in collection the variants
 8237   whose value is not the default one. This way the same behavior is obtained
 8238   not to pin version or variant if their default value is the one saved.
 8239 
 8240 2021-03-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8241 
 8242   * testsuite/modules.50-cmds/470-variant.exp,
 8243   testsuite/modules.70-maint/370-variant.exp: ts: adapt and add tests for
 8244   is-default variant val persistency
 8245 
 8246   * modulecmd.tcl.in: Record if variant value is default in persistency var
 8247 
 8248   * doc/source/design/variants.rst: doc: desc is-default-set persistency in
 8249   variant design
 8250 
 8251   * testsuite/modules.70-maint/220-config.exp,
 8252   testsuite/modules.70-maint/361-list_output.exp: ts: adapt tests for variant
 8253   val in list_*output cfgs in 70/{220,361}
 8254 
 8255   * modulecmd.tcl.in: Add default return val if output elt not known on
 8256   isEltInReport
 8257 
 8258   * testsuite/modules.70-maint/370-variant.exp: ts: test variant report on
 8259   list sub-cmd in 70/370
 8260 
 8261 2021-03-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8262 
 8263   * doc/source/design/output-configuration.rst,
 8264   doc/source/design/variants.rst: doc: desc. variant reporting in design docs
 8265 
 8266   * modulecmd.tcl.in: Describe variant in list sub-cmd report key
 8267 
 8268   * modulecmd.tcl.in: Sort variants and remove duplicate defs when reporting
 8269 
 8270   * modulecmd.tcl.in: Output variants as object in json mode  Adapt
 8271   formatListEltToJsonDisplay to call for formatObjectValToJson to output
 8272   elements passed as argument as a JSON object. Also add an argument for each
 8273   element to control whether it should be reported or not, in order not to
 8274   output the variants field on avail output.
 8275 
 8276 2021-03-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8277 
 8278   * modulecmd.tcl.in: Report variant on module list  Report the variant set
 8279   for loaded modules on module list output if variant are defined in output
 8280   list configuration.  Adapt formatListEltToDisplay and
 8281   formatListEltToJsonDisplay procedures to render the variant set for loaded
 8282   modules. Update displayKey procedure to describe how variant are reported.
 8283 
 8284 2021-03-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8285 
 8286   * modulecmd.tcl.in: Render colon sep only if multiple elt to report
 8287 
 8288 2021-03-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8289 
 8290   * INSTALL.rst, configure, doc/source/module.rst: install/doc: add `va` color
 8291   key  Add the `va` color key in default light and dark color palettes to
 8292   graphically enhance the report of variant value.
 8293 
 8294   * INSTALL.rst, configure, doc/source/module.rst, modulecmd.tcl.in:
 8295   install/doc: add variant element on list_*output configs  Add the element
 8296   `variant` in the allow list of the list_output and list_terse_output
 8297   configuration options. Set this new element in the default value list of the
 8298   list_output configuration option.
 8299 
 8300 2021-03-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8301 
 8302   * testsuite/modules.50-cmds/470-variant.exp: ts: adapt variant tests for
 8303   persistency in 50/470
 8304 
 8305   * modulecmd.tcl.in: Set specified variant values persistent  Record in user
 8306   loaded environment the values specified for the variants defined in the
 8307   evaluated modulefile. Use MODULES_LMVARIANT environment variable to record
 8308   such information.
 8309 
 8310   * testsuite/modulefiles/spread/3.0, testsuite/modulefiles/spread/7.0,
 8311   testsuite/modulefiles/spreadrc/dir3/.modulerc,
 8312   testsuite/modulefiles/spreadrc/dir3/1.0,
 8313   testsuite/modulefiles/spreadrc/dir4/.modulerc,
 8314   testsuite/modulefiles/spreadrc/dir7/.modulerc,
 8315   testsuite/modulefiles/spreadrc/dir7/1.0,
 8316   testsuite/modulefiles/spreadrc/dir8/.modulerc: ts: adapt existing interp
 8317   tests now variant are checked
 8318 
 8319 2021-03-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8320 
 8321   * testsuite/modules.50-cmds/470-variant.exp: ts: test mixing variant and
 8322   version spec in 50/470
 8323 
 8324 2021-03-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8325 
 8326   * testsuite/modules.50-cmds/470-variant.exp: ts: test specification of
 8327   unknown variant in 50/470
 8328 
 8329   * modulecmd.tcl.in: Raise error is specified variant is unknown
 8330 
 8331 2021-03-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8332 
 8333   * testsuite/modulefiles.3/var=val, testsuite/modulefiles.3/variant/1.0,
 8334   testsuite/modulefiles.3/variant/2.0, testsuite/modulefiles.3/variant/3.0,
 8335   testsuite/modules.50-cmds/470-variant.exp: ts: add initial variant tests in
 8336   50/470
 8337 
 8338 2021-03-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8339 
 8340   * modulecmd.tcl.in: Add variant modulefile command  Add initial version of
 8341   the variant modulefile command taking as argument a variant name then the
 8342   list of allowed values.  Variant value specified is retrieved with
 8343   getVariantListFromVersSpec procedure. Then variant name is instanciated in
 8344   ModuleVariant array with specified value in modulefile interpretation
 8345   context.
 8346 
 8347 2021-03-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8348 
 8349   * modulecmd.tcl.in: Parse valued-variant specified  Update
 8350   parseModuleSpecification procedure to parse valued-variant (name=value) set
 8351   in module specification.
 8352 
 8353   * modulecmd.tcl.in: Add variantlist field to module name version spec struct
 8354   Update setModuleVersSpec procedure to add as 7th entry in struct list the
 8355   list of variant specified for modarg.  Introduce the
 8356   getVariantListFromVersSpec procedure to retrieve just this variant list from
 8357   module name version specification.
 8358 
 8359 2021-03-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8360 
 8361   * doc/source/diff_v3_v4.rst: doc: desc. variant changes in diff doc
 8362 
 8363 2021-06-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8364 
 8365   * testsuite/modules.50-cmds/390-function.exp,
 8366   testsuite/modules.50-cmds/400-source-sh.exp: ts: update set-function export
 8367   mech. in 50/{390,400}
 8368 
 8369   * NEWS.rst, modulecmd.tcl.in: Export defined shell function only on Bash
 8370   When defining a shell function with the set-function modulefile command,
 8371   only export this function when using the Bash shell (using the export -f
 8372   shell command) to make it available in sub-shell contexts. Shell function
 8373   export is not supported on other kind of sh shell (sh, ksh and zsh).  Fixes
 8374   #401.
 8375 
 8376   * .cirrus.yml: cirrus: force libarchive update on el8.3
 8377 
 8378 2021-06-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8379 
 8380   * doc/source/diff_v3_v4.rst: doc: desc. setenv diff between Modules 3.2 and
 8381   4+  Describe the difference between Modules 3.2 and 4+ when it comes to the
 8382   arguments passed to the setenv modulefile command.  Fixes #402.
 8383 
 8384 2021-05-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8385 
 8386   * NEWS.rst, .../bar-2.1/bar-setup.csh, .../bar-2.1/bar-setup.sh,
 8387   .../source-script-in-modulefile/bar-2.1/bin/barbin, .../modulefiles/bar/2.1,
 8388   .../modulefiles/foo/1.2, .../cookbook/source-script-in-modulefile.rst: doc:
 8389   desc setup with shell-specific scripts in cookbook  Update the *Source
 8390   script in modulefile* cookbook recipe to add it a *Usage with shell-specific
 8391   scripts* section that demonstrate how to use modulefiles with `source-sh`
 8392   commands when software provide a specific initialization script for each
 8393   shell it supports.  Take this opportunity to improve the readability of this
 8394   recipe by coloring/highlighting shell session examples.  Fixes #399.
 8395 
 8396 2021-05-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8397 
 8398   * testsuite/example/siteconfig.tcl-1: ts: fix modVersCmp redefinition test
 8399   in 00/120
 8400 
 8401 2021-05-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8402 
 8403   * .github/workflows/linux_tests.yaml: gh: exit run on error if executed
 8404   through script
 8405 
 8406 2021-05-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8407 
 8408   * Makefile, NEWS.rst, configure: install: allow building from submodule
 8409   repository  Fix installation scripts to allow building Modules when its
 8410   repository is set as a git submodule.  Closes #398.
 8411 
 8412   * MIGRATING.rst, NEWS.rst: doc: desc range in list on NEWS/MIGRATING
 8413 
 8414   * doc/source/module.rst: doc: desc. when new concepts were added in
 8415   module(1)
 8416 
 8417   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc use of version
 8418   range in version list in manpages
 8419 
 8420   * doc/source/design/advanced-module-version-specifiers.rst: doc: update
 8421   design doc now vers range allowed in list
 8422 
 8423   * testsuite/modulefiles.3/advvers2/.modulerc,
 8424   testsuite/modulefiles.3/advvers2/1.0, testsuite/modulefiles.3/advvers2/1.1,
 8425   testsuite/modulefiles.3/advvers2/2.0, testsuite/modulefiles.3/advvers2/2.10,
 8426   testsuite/modulefiles.3/advvers2/2.2, testsuite/modulefiles.3/advvers2/2.8,
 8427   testsuite/modulefiles.3/advvers2/3.7, testsuite/modulefiles.3/advvers2/4.2,
 8428   testsuite/modulefiles.3/advvers2/foo, .../276-adv_version_spec-rangein.exp:
 8429   ts: test use of version ranges in version lists
 8430 
 8431 2021-05-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8432 
 8433   * modulecmd.tcl.in: Allow version range in version list  Improve the
 8434   advanced version specifier to support use of version ranges within version
 8435   list. The syntax `@:2,4:5,7:` enables to exclude versions.  Closes #397.
 8436 
 8437 2021-03-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8438 
 8439   * modulecmd.tcl.in: Split version specifier parsing in dedicated proc  Add
 8440   parseModuleVersionSpecifier procedure, called from parseModuleSpecification
 8441   to analyze the version specifier part in full module specification.
 8442 
 8443   * modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1: Rename
 8444   parseModuleVersionSpecifier into parseModuleSpecification  Rename the
 8445   parseModuleVersionSpecifier procedure into parseModuleSpecification, as it
 8446   will now on take in charge more than just the version specifier parsing
 8447   (specified variants will be parsed too).
 8448 
 8449 2021-02-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8450 
 8451   * doc/source/design/variants.rst: doc: add *Variants* design document
 8452 
 8453 2021-05-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8454 
 8455   * testsuite/config/base-config.exp: ts: never reset exit_status var between
 8456   tests
 8457 
 8458   * doc/example/log-module-commands/siteconfig.tcl,
 8459   doc/example/top-priority-values/siteconfig.tcl: doc: fix modulecmd state
 8460   check in recipe code  Code to handle the internal states of modulecmd have
 8461   been reworked on Modules v4.6. As a consequence several siteconfig.tcl
 8462   extension scripts described on documentation recipes have to be adapted.
 8463   Closes #396
 8464 
 8465 2021-04-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8466 
 8467   * MIGRATING.rst, NEWS.rst: doc: desc. edit/MODULES_EDITOR in NEWS/MIGRATING
 8468 
 8469   * testsuite/modules.70-maint/380-edit.exp: ts: add 'edit' sub-command
 8470   specific tests in 70/380
 8471 
 8472 2021-04-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8473 
 8474   * testsuite/modulefiles/modbad/edit, testsuite/modules.00-init/071-args.exp,
 8475   testsuite/modules.50-cmds/151-module-onlytop.exp,
 8476   testsuite/modules.70-maint/220-config.exp,
 8477   testsuite/modules.90-avail/070-full.exp: ts: update existing tests to check
 8478   'edit'
 8479 
 8480   * testsuite/install.00-init/010-environ.exp,
 8481   testsuite/modules.00-init/010-environ.exp: ts: clean any editor config
 8482 
 8483   * doc/source/module.rst: doc: desc. edit/MODULES_EDITOR in module(1)
 8484 
 8485   * INSTALL.rst: doc: desc --with-editor in INSTALL
 8486 
 8487   * modulecmd.tcl.in: Throw any error from editor as external error
 8488 
 8489   * Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in:
 8490   install: add --with-editor configure option  Introduce the --with-editor
 8491   configure option to choose at installation time the default editor command
 8492   to use to interactively edit modulefiles. Default editor is 'vi'.
 8493 
 8494   * doc/source/diff_v3_v4.rst: doc: desc. edit/editor in diff doc
 8495 
 8496   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 8497   add editor config to completion script
 8498 
 8499 2021-04-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8500 
 8501   * modulecmd.tcl.in: Add the 'editor' configuration option  Add the editor
 8502   module configuration option to define the editor command to use to
 8503   interactively edit modulefiles. When specifically set, the MODULES_EDITOR
 8504   environment variable is defined. If not set, environment variable VISUAL or
 8505   EDITOR can be used to define the value of this configuration (in this
 8506   order).  Follow the same configuration scheme than Git with GIT_EDITOR,
 8507   VISUAL and EDITOR environment variables.
 8508 
 8509   * modulecmd.tcl.in: Add 'edit' sub-command  Introduce the edit sub-command
 8510   to interactively edit existing modulefiles.
 8511 
 8512   * testsuite/modules.00-init/005-init_ts.exp: ts: attempt to set term size if
 8513   failing to detect it
 8514 
 8515 2021-04-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8516 
 8517   * NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
 8518   version.inc.in: Release of version 4.7.1
 8519 
 8520 2021-04-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8521 
 8522   * .../sticky-modules/modulefiles/compiler/.modulerc,
 8523   .../sticky-modules/modulefiles/compiler/compA/1.0,
 8524   .../sticky-modules/modulefiles/compiler/compA/1.2,
 8525   .../sticky-modules/modulefiles/compiler/compB/1.3,
 8526   .../sticky-modules/modulefiles/compiler/compB/2.1,
 8527   .../sticky-modules/modulefiles/core/.modulerc,
 8528   doc/example/sticky-modules/modulefiles/core/1.0,
 8529   doc/example/sticky-modules/modulefiles/core/2.0, doc/source/conf.py,
 8530   doc/source/cookbook/sticky-modules.rst: doc: add *sticky modules* cookbook
 8531   recipe
 8532 
 8533   * doc/source/conf.py: doc: update default etcdir exposed
 8534 
 8535   * doc/source/cookbook/hide-and-forbid-modules.rst: doc: fix
 8536   hide-and-forbid-modules document ref
 8537 
 8538   * INSTALL.rst: doc: fix --with-tag-abbrev default value in INSTALL  Correct
 8539   the default value of the --with-tag-abbrev installation option in INSTALL
 8540   document.
 8541 
 8542   * INSTALL.rst, doc/source/module.rst: doc: desc. changes on
 8543   MODULES_COLORS/--with-*-background-colors  Add description of changes that
 8544   occurred on version 4.6 and 4.7 for the --with-dark-background-colors and
 8545   --with-light-background-colors installation options and for the
 8546   MODULES_COLORS environment variable.
 8547 
 8548   * INSTALL.rst: doc: fix desc. --with-{dark,light}-background-colors in
 8549   INSTALL  Update the description and default value of the
 8550   --with-dark-background-colors and --with-light-background-colors
 8551   installation options in INSTALL document.
 8552 
 8553 2021-04-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8554 
 8555   * contrib/vim/syntax/modulefile.vim: vim: add modfile vars
 8556   Module{Tool,ToolVersion,sCurrentModulefile}
 8557 
 8558 2021-04-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8559 
 8560   * testsuite/install.00-init/005-init_ts.exp,
 8561   testsuite/install.00-init/040-subshell.exp,
 8562   testsuite/install.00-init/050-crossshell.exp: ts: exit code on fish>=3.2
 8563   saturates at 255  Update fish install tests following change introduced on
 8564   fish 3.2, where the exit code now saturates to 255 for all builtins commands
 8565   rather overflowing. (see https://github.com/fish-shell/fish-shell/pull/7702)
 8566 
 8567   * modulecmd.tcl.in: Fix sh-to-mod to support fish 3.2  Update the sh-to-mod
 8568   mechanism to support version 3.2 of the fish shell. This new version
 8569   introduces the `.` builtin command that should be regexp-escaped when
 8570   determining the shell functions or aliases defined by the script analyzed by
 8571   sh-to-mod.  An extra space character is also added by fish 3.2 at the end of
 8572   shell alias or function definition. Update parsing of these elements to
 8573   ignore such extra space.
 8574 
 8575 2021-03-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8576 
 8577   * .github/ISSUE_TEMPLATE/question.md: github: add question issue template
 8578 
 8579 2021-03-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8580 
 8581   * configure: install: re-license configure script from GPLv3+ to GPLv2+
 8582   Change license of the configure installation script from GPLv3+ to GPLv2+.
 8583   Align this way all files from the Modules project under the GPLv2+ license.
 8584   Consent has been obtained from the copyright holders (I, @xdch47 and
 8585   @jraphanel) to perform such move. Consent from Jacques Raphanel and Felix
 8586   Neumärker were collected by email.  Revert contribution from R.K. Owen
 8587   (cc4d3194), from whom consent is not yet obtained. Contribution will be
 8588   restored as soon as consent will be obrained.  Related to #389
 8589 
 8590   * script/envml, script/envml.cmd: script: re-license envml scripts from
 8591   GPLv3+ to GPLv2+  Change license of envml and envml.cmd scripts from GPLv3+
 8592   to GPLv2+.  Align this way all files from the Modules project under the
 8593   GPLv2+ license.  Consent has been obtained from the copyright holders (I and
 8594   @jraphanel) to perform such move. Consent from Jacques Raphanel was
 8595   collected by email.  Related to #389
 8596 
 8597 2021-02-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8598 
 8599   * doc/source/module.rst, doc/source/modulefile.rst: doc: fixes few typos in
 8600   module.1 and modulefile.4
 8601 
 8602   * Makefile, README.md: doc: add link to @EnvModules Twitter page in README
 8603 
 8604   * lib/envmodules.c, lib/envmodules.h: lib: re-license envmodules lib from
 8605   GPLv3+ to GPLv2+  Change license of the Modules Tcl extension library from
 8606   GPLv3+ to GPLv2+.  Align this way all files from the Modules project under
 8607   the GPLv2+ license.  Consent has been obtained from copyright holder to
 8608   perform such move (I hold the full copyright for this library).  Related to
 8609   #389
 8610 
 8611   * lib/testutil-0getgroups.c, lib/testutil-closedir.c,
 8612   lib/testutil-dupgetgroups.c, lib/testutil-getgrgid.c,
 8613   lib/testutil-getgroups.c, lib/testutil-getpwuid.c, lib/testutil-mktime.c,
 8614   lib/testutil-time.c: ts: re-license test libraries from GPLv3+ to GPLv2+
 8615   Change license of all testutil-* libraries, used to test Modules Tcl
 8616   extension library, from GPLv3+ to GPLv2+.  Align this way all files from the
 8617   Modules project under the GPLv2+ license.  Consent has been obtained from
 8618   copyright holder to perform such move (I hold the full copyright for these
 8619   librairies).  Related to #389
 8620 
 8621   * testsuite/bin/install_test_cmake, testsuite/bin/install_test_csh,
 8622   testsuite/bin/install_test_fish, testsuite/bin/install_test_perl,
 8623   testsuite/bin/install_test_python, testsuite/bin/install_test_r,
 8624   testsuite/bin/install_test_ruby, testsuite/bin/install_test_sh,
 8625   testsuite/bin/install_test_tcl: ts: re-license install test scripts from
 8626   GPLv3+ to GPLv2+  Change license of all install_test_* scripts, used to test
 8627   Modules installation, from GPLv3+ to GPLv2+.  Align this way all files from
 8628   the Modules project under the GPLv2+ license.  Consent has been obtained
 8629   from copyright holder to perform such move (I hold the full copyright for
 8630   these script files).  Related to #389
 8631 
 8632   * script/mb, script/mlprof, script/modulecmd.in, script/mpub, script/mrel,
 8633   script/mt, script/mtreview, script/nglfar2ccov, script/playdemo: script:
 8634   re-license script from GPLv3+ to GPLv2+  Change license of mb, mlprof,
 8635   modulecmd, mpub, mrel, mt, mtreview, nglfar2ccov and playdemo scripts from
 8636   GPLv3+ to GPLv2+.  Align this way all files from the Modules project under
 8637   the GPLv2+ license.  Consent has been obtained from copyright holder to
 8638   perform such move (I hold the full copyright for these script files).
 8639   Related to #389
 8640 
 8641 2021-02-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8642 
 8643   * README.md, doc/source/index.rst: doc: clarify license terms (GPLv2+)
 8644   Related to #389
 8645 
 8646 2021-02-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8647 
 8648   * MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
 8649   doc/source/conf.py, version.inc.in: Release of version 4.7.0
 8650 
 8651   * .gitattributes: install: exclude codecov.yml from git export
 8652 
 8653 2021-02-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8654 
 8655   * INSTALL.rst, NEWS.rst, doc/source/conf.py: doc: add *Get Modules* section
 8656   in INSTALL
 8657 
 8658   * INSTALL.rst: doc: use term output-style for examples in INSTALL
 8659 
 8660 2021-02-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8661 
 8662   * NEWS.rst: doc: desc. term_width/--width/-w in NEWS
 8663 
 8664   * doc/source/diff_v3_v4.rst: doc: desc. term_width in diff doc
 8665 
 8666 2021-02-15  Anais GAERTNER <anais.gaertner@cea.fr>
 8667 
 8668   * doc/source/module.rst: doc: desc. term_width/--witdh/-w in module(1) man
 8669 
 8670 2021-02-12  Anais GAERTNER <anais.gaertner@cea.fr>
 8671 
 8672   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 8673   add -w/--width options to completion scripts
 8674 
 8675 2021-02-09  Anais GAERTNER <anais.gaertner@cea.fr>
 8676 
 8677   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 8678   add term_width config to completion script
 8679 
 8680   * modulecmd.tcl.in: Add a range of acceptable values for term_width config
 8681   Add a range of acceptable values for the options -w and --width using
 8682   configuration option kind 'intbe'. The value should be an integer comprised
 8683   between 0 and 1000. An error message is sent when a value is out of this
 8684   range.
 8685 
 8686 2021-02-08  Anais GAERTNER <anais.gaertner@cea.fr>
 8687 
 8688   * testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
 8689   term_width config in 70/220
 8690 
 8691 2021-01-25  Anais GAERTNER <anais.gaertner@cea.fr>
 8692 
 8693   * testsuite/modules.70-maint/350-term_width.exp: ts: add test for term_width
 8694   config in 70/350
 8695 
 8696 2021-01-07  Anais GAERTNER <anais.gaertner@cea.fr>
 8697 
 8698   * modulecmd.tcl.in: Add term_width configuration  By default, term_width is
 8699   equal to 0, but can be overridden by the environment variable, which can be
 8700   also overriden by the command-line options -w or --width=. When term_width
 8701   is equal to 0, the output width is the full terminal width, automatically
 8702   detected by the module command. If term_width is different from 0, this sets
 8703   a specific number of columns for the display of the output.  Closes #359
 8704 
 8705 2021-02-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8706 
 8707   * MIGRATING.rst: doc: desc. {avail,list}_*output in MIGRATING
 8708 
 8709   * NEWS.rst: doc: desc. silent make and recent inst/mpub/rpm work in NEWS
 8710 
 8711   * NEWS.rst: doc: desc. {avail,list}_*output in NEWS
 8712 
 8713 2021-02-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8714 
 8715   * doc/source/design/module-tags.rst: doc: fix mfcmd ref in module-tags
 8716   design doc
 8717 
 8718   * testsuite/example/siteconfig.tcl-1,
 8719   testsuite/modules.90-avail/070-full.exp: ts: update tests relying on
 8720   avail_report_{dir,mfile}_sym cfg
 8721 
 8722   * doc/source/module.rst: doc: desc. --output/-o cmd line switches
 8723 
 8724   * doc/source/module.rst: doc: desc {avail,list}_*output configs with related
 8725   envar
 8726 
 8727   * doc/source/module.rst: doc: remove avail_report_{dir,mfile}_sym configs
 8728 
 8729   * contrib/rpm/environment-modules.spec.in: rpm: align spec syntax with
 8730   Fedora spec file  Add on the way a missing build dependency on 'make'
 8731   package.  Also remove obsolete 'Group' tag (see
 8732   https://fedoraproject.org/wiki/Changes/Remove_Group_Tag)
 8733 
 8734 2021-02-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8735 
 8736   * script/mpub: script: correctly detect previous version tag on mpub  In
 8737   case last bugfix release was made from a branch not parent of the current
 8738   branch from which the next release will be rolled out. List all tags and get
 8739   previous version name from the second to last position.
 8740 
 8741   * Makefile: install: correctly clear git remote in build ref tag
 8742 
 8743   * testsuite/modules.20-locate/043-virtual.exp: ts: illegal dir error now
 8744   obtained on FreeBSD 12.2
 8745 
 8746   * .cirrus.yml: cirrus: test over newer FreeBSD 11 & 12 releases
 8747 
 8748   * Makefile, doc/Makefile, init/Makefile: install: silently include
 8749   version.inc in Makefiles  Silently include version.inc in main, doc and init
 8750   Makefiles to avoid 'Makefile:349: version.inc: No such file or directory'
 8751   warning message when version.inc needs to be rebuilt prior being loaded.
 8752 
 8753 2021-02-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8754 
 8755   * doc/Makefile: install: doc cannot be built in parallel
 8756 
 8757   * configure: install: add -i opt to lib autoreconf  Ensure missing auxiliary
 8758   file are copied when running autoreconf for Modules Tcl extension library.
 8759 
 8760   * lib/tcl.m4: install: import new version of lib/tcl.m4  Import new version
 8761   of tcl.m4 for compatibility with autoconf >=2.69.  File is imported from
 8762   https://github.com/tcltk/tclconfig.
 8763 
 8764   * lib/configure.ac: install: fix lib/configure.ac syntax for autoconf>=2.69
 8765 
 8766   * Makefile, doc/Makefile: install: silent compat version make build
 8767 
 8768   * Makefile, doc/Makefile, init/Makefile: install: no include of version.inc
 8769   for 'clean' make goals
 8770 
 8771   * doc/Makefile: install: put 'all' rule first in doc Makefile
 8772 
 8773   * doc/Makefile, init/Makefile: install: build ../version.inc from init/doc
 8774   Makefiles  Add makefile rule to build ../version.inc file if missing from
 8775   the init and doc Makefiles.
 8776 
 8777 2021-02-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8778 
 8779   * doc/source/modulefile.rst: doc: fix link to module-info in modulefile(4)
 8780   man
 8781 
 8782 2021-02-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8783 
 8784   * Makefile, doc/Makefile: install: no print directory change for build make
 8785   targets  Pass the --no-print-directory option to the make commands which are
 8786   silenced by default.
 8787 
 8788 2021-02-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8789 
 8790   * Makefile, doc/Makefile, init/Makefile, lib/Makefile.in: install: pretty
 8791   print on makefile build targets  Print generated file names rather commands
 8792   executed to generate these files on makefile build targets. Output when
 8793   making Modules is this way simplified. When option `V=1` is passed to make
 8794   verbose mode is enabled and executed commands are shown.  Simplified make
 8795   output does not apply to the install, uninstall, test, clean, distclean
 8796   targets and their relatives.
 8797 
 8798 2021-02-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8799 
 8800   * doc/Makefile: install: improve doc-related makefile rules
 8801 
 8802 2021-02-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8803 
 8804   * .github/workflows/linux_tests.yaml: gh: emulate tty on linux tests with
 8805   specific siteconfig
 8806 
 8807   * init/Makefile, init/zsh-functions/_module.in: init: add completion of
 8808   -a/--all opt on list sub-cmd
 8809 
 8810 2021-02-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8811 
 8812   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 8813   add -o/--output options to completion scripts
 8814 
 8815   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
 8816   init/zsh-functions/_module.in: init: use -o option instead of sed in
 8817   completion scripts  Update shell completion scripts to make use of the
 8818   module option -o to control the element to find in output rather using sed
 8819   command to discard the unwanted elements.
 8820 
 8821   * testsuite/modulefiles.3/foo/.modulerc, testsuite/modulefiles.3/foo/0.2,
 8822   testsuite/modules.70-maint/360-avail_output.exp: ts: test modulepath elt
 8823   output on avail sub-cmd
 8824 
 8825 2021-02-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8826 
 8827   * modulecmd.tcl.in: Make cmdModuleList rely on reportModules  Use
 8828   reportModules to output the loaded modules and their properties. Add the
 8829   mod_list_order argument to the reportModules procedure to precise the order
 8830   to report the results.
 8831 
 8832   * modulecmd.tcl.in: Add show_idx and excluded_tag args to reportModules
 8833 
 8834   * modulecmd.tcl.in: Transform listModules into reportModules  Rename the
 8835   listModules procedure into reportModules and handle result output from there
 8836   by directly calling displayElementList rather returning the list of elements
 8837   to output.
 8838 
 8839   * modulecmd.tcl.in: Report modulepath on avail sub-cmd if included in output
 8840   If modulepath is not included in output, available modules collected from
 8841   global/user rc and enabled modulepaths are aggregated and reported all
 8842   together. Firstly defined module wins.
 8843 
 8844   * modulecmd.tcl.in: Externalize getModules call outside of listModules
 8845 
 8846   * modulecmd.tcl.in: Consolidate search filters in cmdModuleAvail
 8847 
 8848 2021-02-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8849 
 8850   * testsuite/example/modulerc-1.in,
 8851   testsuite/install.00-init/050-crossshell.exp,
 8852   testsuite/modules.70-maint/120-autoinit.exp,
 8853   testsuite/modules.70-maint/220-config.exp: ts: update tests of
 8854   shells_with_ksh_fpath config  Now configuration value expect a specific list
 8855   of shell names separated by colon character.
 8856 
 8857   * NEWS.rst, doc/source/module.rst, modulecmd.tcl.in: Validate elements in
 8858   shells_with_ksh_fpath value list  The shells_with_ksh_fpath configuration
 8859   option and its relative environment variable MODULES_SHELLS_WITH_KSH_FPATH
 8860   accept a list of shell each of them separated by colon character. Accepted
 8861   shell names are sh, bash, csh, tcsh and fish.
 8862 
 8863 2021-02-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8864 
 8865   * NEWS.rst, configure: install: split configure err msg over an extra line
 8866 
 8867   * NEWS.rst, configure: install: color ERROR/WARNING msg header in configure
 8868   Color the *ERROR* and *WARNING* message headers produced by configure script
 8869   if output is sent to a terminal.
 8870 
 8871   * INSTALL.rst: doc: desc. expected value for --with-nearly-forbidden-days
 8872 
 8873   * NEWS.rst, configure: install: check --with-nearly-forbidden-days int value
 8874   Check the value set for the --with-nearly-forbidden-days option is an
 8875   integer comprised between 0 and 365.
 8876 
 8877   * testsuite/modules.20-locate/115-forbid.exp: ts: test bad val in
 8878   MODULES_NEARLY_FORBIDDEN_DAYS in 20/115
 8879 
 8880 2021-02-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8881 
 8882   * .cirrus.yml: cirrus: increase git clone depth
 8883 
 8884   * testsuite/modules.70-maint/220-config.exp: ts: update
 8885   nearly_forbidden_days config tests in 70/220
 8886 
 8887   * NEWS.rst, doc/source/module.rst, modulecmd.tcl.in: Restrict accepted
 8888   values for nearly_forbidden_days config  Restrict the value accepted by
 8889   nearly_forbidden_days configuration option to integer comprised between 0
 8890   and 365.
 8891 
 8892   * modulecmd.tcl.in: Add configuration option kind 'intbe'  Add configuration
 8893   option kind 'intbe' which stands for *integer between* where value must be
 8894   an integer comprised between a lower and an upper bound. These bounds are
 8895   described as a list of two elements in configuration value value list.
 8896   Adapt getConf and cmdModuleConfig procedures to check such configuration
 8897   option kind.
 8898 
 8899 2021-01-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8900 
 8901   * testsuite/modules.70-maint/360-avail_output.exp: ts: test dirwsym elt
 8902   output on avail sub-cmd
 8903 
 8904   * modulecmd.tcl.in: Report dirwsym on avail sub-cmd if included in output
 8905 
 8906   * testsuite/modules.70-maint/360-avail_output.exp: ts: test alias elt output
 8907   on avail sub-cmd
 8908 
 8909   * modulecmd.tcl.in: Report alias on avail sub-cmd if included in output
 8910 
 8911   * testsuite/modulefiles.3/foo/.modulerc,
 8912   testsuite/modules.70-maint/360-avail_output.exp,
 8913   testsuite/modules.70-maint/361-list_output.exp: ts: test tag elt output on
 8914   avail/list sub-cmd
 8915 
 8916   * modulecmd.tcl.in: Report tag on avail/list sub-cmd if included in output
 8917 
 8918   * testsuite/modules.00-init/100-pager.exp,
 8919   testsuite/modules.00-init/120-siteconfig.exp,
 8920   testsuite/modules.00-init/150-access-init.exp: ts: update test after
 8921   report_format default val change
 8922 
 8923   * testsuite/modules.70-maint/220-config.exp: ts: remove
 8924   avail_report_{mfile,dir}_sym config tests
 8925 
 8926   * testsuite/modules.70-maint/360-avail_output.exp,
 8927   testsuite/modules.70-maint/361-list_output.exp: ts: test sym elt output on
 8928   avail/list sub-cmd
 8929 
 8930   * modulecmd.tcl.in: Report sym on avail/list sub-cmd if included in output
 8931   Update avail and list sub-command output mechanism to report symbolic
 8932   versions only if `sym` keyword is part of current output configuration.
 8933   This change makes both avail_report_dir_sym and avail_report_mfile_sym
 8934   configuration options useless. Thus these 2 options are removed as it was
 8935   not possible to configure them for users without updating the modulecmd.tcl
 8936   script.
 8937 
 8938   * testsuite/modules.70-maint/361-list_output.exp: ts: test idx elt output on
 8939   list sub-cmd
 8940 
 8941 2021-01-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8942 
 8943   * modulecmd.tcl.in: Report idx on list sub-cmd if included in output
 8944 
 8945   * testsuite/modules.70-maint/360-avail_output.exp,
 8946   testsuite/modules.70-maint/361-list_output.exp: ts: test key elt output on
 8947   avail/list sub-cmd
 8948 
 8949   * testsuite/modules.70-maint/361-list_output.exp: ts: test header elt output
 8950   on list sub-cmd
 8951 
 8952   * modulecmd.tcl.in: Report key on avail/list sub-cmd if included in output
 8953 
 8954   * modulecmd.tcl.in: Report header on list sub-cmd if included in output
 8955 
 8956   * modulecmd.tcl.in: Add isEltInReport procedure  Introduce the isEltInReport
 8957   procedure to check if a given element should be part of the content to
 8958   report. This procedure checks for the list of element to report relative to
 8959   the currently running module sub-command and currently defined output mode.
 8960 
 8961 2021-01-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8962 
 8963   * testsuite/modules.70-maint/360-avail_output.exp,
 8964   testsuite/modules.70-maint/361-list_output.exp: ts: initial MODULES_*OUTPUT
 8965   env var tests in 70/{360,361}
 8966 
 8967 2021-01-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8968 
 8969   * testsuite/modulefiles.3/output/1.0,
 8970   testsuite/modules.70-maint/360-avail_output.exp,
 8971   testsuite/modules.70-maint/361-list_output.exp: ts: invalid value set on
 8972   -o/--output opt in 70/{360,361}
 8973 
 8974 2021-01-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8975 
 8976   * testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
 8977   {avail,list}_*output in 70/220
 8978 
 8979 2021-01-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8980 
 8981   * testsuite/modules.70-maint/360-avail_output.exp,
 8982   testsuite/modules.70-maint/361-list_output.exp: ts: adapt 70/{360,361} tests
 8983   for tcl<8.6
 8984 
 8985 2021-01-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8986 
 8987   * modulecmd.tcl.in: Validate {avail,list}_*output config values  Validate
 8988   the value list set for the output content configuration based on selected
 8989   module sub-command. Error is raised as soon as an element in value list is
 8990   not defined in the allowed value list.  Add isDiffBetweenList procedure to
 8991   check if an element in a list is not part of a second list passed as
 8992   argument.  Update getConf, cmdModuleConfig and parseModuleCommandArgs
 8993   procedures to correctly check the value passed to the output content
 8994   configuration options.
 8995 
 8996 2021-01-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 8997 
 8998   * testsuite/modulefiles.3/output/1.0,
 8999   testsuite/modules.70-maint/360-avail_output.exp,
 9000   testsuite/modules.70-maint/361-list_output.exp: ts: mix -o/--output with
 9001   -t/-l/-j in 70/{360,361}
 9002 
 9003   * modulecmd.tcl.in: Raise error if -o/--output used on long/json modes
 9004 
 9005 2021-01-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9006 
 9007   * modulecmd.tcl.in: Update report_format state with terse/long mode  Change
 9008   the report_format state to also hold the terse and long value in case the
 9009   --terse or --long mode is enabled. Change default value of report_format
 9010   state to regular. This way the state now indicates the output mode which is
 9011   expected with long and terse modes standing for a specific plain output
 9012   format.
 9013 
 9014 2021-01-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9015 
 9016   * modulecmd.tcl.in, testsuite/modules.50-cmds/431-not-req.exp: Raise error
 9017   if --not-req not used in correct context  Raise an error to terminate
 9018   evaluation instead of printing a warning message when the --not-req option
 9019   is used for an unsupported sub-command.
 9020 
 9021 2021-01-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9022 
 9023   * testsuite/modulefiles.3/foo/.modulerc, testsuite/modulefiles.3/output/1.0,
 9024   testsuite/modules.70-maint/360-avail_output.exp,
 9025   testsuite/modules.70-maint/361-list_output.exp: ts: initial -o/--output
 9026   tests in 70/{360,361}
 9027 
 9028 2021-01-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9029 
 9030   * modulecmd.tcl.in: Add -o/--output command-line switches  Add the
 9031   -o/--output command-line switches to supersedes the default output
 9032   configuration for avail and list sub-commands.  -o requires a value set as
 9033   next argument whereas --output requires its value to be joined to it after
 9034   '=' character.  Adapt parseModuleCommandArgs, to be able to tell it to
 9035   ignore errors on first call pass performed on 'ml' command (as at the start
 9036   module sub-command is not known). Then a second call is made to raise the
 9037   errors for options not appropriate to the selected sub-command.  When the
 9038   -o/--output options are used on an unsupported module sub-command, or if
 9039   these options are wrongly specified an error is raised.
 9040 
 9041 2021-01-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9042 
 9043   * testsuite/install.00-init/010-environ.exp,
 9044   testsuite/modules.00-init/010-environ.exp: ts: ensure expected default
 9045   output for tests
 9046 
 9047   * doc/source/diff_v3_v4.rst: doc: desc new avail/list output configs in diff
 9048   doc
 9049 
 9050   * INSTALL.rst: doc: desc --with-{avail,list}-*output opts in INSTALL
 9051 
 9052 2021-01-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9053 
 9054   * init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
 9055   add {avail,list}_*output configs to completion scripts
 9056 
 9057   * Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in: Add
 9058   {avail,list}_{terse_,}output configurations
 9059 
 9060   * doc/source/design/module-tags.rst,
 9061   doc/source/design/output-configuration.rst: doc: add *Output configuration*
 9062   design document  Describe customization of the output in a dedicated
 9063   document. Move all reference on that topic from *Module tags* document to
 9064   this new document.
 9065 
 9066 2021-02-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9067 
 9068   * testsuite/modules.00-init/005-init_ts.exp: ts: filter out volatile OS X
 9069   sharepoint user group
 9070 
 9071   * codecov.yml: codecov: no notification before receiving the 5 builds
 9072 
 9073   * NEWS.rst: doc: desc. configure & make docs latest changes in NEWS
 9074 
 9075 2021-02-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9076 
 9077   * configure: install: correctly detect pre-built doc environment  Do not set
 9078   docs as pre-built if configure script is ran another time after building
 9079   doc.
 9080 
 9081   * doc/Makefile: install: no html doc build if docs are pre-built  Disable
 9082   the Makefile rules to build the HTML documentation in case if the
 9083   documentation is found pre-built in the dist archive.
 9084 
 9085 2021-02-05  R.K. Owen <rk@owen.sj.ca.us>
 9086 
 9087   * configure: install: fix configure script when called from PATH  Have
 9088   configure assume the '.' dot directory when invoked without the prepended ./
 9089 
 9090 2021-02-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9091 
 9092   * NEWS.rst, modulecmd.tcl.in, testsuite/home.2/.modulerc,
 9093   testsuite/modules.20-locate/070-homerc.exp: Consider user/global rc eval
 9094   like top level eval  Introduce rc_running state to flag when the init rc or
 9095   user/global rc files are evaluated. Consider the module load, unload and
 9096   switch performed in user/global rc like top level load, unload or switch
 9097   evaluation.  Closes #372.
 9098 
 9099 2021-02-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9100 
 9101   * NEWS.rst, modulecmd.tcl.in, testsuite/modules.10-use/030-use.exp,
 9102   testsuite/modules.61-coll/010-init_ts.exp,
 9103   testsuite/modules.61-coll/030-save.exp,
 9104   testsuite/modules.61-coll/040-restore.exp,
 9105   testsuite/modules.61-coll/060-saveshow.exp,
 9106   testsuite/modules.61-coll/999-cleanup.exp: Modulepath starting with env var
 9107   ref is considered absolute  Consider modulepath starting with a reference to
 9108   an environment variable as absolute.  Closes #376.
 9109 
 9110 2021-02-03  Colin Marquardt <cmarqu42@gmail.com>
 9111 
 9112   * NEWS.rst, init/Makefile, init/bash_completion.in, init/tcsh_completion.in:
 9113   init: replace completion helper vars with their content  This is done for
 9114   tcsh and bash where those variables clutter the environment.  Closes #382
 9115 
 9116 2021-01-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9117 
 9118   * NEWS.rst, modulecmd.tcl.in: Fix msg output on very small term width (6<12)
 9119   Closes #381.
 9120 
 9121 2021-01-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9122 
 9123   * doc/source/module.rst: doc: desc. MODULES_MCOOKIE_VERSION_CHECK in config
 9124   section
 9125 
 9126   * NEWS.rst, modulecmd.tcl.in, testsuite/modules.70-maint/220-config.exp: Fix
 9127   config sub-cmd to set nearly_forbidden_days  Correct the config sub-command
 9128   to accurately check values passed to set the nearly_forbidden_days config
 9129   and accept valid integer values.  Closes #380.
 9130 
 9131   * NEWS.rst, modulecmd.tcl.in: Fix msg output on very small term width (<6)
 9132   The max_idx variable set in reportMsgRecord got a value lower than one
 9133   character when terminal width is very small. In addition empty lines were
 9134   produced for messages starting with a serie of whitespace (for instance when
 9135   reporting error stack trace).  Closes #379.
 9136 
 9137 2021-01-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9138 
 9139   * testsuite/install.00-init/010-environ.exp,
 9140   testsuite/modules.00-init/010-environ.exp,
 9141   testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
 9142   mcookie_version_check
 9143 
 9144   * testsuite/modules.20-locate/057-mcookie.exp: ts:
 9145   MODULES_MCOOKIE_VERSION_CHECK disabled test in 20/057
 9146 
 9147   * NEWS.rst: doc: desc. mcookie_version_check in NEWS
 9148 
 9149   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc.
 9150   mcookie_version_check in module(1)/modulefile(4)
 9151 
 9152   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
 9153   init/zsh-functions/_module.in: init: add mcookie_version_check config to
 9154   completion scripts
 9155 
 9156   * INSTALL.rst, doc/source/diff_v3_v4.rst: doc: desc. mcookie_version_check
 9157   in INSTALL/diff
 9158 
 9159   * Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in: Add
 9160   mcookie_version_check config  Add mcookie_version_check configuration to
 9161   disable the version check on the Modules magic cookie used in modulefiles.
 9162   Option, enabled by default, is linked to the MODULES_MCOOKIE_VERSION_CHECK
 9163   environment variable.  Closes #377.
 9164 
 9165   * .github/workflows/windows_tests.yaml: gh: no more need to create python
 9166   link on Cygwin env
 9167 
 9168   * NEWS.rst, modulecmd.tcl.in: Fix output on very small term width (<3)  The
 9169   cur_cols variable set in displayElementList got a negative value in case
 9170   terminal width is lower or equal to 3. In this situation, set cur_cols to 0.
 9171   Closes #378.
 9172 
 9173 2021-01-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9174 
 9175   * doc/source/module.rst: doc: desc. key section in module(1) man
 9176 
 9177   * MIGRATING.rst, NEWS.rst: doc: desc. added key section in NEWS/MIGRATING
 9178 
 9179   * modulecmd.tcl.in, testsuite/modules.70-maint/220-config.exp: Fix config
 9180   cmd to also report dynamic states  Update config sub-command to also report
 9181   when --dump-state option is set the value of the states that are dynamically
 9182   set (states with no definition in ::g_state_defs array)
 9183 
 9184   * testsuite/modulefiles.3/key/.modulerc, testsuite/modulefiles.3/key/1.0,
 9185   testsuite/modulefiles.3/key/2.0, testsuite/modulefiles.3/key/4.0,
 9186   testsuite/modulefiles.3/key/5.0,
 9187   testsuite/modules.70-maint/340-output-key.exp: ts: test key output on
 9188   avail/list in 70/340
 9189 
 9190 2021-01-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9191 
 9192   * testsuite/modules.20-locate/060-rc.exp,
 9193   testsuite/modules.20-locate/100-wspace.exp,
 9194   testsuite/modules.50-cmds/281-info-modulerc.exp,
 9195   testsuite/modules.50-cmds/440-module-tag.exp,
 9196   testsuite/modules.70-maint/040-list.exp,
 9197   .../274-adv_version_spec-autosym.exp, testsuite/modules.70-maint/280-ml.exp,
 9198   testsuite/modules.70-maint/320-tags.exp,
 9199   testsuite/modules.70-maint/321-tag_abbrev.exp,
 9200   testsuite/modules.70-maint/322-tag-sgr.exp,
 9201   testsuite/modules.90-avail/020-single.exp,
 9202   testsuite/modules.90-avail/030-multiple.exp,
 9203   testsuite/modules.90-avail/070-full.exp,
 9204   testsuite/modules.90-avail/100-tags.exp: ts: adapt existing test to output
 9205   key addition
 9206 
 9207 2021-01-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9208 
 9209   * modulecmd.tcl.in: Add a key at end of avail/list sub-cmd output  In case
 9210   the output result of the avail or list sub-command makes use of graphical
 9211   rendering or tag abbreviation, add a key at the end of the output to help
 9212   understanding what these colors or acronyms stand for.
 9213 
 9214 2021-01-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9215 
 9216   * modulecmd.tcl.in: Track if some alias are reported  Set
 9217   g_used_alias_nocolor global variable if alias are reported in parentheses
 9218   (no color to graphically render it).
 9219 
 9220   * modulecmd.tcl.in: Track if some sym are reported  Set g_used_sym_nocolor
 9221   global variable if symbols are reported in parentheses, excluding alias
 9222   abbreviation '@'.
 9223 
 9224 2021-01-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9225 
 9226   * doc/source/design/module-tags.rst: doc: update 'key' description in module
 9227   tag design doc
 9228 
 9229 2021-01-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9230 
 9231   * modulecmd.tcl.in: Add isSgrkeyColored to check if an sgr key is colored
 9232   Test if color mode is enabled and passed sgr key exists. Useful to test if
 9233   some graphical rendering can be applied without making use of it.
 9234 
 9235 2021-01-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9236 
 9237   * modulecmd.tcl.in: Track tag name or abbrev that have been used  Collect
 9238   all tag name or abbreviation that are used to graphically render output in a
 9239   global array named g_used_tags. Will help to know what to put in output key.
 9240 
 9241 2021-01-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9242 
 9243   * modulecmd.tcl.in: Track color keys that have been used  Collect all color
 9244   keys are that used to graphically render output in a global array named
 9245   g_used_colors. Will help to know what to put in output key.
 9246 
 9247   * modulecmd.tcl.in: Build g_abbrevTag array in initConfTagAbbrev  In
 9248   addition to build the g_tagAbbrev array in initConfTagAbbrev procedure that
 9249   associate each tag with their corresponding abbreviation, the g_abbrevTag is
 9250   now also built to associate each abbreviation with their corresponding tag.
 9251   Some tags are known to share the same abbreviation, like hidden-loaded and
 9252   hidden tags, but these tags are used in different contexts. So when building
 9253   g_abbrevTag array skip tags not relevant to the current command context
 9254 
 9255 2021-01-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9256 
 9257   * INSTALL.rst, NEWS.rst: doc: desc inst opt --enable-new-features in
 9258   INSTALL/NEWS
 9259 
 9260   * configure: install: add --enable-new-features configure option  Introduce
 9261   --enable-new-features configure option to enable all at once all the new
 9262   features disabled by default due to the behavior change they introduced on
 9263   Modules 4.  --enable-new-features option is equivalent to
 9264   --enable-auto-handling, --enable-color, --with-icase=search,
 9265   --enable-extended-default, --enable-advanced-version-spec.
 9266 
 9267 2021-01-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9268 
 9269   * MIGRATING.rst, doc/source/_static/terminal_output.css: doc: desc. module
 9270   tags in MIGRATING
 9271 
 9272 2021-01-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9273 
 9274   * NEWS.rst: doc: desc. modulefile read cancellation in NEWS
 9275 
 9276   * testsuite/modules.70-maint/330-large-file.exp: ts: test large modulfile
 9277   read in 70/330
 9278 
 9279   * codecov.yml: ts: add codecov configuration file  Fix CodeCov behavior to
 9280   raise error if CI tests failed or if coverage result is decreasing.
 9281 
 9282   * testsuite/example/siteconfig.tcl-1,
 9283   testsuite/modules.00-init/120-siteconfig.exp: ts: update readFile bad call
 9284   tests in 00/120
 9285 
 9286   * lib/configure.ac, lib/envmodules.c, lib/envmodules.h: lib: add
 9287   must_have_cookie arg to readFile proc  Update C-version of the readFile
 9288   procedure to add it the `must_have_cookie` argument that tells if the
 9289   Modules magic cookie (#%Module) has to be checked when reading file to abort
 9290   reading as soon as possible if read file must be a modulefile.  Bump version
 9291   of Tcl Envmodules library to 1.3.0.  Fixes #375.
 9292 
 9293   * modulecmd.tcl.in: Add must_have_cookie arg to readFile proc  Update
 9294   pure-Tcl version of the readFile procedure to add it the `must_have_cookie`
 9295   argument that tells if the Modules magic cookie (#%Module) has to be checked
 9296   when reading file to abort reading as soon as possible if read file must be
 9297   a modulefile.  Fixes #375.
 9298 
 9299   * testsuite/modules.00-init/120-siteconfig.exp: ts: fix 00/120 tests now
 9300   testouterr_cmd auto append nl
 9301 
 9302   * testsuite/install.00-init/010-environ.exp,
 9303   testsuite/modules.00-init/010-environ.exp: ts: no cleanup of
 9304   TESTSUITE_ENABLE_SITECONFIG when starting ts
 9305 
 9306 2021-01-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9307 
 9308   * MIGRATING.rst, NEWS.rst: doc: colorize term output example in MIGRATING
 9309 
 9310   * doc/source/_static/literal_block.css,
 9311   doc/source/_static/rtd_literal_block.css,
 9312   doc/source/_static/terminal_output.css, doc/source/conf.py: doc: define
 9313   sphinx roles/css to colorize parsed-literal
 9314 
 9315 2021-01-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9316 
 9317   * NEWS.rst: doc: desc. recent doc improvements in NEWS
 9318 
 9319   * MIGRATING.rst: doc: fix typo on sticky mod desc in MIGRATING
 9320 
 9321 2021-01-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9322 
 9323   * .../cookbook/ensure-user-qualify-modules.rst,
 9324   doc/source/cookbook/inhibit-report-info.rst,
 9325   .../cookbook/module-info-name-return-basename.rst,
 9326   doc/source/cookbook/modulefiles-in-git.rst,
 9327   .../cookbook/modulepaths-persist-over-sudo.rst,
 9328   .../new-features-without-breaking-old-module.rst,
 9329   doc/source/cookbook/top-priority-values.rst,
 9330   doc/source/cookbook/unload-firstly-loaded.rst,
 9331   .../design/advanced-module-version-specifiers.rst,
 9332   .../design/default-latest-version-specifiers.rst,
 9333   doc/source/design/extended-default.rst,
 9334   doc/source/design/hide-or-forbid-modulefile.rst,
 9335   doc/source/design/insensitive-case.rst, doc/source/design/module-tags.rst,
 9336   .../design/source-shell-script-in-modulefile.rst: doc: markup
 9337   config/subcmd/mfcmd in cookbook/design
 9338 
 9339   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc. when opt were
 9340   added to sub-cmd and mf cmd
 9341 
 9342   * doc/source/module.rst: doc: desc. -a option on list subcmd in module(1)
 9343 
 9344 2021-01-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9345 
 9346   * doc/source/index.rst: doc: reorg index table of content
 9347 
 9348   * INSTALL.rst, MIGRATING.rst, NEWS.rst, doc/source/module.rst,
 9349   doc/source/modulefile.rst: doc: markup mconfig refs
 9350 
 9351   * MIGRATING.rst: doc: desc. sticky modules in MIGRATING
 9352 
 9353   * MIGRATING.rst: doc: desc. hidden-loaded in MIGRATING
 9354 
 9355 2021-01-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9356 
 9357   * doc/source/module.rst: doc: desc. when config opts were introduced in
 9358   module(1)
 9359 
 9360   * doc/source/conf.py, doc/source/module.rst: doc: desc. module config.
 9361   option with :mconfig: directive
 9362 
 9363   * INSTALL.rst: doc: desc. when inst. opt. were introduced in INSTALL
 9364 
 9365   * NEWS.rst: doc: fix typo on --enable-append-manpath in NEWS
 9366 
 9367 2021-01-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9368 
 9369   * INSTALL.rst: doc: markup subcmd/mfcmd/command refs in INSTALL
 9370 
 9371   * INSTALL.rst, MIGRATING.rst, NEWS.rst: doc: mark refs to installation
 9372   option with :instopt:
 9373 
 9374   * INSTALL.rst, doc/source/conf.py: doc: desc. inst. option with :instopt:
 9375   directive  Add the :instopt: sphinx directive to describe installation
 9376   option.
 9377 
 9378   * doc/source/_static/rtd_theme_overrides.css, doc/source/conf.py: doc:
 9379   override wide tables in RTD theme
 9380 
 9381   * doc/source/module.rst: doc: desc. -f option on purge subcmd in module(1)
 9382   man
 9383 
 9384   * NEWS.rst: doc: desc. sticky/super-sticky in NEWS
 9385 
 9386   * doc/source/modulefile.rst: doc: desc. hidden-loaded in 'Hiding
 9387   modulefiles' section
 9388 
 9389   * doc/source/conf.py, modulecmd.tcl.in: New year (2021) copyright mention
 9390   update
 9391 
 9392 2020-12-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9393 
 9394   * NEWS.rst: doc: desc. hidden-loaded and verbose2 in NEWS
 9395 
 9396 2020-12-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9397 
 9398   * modulecmd.tcl.in: Fix fish function check in sh-to-mod env change
 9399   Correctly get all shell functions defined in fish shell prior
 9400   sh-to-mod/source-sh script evaluation as some functions may be autoloading
 9401   after the initial function definition check. So function check should be
 9402   done twice to ensure to get all function defined on the second pass.
 9403 
 9404   * doc/source/module.rst, doc/source/modulefile.rst: doc: add 'Sticky
 9405   modules' section in module(1)  And add reference to this new section
 9406   everytime the sticky module concept is mentionned in module(1) and
 9407   modulefile(4).
 9408 
 9409 2020-12-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9410 
 9411   * doc/source/module.rst, doc/source/modulefile.rst: doc: add 'Module tags'
 9412   section in module(1)  And add reference to this new section everytime the
 9413   module tag concept is mentionned in module(1) and modulefile(4).
 9414 
 9415   * NEWS.rst: doc: desc. module tag graphical rendering in NEWS
 9416 
 9417   * NEWS.rst: doc: desc. module tag abbreviations in NEWS
 9418 
 9419   * NEWS.rst: doc: update module tag desc. with new special tags in NEWS
 9420 
 9421   * doc/source/modulefile.rst: doc: desc. special module tags in modulefile(4)
 9422   man
 9423 
 9424 2020-12-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9425 
 9426   * testsuite/modules.50-cmds/377-error.exp,
 9427   testsuite/modules.50-cmds/460-sticky.exp,
 9428   testsuite/modules.50-cmds/461-super-sticky.exp: ts: test purge -f on
 9429   sticky/broken mod with dep in 50/{377,460,461}
 9430 
 9431   * doc/source/design/sticky-modules.rst, modulecmd.tcl.in: Unload dependent
 9432   module on purge if forced  When performing a `purge` sub-command with the
 9433   `--force` option set, unload modules that are depended by other modules that
 9434   cannot unload. This way `purge --force` behaves like `unload --force`.
 9435 
 9436   * testsuite/install.00-init/010-environ.exp,
 9437   testsuite/modules.00-init/010-environ.exp: ts: clear all TESTSUITE_* vars
 9438   prior running tests
 9439 
 9440 2020-12-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9441 
 9442   * testsuite/modulefiles.3/sticky/.modulerc,
 9443   testsuite/modulefiles.3/stickysub/.modulerc,
 9444   testsuite/modules.50-cmds/462-sticky-corner.exp: ts: test corner cases for
 9445   stickyness swap in 50/462
 9446 
 9447 2020-12-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9448 
 9449   * testsuite/home/coll-sticky-4, testsuite/home/coll-sticky-5,
 9450   testsuite/home/coll-sticky-6, testsuite/modulefiles.3/sticky/.modulerc,
 9451   testsuite/modulefiles.3/stickysub/.modulerc,
 9452   testsuite/modulefiles.3/stickysub/dir1/1.0,
 9453   testsuite/modulefiles.3/stickysub/dir1/2.0,
 9454   testsuite/modulefiles.3/stickysub/dir2/3.0,
 9455   testsuite/modulefiles.3/stickysub/dir2/4.0,
 9456   testsuite/modules.50-cmds/460-sticky.exp,
 9457   testsuite/modules.50-cmds/461-super-sticky.exp: ts: test stickyness swap in
 9458   50/{460,461}
 9459 
 9460   * doc/source/design/module-tags.rst, doc/source/design/sticky-modules.rst:
 9461   doc: add *Sticky modules* design notes
 9462 
 9463 2020-12-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9464 
 9465   * modulecmd.tcl.in: Split reloading_mod state  Split reloading_mod state in
 9466   reloading_sticky and reloading_supersticky states to get the accurate
 9467   information to report in case a module is both sticky and super-sticky and
 9468   one of these stickyness declaration is not honored during a reload attempt.
 9469 
 9470 2020-12-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9471 
 9472   * modulecmd.tcl.in: Swap sticky module if stickyness definition is preserved
 9473   Allow a sticky or super-sticky module to be swapped by another modulefile
 9474   version as soon as stickyness definition is still satisfied. For instance,
 9475   if a sticky tag is applied over *foo* module, *foo/1.0* can be swapped by
 9476   *foo/2.0* as *foo* stickyness is preserved. If the sticky tag applies to
 9477   *foo/1.0*, this module cannot be replaced by another version of *foo*
 9478   module.  Such swap may occur when processing a `restore` or a `switch`
 9479   sub-command.
 9480 
 9481 2020-12-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9482 
 9483   * modulecmd.tcl.in: Pass module string cmp method to
 9484   getModuleTag/isModuleTagged  Add `cmp` option to the getModuleTag and
 9485   isModuleTagged procedures to specify the module designation comparison
 9486   method.
 9487 
 9488 2020-12-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9489 
 9490   * testsuite/modules.00-init/005-init_ts.exp,
 9491   testsuite/modules.70-maint/231-verbose2.exp: ts: test new verbose2 msgs on
 9492   load/unload in 70/231
 9493 
 9494   * doc/source/module.rst, modulecmd.tcl.in: Report already loaded/unloaded
 9495   mod if verbosity>=verbose2  Report when trying to load a module which is
 9496   already loaded or when trying to unload a module which is not loaded in case
 9497   the verbosity level currently set is equal to or higher than *verbose2*.
 9498   Closes #187
 9499 
 9500 2020-12-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9501 
 9502   * testsuite/modulefiles.3/sticky/.modulerc,
 9503   testsuite/modulefiles.3/sticky/2.0, testsuite/modulefiles.3/sticky/3.0,
 9504   testsuite/modules.50-cmds/462-sticky-corner.exp: ts: add some corner case
 9505   tests in 50/462
 9506 
 9507   * testsuite/modules.00-init/005-init_ts.exp,
 9508   testsuite/modules.50-cmds/461-super-sticky.exp: ts: test super-sticky
 9509   modules in 50/461
 9510 
 9511   * testsuite/home/coll-sticky-0, testsuite/home/coll-sticky-1,
 9512   testsuite/home/coll-sticky-2, testsuite/home/coll-sticky-3,
 9513   testsuite/modulefiles.3/bar/2.0, testsuite/modulefiles.3/sticky/.modulerc,
 9514   testsuite/modulefiles.3/sticky/1.0, testsuite/modulefiles.3/sticky/4.0,
 9515   testsuite/modules.00-init/005-init_ts.exp,
 9516   testsuite/modules.50-cmds/460-sticky.exp: ts: test sticky modules in 50/460
 9517 
 9518 2020-12-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9519 
 9520   * doc/source/design/module-tags.rst: doc: update sticky module desc. in tag
 9521   design
 9522 
 9523   * modulecmd.tcl.in: Super-sticky mod cannot be unloaded unless reloading
 9524   Raise an error on an attempt to unload a module tagged *super-sticky*,
 9525   unless if this module is reloading. *super-sticky* modules cannot be
 9526   unloaded even if unload is forced  Closes #269
 9527 
 9528   * configure: install: add default color/abbrev for super-sticky tag
 9529 
 9530   * modulecmd.tcl.in: Allow unload of sticky module if reloading  When
 9531   reloading a module, during a `reload` or `restore` sub-command or the
 9532   processing of the *Dependency Reload* mechanism, allow the unload of modules
 9533   that are tagged sticky, as we know they will be reloaded.  Add
 9534   `reloading_mod` state to record the name of modules that are unloaded but
 9535   that will be reloaded right after. With this new state, unload of sticky
 9536   modules can be allowed.
 9537 
 9538   * modulecmd.tcl.in: Remove useless args arg from lpopState proc
 9539 
 9540 2020-12-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9541 
 9542   * modulecmd.tcl.in: Module tagged 'sticky' cannot be unloaded unless forced
 9543   Raise error on an unload attempt of a module that is tagged *sticky*. If
 9544   this unload attempt is forced, raise a warning and proceed.  Closes #269
 9545 
 9546   * configure: install: add default color/abbrev to sticky tag
 9547 
 9548   * doc/source/diff_v3_v4.rst: doc: use tables to desc. new cmds/switches in
 9549   diff doc
 9550 
 9551 2020-12-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9552 
 9553   * testsuite/modules.20-locate/118-hidden-loaded.exp,
 9554   testsuite/modules.50-cmds/450-hidden-loaded.exp,
 9555   testsuite/modules.70-maint/220-config.exp,
 9556   testsuite/modules.70-maint/230-verbosity.exp: ts: test verbose2 verbosity in
 9557   20/118 70/{220,230} 50/410
 9558 
 9559   * INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc.
 9560   verbose2 verbosity level in man/INSTALL/diff
 9561 
 9562   * doc/source/module.rst: doc: precise debug2/-DD were added in v4.6 in
 9563   module(1) man
 9564 
 9565   * configure, modulecmd.tcl.in: Introduce verbose2 verbosity level  verbose2
 9566   verbosity level is introduced as a higher level than verbose and lower than
 9567   trace level. This new verbosity level currently enables to view the loading
 9568   and unloading notification of *hidden-loaded* modules.
 9569 
 9570 2020-12-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9571 
 9572   * doc/source/module.rst, doc/source/modulefile.rst: doc: desc hidden-loaded
 9573   in module/modulefile man pages
 9574 
 9575   * .../hide-and-forbid-modules/modulefiles/.modulerc,
 9576   doc/source/cookbook/hide-and-forbid-modules.rst: doc: add hidden-loaded
 9577   example on hide/forbid recipe
 9578 
 9579 2020-12-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9580 
 9581   * testsuite/modulefiles.3/tag/.modulerc,
 9582   testsuite/modules.70-maint/320-tags.exp,
 9583   testsuite/modules.70-maint/322-tag-sgr.exp,
 9584   testsuite/modules.90-avail/100-tags.exp: ts: test hidden-loaded tag on
 9585   70/{320,322} and 90/100
 9586 
 9587   * modulecmd.tcl.in: No report of hidden-loaded tag on avail context
 9588 
 9589   * testsuite/modules.20-locate/038-defcontext.exp,
 9590   testsuite/modules.20-locate/110-hide.exp,
 9591   testsuite/modules.20-locate/113-hide-all-opt.exp,
 9592   testsuite/modules.20-locate/115-forbid.exp,
 9593   testsuite/modules.20-locate/117-forbid-user-group.exp,
 9594   testsuite/modules.20-locate/119-hide-cascading.exp,
 9595   testsuite/modules.50-cmds/350-allin.exp,
 9596   testsuite/modules.70-maint/270-adv_version_spec.exp,
 9597   testsuite/modules.70-maint/271-adv_version_spec-in.exp,
 9598   testsuite/modules.70-maint/275-adv_version_spec-loaded.exp,
 9599   testsuite/modules.70-maint/320-tags.exp,
 9600   testsuite/modules.90-avail/040-wild.exp,
 9601   testsuite/modules.90-avail/080-noindepth.exp,
 9602   testsuite/modules.90-avail/100-tags.exp: ts: update existing tests with
 9603   hidden-loaded tag abbrev
 9604 
 9605   * modulecmd.tcl.in, testsuite/modulefiles.3/tag/.modulerc,
 9606   testsuite/modules.50-cmds/440-module-tag.exp: Raise error when hidden-loaded
 9607   tag is manually set
 9608 
 9609 2020-07-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9610 
 9611   * testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
 9612   testsuite/modules.20-locate/119-hide-cascading.exp: ts: add module-hide
 9613   --hidden-loaded casc tests in 20/119
 9614 
 9615 2020-07-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9616 
 9617   * testsuite/etc/modulerc.hide-deps,
 9618   testsuite/home/coll-hide-once-loaded-nuasked,
 9619   testsuite/modulefiles.2/hidereq/4.2, testsuite/modulefiles.2/hidereq/4.3,
 9620   testsuite/modulefiles.2/hidereq/4.4, testsuite/modulefiles.deps/h1,
 9621   testsuite/modulefiles.deps/h10, testsuite/modulefiles.deps/h2,
 9622   testsuite/modulefiles.deps/h20, testsuite/modulefiles.deps/h21,
 9623   testsuite/modulefiles.deps/h22, testsuite/modulefiles.deps/h3,
 9624   testsuite/modulefiles.deps/h30, testsuite/modulefiles.deps/h31,
 9625   testsuite/modulefiles.deps/h32, testsuite/modulefiles.deps/h33,
 9626   testsuite/modulefiles.deps/h4, testsuite/modulefiles.deps/ra,
 9627   testsuite/modulefiles.deps/rae, testsuite/modulefiles.deps/raf,
 9628   testsuite/modulefiles.deps/rag, testsuite/modulefiles.deps/rah,
 9629   testsuite/modulefiles.deps/swa, testsuite/modulefiles.deps/swb,
 9630   testsuite/modulefiles.deps/swc, testsuite/modulefiles.deps/swj,
 9631   testsuite/modules.20-locate/118-hidden-loaded.exp,
 9632   testsuite/modules.50-cmds/450-hidden-loaded.exp: ts: check hidden loaded
 9633   mods visibility on eval report msgs
 9634 
 9635 2020-12-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9636 
 9637   * configure: install: add abbrev for hidden-loaded tag  hidden-loaded tag
 9638   will use same abbreviation than hidden tag (*H*), as hidden tag is reported
 9639   only on avail context and hidden-loaded on list context. So the sgr code
 9640   defined for H abbreviation will also applies to hidden-loaded tag.
 9641 
 9642 2020-07-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9643 
 9644   * testsuite/home/coll-hide-once-loaded,
 9645   testsuite/modulefiles.2/hide3/.modulerc,
 9646   testsuite/modulefiles.2/hidereq/4.1, testsuite/modulefiles.2/hidereq/4.2,
 9647   testsuite/modules.20-locate/110-hide.exp,
 9648   testsuite/modules.20-locate/113-hide-all-opt.exp,
 9649   testsuite/modules.20-locate/118-hidden-loaded.exp: ts: test --hidden-loaded
 9650   opt of module-hide cmd
 9651 
 9652 2020-07-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9653 
 9654   * doc/source/design/hide-or-forbid-modulefile.rst,
 9655   doc/source/design/module-tags.rst: doc: update hidden once loaded module
 9656   design
 9657 
 9658 2020-07-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9659 
 9660   * modulecmd.tcl.in: Exclude hidden loaded mods from auto handling reports
 9661   Do not report hidden loaded modules in the informational messages of the
 9662   auto handling mechanisms unless these hidden modules have been specifically
 9663   loaded or unloaded by user, verbosity level is set to debug or an higher
 9664   level or any messages are recorded for the hidden module evaluation.  The
 9665   g_moduleHiddenEval array is introduced to record whether module evaluation
 9666   is hidden (hidden once loaded + automated evaluation of module) or not.
 9667 
 9668   * modulecmd.tcl.in: No eval msg report of hidden auto-loaded mod  Do not
 9669   report load, unload or switch of modules set hidden once loaded if these
 9670   modules have been loaded, unloaded or switched automatically. Unless
 9671   verbosity mode is set to debug or higher or if any messages are recorded for
 9672   this module evaluation.
 9673 
 9674 2020-07-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9675 
 9676   * modulecmd.tcl.in: Do not report hidden loaded mods on list sub-cmd  Unless
 9677   -a/--all option is set, do not report loaded modules that have been declared
 9678   *hidden once loaded* through *hidden-loaded* module tag.
 9679 
 9680 2020-12-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9681 
 9682   * modulecmd.tcl.in: Add --hidden-loaded opt to module-hide cmd  Add the
 9683   --hidden-loaded option to the module-hide modulefile command that indicates
 9684   module should be hidden once loaded. When set, the *hidden-loaded* module
 9685   tag applies to module specification set on module-hide command  A
 9686   hidden-loaded tag set is retained even if it is not held by the module-hide
 9687   command with highest hiding level.
 9688 
 9689 2020-12-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9690 
 9691   * configure: Set color for basic tag abbrev  Provide in the default light
 9692   and dark background color set a graphical rendition code for the basic
 9693   module tags (loaded, auto-loaded, hidden, forbidden, nearly-forbidden).
 9694 
 9695   * testsuite/modules.70-maint/322-tag-sgr.exp: ts: add test for
 9696   tag_color_name config in 70/322
 9697 
 9698   * testsuite/install.00-init/010-environ.exp,
 9699   testsuite/modules.00-init/010-environ.exp,
 9700   testsuite/modules.70-maint/220-config.exp: ts: adapt tests for
 9701   tag_color_name config
 9702 
 9703 2020-12-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9704 
 9705   * doc/source/module.rst: doc: desc. MODULES_TAG_COLOR_NAME in module(1) man
 9706 
 9707   * modulecmd.tcl.in: Rename getSgrkeysFromList proc in getTagSgrForModname
 9708   Clarify procedure name since it only applies to tag graphical rendering.
 9709 
 9710   * modulecmd.tcl.in: Color tag by their own name  For tags set in
 9711   tag_color_name configuration, apply graphical rendering over their name
 9712   rather than over the name of the module they are attached to.  If an
 9713   abbreviation is defined for tag, this abbreviation name should be placed in
 9714   tag_color_name configuration value to make it stand by itself and not
 9715   disappear over module name rendition.
 9716 
 9717   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
 9718   init/zsh-functions/_module.in: init: add tag_color_name config to completion
 9719   scripts
 9720 
 9721   * doc/source/diff_v3_v4.rst: doc: desc. MODULES_TAG_COLOR_NAME in diff doc
 9722 
 9723   * INSTALL.rst, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
 9724   site.exp.in: Add tag_color_name configuration
 9725 
 9726 2020-12-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9727 
 9728   * testsuite/modulefiles.3/tag/.modulerc,
 9729   testsuite/modules.70-maint/322-tag-sgr.exp: ts: test more tags than chars in
 9730   name in 70/322
 9731 
 9732   * modulecmd.tcl.in: Render tags separately if more sgr tags than char in
 9733   name  In case there are more tags that should be rendered with a SGR code
 9734   than character in the module name to display, apply rendering of additionnal
 9735   tags other these tag names in the side tag list.
 9736 
 9737 2020-11-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9738 
 9739   * testsuite/modulefiles.3/tag/.modulerc,
 9740   testsuite/modules.00-init/005-init_ts.exp,
 9741   testsuite/modules.70-maint/322-tag-sgr.exp: ts: test graphical rendering of
 9742   tags in 70/322
 9743 
 9744 2020-11-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9745 
 9746   * doc/source/design/module-tags.rst: doc: desc. SGR mechanism for tags in
 9747   design doc
 9748 
 9749   * testsuite/modules.00-init/140-color.exp: ts: test cumulative sgr codes in
 9750   00/140
 9751 
 9752   * modulecmd.tcl.in: Render multiple tags and hightlight matching substr
 9753   Update sgr procedure to render multiple other keys applying to the string,
 9754   by applying each of these keys to a sub part of string, yet mixing with
 9755   matching sub string highlight.
 9756 
 9757 2020-11-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9758 
 9759   * modulecmd.tcl.in: Apply tag sgr keys to element  When tags apply to a
 9760   module to display, apply to this module name the sgr keys that are defined
 9761   to represent the tags. Each module tag matching a sgr code is then
 9762   graphically represented over module name and not reported by its tag name or
 9763   abbreviated name.  If an abbreviation exists for tag name, sgr key is
 9764   matched against this abbreviated string. If no abbreviation exists for a
 9765   tag, sgr key is matched against tag full name.  Currently only graphically
 9766   render single tag.
 9767 
 9768 2020-11-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9769 
 9770   * modulecmd.tcl.in: Handle matching substring hightlight in sgr proc
 9771 
 9772   * modulecmd.tcl.in: Render default sym through single sgr elt processing
 9773 
 9774 2020-11-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9775 
 9776   * modulecmd.tcl.in: Add the ability to apply multiple sgr keys
 9777 
 9778   * modulecmd.tcl.in: Remove useless tagsgr arg on formatListEltToDisplay
 9779 
 9780 2020-11-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9781 
 9782   * doc/source/module.rst: doc: desc. MODULES_TAG_ABBREV in module(1) man
 9783 
 9784 2020-11-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9785 
 9786   * testsuite/example/siteconfig.tcl-1,
 9787   testsuite/modules.70-maint/321-tag_abbrev.exp: ts: check tag abbrev in
 9788   70/321
 9789 
 9790   * doc/source/design/module-tags.rst: doc: desc. tag abbrev in module tags
 9791   design
 9792 
 9793 2020-11-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9794 
 9795   * testsuite/install.00-init/030-options.exp,
 9796   testsuite/modules.20-locate/038-defcontext.exp,
 9797   testsuite/modules.20-locate/110-hide.exp,
 9798   testsuite/modules.20-locate/113-hide-all-opt.exp,
 9799   testsuite/modules.20-locate/115-forbid.exp,
 9800   .../modules.20-locate/117-forbid-user-group.exp,
 9801   testsuite/modules.20-locate/119-hide-cascading.exp,
 9802   testsuite/modules.50-cmds/350-allin.exp,
 9803   .../modules.70-maint/270-adv_version_spec.exp,
 9804   .../modules.70-maint/271-adv_version_spec-in.exp,
 9805   .../275-adv_version_spec-loaded.exp,
 9806   testsuite/modules.70-maint/320-tags.exp,
 9807   testsuite/modules.90-avail/040-wild.exp,
 9808   testsuite/modules.90-avail/080-noindepth.exp,
 9809   testsuite/modules.90-avail/100-tags.exp: ts: adapt existing tests for tag
 9810   abbrev
 9811 
 9812   * testsuite/install.00-init/010-environ.exp,
 9813   testsuite/modules.00-init/010-environ.exp,
 9814   testsuite/modules.70-maint/220-config.exp: ts: adapt tests for tag_abbrev
 9815   config
 9816 
 9817   * modulecmd.tcl.in: Abbreviate tags when reporting them on avail/list  Use
 9818   abbreviation defined for each tag if any to report them over the avail and
 9819   list sub-command output result.
 9820 
 9821   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
 9822   init/zsh-functions/_module.in: init: add tag_abbrev config to completion
 9823   scripts
 9824 
 9825   * doc/source/diff_v3_v4.rst: doc: desc. MODULES_TAG_ABBREV in diff doc
 9826 
 9827   * INSTALL.rst, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
 9828   site.exp.in: Add tag_abbrev configuration
 9829 
 9830 2020-11-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9831 
 9832   * modulecmd.tcl.in, testsuite/modules.20-locate/115-forbid.exp,
 9833   testsuite/modules.50-cmds/440-module-tag.exp,
 9834   testsuite/modules.70-maint/320-tags.exp,
 9835   testsuite/modules.90-avail/100-tags.exp: Separate tags with ':' instead of
 9836   ','  When reporting module tags on avail and list sub-commands, use ':'
 9837   character to separate multiple tags applying to the same module.
 9838 
 9839   * doc/source/design/module-tags.rst, modulecmd.tcl.in,
 9840   testsuite/modulefiles.3/tag/.modulerc,
 9841   testsuite/modules.50-cmds/440-module-tag.exp: Raise error when reserved tag
 9842   name is set  Raise an error when a reserved tag name is defined with
 9843   module-tag. Reserved names are currently: loaded, auto-loaded, forbidden,
 9844   nearly-forbidden and hidden.
 9845 
 9846   * testsuite/install.00-init/010-environ.exp,
 9847   testsuite/modules.00-init/010-environ.exp: ts: clear MODULES_LMTAG prior
 9848   test start
 9849 
 9850 2020-11-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9851 
 9852   * Makefile, configure: install: clear git remote in build ref tag
 9853 
 9854 2020-11-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9855 
 9856   * doc/source/modulefile.rst: doc: desc. inherited tag from
 9857   module-{hide,forbid}
 9858 
 9859   * modulecmd.tcl.in, testsuite/modules.50-cmds/288-info-tags.exp: Update
 9860   isModuleTagged to fetch info from collected tags  Add the collected argument
 9861   to the isModuleTagged procedure to get the ability to query tag information
 9862   for designed modulefile from collected tags data for module rather raw tag
 9863   definition applying to module specification.  Enable this query mode to
 9864   determine if module is nearly-forbidden in execute-modulefile procedure (as
 9865   tags for evaluated modules are fetched right before this test).  Disable
 9866   'nearly-forbidden' tag check when performing an unload evaluation.
 9867 
 9868   * NEWS.rst: doc: desc. initial module tag work in NEWS
 9869 
 9870   * doc/source/modulefile.rst: doc: desc. module-tag in modulefile(4)
 9871 
 9872 2020-11-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9873 
 9874   * testsuite/modules.50-cmds/286-info-username.exp,
 9875   testsuite/modules.50-cmds/287-info-usergroups.exp: ts: adapt existing tests
 9876   for 'module-info tags' change
 9877 
 9878   * doc/source/module.rst: doc: desc MODULES_LMTAG in module(1) man
 9879 
 9880   * testsuite/etc/modulerc.tag, testsuite/modulefiles.3/info/.modulerc,
 9881   testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/6.0,
 9882   testsuite/modulefiles.3/tag/7.0, testsuite/modulefiles.3/tag/8.0,
 9883   testsuite/modules.50-cmds/288-info-tags.exp,
 9884   testsuite/modules.50-cmds/440-module-tag.exp: ts: add tests for module-tag
 9885   in 50/{288,440}
 9886 
 9887   * testsuite/modulefiles.3/info/.modulerc,
 9888   testsuite/modulefiles.3/info/tags2,
 9889   testsuite/modules.50-cmds/288-info-tags.exp,
 9890   testsuite/modules.70-maint/070-display.exp: ts: test module-info tags on all
 9891   eval contexts
 9892 
 9893 2020-10-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9894 
 9895   * doc/source/diff_v3_v4.rst: doc: desc. MODULES_TAG on diff doc
 9896 
 9897   * doc/source/diff_v3_v4.rst: doc: desc. module-tag in diff doc
 9898 
 9899   * contrib/vim/syntax/modulefile.vim: vim: add new modulefile command
 9900   'module-tag'
 9901 
 9902   * modulecmd.tcl.in: Fetch tags before starting modulefile eval  Collect all
 9903   tags applying to the modulefile that need to be evaluated right before the
 9904   start of its evaluation. It enables to get the accurate tag information
 9905   during modulefile evaluation whatever the kind of evaluation (load, unload,
 9906   display, help, ...). Disable mechanism for source and unsource evaluation
 9907   contexts.  In case current user environment state is inconsistent, do not
 9908   break the whole modulefile evaluation.
 9909 
 9910   * modulecmd.tcl.in: Introduce 'module-tag' modulefile command  Introduce the
 9911   `module-tag` modulefile command to enable users to associate their own tag
 9912   to modulefiles. These tags are reported on `avail` and `list` sub-command
 9913   outputs.  This new command is intended to be used in modulerc evaluation
 9914   context. It is also recorded for modulefile evaluation context as it
 9915   corresponds to the evaluation context of the global and user RCs.
 9916 
 9917   * modulecmd.tcl.in: Make --{after,before} optional in
 9918   parseApplicationCriteriaArgs  Add the `aftbef` argument to the
 9919   parseApplicationCriteriaArgs procedure to optionally support the --after and
 9920   --before command-line switches. If support disabled (aftbef set to 0) an
 9921   argument equal to --after or --before is treated as regular content.
 9922 
 9923 2020-10-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9924 
 9925   * doc/source/modulefile.rst: doc: desc module-info tags in modulefile(4) man
 9926 
 9927   * doc/source/diff_v3_v4.rst: doc: desc. module-info tags in diff doc
 9928 
 9929   * testsuite/modulefiles.3/info/.modulerc, testsuite/modulefiles.3/info/tags,
 9930   testsuite/modules.50-cmds/288-info-tags.exp: ts: test 'module-info tags' in
 9931   50/288
 9932 
 9933 2020-10-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9934 
 9935   * modulecmd.tcl.in: Add tags sub-command to module-info modulefile command
 9936   Introduce the `tags` sub-command to the module-info modulefile command to
 9937   return the list of tags applying to currently evaluated module or tell if
 9938   tag specified as argument applyes to this module.
 9939 
 9940 2020-10-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9941 
 9942   * testsuite/modules.20-locate/110-hide.exp,
 9943   testsuite/modules.20-locate/113-hide-all-opt.exp,
 9944   testsuite/modules.20-locate/115-forbid.exp,
 9945   testsuite/modules.20-locate/119-hide-cascading.exp,
 9946   .../modules.70-maint/270-adv_version_spec.exp,
 9947   .../modules.70-maint/271-adv_version_spec-in.exp,
 9948   testsuite/modules.70-maint/320-tags.exp,
 9949   testsuite/modules.90-avail/040-wild.exp,
 9950   testsuite/modules.90-avail/070-full.exp,
 9951   testsuite/modules.90-avail/080-noindepth.exp: ts: adapt existing tests to
 9952   'hidden' tag
 9953 
 9954   * modulecmd.tcl.in: Apply 'hidden' tag to module defined hidden  Set a
 9955   `hidden` tag for each module targetted by a hidden definition coming whether
 9956   from a module-hide statement or by module name or version starting with a
 9957   dot character.  The `hidden` tag is not exported in MODULES_LMTAG for
 9958   loading module as the hidden state concerns the `avail` report only.
 9959 
 9960 2020-10-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9961 
 9962   * testsuite/modules.70-maint/320-tags.exp: ts: test loaded/auto-loaded tags
 9963   in 70/320
 9964 
 9965   * testsuite/modules.70-maint/320-tags.exp: ts: test tags output on list
 9966   sub-cmd in 70/320
 9967 
 9968 2020-10-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9969 
 9970   * modulecmd.tcl.in: Output tags along module on list subcmd  Output the tags
 9971   of the modules returned by the list sub-command. Adapt module list regular
 9972   and json output styles to include these tags (enclosed in <> like for avail
 9973   sub-command).  No output of tags on terse output mode as nothing other than
 9974   module name is displayed on this mode currently.
 9975 
 9976   * testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/4.0,
 9977   testsuite/modulefiles.3/tag/5.0, testsuite/modules.70-maint/320-tags.exp:
 9978   ts: test MODULES_LMTAG in 70/320
 9979 
 9980 2020-10-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
 9981 
 9982   * testsuite/modules.20-locate/115-forbid.exp,
 9983   testsuite/modules.20-locate/119-hide-cascading.exp,
 9984   testsuite/modules.70-maint/210-clear.exp,
 9985   testsuite/modules.70-maint/280-ml.exp: ts: adapt existing tests for
 9986   MODULES_LMTAG
 9987 
 9988   * modulecmd.tcl.in: Record tags of loaded mods in MODULES_LMTAG env var
 9989   Record in user environment the tags applying to loaded modules. Making this
 9990   information persist in environment via MODULES_LMTAG variable helps to
 9991   report them on `list` sub-command and to remember these tags when the module
 9992   will be unloaded.
 9993 
 9994   * testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/1.0,
 9995   testsuite/modules.90-avail/100-tags.exp: ts: test tags output on avail
 9996   sub-cmd in 90/100
 9997 
 9998   * modulecmd.tcl.in: Apply getModules phase 5 only for avail subcmd
 9999   Consolidate tags set for the modules returned by getModules procedure only
10000   if called from an avail sub-command, as these informations are only useful
10001   for this context (list sub-command does not rely on getModules).
10002 
10003   * testsuite/install.00-init/030-options.exp,
10004   testsuite/modules.20-locate/038-defcontext.exp,
10005   testsuite/modules.20-locate/115-forbid.exp,
10006   .../modules.20-locate/117-forbid-user-group.exp,
10007   testsuite/modules.20-locate/119-hide-cascading.exp,
10008   testsuite/modules.50-cmds/350-allin.exp,
10009   .../275-adv_version_spec-loaded.exp,
10010   testsuite/modules.70-maint/290-json.exp,
10011   testsuite/modules.90-avail/070-full.exp: ts: adapt existing tests for tag
10012   output on avail
10013 
10014   * modulecmd.tcl.in: Record loaded/auto-loaded tags for loaded modules  When
10015   parsing loaded environment, record a loaded tag for each loaded module or an
10016   auto-loaded tag if this module has been automatically loaded by another
10017   module.  Load these tags information at phase #5 of getModules prior
10018   fetching the tags found from getModules search.  If current user environment
10019   state is inconsistent do not stop the whole avail process on this error.
10020 
10021 2020-10-31  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10022 
10023   * modulecmd.tcl.in: Allow to recover from cacheCurrentModules error  In case
10024   the current user environment is stated inconsistent, allow to only report
10025   this error and not terminate execution.  An exitonerr argument is added to
10026   cacheCurrentModules procedure to just call reportError procedure instead of
10027   reportErrorAndExit.
10028 
10029 2020-10-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10030 
10031   * modulecmd.tcl.in: Add global/user rc def to module symbol list in any
10032   cases  When building the module symbol list in phase #1 of getModules
10033   procedure, also add the definitions coming from global or user rc files even
10034   if rc definitions should not be part of the result. As these symbolic names
10035   may match query and make their targetted module from the currently searched
10036   directory included in result.
10037 
10038 2020-10-24  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10039 
10040   * modulecmd.tcl.in: Output tags along module on avail subcmd  Output the
10041   tags of the modules returned by the avail sub-command. Adapt module listing
10042   regular, terse and json output styles to include these tags. These tags are
10043   enclosed in <> to distinguish them from symbolic versions.  Tags are sorted
10044   when printed.  No tag report for long output style not to exceed 80 columns.
10045 
10046   * modulecmd.tcl.in: Collect tags for each elt returned by getModules  Add a
10047   fifth stage for getModules to gather all the tags applying to resulting
10048   modules. These tags are stored in a g_tagHash global array to be used to
10049   output these tags along the module they belong to.
10050 
10051   * modulecmd.tcl.in: Refactor eltsuffix mngt on formatListEltToDisplay
10052 
10053   * modulecmd.tcl.in: Rename tag_list var into sym_list for clarity
10054 
10055   * modulecmd.tcl.in: Remove useless tag_list var in findModules
10056 
10057 2020-10-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10058 
10059   * doc/source/design/module-tags.rst: doc: add initial module-tag design
10060   notes
10061 
10062 2020-12-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10063 
10064   * .github/workflows/windows_tests.yaml: gh: use python installed by cygwin
10065   to build win dist
10066 
10067 2020-12-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10068 
10069   * README.md: doc: fix *slight* typo in README  Thanks @mirkov for spotting
10070   this.  Fixes #373.
10071 
10072 2020-12-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10073 
10074   * .cirrus.yml: cirrus: fix centos8 repo config
10075 
10076 2020-12-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10077 
10078   * testsuite/modules.95-version/020-load-version.exp,
10079   testsuite/modules.95-version/020-unload.exp,
10080   testsuite/modules.95-version/022-load2.exp,
10081   testsuite/modules.95-version/022-unload2.exp,
10082   testsuite/modules.95-version/040-xgetenv.exp,
10083   testsuite/modules.95-version/050-fullpathentry.exp,
10084   testsuite/modules.95-version/090-dup-modpath-version.exp: ts: use
10085   reset_test_env at end of 95-version ts
10086 
10087   * testsuite/modules.91-sort/020-avail.exp,
10088   testsuite/modules.91-sort/030-whatis.exp,
10089   testsuite/modules.91-sort/040-load-sort.exp: ts: use reset_test_env at end
10090   of 91-sort ts
10091 
10092   * testsuite/modules.90-avail/020-single.exp,
10093   testsuite/modules.90-avail/030-multiple.exp,
10094   testsuite/modules.90-avail/040-wild.exp,
10095   testsuite/modules.90-avail/050-long.exp,
10096   testsuite/modules.90-avail/060-empty.exp,
10097   testsuite/modules.90-avail/070-full.exp,
10098   testsuite/modules.90-avail/080-noindepth.exp,
10099   testsuite/modules.90-avail/090-dup-modpath.exp: ts: use reset_test_env at
10100   end of 90-avail ts
10101 
10102   * testsuite/modules.80-deep/020-load-deep.exp,
10103   testsuite/modules.80-deep/021-unload.exp,
10104   testsuite/modules.80-deep/022-switch.exp,
10105   testsuite/modules.80-deep/030-display.exp,
10106   testsuite/modules.80-deep/050-whatis.exp,
10107   testsuite/modules.80-deep/068-transitive-deep.exp,
10108   testsuite/modules.80-deep/080-access-deep.exp,
10109   testsuite/modules.80-deep/090-deepvirt.exp: ts: use reset_test_env at end of
10110   80-deep ts
10111 
10112   * testsuite/modules.70-maint/020-update.exp,
10113   testsuite/modules.70-maint/030-purge.exp,
10114   testsuite/modules.70-maint/040-list.exp,
10115   testsuite/modules.70-maint/045-listlong.exp,
10116   testsuite/modules.70-maint/048-listlongno.exp,
10117   testsuite/modules.70-maint/050-whatis-load.exp,
10118   testsuite/modules.70-maint/055-whatis.exp,
10119   testsuite/modules.70-maint/056-whatis-nullpath.exp,
10120   testsuite/modules.70-maint/060-apropos.exp,
10121   testsuite/modules.70-maint/070-display.exp,
10122   testsuite/modules.70-maint/080-help.exp,
10123   testsuite/modules.70-maint/085-test.exp,
10124   testsuite/modules.70-maint/090-source.exp,
10125   testsuite/modules.70-maint/100-path.exp,
10126   testsuite/modules.70-maint/110-paths.exp,
10127   testsuite/modules.70-maint/120-autoinit.exp,
10128   testsuite/modules.70-maint/130-aliases.exp,
10129   testsuite/modules.70-maint/140-multiargs.exp,
10130   testsuite/modules.70-maint/150-append-path.exp,
10131   testsuite/modules.70-maint/151-prepend-path.exp,
10132   testsuite/modules.70-maint/152-remove-path.exp,
10133   testsuite/modules.70-maint/153-is-loaded.exp,
10134   testsuite/modules.70-maint/154-is-saved.exp,
10135   testsuite/modules.70-maint/155-is-used.exp,
10136   testsuite/modules.70-maint/156-is-avail.exp,
10137   testsuite/modules.70-maint/157-info-loaded.exp,
10138   testsuite/modules.70-maint/170-contact.exp,
10139   testsuite/modules.70-maint/180-reload.exp,
10140   testsuite/modules.70-maint/190-emptyarg.exp,
10141   testsuite/modules.70-maint/200-errdisp.exp,
10142   testsuite/modules.70-maint/210-clear.exp,
10143   testsuite/modules.70-maint/220-config.exp,
10144   testsuite/modules.70-maint/230-verbosity.exp,
10145   testsuite/modules.70-maint/240-icase.exp,
10146   testsuite/modules.70-maint/250-nan.exp,
10147   .../modules.70-maint/260-extended_default.exp,
10148   .../modules.70-maint/270-adv_version_spec.exp,
10149   .../modules.70-maint/271-adv_version_spec-in.exp,
10150   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
10151   .../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
10152   testsuite/modules.70-maint/280-ml.exp,
10153   testsuite/modules.70-maint/290-json.exp,
10154   testsuite/modules.70-maint/300-err_stack.exp,
10155   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: use reset_test_env at end
10156   of 70-maint ts
10157 
10158   * testsuite/modules.61-coll/020-savelist.exp,
10159   testsuite/modules.61-coll/030-save.exp,
10160   testsuite/modules.61-coll/040-restore.exp,
10161   testsuite/modules.61-coll/050-saverm.exp,
10162   testsuite/modules.61-coll/060-saveshow.exp,
10163   testsuite/modules.61-coll/080-access-coll.exp: ts: use reset_test_env at end
10164   of 61-coll ts
10165 
10166   * testsuite/modules.60-initx/015-list.exp,
10167   testsuite/modules.60-initx/080-access-initx.exp: ts: use reset_test_env at
10168   end of 60-initx ts
10169 
10170   * testsuite/modules.50-cmds/015-use.exp,
10171   testsuite/modules.50-cmds/017-use-undo.exp,
10172   testsuite/modules.50-cmds/020-setenv.exp,
10173   testsuite/modules.50-cmds/022-setenv-eschars.exp,
10174   testsuite/modules.50-cmds/025-setenv-undo.exp,
10175   testsuite/modules.50-cmds/028-setenv-refcount.exp,
10176   testsuite/modules.50-cmds/029-setenv-env.exp,
10177   testsuite/modules.50-cmds/030-unsetenv.exp,
10178   testsuite/modules.50-cmds/035-unsetenv-undo.exp,
10179   testsuite/modules.50-cmds/036-unsetenv-x.exp,
10180   .../modules.50-cmds/038-unsetenv-refcount.exp,
10181   testsuite/modules.50-cmds/039-unsetenv-env.exp,
10182   testsuite/modules.50-cmds/040-append.exp,
10183   testsuite/modules.50-cmds/042-append-delim.exp,
10184   testsuite/modules.50-cmds/045-append-undo.exp,
10185   testsuite/modules.50-cmds/047-app-del-undo.exp,
10186   testsuite/modules.50-cmds/049-append-env.exp,
10187   testsuite/modules.50-cmds/050-prepend.exp,
10188   testsuite/modules.50-cmds/052-prepend-delim.exp,
10189   testsuite/modules.50-cmds/055-prepend-undo.exp,
10190   testsuite/modules.50-cmds/057-pre-del-undo.exp,
10191   testsuite/modules.50-cmds/059-prepend-env.exp,
10192   testsuite/modules.50-cmds/060-remove.exp,
10193   testsuite/modules.50-cmds/062-remove-delim.exp,
10194   testsuite/modules.50-cmds/065-remove-undo.exp,
10195   testsuite/modules.50-cmds/069-remove-env.exp,
10196   testsuite/modules.50-cmds/075-alias.exp,
10197   testsuite/modules.50-cmds/076-alias-sub.exp,
10198   testsuite/modules.50-cmds/077-alias-undo.exp,
10199   testsuite/modules.50-cmds/078-refresh.exp,
10200   testsuite/modules.50-cmds/080-info-name.exp,
10201   testsuite/modules.50-cmds/081-info-user.exp,
10202   testsuite/modules.50-cmds/082-info-user-exp.exp,
10203   testsuite/modules.50-cmds/083-info-mode.exp,
10204   testsuite/modules.50-cmds/084-info-mode-exp.exp,
10205   testsuite/modules.50-cmds/085-info-flags.exp,
10206   testsuite/modules.50-cmds/086-info-shells.exp,
10207   testsuite/modules.50-cmds/087-info-shells-exp.exp,
10208   testsuite/modules.50-cmds/088-info-isloaded.exp,
10209   testsuite/modules.50-cmds/089-info-type.exp,
10210   testsuite/modules.50-cmds/095-uname.exp,
10211   testsuite/modules.50-cmds/099-uname-cleanup.exp,
10212   testsuite/modules.50-cmds/100-loglevel.exp,
10213   testsuite/modules.50-cmds/101-badfac.exp,
10214   testsuite/modules.50-cmds/105-trace.exp,
10215   testsuite/modules.50-cmds/110-verbose.exp,
10216   testsuite/modules.50-cmds/115-verbose-msg.exp,
10217   testsuite/modules.50-cmds/120-prereq-full.exp,
10218   testsuite/modules.50-cmds/121-prereq-module.exp,
10219   testsuite/modules.50-cmds/122-prereq-fullpath.exp,
10220   testsuite/modules.50-cmds/130-conflict-full.exp,
10221   testsuite/modules.50-cmds/131-conflict-module.exp,
10222   .../modules.50-cmds/132-conflict-fullpath.exp,
10223   testsuite/modules.50-cmds/140-system.exp,
10224   testsuite/modules.50-cmds/150-module.exp,
10225   testsuite/modules.50-cmds/151-module-onlytop.exp,
10226   testsuite/modules.50-cmds/152-module-emptyarg.exp,
10227   testsuite/modules.50-cmds/170-swap.exp,
10228   testsuite/modules.50-cmds/172-swap-app-delim.exp,
10229   testsuite/modules.50-cmds/173-swap-app-delim.exp,
10230   testsuite/modules.50-cmds/175-swap2.exp,
10231   testsuite/modules.50-cmds/177-swap-prep-delim.exp,
10232   testsuite/modules.50-cmds/178-swap-prep-delim.exp,
10233   testsuite/modules.50-cmds/180-unload.exp,
10234   testsuite/modules.50-cmds/190-load.exp,
10235   testsuite/modules.50-cmds/195-load-recurs.exp,
10236   testsuite/modules.50-cmds/197-load-lots.exp,
10237   testsuite/modules.50-cmds/200-break.exp,
10238   testsuite/modules.50-cmds/210-exit.exp,
10239   testsuite/modules.50-cmds/220-continue.exp,
10240   testsuite/modules.50-cmds/230-loop.exp,
10241   testsuite/modules.50-cmds/240-chdir.exp,
10242   testsuite/modules.50-cmds/250-x-resource.exp,
10243   testsuite/modules.50-cmds/260-getenv.exp,
10244   testsuite/modules.50-cmds/269-getenv-env.exp,
10245   testsuite/modules.50-cmds/280-info-specified.exp,
10246   testsuite/modules.50-cmds/281-info-modulerc.exp,
10247   testsuite/modules.50-cmds/282-info-command.exp,
10248   testsuite/modules.50-cmds/283-info-command-exp.exp,
10249   testsuite/modules.50-cmds/284-info-others.exp,
10250   testsuite/modules.50-cmds/285-info-loaded.exp,
10251   testsuite/modules.50-cmds/286-info-username.exp,
10252   testsuite/modules.50-cmds/287-info-usergroups.exp,
10253   testsuite/modules.50-cmds/300-interp.exp,
10254   testsuite/modules.50-cmds/301-interp-command.exp,
10255   testsuite/modules.50-cmds/302-interp-cascaded.exp,
10256   testsuite/modules.50-cmds/310-puts.exp,
10257   testsuite/modules.50-cmds/320-is-saved.exp,
10258   testsuite/modules.50-cmds/321-is-used.exp,
10259   testsuite/modules.50-cmds/322-is-avail.exp,
10260   testsuite/modules.50-cmds/330-source.exp,
10261   testsuite/modules.50-cmds/340-modvar.exp,
10262   testsuite/modules.50-cmds/350-allin.exp,
10263   testsuite/modules.50-cmds/359-allin-env.exp,
10264   testsuite/modules.50-cmds/360-restoreenv.exp,
10265   testsuite/modules.50-cmds/370-deps-bis.exp,
10266   testsuite/modules.50-cmds/370-deps-fullpath.exp,
10267   testsuite/modules.50-cmds/370-deps.exp,
10268   testsuite/modules.50-cmds/371-deps2.exp,
10269   testsuite/modules.50-cmds/372-deps3.exp,
10270   testsuite/modules.50-cmds/373-deps4.exp,
10271   testsuite/modules.50-cmds/374-deps5.exp,
10272   testsuite/modules.50-cmds/375-deps6.exp,
10273   testsuite/modules.50-cmds/375-order.exp,
10274   testsuite/modules.50-cmds/376-deps7.exp,
10275   .../modules.50-cmds/376-switch-change-vers.exp,
10276   testsuite/modules.50-cmds/376-switch.exp,
10277   testsuite/modules.50-cmds/377-cyclic.exp,
10278   testsuite/modules.50-cmds/377-deps8.exp,
10279   testsuite/modules.50-cmds/377-error.exp,
10280   testsuite/modules.50-cmds/377-opposite.exp,
10281   testsuite/modules.50-cmds/378-sametarget.exp,
10282   testsuite/modules.50-cmds/379-module-unload.exp,
10283   testsuite/modules.50-cmds/380-altname.exp,
10284   testsuite/modules.50-cmds/390-function.exp,
10285   testsuite/modules.50-cmds/391-function-undo.exp,
10286   testsuite/modules.50-cmds/400-source-sh.exp,
10287   testsuite/modules.50-cmds/410-modvar.exp,
10288   testsuite/modules.50-cmds/420-versioncmp.exp,
10289   testsuite/modules.50-cmds/430-implicit-req.exp,
10290   testsuite/modules.50-cmds/431-not-req.exp: ts: use reset_test_env at end of
10291   50-cmds ts
10292 
10293   * testsuite/modules.20-locate/030-defvers.exp,
10294   testsuite/modules.20-locate/031-defvers2.exp,
10295   testsuite/modules.20-locate/035-defname.exp,
10296   testsuite/modules.20-locate/038-defcontext.exp,
10297   testsuite/modules.20-locate/040-alias.exp,
10298   testsuite/modules.20-locate/043-virtual.exp,
10299   testsuite/modules.20-locate/045-symvers.exp,
10300   testsuite/modules.20-locate/046-getsym.exp,
10301   testsuite/modules.20-locate/047-symerrs.exp,
10302   testsuite/modules.20-locate/048-symexec.exp,
10303   testsuite/modules.20-locate/050-locrc.exp,
10304   testsuite/modules.20-locate/055-locrcerrs.exp,
10305   testsuite/modules.20-locate/057-mcookie.exp,
10306   testsuite/modules.20-locate/060-rc.exp,
10307   testsuite/modules.20-locate/065-rcerrs.exp,
10308   testsuite/modules.20-locate/066-modulepath-rc.exp,
10309   testsuite/modules.20-locate/067-hidden.exp,
10310   testsuite/modules.20-locate/068-transitive.exp,
10311   testsuite/modules.20-locate/069-cross.exp,
10312   testsuite/modules.20-locate/070-homerc.exp,
10313   testsuite/modules.20-locate/075-symlink.exp,
10314   testsuite/modules.20-locate/080-access.exp,
10315   testsuite/modules.20-locate/081-access-rc.exp,
10316   testsuite/modules.20-locate/090-memcache.exp,
10317   testsuite/modules.20-locate/100-wspace.exp,
10318   testsuite/modules.20-locate/110-hide.exp,
10319   testsuite/modules.20-locate/111-hide-hard.exp,
10320   testsuite/modules.20-locate/111-hide-soft.exp,
10321   .../modules.20-locate/112-hide-user-group.exp,
10322   testsuite/modules.20-locate/113-hide-all-opt.exp,
10323   .../modules.20-locate/114-hide-before-after.exp,
10324   testsuite/modules.20-locate/115-forbid.exp,
10325   .../modules.20-locate/116-forbid-before-after.exp,
10326   .../modules.20-locate/117-forbid-user-group.exp,
10327   testsuite/modules.20-locate/119-hide-cascading.exp: ts: use reset_test_env
10328   at end of 20-locate ts
10329 
10330   * testsuite/modules.10-use/030-use.exp,
10331   testsuite/modules.10-use/031-append.exp,
10332   testsuite/modules.10-use/032-prepend.exp,
10333   testsuite/modules.10-use/040-load-use.exp,
10334   testsuite/modules.10-use/070-unuse.exp,
10335   testsuite/modules.10-use/080-access-use.exp,
10336   testsuite/modules.10-use/090-bad.exp: ts: use reset_test_env at end of
10337   10-use ts
10338 
10339   * testsuite/modules.00-init/015-version.exp,
10340   testsuite/modules.00-init/090-switches.exp,
10341   testsuite/modules.00-init/100-pager.exp,
10342   testsuite/modules.00-init/110-quar.exp,
10343   testsuite/modules.00-init/120-siteconfig.exp,
10344   testsuite/modules.00-init/130-auto_handling.exp,
10345   testsuite/modules.00-init/140-color.exp,
10346   testsuite/modules.00-init/150-access-init.exp,
10347   testsuite/modules.00-init/160-multilib.exp: ts: use reset_test_env at end of
10348   00-init ts
10349 
10350   * testsuite/install.00-init/005-init_ts.exp,
10351   testsuite/install.00-init/020-module.exp,
10352   testsuite/install.00-init/022-module-compat.exp,
10353   testsuite/install.00-init/024-ml.exp,
10354   testsuite/install.00-init/025-autoinit.exp,
10355   testsuite/install.00-init/030-options.exp,
10356   testsuite/install.00-init/040-subshell.exp,
10357   testsuite/install.00-init/050-crossshell.exp,
10358   testsuite/install.00-init/060-quar.exp,
10359   testsuite/install.00-init/070-stderrtty.exp,
10360   testsuite/install.00-init/080-args.exp,
10361   testsuite/install.00-init/090-sh-to-mod.exp: ts: use reset_test_env at end
10362   of install ts
10363 
10364   * script/mt, testsuite/config/base-config.exp,
10365   testsuite/install.00-init/011-save_test_env.exp,
10366   testsuite/modules.00-init/085-save_test_env.exp,
10367   testsuite/modules.60-initx/010-init_ts.exp,
10368   testsuite/modules.60-initx/999-cleanup.exp,
10369   testsuite/modules.61-coll/010-init_ts.exp,
10370   testsuite/modules.61-coll/999-cleanup.exp,
10371   testsuite/modules.70-maint/010-init_ts.exp,
10372   testsuite/modules.70-maint/999-cleanup.exp,
10373   testsuite/modules.80-deep/010-init_ts.exp,
10374   testsuite/modules.80-deep/999-cleanup.exp,
10375   testsuite/modules.91-sort/010-init_ts.exp,
10376   testsuite/modules.91-sort/999-cleanup.exp,
10377   testsuite/modules.95-version/010-init_ts.exp,
10378   testsuite/modules.95-version/999-cleanup.exp: ts: add test env save/restore
10379   mechanism  Add the save_test_env and reset_test_env procedure to record
10380   original test environment (global and environment variables) and restore it
10381   once a test set has been done.
10382 
10383   * testsuite/modules.00-init/010-environ.exp,
10384   testsuite/modules.50-cmds/010-init_ts.exp,
10385   testsuite/modules.50-cmds/999-cleanup.exp: ts: clear testsuite env var prior
10386   starting tests
10387 
10388   * testsuite/modules.00-init/010-environ.exp,
10389   testsuite/modules.00-init/120-siteconfig.exp,
10390   testsuite/modules.50-cmds/040-append.exp,
10391   testsuite/modules.50-cmds/050-prepend.exp,
10392   testsuite/modules.50-cmds/095-uname.exp,
10393   testsuite/modules.50-cmds/250-x-resource.exp,
10394   testsuite/modules.50-cmds/286-info-username.exp,
10395   testsuite/modules.50-cmds/287-info-usergroups.exp,
10396   testsuite/modules.70-maint/220-config.exp,
10397   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: save orig PATH value in a
10398   global ORIG_PATH var
10399 
10400   * testsuite/modules.00-init/010-environ.exp,
10401   testsuite/modules.00-init/150-access-init.exp,
10402   testsuite/modules.20-locate/060-rc.exp,
10403   testsuite/modules.20-locate/065-rcerrs.exp,
10404   testsuite/modules.20-locate/069-cross.exp,
10405   testsuite/modules.20-locate/081-access-rc.exp,
10406   testsuite/modules.20-locate/110-hide.exp,
10407   testsuite/modules.20-locate/111-hide-hard.exp,
10408   testsuite/modules.20-locate/111-hide-soft.exp,
10409   testsuite/modules.20-locate/112-hide-user-group.exp,
10410   testsuite/modules.20-locate/113-hide-all-opt.exp,
10411   testsuite/modules.20-locate/114-hide-before-after.exp,
10412   testsuite/modules.20-locate/115-forbid.exp,
10413   testsuite/modules.20-locate/116-forbid-before-after.exp,
10414   testsuite/modules.20-locate/117-forbid-user-group.exp,
10415   testsuite/modules.20-locate/119-hide-cascading.exp,
10416   testsuite/modules.50-cmds/375-deps6.exp,
10417   testsuite/modules.50-cmds/377-deps8.exp,
10418   testsuite/modules.50-cmds/377-opposite.exp,
10419   testsuite/modules.50-cmds/380-altname.exp,
10420   testsuite/modules.70-maint/130-aliases.exp,
10421   testsuite/modules.70-maint/220-config.exp,
10422   testsuite/modules.70-maint/290-json.exp,
10423   testsuite/modules.80-deep/090-deepvirt.exp,
10424   testsuite/modules.90-avail/030-multiple.exp,
10425   testsuite/modules.90-avail/040-wild.exp,
10426   testsuite/modules.90-avail/050-long.exp,
10427   testsuite/modules.90-avail/060-empty.exp: ts: save orig MODULERCFILE value
10428   in a global var
10429 
10430   * testsuite/modules.00-init/080-begenv.exp,
10431   testsuite/modules.20-locate/070-homerc.exp,
10432   testsuite/modules.20-locate/081-access-rc.exp,
10433   testsuite/modules.50-cmds/282-info-command.exp,
10434   testsuite/modules.50-cmds/283-info-command-exp.exp,
10435   testsuite/modules.50-cmds/320-is-saved.exp,
10436   testsuite/modules.60-initx/010-init_ts.exp,
10437   testsuite/modules.60-initx/999-cleanup.exp,
10438   testsuite/modules.61-coll/020-savelist.exp,
10439   testsuite/modules.61-coll/030-save.exp,
10440   testsuite/modules.61-coll/040-restore.exp,
10441   testsuite/modules.61-coll/050-saverm.exp,
10442   testsuite/modules.61-coll/060-saveshow.exp,
10443   testsuite/modules.61-coll/080-access-coll.exp,
10444   testsuite/modules.70-maint/154-is-saved.exp,
10445   testsuite/modules.70-maint/240-icase.exp: ts: save orig HOME value in a
10446   global ORIG_HOME var
10447 
10448   * testsuite/modules.61-coll/999-cleanup.exp,
10449   testsuite/modules.95-version/999-cleanup.exp: ts: clear temp vars used in
10450   61-coll/95-version tests
10451 
10452 2020-12-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10453 
10454   * .cirrus.yml: cirrus: test with R on OSX instance
10455 
10456   * testsuite/config/base-config.exp, testsuite/install.00-init/006-procs.exp,
10457   testsuite/modules.00-init/006-procs.exp: ts: share base code between
10458   testsuites  Use dejagnu 'base-config' file to share code between the two
10459   testsuites.
10460 
10461   * testsuite/config/unix.exp: ts: collect install test output through pipes
10462   Alternative method to collect stdout and stderr from command execution (on
10463   Tcl>=8.6): use channel pipe instead of saving these outputs in file.
10464 
10465   * testsuite/config/unix.exp, testsuite/install.00-init/006-procs.exp,
10466   testsuite/install.00-init/020-module.exp,
10467   testsuite/install.00-init/024-ml.exp,
10468   testsuite/install.00-init/030-options.exp,
10469   testsuite/install.00-init/070-stderrtty.exp,
10470   testsuite/install.00-init/080-args.exp: ts: do not ignore newline returned
10471   at install result end  Update install tests not to ignore the newline
10472   returned at the end of stdout and stderr output.
10473 
10474 2020-12-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10475 
10476   * testsuite/install.00-init/020-module.exp,
10477   testsuite/install.00-init/022-module-compat.exp,
10478   testsuite/install.00-init/024-ml.exp,
10479   testsuite/install.00-init/025-autoinit.exp,
10480   testsuite/install.00-init/030-options.exp,
10481   testsuite/install.00-init/040-subshell.exp,
10482   testsuite/install.00-init/050-crossshell.exp,
10483   testsuite/install.00-init/070-stderrtty.exp: ts: fix expected regexp on
10484   install test now full str is matched
10485 
10486   * testsuite/install.00-init/006-procs.exp,
10487   testsuite/install.00-init/010-environ.exp,
10488   testsuite/install.00-init/020-module.exp,
10489   testsuite/install.00-init/024-ml.exp,
10490   testsuite/install.00-init/040-subshell.exp,
10491   testsuite/install.00-init/050-crossshell.exp,
10492   testsuite/install.00-init/060-quar.exp,
10493   testsuite/install.00-init/070-stderrtty.exp,
10494   testsuite/install.00-init/080-args.exp: ts: install ts now checks for full
10495   string match
10496 
10497 2020-12-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10498 
10499   * .appveyor.yml, .gitattributes: appveyor: remove config, tests are migrated
10500   to GH Actions
10501 
10502   * CONTRIBUTING.rst, README.md, script/mtreview: doc/script: windows CI tests
10503   are now on GitHub Actions
10504 
10505   * testsuite/modules.20-locate/100-wspace.exp,
10506   testsuite/modules.90-avail/080-noindepth.exp: ts: skip symlink tests if
10507   cannot create it on 20/100 & 90/080
10508 
10509 2020-11-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10510 
10511   * .github/workflows/windows_tests.yaml: gh: port Windows tests from AppVeyor
10512   to GH Actions
10513 
10514 2020-11-30  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10515 
10516   * testsuite/config/unix.exp: ts: remove need to use thread to collect test
10517   outputs
10518 
10519 2020-11-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10520 
10521   * testsuite/config/unix.exp: ts: collect tests output through pipes and
10522   thread  Alternative method to collect stdout and stderr from command
10523   execution (on Tcl>=8.6 and if Thread package is available): use channel pipe
10524   and threads instead of saving these outputs in file.
10525 
10526   * testsuite/config/unix.exp, testsuite/modules.00-init/006-procs.exp,
10527   testsuite/modules.00-init/160-multilib.exp,
10528   testsuite/modules.20-locate/113-hide-all-opt.exp,
10529   testsuite/modules.20-locate/115-forbid.exp,
10530   testsuite/modules.50-cmds/152-module-emptyarg.exp,
10531   testsuite/modules.61-coll/060-saveshow.exp,
10532   testsuite/modules.61-coll/080-access-coll.exp,
10533   testsuite/modules.70-maint/120-autoinit.exp,
10534   testsuite/modules.70-maint/150-append-path.exp,
10535   testsuite/modules.70-maint/152-remove-path.exp,
10536   testsuite/modules.70-maint/190-emptyarg.exp: ts: do not ignore newline
10537   returned at result end  Update tests not to ignore the newline returned at
10538   the end of stdout and stderr output.
10539 
10540 2020-11-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10541 
10542   * .gitattributes, .travis.yml: travis: remove config, tests are migrated to
10543   GH Actions
10544 
10545 2020-11-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10546 
10547   * script/mtreview: script: add diff config for GHA in 'mtreview'
10548 
10549   * CONTRIBUTING.rst, README.md: doc: linux CI tests are now on GitHub Actions
10550 
10551   * doc/source/cookbook/hide-and-forbid-modules.rst: doc: fix code-block
10552   syntax issue in hide-and-forbid-modules  An argument value was missing for a
10553   code-block in the hide-and-forbid-modules cookbook recipe. Set value to
10554   none, as this block cannot be highlighted as Tcl code.
10555 
10556   * testsuite/modules.00-init/005-init_ts.exp,
10557   testsuite/modules.00-init/120-siteconfig.exp: ts: skip tests relying on a
10558   stdin attached to tty  In case stdin is not attached to a tty
10559 
10560   * testsuite/modules.00-init/005-init_ts.exp,
10561   testsuite/modules.20-locate/110-hide.exp,
10562   testsuite/modules.20-locate/115-forbid.exp,
10563   testsuite/modules.50-cmds/095-uname.exp,
10564   testsuite/modules.50-cmds/151-module-onlytop.exp,
10565   testsuite/modules.50-cmds/152-module-emptyarg.exp,
10566   testsuite/modules.50-cmds/284-info-others.exp,
10567   testsuite/modules.50-cmds/286-info-username.exp,
10568   testsuite/modules.50-cmds/287-info-usergroups.exp,
10569   testsuite/modules.50-cmds/330-source.exp,
10570   testsuite/modules.70-maint/070-display.exp,
10571   testsuite/modules.70-maint/080-help.exp,
10572   testsuite/modules.70-maint/085-test.exp,
10573   testsuite/modules.70-maint/120-autoinit.exp,
10574   testsuite/modules.70-maint/170-contact.exp,
10575   testsuite/modules.70-maint/300-err_stack.exp: ts: fix ans escaping to cope
10576   with block content output
10577 
10578 2020-11-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10579 
10580   * testsuite/config/unix.exp, testsuite/install.00-init/005-init_ts.exp: ts:
10581   ignore ruby insecure dir msg
10582 
10583   * script/mt: script: remove --base64-failed-log opt from mt script  Remove
10584   the --base64-failed-log option from the mt script as there is no more need
10585   to output full test output serialized since the CI systems now used can
10586   upload the test log files as artifact.
10587 
10588 2020-11-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10589 
10590   * .github/workflows/linux_tests.yaml: gh: port Linux tests from Travis to GH
10591   Actions
10592 
10593 2020-11-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10594 
10595   * doc/source/cookbook/test-modulefiles.rst: doc: fix missing space in
10596   test-modulefiles rcp  Thanks to Aurélien Degrémont for spotting this issue.
10597 
10598 2020-11-16  Colin Marquardt <cmarqu42@gmail.com>
10599 
10600   * doc/source/cookbook/test-modulefiles.rst: doc: add proper ReST references
10601   in test-modulefiles rcp
10602 
10603   * .../test-modulefiles/modulefiles/test_dir_and_file: doc: use versioned
10604   cookie+getenv in test-modulefiles rcp  Use versioned magic cookie and getenv
10605   over $env
10606 
10607 2020-11-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10608 
10609   * MIGRATING.rst, NEWS.rst: doc: desc. 'loaded' sym in NEWS/MIGRATING
10610 
10611   * doc/source/module.rst: doc: desc. 'loaded' sym in module(1) man
10612 
10613   * testsuite/modulefiles.3/advvers/1.0,
10614   testsuite/modules.00-init/005-init_ts.exp,
10615   .../275-adv_version_spec-loaded.exp: ts: test 'loaded' auto sym in 70/275
10616 
10617 2020-11-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10618 
10619   * modulecmd.tcl.in: Add 'loaded' auto sym to designated loaded version  Add
10620   the `loaded` symbolic version among the advanced version specifier to
10621   designate the currently loaded version of designated module. An error is
10622   returned if no matching module is currently loaded.  Fixes #366
10623 
10624 2020-10-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10625 
10626   * NEWS.rst: doc: desc. state changes in NEWS
10627 
10628 2020-10-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10629 
10630   * testsuite/example/siteconfig.tcl-1,
10631   testsuite/modules.00-init/120-siteconfig.exp,
10632   testsuite/modules.50-cmds/286-info-username.exp,
10633   testsuite/modules.50-cmds/287-info-usergroups.exp,
10634   testsuite/modules.70-maint/220-config.exp,
10635   testsuite/modules.70-maint/230-verbosity.exp: ts: update tests for runtime
10636   state handling changes
10637 
10638   * modulecmd.tcl.in: Exclude new state helper procs from debug2  Do not
10639   pollute debug2 output with the numerous calls to the new runtime state
10640   helper procedures (lpopState currentState depthState).
10641 
10642   * modulecmd.tcl.in: No definition record for basic states  Remove the need
10643   to record the definition of runtime states in the g_state_defs global array
10644   for states with no specific properties.
10645 
10646   * modulecmd.tcl.in: Use directly depthState on reportholdid rather
10647   isReportHeld  Remove isReportHeld procedure and rebase calls directly on
10648   depthState with reportholdid state.
10649 
10650   * modulecmd.tcl.in: Rebase llength+getState calls on depthState  Use
10651   depthState specific procedure rather calling llength on getState result.
10652 
10653   * modulecmd.tcl.in: Use depthState rather getEvalModuleStackDepth  Remove
10654   getEvalModuleStackDepth procedure and use depthState procedure over
10655   modulename state instead
10656 
10657   * modulecmd.tcl.in: Add depthState proc  Add the depthState helper procedure
10658   that returns the number of elements in the list of values for specified
10659   state.
10660 
10661   * modulecmd.tcl.in: Migrate evalid to state struct
10662 
10663   * modulecmd.tcl.in: Migrate msgrecordid to state struct
10664 
10665   * modulecmd.tcl.in: Add topState proc  Add the topState helper procedure
10666   that returns the first element from the list of values for specified state.
10667 
10668   * modulecmd.tcl.in: Migrate debug_msg_prefix to state struct
10669 
10670   * modulecmd.tcl.in: Migrate reportholdid to state struct
10671 
10672   * modulecmd.tcl.in: Migrate commandname to state struct
10673 
10674   * modulecmd.tcl.in: Migrate specifiedname to state struct
10675 
10676   * modulecmd.tcl.in: Drop ::ModulesCurrentModulefile outside of eval context
10677   Rely on modulefile current state value rather use a distinct global variable
10678   named ::ModulesCurrentModulefile outside of modulefile or modulerc
10679   evaluation context.
10680 
10681 2020-10-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10682 
10683   * modulecmd.tcl.in: Migrate modulefile to state struct
10684 
10685   * modulecmd.tcl.in: Migrate modulename to state struct
10686 
10687   * modulecmd.tcl.in: Migrate mode to state struct
10688 
10689   * modulecmd.tcl.in: Migrate always_read_full_file to state struct
10690 
10691 2020-10-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10692 
10693   * modulecmd.tcl.in: Remove dup appending val with lappendState only if
10694   -nodup set  Update the lappendState procedure to clear duplicate entries to
10695   append only if the `-nodup` option is set as first argument.
10696 
10697 2020-10-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10698 
10699   * NEWS.rst: doc: desc. lpopState/currentState in NEWS
10700 
10701   * NEWS.rst: doc: desc. implicit_requirement/--not-req in NEWS
10702 
10703   * .travis.yml: travis: add --disable-implicit-requirement to a test case
10704 
10705   * doc/source/modulefile.rst: doc: desc. --not-req in modulefile(4) man
10706 
10707   * doc/source/module.rst: doc: desc. implicit_requirement in module(1) man
10708 
10709 2020-10-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10710 
10711   * testsuite/modulefiles.3/notreq/load,
10712   testsuite/modulefiles.3/notreq/loaderr,
10713   testsuite/modulefiles.3/notreq/loadmul,
10714   testsuite/modulefiles.3/notreq/loadsubm,
10715   testsuite/modulefiles.3/notreq/loadsubp,
10716   testsuite/modulefiles.3/notreq/loadunk, testsuite/modulefiles.3/notreq/mix,
10717   testsuite/modulefiles.3/notreq/prereq,
10718   testsuite/modulefiles.3/notreq/switch1,
10719   testsuite/modulefiles.3/notreq/switch1err,
10720   testsuite/modulefiles.3/notreq/switch1unk,
10721   testsuite/modulefiles.3/notreq/switch2,
10722   testsuite/modulefiles.3/notreq/switchsubm,
10723   testsuite/modulefiles.3/notreq/switchsubp,
10724   testsuite/modulefiles.3/notreq/unload,
10725   testsuite/modulefiles.3/notreq/unloaderr,
10726   testsuite/modulefiles.3/notreq/unloadmul,
10727   testsuite/modulefiles.3/notreq/use,
10728   testsuite/modules.50-cmds/431-not-req.exp: ts: test --not-req option in
10729   50/431
10730 
10731   * modulecmd.tcl.in: Do not rely on auto_handling if implicit req disabled
10732   Do not rely on the auto_handling code to solve dependency implied by 'module
10733   unload' or 'module switch' commands during an unload evaluation if implicit
10734   requirement feature is disabled as no requirement were recorded for these
10735   commands on load phase.
10736 
10737 2020-10-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10738 
10739   * testsuite/modulefiles.3/bar/1.0, testsuite/modulefiles.3/bar/2.0,
10740   testsuite/modulefiles.3/baz/1.0, testsuite/modulefiles.3/baz/2.0,
10741   testsuite/modulefiles.3/foo/0.err, testsuite/modulefiles.3/foo/0.load,
10742   testsuite/modulefiles.3/foo/0.prereq, testsuite/modulefiles.3/foo/1.0,
10743   testsuite/modulefiles.3/foo/2.0, testsuite/modulefiles.3/impreq/load,
10744   testsuite/modulefiles.3/impreq/loaderr,
10745   testsuite/modulefiles.3/impreq/loadmul,
10746   testsuite/modulefiles.3/impreq/loadsubm,
10747   testsuite/modulefiles.3/impreq/loadsubp,
10748   testsuite/modulefiles.3/impreq/loadunk, testsuite/modulefiles.3/impreq/mix,
10749   testsuite/modulefiles.3/impreq/prereq,
10750   testsuite/modulefiles.3/impreq/switch1,
10751   testsuite/modulefiles.3/impreq/switch1err,
10752   testsuite/modulefiles.3/impreq/switch1unk,
10753   testsuite/modulefiles.3/impreq/switch2,
10754   testsuite/modulefiles.3/impreq/switchsubm,
10755   testsuite/modulefiles.3/impreq/switchsubp,
10756   testsuite/modulefiles.3/impreq/unload,
10757   testsuite/modulefiles.3/impreq/unloaderr,
10758   testsuite/modulefiles.3/impreq/unloadmul,
10759   testsuite/modules.50-cmds/430-implicit-req.exp: ts: test disabled
10760   implicit_requirement conf in 50/430
10761 
10762 2020-10-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10763 
10764   * modulecmd.tcl.in: Extend req recording inhibition to switch subcontext
10765 
10766   * testsuite/install.00-init/010-environ.exp,
10767   testsuite/modules.00-init/010-environ.exp,
10768   testsuite/modules.70-maint/220-config.exp: ts: ensure implicit requirement
10769   is enabled for tests
10770 
10771   * doc/source/diff_v3_v4.rst: doc: desc. --not-req in diff doc
10772 
10773 2020-10-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10774 
10775   * modulecmd.tcl.in: Inhibit requirement record  Inhibit prereq or conflict
10776   requirement record on module load, module unload or module switch if
10777   implicit_requirement option is disabled or --not-user option is set.  Add an
10778   inhibit_req_record state to track whether requirement should be recorded or
10779   not.  Fixes #260
10780 
10781   * testsuite/modules.70-maint/220-config.exp: ts: adapt existing test for
10782   implicit_requirement conf
10783 
10784   * modulecmd.tcl.in: Add lpopState/currentState procs  Add the lpopState and
10785   currentState helper procedures that respectively remove last element or
10786   return last element from list value of specified state.
10787 
10788   * modulecmd.tcl.in: Add --not-req opt to module {load,unload,switch} in
10789   modfile  Add the --not-req option for the module load, module unload and
10790   module switch commands when used in modulefile. When set, specified modules
10791   to load, unload of part of a switch are not recorded as requirement for
10792   currently evaluating modulefile.
10793 
10794   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
10795   init/zsh-functions/_module.in: init: add implicit_requirement config to
10796   completion scripts
10797 
10798   * doc/source/diff_v3_v4.rst: doc: desc. MODULES_IMPLICIT_REQUIREMENT in diff
10799 
10800   * INSTALL.rst: doc: desc. --enable-implicit-requirement in INSTALL
10801 
10802   * Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in: Add
10803   implicit_requirement config  Introduce the implicit_requirement
10804   configuration option to control whether a prereq or conflict requirement
10805   should be implicitly set toward modules respectively specified on module
10806   load or module unload commands in modulefile.  Default value for option
10807   could be set at configure time with the --enable-implicit-requirement option
10808   (enabled by default). This value could be superseded by setup of
10809   implicit_requirement option with config sub-command. Which set the
10810   MODULES_IMPLICIT_REQUIREMENT environment variable.
10811 
10812 2020-10-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10813 
10814   * testsuite/install.00-init/050-crossshell.exp: ts: add cross shell tests
10815   with shells_with_ksh_fpath
10816 
10817   * NEWS.rst: doc: desc. shells_with_ksh_fpath in NEWS
10818 
10819   * doc/source/module.rst: doc: desc. shells_with_ksh_fpath in module(1)
10820 
10821 2020-10-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10822 
10823   * testsuite/example/modulerc-1.in,
10824   testsuite/modules.70-maint/120-autoinit.exp: ts: test shells_with_ksh_fpath
10825   in 70/120
10826 
10827   * testsuite/install.00-init/010-environ.exp,
10828   testsuite/modules.00-init/010-environ.exp,
10829   testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
10830   shells_with_ksh_fpath
10831 
10832   * init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
10833   init/zsh-functions/_module.in: init: add shells_with_ksh_fpath config to
10834   completion scripts
10835 
10836 2020-10-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10837 
10838   * doc/source/diff_v3_v4.rst: doc: desc. MODULES_SHELLS_WITH_KSH_FPATH in
10839   diff doc
10840 
10841   * modulecmd.tcl.in: Add shells_with_ksh_fpath config  Introduce
10842   `shells_with_ksh_fpath` configuration to define shells where the FPATH
10843   environment has to be defined to target ksh function directory. Value for
10844   this configuration can be set through the MODULES_SHELLS_WITH_KSH_FPATH
10845   environment variable.  Fixes #364
10846 
10847   * modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: ts: adapt
10848   test to FPATH setup change for ksh
10849 
10850   * init/ksh.in, modulecmd.tcl.in: Define FPATH during autoinit for ksh shell
10851   When initializing module on ksh shell with the autoinit sub-command, add to
10852   the FPATH environment variable the directory where module function is
10853   defined. Which helps to get module function defined in ksh interactive and
10854   non-interactive sub-shells.  This FPATH setup for ksh shell was previously
10855   done in ksh initialization script.
10856 
10857   * NEWS.rst: doc: desc. MODULES_LMALTNAME/list changes in NEWS
10858 
10859   * doc/source/module.rst: doc: MODULES_LMALTNAME used on list to report syms
10860 
10861   * testsuite/modules.70-maint/040-list.exp,
10862   testsuite/modules.70-maint/045-listlong.exp: ts: new list report tests with
10863   syms
10864 
10865 2020-10-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10866 
10867   * testsuite/modules.00-init/140-color.exp,
10868   testsuite/modules.20-locate/100-wspace.exp,
10869   testsuite/modules.50-cmds/281-info-modulerc.exp,
10870   testsuite/modules.70-maint/045-listlong.exp,
10871   testsuite/modules.70-maint/280-ml.exp: ts: adapt tests for loaded mod sym
10872   fetch change
10873 
10874   * modulecmd.tcl.in: Report sym recorded in env on list sub-command  Use
10875   symbolic versions recorded in environment, with MODULES_LMALTNAME variable,
10876   to report symbols applying to loaded modules on list sub-command.  This
10877   change removes the need to evalute modulercs to fetch symbolic versions for
10878   loaded modules, which leads to significant performance improvement for the
10879   list sub-command.
10880 
10881   * modulecmd.tcl.in: Simplify mtime fetch in cmdModuleList  Fetch file
10882   modification time only if required by module list display format.
10883 
10884 2020-10-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10885 
10886   * testsuite/modules.10-use/080-access-use.exp,
10887   testsuite/modules.20-locate/048-symexec.exp,
10888   testsuite/modules.20-locate/050-locrc.exp,
10889   testsuite/modules.20-locate/060-rc.exp,
10890   testsuite/modules.20-locate/066-modulepath-rc.exp,
10891   testsuite/modules.20-locate/067-hidden.exp,
10892   testsuite/modules.20-locate/068-transitive.exp,
10893   testsuite/modules.20-locate/069-cross.exp,
10894   testsuite/modules.20-locate/075-symlink.exp,
10895   testsuite/modules.20-locate/100-wspace.exp,
10896   testsuite/modules.20-locate/110-hide.exp,
10897   testsuite/modules.20-locate/111-hide-hard.exp,
10898   testsuite/modules.20-locate/111-hide-soft.exp,
10899   testsuite/modules.20-locate/115-forbid.exp,
10900   testsuite/modules.50-cmds/170-swap.exp,
10901   testsuite/modules.50-cmds/375-deps6.exp,
10902   testsuite/modules.50-cmds/377-deps8.exp,
10903   testsuite/modules.50-cmds/377-opposite.exp,
10904   testsuite/modules.50-cmds/380-altname.exp,
10905   testsuite/modules.61-coll/010-init_ts.exp,
10906   testsuite/modules.70-maint/230-verbosity.exp,
10907   testsuite/modules.70-maint/240-icase.exp,
10908   .../modules.70-maint/270-adv_version_spec.exp,
10909   .../modules.70-maint/271-adv_version_spec-in.exp,
10910   .../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
10911   .../274-adv_version_spec-autosym.exp,
10912   testsuite/modules.80-deep/010-init_ts.exp,
10913   testsuite/modules.80-deep/068-transitive-deep.exp: ts: update
10914   MODULES_LMALTNAME for new alias prefix
10915 
10916   * doc/source/module.rst: doc: desc alt name prefixes used in
10917   MODULES_LMALTNAME
10918 
10919   * modulecmd.tcl.in: Flag alias in MODULES_LMALTNAME  Distinguish aliases
10920   from symbolic versions in MODULES_LMALTNAME environment variable. Prefix
10921   these alias entries with the `al|` string.
10922 
10923 2020-10-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10924 
10925   * .../modulefiles/bar/.common, .../modulefiles/bar/.modulerc,
10926   .../new-features-without-breaking-old-module.rst: doc: update
10927   new-features-without-breaking-old-module recipe  Describe use of new
10928   ModuleTool and ModuleToolVersion Tcl variables as well as versioncmp
10929   modulefile command.
10930 
10931   * MIGRATING.rst: doc: mention Lmod support for ModuleTool&co in MIGRATING
10932 
10933 2020-10-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10934 
10935   * .cirrus.yml, Makefile, testsuite/example/.modulespath-wild.in: ts: test
10936   wildcard char in modulespath conf
10937 
10938   * NEWS.rst, modulecmd.tcl.in: Use of wildcard char to designate dirs in
10939   modulespath  Enable the use of wildcard character to designate multiple
10940   directories at once in modulespath configuration file.  Fixes #125
10941 
10942   * testsuite/modulefiles.3/versioncmp/.modulerc,
10943   testsuite/modulefiles.3/versioncmp/1.0,
10944   testsuite/modules.50-cmds/420-versioncmp.exp: ts: test versioncmp in 50/420
10945 
10946   * configure, site.exp.in, testsuite/modulefiles.3/mfvar/.modulerc,
10947   testsuite/modulefiles.3/mfvar/1.0, testsuite/modulefiles.3/mfvar/2.0,
10948   testsuite/modules.50-cmds/410-modvar.exp: ts: test
10949   ModuleTool/ModuleToolVersion in 50/410
10950 
10951 2020-10-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10952 
10953   * NEWS.rst: doc: desc. versioncmp in NEWS
10954 
10955   * MIGRATING.rst: doc: desc versioncmp in MIGRATING
10956 
10957   * MIGRATING.rst: doc: simplify TOC of MIGRATING document
10958 
10959   * doc/source/modulefile.rst: doc: desc. new versioncmp command in
10960   modulefile(4)
10961 
10962   * doc/source/conf.py, doc/source/modulefile.rst: doc: desc. ModuleTool and
10963   ModuleToolVersion in modulefile(4)
10964 
10965   * doc/source/conf.py, doc/source/modulefile.rst: doc: add new 'mfvar' sphinx
10966   directive/role
10967 
10968   * doc/source/diff_v3_v4.rst: doc: desc. versioncmp new elements in diff doc
10969 
10970 2020-10-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10971 
10972   * modulecmd.tcl.in: Introduce 'versioncmp' modulefile command  Compare two
10973   version strings and return -1, 0 or 1 respectively if first version string
10974   is lower, equal or higher than second version string specified.
10975 
10976   * modulecmd.tcl.in: Record module tool properties on eval interp  For each
10977   modulefile or modulerc Tcl interpreter created, initialize the global
10978   variables ModuleTool and ModuleToolVersion with the information relative to
10979   the module tool in use. Which help to know how modulefiles or modulerc
10980   should be written, what features can be used or not.
10981 
10982 2020-11-14  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10983 
10984   * NEWS.rst, contrib/rpm/environment-modules.spec.in, version.inc.in: Release
10985   of version 4.6.1
10986 
10987   * testsuite/modulefiles.2/hide1/.modulerc,
10988   .../modules.20-locate/114-hide-before-after.exp,
10989   .../modules.20-locate/116-forbid-before-after.exp: ts: fix tested future
10990   date for tests on 32bit sys
10991 
10992 2020-11-12  Xavier Delaruelle <xavier.delaruelle@cea.fr>
10993 
10994   * .../hide-and-forbid-modules/modulefiles/.modulerc,
10995   .../hide-and-forbid-modules/modulefiles/appA/1.0,
10996   .../hide-and-forbid-modules/modulefiles/appA/2.0,
10997   .../hide-and-forbid-modules/modulefiles/appB/1.0,
10998   .../hide-and-forbid-modules/modulefiles/appB/2.0,
10999   .../modulefiles/bioappA/1.0, .../modulefiles/bioappA/2.0,
11000   .../modulefiles/bioappB/1.0, .../modulefiles/bioappB/2.0,
11001   .../modulefiles/chemappA/1.0, .../modulefiles/chemappA/2.0,
11002   .../modulefiles/chemappB/1.0, .../modulefiles/chemappB/2.0,
11003   .../modulefiles/deplibA/1.0, .../modulefiles/deplibA/2.0,
11004   .../modulefiles/deplibB/1.0, .../modulefiles/deplibB/2.0,
11005   doc/source/cookbook/hide-and-forbid-modules.rst: doc: add
11006   'hide-and-forbid-modules' cookbook recipe
11007 
11008 2020-11-11  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11009 
11010   * modulecmd.tcl.in, testsuite/modules.50-cmds/377-error.exp: Skip unload of
11011   depended mods on purge  When a module fails to unload during a `purge`
11012   sub-command, preserve loaded the modules it requires to keep environment
11013   consistent.  Fixes #370
11014 
11015 2020-11-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11016 
11017   * testsuite/modules.20-locate/110-hide.exp,
11018   testsuite/modules.20-locate/111-hide-hard.exp: ts: fix hide tests for sym
11019   resolution update
11020 
11021 2020-11-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11022 
11023   * modulecmd.tcl.in: Drop result cache in isModuleHidden  Recheck module
11024   hiddenness each time isModuleHidden procedure is called. Drop cache result
11025   of this procedure to ensure hiddenness is checked against up-to-date
11026   module-hide definitions.  Fix module hiddenness resolution for symbolic
11027   versions defined in a global RC file when module-hide statements are set in
11028   the modulepath where the modulefiles targeted by these symbols are located.
11029   Fixes #369
11030 
11031 2020-10-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11032 
11033   * modulecmd.tcl.in: Add global/user rc def to module symbol list in any
11034   cases  When building the module symbol list in phase #1 of getModules
11035   procedure, also add the definitions coming from global or user rc files even
11036   if rc definitions should not be part of the result. As these symbolic names
11037   may match query and make their targetted module from the currently searched
11038   directory included in result.  Fixes #368
11039 
11040 2020-11-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11041 
11042   * modulecmd.tcl.in, testsuite/modules.70-maint/210-clear.exp,
11043   testsuite/modules.70-maint/280-ml.exp: Unset MODULES_LMSOURCESH with clear
11044   sub-cmd  Fix `clear` sub-command to unset the MODULES_LMSOURCESH environment
11045   variable.  Fixes #367
11046 
11047   * .cirrus.yml: cirrus: adapt make command name to build env
11048 
11049   * .cirrus.yml: cirrus: use template for build/install/uninstall scripts
11050 
11051 2020-11-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11052 
11053   * doc/source/modulefile.rst: doc: remove duplicate envvar desc. section
11054 
11055   * .appveyor.yml: appveyor: use latest Win image to get msys2 ok
11056 
11057   * CONTRIBUTING.rst, README.md: doc: update desc. related to CI systems used
11058 
11059   * .cirrus.yml: cirrus: use template for tests and split test phases
11060 
11061   * .cirrus.yml: cirrus: make a dedicated template for git clone script
11062 
11063   * .travis.yml: travis: factorize linux test cases
11064 
11065 2020-11-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11066 
11067   * .cirrus.yml: cirrus: expose test log files as artifacts
11068 
11069   * .travis.yml: travis: cleanup useless code now some tests are migrated
11070 
11071   * .cirrus.yml, .travis.yml: travis/cirrus: migrate first Ubuntu test case to
11072   Cirrus CI
11073 
11074 2020-11-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11075 
11076   * .cirrus.yml, .travis.yml: travis/cirrus: migrate OpenSUSE test cases to
11077   Cirrus CI
11078 
11079   * .cirrus.yml: cirrus: FreeBSD test cases just need 1 cpu
11080 
11081   * testsuite/install.00-init/005-init_ts.exp: ts: ignore ruby warning when
11082   tests are run from /tmp
11083 
11084   * .cirrus.yml, .travis.yml: travis/cirrus: migrate CentOS test cases to
11085   Cirrus CI
11086 
11087   * .travis.yml: travis: remove non-essential CentOS tests
11088 
11089   * testsuite/modules.70-maint/150-append-path.exp,
11090   testsuite/modules.70-maint/152-remove-path.exp: ts: adapt DYLD warning msg
11091   on new OSX test env
11092 
11093 2020-11-02  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11094 
11095   * .cirrus.yml, .travis.yml: travis/cirrus: migrate OSX test case to Cirrus
11096   CI
11097 
11098 2020-10-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11099 
11100   * doc/source/diff_v3_v4.rst: doc: desc. shell special chars escaping in diff
11101   doc  Shell special characters like backticks are escaped when used in values
11102   starting Modules 4.  Fixes #365
11103 
11104   * doc/source/diff_v3_v4.rst: doc: fix typo on 4.5 and 4.6 envvar desc.
11105 
11106 2020-10-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11107 
11108   * doc/source/modulefile.rst: doc: rework module-{hide,forbid} option
11109   description
11110 
11111 2020-10-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11112 
11113   * NEWS.rst: doc: add anchor for each feature release in NEWS
11114 
11115   * NEWS.rst: doc: fix typo on 4.6.0 title in NEWS
11116 
11117   * doc/source/diff_v3_v4.rst: doc: fix typos in diff doc for 4.6 new mf cmds
11118 
11119 2020-10-01  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11120 
11121   * .../modulefiles/.modulerc, .../modulefiles/foo/1.1,
11122   .../modulefiles/foo/1.2, .../new-features-without-breaking-old-module.rst:
11123   doc: add 'new-features-without-breaking-old-module' recipe
11124 
11125 2020-09-29  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11126 
11127   * doc/source/design/hide-or-forbid-modulefile.rst: doc: clarify hide-forbid
11128   design regarding retained rule
11129 
11130 2020-09-28  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11131 
11132   * modulecmd.tcl.in, testsuite/modules.20-locate/115-forbid.exp: Optimize
11133   module tag search  Optimize internal recording of module tag specification
11134   inherited from module-forbid commands found when parsing modulerc files.
11135   Thus time taken to fetch a given tag applying to a module is reduced.
11136   Record module tag specification in an array where key is module root name
11137   and each tag has its own list of module specification/associated properties
11138   couplet applying to it. When looking if a given module matches a given tag,
11139   the associated properties to the tag from first matching module
11140   specification is returned.
11141 
11142 2020-09-27  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11143 
11144   * script/mb: script: add ability to select test to perform on 'mb'
11145 
11146   * modulecmd.tcl.in: Filter entries in phase 2 of getModules for simple
11147   searches  Apply an early filter to remove entries not matching search query
11148   module root in phase 2 of getModules procedure. Doing so improve
11149   performances of whatis and search sub-commands.  Only proceed with this
11150   early filtering for basic searches (non wild, non contains and no wildcard
11151   character in searched module root name).
11152 
11153 2020-09-26  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11154 
11155   * modulecmd.tcl.in: Optimize hidden property search  Optimize internal
11156   recording of hidden module specification when parsing modulerc files in
11157   order to reduce the time taken to test if a given module is hidden or not.
11158   Record hidden module specification in an array where key is module root
11159   name. So it can be easy to check if there is some hidden specification to
11160   test for a given module (based on root name). Within each array entry hidden
11161   module specifications are sorted by hidden level to be able to search these
11162   specifications from strongest to weakest hidding level.
11163 
11164   * modulecmd.tcl.in: Save/get module root name from module name and vers spec
11165   When parsing module version specifiers compute the module root name and
11166   record it in module version spec structure.  Add the
11167   getModuleRootFromVersSpec procedure to fetch module root name from a module
11168   version spec.
11169 
11170 2020-09-25  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11171 
11172   * .travis.yml, Makefile, testsuite/modules.00-init/100-pager.exp,
11173   testsuite/modules.00-init/160-multilib.exp: ts/travis: test multilib support
11174   with use of alt lib
11175 
11176 2020-09-23  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11177 
11178   * modulecmd.tcl.in, testsuite/modules.70-maint/270-adv_version_spec.exp:
11179   Raise error if mod spec is equal to '@'  When full module specification is
11180   equal to `@`, raise an error as no module name is provided.  Fixes #362
11181 
11182 2020-09-22  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11183 
11184   * testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
11185   testsuite/example/sh-to-mod.sh,
11186   testsuite/modules.70-maint/310-sh-to-mod.exp: ts: improve coverage of
11187   sh-to-mod proc
11188 
11189 2020-09-21  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11190 
11191   * script/mb: script: drop profiling of <4.4 releases in mb
11192 
11193   * lib/configure.ac: lib: bump version to 1.2.0
11194 
11195   * lib/configure.ac, lib/envmodules.c: lib: include missing
11196   stdio.h/_ISOC99_SOURCE for snprintf
11197 
11198   * testsuite/modules.50-cmds/400-source-sh.exp: ts: display loaded mod with
11199   MODULES_LMSOURCESH cleared
11200 
11201 2020-09-20  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11202 
11203   * testsuite/modules.70-maint/272-adv_version_spec-range.exp: ts: improve
11204   coverage of modVersCmpProcIcaseExtdfl proc
11205 
11206   * testsuite/modules.00-init/140-color.exp: ts: test --color opt set to an
11207   unknown value
11208 
11209   * testsuite/modules.00-init/071-args.exp: ts: improve coverage of
11210   parseModuleCommandArgs proc
11211 
11212   * modulecmd.tcl.in: findModules proc is always called on mod root  Clean up
11213   code relative to call over deep module name, which are not made anymore.
11214 
11215   * modulecmd.tcl.in: No need to test if 'ml' was called within modulefile  As
11216   'ml' is not defined as a valid command for modulefile or modulerc
11217   interpreters.
11218 
11219   * modulecmd.tcl.in: Remove nextargisign from parseApplicationCriteriaArgs
11220   proc  nextargisign variable defined in parseApplicationCriteriaArgs is
11221   useless as it was only set after an error raise. So it was never reached.
11222 
11223   * testsuite/modules.20-locate/110-hide.exp: ts: improve coverage of eqspec
11224   mode of modEq proc
11225 
11226   * modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1,
11227   testsuite/modules.00-init/120-siteconfig.exp: Remove useless psuf arg on
11228   modEq proc  Pattern suffix is not used anymore in modEq comparison procedure
11229   (it is only useful for modEqStatic procedure). So remove this useless
11230   argument.
11231 
11232 2020-09-19  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11233 
11234   * testsuite/example/siteconfig.tcl-1,
11235   testsuite/modules.00-init/120-siteconfig.exp: ts: check parseDateTimeArg lib
11236   func against bad date
11237 
11238   * .appveyor.yml: appveyor: need to set TZ for date time tests on MSYS
11239 
11240 2020-09-18  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11241 
11242   * Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-mktime.c,
11243   testsuite/example/siteconfig.tcl-1,
11244   testsuite/modules.00-init/005-init_ts.exp,
11245   testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
11246   against a failed mktime call  Add an utility library that supersedes the
11247   mktime function from libc. The mktime function from this added library
11248   always returns an error (-1). It is used for coverage test of the mktime
11249   call made within the Envmodules_ParseDateTimeArgObjCmd function of the Tcl
11250   extension library.
11251 
11252   * testsuite/example/siteconfig.tcl-1,
11253   testsuite/modules.00-init/120-siteconfig.exp: ts: test parseDateTimeArg proc
11254   with no arg in 00/120
11255 
11256 2020-09-17  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11257 
11258   * script/mb: script: fix min version condition bench test
11259 
11260   * lib/envmodules.c, lib/envmodules.h, modulecmd.tcl.in: lib: implement
11261   parseDateTimeArg  Add function in libtclenvmodules to implement
11262   'parseDateTimeArg' as a Tcl command, which provides a more efficient way to
11263   convert a datetime string into an Epoch time.
11264 
11265 2020-09-16  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11266 
11267   * Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-time.c,
11268   testsuite/example/siteconfig.tcl-1,
11269   testsuite/modules.00-init/005-init_ts.exp,
11270   testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
11271   against a failed time call  Add an utility library that supersedes the time
11272   function from libc. The time function from this added library always returns
11273   an error (-1). It is used for coverage test of the time call made within the
11274   Envmodules_InitStateClockSecondsObjCmd function of the Tcl extension
11275   library.
11276 
11277   * lib/configure.ac, lib/envmodules.c, lib/envmodules.h, modulecmd.tcl.in:
11278   lib: implement initStateClockSeconds  Add function in libtclenvmodules to
11279   implement 'initStateClockSeconds' as a Tcl command, which provides a more
11280   efficient way to retrieve current Epoch time.
11281 
11282   * MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
11283   version.inc.in: Release of version 4.6.0
11284 
11285   * script/mrel: script: build src with compat vers enabled on mrel
11286 
11287 2020-09-15  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11288 
11289   * NEWS.rst: doc: desc. blank value set on win platform in NEWS
11290 
11291 2020-09-13  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11292 
11293   * modulecmd.tcl.in, testsuite/modules.20-locate/090-memcache.exp: Simplify
11294   arg setup to call findModules  For the record, findModules need to get all
11295   root module-related elements to correctly compute auto symbols to know if
11296   they apply to searched modules.
11297 
11298 2020-09-10  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11299 
11300   * modulecmd.tcl.in: Use get-env to manipulate env var in cmdModuleAutoinit
11301   As LOADEDMODULES and MODULEPATH are defined empty in cmdModuleAutoinit
11302   procedure, use the get-env procedure to manipulate these variables to avoid
11303   accessing undefined variable on Windows platform (as setting these variables
11304   to an empty string means to unset these variables on this platform).
11305 
11306   * modulecmd.tcl.in: unset env var when setting it to empty val on Win  When
11307   an empty string is set to an environment variable on Windows platform, this
11308   variable is unset yet still seen defined by 'info exists' command on Tcl,
11309   which leads to errors when trying to access variable content. So when trying
11310   to set an empty string to an environment variable on Windows platform, call
11311   for variable unset instead to reflect underlying OS behavior.
11312 
11313 2020-09-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11314 
11315   * .travis.yml: travis: disable git clone depth
11316 
11317 2020-09-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11318 
11319   * .appveyor.yml: appveyor: use BAWT Tcl installer for native Win test
11320 
11321 2020-09-09  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11322 
11323   * MIGRATING.rst: doc: fix some typos in MIGRATING
11324 
11325 2020-09-08  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11326 
11327   * MIGRATING.rst: doc: desc. module-forbid in MIGRATING
11328 
11329 2020-09-07  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11330 
11331   * MIGRATING.rst: doc: desc. trace verbosity mode in MIGRATING
11332 
11333 2020-09-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11334 
11335   * testsuite/modules.00-init/140-color.exp,
11336   testsuite/modules.70-maint/230-verbosity.exp: ts: test trace verbosity in
11337   00/140 and 70/230
11338 
11339   * NEWS.rst: doc: desc. trace verbosity in NEWS
11340 
11341 2020-09-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11342 
11343   * INSTALL.rst, doc/source/module.rst: doc: desc. trace in INSTALL/module(1)
11344 
11345 2020-09-06  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11346 
11347   * configure, modulecmd.tcl.in: Add 'tr' sgr color key for trace messages
11348 
11349 2020-09-05  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11350 
11351   * testsuite/modules.20-locate/090-memcache.exp,
11352   testsuite/modules.70-maint/070-display.exp,
11353   testsuite/modules.70-maint/080-help.exp,
11354   testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for new
11355   trace verbosity
11356 
11357   * NEWS.rst, configure, testsuite/install.00-init/005-init_ts.exp: install:
11358   add support for MinGW platform  Look for `make` rather `gmake` on MinGW and
11359   build library with a `.dll` extension on this platform.
11360 
11361 2020-09-04  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11362 
11363   * MIGRATING.rst: doc: finalize module-hide desc. in MIGRATING
11364 
11365 2020-09-03  Xavier Delaruelle <xavier.delaruelle@cea.fr>
11366 
11367   * configure, modulecmd.tcl.in: Rework trace verbosity level  Report module
11368   resolution/search/selection/evaluation to trace big steps of modulecmd.