"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.