Mister Spy Say ="Hello Kids ... :D"
___ ____ _ _____
| \/ (_) | | / ___|
| . . |_ ___| |_ ___ _ __ \ `--. _ __ _ _
| |\/| | / __| __/ _ \ '__| `--. \ '_ \| | | |
| | | | \__ \ || __/ | /\__/ / |_) | |_| |
\_| |_/_|___/\__\___|_| \____/| .__/ \__, |
| | __/ |
|_| |___/
Bot Mister Spy V3
Mister Spy
Mister Spy
2023-05-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
doc/source/conf.py, testsuite/modules.51-scan/020-avail_output-variant.exp,
version.inc.in: Release of version 5.3.0
* MIGRATING.rst: doc: desc +/- value prefix for opts/configs in MIGRATING
* NEWS.rst, tcl/subcmd.tcl.in, testsuite/modulefiles.3/bar/2.0,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp: No sticky mod unload if
switched-on mod does not exist Fix switch sub-command not to unload sticky
or super-sticky module when switched-on module does not exist. Fixes #492
2023-05-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: fix SC20{04,28,86} warnings in configure
* doc/source/module.rst: doc: desc +/- value prefix for opts/configs in man
2023-05-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst: doc: desc +/- value prefix for
opts/configs in NEWS/CHANGES
2023-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: test -o/--output value
append/subtract in 70/36{0,1}
2023-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/init.tcl.in, tcl/main.tcl.in: Allow append/subtract value with
--output option Allow to append or subtract value on avail_*output and
list_*output configuration options through --output command line switch. If
value associated to --output/-o switch starts with '+' or '-', this new
value is respectively appended or subtracted from existing configuration
value.
* tcl/main.tcl.in: Fix duplicate space character in option parsing code
2023-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/220-config.exp: ts: test append/subtract config
option value in 70/220
* tcl/main.tcl.in, testsuite/modules.70-maint/220-config.exp: Allow to pass
value starting with '-' on config subcmd Allow to pass configuration option
value starting with minus sign (-) on config sub-command. Was previously
mistaken with command-line switches. This change allows to subtract a value
to a configuration option already set.
* tcl/subcmd.tcl.in: Config option value append or subtract for list option
Allow to update colon-separated list configuration option with config
sub-command. If new value starts with '+' or '-', this new value is
respectively appended or subtracted from existing configuration value.
* doc/source/design/add-new-config-option.rst, tcl/init.tcl.in,
tcl/main.tcl.in, tcl/subcmd.tcl.in, testsuite/example/siteconfig.tcl-1: Add
value kind attribute in config option definition array Update configuration
option definition array (g_config_defs) to add value kind attribute as 4th
entry in definition list. This attribute has following possible values: 'i'
for integer, 's' for string, 'b' for boolean, 'l' for colon-separated list,
'o' for other.
2023-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/report.tcl.in: Mention 'variant' as --output example value in usage
msg
* doc/source/changes.rst: doc: desc. avail/paths/whatis/list search query
changes
* .aspell.en.pws, MIGRATING.rst, NEWS.rst: doc: desc. variantifspec in
NEWS/MIGRATING
2023-05-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/370-variant.exp: ts: adapt and add variantifspec
tests in 70/370
* testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/360-avail_output.exp: ts: adapt tests for
variantifspec val in avail_*output cfgs in 70/{220,360}
* INSTALL.rst, configure, doc/source/changes.rst, doc/source/module.rst:
install/doc: desc. variantifspec addition to avail_{,terse_}output
variantifspec new value is also added to the default list of value for these
configuration options.
* doc/source/design/output-configuration.rst,
doc/source/design/variants.rst: doc: desc. variantifspec report on avail in
design notes
* .aspell.en.pws, tcl/init.tcl.in, tcl/report.tcl.in: Add variantifspec
value to avail_{,terse_}output config Report defined variants on avail
regular or terse output if some variant is specified in search query.
2023-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/070-homerc.exp: ts: add
ignore_user_rc/--ignore-user-rc tests in 20/070
* doc/source/module.rst: doc: desc ignore_user_rc/--ignore-user-rc in man
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test ignore_user_rc config
option
* INSTALL.rst, NEWS.rst: doc: desc ignore_user_rc/--ignore-user-rc in
NEWS/INSTALL
* doc/source/changes.rst: doc: desc --ignore-user-rc/ignore_user_rc in
changes
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add ignore_user_rc/--ignore-user-rc to comp script
* tcl/modfind.tcl.in: Ignore user rc when ignore_user_rc enabled Do not
evaluate user-specific module rc file when ignore_user_rc configuration is
enabled. Fixes #479
* tcl/init.tcl.in, tcl/main.tcl.in, tcl/report.tcl.in: Add ignore_user_rc
configuration option Add ignore_user_rc configuration option that controls
whether or not the $HOME/.modulerc file should be ignored. Disabled by
default. When configuration is modified it sets the MODULES_IGNORE_USER_RC
environment variable. --ignore-user-rc command line switch can be used to
enable ignore_user_rc for current execution.
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
tcl/mfinterp.tcl.in, testsuite/modulefiles.3/refresh/1.0,
testsuite/modulefiles.3/refresh/2.0,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/311-puts-prestdout.exp,
testsuite/modules.70-maint/230-verbosity.exp: Refresh modules that put
content to stdout/prestdout Mark modulefile qualified for refresh
evaluation when puts command is used to send content to stdout or prestdout
channels. Such loaded modules where wrongly skipped during refresh unless
if they declared another volatile environment change. Choice is made to
also refresh modules that put content to stdout/prestdout to keep the
behavior of Modules 3.2 Fixes #488
2023-05-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/module.rst: doc: desc. extra specifier in man
2023-05-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. extra specifier work in MIGRATING
* NEWS.rst: doc: desc. extra specifier work in NEWS
2023-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/extra/1.0,
.../modules.51-scan/042-extra_spec-conflict.exp,
.../modules.51-scan/043-extra_spec-require.exp: ts: add module switch extra
spec tests in 51/04{2,3}
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/042-extra_spec-conflict.exp: ts: add conflict
extra spec tests in 51/042
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/042-extra_spec-conflict.exp: ts: add module unload
extra spec tests in 51/042
2023-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/043-extra_spec-require.exp: ts: add module
load-any extra spec tests in 51/043
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/043-extra_spec-require.exp: ts: add module
try-load extra spec tests in 51/043
* testsuite/modulefiles.4/extra/1.0,
.../modules.51-scan/043-extra_spec-require.exp: ts: add module erroneous
extra spec tests in 51/043
* testsuite/modulefiles.4/extra/1.0,
.../modules.51-scan/043-extra_spec-require.exp: ts: add module load extra
spec tests in 51/043
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/043-extra_spec-require.exp: ts: add always-load
extra spec tests in 51/043
2023-04-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, doc/source/design/extra-match-search.rst: doc: desc. mod
spec filtering in EMS spec
2023-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/043-extra_spec-require.exp: ts: add
prereq-all/depends-on extra spec tests in 51/043
2023-04-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/.modulerc,
testsuite/modulefiles.4/extra/.modulerc, testsuite/modulefiles.4/extra/1.0,
testsuite/modulefiles.4/xtbar/1.0, testsuite/modulefiles.4/xtbar/2.0,
testsuite/modulefiles.4/xtfoo/1.0,
.../modules.51-scan/043-extra_spec-require.exp: ts: add prereq/prereq-any
extra specifier tests in 51/043
2023-04-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modscan.tcl, tcl/modspec.tcl: Parse mod spec in extra specifier value
with getavails on For some extra specifier, a module specification is
expected as value. For them parse this module specification with resolution
of all matching available modules. During extra match search process, test
match of specification against all matching available modules recorded when
parsing spec. modEq procedures have been updated to fetch available module
names recorded in module version spec structure as alternative names for
spec when ismodlo argument is set to 5. modVariantCmp procedure has been
updated to let a missing variant definition of mod be considered as a match.
As compared pattern and mod are switched on extra specifier context (pattern
is definition found in modulefile and mod is also a pattern used for extra
specifier definition on command line). Note that this methodology is not
yet perfect as aliases, symbolic versions and modules that do not exist are
not part of the list of available modules returned.
2023-04-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in,
tcl/modeval.tcl, tcl/modfind.tcl.in, tcl/modscan.tcl, tcl/modspec.tcl,
tcl/subcmd.tcl.in, testsuite/example/siteconfig.tcl-1: Record avail mods
matching mod spec when parsing it Update module specification parsing
mechanism to add a getavails argument. It indicates that available modules
matching spec should be searched in enabled modulepaths to record them in
module version specification structure. When searching for available
matching modules, disable extra match search to avoid an infinite resolution
loop.
2023-04-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modspec.tcl: Parse extra specifier prior variant Give more priority
to extra specifier (name:value) than variant specification (name=value) as
extra specifier accepting a module specification as value may contain a
variant specification. For instance: "prereq:mod@1.0 foo=value".
* tcl/modspec.tcl: Skip arg split when parsing modspec if extra spec
detected Update module specification parsing to skip argument split when an
extra specifier is detected. Value for extra specifier may be a module
specification, thus argument split on version specifier or variant shortcut
should be skipped to keep extra specifier value as one string.
2023-04-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.51-scan/030-scan_eval-avail.exp,
testsuite/modules.51-scan/031-scan_eval-whatis.exp,
testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: adapt existing tests
to extra specifier changes
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/modfind.tcl.in,
tcl/modspec.tcl, tcl/report.tcl.in, tcl/util.tcl: Refer to string index with
M+N notation As M+N notation is now a valid syntax to refer to a string
index (starting Tcl 8.5), change code to use this syntax rather using expr
to compute an index value.
2023-04-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modscan.tcl, tcl/modspec.tcl: Record conflict
during scan eval conflict command is an extra specifier. incompat is an
alias of it.
* tcl/modscan.tcl, tcl/modspec.tcl: Record module switch during scan eval
switch sub-command name is an extra specifier. Switched-on module
specification also matches switch-on and require extra specifier aliases.
With two-arg form module switch, switched-off module specification also
matches switch-off and incompat extra specifier aliases.
2023-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modscan.tcl, tcl/modspec.tcl: Record module unload during scan eval
unload sub-command name is an extra specifier. incompat is an alias of it.
* tcl/mfinterp.tcl.in, tcl/modscan.tcl, tcl/modspec.tcl: Record module
load/load-any/try-load during scan eval load, try-load and load-any
sub-command names are an extra specifier. require is an alias of them.
2023-04-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modscan.tcl, tcl/modspec.tcl: Record always-load
definitions during scan eval require is an alias of always-load extra
specifier.
* tcl/mfinterp.tcl.in, tcl/modscan.tcl, tcl/modspec.tcl: Record
prereq-all/depends-on definitions during scan eval require, prereq-all and
depends-on are aliases of prereq-all and depends-on extra specifiers.
2023-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modscan.tcl: Match module designation for some extra specifiers
Update extra specifier query test for those whose value is a module
specification. Currently prereq, require and prereq-any extra specifiers
accept a module specification as value. This module specification is
matched against the specification passe to the corresponding modulefile Tcl
command. Match is done with modEq procedure. LIMITATION: not all module
specification currently works as modEq is made to compare a module
specification against a qualified module name and version. Using module
generic name or advanced version specifiers on extra specifier value will
not currently work.
2023-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modscan.tcl, tcl/modspec.tcl: Record
prereq/prereq-any definitions during scan eval require and prereq-any are
aliases of prereq and prereq-any extra specifiers.
2023-03-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.51-scan/040-extra_spec.exp: ts: test extra spec on
non-search cmds in 51/040
* tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/subcmd.tcl.in,
testsuite/example/siteconfig.tcl-1: Raise error when extra spec on
non-search cmds Extra specification in module search query is only allowed
on search sub-commands (avail, paths, whatis). An error is raised when
parsing a module specification if it contains an extra specification on a
non-search context. xtspec argument is added to parseModuleSpecification
procedure to know if extra specification is allowed or not.
2023-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, doc/source/design/extra-match-search.rst: doc: desc. extra
specifier in EMS design
2023-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modspec.tcl, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.51-scan/040-extra_spec.exp,
testsuite/modules.51-scan/041-extra_spec-env.exp: Raise error when unknown
extra specifier used
* testsuite/modulefiles.4/extra/1.0,
.../modules.51-scan/042-extra_spec-conflict.exp: ts: add family extra
specifier tests in 51/042
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record family definitions during
scan eval
2023-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/041-extra_spec-env.exp: ts: add setenv duplicate
definition test in 51/041
* tcl/modscan.tcl: Rework extra specifier filtering Update extra match
search process to filter results with extra specifiers only one after all
modulefile scan evaluations. As g_scanModuleElt global structure
consolidates all modules matching a given extra specifier criteria (element
> name = list of matching modules), with one test per extra specifier
criteria result can be obtain. Instead of testing each module against the
criteria independently. doesModExtraMatch procedure is removed and replaced
by getModMatchingExtraSpec to achieve this single global criteria match
test.
* tcl/util.tcl: Add getIntersectBetweenList helper procedure Compute
intersection of multiple lists with getIntersectBetweenList procedure.
2023-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.51-scan/040-extra_spec.exp: ts: test unknown extra
specifier and special char in 50/040
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/041-extra_spec-env.exp: ts: add extra specifier
tests with source-sh in 51/041
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/041-extra_spec-env.exp: ts: add erroneous env
extra specifier tests in 51/041
* testsuite/modulefiles.4/extra/1.0,
testsuite/modules.51-scan/041-extra_spec-env.exp: ts: add other env extra
specifier tests in 51/041
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record chdir definitions during scan
eval
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record unset-function definitions
during scan eval
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record set-function definitions
during scan eval
2023-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record unset-alias definitions
during scan eval
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record set-alias definitions during
scan eval
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record uncomplete definitions during
scan eval
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record complete definitions during
scan eval
2023-03-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/extra/1.0, testsuite/modulefiles.4/extra/2.0,
testsuite/modules.51-scan/041-extra_spec-env.exp: ts: add envvar extra
specifier tests in 51/041
* testsuite/modulefiles.4/extra/1.0, testsuite/modulefiles.4/extra/2.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.51-scan/040-extra_spec.exp: ts: initial tests for extra
specifiers in 51/040
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record unsetenv definitions during
scan eval
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record pushenv definitions during
scan eval
2023-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record *-path definitions during
scan eval
2023-03-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modscan.tcl: Record setenv definition during scan
eval
* tcl/modscan.tcl: Record variant name in scanned mod element When
evaluating a variant command in scan mode, record that this module defines a
variant with its name. This information is saved in g_scanModuleElt global
structure (Tcl dict). This structure is then used to test if extra
specifiers of search query match definition of available modules. Fixes
#408
* tcl/modscan.tcl: Filter avail module based on extra specifier Update
extra match search process to allow specification of extra specifiers in
addition to module name, version and variants. Filter results through extra
match search to only return modules matching extra specifiers (where
specified element and name is defined by module).
* tcl/modscan.tcl: EMS required if mod spec contains extra specifier During
avail, paths or whatis sub-commands
* tcl/modspec.tcl: Parse extra specifiers in module specification When
parsing module specification, take into account extra specifiers (elt:name)
and record them in g_moduleVersSpec structure. Add getExtraListFromVersSpec
utility procedure to get the extra specifiers of the specification.
2023-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, doc/source/_static/terminal_output.css, doc/source/conf.py:
doc: desc. Querying available module variants in MIGRATING
2023-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: install new tcl-devel package on
MSYS2
2023-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/extra-match-search.rst, tcl/modfind.tcl.in,
testsuite/modulefiles.4/scan/.modulerc, testsuite/modulefiles.4/scan/1.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp: Fix EMS filter against
alias overriding dir Directory information override alias in result
structure if extra match search is required.
2023-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modscan.tcl, testsuite/modules.51-scan/030-scan_eval-avail.exp: Fix
EMS filter against not matching dot hidden symbol
2023-03-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, doc/source/design/extra-match-search.rst: doc: desc extra
match search query grammar in design
2023-02-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/module.rst: doc: desc extra match search process in
man
* doc/source/module.rst: doc: use pattern terminology on whatis/paths desc.
* NEWS.rst: doc: desc. search variant name/value highlight in NEWS
2023-02-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/extra-match-search.rst,
doc/source/design/source-shell-script-in-modulefile.rst,
tcl/mfinterp.tcl.in: Interpret source-sh cmd on scan mode as on load mode
* doc/source/design/extra-match-search.rst: doc: update extra match search
spec for error entries
2023-02-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/scan/1.0, testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp,
testsuite/modules.51-scan/031-scan_eval-whatis.exp,
testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: access issue and EMS
on avail/whatis/paths
* testsuite/modulefiles.4/scan/1.0, testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp,
testsuite/modules.51-scan/031-scan_eval-whatis.exp,
testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: special chars and EMS
on avail/whatis/paths
* testsuite/modulefiles.4/scan/1.0, testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp: ts: add no-indepth avail
EMS tests in 51/030
* doc/source/design/extra-match-search.rst, tcl/modfind.tcl.in: Fetch all
files if no-indepth mode and EMS asked In case no-indepth mode is asked and
extra match search should be performed, traditional file lookup (by
``findModules``) is made to return all existing files. Not only those
matching depth level. As extra match filtering process may eliminate some
entries, all of them should be tested to obtain accurate result.
2023-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/scan/.modulerc, testsuite/modulefiles.4/scan/1.0,
testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp,
testsuite/modules.51-scan/031-scan_eval-whatis.exp,
testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: auto symbols and EMS
on avail/whatis/paths
2023-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/scan/.modulerc, testsuite/modulefiles.4/scan/1.0,
testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp,
testsuite/modules.51-scan/031-scan_eval-whatis.exp,
testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: default symbol and
EMS on avail/whatis/paths
* testsuite/modules.51-scan/030-scan_eval-avail.exp,
testsuite/modules.51-scan/031-scan_eval-whatis.exp,
testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: adapt wild variant
avail/whatis/paths tests in 51/03{0,1,2}
* tcl/modfind.tcl.in, tcl/modspec.tcl: Disable auto symbols on wild search
with variant Do not compute auto symbols if search query does not contain a
module name and version but contain variant specification. Add
isSpecWildWithVariant procedure to determine if search query is wild with
variant specification. Disabling auto symbols is especially useful for
sub-commands like 'paths' that take getModules result and try to resolve
each entry. In this situation it is important not to have any auto symbol
that indirectly targets an element withdrawn from extra match filter.
* doc/source/design/extra-match-search.rst, tcl/modfind.tcl.in: Correctly
handle auto symbols during EMS Move extra match search in getModules from
phase 3 to phase 4 to proceed after auto symbols computation. Add auto
symbols defined in versmod_list structure so extra match search filtering
can unset these elements if their target is filtered out.
2023-02-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.51-scan/032-scan_eval-paths.exp: ts: test alias/sym
filtering during EMS on paths
* testsuite/modulefiles.4/scan/1.0, testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/031-scan_eval-whatis.exp: ts: test alias/sym
filtering during EMS on whatis
2023-02-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/extra-match-search.rst: doc: update extra match search
spec for alias/sym
* testsuite/etc/modulerc.scan, testsuite/modulefiles.4/scan/.modulerc,
testsuite/modulefiles.4/scan/1.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp: ts: test alias filtering
during extra match search in 51/030
2023-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.scan, testsuite/modulefiles.4/foo/.modulerc,
testsuite/modulefiles.4/foo/1.0, testsuite/modulefiles.4/scan/.modulerc,
testsuite/modulefiles.4/scan/1.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp: ts: test symbol filtering
during extra match search in 51/030
2023-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in, tcl/modscan.tcl: Filter sym ver if target unset during
extra match Unset the symbolic version elements targeting an element
removed during the extra match search.
* testsuite/modules.70-maint/370-variant.exp: ts: no mod name/vers but vr
spec on avail/paths in 70/370
* testsuite/modules.70-maint/375-variant-whatis.exp: ts: no mod name/vers
but vr spec on whatis in 70/375
2023-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../021-avail_output-variant-sgr.exp: ts: no mod name/vers but vr spec on
colored avail in 51/021
* testsuite/modules.70-maint/370-variant.exp: ts: test variant spec only on
module list in 70/370
2023-02-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/370-variant.exp: ts: test variant spec
highlight on module list in 70/370
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/375-variant-whatis.exp: ts: test free value
variant spec on av/is-avail/wh/paths
2023-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0, .../021-avail_output-variant-sgr.exp:
ts: test to color selected variant name and value in 51/021
2023-02-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../021-avail_output-variant-sgr.exp,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/371-variant-msg.exp,
.../modules.70-maint/377-variant-shortcut.exp: ts: adapt existing sgr
variant tests Take into account sgr output code change due to variant sgr
highlight feature.
2023-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in, tcl/report.tcl.in: Highlight searched variant name and
value in output
2023-02-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in: No error count raise during scan evaluation If the
evaluation of a modulefile aborts (due to a break or exit error), do not
increase error count if evaluation mode is scan. As scan is a global
operation, like an avail search, an error on one modulefile should not
impact the overall result of the scan.
2023-02-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/030-options.exp: ts: fix version module avail
resolution in install 00/030
* testsuite/modules.70-maint/376-variant-tag.exp: ts: add hide/forbid tag
tests applying to variant in 70/376
2023-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modscan.tcl: Inhibit error report during scan mode evaluations
Disable error reporting to avoid modulefile errors to pollute output. This
is particularly useful when dealing with modulefile that does not cope with
scan mode evaluation.
2023-01-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/375-variant-whatis.exp,
testsuite/modules.70-maint/376-variant-tag.exp: ts: test variant spec on
avail/whatis/paths Adapt existing avail, whatis, is-avail, path and paths
tests that demonstrate whether sub-command takes variant specification into
account or not. Add boolean variant, shortcut variant tests. Add also more
tests of scan evaluation for avail/whatis/paths when module is forbidden.
2023-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc variant spec on avail/list/paths/whatis in NEWS
2023-01-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, doc/source/design/module-selection-contexts.rst,
doc/source/design/variants.rst: doc: desc extra match search in
variant/selection notes
2023-01-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/subcmd.tcl.in,
testsuite/example/siteconfig.tcl-1: Allow module spec without name on
several subcmds Allow module specification with variant definition and no
module name version for avail, list, paths and whatis sub-commands.
2023-01-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modscan.tcl: Filter avail module based on variant specification
Update extra match search process to allow specification of module variants
in addition to module name and version. Filter results through extra match
search to only return modules matching variant specification (where
specified variant name and value is defined for module).
2023-01-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/modulefiles/module-info: contrib: fix module-info example
modulefile for scan mode
* tcl/modscan.tcl: Extra match search required if mod spec contains variant
During avail, paths or whatis sub-commands
2023-01-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/scan/.modulerc, testsuite/modulefiles.4/scan/1.0,
testsuite/modulefiles.4/scan/2.0,
testsuite/modules.51-scan/030-scan_eval-avail.exp: ts: add diverse scan mode
eval tests in 51/030
2023-01-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/variant1/.modulerc,
testsuite/modulefiles.4/variant1/1.0, testsuite/modulefiles.4/variant1/2.0,
.../modules.51-scan/020-avail_output-variant.exp: ts: test scan evaluation
and output with variants in 51/020
2023-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0, .../021-avail_output-variant-sgr.exp:
ts: add avail report sgr tests for free-value variant in 51/021
* tcl/modfind.tcl.in: Adapt report for free-value variant When reporting
value list of free-value variant, mention '*' to indicate all kind of values
are accepted. If a default value is defined or if module is loaded report
these values among variant value list.
2023-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.51-scan/010-init_ts.exp,
.../021-avail_output-variant-sgr.exp,
testsuite/modules.51-scan/999-cleanup.exp: ts: test avail output with
rendition of default/loaded variant
2023-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/370-variant.exp,
.../modules.70-maint/377-variant-shortcut.exp: ts: test list output with
rendition of default variant
2023-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. default/loaded variant value SGR in NEWS
* tcl/modfind.tcl.in, tcl/report.tcl.in: Adapt loaded variant report to
loaded kind To highlight loaded variant value use the sgr key associated to
the loaded kind (loaded or auto-loaded). Resolve abbreviation used for these
module tag to apply the correct SGR key.
* tcl/modfind.tcl.in: Fix boolean variant key report issue on avail output
2023-01-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in, tcl/report.tcl.in: Adapt variant report to highlight
loaded variant value Update variant report mechanism to highlight variant
value if it is the loaded one (if this module is currently loaded). Use 'L'
sgr code highlight loaded variant value, like done for loaded module name
and version.
* tcl/modfind.tcl.in, tcl/modscan.tcl, tcl/report.tcl.in: Adapt variant
report to highlight default variant value Update variant report mechanism
to highlight variant value if it is the default one. Use 'de' sgr code
highlight default variant value, like done for default version. Both avail
and list output reports benefit from this highlight enhancement.
* tcl/modfind.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Adapt
multiple-value variant report to highlight comma Update variant report
mechanism to highlight comma separator when all available values of a
variant is reported. Use 'se' sgr code to highlight comma, like done for '{'
and '}'. The link to 'name=value' key entry is this way reinforced.
Introduce report mechanism #7 in getVariantList procedure to achieve this.
getVariantList will need refactoring.
2022-12-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.4/info/mode7, testsuite/modulefiles.4/info/mode8,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp: ts: test scan mode on
module-info in 50/{083,084}
* doc/source/modulefile.rst: doc: desc. scan string returned by module-info
mode
* testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/360-avail_output.exp: ts: adapt tests for variant
val in avail_*output cfgs in 70/{220,360}
* NEWS.rst: doc: desc. extra-match-search and variant report in NEWS
* INSTALL.rst, configure, doc/source/changes.rst, doc/source/module.rst:
install/doc: desc. variant addition to avail_{,terse_}output
* doc/source/design/output-configuration.rst,
doc/source/design/variants.rst: doc: desc. variant report on avail in design
notes
* tcl/init.tcl.in, tcl/modfind.tcl.in, tcl/report.tcl.in: Add variant value
to avail_{,terse_}output config Add the ability to report defined variants
on avail regular or terse output. Variant report is updated to output all
possible values in the name=value1,value2,... form. This form also applies
to boolean variant with on,off as possible values. Fixes #407
2022-12-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modscan.tcl:
Configure scan evaluation mode for modulefile Add scan evaluation mode for
modulefile. It will analyzes modulefile content for extra match search
process. To define environment variable in modulefile context during
evaluation, use whatis-variant of environment variable edition modulefile
commands. Setup first specific scan-variant of a modulefile command with
variant-sc procedure. Reuse code from whatis-variant to initialize variant
value in environment when evaluating modulefile. Also gather variant
definition for modules in a global array structure.
* tcl/modfind.tcl.in, tcl/modscan.tcl: Add extra match search process
Update getModules procedure to insert extra match search at phase 3.
filterExtraMatchSearch procedure codes the extra match search process. As a
start, all modules in result are evaluated in scan mode.
* tcl/modscan.tcl: Add isExtraMatchSearchRequired proc Add
isExtraMatchSearchRequired procedure that determine if current module search
requires an extra match search. Extra match search is required currently if
variant should be reported in resulting output.
* .aspell.en.pws, Makefile, tcl/modscan.tcl: Add modscan.tcl code file Add
modscan.tcl code file that will host Tcl procedures for the scan modulefile
evaluation mode and the extra match search process.
* .aspell.en.pws, doc/source/design/extra-match-search.rst,
doc/source/design/module-cache.rst: doc: add initial version of
extra-match-search design
2023-04-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: install: migrate to
SPDX licence format in RPM spec file
* NEWS.rst, init/bash_completion.in: init: fix nospace activation in bash
completion script Fix bash shell completion script to be able to complete
full name of available modules. Fixes #490.
2023-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: clarify python initialization example Update
Python initialization example to precise that the init script should be
exec-ed in the global scope. This is important when init script is executed
from a function. This change helps to clarify a question asked on #483.
2023-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, script/gitlog2changelog.py.in: install: fix expected log format
in gitlog2changelog.py Update gitlog2changelog.py script to ensure git log
format is not influenced by user git configuration. Fixes #487.
2023-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .codespellrc, .github/workflows/windows_tests.yaml: codespell: ignore
additional generated content
2023-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, NEWS.rst: install: allow to build from short-depth git repo Fix
Makefile to allow building Modules from a git repository with short commit
depth. Fixes #486
2023-02-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp: ts: escape shell text output for regexp
enabled tests
* .cirrus.yml: cirrus: tcl-tk homebrew pkg now use default location
2023-02-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/410-timer.exp: ts: fix tests when run with Tcl
9.0
* testsuite/config/base-config.exp: ts: update procedure to allow tests to
fail Provide a way to track tests that are expected to fail. Add failcmd
argument on all test procedure to indicate the fail command to use to report
test failure. Use fail command by default. When using xfail command, it
indicates that test is expected to fail.
2023-02-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/linux_tests.yaml: gh: add new Linux test case for Tcl
9.0
* .github/workflows/linux_tests.yaml: gh: add new Linux test case for Tcl
8.7
* testsuite/modules.70-maint/451-stashpop.exp,
testsuite/modules.70-maint/452-stashrm.exp,
testsuite/modules.70-maint/453-stashshow.exp: ts: fix tests when run with
Tcl 8.7
2023-01-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, .cirrus.yml: cirrus: fix Codecov run on MacOS M1
environment Codecov tool is not available on arm64 platform. Use arch
utility to run x86_64 codecov binary on MacOS M1 virtual machine.
* NEWS.rst, tcl/mfinterp.tcl.in: Fix shell alias translation with fish shell
3.6 A '$argv' string is added in fish 3.6 at the end of shell alias
definition when reported with functions command.
2023-01-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/210-clear.exp: ts: adapt 70/210 test result for
MSYS platform
* NEWS.rst, tcl/subcmd.tcl.in, testsuite/example/siteconfig.tcl-1,
testsuite/modules.61-coll/030-save.exp: Catch collection dir error and
report correct msg Fixes #482
2023-01-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, .cirrus.yml: cirrus: use new macOS images for M1 instead
of Intel
* NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modulefiles.3/foo/1.0,
testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/465-tag-opt.exp: Correctly apply extra tag when
variant not set Correctly apply extra tag set when loading a module whose
variant has no specific value set (default value used). Fixes #484
2022-12-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/cookbook/reduce-io-load.rst: doc: update
reduce-io-load recipe with module cache
* MIGRATING.rst: doc: desc. Module cache in MIGRATING
2022-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst: doc: desc.
limited-access & cache in NEWS/man
2022-12-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
.../045-cache-use-misc-inconsistent.exp: ts: add more cache not in sync
tests in 30/045
2022-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-cache.rst: doc: desc. in design notes when cache
is not in sync
* .../044-cache-use-limited-access-inconsistent.exp: ts: add tests for
inconsistent limited accesses in 30/044
2022-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
.../modules.20-locate/130-mcookie_check_eval.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/330-large-file.exp,
testsuite/modules.70-maint/420-lint.exp,
testsuite/modules.80-deep/080-access-deep.exp: ts: ignore pre-built cache
for tests changing file access
* testsuite/modules.70-maint/120-autoinit.exp: ts: fix shell completion
script file tests in 70/120
* .cirrus.yml, .github/workflows/linux_tests.yaml, script/mt,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/060-build_cache.exp,
.../modules.30-cache/051-cache-buffer-bytes.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.99-finish/999-cleanup.exp: ts: optionally build cache
files to run tests When TESTSUITE_ENABLE_MODULECACHE environment variable
is set, cache file is built for all modulepaths of the testsuite. Tests are
run using the cache files to resolve available modules.
2022-12-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-cache.rst: doc: additional notes on module cache
design
* testsuite/modules.30-cache/010-init_ts.exp,
.../modules.30-cache/043-cache-use-limited-access.exp: ts: add
limited-access hidden module tests in 30/043
2022-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.30-cache/010-init_ts.exp,
testsuite/modules.30-cache/031-cachebuild-full.exp,
.../032-cachebuild-limited-access.exp,
testsuite/modules.30-cache/040-cache-use.exp,
.../043-cache-use-limited-access.exp: ts: add ignored files and dirs in
cache test structure
* .../043-cache-use-limited-access.exp: ts: add tests for limited-access
cache elt resolution in 30/043
2022-12-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.30-cache/040-cache-use.exp: ts: adapt existing tests for
limited-access resolution
* .aspell.en.pws, tcl/cache.tcl.in, tcl/modfind.tcl.in: Resolve limited
access files/dirs when using cache When searching modules through cache
files resolve files and directories marked as limited access. First check
such entries match the search query, then test if these files and
directories can be accessed by current user. The access test relies on the
findModulesFromDirsAndFiles procedure, as if module search was not performed
with cache file, but just for the limited-access entries.
2022-12-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Create findModulesFromDirsAndFiles from findModules
Split code from findModules procedure that walk through a list of files and
directories to find modules. Create a new procedure named
findModulesFromDirsAndFiles for that purpose. This new procedure will be
helpful to resolve limited access files and directories spotted in cache
file.
2022-12-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/cache.tcl.in, tcl/mfinterp.tcl.in: Add limited-access-directory
cachefile command Add limited-access-directory cachefile command to record
all directories with limited access in modulepath.
* tcl/cache.tcl.in, tcl/mfinterp.tcl.in: Add limited-access-file cachefile
command Add limited-access-file cachefile command to record all files with
limited access in modulepath.
2022-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.30-cache/010-init_ts.exp,
.../032-cachebuild-limited-access.exp: ts: add limited-access cachebuild
tests in 30/032
2022-12-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-cache.rst: doc: elaborate limited access in
module cache design
* testsuite/modules.30-cache/031-cachebuild-full.exp: ts: adapt existing
tests now limited access are recorded
* tcl/cache.tcl.in: Register files/dir with limited access in cache When
building cache, check all files and directory within modulepath that have
limited access. Limited access is when user building cache or others cannot
read file or cannot either read or search directory. Limited access file or
directory are recorded in cache file with respectively limited-access-file
and limited-access-directory cachefile commands. Limited access commands
replace modulefile/modulerc definitions in the cache if files or their
parent directory has limited access.
2022-12-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modules.30-cache/052-cache-expiry-secs.exp: ts: add cache_expiry_secs
tests in 30/051
* doc/source/module.rst: doc: desc cache_expiry_secs in man
* INSTALL.rst, NEWS.rst: doc: desc cache_expiry_secs in NEWS/INSTALL
* doc/source/changes.rst, doc/source/design/module-cache.rst: doc: desc
cache_expiry_secs in design/changes
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.30-cache/040-cache-use.exp,
testsuite/modules.70-maint/220-config.exp: ts: test cache_expiry_secs config
option
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add cache_expiry_secs config to completion script
* tcl/cache.tcl.in, tcl/init.tcl.in: Introduce cache_expiry_secs
configuration option Add cache_expiry_secs configuration option to control
after how many seconds (after last modification) to consider cache file
expired and ignore it. Set to 0 by default which means cache file never
expires. Value can vary from 0 to 31536000 which corresponds to the number
of seconds during one year. When configuration option is set, it defies the
MODULES_CACHE_EXPIRY_SECS environment variable.
* .../modules.30-cache/051-cache-buffer-bytes.exp: ts: add
cache_buffer_bytes tests in 30/051
2022-12-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test cache_buffer_bytes
config option
* doc/source/module.rst: doc: desc cache_buffer_bytes in man
* INSTALL.rst, NEWS.rst: doc: desc cache_buffer_bytes in NEWS/INSTALL
* doc/source/changes.rst, doc/source/design/module-cache.rst: doc: desc
cache_buffer_bytes in design/changes
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add cache_buffer_bytes config to completion script
* tcl/cache.tcl.in, tcl/init.tcl.in, tcl/subcmd.tcl.in: Introduce
cache_buffer_bytes configuration option Add cache_buffer_bytes
configuration option to control the buffer size used when reading or writing
cache files. A 32 kbytes buffer is set by default. It can vary from 4 kbytes
to 1 MB. It is useful to have a large buffer when reading or writing large
files to reduce the number or read or write system calls. When
configuration option is set, it defies the MODULES_CACHE_BUFFER_BYTES
environment variable.
2022-12-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.30-cache/040-cache-use.exp,
testsuite/modules.30-cache/041-cache-interp.exp: ts: adapt tests to specific
cache read code
2022-12-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/cache.tcl.in: Add specific proc to read cache file Introduce
readCacheContent procedure to specifically read cache file rather using read
procedure for modulefile. Avoid cache file to be cached in memory. Produce
more specific error message.
2022-12-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.30-cache/050-ignore-cache.exp: ts: add
ignore_cache/--ignore-cache tests in 30/050
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test ignore_cache config
option
* doc/source/module.rst: doc: desc ignore_cache/--ignore-cache in man
* INSTALL.rst, NEWS.rst: doc: desc ignore_cache/--ignore-cache in
NEWS/INSTALL
* doc/source/changes.rst, doc/source/design/module-cache.rst: doc: desc
--ignore-cache/ignore_cache in design/changes
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add ignore_cache/--ignore-cache to comp script
* tcl/cache.tcl.in, tcl/subcmd.tcl.in: Ignore cache file when ignore_cache
enabled Do not check or evaluate cache file if ignore_cache option is
enabled. Use this new option in cachebuild sub-command to ignore cache when
building cache files.
* tcl/init.tcl.in, tcl/main.tcl.in, tcl/report.tcl.in: Add ignore_cache
configuration option Add ignore_cache configuration option that controls
whether or not module cache file should be considered if available. Disabled
by default. When configuration is modified it sets the MODULES_IGNORE_CACHE
environment variable. --ignore-cache command line switch can be used to
enable ignore_cache for the current execution. --ignore_cache is also
supported for compatibility with Lmod.
2022-11-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc cache in man
pages
* NEWS.rst: doc: desc. cache usage work in NEWS
2022-11-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-cache.rst,
testsuite/modules.30-cache/031-cachebuild-full.exp,
testsuite/modules.30-cache/040-cache-use.exp: doc/ts: cache build & use with
module header options
* tcl/subcmd.tcl.in: Enable mcookie_check/mcookie_version_check on
cachebuild Enable both mcookie_check and mcookie_version_check
configuration options when recording cache. These two options are not
honored when building or using cache.
2022-11-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.30-cache/042-cache-error.exp: ts: test erroneous cache
file in 30/042
* tcl/cache.tcl.in: Revert optimization filter tries for
findModulesInCacheFile As the improvement obtained by either of these
optimization methods was not perceptible, they are withdrawn to keep
filtering code simpler. Gain was also not perceptible since the additional
cost taken by cache was not perceptible in the first place.
* tcl/cache.tcl.in: Second optimization filter try for
findModulesInCacheFile As first try is not 100% accurate since it does not
compare element root names. This second attempt first compute the list of
element root names to compare, same lsearch -glob mechanism for comparison.
Then unset elements whose root name has been returned by comparison.
2022-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/cache.tcl.in: Optimize module filtering in findModulesInCacheFile
Increase filtering performance in findModulesInCacheFile: instead of testing
for match each module in cache through modEqStatic, gets all module to
exclude from result at once with lsearch command.
* script/mb, testsuite/modules.30-cache/040-cache-use.exp: script: skip v5.2
from bench/profile in mb Ignore Modules v5.2 when benching or profiling
releases not to get too much results on output.
* script/mb: script: add benchmark tests for cache in mb Add cache version
of avail, whatis and load benchmark tests in mb tool.
* testsuite/modules.30-cache/041-cache-interp.exp: ts: test cache file
interp taint protection
2022-11-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.30-cache/040-cache-use.exp: ts: add cache usage tests in
30/040
2022-11-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/cache.tcl.in, tcl/modfind.tcl.in: Distinguish empty cache result from
no cache result Update structure of result returned by
findModulesInCacheFile to indicate if cache load was successful or not. It
is possible this way to distinguish between a *there is no cache* result and
a *no match in cache* or *empty cache* results.
* tcl/cache.tcl.in: Cache content filer in findModulesInCacheFile Add code
in findModulesInCacheFile to filter fetched cache content to tailor it to
the search query. Proceed following what is done in findModules procedure
but in a reverse order (we remove elements from a full structure, rather we
add elements to an empty structure).
* tcl/report.tcl.in: Set time string as separate arg on reportTimer Avoid
evaluating full message string to replace time pattern by execution time
value. Message could contain string that could be misinterpreted by format
command as time pattern.
2022-11-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/cache.tcl.in: Add modulefile-invalid cachefile command Add
modulefile-invalid cachefile command used to record a invalid modulefile in
modulepath.
* tcl/cache.tcl.in: Add modulerc-content cachefile command Add
modulerc-content cachefile command used to record a modulerc available in
modulepath. Record modulerc information in memory cache variables:
g_modfileContent.
* tcl/cache.tcl.in: Add modulefile-content cachefile command Add
modulefile-content cachefile command used to record a modulefile available
in modulepath. Record modulefile information in memory cache variables:
g_modfileContent and g_fileMtime.
* .aspell.en.pws, tcl/cache.tcl.in, tcl/mfinterp.tcl.in, tcl/report.tcl.in:
Core code for execute-cachefile Add core code for execute-cachefile
procedure. Initialize an interpreter to evaluate the cache file. Reuse the
same mechanisms than for modulefile or modulerc evaluation.
* .aspell.en.pws, tcl/cache.tcl.in, tcl/modfind.tcl.in: Add initial code
structure to evaluate cache file Add call to findModulesInCacheFile
procedure in findModules to retrieve available modulefile and modulerc
information from modulepath cache file. findModulesInCacheFile tests a
cache file is available and evaluate it if not yet done with
execute-cachefile procedure. Cache file information will then be parsed to
return the information matching the search query. Initial code structure is
inserted with this commit. Code for cache file evaluation and cache
information tailoring will come next.
2022-11-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.30-cache/010-init_ts.exp,
testsuite/modules.30-cache/030-cachebuild.exp,
testsuite/modules.30-cache/031-cachebuild-full.exp,
testsuite/modules.30-cache/999-cleanup.exp: ts: add/update cachebuild tests
with real cache file
2022-11-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile, tcl/{cache.tcl => cache.tcl.in}: Add major.minor
version number in cache files Append major.minor version number to the
#%Module header prefix of generated cache files. Cache file can be used only
if generated for the current release of Modules used. Change cache.tcl into
cache.tcl.in to get Modules release number resolved at build time.
2022-11-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/cache.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Core code for
formatModuleCacheContent Implement formatModuleCacheContent procedure.
findModules procedure is first called to get all files from designated
modulepath directory. A cache entry is made for each result obtained from
findModules with cache file commands: modulefile-content, modulerc-content
and modulefile-invalid. Goal is to record all information produced by
findModules to be able to replace findModules processing by cache file
evaluation. Thus modulefile modification time and validity check issues are
recorded in cache file. Modulerc and modulefile content is read and
recorded as-is in cache file. Error occurring during file read is raised and
ends cache file creation.
2022-11-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.30-cache/030-cachebuild.exp: ts: add initial cachebuild
sub-cmd tests
* .aspell.en.pws, tcl/cache.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in: Core
code for cmdModuleCachebuild Implement cachebuild sub-command. For each
modulepath enabled or passed as argument, if modulepath is writable for user
build cache content for this modulepath and record it in cache file. Report
message block is used to report file creation. Reports are output in normal
verbosity level or higher. A warning message is emitted if modulepath is not
writable for user, or if cache content to create is empty. Provide empty
skeleton for formatModuleCacheContent procedure.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.30-cache/010-init_ts.exp,
testsuite/modules.30-cache/020-cacheclear.exp,
testsuite/modules.30-cache/999-cleanup.exp: ts: add cacheclear sub-cmd tests
2022-11-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, tcl/cache.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in: Core code
for cmdModuleCacheclear Implement cacheclear sub-command. For each
modulepath enabled, check module cache file exists. If yes and if modulepath
is writable for user, try to delete the cache file. Report message block is
used to report file deletion. Reports are output in normal verbosity level
or higher. A warning message is emitted if modulepath is not writable for
user. Add tcl/cache.tcl source file to store procedure related to cache
mechanism. Update Makefile to properly generate modulecmd.tcl with this new
tcl file.
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
cacheclear subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/cacheclear,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for cacheclear sub-command
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add cacheclear
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'cacheclear' sub-command Introduce cacheclear sub-command to delete cache
file under modulepaths. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleCacheclear.
Sub-command accepts no option nor argument. Cache files are deleted in every
enabled modulepaths.
* .aspell.en.pws, NEWS.rst, doc/source/design/module-cache.rst: doc: add
module-cache design doc
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
cachebuild subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/cachebuild,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for cachebuild sub-command
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add cachebuild
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'cachebuild' sub-command Introduce cachebuild sub-command to create cache
file under modulepaths. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleCachebuild.
Sub-command accepts no option. It may take optional arguments: list of
modulepath directory where to build cache. When no argument is specified,
cache is built for all enabled modulepaths.
2022-11-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
doc/source/conf.py, version.inc.in: Release of version 5.2.0
2022-11-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst, doc/source/module.rst: doc: extend Collections
desc in module man
2022-11-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst, INSTALL-win.rst, INSTALL.rst,
contrib/vim/syntax/modulefile.vim,
doc/source/cookbook/log-module-commands.rst: doc/vim: update tcl.tk links
into tcl-lang.org
* doc/source/module.rst: doc: desc hooks made with rename in module man
2022-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, MIGRATING.rst: doc: desc. siteconfig hook var in MIGRATING
* MIGRATING.rst: doc: fix path issue in sticky module examples
2022-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst, doc/source/module.rst, siteconfig.tcl: doc: add
Site-specific configuration section in man
2022-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1, testsuite/modulefiles.3/.modulerc,
testsuite/modulefiles.3/interp/.modulerc, testsuite/modulefiles.3/interp/0,
testsuite/modulefiles.3/interp/1, testsuite/modulefiles.3/interp/2,
.../modules.50-cmds/560-siteconfig-interp.exp: ts: test specific vars/cmds
hooks in 50/560
2022-10-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst, doc/source/conf.py: doc: desc. cmds/vars hooks
in NEWS
* siteconfig.tcl, tcl/mfinterp.tcl.in: Add hooks for specific vars/cmds in
modulerc interp ctx Introduce hooks to define specific variables and
commands for modulerc interpreter context. It relies on variables defined in
siteconfig.tcl configuration file: * modulerc_extra_vars is a list of
variable name and value pairs * modulerc_extra_cmds is a list of command
name and procedure pairs Fixes #286
* siteconfig.tcl, tcl/mfinterp.tcl.in: Add hooks for specific vars/cmds in
modulefile interp ctx Introduce hooks to define specific variables and
commands for modulefile interpreter context. It relies on variables defined
in siteconfig.tcl configuration file: * modulefile_extra_vars is a list of
variable name and value pairs * modulefile_extra_cmds is a list of command
name and procedure pairs Fixes #286
2022-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Remove modvr default value on setLoadedModule proc
2022-10-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/025-autoinit.exp,
.../modules.20-locate/130-mcookie_check_eval.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/391-function-undo.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/540-complete.exp,
testsuite/modules.50-cmds/541-uncomplete.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/210-clear.exp: ts: adapt existing tests to
__MODULES_LMREFRESH
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
refresh only modules requiring it
* .aspell.en.pws, NEWS.rst, doc/source/changes.rst, doc/source/module.rst:
doc: desc. __MODULES_LMREFRESH in NEWS/man/changes
* tcl/subcmd.tcl.in: Only refresh loaded modules requiring it Use the
qualified refresh property to only evaluate in refresh mode the loaded
modules marked with this property. Fixes #477
* tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modfind.tcl.in,
tcl/subcmd.tcl.in: Track loaded modules qualified for refresh eval Track
loaded modules that are qualified for a refresh evaluation. Refresh
evaluation is only useful if module defines volatile environment changes:
shell completion, alias or function. An internal state, named
refresh_qualified, marks loading modules defining such volatile environment
changes. Such modules are then added to the __MODULES_LMREFRESH environment
variable to track this property once module is loaded. Code is also added
to remove module from __MODULES_LMREFRESH when it is unloaded.
* .github/workflows/differential_shellcheck.yml,
.github/workflows/lint_tests.yaml, .github/workflows/linux_tests.yaml,
.github/workflows/windows_tests.yaml, CONTRIBUTING.rst, Makefile, NEWS.rst,
README.md, configure, doc/source/conf.py,
doc/source/cookbook/modulefiles-in-git.rst, script/mpub, script/mrel: Use
main as new name for default git branch
2022-10-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: use cygwin-install-action rather
builtin chocolatey Chocolatey version 1.2.0 shipped with latest windows
2022 image does not seem to correctly install packages from Cygwin source.
So move to cygwin/cygwin-install-action to install Cygwin packages.
* Makefile: install: use newer version of nagelfar (1.3.3)
2022-10-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
.../modules.20-locate/112-hide-user-group.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/390-state.exp: ts: fix testsuite run when id cmd
cannot resolve group Update testsuite to cope with user group whose name
cannot be resolved. Fixes #476.
2022-10-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, NEWS.rst, init/Makefile, init/zsh.in, tcl/subcmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Revert "init: setup zsh FPATH
through autoinit command" This reverts commit
59ac24e2431df012d8b22872a0e8fd1e86a20e9f. FPATH variable cannot be handled
within autoinit process as this is not an environment variable. Thus when
modulecmd.tcl is executed, it does not know the current value of FPATH. So
if it sets FPATH during autoinit, previous value of this variable is lost.
As a result FPATH must stay defined in initialization script.
2022-10-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst, doc/example/log-module-commands/siteconfig.tcl,
doc/source/cookbook/log-module-commands.rst: doc: fix logging sys on
log-module-command recipe Update log-module-command recipe to ensure the
logging system is not broken by the current user environment. Fixes #475.
2022-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp: ts: skip basheu tests on bash
5.2 bash -eu test of install testsuite are skipped on new version of bash
(5.2) as internal messages currently appear when using module function with
-eu options on this version. A bug as been submitted to the bash
developers:
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00073.html
2022-10-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/linux_tests.yaml: gh: update to codecov-action v3
* .github/workflows/lint_tests.yaml, .github/workflows/linux_tests.yaml,
.github/workflows/windows_tests.yaml: gh: update actions/upload-artifact to
v3
* .github/workflows/lint_tests.yaml, .github/workflows/linux_tests.yaml,
.github/workflows/windows_tests.yaml: gh: update actions/checkout to v3
* .github/workflows/windows_tests.yaml: gh: move windows tests to
windows-2022 image
2022-10-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/210-clear.exp: ts: fix env of clear subcmd test
case
* Makefile: install: correct arg order for date cmd on FreeBSD
2022-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. stash env in MIGRATING
2022-10-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc stash in collection section of man page
* testsuite/modules.70-maint/457-stash-savelist.exp: ts: test savelist
subcmd with stash collections
2022-10-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/stash-environment.rst, doc/source/module.rst:
doc: desc. savelist stash filter in design/NEWS/man doc
* tcl/subcmd.tcl.in: Filter stash collection on savelist Update savelist
sub-command to filter out stash collections unless --all option is set.
* testsuite/modules.70-maint/456-stash-restore.exp: ts: test restore subcmd
with stash collections
2022-10-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: update completion with stashlist output
Update stashpop, stashrm and stashshow completion definition to use
stashlist output.
2022-10-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clear
MODULES_QUARANTINE_SUPPORT prior tests
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/455-stashlist.exp: ts: add stashlist sub-cmd
tests
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/021-savelist-search.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/350-term_width.exp: ts: add helper procs for
collection list header msgs
2022-10-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Core code for cmdModuleStashlist Implement 'stashlist'
sub-command. Rely on cmdModuleSavelist but adapt this procedure to make
several behavior changes when called by cmdModuleStashlist: * elements are
sorted in reverse order * element index starts at 0 * when no collection
target set, only return collection without a target set
2022-10-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/report.tcl.in, tcl/subcmd.tcl.in, tcl/util.tcl: Add getCallingProcName
util proc Return name of calling procedure with getCallingProcName.
* tcl/report.tcl.in, tcl/subcmd.tcl.in, testsuite/example/siteconfig.tcl-1:
Add start_idx argument on displayElementList Add start_idx argument on
displayElementList procedure to define what is the starting index for the
elements to report.
2022-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
stashlist subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/stashlist,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for stashlist sub-command
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashlist
subcmd to completion scripts
2022-09-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'stashlist' sub-command Introduce stashlist sub-command to list stash
collection file. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleStashlist.
Sub-command accepts no argument. It accepts --terse, --long and --json
options.
* .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
stashlist in stash-environment design doc
2022-09-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp,
testsuite/modules.70-maint/454-stashclear.exp: ts: add stashclear sub-cmd
tests
* tcl/subcmd.tcl.in: Core code for cmdModuleStashclear Implement
'stashclear' sub-command. Fetch all existing stash collection for current
collection target. Then call 'saverm' sub-command over all of these
collection obtained.
2022-09-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/modbad/stashclear,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for stashclear subcmd
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
stashclear subcmd in NEWS/man/changes
2022-09-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashclear
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'stashclear' sub-command Introduce stashclear sub-command to delete all
stash collection file. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleStashclear.
Sub-command accepts no argument nor option.
* .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
stashclear in stash-environment design doc
* testsuite/modules.00-init/005-init_ts.exp: ts: accept version name with
'/' char
* testsuite/modules.70-maint/453-stashshow.exp: ts: add stashshow sub-cmd
tests
* tcl/subcmd.tcl.in: Core code for cmdModuleStashshow Implement 'stashshow'
sub-command. Parse stash argument to get corresponding collection, then call
saveshow over this collection name.
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
stashshow subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/stashshow,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for stashshow sub-command
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashshow
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'stashshow' sub-command Introduce stashshow sub-command to display stash
collection file. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleStashshow.
Sub-command accepts no option. It may take an optional argument: the index
of the stash collection to display or the name of the stash collection. If
no argument is provided, stash collection 0 is assumed.
* .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
stashshow in stash-environment design doc
* testsuite/config/base-config.exp,
testsuite/modules.70-maint/452-stashrm.exp: ts: add stashrm sub-cmd tests
2022-09-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Core code for cmdModuleStashrm Implement 'stashrm'
sub-command. Parse stash argument to get corresponding collection, then call
saverm over this collection name.
* tcl/coll.tcl.in, tcl/subcmd.tcl.in: Move collection resolution from stash
in dedicated proc Move collection name resolution from stash name from
cmdModuleStashpop into getCollectionFromStash procedure.
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
stashrm subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/stashrm,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for stashrm sub-command
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashrm
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'stashrm' sub-command Introduce stashrm sub-command to delete stash
collection file. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleStashrm.
Sub-command accepts no option. It may take an optional argument: the index
of the stash collection to delete or the name of the stash collection. If no
argument is provided, stash collection 0 is assumed.
* .aspell.en.pws, doc/source/design/stash-environment.rst: doc: desc.
stashrm in stash-environment design doc
2022-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/451-stashpop.exp: ts: add stashpop sub-cmd tests
* tcl/subcmd.tcl.in: Core code for cmdModuleStashpop Implement 'stashpop'
sub-command. First parse stash argument to determine corresponding stash
collection name or raise an error if stash value is invalid. Then restore
stash collection. Afterward delete stash collection.
2022-09-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in: Add no_other_target option to findCollections Add
no_other_target option to findCollections procedure to filter when glob
searching the result from other target. Especially useful when collections
for specific targets exist but no target is currently set in user
environment. This no_other_target is disabled by default. savelist
sub-command currently returns other targets when no target is set. But the
option will be enabled for stashpop, to ensure that the popped collection is
from the current target or from the *no target* if none set.
2022-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
stashpop subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/stashpop,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for stashpop sub-command
* doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add stashpop
test/doc on 'module-info command'
* doc/source/design/stash-environment.rst: doc: desc. stashpop in
stash-environment design doc
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stashpop
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'stashpop' sub-command Introduce stashpop sub-command to restore a stash
collection then delete it. This sub-command cannot be called from a
modulefile evaluation context. Add sub-command empty skeleton:
cmdModuleStashpop. Sub-command accepts no option. It may take an optional
argument: the index of the stash collection to restore or the name of the
stash collection. If no argument is provided, stash collection 0 is assumed.
2022-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp, testsuite/modulefiles.3/foo/.modulerc,
testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/450-stash.exp: ts: add stash sub-cmd tests
2022-09-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/030-save.exp: ts: move unsatisfied constraint msg
to init section
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/030-save.exp: ts: move nothing to save err msg in
init section
2022-09-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp: ts: put coll not valid msg in a
proc
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/440-reset.exp: ts: put coll not found msg in a
proc
2022-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Fix init property unserialization Update
getLoadedModulePropertyList to apply unserialization translation map also
for property not requiring sub-element split, like init.
2022-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Core code for cmdModuleStash Implement stash
sub-command. First check that a difference exists between current
environment and initial one. If so, save current environment in a
collection, then reset to initial environment.
2022-09-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in, tcl/subcmd.tcl.in: Reword findCollections to swap default
coll by __init__ Update findCollections procedure to add swap_by_init
argument, disabled by default. When enabled if specified collection is not
found, change it to __init__. Helps to remove duplicate code from
cmdModuleSaveshow and cmdModuleRestore.
2022-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in, tcl/subcmd.tcl.in: Return is_tags_diff from
getDiffBetweenCurEnvAndColl Update getDiffBetweenCurEnvAndColl to also
return is_tags_diff information. is_tags_diff indicates if loaded modules
that matches modules in collection have different tags set.
* tcl/util.tcl: Add unordered_lists_compared arg on getDiffBetweenArray
Update getDiffBetweenArray procedure to add unordered_lists_compared
argument (disabled by default). When enabled, array elements are considered
unordered list, so value comparison is adapted to check differences between
two lists.
* tcl/util.tcl, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: Add notset_equals_empty arg to
getDiffBetweenArray Update getDiffBetweenArray procedure to add
notset_equals_empty argument (disabled by default). When enabled not-set
element in array is equivalent to element set to an empty value.
2022-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in, tcl/subcmd.tcl.in: Create getDiffBetweenCurEnvAndColl
from cmdModuleRestore Create getDiffBetweenCurEnvAndColl procedure from
code of cmdModuleRestore to analyze a collection content and produce
differences compared to current environment.
2022-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. stash
subcmd in NEWS/man/changes
* testsuite/modulefiles.3/modbad/stash,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: adapt existing
testfiles for stash sub-command
* doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.61-coll/030-save.exp: ts/doc: add stash test/doc on
'module-info command'
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add stash
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'stash' sub-command Introduce stash sub-command to save current environment
and restore initial one. This sub-command cannot be called from a
modulefile evaluation context. Add sub-command empty skeleton:
cmdModuleStash. Sub-command accepts no argument nor option.
* .aspell.en.pws, doc/source/design/initial-environment.rst,
doc/source/design/stash-environment.rst: doc: add stash-environment design
doc
2022-09-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: test FreeBSD 13.1 instead of eol 13.0
2022-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/lint.00-init/005-init_ts.exp: ts: do not lint lib/config.guess
generated file
* .aspell.en.pws, NEWS.rst, testsuite/lint.00-init/005-init_ts.exp: ts:
temporarily ignore remaining shellcheck reports Make 'mt lint' pass with
remaining shellcheck reports on sh, bash and ksh scripts. Waiting for
another contribution to fix the remaining warnings and notices. Related:
#470
* NEWS.rst, init/profile.sh.in: init: only source sh or bash init if BASH
var is set Update profile script for sh-like shells to only source sh or
bash initialization script when BASH environment variable is found set.
Fixes #473
2022-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst, NEWS.rst: doc: desc. script/mb in CONTRIBUTING
2022-09-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst: doc: desc lint testsuite in CONTRIBUTING
* .aspell.en.pws, CONTRIBUTING.rst: doc: desc. script/mt utility in
CONTRIBUTING
* CONTRIBUTING.rst: doc: desc. quick testsuite mode in CONTRIBUTING
2022-09-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Update
autoinit sh code to fix SC2166/SC2086 Apply on auto-generated autoinit code
for sh-kind shells the same changes than initialization scripts to fix the
SC2166 and SC2086 issues reported by ShellCheck linter. Autoinit generated
code is thus kept in line with initialization script code.
2022-08-31 Lukáš Zaoral <lzaoral@redhat.com>
* configure: lint(ShellCheck): fix SC2163 warning According to ShellCheck's
documentation: export takes a variable name, but ShellCheck has noticed
that you give it an expanded variable instead. Remove $/${} for that, or
use ${var?} to quiet. Related: https://www.shellcheck.net/wiki/SC2163
Related: #470
* init/profile.sh.in, script/add.modules.in, script/mkroot:
lint(ShellCheck): fix SC2046 warning According to ShellCheck's
documentation: When command expansions are unquoted, word splitting and
globbing will occur. This often manifests itself by breaking when filenames
contain spaces. Related: https://www.shellcheck.net/wiki/SC2046 Related:
#470
* configure, .../example-sessions/bar-defaults.sh,
.../example-sessions/bar-loads.sh, .../example-sessions/bar-switch.sh,
.../example-sessions/foo-avail1.sh, .../example-sessions/foo-avail2.sh,
.../example-sessions/foo-defaults.sh, .../example-sessions/foo-loads.sh,
.../example-sessions/foo-switch.sh, .../example-sessions/modavail.sh,
.../example-sessions/modversion.sh, .../example-sessions/ompi-defaults.sh,
.../example-sessions/ompi-loads1.sh, .../example-sessions/ompi-switch.sh,
.../example-sessions/ompi-switch.sh.m431, init/bash.in,
init/bash_completion.in, init/ksh.in, init/sh.in, script/add.modules.in,
script/commit-msg, script/envml, script/mkroot, script/mt,
script/pre-commit, testsuite/bin/install_test_sh, testsuite/systest:
lint(ShellCheck): fix SC2086 info diagnostic Some variables, that were
unquoted intentionally were converted to arrays. According to ShellCheck's
documentation: Quoting variables prevents word splitting and glob
expansion, and prevents the script from breaking when input contains spaces,
line feeds, glob characters and such. Related:
https://www.shellcheck.net/wiki/SC2086 Related: #470
* configure, doc/example/source-script-in-modulefile/bar-2.1/bar-setup.sh,
doc/example/source-script-in-modulefile/foo-1.2/foo-setup.sh:
lint(ShellCheck): fix SC2155 warning According to ShellCheck's
documentation: In the original code, the return value of mycmd in $(mycmd)
is ignored, and export will instead always return true. This may prevent
conditionals, set -e and traps from working correctly. Related:
https://www.shellcheck.net/wiki/SC2155 Related: #470
2022-08-26 Lukáš Zaoral <lzaoral@redhat.com>
* doc/example/source-script-in-modulefile/bar-2.1/bar-setup.sh,
doc/example/source-script-in-modulefile/foo-1.2/foo-setup.sh:
lint(ShellCheck): fix SC2128 warning These occurrences do not cause any
problems described below but it's better to be verbose that we indeed want
to access the first array element. According to ShellCheck's documentation:
When referencing arrays, $myarray is equivalent to ${myarray[0]} -- it
results in only the first of multiple elements. Related:
https://www.shellcheck.net/wiki/SC2128 Related: #470
* script/envml, testsuite/cmd.exe: lint(ShellCheck): fix SC2048 warning
According to ShellCheck's documentation: Use "$@" (with quotes) to prevent
whitespace problems. $* and ${array[*]}, unquoted, is subject to word
splitting and globbing. Related: https://www.shellcheck.net/wiki/SC2048
Related: #470
* init/bash_completion.in: lint(ShellCheck): fix SC2178 warning These
occurrences do not seem to cause any problems described below but let's
still fix it for the sake of consistency within this script. According to
ShellCheck's documentation: ShellCheck noticed that you have used a
variable as an array, but then assign it a string. array=foo is equivalent
to array[0]=foo, and leaves the rest of the elements unaffected. Related:
https://www.shellcheck.net/wiki/SC2178 Related: #470
2022-08-25 Lukáš Zaoral <lzaoral@redhat.com>
* configure, init/bash.in, init/bash_completion.in, init/ksh.in, init/sh.in,
script/envml, testsuite/bin/install_test_sh: lint(ShellCheck): fix SC2166
warning According to ShellCheck's documentation: -a and -o in [ .. ] test
expressions are not well defined, and can cause incorrect results when
arguments start with dashes or contain !. Related:
https://www.shellcheck.net/wiki/SC2166 Related: #470
* init/bash_completion.in: lint(ShellCheck): fix SC1035 error According to
ShellCheck's documentation: Bourne shells are very whitespace sensitive.
Adding or removing spaces can drastically alter the meaning of a script.
Related: https://www.shellcheck.net/wiki/SC1035 Related: #470
* script/envml, script/mt: lint(ShellCheck): fix SC2068 error According to
ShellCheck's documentation: Double quotes around $@ and ${array[@]})
prevent globbing and word splitting of individual elements, while still
expanding to multiple separate arguments. Related:
https://www.shellcheck.net/wiki/SC2068 Related: #470
* doc/example/compiler-etc-dependencies/example-sessions/common_code.sh,
init/bash.in, init/bash_completion.in, init/ksh.in, init/profile.sh.in,
init/sh.in: lint(ShellCheck): fix SC2148 error According to ShellCheck's
documentation: Different shells support different features. To give
effective advice, ShellCheck needs to know which shell your script is going
to run on. Related: https://www.shellcheck.net/wiki/SC2148 Related: #470
* init/bash.in, init/ksh.in, init/sh.in: init: add vim modeline to {,b,k}sh
scripts ... to enable correct syntax highlighting.
2022-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst: doc: desc. usage and --help work for scripts in
NEWS
* script/mtreview: script: add usage msg and --help option on mtreview
* script/mlprof: script: add usage msg and --help option on mlprof
* script/mt: script: add usage msg and --help option on mt
2022-08-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp: ts: accept version name with
'_' char
* script/mb: script: keep old releases among benched versions in mb Update
mb script to skip several releases and be able to run bench or profiling on
old and recent releases. Versions 4.1, 4.3, 4.5, 4.7 and 5.1 are retained
for bench mode. 4.5, 4.7 and 5.1 are retained for profile mode.
* script/mb: script: add usage msg and --help option on mb
* script/mrel: script: add usage msg and --help option on mrel
* script/mpub: script: add usage msg and --help option on mpub
2022-08-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in,
tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modfind.tcl.in, tcl/modspec.tcl,
tcl/report.tcl.in, tcl/subcmd.tcl.in,
testsuite/lint.00-init/005-init_ts.exp: Fix notices reported by linter on
tcl source files All linter reports are now fixed. Remove specific linter
rule for modulecmd.tcl in lint testsuite.
* .aspell.en.pws, .github/workflows/linux_tests.yaml: gh: migrate linux
tests to ubuntu-20.04 ubuntu-18.04 is being deprecated and will be removed
in a few weeks. For Tcl 8.5 jobs, the Tcl version has to be deployed
manually.
* tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in,
tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in:
Fix too long line issues on Tcl source files
* .github/workflows/lint_tests.yaml: gh: add lint-tests workflow
* tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in,
tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in:
Fix warnings reported by linter on tcl source files
2022-08-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modspec.tcl,
tcl/report.tcl.in, tcl/subcmd.tcl.in, tcl/util.tcl: Fix errors reported by
linter on tcl source files Use Nagelfar comments to help linter to
correctly understand dynamic aspects of the code.
* init/tcl.in: init: fix too long line issues in tcl
* script/mb, script/mrel, script/nglfar2ccov: script: fix too long line
issues in mb/mrel/nglfar2ccov
* script/mlprof, script/mrel, script/mtreview: script: fix lint issues on
mrel/mlprof/mtreview
* testsuite/lint.00-init/030-tcl.exp: ts: add tcl script lint tests
* Makefile: Remove testsyntax Makefile target testsyntax Makefile target is
removed. testlint testsuite has to be used instead.
* testsuite/lint.00-init/022-ksh.exp: ts: add ksh script lint tests
* testsuite/lint.00-init/021-bash.exp: ts: add bash script lint tests
* testsuite/lint.00-init/020-sh.exp: ts: add sh script lint tests
* .aspell.en.pws, .gitignore, Makefile, NEWS.rst, script/mt,
testsuite/config/unix.exp, testsuite/lint.00-init/005-init_ts.exp,
testsuite/lint.00-init/006-procs.exp,
testsuite/lint.00-init/011-save_test_env.exp: ts: add lint testsuite
2022-08-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/readme.txt, contrib/scripts/resetenv, contrib/scripts/resetgnome,
contrib/template/.aliases, contrib/template/.bash_profile,
contrib/template/.bashrc, contrib/template/.cshrc,
contrib/template/.fvwm2rc, contrib/template/.login,
contrib/template/.logout, contrib/template/.mailcap,
contrib/template/.mime.types, contrib/template/README.dotfiles,
contrib/template/resetenv.conf: contrib: remove unmaintained template/script
content Remove the contrib template and scripts files as they are not
maintained since a long time in this repository and seem to be deprecated.
2022-08-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc initial environment in MIGRATING
2022-08-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst: doc: fix changed/new features dispatch in changes
doc
2022-08-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/initial-environment.rst,
doc/source/design/module-tags.rst, doc/source/design/sticky-modules.rst:
doc: desc. sticky unload on restore in design notes
* doc/source/changes.rst: doc: use bullet list for concise desc. in change
doc
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. sticky
unload on restore in NEWS/man/changes
2022-08-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.70-maint/440-reset.exp: ts: adapt existing tests for
sticky unload on restore
* tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Allow unload of sticky modules on
restore sub-cmd Allow the unload of sticky modules when restoring
collection. Goal is to be able to restore designated collection as it was
saved, thus without the loaded sticky modules. If such collections were
saved without the sticky modules in it, it means that these sticky modules
can safely be unloaded when moving to the collection state. As a result,
using the --force option is of no use for restore sub-command. This change
does not impact super-sticky modules. Such modules cannot be unloaded during
a restore, even if forced. With this change, behavior of restore
sub-command with sticky modules is aligned with Lmod.
2022-08-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/initial-environment.rst: doc: add
initial-environment design notes
2022-08-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/440-reset.exp: ts: add reset_target_state tests
in 70/440
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
reset_target_state in NEWS/man/changes
2022-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test reset_target_state
config option
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add reset_target_state config to completion script
* tcl/init.tcl.in, tcl/subcmd.tcl.in: Add reset_target_state configuration
option Add reset_target_state configuration option that defines the
environment state restored by the reset sub-command. Equals __init__ by
default, which means reset restore the initial environment by default.
Other valid values are __purge__, which means target state is purged
environment, and any existing collection name.
2022-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
testsuite/modules.61-coll/060-saveshow.exp: doc: desc module saveshow when
no default in NEWS/man/changes
* testsuite/modules.61-coll/060-saveshow.exp: ts: update/add tests for
'module saveshow' behavior
* tcl/subcmd.tcl.in: Show initial env when no default collection exists
Update saveshow sub-command to display initial environment when no specific
collection is asked and default collection does not exist.
* testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
ts: test 'module restore' without arg in initrc
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc module
restore when no default in NEWS/man/changes
* testsuite/modules.61-coll/040-restore.exp: ts: update/add tests for
'module restore' behavior
* tcl/subcmd.tcl.in: Restore initial env when no default collection exists
Update restore sub-command to restore initial environment when no specific
collection is asked and default collection does not exist.
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. module
restore __init__ in NEWS/man/changes
* testsuite/modules.70-maint/310-sh-to-mod.exp: ts: fix binpath add
detection in 70/310
* tcl/main.tcl.in, tcl/report.tcl.in: Same special treatment for reset than
restore subcmd Reports loads/unloads like restore sub-command. No auto
unload of modules if auto_handling is disabled.
* testsuite/modulefiles.3/reset/1, testsuite/modulefiles.3/reset/2,
testsuite/modules.70-maint/440-reset.exp: ts: add auto unload test during
reset sub-cmd in 70/440
2022-08-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/440-reset.exp: ts: add restore __init__ tests
in 70/440
* testsuite/example/initrc.in, testsuite/modulefiles.3/foo/.modulerc,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/440-reset.exp: ts: add reset sub-cmd tests
2022-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/initrc.in, testsuite/modulefiles.3/variant/1.0,
testsuite/modules.70-maint/120-autoinit.exp: ts: add autoinit tests for
__MODULES_LMINIT
* testsuite/modules.70-maint/210-clear.exp: ts: add clear tests for
__MODULES_LMINIT
* .github/workflows/linux_tests.yaml: gh: add missing xrdb tool to test
x-resource on bionic
* testsuite/modules.00-init/005-init_ts.exp: ts: add X11 setup state info to
test log
2022-08-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: adapt autoinit tests for
__MODULES_LMINIT Fix several issues in 70/120 test case on the way.
* .aspell.en.pws, tcl/coll.tcl.in, tcl/modfind.tcl.in, tcl/subcmd.tcl.in:
Core code for cmdModuleReset Implement reset sub-command as a 'module
restore __init__'. Where __init__ designates the virtual init collection
made of the initial environment state described in __MODULES_LMINIT.
readCollectionContent has been split to create parseCollectionContent
procedure which analyzes collection content passed as argument. When
__init__ collection is designated, cmdModuleRestore do not check collection
files but parseCollectionContent based on value fetched from
__MODULES_LMINIT environment variable.
* testsuite/modulefiles.3/modbad/reset,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp: ts: add tests for
mod-to-sh sub-command
* doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add reset
test/doc on 'module-info command'
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. reset
subcmd in NEWS/man/changes
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add
'reset' sub-command Introduce reset sub-command to restore initial
environment state. This sub-command cannot be called from a modulefile
evaluation context. Add sub-command empty skeleton: cmdModuleReset.
Sub-command accepts no argument nor option.
2022-08-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add reset
subcmd to completion scripts
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
__MODULES_LMINIT in NEWS/man/changes
* .aspell.en.pws, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record init state
in __MODULES_LMINIT During the autoinit sub-command, record the initial
loaded state (state obtained after evaluating modulespath and initrc
initialization files) in the __MODULES_LMINIT environment variable. The
initial loaded state is formed as a collection content, describing the
enabled modulepaths and the loaded modules with the tags applied to these
modules. __MODULES_LMINIT is a colon-separated list. Each entry
corresponding to a 'module use' or 'module load' collection line.
2022-08-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
tcl/modfind.tcl.in, tcl/subcmd.tcl.in,
testsuite/modules.00-init/120-siteconfig.exp: Fetch loaded mod props with
getLoadedModulePropertyList Create the getLoadedModulePropertyList
procedure to fetch the different loaded module properties.
getLoadedModulePropertyList replaces the specific procedure used for each
property kind.
2022-08-24 Jan Macku <jamacku@redhat.com>
* .github/workflows/differential_shellcheck.yml: ci(lint): add shell linter
- Differential ShellCheck It performs differential ShellCheck scans and
report results directly in pull request. documentation:
https://github.com/redhat-plumbers-in-action/differential-shellcheck
2022-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/modulefile.rst: doc: add shell support section in
modulefile man
2022-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md, doc/source/changes.rst, doc/source/index.rst,
doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing ref to
cmd shell support
2022-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc changes on --all/--force options in man
* doc/source/module.rst: doc: reword --auto/--no-auto option desc. in man
--auto and --no-auto options are global to all sub-commands evaluating
modulefile in load or unload mode. Rewrite the description of these option
in module(1) man not to update them each time a new load or unload
sub-command is introduced (as --auto and --no-auto are not changed).
* testsuite/modules.61-coll/021-savelist-search.exp: ts: add savelist --all
tests
2022-08-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. --all
option on savelist in NEWS/man/changes
* tcl/coll.tcl.in, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in:
List coll from any target with --all opt on savelist Add support for --all
command-line option for savelist sub-command. When set, all collections are
reported and not only those for currently defined collection target.
2022-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, tcl/subcmd.tcl.in, testsuite/modules.00-init/140-color.exp:
Highlight all savelist subcmd search patterns Refactor on the way a little
bit cmdModuleSavelist.
* NEWS.rst, tcl/report.tcl.in, tcl/subcmd.tcl.in,
testsuite/modules.00-init/140-color.exp: Highlight all list subcmd search
patterns
* testsuite/modules.61-coll/021-savelist-search.exp,
testsuite/modules.70-maint/290-json.exp: ts: test pattern search on savelist
sub-cmd
2022-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
savelist filtering in NEWS/changes/man
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/350-term_width.exp: ts: adapt existing tests now
savelist accepts args
* tcl/init.tcl.in, tcl/subcmd.tcl.in: Add search capabilities to savelist
subcmd When one or multiple strings are passed to the savelist sub-command,
only output the collections that match at least one of this string (OR
operation). Sub-command header message is adapted when strings are passed
to the sub-command. However same header message is reported if there is no
saved collection to report from the start. Search capabilities rely on the
modEq comparison procedure, so it takes into account the search_match mode
(starts-with/contains) and the insensitive case search mode. Icase mode is
set to search by default for savelist sub-command.
* tcl/subcmd.tcl.in: Use coll name/file array rather list in
cmdModuleSavelist
2022-08-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow search match
option on savelist subcmd Allow to pass the search match options (-S/-C) to
the savelist sub-command.
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow collection
name as argument to savelist subcmd Allow the savelist sub-command to
receive collection name as argument.
2022-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modspec.tcl, tcl/subcmd.tcl.in: Unset mod spec on source subcmd if
file exists In case module specification corresponds to a full path name
file, unset parsed module specification on source sub-command. It is done
not to confuse specific character in file path name (like '+') with module
variant specification.
2022-07-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/modulefile.rst: doc: clarify set-alias only define
shell alias
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/170-cwd.exp,
testsuite/modules.70-maint/090-source.exp: ts: add avail modfile source
tests in 70/090
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. arg
update on source subcmd in changes/man/news
* tcl/main.tcl.in, tcl/subcmd.tcl.in: Allow module to be specified on source
subcmd Update source sub-command to accept module specification as
argument. File path stay the main specification kind. Which means if a file
foo/1.0 exists, this file is sourced and not the modulefile foo/1.0 in
enabled modulepath. Fixes #424.
2022-08-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modspec.tcl: Record raw arg with parsed module spec Update module
specification parsing to record the raw argument translated by specification
analysis. Add getRawArgumentFromVersSpec procedure to fetch this raw spec
from recorded analyzed module specification.
2022-07-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in:
Check state is defined before unset in unsetState
* testsuite/config/base-config.exp, testsuite/modulefiles.3/mod-to-sh/1.0,
testsuite/modulefiles.3/mod-to-sh/1.1,
testsuite/modulefiles.3/mod-to-sh/2.0,
testsuite/modulefiles.3/modbad/mod-to-sh,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/430-mod-to-sh.exp: ts: add tests for mod-to-sh
sub-command
2022-07-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc mod-to-sh in NEWS/MIGRATING
2022-07-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. mod-to-sh subcmd in module man
* NEWS.rst, doc/source/module.rst: doc: fix subcmd list using
--auto/--no-auto/--force opts
* doc/source/design/add-new-config-option.rst,
doc/source/design/add-new-sub-command.rst,
.../design/advanced-module-version-specifiers.rst,
doc/source/design/control-mode-behaviors.rst,
.../design/default-latest-version-specifiers.rst,
doc/source/design/extended-default.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/insensitive-case.rst,
doc/source/design/lmod-tcl-modulefile-compat.rst,
doc/source/design/module-selection-contexts.rst,
doc/source/design/module-tags.rst,
doc/source/design/output-configuration.rst,
.../design/source-shell-script-in-modulefile.rst,
doc/source/design/sticky-modules.rst, doc/source/design/variants.rst: doc:
fix indent in design documents
* doc/source/design/add-new-config-option.rst,
doc/source/design/add-new-sub-command.rst,
doc/source/design/advanced-module-version-specifiers.rst,
doc/source/design/control-mode-behaviors.rst,
doc/source/design/default-latest-version-specifiers.rst,
doc/source/design/extended-default.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/insensitive-case.rst,
doc/source/design/lint-sub-command.rst,
doc/source/design/lmod-tcl-modulefile-compat.rst,
doc/source/design/magic-cookie-check.rst,
doc/source/design/module-selection-contexts.rst,
doc/source/design/module-tags.rst,
doc/source/design/output-configuration.rst,
doc/source/design/shell-completion.rst,
doc/source/design/source-shell-script-in-modulefile.rst,
doc/source/design/sticky-modules.rst, doc/source/design/variants.rst: doc:
add vim settings at end of design documents
* .aspell.en.pws, doc/source/cookbook/compiler-etc-dependencies.rst,
doc/source/cookbook/ensure-user-qualify-modules.rst,
doc/source/cookbook/expose-procs-vars-to-modulefiles.rst,
doc/source/cookbook/hide-and-forbid-modules.rst,
doc/source/cookbook/inhibit-report-info.rst,
doc/source/cookbook/log-module-commands.rst,
doc/source/cookbook/module-info-name-return-basename.rst,
doc/source/cookbook/modulefiles-in-git.rst,
doc/source/cookbook/modulepaths-persist-over-sudo.rst,
doc/source/cookbook/new-features-without-breaking-old-module.rst,
doc/source/cookbook/reduce-io-load.rst,
doc/source/cookbook/source-script-in-modulefile.rst,
doc/source/cookbook/sticky-modules.rst,
doc/source/cookbook/test-modulefiles.rst,
doc/source/cookbook/tips-for-code-reuse.rst,
doc/source/cookbook/top-priority-values.rst,
doc/source/cookbook/unload-firstly-loaded.rst: doc: add vim settings at end
of cookbook documents
* doc/source/cookbook/tips-for-code-reuse.rst: doc: fix trailing wspace &
list ident in tips-for-code-reuse
2022-07-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/mod-to-sh-sub-command.rst: doc: add mod-to-sh
subcmd design notes
* NEWS.rst: doc: desc. lint-sub-command design notes in NEWS
2022-07-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/280-ml.exp: ts: update clear subcmd tests as only
set vars are unset
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.70-maint/070-display.exp: ts: adapt existing tests to new
shelltype state setup
* tcl/subcmd.tcl.in: Silence message report on mod-to-sh subcmd When
performing a mod-to-sh sub-command make message report silent not to mix
these messages with the produced shell code that will be output on the
message channel. If a debugging verbosity is defined (trace mode or above),
message report is left as is.
* tcl/envmngt.tcl.in: Filter Modules-specific env var from mod-to-sh result
When running modulefile evaluation for mod-to-sh sub-command, removes all
Modules-specific environment variable from result to only report the
environment changes done by modulefile, not the Modules load context.
2022-07-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Get list of Modules-specific env
var in glob form Add getModulesEnvVarGlobList procedure to get all
Modules-specific environment variable in glob form. Update clear and state
sub-command to rely on this procedure. With this change clear sub-command
only unset Modules-specific environment variables that are set.
* NEWS.rst, tcl/subcmd.tcl.in: Clear pushenv stacks on clear subcmd
* tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Core code for cmdModuleModToSh Add
code for mod-to-sh sub-command. Introduce modtosh_real_shell shell to save
evaluation shell set for modulecmd.tcl. Then shell set for mod-to-sh is set
as target shell for shell code production. Modulefiles specified are loaded
through cmdModuleLoad. Generated shell code is then sent to the report
message channel (stderr) by renderSettings. Shell code is then cleared and
modulecmd.tcl evaluation shell is restored to get final evaluation status on
regular shell code output channel (stdout).
* tcl/envmngt.tcl.in, tcl/main.tcl.in: Rename cleanupAndExit into
flushAndExit
* tcl/envmngt.tcl.in, tcl/init.tcl.in, tcl/main.tcl.in: Deduce shelltype
state value from shell state Add initStateShellType procedure to set
shelltype state when first retrieving its value (with getState). shelltype
is set based on value set for shell state.
2022-07-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/report.tcl.in: Move report msg flush in dedicated
proc Create reportFlush, procedure that output the final report messages,
flush the message channel and close it. Make cleanupAndExit procedure call
reportFlush rather implementing these actions locally.
* tcl/envmngt.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in: Output produced
shell code in one puts call Instead of outputting shell code to sdtout for
each line, collect all produced shell code in a list variable (g_shcode_out)
and output all the code in a single puts call at the end of module command
execution. Create a specific renderFlush procedure to make the puts to
stdout as output could occur after renderSettings but also after
reportErrorAndExit and the exit catch branch in the main procedure.
renderFlush is called in cleanupAndExit procedure, as it is always run in
the end of the execution whatever if everything goes well or if error
occurs. Code of the putsModfileCmd procedure is also adapted to build list
of message to output to stdout with a flag to know if end-of-line should be
added at end of message. Previously this procedure was listing arguments to
directly pass to puts calls.
2022-07-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst, testsuite/modulefiles/info/command,
testsuite/modulefiles/info/commandexp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add mod-to-sh
test/doc on 'module-info command'
2022-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/add-new-sub-command.rst, doc/source/modulefile.rst: doc:
desc. subcmd in modulefile(4) if avail from this ctx
* doc/source/changes.rst: doc: desc. mod-to-sh in changes
* doc/source/design/add-new-sub-command.rst: doc: add subcmd to linter db if
callable from modfile
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add mod-to-sh
subcmd to completion scripts
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Add 'mod-to-sh'
sub-command Introduce mod-to-sh sub-command to output shell code
corresponding to the environment changes of designated modulefiles. This
sub-command cannot be called from a modulefile evaluation context. Add
sub-command empty skeleton: cmdModuleModToSh. Sub-command accepts --icase,
--auto/--no-auto and --force options. Fixes #447.
* CONTRIBUTING.rst: doc: fix misplaced anchor in CONTRIBUTING
2022-07-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, Makefile, NEWS.rst, doc/Makefile, init/Makefile: install:
use install rather mkdir or cp Use install command rather mkdir or cp to
apply regular file mode when installing Modules. A specific umask
configuration set in the current environment will not impact modes set on
installed files. Follow same approach than Makefiles generated by
autotools, with an INSTALL Makefile variable.
2022-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, MIGRATING.rst: doc: desc. lint subcmd and options in
MIGRATING Closes #451.
2022-07-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. lint subcmd and options in NEWS
* Makefile, tcl/subcmd.tcl.in: Disable nagelfar syntaxdb/plugin usage if
addons disabled
* .aspell.en.pws, doc/source/design/lint-sub-command.rst: doc: desc. lint
subcmd in design
2022-07-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: recommends nagelfar
installation Now nagelfar is available on Fedora and EPEL, recommends its
installation to be able to lint modulefiles.
2022-07-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/add-new-sub-command.rst: doc: update linter scripts when
adding new subcmd
2022-07-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst: doc: desc lint subcmd in
man/changes
2022-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/030-options.exp,
testsuite/modules.70-maint/420-lint.exp: ts: add module lint install test
2022-07-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: add rules to deploy global rc linter plugin
* contrib/nagelfar/plugin_globalrc.tcl, tcl/subcmd.tcl.in: Lint global rc
file specifically Global rc file are evaluated as modulefile but it is not
recommended to use commands that change user environment in such file. When
linting global rc file, the modulefile syntax database is used but a
specific plugin is set to warn against non-recommended usages.
2022-07-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Lint global RC
files When no argument is provided to lint sub-command, also lint all
existing and readable global RC files. When arguments are provided to lint,
test if resolved files are global RC files. If so, lint them as modulerc
files instead of modulefile. The getGlobalRcFileList procedure has been
created from code present in runModulerc procedure. The new procedure return
the list of existing and readable global RC files.
2022-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Detect whether file to lint is modulefile or modulerc
When a file path is provided as argument, detect if it is a modulerc or a
modulefile to accurately lint this file.
* .aspell.en.pws, INSTALL.rst: doc: desc.
--nagelfardatadir/--enable-nagelfar-addons
* contrib/rpm/environment-modules.spec.in: rpm: install Modules-specific
Nagelfar linter addons
* Makefile, Makefile.inc.in, configure, tcl/subcmd.tcl.in: install: add
--nagelfardatadir/--enable-nagelfar-addons Add --nagelfardatadir and
--enable-nagelfar-addons installation option to control whether or not
Modules-specific Nagelfar files need to be installed and in what location.
2022-06-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/lint/.modulerc, testsuite/modulefiles.3/lint/1.0,
testsuite/modulefiles.3/lint/1.1, testsuite/modulefiles.3/lint/1.2,
testsuite/modulefiles.3/lint/1.3, testsuite/modulefiles.3/lint/1.4,
testsuite/modulefiles.3/lint/2.0, testsuite/modulefiles.3/modbad/lint,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/420-lint.exp: ts: add tests for lint sub-command
2022-07-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Use specific-plugin when linting with Nagelfar Use the
specific plugin to lint modulefile or the one to lint modulerc when Tcl
linter is Nagelfar.
* contrib/nagelfar/plugin_modulefile.tcl,
contrib/nagelfar/plugin_modulerc.tcl: nagelfar: add plugins to lint
modulefile/modulerc Create a Nagelfar plugin to lint modulefile and another
one to lint modulerc. These plugins help to report usage of deprecated, not
implemented or not recommended commands or variables. Also help to handle
--option=value argument form.
2022-06-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/modulefiles/module-git, contrib/modulefiles/use.own: contrib: fix
lint warning on example modulefiles
* tcl/subcmd.tcl.in: Use Nagelfar syntax db located in contrib directory
* contrib/nagelfar/syntaxdb_modulefile.tcl,
contrib/nagelfar/syntaxdb_modulerc.tcl: Add specific syntaxdb for modulefile
and modulerc Add Nagelfar syntax databases to lint modulefile and another
one to lint modulerc.
2022-06-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Lint modulerc files when no arg provided In addition
to the modulefiles available from enabled modulepaths, also lint the
modulerc files from these modulepaths. Set specific command for linting
modulerc files, with a different syntax db file when Nagelfar is used.
* tcl/subcmd.tcl.in: Use syntax database when linting with Nagelfar When
Tcl linter is Nagelfar, use a specific syntax database to lint modulefiles.
* .aspell.en.pws, tcl/subcmd.tcl.in: Lint all avail modfile when no arg
provided When no argument is provided to the lint sub-command, resolve all
modulefiles that current user has access to and lint all these files.
Update cmdModuleLint to first gather the list of all files to lint, then
lint these files.
2022-06-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/linux_tests.yaml: gh: add --with-tcl-linter on a test
case
2022-06-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/report.tcl.in, tcl/subcmd.tcl.in: Move linter output report in
dedicated proc Create displayLinterOutput procedure to handle the parsing
and output of each linter messages. Current code handles specific output
from Nagelfar linter and generic error report for other programs set as
linter.
* configure: install: warning if tcllinter program not found
* INSTALL.rst, doc/source/module.rst: doc: desc --with-tcl-linter-opts in
INSTALL/man
* testsuite/modules.70-maint/220-config.exp: ts: adapt tcl_linter tests for
--with-tcl-linter-opts
* Makefile, Makefile.inc.in, configure, site.exp.in, tcl/init.tcl.in:
install: add --with-tcl-linter-opts configure option Introduce the
--with-tcl-linter-opts configure option to choose at installation time the
options to pass to the tcl linter program. Default option is ''.
2022-06-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test tcl_linter config option
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
MODULES_TCL_LINTER in man/changes
* INSTALL.rst: doc: desc --with-tcl-linter in INSTALL
* INSTALL.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
tcl_linter config in man/changes
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add tcl_linter config to completion script
* Makefile, Makefile.inc.in, configure, site.exp.in, tcl/init.tcl.in:
install: add --with-tcl-linter configure option Introduce the
--with-tcl-linter configure option to choose at installation time the
default program command to use to lint modulefiles. Default Tcl linter is
'nagelfar.tcl'.
* tcl/init.tcl.in, tcl/subcmd.tcl.in: Introduce tcl_linter configuration
option Add tcl_linter option to configure the program to use by lint
sub-command to lint modulefiles. When configuration is modified it sets the
MODULES_TCL_LINTER environment variable.
2022-06-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/subcmd.tcl.in: Parse and format linter output Output
linter output under a *Linting* message block. Parse each output line to
produce NOTICE, WARNING or ERROR report messages.
2022-06-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/subcmd.tcl.in: Lint every modulefile passed as
argument Update cmdModuleLint to resolve each argument and find
corresponding modulefile. Pass these modulefile to Nagelfar to lint them.
In this initial code, Nagelfar is expected to be found at
nagelfar/nagelfar.tcl and its execution output is sent to the terminal.
2022-06-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add lint
subcmd to completion scripts
* .aspell.en.pws, tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in:
Introduce 'lint' sub-command Add the lint sub-command to check syntax of
modulefiles. Initial commit which adds empty cmdModuleLint procedure and
add code to reach it through module procedure. General sub-command
properties: * shortcut name: none * accepted options: --all, --icase *
expected number of argument: 0 to N * accept boolean variant specification:
no * parse module version specification: yes * fully read modulefile when
checking validity: no * only called from top level: yes
2022-07-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc protected_envvars in NEWS Fixes #429.
2022-07-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: fix missing liblapack0 dep for R
pkg on Cygwin
* .cirrus.yml: cirrus: update to python39 on FreeBSD-13
2022-06-08 Adrien Cotte <adrien@cotte.com>
* testsuite/modulefiles.3/protect/1.0, testsuite/modulefiles.3/protect/2.0,
.../modules.70-maint/410-protected_envvars.exp: ts: add 70/410
protected_envvars
2022-03-04 Adrien Cotte <adrien@cotte.com>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test protected_envvars config
option
2022-02-21 Adrien Cotte <adrien@cotte.com>
* init/zsh-functions/_module.in: Zsh completion support for
protected_envvars config
* init/fish_completion: Fish completion support for protected_envvars config
* init/Makefile: Bash completion support for protected_envvars config
* .aspell.en.pws, INSTALL.rst, doc/source/changes.rst,
doc/source/module.rst: doc: desc. protected_envvars configuration
* tcl/envmngt.tcl.in, tcl/init.tcl.in: Add protected_envvars configuration
option Add the protected_envvars configuration option that prevents choosen
environment variables to be set or unset by Module commands.
2022-06-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst, tcl/mfinterp.tcl.in: Fix source-sh/sh-to-mod
when fish regex-easyesc is on Fix source-sh modulefile command and
sh-to-mod sub-command when used with a fish shell script when the
regex-easyesc fish option is enabled. This option has been introduced in
fish 3.1 and is turned on by default starting fish 3.5. Fixes #463.
* NEWS.rst: doc: desc. enclose install paths work in NEWS
2022-06-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile: install: create etcdir from init Makefile if used
2022-06-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/_static/literal_block.css,
doc/source/_static/rtd_literal_block.css, doc/source/conf.py: doc: fix css
config for sphinx >= 3.5 Use html_css_files configuration option introduced
in Sphinx 1.8 to setup CSS in a more conventional way. Also fix
pre.literal-block specific styling as the 'section' div is not used anymore
in newer Sphinx versions.
2022-06-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: test install path containing space char Transform
the second FreeBSD test case into a Ubuntu testcase, running on last LTS
release. For this test case, installation is made over a path containing a
whitespace character. No specific quarantine setup with this test case, as
it is not compatible with installation in path containing a whitespace
character.
2022-06-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_csh, testsuite/bin/install_test_fish,
testsuite/bin/install_test_sh, testsuite/bin/install_test_tcl,
testsuite/config/unix.exp, testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/060-quar.exp,
testsuite/install.00-init/080-args.exp: ts: fix install tests if space char
in install path
2022-06-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in: Update autoinit produced code to enclose install path
Update code generated by the autoinit sub-command to enclose all references
to installation path to cope with an installation done in a path containing
whitespace character. Enclosing modulecmd.tcl installation path this way is
not effective with the quarantine mechanism that implies a double shell code
evaluation. So it is advised not to install Modules in a path containing a
whitespace character if the quarantine mechanism is needed.
2022-06-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/unix.exp, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: fix tests if space char in
install location path
* Makefile, doc/Makefile, init/Makefile: install: enclose install path refs
in Makefiles
* init/bash.in, init/cmake.in, init/csh.in, init/fish.in, init/ksh.in,
init/perl.pm.in, init/profile.csh.in, init/profile.sh.in, init/r.R.in,
init/ruby.rb.in, init/sh.in, init/tcl.in, init/tcsh_completion.in,
init/zsh.in: init: enclose installation path references Update
initialization, profile and completion scripts to enclose all references to
the installation paths. Enclosing modulecmd.tcl installation path this way
is not effective with the quarantine mechanism that implies a double shell
code evaluation. So it is advised not to install Modules in a path
containing a whitespace character if the quarantine mechanism is needed.
* contrib/modulefiles/modules.in, contrib/modulefiles/version.in,
script/add.modules.in: contrib,script: enclose installation path references
Update add.modules script and example modulefiles to enclose all references
to the installation paths.
* tcl/init.tcl.in, tcl/main.tcl.in, tcl/subcmd.tcl.in: Enclose all
installation path references Fix modulecmd.tcl to enclose all references to
an installation path. These references are thus robust in case a space
character is part of the installation location.
* NEWS.rst: doc: desc. init scripts > autoinit migration work
* .github/workflows/linux_tests.yaml: gh: update test case with disabled
bin/manpath config
2022-06-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: test source of shell
completion during autoinit
* testsuite/modules.70-maint/120-autoinit.exp: ts: add autoinit MANPATH
setup tests
2022-06-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: use leap 15.3 to get python-Sphinx
2022-06-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* site.exp.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: update tests now autoinit
sets PATH/MANPATH/etc
* Makefile, init/Makefile, init/zsh.in, tcl/subcmd.tcl.in: init: setup zsh
FPATH through autoinit command Add zsh FPATH setup in autoinit command
instead of zsh shell initialization script. This way all the shell setup is
gathered in the autoinit process. What is left in initialization script is
the code to properly call the autoinit process. Fixes #462.
* Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
tcl/subcmd.tcl.in: init: setup shell completion through autoinit command
Add shell completion setup in autoinit command instead of shell
initialization scripts. Use this way one modulecmd.tcl internal code instead
of shell code for every shell having some completion to source (bash, tcsh,
fish). Fixes #462.
2022-06-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
init/ksh.in, init/sh.in, init/zsh.in, tcl/subcmd.tcl.in: init: setup MANPATH
through autoinit command Add MANPATH setup in autoinit command instead of
shell initialization scripts. Use this way one modulecmd.tcl internal code
instead of shell code for every shell requiring to setup MANPATH with
Modules binaries location (sh, bash, ksh, zsh, csh, tcsh, fish). Fixes
#462.
2022-06-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
init/ksh.in, init/sh.in, init/zsh.in, tcl/subcmd.tcl.in: init: setup PATH
through autoinit command Add PATH setup in autoinit command instead of
shell initialization scripts. Use this way one modulecmd.tcl internal code
instead of shell code for every shell requiring to setup PATH with Modules
binaries location (sh, bash, ksh, zsh, csh, tcsh, fish). Fixes #462.
* init/bash.in, tcl/envmngt.tcl.in: Export module bash functions directly
through autoinit Export the module, _module_raw and ml bash shell functions
directly through the autoinit sub-command process rather within the bash
shell initialization script. Cannot apply the same change to the sh shell
when it is bash launched as sh, since we cannot tell in the modulecmd.tcl
execution that the current sh shell is bash (as BASH environment variable is
not exported to sub-shells). Fixes #462.
2022-05-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/410-timer.exp: ts: add --timer tests in 70/410
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
--timer option in NEWS/changes/man
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp: ts: adapt existing tests for
timer state introduction
2022-05-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in: Report duration
of each proc in timer debug mode When --timer option is enabled and
verbosity level is higher or equal to verbose, report trace of each
procedure executed with their duration. All regular debug messages are
replaced by these timer trace messages.
2022-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/init.tcl.in, tcl/main.tcl.in, tcl/report.tcl.in:
Introduce --timer option Add --timer global option to report execution time
in milliseconds at the end. Set start time in timer_start global variable
when --timer is set. Also enable timer state, to know later on that timer
mode has been asked. Timer report is produced at the and, in last run
procedure: cleanupAndExit. Report is shown at any verbosity level. Timer
reports are kind of debug information, thus they also use the 'db' sgr key
to get graphically enhanced. No need for a dummy reportTimer procedure like
for reportDebug, to use to gather all messages prior error report
initialization, as reportTimer is always called after error report being
initialized.
2022-05-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: describe Optional requirements in MIGRATING
* testsuite/modulefiles.3/optional/1.0,
testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/550-optional-opt.exp,
testsuite/modules.70-maint/240-icase.exp: ts: test misplaced/invalid prereq
option in 50/550
* NEWS.rst, tcl/mfinterp.tcl.in: Error on misplaced/invalid options on
prereq commands Update prereq command parsing to raise error in case of an
invalid option or a misplaced one.
* testsuite/modules.50-cmds/550-optional-opt.exp: ts: adapt optional tests
as eval failure are not reported
* tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: No report of eval
error of optional requirement Do not report the evaluation error of
optional requirements. Proceed like on a prereq-any command, when some
evaluation fails but one succeed. Update the loadRequirementModuleList
procedure by adding an argument named 'optional' to know if current load
attempt is mandatory or not.
2022-05-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in: Disable auto loading on always-load in DepRe context
Disable auto-loading on always-load sub-command when evaluated in a
Dependency Reload context.
2022-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/foo/1.0, testsuite/modulefiles.3/optional/1.0,
testsuite/modulefiles.3/optional/2.0,
testsuite/modules.50-cmds/550-optional-opt.exp: ts: add --optional option
tests in 50/550
2022-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. --optional and try-load changes in NEWS
* doc/source/changes.rst, doc/source/design/lmod-tcl-modulefile-compat.rst,
doc/source/modulefile.rst: doc: desc --optional option in man/changes/design
2022-05-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tryload/2.0,
testsuite/modules.50-cmds/490-try-load.exp,
testsuite/modules.50-cmds/518-load-any.exp: ts: add depre tests for
try-load/load-any mfcmd
2022-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in:
Change try_modulefile state into a cmdModuleLoad arg Replace the
try_modulefile state by the tryload argument on the cmdModuleLoad procedure.
Update prereqAnyModfileCmd, prereqAllModfileCmd and
loadRequirementModuleList procedure to pass this tryload argument all along
toward cmdModuleLoad. This is needed when evaluating module try-load and
module load-any commands in modulefile.
* tcl/mfinterp.tcl.in: Allow to pass multiple pre-args on interp cmd alias
Update initialization of the command aliases on modulefile interpreter to
allow to pre defined more than one argument to transmit.
2022-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/main.tcl.in: Inhibit autoload in depre ctx for all
kind of load cmd Inhibit the auto loading mechanism when module is
currently evaluated in a Dependency Reload (DepRe) context for load,
try-load and load-any sub-commands. This way it avoids to auto reload the
optional dependency module currently targeted by the main unload order from
user.
* testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/490-try-load.exp,
testsuite/modules.61-coll/040-restore.exp: ts: adapt existing tests to
try-load prereq record change
2022-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in: Use optional prereq to record try-load requirements When
try-load is used in a modulefile, record implied requirement as optional
instead of only recording those that are loaded. This way the modulefile
will get reloaded if requirement is loaded afterward. Cannot fully rely on
prereqAllModfileCmd procedure as try-load does not fully correspond to a
prereq-all --optional: an requirement evaluation error will lead to an error
of the module try-load command that will abort the modulefile evaluation.
* tcl/main.tcl.in: Refactor module load/try-load/load-any modulefile code
* testsuite/modules.70-maint/080-help.exp: ts: adapt existing tests for
prereq cmds refactoring
* .aspell.en.pws, tcl/main.tcl.in, tcl/mfinterp.tcl.in: Merge
prereq-all/prereq-allAH into prereqAllModfileCmd Merge the prereq-all and
prereq-allAH procedure into a single prereqAllModfileCmd procedure taking
current auto_handling option value as first arg to know whether to
automatically load requirements or not.
* .aspell.en.pws, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in:
Merge prereq/prereqAH into prereqAnyModfileCmd proc Merge the prereq and
prereqAH procedure into a single prereqAnyModfileCmd procedure taking
current auto_handling option value as first arg to know whether to
automatically load requirements or not.
2022-05-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/513-prereq-any.exp,
testsuite/modules.50-cmds/515-depends-on.exp,
testsuite/modules.50-cmds/516-prereq-all.exp,
testsuite/modules.50-cmds/517-always-load.exp: ts: adapt existing tests to
--optional addition
* tcl/mfinterp.tcl.in: Add --optional option to prereq commands Introduce
the --optional option on prereq commands (prereq, prereq-all, always-load,
prereq-any and depends-on) to indicate that the prereq list is fully
optional: if none of these prereqs are loaded, no error occurs. When
recording these prereq list in persistency information (__MODULES_LMPREREQ
variable), the current module name is added as first module in prereq list
to get this rule always satisfied even if no module from the prereq list is
loaded.
2022-05-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in: Change any_modulefile
state into a cmdModuleLoad arg Replace any_modulefile state by the anyload
argument on cmdModuleLoad procedure. any_modulefile branch were already not
in use for 'module load-any' commands used in modulefiles.
* tcl/mfinterp.tcl.in: Make always-load proc directly use prereq-all Update
always-load procedure to make it use directly the auto_handling version of
prereq-all command.
* testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.70-maint/080-help.exp: ts: adapt existing tests for prereq
interp refactoring
* tcl/subcmd.tcl.in: No need to disable auto_handling to call prereq Update
cmdModuleSwitch procedure as it is not anymore needed to disable
auto_handling option to call a prereq command that does not automatically
load requirements.
* tcl/main.tcl.in: Make module load rely on prereq/prereq-all cmds Update
module procedure to directly use, when 'module load' is called within a
modulefile, the prereq/prereq-all commands in their auto_handling or
non-auto_handling versions.
* .aspell.en.pws, tcl/mfinterp.tcl.in: Create auto_handling and not version
of prereq procs Split prereq and prereq-all procedures into a auto_handling
version, that attempts to automatically load requirements, and a non
auto_handling version that raise an error directly if requirement is not
already loaded. Adapt Tcl sub-interpreter initialization to make it
dependent of the auto_handling option enablement. When auto_handling is
enabled, the auto_handling versions of the prereqs procedure are configured.
With this change other parts of the code will be able to call either prereq
or prereqAH directly whether they need a load attempt or not, whatever the
current status of the auto_handling option.
2022-05-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
version.inc.in: Release of version 5.1.1
* testsuite/is_module_defined, testsuite/modules.00-init/005-init_ts.exp:
ts: fix is_modules_defined test Add bash script to test whether module
function is defined
* Makefile, NEWS.rst: install: call git cmds in Makefile only if needed
Update Makefile to call git command only if the version.inc file needs to
get rebuilt (if it does not exist or if the git repository has been updated
after version.inc built). Include version.inc file in main Makefile only if
its variables have not been just generated within Makefile flow.
2022-05-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, Makefile, NEWS.rst, lib/.gitignore, lib/Makefile.in:
install: include generated config.{guess,sub} in dist Include the
lib/config.guess and lib/config.sub scripts in distribution tarball if
generated by autoreconf
* Makefile, init/Makefile: install: no dependency to version.inc in
init/Makefile The Makefile script in the init directory does not depend on
the definitions stored in the version.inc file. So remove inclusion and
requirement definition to this version.inc file in init/Makefile.
* script/mrel: install: locate rpmlint rc file with -r in mrel Update mrel
script to locate rpmlint rc file with the -r command-line switch as -f is
not recognized anymore on rpmlint v2.
* contrib/rpm/environment-modules.rpmlintrc: install: update rpmlint rc
config for fc36 Update rpmlint rc file to match the new rpmlint version and
configuration provided in Fedora 36.
2022-05-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/lcompat/1.7,
testsuite/modules.50-cmds/517-always-load.exp: ts: add depre tests for
always-load command in 50/517
* NEWS.rst, tcl/subcmd.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp:
Update mod designation with tags set by DepRe modules Update module
designation with the tags set by reloading dependent module. Closes #460.
2022-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/module-tags.rst, tcl/mfinterp.tcl.in,
tcl/modeval.tcl, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/465-tag-opt.exp: Update tags set with prereq on
all loaded mods Update tags set through prereq command on all already
loaded requirements. Closes #459.
2022-05-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1, testsuite/modules.00-init/170-cwd.exp:
ts: test module over a removed current working dir
* NEWS.rst, tcl/util.tcl: Report known error when cwd cannot be retrieved
Closes #457.
2022-05-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/report.tcl.in: Migration conflict error report in
dedicated proc Add reportPresentConflictError procedure to report error
when a conflict is detected.
* tcl/mfinterp.tcl.in, tcl/report.tcl.in: Migrate prereq error report in
dedicated proc Add the reportMissingPrereqError procedure to report error
when prereq is not satisfied.
* tcl/mfinterp.tcl.in: Add getCurrentModfileInterpName proc Add
getCurrentModfileInterpName procedure to return identifier name of current
Tcl modulefile interpreter.
2022-05-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/modeval.tcl: Return if prereq has been loaded on
loadRequirementModuleList Update loadRequirementModuleList procedure to
also return if one of the requirement from list has been loaded.
2022-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Remove dependency to try_modulefile of cmdModuleUnload
The try_modulefile state does not impact the cmdModuleUnload procedure as
the only kind of error reported here is when an empty module name is
specified. Such error should be reported whatever the try_modulefile state.
* tcl/main.tcl.in: Clarify {try,any}_modulefile state in ml proc Clarify
that the try_modulefile and any_modulefile states cannot be enabled when set
through the ml procedure: ml shortcut syntax leads to regular load and not
load-any or try-load.
2022-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/subcmd.tcl.in: Move load-any no load error into
cmdModuleLoad Refactor module procedure to move the error raise when no
error and no module loaded in case of a load-any sub-command. This code is
moved directly at the end of cmdModuleLoad.
2022-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Refactor setModuleTag call in setLoadedModule As
setModuleTag now ensures no duplicate tag are set, no need to check if
auto-loaded tag is already set. Simplify also the if/else branch as same
commands are applied whether the loaded or auto-loaded tag need to be set.
2022-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/modeval.tcl,
testsuite/modules.50-cmds/517-always-load.exp: Refactor 'module load' to use
loadRequirementModuleList Update module procedure to use
loadRequirementModuleList procedure when loading modules in load evaluation
mode when auto_handling is disabled. Update the loadRequirementModuleList
to return 0 is everything went well or 1 if an issue occurred.
* testsuite/modules.70-maint/310-sh-to-mod.exp: ts: fix 70/310 tests when
module is defined in env
* tcl/main.tcl.in: Refactor use of --tag option within module load
* testsuite/modules.70-maint/350-term_width.exp: ts: add tests to improve
--width option coverage
* testsuite/modules.50-cmds/520-pushenv.exp: ts: add pushenv test to improve
coverage
* testsuite/modules.50-cmds/400-source-sh.exp: ts: test loaded completion
not defined in source-sh script
* testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
testsuite/example/sh-to-mod.sh, testsuite/example/siteconfig.tcl-1,
testsuite/modules.50-cmds/400-source-sh.exp: ts: test removal of
alias/func/comp from source-sh script
2022-05-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, tcl/subcmd.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.70-maint/322-tag-sgr.exp: No already loaded msg if new tag
applied Remove the *already loaded* message displayed when verbosity level
is higher or equal to 'verbose2', if new tags are applied to the loaded
module. Closes #456
2022-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.70-maint/321-tag_abbrev.exp,
testsuite/modules.70-maint/322-tag-sgr.exp: ts: test module designation with
tags when loading
* NEWS.rst, tcl/report.tcl.in: Fix module designation rendering when no 'hi'
color key Fix rendering of loading or unloading module designation when
configured color palette does not set the 'hi' color key. Closes #455
2022-05-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/322-tag-sgr.exp: ts: test space in module name on
list/avail outputs
2022-05-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: add readCollectionContent
coverage test
2022-05-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: test FreeBSD 13.0 instead of eol 11.4
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: add
unsetModuleTag/unsetModuleExtraTag coverage test
* testsuite/modules.00-init/120-siteconfig.exp: ts: no tcl ext lib err call
tests if test libs not there
* NEWS.rst, contrib/rpm/environment-modules.spec.in: rpm: install lib in
specific directory Move libtclenvmodules in an environment-modules
directory under libdir, as it is a private library.
* NEWS.rst, configure: install: fix libdir64/32 guess in configure script
Update configure script to better guess the libdir64 and libdir32 directory
locations based on specified libdir. Correctly guess these directories when
libdir does not end with '64' but contains '64' like in
'/usr/lib64/environment-modules'.
* .aspell.en.pws, NEWS.rst, contrib/rpm/environment-modules.rpmlintrc,
script/mrel: install: add rpmlint rc config file Add rpmlint rc
configuration file to filter false positive warning messages when checking
RPM spec file and built packages. Update 'mrel' script to use this rc
configuration file when linting RPM spec file.
* contrib/rpm/environment-modules.spec.in: rpm: remove useless
environment-modules provides Remove useless environment-modules Provides
statement since this package is already named environment-modules.
2022-05-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.sh, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/400-source-sh.exp: ts: fix 50/400 tests when
module was defined but uninstalled Correct source-sh tests in 50/400 to
succeed when tests are run in an environment where module is defined but has
been uninstalled. It corresponds to the environment created for 'mrel'
script execution.
2022-05-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modules.20-locate/130-mcookie_check_eval.exp: ts: fix 20/130 tests
when run from path containing + char
* script/mpub, script/mrel: script: no line number dependency for expected
errors Update mpub and mrel scripts not to depend on the line number
expressed in error message when comparing them to expected error message.
* NEWS.rst: doc: fix rst typo in 5.1 NEWS
2022-04-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
doc/source/conf.py, lib/configure.ac, tcl/subcmd.tcl.in,
testsuite/home/coll40, testsuite/home/coll41, testsuite/home/coll42,
testsuite/home/coll43, testsuite/home/coll45, testsuite/home/coll46,
testsuite/home/coll49, testsuite/home/coll49-tosource,
testsuite/modules.61-coll/010-init_ts.exp, version.inc.in: Release of
version 5.1.0
2022-04-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll49-tosource, testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.61-coll/040-restore.exp: ts: tests tagging messages on
verbose/verbose2 modes
2022-04-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst, tcl/main.tcl.in,
tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in: No Tagging msg
block if hidden and nuasked Do not output Tagging message block if module
is set hidden-loaded and evaluation has not been directly asked by user.
Add uasked argument to cmdModuleTag procedure to know if the evaluation of
module has been asked or not by user.
* .aspell.en.pws, MIGRATING.rst, doc/source/_static/terminal_output.css,
doc/source/conf.py: doc: add examples in more tagging section in MIGRATING
* NEWS.rst, doc/source/design/module-tags.rst, doc/source/module.rst: doc:
desc. tagging evaluation message
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp: ts: adapt existing restore tests
to the Tagging msg
* tcl/subcmd.tcl.in: Add Tagging message block When just tagging a module
already loaded, report a *Tagging* message with module denomination. Like
for *Loading* message, it is only seen during a restore/source sub-commands
or in verbose mode.
* .aspell.en.pws, NEWS.rst, doc/example/log-module-commands/siteconfig.tcl,
doc/source/cookbook/log-module-commands.rst: doc: fix log-module-command
recipe siteconfig.tcl Fix the siteconfig.tcl file of the log-module-command
cookbook recipe not to break when a file is sourced through cmdModuleSource.
Limit the addition of the 'auto' log field only if load evaluation comes
from cmdModuleLoad procedure. Fixes #453
* NEWS.rst, doc/source/design/module-tags.rst, doc/source/module.rst: doc:
desc. tag report on load/unload/refresh msg block
2022-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/024-ml.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/230-verbosity.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp,
testsuite/modules.70-maint/320-tags.exp,
.../modules.70-maint/377-variant-shortcut.exp: ts: update tests with tags
reported in msg block
* tcl/report.tcl.in: Report module tags in header message block Update
Loading/Unloading/Refreshing header message block to render the tags
applying on the currently analyzed module over or along this module name, as
done when reporting loaded modules with list sub-command.
* tcl/report.tcl.in: Make getModuleDesignation rely on
formatListEltToDisplay Use formatListEltToDisplay in getModuleDesignation
to render module designation.
2022-04-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.70-maint/240-icase.exp,
.../272-adv_version_spec-range.exp,
testsuite/modules.70-maint/376-variant-tag.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: update avail/list tests
when space in module name
* NEWS.rst, tcl/report.tcl.in: Quote name if it contains space when listing
modules Update formatListEltToDisplay and formatListEltToLongDisplay to
enclose element name in single quote if it contains a space character. As a
result list and avail output will now report enclosed module names if space
character if found in them, like it is done when reporting module
designation as loading/unloading header. Only enclose element name and not
suffix, to follow the same output approach than 'ls' command.
* tcl/report.tcl.in, tcl/subcmd.tcl.in: Register tag list in module
designation Update registerModuleDesignation procedure to also register the
list of tags applied along module name and variants.
* MIGRATING.rst, NEWS.rst: doc: desc. tags improvement in NEWS/MIGRATING
* doc/source/design/module-tags.rst: doc: list mfcmd where --tag opt is
available in design
* NEWS.rst, doc/source/changes.rst, doc/source/design/module-tags.rst: doc:
link to --tag option section
2022-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: configure safe.directory git opt
on Cygwin & win native
* doc/source/module.rst: doc: mention --tag in Module tags section
* doc/source/module.rst, doc/source/modulefile.rst: doc: --tag update tag
list if mod is loaded already
* doc/source/module.rst: doc: add an option section for --tag in module(1)
* testsuite/modules.50-cmds/465-tag-opt.exp: ts: test tag set with full path
module spec
2022-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll49, testsuite/modulefiles.3/foo/.modulerc,
testsuite/modulefiles.3/keep/1.0, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: add restore tests with tags
set or not
* tcl/subcmd.tcl.in: Clear auto-loaded tag on cmdModuleTag When the
unset_extra flag is enabled, also remove the auto-loaded tag on module if it
is not part of the target tag_list.
* tcl/subcmd.tcl.in: Clear auto-loaded/keep-loaded tags when unloading
Remove from the in-memory knowledge the auto-loaded and keep-loaded tags set
on unloading modules. These tags are then forgotten and will not be
reapplied if module is currently reloading.
2022-04-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modeval.tcl, tcl/subcmd.tcl.in,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/465-tag-opt.exp: Save/restore extra tags when
reloading modules Update reloadModuleListUnloadPhase and
reloadModuleListLoadPhase procedures to save extra tags of unloaded modules
to re-inject them when reloading these modules.
* testsuite/modules.61-coll/040-restore.exp: ts: update restore tests now
extra tags are cleared
* tcl/subcmd.tcl.in: Clear extra tags when unloading module Remove from the
in-memory knowledge the extra tags set on unloading modules. These extra
tags are then forgotten and will not be reapplied if module is currently
reloading.
* tcl/subcmd.tcl.in: Clear extra tags when restoring collection When
restoring a collection, unset the extra tags on loaded modules that are not
defined in collection.
* tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/modfind.tcl.in,
tcl/subcmd.tcl.in: Unset extra tags on cmdModuleTag Add unset_extra
argument to the cmdModuleTag procedure to remove, when enabled, the extra
tags currently set on designated modules that are not part of the
transmitted tag list. Update every cmdModuleTag calls to take into account
this new unset_extra argument.
2022-04-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: desc. updating tags on loaded mods
in design doc
2022-04-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/foo/1.0, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/517-always-load.exp: ts: add tests where tags are
updated on loaded mods
2022-04-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/465-tag-opt.exp: ts: fix existing tests to set
tags on already loaded mod
* tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: Apply new tags set
on loaded requirement Update the loadRequirementModuleList procedure to
apply tags defined on the first requirement found loaded.
2022-04-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Apply new tags set on loaded module When a module load
attempt is made on an already loaded module with additional tag set, update
the tag list set on this loaded module: add the new tags not already set on
the loaded module.
2022-04-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: test over newer FreeBSD 12 release
* NEWS.rst, doc/source/modulefile.rst: doc: desc avail module subcmds in
modulefile interp ctx
2022-04-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/modulefile.rst: doc: add mfile/rc interp diff table
in modulefile man
2022-04-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/module.rst: doc: mention rc files are not for
module config
2022-04-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: mention use/unuse in module modulefile man
section
* NEWS.rst: doc: desc. coll file signature change in NEWS
2022-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/.module/coll48, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.70-maint/154-is-saved.exp: ts: verify coll compat on all
coll subcmds
2022-04-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.61-coll/080-access-coll.exp: ts: adapt existing tests
now coll compat is verified
2022-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile, tcl/{coll.tcl => coll.tcl.in}: install: tcl/coll.tcl
should be built Need to build tcl/coll.tcl as this part of the code need to
use the @MODULES_VERSION@ pattern.
2022-04-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl, tcl/subcmd.tcl.in: Check collections are valid when
searching them Update findCollections procedure to rely on a checkValidColl
procedure that verifies given collections can be read and are compatible
with current Modules version if they express a minimum version requirement.
As a side effect, when listing available collections with savelist
sub-command, now the collections that cannot be read are withdrawn from
result list.
2022-04-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Merge
getCollectionFilename into findCollections Update findCollections procedure
to merge behavior of getCollectionFilename in it. If search argument is set
to 'exact' an exact collection search match is performed. If search argument
is set to 'name', only the name of the collection file is computed.
2022-04-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll40, testsuite/home/coll41, testsuite/home/coll42,
testsuite/home/coll43, testsuite/home/coll45, testsuite/home/coll46,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: update tag saved in
collection tests Set temporarily file signature to 5.0 version. Will move
to 5.1 version with the release commit of 5.1.0.
* tcl/coll.tcl, tcl/subcmd.tcl.in: Add Module header when saving coll with
tags Record Modules magic cookie at the beginning of a collection when tags
are found set on the module to save. The #%Module file signature is followed
by the version number of Modules introducing the tag support. This version
number is temporarily set to 5.0 for test purpose. It will be moved to 5.1,
on the release commit of 5.1.0. If collection starts with a Modules file
signature, this header will not be reported on saveshow output.
* tcl/coll.tcl, tcl/modfind.tcl.in: No empty entry in tag array for build
coll Update getSimplifiedLoadedModuleList and
getLoadedModuleWithVariantSaveTagArrayList procedure to fill the tag array
only with entries for modules with tags applied to them. This way it is
possible to know if collection define tags by checking number if this array
is empty.
2022-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test saving nearly-forbidden
tag in collection
* testsuite/home/coll45, testsuite/home/coll46,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test restore colls with
invalid tags saved
2022-03-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. __MODULES_LMEXTRATAG/collection_pin_tag in NEWS
2022-03-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/465-tag-opt.exp: ts: test reload with extra tags
in 50/465
* doc/source/design/module-tags.rst: doc: desc. collection_pin_tag in design
doc
* testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test save/restore with
collection_pin_tag enabled
2022-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Save all tags if collection_pin_tag is enabled Update
the getSaveTagList procedure to return all defined tags for given module
when the collection_pin_tag configuration option is enabled. An exception is
made for nearly-forbidden tag which is not saved due to its temporal
meaning.
* testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test collection_pin_tag
config option
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
MODULES_COLLECTION_PIN_TAG in man/changes
* INSTALL.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
collection_pin_tag config in man/changes/INSTALL
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add collection_pin_tag config to completion scripts
* tcl/init.tcl.in: Add collection_pin_tag configuration option Add
collection_pin_tag configuration option that controls whether all tags
should be recorded in collection or just the tags specifically set with
--tag option or describing loaded module state (like auto-loaded or
keep-loaded tags). Disabled by default. When configuration is modified it
sets the MODULES_COLLECTION_PIN_TAG environment variable.
* testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: add collection tests for
extra tag record
2022-03-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, tcl/coll.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Only
record extra tags in collection Update way collection is saved to only
record in it the extra tags set through --tag option and tags describing the
load state of a module like auto-loaded and keep-loaded. The getSaveTagList
procedure is introduce to return the list of tag to save for each loaded
module.
* testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: adapt --tag option collection
tests
* testsuite/modules.50-cmds/465-tag-opt.exp: ts: adapt --tag option tests
2022-03-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/280-ml.exp: ts: adapt clear subcmd tests for
__MODULES_LMEXTRATAG
* tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record extra tags in
__MODULES_LMEXTRATAG Introduce __MODULES_LMEXTRATAG environment variable to
record the extra tags that have been set on loaded modules through the --tag
option. Exclude from this variable the auto-loaded and keep-loaded tags
that may be in some situation set through --tag option.
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clear __MODULES_LMEXTRATAG
prior tests
* .aspell.en.pws, doc/source/changes.rst, doc/source/design/module-tags.rst,
doc/source/module.rst: doc: desc. __MODULES_LMEXTRATAG in man/changes/design
2022-03-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst: doc: desc. sysconf error handling in ext lib
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-sysconf.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed sysconf call Add an utility library that supersedes the
sysconf function from libc. The sysconf function from this added library
always returns an error (-1). It is used for coverage test of the sysconf
call made within the Envmodules_InitStateUsergroupsObjCmd function of the
Tcl extension library.
2022-03-30 Lukáš Zaoral <lzaoral@redhat.com>
* lib/envmodules.c: lib: handle sysconf failure in InitStateUsergroupsObjCmd
sysconf may fail to obtain the value of the NGROUPS_MAX variable. In such
case, it returns -1 and sets errno to indicate the error. Let's handle this
situation as the size argument of ckalloc is an unsigned int so the size of
the allocated memory would be UINT_MAX instead. Subsequently, getgroups
would fail with EINVAL as maxgroupsize is non-zero but less than the number
of GIDs that would have been returned. Note that if sysconf returns -1 and
leaves errno intact, the given variable has no limit. However, that does
not seem to be the case on any reasonable operating system [1]. Found by
Coverity. Resolves: modules-5.0.1/lib/envmodules.c:355: negative_return_fn:
Function "sysconf(_SC_NGROUPS_MAX)" returns a negative number.
modules-5.0.1/lib/envmodules.c:355: assign: Assigning: "maxgroups" =
"sysconf(_SC_NGROUPS_MAX)". modules-5.0.1/lib/envmodules.c:368:
negative_returns: "maxgroups" is passed to a parameter that cannot be
negative. 366| 367| #if defined (HAVE_GETGROUPS) 368|-> if ((ngroups =
getgroups(maxgroups, groups)) == -1) { 369| Tcl_SetErrno(errno);
370| Tcl_SetObjResult(interp, [1] https://www.j3e.de/ngroups.html
2022-03-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/python.py.in: init: explicitly send err output to sys.stderr in
python Update python initialization script to explicitly send error output
to the sys.stderr channel (instead of parent process stderr channel) to be
able to catch this content.
2022-03-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: update autoinit tests to
new python code
* .aspell.en.pws, NEWS.rst, tcl/envmngt.tcl.in: Update module() python func
to send output to sys.stderr Update definition of the module() python
function to explicitly send output to sys.stderr to get the ability to catch
this content.
* MIGRATING.rst: doc: fix missing word in Lmod Tcl mfile support desc.
* MIGRATING.rst: doc: desc. Lmod Tcl mfile support in MIGRATING
2022-03-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/modulefile.rst: doc: add Lmod Tcl mfile support
section in modulefile(4)
2022-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, doc/source/design/lmod-tcl-modulefile-compat.rst: doc:
desc. pushenv in design notes
2022-03-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. pushenv in NEWS
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clean family envvar prior
tests
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clean pushenv stack envvar
prior tests
2022-03-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/flatlcompat,
testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.10, testsuite/modulefiles.3/lcompat/1.11,
testsuite/modules.50-cmds/511-remove-property.exp,
testsuite/modules.50-cmds/520-pushenv.exp: ts: test pushenv mfcmd in 50/520
2022-03-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Ensure pushenv stack var is
cleared by other cmds Like for the reference counter array, ensure the push
stack environment variable is cleared when targeted variable is handled by
append-path, prepend-path, remove-path, setenv and unsetenv modulefile
commands.
2022-03-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Add pushenv modulefile command
Introduce the pushenv modulefile command that sets an environment variable
with a value specified as argument but saves the previous value set to
restore it when modulefile is unloaded. Use a __MODULES_PUSHENV_<VAR>
environment variable as a stack to record the previous values of environment
variable <VAR>. Each element in this Modules-specific variable is the
combination of the currently evaluating modulename and pushed value. When
unloading, the value set by this module is removed not the value on top of
the list. When saving value set before any module, an empty module name is
used to push to the stack. When restoring this initial value, initial entry
in stack is also cleared (as no other module unload will unset it). Follow
same implementation principle that setenv, with a dedicated procedure for
the unload and whatis modes.
2022-03-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
__MODULES_PUSHENV_<VAR> in changes/man
* doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. pushenv in
changes/man
2022-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for pushenv
mfcmd
* INSTALL.rst, doc/source/_static/rtd_theme_overrides.css: doc: fix config
opt table layout in INSTALL Update CSS and content of table to make default
value words correctly wrap and be able to see the 4th and 5th cols on small
screens.
2022-03-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, INSTALL.rst, NEWS.rst,
doc/source/design/add-new-config-option.rst: doc: add Configuration options
section in INSTALL
2022-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: reorder silent_shell_debug config opt in
module(1)
* doc/source/module.rst: doc: see linked envvar for details on configs
2022-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst: doc: fix wrong default value for some install opts
* CONTRIBUTING.rst: doc: use plural for Commit hook section in CONTRIBUTING
2022-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .aspell.en.pws, NEWS.rst, doc/source/conf.py, doc/source/module.rst: doc:
clarify instopt & default value of config opts
2022-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: MODULES_ML has to get set prior Modules init
* INSTALL.rst, NEWS.rst: doc: clarify config opt linked to install opt
* NEWS.rst, doc/source/module.rst: doc: clarify env vars to set prior
Modules initialization
* doc/source/module.rst: doc: clarify module-generated env vars in module(1)
2022-03-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/module.rst: doc: clarify config opt linked to env var
Update the ENVIRONMENT section in module(1) man page to provide for each
Modules environment variable the name of the configuration option that could
be used to set the variable through the config sub-command.
2022-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, MIGRATING.rst, NEWS.rst, doc/source/changes.rst,
doc/source/cookbook/reduce-io-load.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: magic cookie means file signature Update
documentation to clarify that the Modules magic cookie corresponds to a file
signature.
2022-03-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes: install: exclude git hook stuff from git export
* CONTRIBUTING.rst, INSTALL.rst, NEWS.rst, script/commit-msg: script: add
commit-msg hook script to check commit msg
* .aspell.en.pws, .codespellrc, .gitignore, CONTRIBUTING.rst, NEWS.rst,
script/pre-commit: script: update pre-commit to spell check docs with Aspell
2022-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/pre-commit: script: pre-commit warn if codespell not installed
* NEWS.rst, doc/source/modulefile.rst: doc: desc. Dependencies between
modulefiles Fixes #431. Fixes #433.
2022-03-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst, MIGRATING.rst, NEWS.rst, README.md, doc/source/FAQ.rst,
doc/source/changes.rst, doc/source/cookbook/compiler-etc-dependencies.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/output-configuration.rst,
.../design/source-shell-script-in-modulefile.rst,
doc/source/design/variants.rst, doc/source/index.rst: doc: fix typos found
with Aspell
2022-03-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst, NEWS.rst, script/pre-commit: script: add pre-commit
script to verify commits
* NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Handle empty fish shell
function in sh-to-mod/source-sh Update the sh-to-mod and source-sh
mechanism to handle fish shell function with an empty body.
* NEWS.rst: doc: desc. recent sh-to-mod/source-sh fixes in NEWS
* tcl/mfinterp.tcl.in, testsuite/install.00-init/091-source-sh.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Include private functions in
fish sh-to-mod analysis Update the environment analysis made for sh-to-mod
sub-command and source-sh modulefile command for fish shell to include the
private functions. Catch this way all definition that may be used to set
shell completion.
2022-02-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/091-source-sh.exp: ts: test unload of source-sh
mods in install ts
2022-02-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: upgrade to python 3.9 on Cygwin
Seem a new python37-sphinx release on Cygwin has broken dependencies, so
upgrate Cygwin test cases to python 3.9 which is the recommanded version.
* .codespellrc: codespell: ignore spack/miniconda3/OpenFOAM-dev content
* .cirrus.yml, .gitignore, Makefile,
testsuite/install.00-init/091-source-sh.exp,
testsuite/modulefiles.3/source-sh/openfoam: install/ts: test source-sh over
OpenFOAM scripts
2022-02-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/091-source-sh.exp: ts: test source-sh over Conda
script on ksh/zsh/tcsh/fish
* tcl/mfinterp.tcl.in: Fix csh alias detection on source-sh Alias
definition may sometimes be enclosed in parenthesis on csh shell. Fix alias
parsing regexp to support such definition. Useful for Conda initialization
script for csh shell: conda shell alias definition is presented by csh shell
enclosed in parenthesis. Fixes #434.
* .cirrus.yml, .gitignore, Makefile: install/ts: fetch/install Conda/Spack
for source-sh tests Add directives into Makefile to fetch and install Spack
and Conda in order to test source-sh feature against their profile scripts.
* testsuite/example/sh-to-mod.fish: ts: test fish complete def without -c
when fish>=3.2 Test fish shell completion definition without -c/--complete
option when fish is >=3.2 instead of >=3.0.
* .cirrus.yml, testsuite/install.00-init/091-source-sh.exp,
testsuite/modulefiles.3/source-sh/conda: ts: test source-sh over Conda
scripts in install ts
* .cirrus.yml: cirrus: upgrade linux test env to ubuntu 20.04
2022-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: fix autoinit tests after
modulecmd.tcl output quoting
* testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modulefiles.3/noglobeval/1.0: ts: update install tests after
modulecmd.tcl output quoting
* .github/workflows/linux_tests.yaml, INSTALL.rst, Makefile,
Makefile.inc.in, NEWS.rst, configure, doc/source/changes.rst,
doc/source/module.rst, init/Makefile, init/fish_completion,
init/zsh-functions/_module.in, site.exp.in, tcl/envmngt.tcl.in,
tcl/init.tcl.in, testsuite/example/initrc.in,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/220-config.exp: Revert work on noglob_eval_shells
config option Remove entirely the work on the noglob_eval_shells option as
enclosing in quotes the generated output of modulecmd.tcl to pass it to the
eval command is equivalent to disable the pathname expansion mechanism of
sh-kind shells.
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: init: translate ``
into $() for sh-kind shells
* doc/source/FAQ.rst, doc/source/module.rst: doc: translate `` into $() for
sh-kind shells
2022-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in: Translate `` into $() for sh-kind shells As the
module shell function code is currently updated for sh-kind shells, take
this opportunity to translate the `cmd` execution syntax into the more
modern $(cmd) syntax.
2022-02-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/091-source-sh.exp: ts: test ksh/zsh over Spack
scripts in install ts
* tcl/envmngt.tcl.in: Enclose modulecmd.tcl output in quotes on sh-kind
shells Update the module shell function definition for sh-kind shell to
enclose the output generated by modulecmd.tcl in quotes in order to pass it
to the eval command. Quoting code to pass it to eval brings correctness to
the definition of shell functions without harming already well functionning
definition. Regular shell function definition could now be correctly defined
in user environment: no more need to get each command line in these function
ending with a ';' character. Same mechanism was applied in initialization
script to evaluate the code produced by the autoinit sub-command. Multiple
function-definition issues spotted when using source-sh across environment
setting script shell are fixed with this change. Moreover, all the
noglob_eval_shells work is made useless with this change as no globbing is
applyed to the code produced by modulecmd.tcl as it is now enclosed in
quotes.
2022-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.fish, testsuite/example/sh-to-mod.sh,
testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test wildcard char in func
on sh-to-mod tests
2022-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_csh, testsuite/example/sh-to-mod.csh,
testsuite/example/sh-to-mod.fish, testsuite/example/sh-to-mod.sh,
testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test wildcard char in
envvar on sh-to-mod tests
2022-02-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, testsuite/install.00-init/091-source-sh.exp,
testsuite/modulefiles.3/source-sh/spack: ts: test source-sh over Spack
scripts in install ts
* doc/source/changes.rst: doc: desc. MODULES_NOGLOB_EVAL_SHELLS in changes
* testsuite/example/sh-to-mod.fish,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test sh-to-mod against
fish nested func/_ in name
2022-02-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in: Correctly escape [ and | in builtin fish funcs
Update execShAndGetEnv to correctly escape the '[' and '|' characters in
fish shell code to filter builtin commands. These character were not
correctly escaped previously (replaced by '$1').
* tcl/mfinterp.tcl.in: Remove dup ';' in execShAndGetEnv getfunc fish code
* NEWS.rst, tcl/mfinterp.tcl.in: Fix fish builtin func withdrawal on
sh-to-mod/source-sh Fix the fish code to withdraw builtin functions to
compare functions defined before and after fish script shell execution in
execShAndGetEnv procedure. Previous regexp was not matching the full
string, so every function whose name contained a substring equal to the name
of a builtin function (like '_') where filtered.
* NEWS.rst, doc/source/design/source-shell-script-in-modulefile.rst,
tcl/mfinterp.tcl.in: Support fish nested function on sh-to-mod/source-sh On
fish shell, function definition can be embedded inside function definition.
Update the execShAndGetEnv procedure to add a string separated after each
function definition (%ModulesSubShToMod%) to clearly delimitate the shell
function to analyse and report and skip the definition of nested functions.
2022-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .github/workflows/linux_tests.yaml: cirrus/gh: remove broken
snapd fish config Remove snapd file that breaks fish shell on bionic (see
https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1961365).
* testsuite/install.00-init/020-module.exp,
testsuite/modulefiles.3/noglobeval/1.0: ts: add install tests for
noglob_eval_shells
* .github/workflows/linux_tests.yaml, testsuite/example/initrc.in,
testsuite/modules.70-maint/120-autoinit.exp: ts: test noglob_eval_shells
over autoinit subcmd
2022-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test noglob_eval_shells
config option
2022-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc.
noglob_eval_shells in man/changes/NEWS
2022-02-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst: doc: desc. --with-noglob-eval-shells option in INSTALL
* tcl/envmngt.tcl.in: Disable pathname expansion prior shell eval Add code
in module shell function (for shells listed in noglob_eval_shells) to
disable pathname expansion for the time of produced shell code evaluation.
2022-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add noglob_eval_shells config to completion scripts
* Makefile, Makefile.inc.in, configure, site.exp.in, tcl/init.tcl.in:
install: add --with-noglob-eval-shells configure opt Introduce the
--with-noglob-eval-shells configure option to choose at installation time if
the pathname expansion should be disabled or not in the module function to
evaluate shell code produced by modulecmd.tcl, for the shells listed in
option value.
* tcl/init.tcl.in: Add noglob_eval_shells configuration option Add
noglob_eval_shells configuration option that controls whether or not the
module shell function should disable pathname expansion to evaluate shell
code produced by modulecmd.tcl script. Enabled by default for sh, bash ans
ksh shells. Support also zsh shell. When configuration option is modified it
sets the MODULES_NOGLOB_EVAL_SHELLS environment variable. Pathname
expansion is primarily an issue of bash and ksh93 shells when evaluating
shell function body code. It also impacts bash-flavored sh shells. So the
option is provided to support any shell from the sh family, but disabled by
default for shells not having the globbing issue (zsh).
2022-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .codespellrc: Add codespell configuration for the project
* contrib/modulefiles/openwin, testsuite/modules.50-cmds/190-load.exp: ts:
fix some other typos in tests
* MIGRATING.rst, NEWS.rst, doc/source/cookbook/sticky-modules.rst,
doc/source/design/sticky-modules.rst, doc/source/design/variants.rst,
doc/source/module.rst, tcl/modeval.tcl, tcl/subcmd.tcl.in,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.61-coll/040-restore.exp: Fix stickiness typos Fixes #442.
2022-02-17 Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
* INSTALL.rst, contrib/modulefiles/scheme/racket/5.0.2,
doc/source/cookbook/new-features-without-breaking-old-module.rst,
doc/source/design/extended-default.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/insensitive-case.rst,
doc/source/design/sticky-modules.rst: Fix typos not found by codespell
* contrib/modulefiles/gnu, contrib/modulefiles/openwin: contrib: fix
additional typos
2022-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/modulefiles/java/6/35, contrib/modulefiles/java/6/38,
contrib/modulefiles/java/7/07, contrib/modulefiles/java/7/11,
contrib/modulefiles/openwin, contrib/readme.txt,
contrib/rpm/environment-modules.spec.in: contrib: fix typos found in several
files
* NEWS.rst: doc: fix typos in NEWS
* testsuite/modulefiles/module/unk,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp: ts: fix NonExistent typo in several
tests Fixes #439
2022-02-16 Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
* init/bash.in, init/cmake.in, init/fish.in, init/ksh.in, init/perl.pm.in,
init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
init/zsh.in: init: fix typo in comment
2022-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp: ts: fix 00/{120,140} tests after
typos fix
* NEWS.rst: doc: desc. typos fix in NEWS
2022-02-13 Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
* .github/ISSUE_TEMPLATE/bug_report.md, Makefile.inc.in, README.md,
configure, .../guide/get_started/08-guide_modulefile_search-alias.sh,
doc/example/compiler-etc-dependencies/homebrewed/bar/common,
doc/example/expose-procs-vars-to-modulefiles/siteconfig.tcl,
doc/example/inhibit-report-info/siteconfig.tcl,
doc/example/unload-firstly-loaded/siteconfig.tcl, doc/source/FAQ.rst,
doc/source/changes.rst, doc/source/cookbook/compiler-etc-dependencies.rst,
doc/source/cookbook/modulefiles-in-git.rst,
.../cookbook/new-features-without-breaking-old-module.rst,
doc/source/design/default-latest-version-specifiers.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/lmod-tcl-modulefile-compat.rst,
doc/source/design/sticky-modules.rst, doc/source/design/variants.rst,
doc/source/module.rst, script/mlprof, script/mpub, tcl/coll.tcl,
tcl/init.tcl.in, tcl/modfind.tcl.in, testsuite/config/base-config.exp,
testsuite/example/siteconfig.tcl-1,
testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/070-stderrtty.exp,
testsuite/modulefiles/append/1.7, testsuite/modulefiles/append/2.4,
testsuite/modulefiles/help/2.0, testsuite/modulefiles/info/mode3,
testsuite/modulefiles/info/mode4, testsuite/modulefiles/info/userexp,
testsuite/modulefiles/loc_dv1/1.0, testsuite/modulefiles/loc_dv1/2.0,
testsuite/modulefiles/loc_dv1/3.0, testsuite/modulefiles/loc_dv2/1.0,
testsuite/modulefiles/loc_dv2/2.0, testsuite/modulefiles/loc_dv3/1.0,
testsuite/modulefiles/loc_dv3/2.0, testsuite/modulefiles/loc_dv4/1.0,
testsuite/modulefiles/loc_dv4/2.0, testsuite/modulefiles/loc_dv6/1.0,
testsuite/modulefiles/loc_dv7/1.0, testsuite/modulefiles/loc_dv7/3.0,
testsuite/modulefiles/loc_dv8/1.0, testsuite/modulefiles/loc_dv8/2.0,
testsuite/modulefiles/loc_dv9/.version, testsuite/modulefiles/loc_dv9/1.0,
testsuite/modulefiles/loc_dv9/2.0, testsuite/modulefiles/loc_dvv1/.common,
testsuite/modulefiles/loc_dvv1/.modulerc,
testsuite/modulefiles/loc_dvv1/.version, testsuite/modulefiles/loc_fq/1.0,
testsuite/modulefiles/loc_fq/2.0, testsuite/modulefiles/loc_rc5/1.0,
testsuite/modulefiles/loc_rc5/2.0, testsuite/modulefiles/loc_sym/alias3,
testsuite/modulefiles/loc_sym/alias5, testsuite/modulefiles/loc_sym/alias8,
testsuite/modulefiles/loc_sym/getvers10,
testsuite/modulefiles/loc_sym/getvers5,
testsuite/modulefiles/loc_sym/getvers6,
testsuite/modulefiles/loc_sym/getvers7,
testsuite/modulefiles/loc_sym/versinf3,
testsuite/modulefiles/loc_sym/versinf4,
testsuite/modulefiles/loc_sym/versinf5,
testsuite/modulefiles/loc_sym/version11,
testsuite/modulefiles/loc_sym/version12,
testsuite/modulefiles/loc_sym/version13,
testsuite/modulefiles/loc_sym/version14,
testsuite/modulefiles/loc_sym/version2,
testsuite/modulefiles/loc_sym/version3,
testsuite/modulefiles/loc_sym/version4,
testsuite/modulefiles/loc_sym/version6,
testsuite/modulefiles/loc_sym/version7,
testsuite/modulefiles/loc_sym/version8,
testsuite/modulefiles/loc_sym/version9, testsuite/modulefiles/spread/1.0,
testsuite/modulefiles/spread/2.0, testsuite/modulefiles/spread/3.0,
testsuite/modulefiles/spread/4.0, testsuite/modulefiles/spread/5.0,
testsuite/modulefiles/spread/6.0, testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spread/8.0, testsuite/modulefiles/spreadrc/dir1/1.0,
testsuite/modulefiles/spreadrc/dir2/1.0,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/1.0,
testsuite/modulefiles/spreadrc/dir5/1.0,
testsuite/modulefiles/spreadrc/dir6/1.0,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/1.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/200-errdisp.exp,
testsuite/modules.70-maint/271-adv_version_spec-in.exp,
testsuite/modules.70-maint/272-adv_version_spec-range.exp,
testsuite/modules.70-maint/273-adv_version_spec-space.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/350-term_width.exp,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/999-cleanup.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/020-avail.exp: Fix typos found by codespell
2022-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: move from centos8 to rockylinux8
2022-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. shell completion features in MIGRATING
2022-02-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/400-source-sh.exp: ts: add refresh tests on
source-sh in 50/400
* doc/source/design/shell-completion.rst,
.../design/source-shell-script-in-modulefile.rst,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/540-complete.exp: doc/ts: completion is first
cleared before set on fish
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Ensure pre-existing fish
completion is cleared When defining completion for a given command on fish
shell, start by clearing any potential previous completion definition.
Modulefile should this way provide the full completion definition for
command and cannot rely on partial definition coming from other sides.
2022-02-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. completion support on source-sh/sh-to-mod in NEWS
* .../design/source-shell-script-in-modulefile.rst: doc: desc. shell
completion support on source-sh in design
* doc/source/changes.rst: doc: desc. completion support on
sh-to-mod/source-sh in changes
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc. completion
support on sh-to-mod/source-sh man
2022-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.fish, testsuite/modulefiles.2/source-sh/7.2,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test fish complete on
sh-to-mod/source-sh
2022-02-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.sh, testsuite/modulefiles.2/source-sh/7.1,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test bash complete on
sh-to-mod/source-sh
2022-02-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.csh, testsuite/modulefiles.2/source-sh/7.0,
testsuite/modulefiles.2/source-sh/8.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: test tcsh complete on
sh-to-mod/source-sh
2022-02-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in: Tcsh support for complete/uncomplete changes on
sh-to-mod Update execShAndGetEnv procedure to add support for complete and
uncomplete changes on sh-to-mod for tcsh shell.
* tcl/mfinterp.tcl.in: Fish support for complete/uncomplete changes on
sh-to-mod Update execShAndGetEnv procedure to add support for complete and
uncomplete changes on sh-to-mod for fish shell.
* tcl/mfinterp.tcl.in: Bash support for complete/uncomplete changes on
sh-to-mod Update execShAndGetEnv procedure to add support for complete and
uncomplete changes on sh-to-mod for bash shell.
* tcl/mfinterp.tcl.in, tcl/modfind.tcl.in: Support for complete/uncomplete
changes on sh-to-mod Update the sh-to-mod and execShAndGetEnv procedures to
analyze complete and uncomplete changes on sourced shell script and render
the corresponding modulefile commands. Add basic code for shells that do no
support complete/uncomplete environment changes.
2022-02-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/020-module.exp,
testsuite/modulefiles.3/complete/1.0, testsuite/modulefiles.3/complete/1.1:
ts: add complete test in install ts
2022-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/complete/.modulerc,
testsuite/modulefiles.3/complete/1.1, testsuite/modulefiles.3/complete/1.2,
testsuite/modules.50-cmds/541-uncomplete.exp: ts: add tests for uncomplete
mfcmd in 50/541
2022-01-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/complete/.modulerc,
testsuite/modulefiles.3/complete/1.0, testsuite/modulefiles.3/complete/1.2,
testsuite/modulefiles.3/complete/2.0,
testsuite/modules.50-cmds/540-complete.exp: ts: add tests for complete mfcmd
in 50/540
2022-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for
complete/uncomplete
* doc/source/modulefile.rst: doc: desc. complete/uncomplete in man
* NEWS.rst, doc/source/changes.rst: doc: desc. complete/uncomplete in
NEWS/changes
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: Add
complete/uncomplete modulefile commands Introduce the complete and
uncomplete modulefile commands to define completion mechanism on running
shell. It supports only shell with completion capabilities that could be
defined with shell commands: bash, tcsh and fish. complete command takes a
shell name as first argument to apply completion specification only if
currently running shell corresponds to this shell name set as argument. This
is done as completion implementation is really different from one shell to
another. Also the arguments passed after command name are specific of the
shell and are not checked by module command. When unloading module,
complete becomes uncomplete. uncomplete can also be set as an independent
modulefile command and only acts on load evaluation module. complete is also
evaluated in refresh evaluation mode to push completion definition in
sub-shells for instance. Multiple completion definition for the same
command may be defined and will be applied to shell. Some shell, like fish,
needs multiple complete commands to fully define all parameters for the
completion of a single command.
* NEWS.rst, doc/source/design/shell-completion.rst: doc: add
shell-completion design notes
2022-01-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/230-verbosity.exp: ts: check trace of
dynamically defined procs
2022-01-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/list/1.0, testsuite/modulefiles.3/list/2.0,
testsuite/modulefiles.3/variant/6.0,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.50-cmds/530-module-list.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/361-list_output.exp,
testsuite/modules.70-maint/400-list-search.exp: ts: test pattern search on
list sub-cmd
2022-01-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: improve pattern search desc. on avail subcmd
2022-01-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst: doc: desc. list
filtering in NEWS/changes/man
2022-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.70-maint/190-emptyarg.exp: ts: adapt existing tests now
list accepts args
2022-01-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/init.tcl.in, tcl/subcmd.tcl.in: Add search capabilities to list subcmd
When module specification is passed to the list sub-command, only output the
loaded modules that matches at least one of these specification (OR
operation). Sub-command header message is adapted when module
specifications are passed to the sub-command. However same header message is
reported if there is no loaded module to report from the start. Search
capabilities rely on the modEq comparison procedure, so it takes into
account the search_match mode (starts-with/contains), the alternative names
set over loaded modules and the variant defined. Only the first specified
search pattern is set for SGR highlight due to the current limitation of
reportModules procedure (which only accepts one mod argument).
2022-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modspec.tcl, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: Restore psuf arg on modEq proc
Pattern suffix is useful again on modEq comparison procedure due to the
introduction of search capabilities on the list sub-command.
2022-01-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow search match
option on list subcmd Allow to pass the search match options (-S/-C) to the
list sub-command.
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Allow mod spec as
argument to list subcmd Allow the list sub-command to receive module
specifications as argument.
* tcl/modspec.tcl: Trace dynamically defined procs in debug2 mode When
verbosity is set to debug2 or an higher mode, also add trace to the
procedure that are dynamically generated during the modulecmd.tcl run.
2022-01-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, testsuite/modules.00-init/090-switches.exp: Add
--initial_load cmd-line option Add dummy support for the --initial_load
command-line option for compatiblity with script written for Lmod. Goal
here is just to avoid error when this option is used.
* tcl/main.tcl.in, testsuite/modules.00-init/090-switches.exp: Add
--no_redirect cmd-line option Add dummy support for the --no_redirect
command-line option for compatiblity with script written for Lmod. Goal
here is to avoid error when this option is used. Support not added within
module shell function.
2022-01-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: add ref to reduce-io-load recipe in MIGRATING
* MIGRATING.rst, doc/source/changes.rst,
doc/source/cookbook/reduce-io-load.rst: doc: fix typos in
MIGRATING/changes/reduce-io-load
2022-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/_static/terminal_output.css, doc/source/conf.py,
doc/source/cookbook/reduce-io-load.rst: doc: add reduce-io-load cookbook
recipe
2022-01-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/flatlcompat,
testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.8,
testsuite/modulefiles.3/lcompat/1.9/1.9,
testsuite/modulefiles.3/lcompat/1.9/2.0,
testsuite/modules.50-cmds/519-family.exp: ts: test family mfcmd in 50/519
2022-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/lmod-tcl-modulefile-compat.rst: doc: desc. family in
design doc
* NEWS.rst: doc: desc. family/MODULES_FAMILY_<NAME> in NEWS
* contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for family
mfcmd
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
MODULES_FAMILY_<NAME> in man/changes
* doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. family in
man/changes
2022-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in: Add family modulefile command Introduce the family
modulefile command that indicates currently loading module provides name
passed as argument and this name could only be provided by one loaded
module. family is implemented with the combined definition of a conflict
and a module alias. An environment variable is set to indicate what module
currently provides for the family within the loaded environment.
2022-01-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/puts/prestdout,
testsuite/modules.50-cmds/311-puts-prestdout.exp: ts: test prestdout channel
on puts command in 50/311
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
prestdout channel in man/changes/NEWS
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl: Add prestdout
channel to puts command Introduce the prestdout channel for the modified
puts command to be able to set specific content prior any other content sent
to stdout after the environment changes generated by modulefile evaluation.
Fixes #432
* NEWS.rst, doc/source/modulefile.rst: doc: desc. puts mfcmd in man
2022-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: desc auto_handling on prereq in man
2022-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Clean useless code in setLoadedAltname
2022-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. mcookie_check in MIGRATING
2022-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in: Protect 'file mtime' call when do not know what we
check Catch error of file mtime when targeted file has not been checked
previously (when mcookie_check is set to 'eval').
2022-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. mcookie_check in NEWS
2021-12-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/loc_dv1/3.0, testsuite/modulefiles/loc_dv4/1.0,
testsuite/modulefiles/loc_dv4/2.0, testsuite/modulefiles/loc_rc1/.modulerc,
testsuite/modulefiles/loc_virt2/.modulerc, testsuite/modulefiles/mcookie/1,
testsuite/modules.00-init/005-init_ts.exp,
.../modules.20-locate/130-mcookie_check_eval.exp,
testsuite/modules.61-coll/040-restore.exp: ts: test mcookie_check set to
eval in 20/130
2021-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/magic-cookie-check.rst: doc: add
magic-cookie-check design notes
2021-12-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test mcookie_check config
option
* tcl/modfind.tcl.in: No mcookie check when searching module Update
checkValidModule to skip Module magic cookie check in file if mcookie_check
configuration option is not set to 'always'. When mcookie_check is set to
'eval', files are not read when searching modulefiles. Which means any file
located within a modulepath directory is considered a modulefile. An error
will be obtained if an attempt is made to evaluate a non-modulefile located
in a modulepath directory. Also if a modulefile is specified fullpath,
Modules magic cookie will also not be checked if mcookie_check is set to
'eval', and if this file is not a modulefile an error will be obtained if an
attempt is made to evaluate this file.
2021-12-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst, doc/source/modulefile.rst:
doc: desc mcookie_check in changes/man
* doc/source/changes.rst, doc/source/module.rst: doc: desc
MODULES_MCOOKIE_CHECK in changes/man
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add mcookie_check config to completion script
* tcl/init.tcl.in: Add mcookie_check configuration option Add the
mcookie_check configuration option that controls whether or not the magic
cookie at the start of modulefile (`#%Module`) need to get checked.
2022-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, doc/source/conf.py, tcl/coll.tcl, tcl/envmngt.tcl.in,
tcl/init.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
tcl/modfind.tcl.in, tcl/modspec.tcl, tcl/report.tcl.in, tcl/subcmd.tcl.in,
tcl/util.tcl: New year (2022) copyright mention update
2021-12-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: precise python-sphinx deps on
Cygwin Need to precise all sphinxcontrib packages required as dependency
specification of python37-sphinx Cygwin package is regularly broken.
2021-12-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/notreq/loadany,
testsuite/modulefiles.3/notreq/loadanymul,
testsuite/modulefiles.3/notreq/tryload,
testsuite/modulefiles.3/notreq/tryloadmul,
testsuite/modules.50-cmds/431-not-req.exp: ts: test --not-req with module
try-load/load-any in 50/431
* tcl/main.tcl.in: Add support for --not-req on module try-load/load-any
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
--not-req support on module try-load/load-any
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc. load-any in NEWS/changes/man
* NEWS.rst, doc/source/changes.rst, doc/source/design/module-tags.rst,
doc/source/modulefile.rst: doc: desc. --tag opt on load-any in
NEWS/changes/man/design
* doc/source/design/add-new-sub-command.rst: doc: desc. module-info command
in add new subcmd guide
* testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/465-tag-opt.exp: ts: add --tag tests for load-any
subcmd in 50/465
2021-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/loadany/.modulerc,
testsuite/modulefiles.3/loadany/1.0, testsuite/modulefiles.3/loadany/2.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/518-load-any.exp: ts: test load-any subcmd in
50/518
2021-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add load-any
test/doc on 'module-info command'
* testsuite/modulefiles.2/modemptyarg/load-any,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp: ts: adapt existing tests
for try-load subcmd
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add load-any
sub-cmd to completion scripts
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Introduce load-any
sub-command Add the load-any module sub-command that loads first valid
module in specified list. Errors for unknown modulefile are silenced like
for try-load sub-command. add-any is an alias over load-any sub-command.
The any_modulefile state is introduced to indicate cmdModuleLoad to stop
after first loaded modulefile in list. When used from a modulefile
evaluation context, load-any first checks if a module from its specified
list is already loaded. If this is the case, no additional requirement load
is performed as constraint is considered satisfied.
2021-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/modeval.tcl: Move requirement load code of prereq
in dedicated proc Create the dedicated loadRequirementModuleList procedure
to attempt to load a list of module requirement in an OR operation. This
procedure is called by prereq modulefile command when auto_handling mode is
enabled.
2021-12-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/lmod-tcl-modulefile-compat.rst: doc: desc module
load-any in design doc
* doc/source/design/lmod-tcl-modulefile-compat.rst: doc: desc. always-load
in design doc
2021-12-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/467-keep-loaded.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp: Ensure no duplicate in tags set
to module Update setModuleTag procedure to avoid adding a tag to module
which is already set to avoid duplicate entries. Adapt existing tests.
2021-12-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
always-load in NEWS/changes/man
* testsuite/modules.50-cmds/465-tag-opt.exp: ts: fix tests in 50/465 for Tcl
8.5
2021-12-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/keep/1.0,
testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.7, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/467-keep-loaded.exp,
testsuite/modules.50-cmds/517-always-load.exp: ts: test always-load mfcmd in
50/{465,467,517}
* tcl/mfinterp.tcl.in: Add always-load modulefile command Introduce
always-load modulefile command that loads all modulefile specified (AND
operation) and applies to them the keep-loaded module tag in order to avoid
these modules to get automatically unloaded.
2021-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, testsuite/modules.50-cmds/465-tag-opt.exp,
testsuite/modules.50-cmds/515-depends-on.exp,
testsuite/modules.50-cmds/516-prereq-all.exp: Pass mfcmd name to
parsePrereqCommandArgs proc
* contrib/vim/syntax/modulefile.vim: vim: add syntax highlight for
always-load mfcmd
2021-12-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/vim/syntax/modulefile.vim: vim: add
prereq-{all,any}/require-filename/depends-on mfcmds
* testsuite/modulefiles.3/keep/1.0, testsuite/modulefiles.3/keep/2.0,
testsuite/modules.50-cmds/467-keep-loaded.exp: ts: test keep-loaded module
tag in 50/467
* doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing only
html directive in mans
* NEWS.rst: doc: desc keep-loaded tag in NEWS
* doc/source/changes.rst: doc: fix missing tag_abbrev mconfig in changes
2021-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/design/module-tags.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc keep-loaded tag in INSTALL/design/mans
* configure: install: add default abbrev/sgr for keep-loaded tag
* tcl/modeval.tcl: Add keep-loaded module tag Introduce the keep-loaded
module tag that avoids an auto-loaded module to get automatically unloaded
when all its dependent modules are unloaded.
2021-12-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: reorg option desc for load/switch/try-load in
man
* doc/source/module.rst: doc: fix sort of try-add subcmd in man
* NEWS.rst, doc/source/changes.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc --tag option in changes/NEWS/mans
* testsuite/home/coll39, testsuite/home/coll40, testsuite/home/coll41,
testsuite/home/coll42, testsuite/home/coll43,
testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: add collection tests for
--tag option
2021-12-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp: ts: adapt existing collection
tests for --tag record
* tcl/coll.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Create
getExportTagList from getTagList Create getExportTagList procedure to get
list of tags applying to module that can be exported (not loaded or hidden).
Use getExportTagList when building persistency variable so serializing code
is only useful in this procedure and not anymore in getTagList.
* testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: fix auto-loaded module
restore tests in 61/040
2021-12-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/coll.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Save tags set on
loaded modules in collection Adapt collection mechanism to dump the tags
set on loaded module when saving a collection and setting them back when
collection is restored. Tags are recorded in collection with the --tag=
option set on module load lines. Previously used --notuasked option is still
processed if found in collection but when saving new ones the auto-loaded
tag is dumped instead 'module load --tag=auto-loaded foo/1.0' for instance.
With this current patch savec tags are restored if module is not yet loaded
at the correct position in expected loaded module list.
2021-12-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/513-prereq-any.exp,
testsuite/modules.50-cmds/515-depends-on.exp,
testsuite/modules.50-cmds/516-prereq-all.exp: ts: adapt existing prereq
tests for --tag opt
2021-12-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/8.0,
testsuite/modulefiles.3/tag/9.0, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/465-tag-opt.exp: ts: add test for --tag option in
50/465
2021-12-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/mfinterp.tcl.in: Add --tag option to prereq
modulefile command Add the --tag option for the prereq modulefile command
to be albe to precise tags to apply to loading module when auto handling
mode is enabled. This way tags could be specified whatever the dependency
mechanism used. Also apply on prereq-any, prereq-all and depends-on
modulefile commands.
2021-12-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: update module tag design for --tag
opt
2021-12-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl, tcl/subcmd.tcl.in:
Pass and apply tag_list in cmdModuleLoad Transmit the tag list specified on
module load, try-load or switch to the cmdModuleLoad procedure to apply
these tags to the module to load. Need to refine later on tag list
transmission on collection management (cmdModuleRestore) and environment
reload (reloadModuleListLoadPhase). An already loaded module will not be
reloaded if a different tag list is specified. Loaded tags for this module
are not changed either.
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add --tag= opt
to completion scripts
2021-12-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/main.tcl.in, tcl/report.tcl.in: Add parsing of --tag opt for
load/switch/try-load subcmds Adapt parseModuleCommandArgs and reportUsage
procedures to handle the --tag option for the load, switch and try-load
sub-comands. '--tag=LIST' is the syntax for the command-line whereas '--tag
LIST' is the main syntax for use within modulefiles. LIST is composed of tag
names separated by colon character. Allow --tag for unload sub-command to
avoid errors on mixed unload/load ml command.
2021-12-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.6,
testsuite/modules.50-cmds/516-prereq-all.exp: ts: add tests for prereq-all
in 50/516
2021-12-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc
prereq-all in NEWS/changes/man
* tcl/mfinterp.tcl.in: Add prereq-all modulefile command Rename depends-on
into prereq-all modulefile command and make depends-on an alias on it.
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.5,
testsuite/modules.50-cmds/515-depends-on.exp: ts: add tests for depends-on
in 50/515
* doc/source/modulefile.rst: doc: split prereq/conflict man description
* tcl/mfinterp.tcl.in: Add depends-on modulefile command Introduce the
depends-on modulefile command which defines module requirements for
currently loading modulefile. This command is an alias over prereq command
with all modulefile arguments treated as a Boolean AND operation: all
specified modulefiles are required.
* NEWS.rst, doc/source/changes.rst,
doc/source/design/lmod-tcl-modulefile-compat.rst, doc/source/modulefile.rst:
doc: desc depends-on in NEWS/changes/man/design
2021-11-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.4, testsuite/modulefiles.3/lcompatdep/1.4,
testsuite/modulefiles.3/lcompatdep/2.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/514-require-fullname.exp: ts: add tests for
require-fullname in 50/514
* tcl/mfinterp.tcl.in, tcl/modfind.tcl.in, tcl/modspec.tcl: Add
require-fullname modulefile command Introduce the require-fullname
modulefile command that raises an error if loading module is not fully
qualified. Alias and symbols are considered fully qualified versions expect
for the default symbol. Add the filter_default argument on
getAllModuleResolvedName procedure to exclude module parent name and default
symbol version from alternative name list. Update modEq procedures to call
for getAllModuleResolvedName with filter_default mode enabled when ismodlo
argument is set to 4.
2021-11-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
require-fullname in man/changes/NEWS
* NEWS.rst, doc/source/design/lmod-tcl-modulefile-compat.rst: doc: add
lmod-tcl-modulefile-compat initial version
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc
reportError and reportWarning in man/changes/NEWS
2021-11-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/lcompat/.version,
testsuite/modules.20-locate/120-moduleversion.exp: ts: test ModuleVersion in
20/120
* NEWS.rst, doc/source/changes.rst, tcl/mfinterp.tcl.in: Set ModuleVersion
as an alias over ModulesVersion Set ModuleVersion as an alias over
ModulesVersion modulefile variable for compatibility with Lmod Tcl
modulefiles.
* NEWS.rst, doc/source/modulefile.rst: doc: desc ModulesVersion mfvar in man
* NEWS.rst, tcl/mfinterp.tcl.in,
testsuite/modules.50-cmds/513-prereq-any.exp: Clear msg when no arg is
passed to prereq Produce a clear error message when wrong number of
argument is received by prereq command.
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.3,
testsuite/modules.50-cmds/513-prereq-any.exp: ts: add tests for prereq-any
in 50/513
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc
prereq-any in man/NEWS/changes
* tcl/mfinterp.tcl.in: Add prereq-any modulefile command Introduce the
prereq-any modulefile command which is a bare alias for the prereq command.
* NEWS.rst, doc/source/modulefile.rst: doc: desc
{add,remove}-property/extensions in man/NEWS
2021-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.2,
testsuite/modules.50-cmds/512-extensions.exp: ts: add test for extensions in
50/512
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.1,
testsuite/modules.50-cmds/511-remove-property.exp: ts: add tests for
remove-property in 50/511
* testsuite/modulefiles.3/lcompat/.modulerc,
testsuite/modulefiles.3/lcompat/1.0, testsuite/modulefiles.3/lcompat/2.0,
testsuite/modules.50-cmds/510-add-property.exp: ts: add tests for
add-property in 50/510
* doc/source/changes.rst: doc: desc. add-property/remove-property/extensions
in changes
* tcl/mfinterp.tcl.in: Add add-property/extensions/remove-property cmds
Introduce the add-property, extensions and remove-property modulefile
commands. Implemented as a no-operation command for modulefile evaluation
context.
2021-11-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: ts: update CI config to test completiondir install opt
2021-11-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst: doc: desc completiondir install opts in
NEWS/INSTALL
2021-11-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: use shell-specific
completion dir
* Makefile.inc.in, configure, init/Makefile, init/fish.in, site.exp.in:
install: add --with-fishcompletiondir configure opt Add the
--with-fishcompletiondir option to the configure installation script to
define a particular installation directory for the fish completion script.
If option is not defined, fish completion script is installed by default in
initdir and it is sourced in fish init script. If option is set, completion
script is installed in designated directory and fish init script does not
source it.
* Makefile.inc.in, configure, init/Makefile, init/bash.in, site.exp.in:
install: add --with-bashcompletiondir configure opt Add the
--with-bashcompletiondir option to the configure installation script to
define a particular installation directory for the bash completion script.
If option is not defined, bash completion script is installed by default in
initdir and it is sourced in bash init script. If option is set, completion
script is installed in designated directory and bash init script does not
source it.
2021-11-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile.inc.in, configure, init/Makefile, init/zsh.in, site.exp.in:
install: add --with-zshcompletiondir configure opt Add the
--with-zshcompletiondir option to the configure installation script to
define a particular installation directory for the zsh completion script.
If option is not defined, zsh completion script is installed by default in
initdir and the FPATH environment variable is set in zsh init script. If
option is set, completion script is installed in designated directory and
zsh init script does not set the FPATH environment variable. Fixes #428
* MIGRATING.rst: doc: desc. modfile command behavior opts in MIGRATING
2021-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/path-cmd-opt/1.5,
testsuite/modules.50-cmds/505-set-if-undef.exp: ts: test setenv
--set-if-undef on modfile cmds
* doc/example/top-priority-values/siteconfig.tcl,
doc/source/cookbook/top-priority-values.rst: doc: update setenv in
top-priority-values recipe config
2021-11-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/504-unset-on-unload.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: fix existing setenv tests
for --set-if-undef
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
setenv --set-if-undef in man/changes/NEWS
* tcl/mfinterp.tcl.in: Add --set-if-undef option on setenv Add the
--set-if-undef option on the setenv modulefile command. When set, the
environment variable is set when modulefile is loaded only if currently
unset. Fixes #425
2021-11-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in: Parse setenv args with parseUnsetenvCommandArgs Add
the parseUnsetenvCommandArgs procedure to parse arguments set on setenv
modulefile command. Split procedure for setenv and unsetenv commands in
whatis evaluation mode, as both commands now have different set of options
that should also be parsed in whatis mode to extract targeted environment
variable name.
* testsuite/modulefiles.3/path-cmd-opt/1.4,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/504-unset-on-unload.exp: ts: test unsetenv
--unset-on-unload on modfile cmds
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
unsetenv --unset-on-unload in man/changes/NEWS
* testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp: ts: fix existing unsetenv
tests for --unset-on-unload
* tcl/mfinterp.tcl.in: Add --unset-on-unload option on unsetenv Add the
--unset-on-unload option on the unsetenv modulefile command. When set, the
environment variable is unset when modulefile is unloaded, like it does when
modulefile is loaded.
2021-11-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/path-cmd-opt/1.3,
testsuite/modules.50-cmds/503-noop-on-unload.exp: ts: test unsetenv
--noop-on-unload on modfile cmds
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
unsetenv --noop-on-unload in man/changes/NEWS
* testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp: ts: fix existing unsetenv
tests for --noop-on-unload
* tcl/mfinterp.tcl.in: Add --noop-on-unload option on unsetenv Add the
--noop-on-unload option to the unsetenv modulefile command. Corresponds to
the actual default behavior, which is enforced even if a value to restore on
unload mode is specified.
* tcl/mfinterp.tcl.in: Parse unsetenv args with parseUnsetenvCommandArgs
Add the parseUnsetenvCommandArgs procedure to parse the arguments set on an
unsetenv moduefile command.
2021-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/path-cmd-opt/1.3,
testsuite/modules.50-cmds/503-noop-on-unload.exp: ts: test --noop-on-unload
option on modfile cmds
2021-11-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
--noop-on-unload in man/changes/NEWS
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: test --noop-on-unload
option on subcmds
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Add
--noop-on-unload on remove-path/module unuse Add the --noop-on-unload
option to the remove-path and module unuse sub-command to perform no
operation when commands are evaluated in unload mode.
2021-11-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/path-cmd-opt/1.2,
.../modules.50-cmds/502-prepend-on-unload.exp: ts: test --prepend-on-unload
option on modfile cmds
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: test --prepend-on-unload
option on subcmds
* tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Add --prepend-on-unload on
remove-path/module unuse Add the --prepend-on-unload option to the
remove-path and module unuse sub-command to append specified paths when
commands are evaluated in unload mode. If option is set prior path list
specification, this path list which is unsets when modulefile loads is
appended back when modulefile unloads. If a different path list is passed
after option specification, this list is appended on unload mode instead of
the list removed at load time. --prepend-on-unload option cannot be mixed
with --index option.
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Pass precise
behavior to apply to add-path Instead of barely setting 'add' as default
behavior to apply on add-path procedure, precise this behavior with 'append'
and 'prepend' value.
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
--prepend-on-unload in man/changes/NEWS
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
--append-on-unload in man/changes/NEWS
* doc/source/design/control-mode-behaviors.rst: doc: add noop-on-unload +
details in ctrl mode bhv design
2021-11-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/top-priority-values/siteconfig.tcl: doc: update
top-priority-values recipe config Update the siteconfig.tcl configuration
of top-priority-values cookbook recipe after the add-path/unload-path
changes.
2021-11-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/path-cmd-opt/1.0,
testsuite/modulefiles.3/path-cmd-opt/1.1,
testsuite/modules.50-cmds/500-remove-on-load.exp,
testsuite/modules.50-cmds/501-append-on-unload.exp: ts: additional
--remove-on-unload/--append-on-unload tests
* tcl/subcmd.tcl.in, testsuite/modules.50-cmds/500-remove-on-load.exp,
testsuite/modules.50-cmds/501-append-on-unload.exp: Allow use of
--remove-on-unload on module unuse Even if it corresponds to the default
behavior, allow the use of the --remove-on-unload option on the module unuse
modulefile command. Adapt existing tests.
* tcl/envmngt.tcl.in, testsuite/modules.50-cmds/500-remove-on-load.exp,
testsuite/modules.50-cmds/501-append-on-unload.exp: Allow --remove-on-unload
to get set after variable name Adapt parsePathCommandArgs procedure to
allow the --remove-on-unload option to get set after the variable name, like
for --append-on-unload. Adapt existing tests.
* testsuite/modules.50-cmds/501-append-on-unload.exp: ts: fix
append-on-unload tests for reuse of load path list
* tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Reuse more path list defined for
load in parsePathCommandArgs In case the --append-on-unload argument is set
after environment variable name but prior path list definition, the path
list to use for load evaluation will also be used on the append behavior
during unload evaluation. In addition, if no path list is defined after
--append-on-unload argument, the list used for load evaluation is reused on
the append behavior of unload evaluation. Applies to remove-path and module
unuse modulefile commands.
* tcl/report.tcl.in: Filter internal cmd starting from $ sign from stack
trace Update the formatErrStackTrace procedure to filter from error stack
trace the internal calls made through the use of a variable to designate the
command to call (like done in runModuleUse).
* tcl/subcmd.tcl.in: No error catch in runModuleUse Remove the error catch
set in runModuleUse when calling for add-path or unload-path. Errors are
this way rendered like any other: internal module bug if called during a
modulefile evaluation or top error with report link advice.
2021-11-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/path-cmd-opt/1.1,
testsuite/modules.50-cmds/501-append-on-unload.exp: ts: test
--append-on-unload option on modfile cmds
* tcl/subcmd.tcl.in: Make runModuleUse rely on add-path/unload-path Make
the runModuleUse procedure rely on the add-path and unload-path procedures
rather {append,prepend,remove}-path to be able to precise the current
evaluation mode.
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Align add-path args with
unload-path Adopt same argument list for add-path procedure as unload-path
to make it easy to dynamically call one or the other.
* tcl/main.tcl.in, tcl/subcmd.tcl.in: Pass down eval mode to runModuleUse
Add argument mode to the runModuleUse procedure to get knowledge of current
evaluation mode in order to distinguish a module unuse in load or unload
evaluation mode. Update the module, cmdModuleUse and cmdModuleUnuse
procedures to pass down the mode information.
2021-11-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: test --append-on-unload
option on subcmds
* tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Add --append-on-unload on
remove-path/module unuse Add the --append-on-unload option to the
remove-path and module unuse sub-command to append specified paths when
commands are evaluated in unload mode. If option is set prior path list
specification, this path list which is unsets when modulefile loads is
appended back when modulefile unloads. If a different path list is passed
after option specification, this list is appended on unload mode instead of
the list removed at load time. --append-on-unload option cannot be mixed
with --index option. Fixes #114
2021-11-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Add mode arg to
unload-path/parsePathCommandArgs Update the unload-path and
parsePathCommandArgs procedure to add a mode argument to get knowledge of
the current evaluation mode when checking passed arguments.
2021-11-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp: ts: add use/unuse tests with var ref
in modpath
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.50-cmds/040-append.exp: ts: fix comments on work to be
done in a future release
* testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: adapt existing debug msg
tests
* NEWS.rst: doc: desc. debug msg rework in NEWS
* tcl/main.tcl.in: Add debug report at end of parseModuleCommandName
* tcl/mfinterp.tcl.in: Move arg debug report of getenv/getvariant in parse
proc
* tcl/envmngt.tcl.in, tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/modeval.tcl,
tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Remove obvious debug reports Remove
the debug reports of argument passed to the procedure as they are already
generated when debug2 verbosity mode is enabled and for the debug verbosity
mode the procedures bound to a modulefile command are traced to emit a debug
report of their call.
* tcl/mfinterp.tcl.in: Trace mfcmd calls to report them in debug verbosity
mode Add trace over each modulefile/modulerc commands to report when they
are called and with what paramaters. These traces are set only if the
verbosity equals to debug. When verbosity is higher than debug, traces are
set on all modulecmd.tcl procedures.
2021-11-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst: doc: error when unk opt for use/unuse in
changes/NEWS
2021-11-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst, doc/source/modulefile.rst: doc: desc.
--remove-on-unload in man/changes/NEWS
* testsuite/modulefiles.3/path-cmd-opt/1.0,
testsuite/modulefiles.3/path-cmd-opt/2.0,
testsuite/modules.50-cmds/500-remove-on-load.exp: ts: test
--remove-on-unload option on modfile cmds
* tcl/subcmd.tcl.in: Raise error when unknown argument passed to use/unuse
Raise an error when an unknown option is passed to module use or module
unuse modulefile command.
* tcl/main.tcl.in, tcl/subcmd.tcl.in: Add runModuleUse procedure for both
use/unuse subcmd Introduce the runModuleUse procedure that is called by
cmdModuleUse and cmdModuleUnuse to share execution code between both
sub-commands. runModuleUse takes a position argument (append, prepend,
remove) and a command (use or unuse) to know what arguments are allowed and
what kind of path change to apply. Aplying module use in unload mode now
calls for cmdModuleUse with position argument set to remove. To allow same
set of arguments for the module use command whatever the evaluation mode
set.
2021-11-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Push eval mode if none on use/unuse Push a load
evaluation mode when processing module use or module unuse command only if
no evaluation mode already set.
2021-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: test --remove-on-unload
option on subcmds
* tcl/envmngt.tcl.in: Add --remove-on-unload option to remove-path Add the
--remove-on-unload option on remove-path modulefile command to also remove
the path elements specified when modulefile is evaluated in unload mode.
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Update unload-path for nop and
return bhv & var Update the unload-path procedure to return immediately
when the behavior to apply is 'nop' (no-operation). Also always make this
procedure return a list with behavior applied and variable name. Make
remove-path-un procedure (remove-path when called within an unload mode
modulefile interpreter) rely on unload-path after this change, instead of
directly calling parsePathCommandArgs.
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Precise default behavior to apply
by parsePathCommandArgs Pass down the default behavior to apply on
parsePathCommandArgs procedure to prepare ground for upcoming new arguments
to change path command behavior.
2021-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/190-emptyarg.exp: ts: update unload-path/add-path
error msgs
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Pass effective mfcmd name to
parsePathCommandArgs Update the procedure chain from append-path,
prepend-path and remove-path modulefile commands to parsePathCommandArgs, to
pass command name down the way. So add-path and unload-path are changed to
get modulefile command name as first argument and pass it down to
parsePathCommandArgs. As a consequence error message raised from
parsePathCommandArgs now use the accurate modulefile command name.
2021-10-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Revert "Pass calling name as first
arg of remove-path" This reverts commit
2970dcc2fa10725548325c7a2adf702969fc6850.
* tcl/mfinterp.tcl.in: Use specific proc for {append,prepend}-path on unload
When modulefile interpreter is set for unload mode, use specific procedures
for the append-path and prepend-path suffixed -un rather reusing remove-path
proc. This way it is possible to distinguish a real remove-path call.
2021-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/subcmd.tcl.in: Use append-path instead of add-path in subcmd procs
Update sub-command procedures to make use of append-path rather directly
add-path.
* tcl/subcmd.tcl.in: Use remove-path instead of unload-path in subcmd procs
Update sub-command procedures to make use of remove-path rather directly
unload-path.
* tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Pass calling name as first arg of
remove-path Update way to call remove-path procedure to pass as first
argument the alias name used to call it. Will enable to distinguish a true
remove-path call from an append-path call in unload mode.
2021-11-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: update OSX image version
2021-11-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst: doc: add design notes section in CONTRIBUTING
2021-11-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/add-new-sub-command.rst: doc: add
add-new-sub-command design doc
* doc/source/design/add-new-config-option.rst: doc: fix typo in
add-new-config-option design doc
2021-11-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/add-new-config-option.rst: doc: use ghcommit role in
add-new-config-option doc
* doc/source/conf.py: doc: add new 'ghcommit' sphinx role
* CODE_OF_CONDUCT.md, Makefile, NEWS.rst, README.md: Set a Code of conduct
for Modules Set a Code of conduct for the Modules project and its
community. This Code of conduct is based on the Contribution Covenant,
version 2.1.
* doc/source/design/control-mode-behaviors.rst: doc: refine
{restore,set}-on-unload in ctrl mode bhvs
2021-10-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/add-new-config-option.rst: doc: add
add-new-config-option design doc
2021-10-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/control-mode-behaviors.rst: doc: add
control-mode-behaviors design doc
2021-10-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing
only-html tag in man pages
2021-10-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/400-source-sh.exp: ts: module usage in script
run through source-sh
2021-10-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. env filtering for sh-to-mod/source-sh in NEWS
2021-10-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc var filtering
on source-sh/sh-to-mod man
* doc/source/design/source-shell-script-in-modulefile.rst: doc: desc private
env var filter on sh-to-mod design
* tcl/mfinterp.tcl.in: ignore Modules private variables on sh-to-mod
processing Filter out the variables intended for Modules private usage when
processing the environment changes made by a script evaluated by sh-to-mod
sub-command or source-sh modulefile command. _LMFILES_, LOADEDMODULES and
any variable prefixed by __MODULES_ are withdrawn this way. Closes #427.
* testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
testsuite/example/sh-to-mod.sh,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: module usage in script run
through sh-to-mod
2021-10-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/source-shell-script-in-modulefile.rst: doc: note to
extend source-sh/sh-to-mod for other tools
2021-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc state/supported_shells in NEWS
* testsuite/modulefiles.3/modbad/state,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/390-state.exp: ts: add tests for state subcmd
2021-10-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add state
subcmd to completion scripts
* tcl/main.tcl.in, tcl/report.tcl.in, tcl/subcmd.tcl.in: Introduce 'state'
sub-command Add the state sub-command to get all states or one state
specified as argument. Code that was previously reporting state for config
sub-command has been moved to a dedicated cmdModuleState procedure. state
sub-command can only be called from top level and accepts 0 or 1 argument.
Closes #426
2021-10-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst, doc/source/modulefile.rst:
doc: desc. state subcmd in man/changes
* tcl/main.tcl.in: Add supported_shells state Add the supported_shells
state to list the shells Modules is able to produce output for.
2021-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/472-getvariant.exp: ts: fix --return-value tests
for Tcl8.5 in 50/{260,472}
2021-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/5.1,
testsuite/modules.50-cmds/472-getvariant.exp: ts: add getvariant
--return-value tests in 50/472
2021-10-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/getenv/1.0,
testsuite/modules.50-cmds/260-getenv.exp: ts: add getenv --return-value
tests in 50/260
* NEWS.rst: doc: desc. --return-value option in NEWS
* doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. getvariant
--return-value option in man/changes
* tcl/mfinterp.tcl.in: Add --return-value option to getvariant modulefile
command Add the --return-value option to the getvariant modulefile command
to force to return the value of designated variant when modulefile is
evaluated in display mode.
* doc/source/changes.rst, doc/source/modulefile.rst: doc: desc. getenv
--return-value option in man/changes
* tcl/mfinterp.tcl.in: Add --return-value option to getenv modulefile
command Add the --return-value option to the getenv modulefile command to
force to return the value of designated environment variable when modulefile
is evaluated in display mode. Closes #422.
2021-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. redirect_output in NEWS/MIGRATING
2021-10-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/070-stderrtty.exp: ts: add install tests to check
redirect_output
2021-10-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: adapt autoinit test for
output redirection code
* tcl/envmngt.tcl.in: Add output redirection handling on fish module
function Update the definition of the module function for fish shell family
to support the output redirection. Now both _module_raw and module shell
functions are always defined. Default redirection behavior depends on the
interactiveness of the shell when the autoinit command is run. Then shell
code is set in module function definition to adapt behavior depending on
MODULES_REDIRECT_OUTPUT environment variable value or
--redirect/--no-redirect command-line switches.
2021-10-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/sh.in, tcl/envmngt.tcl.in: Add output redirection
handling on sh module function Update the definition of the module function
for sh shell family (sh, bash, ksh and zsh) to support the output
redirection. Now both _module_raw and module shell functions are always
defined. Default redirection behavior depends on the interactiveness of the
shell when the autoinit command is run. Then shell code is set in module
function definition to adapt behavior depending on MODULES_REDIRECT_OUTPUT
environment variable value or --redirect/--no-redirect command-line
switches.
2021-10-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, tcl/main.tcl.in, tcl/report.tcl.in,
testsuite/modules.00-init/090-switches.exp: Warn if --redirect is used on
unsupported shells --redirect is only supported on sh, bash, ksh, zsh and
fish shells. Emit a warning message when used on another shells.
2021-10-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
--redirect/--no-redirect in man/changes
* testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/220-config.exp: ts: basic tests for
--redirect/--no-redirect switches
* tcl/main.tcl.in, tcl/report.tcl.in: Add --redirect/--no-redirect cmdline
switches Add the --redirect and --no-redirect command line switches to
control where the output of the module command should be sent. When
redirected it is sent to stdout otherwise not redirected means it is left on
stderr. These command line switches have no effect within modulecmd.tcl
code. They are treated directly in module shell function to adapt output
redirection. Closes #410.
2021-10-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
MODULES_REDIRECT_OUTPUT in man/changes
* doc/source/changes.rst, doc/source/module.rst: doc: desc. redirect_output
config in man/changes
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: test redirect_output config
option
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add redirect_output config to completion script
2021-10-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/init.tcl.in: Add redirect_output configuration option Add
redirect_output configuration option that controls whether or not the output
of module command should be redirected from stderr to stdout. Enabled by
default. When configuration is modified it sets the MODULES_REDIRECT_OUTPUT
environment variable.
2021-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/changes.rst: doc: desc open value variant in
NEWS/changes
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/vrreq1/1.0,
testsuite/modulefiles.3/vrreq2/1.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp: ts: add new variant tests
to check open value variant
2021-09-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.70-maint/375-variant-whatis.exp: ts: adapt existing tests
for open value variant
* tcl/mfinterp.tcl.in: Allow variant with no accepted value list Allow to
declare variant with no list of accepted value. Such variant accepts any
value specified. Closes #405.
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc optional
variant value list in man pages
* doc/source/design/variants.rst: doc: allow variant definition with no
accepted value list
2021-10-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
version.inc.in: Release of version 5.0.1
2021-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: use newer version of icdiff (2.0.4)
* Makefile: install: use newer version of nagelfar (1.3.2)
* .cirrus.yml, .github/workflows/linux_tests.yaml: codecov: migrate to new
uploader see
https://about.codecov.io/blog/introducing-codecovs-new-uploader/. gcov
needs to be run manually with new uploader.
* doc/source/modulefile.rst: doc: fix default value returned on getenv in
man Fix documentation of getenv modulefile command to describe that an
empty string is now returned when designated environment variable is not
defined and no default value to return is specified.
* init/initrc.in: init: set min version required to run default initrc Set
in the module magic cookie of the initrc configuration file installed by
default the version of Modules required to evaluate this file. Set version
to 5.0 as current configuration file mention the quarantine_support
configuration option.
2021-10-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: clarify module subcmd allowed in
modulefile Clarify the module sub-commands that are allowed to be used
within a modulefile. Fixes #423
2021-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/envmngt.tcl.in: No warning on {preprend,append}-path --duplicates
unload Remove warning message when unloading a prepend-path or append-path
modulefile command with --duplicates option set. Fixes #421
* testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/060-remove.exp: ts: highlight --duplicates issue
when unloading
2021-09-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst, doc/source/module.rst: doc: desc.
__MODULES_AUTOINIT_INPROGRESS in man/changes
* testsuite/example/initrc.in, testsuite/modulefiles.3/refresh/5.0,
testsuite/modulefiles.3/refresh/6.0,
testsuite/modules.70-maint/120-autoinit.exp, testsuite/systest2: ts: check
autoinit loop safeguard mechanism in 70/120
* tcl/subcmd.tcl.in: Ensure no autoinit loop when set_shell_startup set Set
the __MODULES_AUTOINIT_INPROGRESS environment variable when running the
`autoinit` sub-command and quit autoinit process if this variable is found
defined and equal to 1 when starting it. Ensure this way that an autoinit
process will not be triggered indefinitely by itself when the
set_shell_startup option is enabled and some module loaded at initialization
time relies on the execution of a bash script. Fixes #414.
2021-09-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/010-environ.exp: ts: ensure shell startup is not
set when running tests
2021-09-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modfind.tcl.in, testsuite/modules.50-cmds/078-refresh.exp: Set tag on
modvr desig of loaded mod Correctly detect tags set on loaded modules when
refreshing them. Update the cacheCurrentModules procedure to record the
tags of loaded modules also on the module name version and variant list
designation. So when the `module-info tags` command is called from a
modulefile loaded with variant set, it correctly retrieves the tags defined
on this module if currently loaded. Add the report mode '6' on
getVariantList procedure to proceed like mode '1' but without updating the
key map reference.
2021-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: fix missing space between list
entries in variant doc
2021-09-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/log-module-commands/siteconfig.tcl,
doc/source/cookbook/log-module-commands.rst: doc: extend *Log module
commands* cookbook Improve the *Log module commands* cookbook to rely on
the `trace` Tcl command to track every modulefile evaluation and module/ml
procedure calls. Fixes #412.
2021-09-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* tcl/modspec.tcl,
testsuite/modules.70-maint/276-adv_version_spec-rangein.exp: Fix version res
when icase on & extdfl off Fix the advanced version specifier resolution
when the extended_default option is off and icase option is on when
resolving version list specification. Fixes #411.
2021-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/FAQ.rst: doc: desc module reload on screen session in FAQ
2021-09-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
version.inc.in: Release of version 5.0.0
* MIGRATING.rst: doc: desc. Upgraded dfl conf in MIGRATING for Modules 5
2021-09-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, doc/source/changes.rst: doc: describe first MIGRATING items
for Modules 5.0
2021-09-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst: doc: desc. new special chars for module name in
change doc
* doc/source/index.rst: doc: add ref to changes doc on index
* README.md: doc: add ref to changes doc in README
2021-09-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst: doc: desc. Modules 5 diffs in changes document
* NEWS.rst: doc: fix rst markup in NEWS
2021-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/changes.rst: doc: add config option section in changes doc
* NEWS.rst, doc/source/changes.rst: doc: reorg changes document
* MIGRATING.rst, Makefile, NEWS.rst, configure,
contrib/rpm/environment-modules.spec.in, doc/Makefile,
doc/source/{diff_v3_v4.rst => changes.rst}, doc/source/index.rst:
doc/install: rename 'diff_v3_v4' doc into 'changes'
* NEWS.rst, contrib/rpm/environment-modules.spec.in: rpm: add INSTALL.txt
Include INSTALL guide to the rpm package.
* contrib/rpm/environment-modules.spec.in, doc/Makefile, doc/example.txt,
doc/readme.txt: doc/install: remove deprecated example.txt guide
example.txt was providing hints applying to old version of Modules. Now the
new commands and configuration mechanism simplify such tasks. Should rely on
INSTALL guide instead.
2021-09-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst, .../cookbook/ensure-user-qualify-modules.rst: doc:
apply file rst markup for initrc/modulespath
* NEWS.rst, doc/source/conf.py, doc/source/module.rst: doc: document
initrc/modulespath files in module(1)
* INSTALL.rst, NEWS.rst, doc/source/module.rst: doc: fix some rst markup in
INSTALL/NEWS/module(1)
2021-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst:
doc: improve config steps explanation in INSTALL
2021-09-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, README.md: doc: add doc ref and links in README
* README.md, doc/source/index.rst: doc: update gcc example in README/index
* doc/source/index.rst: doc: add 'Get started with Modules' section in index
* doc/source/index.rst: doc: fix envvar/command markup in index
2021-09-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: clarify TOC and title of MIGRATING
* NEWS.rst: doc: desc. silent_shell_debug changes in NEWS
* doc/source/module.rst: doc: update MODULES_SILENT_SHELL_DEBUG in module(1)
* testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
ts: add silent_shell_debug autoinit test
* testsuite/modules.70-maint/220-config.exp: ts: update silent_shell_debug
config tests
* .cirrus.yml, .github/workflows/linux_tests.yaml: ts: update CI configs as
silent sh dbg is disabled by dfl
2021-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/initrc.in: init: example to enable silent_shell_debug in dfl initrc
* INSTALL.rst: doc: update --enable-silent-shell-debug-support desc in
INSTALL
* configure: install: disable silent_shell_debug by default Change
installation option --enable-silent-shell-debug-support to disable it by
default. Now the silent_shell_debug configuration option enables to locally
enable this feature from the initrc configuration file.
* Makefile, tcl/envmngt.tcl.in, tcl/init.tcl.in: Set silent_shell_debug code
if option enabled on autoinit Generate the silent_shell_debug code in
module shell function during the autoinit processing if the
silent_shell_debug configuration option is enabled. Choice made at
installation time may now be updated later on with the silent_shell_debug
configuration option. If enabled prior calling autoinit (or enabled within
initrc configuration file), the silent shell debug code will be included in
module shell function.
* init/Makefile, init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: init:
always set code for silent_shell_debug code Update initialization scripts
to make the code for the silent_shell_debug mechanism always defined there.
* NEWS.rst: doc: desc. quarantine mechanism changes in NEWS
2021-08-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULES_QUARANTINE_SUPPORT in module(1)
* doc/source/module.rst: doc: desc. __MODULES_QUARANTINE_SET in module(1)
* INSTALL.rst: doc: update --enable-quarantine-support desc in INSTALL
* testsuite/example/initrc.in, testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: add some quarantine tests
2021-08-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .github/workflows/linux_tests.yaml: ts: update CI configs as
quarantine is disabled by dfl
2021-08-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/initrc.in: init: example to enable quarantine_support in dfl initrc
* configure: install: disable quarantine_support by default Change
installation option --enable-quarantine-support to disable it by default.
Now the quarantine_support configuration option enables to locally enable
this feature from the initrc configuration file.
* testsuite/modules.70-maint/220-config.exp: ts: test quarantine_support
config option
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add quarantine_support config to completion script
* Makefile, init/Makefile, tcl/envmngt.tcl.in, tcl/init.tcl.in: Add
quarantine_support configuration option Convert the
--enable-quarantine-support installation option in a quarantine_support
configuration option. When this option is enabled the autoinit sub-command
produces the module shell code with quarantine mecahnism support. When
disabled, code is generated without quarantine support. This way decision
to have or not the quarantine mechanism code can also be made in initrc
configuration file. As a result --enable-quarantine-support installation
option new controls the default behavior to generate or not the quarantine
code, but this could now be superseded in initrc configuration file.
Different setup cases are foreseen: 1. quarantine code has been included in
module shell function, then quarantine_support config is disabled > config
disablement is not effective as shell code is already set 2. quarantine code
has not been included in module shell function, then quarantine_support
config is enabled > config enablement is not effective as shell code is
already set 3. during module initialization, quarantine_support config is
enabled in initrc > shell code generated with quarantine code 4. during
module initialization, quarantine_support config is disabled in initrc >
shell code generated without quarantine code 5. during module
initialization, quarantine_support config is enabled by default or via env >
shell code generated with quarantine code 6. during module initialization,
quarantine_support config is disabled by default or via env > shell code
generated with quarantine code
2021-08-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: update module function
def/quarantine tests
* tcl/main.tcl.in: Always enable quarantine restore mecanishm code Always
set in modulecmd.tcl script the code to restore the user environment set in
quarantine by module shell function of shell initialization script. Do not
depend on the quarantinesupport installation option to enable of disable
this code in the main procedure of the modulecmd.tcl script. Thanks to the
__MODULES_QUARANTINE_SET environment variable, we know when to branch to
execute the quarantine unhold code.
* init/bash.in, init/cmake.in, init/fish.in, init/ksh.in, init/perl.pm.in,
init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
init/zsh.in, tcl/envmngt.tcl.in, tcl/main.tcl.in: Restore quarantine if
__MODULES_QUARANTINE_SET defined Introduce the __MODULES_QUARANTINE_SET
environment variable to put back when starting modulecmd.tcl run the
environment set on hold by initialization script (for autoinit calls) or by
module shell function (for regular calls). This new environment variable is
tested to apply quarantine unhold mechanism instead of checking if the
run_quarantine configuration option is set and shell accurately supports the
mecanishm. With this change it is possible to enable or disable the
quarantine support at module initialization time (through initrc
configuration file) instead of freezing this configuration when building the
modulecmd.tcl script.
2021-08-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/cmake.in, init/fish.in, init/ksh.in, init/perl.pm.in,
init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
init/zsh.in: init: quarantine mech always set for autoinit call Update
initialization scripts to make the quarantine mechanism always defined for
the module autoinit call.
2021-08-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, .globalrc, Makefile: install: add Makefile rules to build
Gtags indexes
* INSTALL.rst, NEWS.rst: doc: alphabetically sort installation option in
INSTALL
* doc/source/design/sticky-modules.rst: doc: clarify unload sticky errors in
design doc
2021-08-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/conf.py: doc: same index template for mfcmd/mfvar than others
2021-08-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home.3/.modulerc, testsuite/home.4/.modulerc,
testsuite/home/coll-hide-once-loaded,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: test magic cookie on
init/global/user rc files
* NEWS.rst, doc/source/module.rst, tcl/mfinterp.tcl.in, tcl/modfind.tcl.in,
tcl/subcmd.tcl.in: Enforce magic cookie in source and init/user/global rc
Enforce use of the module magic cookie (i.e., `#%Module`) at the start of
global or user rc files, `initrc` configuration file or any scriptfile
passed for evaluation to the `source` sub-command. These files are not
evaluated and an error is produced if the magic cookie is missing or if the
optional version number placed after the cookie string is higher than the
version of the `modulecmd.tcl` script in use. Note that version 3.2 of
Modules was already enforcing the magic cookie for the user/global rc files.
This enforced back globally to ensure people understand, especially for the
source sub-command, that the script is made for module and it is not a shell
script. It will also help to protect module from automatically evaluating
files with expected file name but unrelated content. This commit among
things reverts 3fe71c0d.
* init/initrc.in: init: remove useless '1.0' in initrc magic cookie Remove
the '1.0' in the #%Module magic cookie header of the generated initrc
configuration file. Users may define a more appropriate magic cookie
compatibility version.
* testsuite/install.00-init/006-procs.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/060-quar.exp: ts: fix install tests when dfl
loadedmodules are set When the loadedmodules installation option is set and
if the module initialization is triggered then the default module to load
will emit a message on stderr. Adapt the testsuite code, especially the
_test_sub procedure to automatically take this situation into account (no
need to set these load message in each expected stderr answer).
* tcl/mfinterp.tcl.in, testsuite/modulefiles.3/unsetenv/2.0,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp: Error if bad arg number on
unsetenv Raise error if more than 2 arguments are set on the unsetenv
modulefile command. Specific code need to be set here as we now use args for
the unsetenv procedure (to distinguish between no value to restore and an
empty string value to restore)
* tcl/subcmd.tcl.in: rc_running state is useless for initrc eval The
rc_running state used to distinguish top evaluation from the rest is useless
for the initrc evaluation as the isTopEvaluation procedure already
recognized it as top evaluation as in this situation depth of modulename
state is 1 and above command name is source.
2021-08-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, tcl/report.tcl.in, tcl/subcmd.tcl.in,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/490-try-load.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/120-autoinit.exp: Fix module load/unload msg of
restore/source subcmds Report the modules loading and unloading during the
`module` command initialization (i.e., during the evaluation of the `initrc`
configuration file). These report messages are disabled when the `verbosity`
configuration option is set to `concise` or `silent`. During a module
`restore` or `source`, only report the module load and unload directly
triggered by these sub-commands. Load and unload triggered by other modules
are reported through the automated module handling messages of the main
modules. Register the cmdModuleSource call made by cmdModuleAutoinit as a
`source` command call to benefit from the message report mechanism. Do not
apply the same for the cmdModuleSource call made by runModulerc as those
calls will be changed to execute-modulerc in the future.
* .../modemptyarg => modulefiles.3/modbad}/source,
testsuite/modulefiles.allin/allin/1,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/090-source.exp: ts: adapt 'module source' tests
Do not remove now useless source/* modulefiles not to break 'module avail'
bench comparison with previous versions.
* NEWS.rst, tcl/main.tcl.in, tcl/subcmd.tcl.in: Forbid use of source subcmd
in modulefile Forbid use of `module source` command in modulefile or in an
initialization rc file, the `source` Tcl command should be used instead.
`source` module sub-command should only be called from the command-line.
Using 'module source' in a modulefile was a non-sense as it does not provide
any benefit than using the regular 'source' Tcl command. It also implied to
reverse the subcommand to the unsource one when unloading the module.
* doc/source/modulefile.rst: doc: desc when --not-req option has been added
* NEWS.rst, tcl/init.tcl.in, tcl/mfinterp.tcl.in,
testsuite/modules.70-maint/220-config.exp: Remove useless tcl_version_lt85
internal state Remove internal state tcl_version_lt85 as Tcl 8.5+ is now a
requirement.
2021-08-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modulefiles/info/.modulerc,
testsuite/modules.50-cmds/321-is-used.exp: Enable is-used mfcmd in modulerc
Make is-used modulefile command available from a modulerc evaluation
context.
* NEWS.rst, tcl/mfinterp.tcl.in, testsuite/modulefiles/system/.modulerc,
testsuite/modules.50-cmds/140-system.exp: Enable system mfcmd in modulerc
Fully enable the system modulefile command in modulerc, whatever the
underlying module evaluation mode (unload, display, whatis, etc).
2021-08-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/modulefile.rst: doc: update desc. of unsetenv on
unload in NEWS/man
* testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp: ts: update tests of unsetenv
value to restore mechanism
* tcl/mfinterp.tcl.in: Distinguish empty str from no value to restore on
unsetenv Distinguish if the unsetenv command is called without a value to
restore on unload or with an empty string value to restore.
* tcl/mfinterp.tcl.in: No var unset if unsetenv is run on unload mode Do
not unset environment variable when running the unsetenv modulefile command
during an unload evaluation with no value to restore provided. With this
change, the unsetenv command acts like the remove-path command on unload
mode.
* NEWS.rst: doc: fix few markup issues in NEWS
2021-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/design/variants.rst, doc/source/modulefile.rst,
tcl/mfinterp.tcl.in, testsuite/modulefiles.3/variant/4.0,
testsuite/modules.70-maint/372-variant-display.exp: No error if variant
unspecified on display mode No error is raised when evaluating in `display`
mode a modulefile without a value specified for the variant it defines. This
change helps to learn all the variant a modulefile defines. As a result, the
unspecified variant is not instantiated in the ModuleVariant array variable.
Fixes #406.
* NEWS.rst, init/Makefile, init/initrc.in: init: set modulepaths only in
modulespath if installed When the installation option
`--enable-modulespath` is set, the list of modulepath to enable by default
is now only defined in the `modulespath` configuration file and not anymore
in the `initrc` configuration file.
2021-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile: install: use bash shell to translate init scripts Set init
Makefile to use bash as shell to correctly expand the $'' syntax used in
translate-in-script.
2021-08-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: modulespath and initrc
are both use if deployed
2021-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/025-autoinit.exp,
testsuite/modulefiles.3/refresh/4.0,
testsuite/modules.70-maint/120-autoinit.exp: ts: test refresh mechanism
during autoinit
* NEWS.rst, tcl/subcmd.tcl.in: Eval both modulespath and initrc when
initializing When initializing Modules, evaluate the initrc configuration
file in addition to the the modulespath configuration file and not instead
of this file. initrc is evaluated after modulespath file. Both
configuration files are only evaluated if the current environment if found
unset, in other words when the MODULEPATH and LOADEDMODULES environment
variables are both found unset or empty. As initrc is evaluated after
modulespath, it has the ability to undo what was done by modulespath,
especially if it restores a module collection.
* NEWS.rst, init/initrc.in: init: add example code to load init env in
initrc Add example code in default initrc, the initialization script of
Modules, to either restore user's default collection if it exists or load a
predefined module list when initializating Modules.
* NEWS.rst, tcl/subcmd.tcl.in: Refresh loaded modules when initializing
When initializing Modules, refresh the loaded modules in case some user
environment is already configured. This is especially useful when starting a
sub-shell session as it ensures that the loaded environment in parent shell
will be correctly inherited, as the `refresh` sub-command re-applies the
non-persistent environment configuration (i.e., shell alias and function
that are not exported to the sub-shell). If a refresh has to be attempted,
loaded environment is parsed. In case this environment is inconsistent, an
error code is returned but this error is trapped and initialization
evaluation continues without launching the refresh process. No error message
is reported to avoid noise on the full shell session initialization. The
user will get the error message as soon as he will launch the next module
command that parse the loaded environment. Fixes #86.
2021-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/refresh/1.0, testsuite/modulefiles.3/refresh/2.0,
testsuite/modules.50-cmds/078-refresh.exp: ts: test
break/exit/continue/unkcmd err on refresh subcmd
* tcl/mfinterp.tcl.in, tcl/subcmd.tcl.in: Handle break/exit/continue err in
refresh subcmd
2021-08-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/078-refresh.exp: ts: test refresh subcmd in
verbose mode
* tcl/subcmd.tcl.in: Apply msg record mech to refresh subcmd
* NEWS.rst, tcl/mfinterp.tcl.in: Run resulting source-sh mfcmd through
modfile interp Evaluate the modulefile commands resulting from the
`source-sh` evaluation through the current modulefile Tcl interpreter. This
way the modulefile commands are evaluated according to the current
modulefile evaluation mode.
* NEWS.rst: doc: desc. refresh subcmd change in NEWS
* testsuite/example/initrc.in, testsuite/modulefiles.3/modbad/refresh,
testsuite/modulefiles.3/refresh/.modulerc,
testsuite/modulefiles.3/refresh/1.0, testsuite/modulefiles.3/refresh/2.0,
testsuite/modulefiles.3/refresh/3.0, testsuite/modulefiles/info/commandexp,
testsuite/modulefiles/info/mode3, testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/180-reload.exp: ts: add tests for 'refresh'
subcmd
* testsuite/config/base-config.exp: ts: allow expected result with only OK
code To produce the accurate "return true" code for tested shell.
* doc/source/modulefile.rst, testsuite/modulefiles/info/commandexp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp: ts/doc: add try-load
test/doc on 'module-info command'
* doc/source/modulefile.rst: doc: desc. new mode/cmd on 'module-info
{mode,command}'
* tcl/mfinterp.tcl.in: Set 'nonpersist' as an alias of 'refresh' eval mode
For compatibility with Modules 3.2, module-info mode returns true if tested
against the `nonpersist` string and currently in `refresh` evaluation mode.
* init/fish_completion, init/zsh-functions/_module.in: init: update refresh
subcmd desc in completion scripts
* doc/source/module.rst: doc: desc. refresh subcmd in module(1)
* tcl/main.tcl.in, tcl/mfinterp.tcl.in, tcl/report.tcl.in,
tcl/subcmd.tcl.in: Revive the refresh subcmd Restore the refresh
sub-command as it worked in version 3.2: not anymore an alias on the reload
sub-command but an evaluation of each loaded module (in their loaded order)
in 'refresh' mode. `refresh` evaluation mode only execute the modulefile
commands generating volatile environment changes like set-alias and
set-function. variant and source-sh commands should also be enabled to
ensure a modulefile evaluation that regenerates the expected volatile
environment changes. `refresh` evaluation mode does not require that the
modulefile commands triggering environment variable changes (setenv,
unsetenv, append-path, etc) to operate as the targetted variables should
already be set as the refreshed modules are loaded. Same goes for the
x-resource and system modulefile commands. Configuring these commands as 'no
operation' for this refresh mode should not disrupt the modulefile
evaluation. refresh sub-command does not accept any argument and cannot be
called within modulefile or sourced or initilization module script (initrc).
When the evaluation of a refreshed modulefile fails, the environment changes
prior this evaluation is restored. Then refresh evaluation continue on the
remaining loaded modules.
2021-08-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst: doc: clarify
already defined path on use/{append,prepend}-path Fixes #60.
* NEWS.rst: doc: update next release target in NEWS
* testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/350-allin.exp: ts: fix unuse when multiple paths
are set as one str
* NEWS.rst, doc/source/module.rst, tcl/subcmd.tcl.in: Fix unuse when
multiple paths are passed as single arg Fix unuse sub-command when sereval
modulepaths are specified as a single argument (i.e.,
`/path/to/dir1:/path/to/dir2`). Enabled modulepaths were not correctly
detected when specified this way.
* NEWS.rst: doc: desc. ignore ref count on subcmds in NEWS
2021-08-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/initrc.in, testsuite/modulefiles/use/2.0,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: add new ref count tests
on *use/*-path subcmds
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: ignore ref count from
*use/*-path subcmds
* doc/source/module.rst: doc: ignore ref count from *use/*-path subcmds
* tcl/subcmd.tcl.in: Ignore ref count on append/prepend/remove-path subcmds
The append-path, prepend-path and remove-path sub-commands are always called
from a top level context. The reference counter associated with each entry
in targeted environment variable is now ignored so: - a "module
prepend/append-path" will not increase the reference counter of a path entry
already defined unless if the duplication mode is enabled - a "module
remove-path" will remove specified paths whatever their reference counter
value.
* tcl/subcmd.tcl.in: Ignore ref count on use/unuse subcmds When the use and
unuse sub-commands are called from a top level context, ignore the reference
counter associated to each entry in the MODULEPATH environment variable.
This way a "module use" called from top context will not increase the
reference counter of a path entry already defined and a "module unuse"
called from top context will remove specified paths whatever their reference
counter value.
* tcl/envmngt.tcl.in, tcl/mfinterp.tcl.in: Add --ignore-refcount opt to
add-path/unload-path proc Add the '--ignore-refcount' option to the
add-path and unload-path procedures (parsed by parsePathCommandArgs
procedure). When set this option makes the reference counter value ignored.
Which means on add-path that the reference counter of each path element
passed is not increased unless if the duplication mode is enabled. On
unload-path it means that the reference counter is not take into account and
each path element is removed (even if the reference counter is greater than
1).
* tcl/subcmd.tcl.in: Pass all paths at once to {add,unload}-path in
use/unuse Update cmdModuleUse and cmdModuleUnuse to pass all the paths
specified respectively for addition or removal to the underlying environment
management procedure (respectively add-path and unload-path).
* tcl/main.tcl.in: Add isTopEvaluation proc Gather in a dedicated procedure
named isTopEvaluation the test to know if current evaluation is made at top
level. "Top level" is either: (1) at the modulecmd level (module command
written by user in terminal or script) or (2) during the evaluation of rc
or modulefile by a source or autoinit sub-command triggered from modulecmd
level or (3) during the evaluation of global rc file. (2) and (3) are
considered "extended" top evaluation contexts.
2021-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.70-maint/151-prepend-path.exp: ts: unset ref cnt var if
found set but no cnt to record
* tcl/envmngt.tcl.in: Unset ref cnt var if found set but no cnt to record
Unset the reference counter variable if it is found defined whereas there is
no counter to record for the associated path-like variable.
* testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: add new reference
counter tests
* tcl/envmngt.tcl.in: Ignore reference count lower than 1 If a reference
count for an element in a path-like variable is lower than 1, this value is
ignored which means element is considered added only once.
2021-08-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/040-load-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.95-version/020-load-version.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/050-fullpathentry.exp: ts: update tests for ref
cnt change for elt added once
* NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst: doc: desc
removal from ref count var of elts added once
* tcl/envmngt.tcl.in: Update ref count var when element is added several
times When an element is added to a path-like variable through the
append-path or prepend-path modulefile commands, add this element to the
associated reference counter variable only when this element is added
multiple times to the path-like variable. When an element is removed from a
path-like variable, this element is removed from the reference counter
variable when its counter is equal to 1. Exception is made when element is
an empty string: in this case element is added to the reference counter
variable even if only added once to the path-like variable in order to
distinguish between an empty path-like variable and a path-like variable
containing an empty string as single element.
* NEWS.rst: doc: desc. __MODULES_SHARE_* renaming in NEWS
* testsuite/install.00-init/005-init_ts.exp,
testsuite/modules.00-init/005-init_ts.exp: ts: remove lassign/lreverse proc
setup for Tcl8.4 Since Tcl8.5 or later is now required.
2021-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: update reference to renamed
__MODULES_SHARE_* vars
* script/mb: script: update modshare var name in mb
* testsuite/config/base-config.exp,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/280-ml.exp: ts: update reference to renamed
__MODULES_SHARE_* vars
* tcl/envmngt.tcl.in, tcl/subcmd.tcl.in: Use '__MODULES_SHARE_' prefix on
ref count env var Rename the environment variables used to record the
reference count of each element in path-like environment variables. A
`__MODULES_SHARE_` prefix is applied to the name of these variables instead
of the `_modshare` suffix to indicate they are intended for Modules internal
use of only. It also helps with DYLD_* environment variables where using a
suffixed-variable led to warning messages on OS X.
* NEWS.rst: doc: desc no more ref count for mod-specific vars in NEWS
* testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/320-tags.exp: ts: empty elts are now cleared from
variable Adapt tests with element elements injected in Modules environment
variables like LOADEDMODULES: since there is no more reference counter
variable (like LOADEDMODULES_modshare) the empty entries added on such
variable are cleared when a new entry is added to the variable. Such empty
entries are non-sense for these Modules variables so having them cleaned
when the variable is updated is a positive side effect.
2021-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.70-maint/280-ml.exp: ts: correct erroneous env of some
tests
2021-08-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp, testsuite/modulefiles/spread/3.0,
testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.10-use/040-load-use.exp,
testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
.../modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
.../modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/116-forbid-before-after.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/322-is-avail.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps-fullpath.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
.../modules.50-cmds/376-switch-change-vers.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/391-function-undo.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/410-modvar.exp,
testsuite/modules.50-cmds/420-versioncmp.exp,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/476-variant-aliassym.exp,
testsuite/modules.50-cmds/477-variant-info.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp,
testsuite/modules.50-cmds/490-try-load.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/231-verbose2.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/250-nan.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
.../276-adv_version_spec-rangein.exp, testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/300-err_stack.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/321-tag_abbrev.exp,
testsuite/modules.70-maint/322-tag-sgr.exp,
testsuite/modules.70-maint/330-large-file.exp,
testsuite/modules.70-maint/340-output-key.exp,
testsuite/modules.70-maint/350-term_width.exp,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/371-variant-msg.exp,
testsuite/modules.70-maint/372-variant-display.exp,
testsuite/modules.70-maint/373-variant-help.exp,
testsuite/modules.70-maint/374-variant-test.exp,
testsuite/modules.70-maint/375-variant-whatis.exp,
testsuite/modules.70-maint/376-variant-tag.exp,
.../modules.70-maint/377-variant-shortcut.exp,
testsuite/modules.80-deep/020-load-deep.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.80-deep/080-access-deep.exp,
testsuite/modules.80-deep/090-deepvirt.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.90-avail/100-tags.exp,
testsuite/modules.91-sort/040-load-sort.exp,
testsuite/modules.95-version/020-load-version.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/050-fullpathentry.exp: ts: no ref count on most
Modules-specific env var
* tcl/envmngt.tcl.in: No ref count for Modules-specific path variables
Exclude the Modules-specific variables (like LOADEDMODULES) from the
reference counting mechanism. As a result no <VAR>_modshare variable is set
in user environment for these variables. Exception is made for MODULEPATH
environment variable that still benefit from the mechanism. This change is
made as the reference counting mechanism is useless for all Modules-specific
variables except for MODULEPATH. Either the entries are unique (same module
cannot be loaded twice in LOADEDMODULES) or duplicate elements are allowed
(same modulefile could be used twice by virtual modules in _LMFILES_). Also
each entry in the __MODULES_LM* variables uses as prefix the loaded module
name the entry is associated to.
2021-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile: install: add Makefile rule to build Ctags index
2021-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp,
testsuite/install.00-init/010-environ.exp, testsuite/modulefiles/spread/3.0,
testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
.../modules.50-cmds/376-switch-change-vers.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/410-modvar.exp,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp,
testsuite/modules.50-cmds/490-try-load.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/250-nan.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp, .../276-adv_version_spec-rangein.exp,
testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/321-tag_abbrev.exp,
testsuite/modules.70-maint/322-tag-sgr.exp,
.../modules.70-maint/377-variant-shortcut.exp,
testsuite/modules.80-deep/020-load-deep.exp: ts: adapt tests for
__MODULES_LMNOTUASKED removal
* tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record loaded/auto-loaded tag on
mod name with variants Also set loaded or auto-loaded tag on the module
designation including variants, as tags to export in __MODULES_LMTAG
variable are those set on the variant designation.
2021-08-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc auto-loaded tag record change in NEWS
* doc/source/design/module-tags.rst, doc/source/diff_v3_v4.rst,
doc/source/module.rst: doc: remove ref of __MODULES_LMNOTUASKED env var
* tcl/coll.tcl, tcl/modeval.tcl, tcl/modfind.tcl.in, tcl/subcmd.tcl.in:
Check loaded/auto-loaded tag rather specific struct/proc Remove the
isModuleUserAsked procedure and g_loadedModuleUasked array. Check if the
'loaded' or 'auto-loaded' tag is set instead.
* tcl/modfind.tcl.in, tcl/subcmd.tcl.in: Record auto-loaded tag rather use
specific env variable Record the 'auto-loaded' tag for loaded modules that
have been loaded automatically, rather recording this state in a specific
environment variable __MODULES_LMNOTUASKED.
* lib/.gitignore, lib/Makefile.in: install: split lib build in two steps for
coverage To ensure the coverage files are correctly named after the .c
source file name, first build the object file then process it with linker to
build the shared library.
* NEWS.rst: doc: desc. source code split in NEWS
* CONTRIBUTING.rst: doc: desc. coverage build changes in CONTRIBUTING
2021-07-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mb: script: exclude alpha/beta and old releases in mb Exclude from
bench or profiling tests releases older than 4.3 (or 4.6 in profiling mode).
Also exclude from these tests the alpha and beta releases.
2021-07-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .github/workflows/linux_tests.yaml, script/nglfar2ccov:
script: call nglfar2ccov over each tcl split scripts
* testsuite/modules.00-init/005-init_ts.exp: ts: more precise extension
library filename guess
* .gitignore, Makefile: ts: check coverage of split tcl files Update
makefile rules to check coverage of split tcl source files rather built
modulecmd.tcl script.
2021-07-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile: install: add rules to build modulecmd.tcl from split
files modulecmd.tcl has been split in the repository in several tcl files
located in the tcl/ directory. This change has been done to make code
editing easier. modulecmd.tcl is still shipped as a single executable
script to ensure best performances. This single script is made by joining
all the tcl files from tcl/ directory. An alternative approach has been
tested where modulecmd.tcl auto loads the procedure located in external tcl
files. But a performance overhead was observed. So it has been decided to
split code to edit sources but still build and ship a standalone
modulecmd.tcl script.
2021-07-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mt, modulecmd.tcl.in => tcl/main.tcl.in: Split main procs and code
in dedicated file
* modulecmd.tcl.in, tcl/report.tcl.in: Split report procs in dedicated file
* modulecmd.tcl.in, tcl/envmngt.tcl.in: Split env management procs in
dedicated file
* modulecmd.tcl.in, tcl/util.tcl: Split utility procs in dedicated file
* modulecmd.tcl.in, tcl/init.tcl.in: Split config and state handling procs
in dedicated file
* modulecmd.tcl.in, tcl/subcmd.tcl.in: Make dedicated procs for usage msg
report Extract the usage message report from cmdModuleHelp and cmdMlHelp
procedures and create standalone procedures respectively reportUsage and
reportMlUsage. When usage message has to be printed, the appropriate
procedure can be fetched from the report side and not from the sub-command
side.
* script/mb: script: limit output header length in mb
2021-07-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, tcl/subcmd.tcl.in: Split module sub-command procs in
dedicated file
* modulecmd.tcl.in, tcl/coll.tcl: Split collection mngt procs in dedicated
file
* modulecmd.tcl.in, tcl/modspec.tcl: Split module specification procs in
dedicated file
* modulecmd.tcl.in, tcl/modeval.tcl: Split module evaluation procs in
dedicated file
* modulecmd.tcl.in, tcl/modfind.tcl.in: Split avail/loaded module find procs
in dedicated file
* modulecmd.tcl.in, tcl/mfinterp.tcl.in: Split modulefile interpretation
procs in dedicated file
* modulecmd.tcl.in: Regroup avail/loaded module find procs
* modulecmd.tcl.in: Regroup module evaluation procs
* modulecmd.tcl.in: Regroup module specification procs
* modulecmd.tcl.in: Regroup collection management procs
* modulecmd.tcl.in: Regroup module sub-commands procs
* modulecmd.tcl.in: Regroup utilities procs
* modulecmd.tcl.in: Regroup modulefile interpretation procs
* modulecmd.tcl.in: Regroup main procs and core code
* modulecmd.tcl.in: Regroup report procedures
* modulecmd.tcl.in: Regroup environment management procs
* modulecmd.tcl.in: Regroup config and state handling procs
2021-07-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
version.inc.in: Release of version 5.0.0-alpha
* script/mpub, script/mrel: script: consider alpha/beta valid release name
in mrel/mpub
* modulecmd.tcl.in: Make use of 'list' or 'lappend' instead of 'concat'
Joining two lists should be achieved with 'list' or 'lappend' commands in
conjunction with '{*}' rather using the 'concat' command.
* testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: update tests changed by use
of '{*}'
* modulecmd.tcl.in: Also use '{*}' for module proc def on Tcl Use '{*}'
instead of 'eval' in the definition of the 'module' procedure for Tcl shell.
* modulecmd.tcl.in: Use '{*}' to unfold list in place Update
'modulecmd.tcl' code to use '{*}' rather than 'eval' to unfold list in
place.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.20-locate/110-hide.exp,
.../modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/116-forbid-before-after.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/476-variant-aliassym.exp,
testsuite/modules.50-cmds/478-variant-version.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/300-err_stack.exp,
testsuite/modules.70-maint/320-tags.exp: ts: update/clean tests with
specific answer for Tcl 8.4
2021-07-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use 'in' list containment test available starting Tcl
8.5 Update 'modulecmd.tcl' code to use the 'in' list containment test from
'expr' rather the home-made isInList procedure.
* modulecmd.tcl.in: Use 'ni' list containment test available starting Tcl
8.5 Update 'modulecmd.tcl' code to use the 'ni' list containment test from
'expr' rather the home-made notInList procedure.
* modulecmd.tcl.in: Rely on 'glob -nocomplain' to raise permission error On
Tcl 8.4, the -nocomplain option of glob command was also catching file
permission error in addition to empty result error. Starting Tcl 8.5, the
-nocompain option let the permission error be thrown upward.
* modulecmd.tcl.in: Use min/max procedures available starting Tcl 8.5.
Update 'modulecmd.tcl' code to use the tcl::mathfunc::min and
tcl::mathfunc::max procedures that are available starting Tcl version 8.5.
* modulecmd.tcl.in: Remove lreverse/lassign procs provided for Tcl8.4
Remove the lreverse and lassign procedures defined when 'modulecmd.tcl'
script were running with Tcl 8.4. These two procedures are natively
available on Tcl 8.5.
* .github/workflows/linux_tests.yaml: gh: migrate Tcl 8.4 test cases to Tcl
8.5
* lib/configure.ac, lib/envmodules.c: lib: Tcl requirement moved to version
8.5+ Update Tcl Envmodules library to clean specific code required to raise
error on Tcl 8.4. Bump version of Tcl Envmodules library to 1.4.0.
* CONTRIBUTING.rst, INSTALL-win.rst, INSTALL.rst, NEWS.rst, README.md: doc:
Tcl requirement moved to version 8.5+ Update Tcl requirement to version 8.5
as Tcl 8.4 is deprecated since a long time and this version is not available
anymore on recent OS distributions. Update internal code of
:file:`modulecmd.tcl` to take benefit from the features brought by Tcl 8.5.
2021-07-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp, testsuite/modulefiles.2/quar,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/220-config.exp: ts: update reference to renamed
__MODULES_QUAR_* vars
* doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: update reference to
renamed __MODULES_QUAR_* vars
* NEWS.rst, init/bash.in, init/cmake.in, init/fish.in, init/ksh.in,
init/perl.pm.in, init/python.py.in, init/r.R.in, init/ruby.rb.in,
init/sh.in, init/tcl.in, init/zsh.in, modulecmd.tcl.in: Use
'__MODULES_QUAR_' prefix on env var set in quarantine Rename the
environment variables used to indirectly pass to `modulecmd.tcl` the value
of variables set in quarantine (variables whose name finishes with
`_modquar`). A `__MODULES_QUAR_` prefix is applied to the name of these
variables instead of the `_modquar` suffix to indicate they are intended for
Modules internal use of only.
* testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.80-deep/020-load-deep.exp: ts: update tests after LM env
var renaming
* testsuite/config/base-config.exp,
testsuite/install.00-init/010-environ.exp, testsuite/modulefiles/spread/3.0,
testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.10-use/040-load-use.exp,
testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
.../modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
.../modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/116-forbid-before-after.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps-fullpath.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
.../modules.50-cmds/376-switch-change-vers.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/410-modvar.exp,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/476-variant-aliassym.exp,
testsuite/modules.50-cmds/477-variant-info.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp,
testsuite/modules.50-cmds/490-try-load.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/231-verbose2.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/250-nan.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
.../276-adv_version_spec-rangein.exp, testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/300-err_stack.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/321-tag_abbrev.exp,
testsuite/modules.70-maint/322-tag-sgr.exp,
testsuite/modules.70-maint/340-output-key.exp,
testsuite/modules.70-maint/350-term_width.exp,
testsuite/modules.70-maint/361-list_output.exp,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/371-variant-msg.exp,
testsuite/modules.70-maint/372-variant-display.exp,
testsuite/modules.70-maint/373-variant-help.exp,
testsuite/modules.70-maint/374-variant-test.exp,
testsuite/modules.70-maint/375-variant-whatis.exp,
testsuite/modules.70-maint/376-variant-tag.exp,
.../modules.70-maint/377-variant-shortcut.exp,
testsuite/modules.80-deep/020-load-deep.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.80-deep/080-access-deep.exp,
testsuite/modules.80-deep/090-deepvirt.exp,
testsuite/modules.90-avail/100-tags.exp,
testsuite/modules.91-sort/040-load-sort.exp,
testsuite/modules.95-version/022-load2.exp: ts: update reference to renamed
__MODULES_LM* vars
* NEWS.rst, .../design/advanced-module-version-specifiers.rst,
.../design/default-latest-version-specifiers.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/module-tags.rst,
.../design/source-shell-script-in-modulefile.rst,
doc/source/design/variants.rst, doc/source/diff_v3_v4.rst,
doc/source/module.rst, doc/source/modulefile.rst: doc: update reference to
renamed __MODULES_LM* vars
* NEWS.rst, modulecmd.tcl.in, script/mb: Add '__' prefix to name of loaded
env tracking env variable Rename the environment variables that are used by
Modules to track loaded environment state (variables whose name starts with
`MODULES_LM`). A `__` prefix is added to the name of these variables to
indicate that they are intended for internal use only.
* testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps-fullpath.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch-change-vers.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/410-modvar.exp,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/476-variant-aliassym.exp,
testsuite/modules.50-cmds/477-variant-info.exp,
testsuite/modules.50-cmds/478-variant-version.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp,
testsuite/modules.50-cmds/490-try-load.exp: ts: add skip_if_quick_mode in 50
suite
2021-07-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/154-is-saved.exp,
testsuite/modules.70-maint/155-is-used.exp,
testsuite/modules.70-maint/157-info-loaded.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/200-errdisp.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/231-verbose2.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/250-nan.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
.../276-adv_version_spec-rangein.exp, testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/300-err_stack.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/321-tag_abbrev.exp,
testsuite/modules.70-maint/322-tag-sgr.exp,
testsuite/modules.70-maint/330-large-file.exp,
testsuite/modules.70-maint/340-output-key.exp,
testsuite/modules.70-maint/350-term_width.exp,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/371-variant-msg.exp,
testsuite/modules.70-maint/372-variant-display.exp,
testsuite/modules.70-maint/373-variant-help.exp,
testsuite/modules.70-maint/374-variant-test.exp,
testsuite/modules.70-maint/375-variant-whatis.exp,
testsuite/modules.70-maint/376-variant-tag.exp,
.../modules.70-maint/377-variant-shortcut.exp,
testsuite/modules.70-maint/380-edit.exp: ts: add skip_if_quick_mode in 70
suite
* testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.90-avail/100-tags.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/050-fullpathentry.exp,
testsuite/modules.95-version/090-dup-modpath-version.exp: ts: add
skip_if_quick_mode in 90/91/95 suites
* testsuite/modules.60-initx/015-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/080-access-initx.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.80-deep/020-load-deep.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.80-deep/080-access-deep.exp,
testsuite/modules.80-deep/090-deepvirt.exp: ts: add skip_if_quick_mode in
60/61/80 suites
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
testsuite/modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/116-forbid-before-after.exp,
testsuite/modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: add
skip_if_quick_mode in 00/10/20 suites
* NEWS.rst, contrib/rpm/environment-modules.spec.in: rpm: run tests in quick
mode
* NEWS.rst, script/mt, testsuite/config/base-config.exp: ts: introduce quick
test mode Introduce the non-regression quick test mode. When the
`QUICKTEST` environment variable is set to 1, only the main tests from the
non-regression testsuite are run. When first argument of the `mt` script is
`quick`, tests are run in quick mode. Goal is to complete the quick tests
in a minute, rather the 10+ minutes required by the full testsuite.
2021-07-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: remove compat specific
subpackage Remove the code that was specific to the generation of the
compat subpackage. Make environment-modules-compat subpackage obsolete by
the environment-module package, following Fedora guidelines [1] [1] https:/
/docs.fedoraproject.org/en-US/packaging-guidelines/#renaming-or-replacing-ex
isting-packages
* script/mb, script/mt: script: remove compat version-related code in mt/mb
* script/mpub, script/mrel: script: remove compat version-related code in
mrel/mpub
* NEWS.rst, doc/source/module.rst, script/modulecmd.in: Remove
MODULES_USE_COMPAT_VERSION env variable
* init/.gitignore, init/bash.in, init/bash_completion.in, init/cmake.in,
init/csh.in, init/fish.in, init/ksh.in, init/perl.pm.in,
init/profile-compat.csh.in, init/profile-compat.sh.in, init/python.py.in,
init/ruby.rb.in, init/sh.in, init/zsh.in: init: remove compat
version-related code
* README.md: doc: remove compat version transition section from README
* .gitignore, Makefile, Makefile.inc.in, doc/Makefile, init/Makefile:
install: remove compat version-related rules
* Makefile.inc.in, configure: install: remove useless gitworktree install
config var
* Makefile.inc.in, configure: install: remove useless EXEEXT install config
var
2021-07-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .github/workflows/linux_tests.yaml,
.github/workflows/windows_tests.yaml: cirrus/gh: no more test case with
compat version build
* site.exp.in, testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/030-options.exp: ts: remove install tests of
compat version
* INSTALL.rst, NEWS.rst, configure: install: remove --enable-compat-version
install option Remove installation option '--enable-compat-version'.
Compatiblity version co-installation is discontinued.
* init/.gitignore, init/Makefile, init/{modulerc.in => initrc.in},
init/{.modulespath.in => modulespath.in}: init: name default config files
initrc/modulespath Rename the configuration template files following the
new default naming scheme for these files: modulerc becomes initrc and
.modulespath becomes modulespath.
* .github/workflows/linux_tests.yaml, .gitignore, Makefile,
testsuite/example/{modulerc-1.in => initrc-1.in},
.../example/{.modulespath-empty => modulespath-empty},
.../{.modulespath-wild.in => modulespath-wild.in},
testsuite/modules.70-maint/120-autoinit.exp: ts: use default conf names in
example for tests
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/024-ml.exp,
testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/370-deps-fullpath.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp: ts: adapt full path tests when +
sign is found in modpath Plus sign in full path modulefile designation is
understood as a variant specification when advanced_version_spec config
option is enabled. So disable the option for the full path tests.
2021-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp: ts: report env properties when
starting install tests
* .cirrus.yml, .github/workflows/linux_tests.yaml,
testsuite/modules.70-maint/120-autoinit.exp: cirrus/gh: adapt setup
following default config changes
* testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/271-adv_version_spec-in.exp,
.../modules.70-maint/272-adv_version_spec-range.exp,
.../modules.70-maint/276-adv_version_spec-rangein.exp,
testsuite/modules.80-deep/090-deepvirt.exp,
testsuite/modules.91-sort/040-load-sort.exp: ts: adapt tests setup following
default config changes Now some features are enabled by default, some test
files have to be corrected to ensure the appropriate setup is made prior
running these tests.
2021-07-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/050-crossshell.exp: ts: fix subshell tests when sh
kind is bash sh is transmitting exported function definition to a bash
subshell if sh is the bash one.
* .github/workflows/linux_tests.yaml, INSTALL.rst, Makefile.inc.in,
configure, contrib/rpm/environment-modules.spec.in, init/Makefile: install:
swap --enable-dotmodulespath/--enable-modulespath Make --enable-modulespath
the primary option name and --enable-dotmodulespath the secondary option
name as .modulespath is not anymore the primary name of this configuration
file.
* Makefile, NEWS.rst, modulecmd.tcl.in,
testsuite/install.00-init/005-init_ts.exp: Look at conf files in etcdir or
initdir not both Only look at configuration files found in the location
designated by the '--etcdir' or '--initdir' option (depending on the value
of '--with-initconf-in' option). Configuration files were previously
searched in both locations.
* INSTALL.rst, NEWS.rst, configure, contrib/rpm/environment-modules.spec.in:
install: set --with-initconf-in to etcdir by default Installation option
'--with-initconf-in' is set to 'etdir' by default to locate configuration
files in the directory designated by the '--etcdir' option. Therefore the
initialization configuration file is named `initrc` in this directory, and
the modulepath-specific configuration file is named `modulespath`.
Configuration files are thus located in a traditional etcdir rather being
part of the init dir among scripts that should stay read only.
2021-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, configure: missing/doc: missing inst opt default value
mention
* INSTALL.rst, NEWS.rst, configure, contrib/rpm/environment-modules.spec.in,
init/modulerc.in: install: set --enable-set-shell-startup off by default
Installation option '--enable-set-shell-startup' is set off by default but
could be enabled once installed through the `initrc` configuration file. It
seems better to let people choose to enable this option than being surprised
to find Modules initialization script run automatically each time a
sub-shell is spawn.
* INSTALL.rst, NEWS.rst, configure: install: reset --enable-new-features
Installation option '--enable-new-features' has been reset following major
version change as all the options it implied are now enabled by default.
* INSTALL.rst, NEWS.rst, configure: install: set --with-icase on by default
Installation option '--with-icase' is set to `search` by default to activate
case insensitive match on search contexts.
* INSTALL.rst, NEWS.rst, configure: install: set --enable-color on by
default Installation option '--enable-color' is set on by default which
enables the `auto` output color mode.
* INSTALL.rst: doc: mention variant on --enable-advanced-version-spec
* INSTALL.rst, NEWS.rst, configure: install: set
--enable-advanced-version-spec on by default Installation option
'--enable-advanced-version-spec' is set on by default which activates the
Advanced module version specifiers.
* INSTALL.rst, NEWS.rst, configure: install: set --enable-extended-default
on by default Installation option '--enable-extended-default' is set on by
default which allows partial module version specification.
* INSTALL.rst, NEWS.rst, configure: install: set --enable-auto-handling on
by default Installation option '--enable-auto-handling' is set on by
default which enables the automated module handling mode.
* configure: install: remove debug statement in configure
2021-07-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: update non-existent dir
add on use subcmd
* NEWS.rst, doc/source/module.rst, modulecmd.tcl.in: Accept non-existent
modulepath on use subcmd Allow non-existent directory to be specified to
use sub-command so directory that does not exist yet could be added to
MODULEPATH prior being created. Also it may allow a shared module
configuration to define all existing paths across the network but only some
of these paths are enabled on a given host.
* modulecmd.tcl.in: Gather invalid empty name err msg in a proc Add
getEmptyNameMsg procedure to gather all error message strings when a module,
directory or collection name is an empty string.
* testsuite/install.00-init/080-args.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/015-use.exp: ts: update invalid directory name err
msg
* NEWS.rst, modulecmd.tcl.in: Update empty dir err msg on use/unuse subcmd
Align empty directory name error message obtained on use and unuse
sub-commands with message obtained when module or collection name is empty.
* testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp: ts: update getenv default
return value tests
* NEWS.rst, modulecmd.tcl.in: Return empty string on getenv if var not
defined Return by default an empty string rather `_UNDEFINED` on `getenv`
modulefile command if passed environment variable is not defined. Behavior
is this way aligned with `getvariant` procedure. It is also the most common
behavior for this kind of fetch procedure.
* NEWS.rst, modulecmd.tcl.in: Remove nop cmds from modulerc interp Do not
declare anymore the chdir, module, module-trace, module-verbosity,
module-user and module-log commands in modulerc Tcl interpreter. A clear
error message will be obtained if an attempt to use these commands is made
instead of a silent no-operation treatment.
* NEWS.rst, modulecmd.tcl.in: Remove mention of init* subcmd in usage msg
* MIGRATING.rst, doc/source/FAQ.rst: doc: advertise sh-to-mod/source-sh in
FAQ
* testsuite/install.00-init/030-options.exp: ts: remove createmodule.py
install test
* contrib/rpm/environment-modules.spec.in: rpm: remove specific installation
of createmodule.sh
* .gitignore, Makefile, NEWS.rst, script/createmodule.py.in,
script/createmodule.sh: script: remove createmodule.sh and createmodule.py
createmodule.sh and createmodule.py scripts are superseded by the
`sh-to-mod` sub-command that supports conversion from more shell languages
(ksh, zsh, fish, csh) and handles more environment changes (alias, shell
function).
2021-07-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
version.inc.in: Release of version 4.8.0
* MIGRATING.rst: doc: desc. 'Variant shortcuts' in MIGRATING
2021-07-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. 'Module variants' in MIGRATING
* .cirrus.yml: cirrus: update to python38 on FreeBSD test cases py37-sphinx
is not available anymore on freebsd-12-2 and freebsd-11-4.
* NEWS.rst, init/zsh.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Inhibit rcexpandparam Zsh
option when initializing Protect quarantine mechanism code from
'rcexpandparam' Zsh option when initializing the module command on this
shell. Fixes #403
2021-07-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: desc. variant mfcmd in modulefile(4)
2021-07-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: add 'Module variants' section in module(1)
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc. variant
specification in module(1)/modulefile(4)
* doc/source/module.rst: doc: fix syntax of edit subcmd desc. in module(1)
2021-07-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. variant work in NEWS
* doc/source/modulefile.rst: doc: add variant info to module-info in
modulefile(4)
2021-07-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULES_VARIANT_SHORTCUT in module(1)
* doc/source/module.rst: doc: desc. MODULES_LMVARIANT in module(1)
2021-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: start darwin test by updating homebrew Fix
inconsistent issue with deprecated homebrew setup.
* doc/source/modulefile.rst: doc: desc. no implicit req if module not found
by try-load
* doc/source/modulefile.rst: doc: desc. getenv on display eval mode in
modulefile(4)
* doc/source/modulefile.rst: doc: desc. ModuleVariant in modulefile(4)
* doc/source/diff_v3_v4.rst, doc/source/modulefile.rst: doc: mention getenv
introduction release
* doc/source/modulefile.rst: doc: desc. getvariant in modulefile(4)
2021-07-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. try-load addition in MIGRATING
2021-07-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. try-load addition in NEWS
* init/fish.in: init: update stderr redirection in fish init script Use of
'^' character to redirect stderr has been deprecated starting Fish version
3.1. It now produces an error. Stderr should be redirected with '2>' like on
SH shells. Hopefully '2>' redirection is also supported on old Fish versions
(all version 2 support it). This update was performed on modulecmd.tcl with
711c901 commit, but fish initialization script was forgotten at that time.
* doc/source/diff_v3_v4.rst: doc: use catch to get v3 module load behavior
in modfile Add description to the diff doc to get the behavior of Modules
v3 back when using `module load` command in modulefile. To pursue evaluation
even when the `module load` fails, enclose it within a `catch` Tcl command.
Fixes #197.
* doc/source/module.rst: doc: fix options on subcmd aliases in module(1)
* doc/source/module.rst: doc: desc try-load in module(1) man
* testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
ts: test try-load in rc file
* testsuite/modulefiles.3/tryload/.modulerc,
testsuite/modulefiles.3/tryload/1.0, testsuite/modulefiles.3/tryload/2.0,
testsuite/modules.50-cmds/490-try-load.exp: ts: add specific tests for
try-load subcmd in 50/490
* testsuite/modulefiles.2/modemptyarg/try-load,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp: ts: adapt existing tests
for try-load subcmd
2021-07-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No requirement record when try-load fails Do not record
the prereq requirement on the try-loaded module, if this load temptative
fails.
2021-07-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'try-load' sub-command Introduce the `try-load`
sub-command that could also be aliased `try-add`. try-load attempts to load
modulefile(s) but does not raise error (message or code) if module(s) cannot
be found (does not exist or forbidden). Error is still raised if an
evaluation error occurs. The `try_modulefile` internal state is added to
transmit the information that the load (or unload when load is proccessed
during an unload evaluation) is performed in *try* mode or not. Fixes #392
2021-06-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. try-load in diff doc
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add try-load
sub-cmd to completion scripts
* init/Makefile, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module.in: init: add edit
sub-cmd to completion scripts
2021-06-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Dead code cleanup in
parseModuleSpecificationProcAdvVersSpec Remove code branches in the
parseModuleSpecificationProcAdvVersSpec procedure that are never reached due
to the code refactoring done for boolean variant and variant shortcut.
2021-06-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/280-ml.exp: ts: unset MODULES_LMVARIANT on clear
subcmd tests
* modulecmd.tcl.in: Unset MODULES_LMVARIANT env var on clear subcmd
* doc/source/design/variants.rst: doc: refine desc of variant_shortcut in
design
* testsuite/modulefiles.3/variant/1.0,
.../modules.70-maint/377-variant-shortcut.exp: ts: test specific mod desig.
with variant_shortcut in 70/377
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test collection with
variant_shortcut in 61
* modulecmd.tcl.in: Ignore shortcut when reporting variant set for
collection When saving collection, do not use variant shortcut to produce
the module designation to save in collection files, as shortcuts are a
configuration that could evolve over time. Add the '5' report mode in
getVariantList procedure to avoid defined shortcuts when producing module
designation.
2021-06-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/7.0,
.../modules.70-maint/377-variant-shortcut.exp: ts: test variant_shortcut use
in modfile in 70/377
* testsuite/modulefiles.3/variant/.modulerc,
.../modules.70-maint/377-variant-shortcut.exp: ts: test module tag with
variant_shortcut in 70/377
* .../modules.70-maint/377-variant-shortcut.exp: ts: test unload subcmd with
variant_shortcut in 70/377
* .../modules.70-maint/377-variant-shortcut.exp: ts: test load subcmd with
variant_shortcut in 70/377
2021-06-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modules.70-maint/377-variant-shortcut.exp: ts: test list subcmd with
variant_shortcut in 70/377
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: add variant to default
MODULES_LIST_OUTPUT value
* testsuite/example/siteconfig.tcl-1,
.../modules.70-maint/377-variant-shortcut.exp: ts: variant_shortcut specific
config tests in 70/377
* testsuite/modules.70-maint/370-variant.exp: ts: update variant explanation
in display key in 70/370
* modulecmd.tcl.in: Explain each variant shortcut in display key For each
variant shortcut reported, add an entry in the display key to expose the
variant name associated with the shortcut.
2021-06-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework display key for variant Use a single global
array '::g_used_va' to track usage of the different variant report form
(var=val, +var, ...). Use the {variant=value} syntax to explain enabled or
disabled boolean variant in display key: {+variant}={variant=on}. As a
consequence of last point, '{variant=value}' is added to display key to
explain the {variant=on} or {variant=off} part of boolean variant key entry.
* modulecmd.tcl.in: Use defined shortcut to report variant Like boolean
variants are reported '+name' or '-name', variant with a defined shortcut
are reported using this shortcut, for instance '%value'.
2021-06-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Parse variant shortcut in module specification Adapt
the parseModuleSpecification process to also resolve the variant shortcut
defined when analyzing module specifications.
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add variant_shortcut config to completion script
2021-06-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/220-config.exp: ts: adapt existing config tests
for variant_shortcut
2021-06-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clean any variant_shortcut
config
2021-06-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst: doc: desc --with-variant-shortcut in INSTALL
* Makefile, Makefile.inc.in, configure, site.exp.in: install: add
--with-variant-shortcut configure option
2021-06-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'variant_shortcut' config option
* doc/source/design/variants.rst: doc: update boolean variant specs
2021-06-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/071-args.exp: ts: fix tests with -* arg and
advverspec enabled in 00/071
2021-06-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1: ts: update tests using '+' in mod name
in 00/120
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/6.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: bool variant and collection
in 61/{030,040}
* testsuite/modulefiles.3/variant/7.0,
testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant and
requirement in 50/479
2021-06-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant
specified multiple times in 50/479
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bad boolean variant
specification in 50/479
* modulecmd.tcl.in: Raise error if variant specification contains several
'='
2021-06-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp: ts: non-boolean variant
with boolean-like value in 50/479
* modulecmd.tcl.in: Translate var=val boolean value in canonical boolean
When variant is specified with the variant=value form, translate any boolean
value in boolean canonical form (0 or 1). Specifications are parsed prior
knowing if variant is defined as a boolean or not. Thus boolean value are
forbidden on non-boolean variant (see previous commit).
* modulecmd.tcl.in: Raise error when bool val set on non-bool variant Raise
an error when a non-boolean variant defines a boolean value in its accepted
value list. Integers which also are boolean (0 and 1) are yet accepted on
non-boolean variant. As boolean value are translated in canonical form (0
or 1) when the module specification is parsed, boolean value cannot be
defined as accepted value of non-boolean variant since it would never get
matched.
2021-06-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant and
@loaded version specifier
* testsuite/modules.50-cmds/479-variant-boolean.exp: ts: bool variant and
is-loaded/unload/switch
* testsuite/modulefiles.3/variant/4.0,
testsuite/modules.70-maint/372-variant-display.exp,
testsuite/modules.70-maint/373-variant-help.exp,
testsuite/modules.70-maint/374-variant-test.exp: ts: bool variant and
display/help/test
* testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/375-variant-whatis.exp: ts: bool variant and
is-avail/avail/path/paths/whatis
2021-06-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/370-variant.exp: ts: test boolean variant with
list sub-cmd in 70/370
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/5.0,
testsuite/modules.50-cmds/479-variant-boolean.exp: ts: test boolean variant
specification in 50/479
* modulecmd.tcl.in: Render boolean variant value as boolean json value When
reporting variant set in the JSON output mode, render the value of boolean
variant as boolean JSON value (true/false, no quote). Update the
getVariantList to provide variant with value and is-boolean flag when report
mode is set to 4.
* testsuite/modulefiles.2/{e+t.fl => e.t.fl}/1.3.1,
testsuite/modulefiles.2/{e+t.fl => e.t.fl}/1.3.7,
testsuite/modulefiles.2/{e+t.fl => e.t.fl}/1.4.5,
testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/271-adv_version_spec-in.exp,
testsuite/modules.70-maint/272-adv_version_spec-range.exp: ts: rename
'e+t.fl' test mod into 'e.t.fl' As '+' followed by alpha characters is now
a boolean variant specification, change the test module 'e+t.fl' name into
'e.t.fl'. (cannot use '*' or '?' in file name on Windows)
* modulecmd.tcl.in: Accept + char at end of module name Accept any number
of plus (+) character at the end of module name to be part of this module
name instead of being parsed as a boolean variant character. '+' character
should not be followed by alpha character otherwise it will be treated as
part of boolean variant specification. Thus 'name+' or 'name++' are
accepted module names but 'name+name' are taken as module name and enabled
boolean variant.
2021-06-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Explain var=val/+var/-var on display key Improve
display key to also explain the +variant and -variant elements. Track the
elements to report from getVariantList procedure, rather when the 'va' SGR
key is used in order to be able to distinguish the different variant kind.
* modulecmd.tcl.in: Avoid variant collect when not reporting them Adapt
reportModules procedure to avoid collecting variant for each module to
report in case these variant information should not be reported.
* modulecmd.tcl.in: Allow -* arg on cmdline for bool variant Accept any
minus argument (-*) set after the sub-command name when the
advanced_version_spec configuration is enabled and if sub-command accepts
advanced module specification. Boolean variant may be set to false this way.
2021-06-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/479-variant-boolean.exp: ts: test boolean variant
definition in 50/479
2021-06-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/476-variant-aliassym.exp,
testsuite/modules.50-cmds/477-variant-info.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/371-variant-msg.exp,
testsuite/modules.70-maint/372-variant-display.exp,
testsuite/modules.70-maint/373-variant-help.exp,
testsuite/modules.70-maint/374-variant-test.exp,
testsuite/modules.70-maint/375-variant-whatis.exp,
testsuite/modules.70-maint/376-variant-tag.exp: ts: add isbool flag to
persistency in existing vr tests
* modulecmd.tcl.in: Record is-boolean state of variant in internal/env
struct Record the is-boolean property of each variant either in the
internal structure or in the persistency information recorded in user
environment. Use this recorded property to adapt reporting of boolean
variant (use the +name or -name to report them instead of name=1 or name=0).
2021-06-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add --boolean option to variant mfcmd Add the --boolean
option to the variant modulefile command to define a boolean variant. When
set, no list of accepted value should be defined the variant and any default
value set should be a boolean value. When boolean variant is evaluated it
is checked against any value accepted as boolean by Tcl as described in Tcl
manual: "If string is any of 0, false, no, or off, then Tcl_GetBoolean
stores a zero value at *boolPtr. If string is any of 1, true, yes, or on,
then 1 is stored at *boolPtr. Any of these values may be abbreviated, and
upper-case spellings are also acceptable."
2021-06-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Parse boolean variant shortcut Add support for boolean
variant in module specification: +variant, ~variant and -variant. The
-variant syntax is not supported on ml command, as the minus sign already
means to unload specified module. ~variant and +variant could also be
defined appended to another specification word, whereas -variant must be the
start of a new specification word.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.70-maint/271-adv_version_spec-in.exp,
testsuite/modules.70-maint/280-ml.exp: ts: adapt err msg after
parseModuleSpecification update
2021-06-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Refactor parseModuleSpecificationProcAdvVersSpec Rework
code of parseModuleSpecificationProcAdvVersSpec procedure to prepare for
parsing boolean variant and variant shortcut.
* modulecmd.tcl.in: Split parseModuleSpecification in 2 procs Define
parseModuleSpecification on the fly depending on the advanced_version_spec
configuration. Two flavor of the procedure are defined, separately to
improve code readability.
2021-06-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/.modulerc,
testsuite/modulefiles.3/variant/2.1/2/1,
testsuite/modules.50-cmds/470-variant.exp: ts: test vr transmit. with hidden
mod resolution in 50/470
2021-06-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No vr array check needed on reloadModuleListLoadPhase
The vr array is the result of the reloadModuleListUnloadPhase procedure
which fills it with an entry for every module to reload. So there is no need
to check if vr contains an entry for each module to reload in
reloadModuleListLoadPhase.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: test getModuleDesignation
when sgr=0 in 00/120
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: variant redefinition with
default value in 61/030 & 50/470
* modulecmd.tcl.in: No need to define modEq in getModuleTag modEq procedure
is already defined whatever the context it is called from.
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.50-cmds/470-variant.exp: ts: test variant without name,
values and option in 50/470
2021-06-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/7.0,
testsuite/modules.50-cmds/473-variant-prereq.exp: ts: icase/ext_dfl &
versrange & altname & variant tests
2021-06-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No altname check when modEq is called in eqspec mode Do
not check alternative names of the passed module specification when modEq
procedure is called with the eqspec test mode. As in this mode, alternative
names are currently checked independently from the module they target.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/371-variant-msg.exp: Normalize other variant is
already loaded msg Use the same variant representation than anywhere else
when reporting an *other variant is already loaded* error message. Use SGR
codes to improve readability of such message.
* testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/7.0,
testsuite/modules.50-cmds/473-variant-prereq.exp: ts: icase/ext_dfl &
altname & variant tests
2021-05-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.61-coll/040-restore.exp: ts: add icase/ext_dfl & variant
tests on restore
* modulecmd.tcl.in, testsuite/modules.50-cmds/470-variant.exp: Raise error
with modnvspec from getEqArrayKeyProc When the implicit default mechanism
is disabled, raise error with the module name and version but without the
eventually specified variants.
* testsuite/modulefiles.3/variant/7.0, testsuite/modulefiles.3/vrreq1/1.0,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp: ts: add
icase/extended_default & variant tests
2021-05-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Handle break within switch on OS X On OS X platform,
when a break command is issued within a switch block the return value is
TCL_BREAK but there is no specific errorMsg set. Also :errorCode variable is
not set. Add support for this case to catch module evaluation abort.
* testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp: ts: fix module-info error
stack test in 50/{286,287}
2021-05-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc. is-dfl-specifically-asked in
variant design
* modulecmd.tcl.in: Preserve variant auto set dfl state when reloading When
running `reload` sub-command, ensure the automatically set default value
state of variant is preserved to end with the exact same loaded module
properties once reloading is finished. getVariantList procedure is adapted
to pass the '2' value to the excl_dflval argument, which means that we want
to exclude the default value that have been automatically set (so when
reloading they will be this time also automatically set).
2021-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc. forbidden version variant in
design doc
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/478-variant-version.exp: ts: test version variant
in 50/478
* modulecmd.tcl.in: Forbid use of 'version' variant name Raise an error if
variant name 'version' is used in order to avoid use of this variant name
prior implementation of the specific behaviors of this variant.
* testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.50-cmds/476-variant-aliassym.exp,
testsuite/modules.50-cmds/477-variant-info.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp: ts: adapt tests with auto set
variants
2021-05-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record if variant has been asked by user Adapt
is-default variant hint to also record if the default value was asked or if
it was automatically set. is-default hint is set to 1 if asked or to 2 if
default value was automatically set.
* doc/source/design/variants.rst: doc: desc variant in requirement spec in
design doc
* doc/source/design/variants.rst: doc: desc module-info {name,specified} &
variant in design doc
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info name &
variant tests in 50/477
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info specified &
variant tests in 50/477
2021-05-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: module-info tags/loaded & variant in
design doc
* doc/source/design/variants.rst: doc: fix module-info specified desc. when
unloading variant
* testsuite/modulefiles.3/variant/.modulerc,
testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info tags &
variant tests in 50/477
* modulecmd.tcl.in: collect tags over variant on module-info tags When
module-info tags is called, collect the tags recorded against the module
name version and variants designation to get all tags applying to currently
evaluating module.
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/477-variant-info.exp: ts: is-avail & variant tests
in 50/477
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/477-variant-info.exp: ts: module-info loaded &
variant tests in 50/477
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/477-variant-info.exp: ts: is-loaded & variant
tests in 50/477
2021-05-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst, testsuite/modulefiles.3/.modulerc,
testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/476-variant-aliassym.exp: doc/ts: no variant on
module-info {alias,symbols,version}
2021-05-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst, testsuite/modulefiles.3/.modulerc,
testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/476-variant-aliassym.exp: doc/ts: no variant on
module-{alias,virtual,version}
* testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/476-variant-aliassym.exp: ts: simple alias/sym
resolution tests with variant
* doc/source/design/variants.rst, testsuite/modulefiles.3/variant/7.0,
testsuite/modulefiles.3/vrreq1/2.0, testsuite/modulefiles.3/vrreq2/2.0,
testsuite/modules.50-cmds/473-variant-prereq.exp: doc/ts: depre mod relying
on default variant When an optional requirement is loaded by not specifying
its variant value to rely on default, the Dependent Reload mechanism will
miss to detect the dependent module to reload, as variant is not specified
on command line thus it does not match the requirement specification prior
load.
2021-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/var=val,
testsuite/modules.70-maint/370-variant.exp,
testsuite/modules.70-maint/375-variant-whatis.exp: ts: variant specified on
search context
* doc/source/design/variants.rst: doc: desc. use of variant on search
contexts
2021-05-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/4.0, testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/471-variant-unload.exp: ts: check variant impact
over modStartNb proc
2021-05-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc sticky/hide/tag in variant
design
2021-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix several typos in modulecmd.tcl's comments/debug msgs
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp,
testsuite/modules.50-cmds/462-sticky-corner.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/231-verbose2.exp: ts: adapt sticky unload
error/warn messages
* modulecmd.tcl.in: No ref to mod in sticky unload msg Remove reference to
module name in the sticky module unload message as this kind of message is
always produced under the "Unloading" message block that already provides
the module designation.
2021-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll32, testsuite/home/coll33,
testsuite/modulefiles.3/variant/.modulerc,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: check stickyness and variants
when restoring coll
* modulecmd.tcl.in: Use modvr to test stickyness reload on cmdModuleRestore
2021-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove useless cmp arg on isModuleTagged
* testsuite/modulefiles.3/variant/.modulerc,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.70-maint/376-variant-tag.exp: ts: test module-tag &
variant in 50/475 and 70/376
* modulecmd.tcl.in: Add variant support to stickyness handling Adapt
stickyness handling to support variant as, like any other tags, stickyness
may be applied to module specification including variants. When testing if
stickyness is reloading pass the currently module name version with defined
variants included. Update isStickynessReloading procedure to handle module
specification with variants. Improve by the way the test to determine if tag
applies to module name and version and then if the expected designation is
reloading or not.
* modulecmd.tcl.in: Add return_rule arg to getModuleTag Add the return_rule
argument to the getModuleTag procedure to return the module specification
that matches passed mod rather the corresponding tag and its properties.
2021-05-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No need to fetch tags or update modnamevr when unloading
There is no need to fetch the tags or update the module name version and
variants designation of an unloading module, as this information were found
complete in the persistent environment.
2021-05-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.70-maint/376-variant-tag.exp: ts: test module-forbid &
variant in 50/475 and 70/376
* doc/source/design/variants.rst: doc: variant ignored on avail/whatis
* modulecmd.tcl.in: Check nearly-forbidden tag against modnamevr Check if
the nearly-forbidden tag applies to a module by using its full name version
and variant designation. Also test if this tag applies right after
modulefile evaluation in case the update designation, with default variant
set, now matches a module-forbid rule.
* modulecmd.tcl.in: Check if forbidden tag applies right after mod eval
Right after the modulefile evaluation, the full variant designation of this
module is updated. Check is here added to verify that this new designation
does not match any module-forbid statement. If this is the case, raise an
error to undo evaluation.
* testsuite/modules.50-cmds/440-module-tag.exp: ts: fix module-tag eval
within modulefile in 50/{440,462}
* modulecmd.tcl.in: Check mod with variants against forbidden tag in
getPathToModule Update the getPathToModule procedure to check module
against the forbidden tag with its full designation (module name version and
variants).
2021-05-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: tags on variant do not appear on
avail
* modulecmd.tcl.in: Update modnamevr after mod eval in execute-modulefile
Update the module name version with variant designation once modulefile has
been evaluated in the execute-modulefile procedure. After evaluation, the
variants with default value are set, so the designation is then complete.
Tags are then collected for this new designation has it can change the tag
list applying to loading module. The up_namevr argument is added to the
execute-modulefile procedure. When set, it means the modnamevrvar argument
is a variable name from the calling context to bound to. Otherwise
modnamevrvar contains the module name version and variant string. As the
tags are fetched again after modulefile evaluation, the tags that have been
defined within modulefile are now collected and exported in persistency
variable.
* testsuite/modulefiles.3/variant/.modulerc,
testsuite/modulefiles.3/variant/.w s, testsuite/modulefiles.3/variant/7.0,
testsuite/modulefiles.3/variant/8.0,
testsuite/modules.50-cmds/475-variant-tag.exp,
testsuite/modules.70-maint/376-variant-tag.exp: ts: test module-hide &
variant in 50/475 and 70/376
* modulecmd.tcl.in: Update tag collect/query mechanisms to support variants
* modulecmd.tcl.in: Fetch variants from spec if mod not load{ed,ing} on
modEq Update modEq procedure to fetch the variants set on mod argument from
the specification of this argument if mod is not loaded or loading (ismodlo
argument set to 0).
2021-05-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Check mod name with variant to know if hidden-loaded
When loading a module, check if it is tagged hidden-loaded by comparing its
full designation (module name, version and variant). When this module is
unloading, no need to check against variant as tags are recorded in the
environment over the module name and version.
* modulecmd.tcl.in: Check variant set on hidden module spec When checking
if module is hidden, compare the variant set on the hidden specifications.
As a result, hiding specification containing variant specification should
not hide any module since hiding is checked against available module name
and version, not their variants.
* modulecmd.tcl.in: Add vrcmp option to modEq proc Add the vrcmp option to
the modEq procedure to indicate whether or not variant should be compared,
instead of relying on values of the ismodlo option.
2021-05-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc already loaded mod in variant
design
2021-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc variant cmp when restoring coll
in variant design
* modulecmd.tcl.in: Unset variant in collection means default value set In
a collection when a variant is not specified (no value set) on the module
load line it means this variant is set at the default value for variant.
Code is adapted here in getVariantList and modEq to transmit the is-default
hint for each variant set on the loaded module against which the module
specification defined in collection is compared to. The *missmeandfl*
option is added to the modVariantCmp procedure to add a specific comparison
when enabled: if the variant set on loaded module is not the default version
but this variant is not set on the collection definition, it means module
specification in collection and loaded module differ.
* modulecmd.tcl.in: Too soon to rely on autosym on
getLoadedAltAndSimplifiedName Autosymbols are not yet ready be used to
fetch simplified default names when saving/restoring collection. Currently a
module gets loaded with the default auto-symbol even if there is an explicit
default set for this module in another enabled modulepath. Also some
environment gets loaded and then after user enables the implicit_default and
advanced_version_spec options, the autosymbols will not be set but modulecmd
will expect them when saving/restoring collection.
2021-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use computed alt and simplified names when saving coll
Adapt getSimplifiedLoadedModuleList procedure, which is now only called when
saving a collection, to rely on the getLoadedAltAndSimplifiedName procedure
to fetch alternative and simplified names of loaded modules.
* testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: correct env when saving coll
with autosym in 61/040
* modulecmd.tcl.in: Make restore process rely on regular modEq cmp Adapt
getMovementBetweenList procedure to compare element in provided lists with
the modEq procedure when lists are composed of module specifications. Call
modEq with a comparison of alternative and simplified names of loaded
modules. The module restore process in cmdModuleRestore procedure only need
one call to getMovementBetweenList to get the list of module to unload, then
another call to get the list of module to load, in order to restore the
collection. Whether collection is version-pinned or not the modEq call made
during collection and loaded module comparison will also check collection
module name against loaded module simplified names.
* modulecmd.tcl.in: Compute list of alt and simplified names for loaded mods
Add the getLoadedAltAndSimplifiedName procedure that compute for designated
loaded module passed as argument the list of its alternative names and
simplified names (in case this module name version is the implicit default).
This information is only fetched from the alternative names in case the
automated symbols are generated: simplified names are part of the
alternative names in this case. Otherwise the parent module name is resolve
against currently set modulepath to determine if parent module resolves to
currently loaded module version. Add the ability on modEq procedure to
compare a module pattern against these alternative and simplified names of a
loaded module: ismodlo argument should be set to '3'.
2021-05-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll30, testsuite/home/coll31,
testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/1.0,
testsuite/modulefiles.3/variant/6.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: restore coll when different
variant loaded
2021-05-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Identify already reported conflict with evalid
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp: ts: adapt mod designation when express
as spec
2021-05-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add formatted mod designation from spec on err/warn msgs
Adapt error and warning messages relative to requirement or conflict issue
to report the module specification with the new standard module designation.
* testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/231-verbose2.exp,
testsuite/modules.70-maint/371-variant-msg.exp: ts: adapt mod designation
string
* modulecmd.tcl.in: If evalid not found use mod arg as spec in
getModuleDesignation If the specified evaluation id passed to
getModuleDesignation procedure is not found, use the mod argument as a
module specification to compute the module designation, instead of using it
as the resulting designation. Designation of switched-on module that fails
to load is this way formatted with the regular module designation syntax.
* modulecmd.tcl.in: Remove variant and separator with SGR in err/warn/info
msgs Graphically enhance variants and separators from module designation in
every error, warning or informational messages. Diminish variant graphically
impact with the se SGR code unless if it should be hightlighted (when used
in message block title).
* modulecmd.tcl.in: Improve mod designation with variant readability Remove
space between module name version and variant list and between variants in
that list. Use the separator sgr color (se) to reduce the visual impact of
{, } and : separator characters. Message reports now use same module
designation syntax than 'module list' report.
2021-05-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp,
testsuite/modules.70-maint/371-variant-msg.exp: ts: adapt prereq/conflict
err/warn msgs
* modulecmd.tcl.in: Add complete mod designation from spec on err/warn msgs
Use getModuleDesignation procedure over module specification to report the
full module name version and variants.
* modulecmd.tcl.in: Fetch info from mod spec in getModuleDesignation Add
the ability to fetch module information from module specification on
getModuleDesignation procedure. If from argument equals 'spec', mod argument
is taken as a module specification and module name version and variants are
retrieved from the parsed properties of this module specification.
* modulecmd.tcl.in: Add complete loaded mod designation on err/warn mesgs
Use getModuleDesignation procedure over loaded modules to report the full
module name version and variants.
* modulecmd.tcl.in: Fetch info from loaded context in getModuleDesignation
Add the ability to fetch module information from loaded context on
getModuleDesignation procedure. If from argument equals 'loaded', mod
argument is taken as the module name and version designation, then specified
variants are fetched from loaded context.
* modulecmd.tcl.in: Process module designation in getModuleDesignation
Rather recording generated designation in registerModuleDesignation
procedure, only record module name and version and specified variant list in
this procedure. Then process the module designation from the
getModuleDesignation procedure.
* modulecmd.tcl.in: Adapt getModuleDesignation arguments Reorder and rename
arguments of the getModuleDesignation procedure to prepare it being called
from multiple contexts.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps-fullpath.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp: ts: adapt conflict/prereq default err
mesg
* modulecmd.tcl.in: Simplify conflict/prereq default error message Do not
recall current module designation on the default conflict and prereq error
message, as they are produced under the Loading/Unload message block which
already report current module designation.
2021-04-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp: ts: forced load when another
variant is loaded in 50/470
* testsuite/modulefiles.3/variant/7.0, testsuite/modulefiles.3/vrreq1/1.0,
testsuite/modulefiles.3/vrreq1/2.0, testsuite/modulefiles.3/vrreq2/1.0,
testsuite/modulefiles.3/vrreq2/2.0, testsuite/modulefiles.3/vrreq3/1.0,
testsuite/modulefiles.3/vrreq3/2.0,
testsuite/modules.50-cmds/473-variant-prereq.exp: ts: variant special
requirement spec tests in 50/473
2021-04-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/7.0, testsuite/modulefiles.3/variant/7.1,
testsuite/modulefiles.3/vrreq1/1.0, testsuite/modulefiles.3/vrreq1/2.0,
testsuite/modulefiles.3/vrreq2/1.0, testsuite/modulefiles.3/vrreq2/2.0,
testsuite/modulefiles.3/vrreq3/1.0, testsuite/modulefiles.3/vrreq3/2.0,
testsuite/modules.50-cmds/473-variant-prereq.exp,
testsuite/modules.50-cmds/474-variant-conflict.exp: ts: add auto_handling
switch tests in 50/{473,474}
2021-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/7.0,
testsuite/modulefiles.3/vrreq1/.modulerc,
testsuite/modulefiles.3/vrreq1/1.0, testsuite/modulefiles.3/vrreq1/2.0,
testsuite/modulefiles.3/vrreq2/1.0, testsuite/modulefiles.3/vrreq2/2.0,
testsuite/modulefiles.3/vrreq3/1.0, testsuite/modulefiles.3/vrreq3/2.0,
testsuite/modulefiles.3/vrreq4/1.0, testsuite/modulefiles.3/vrreq4/2.0,
testsuite/modules.50-cmds/474-variant-conflict.exp: ts: test variant with
conflict auto_handling mechanism
2021-04-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/.modulerc, testsuite/modulefiles.3/variant/7.0,
testsuite/modulefiles.3/vrreq1/.modulerc,
testsuite/modulefiles.3/vrreq1/1.0, testsuite/modulefiles.3/vrreq1/2.0,
testsuite/modulefiles.3/vrreq1/w s, testsuite/modulefiles.3/vrreq2/1.0,
testsuite/modulefiles.3/vrreq2/2.0, testsuite/modulefiles.3/vrreq2/w s,
testsuite/modulefiles.3/vrreq3/1.0, testsuite/modulefiles.3/vrreq3/2.0,
testsuite/modulefiles.3/vrreq4/1.0, testsuite/modulefiles.3/vrreq4/2.0,
testsuite/modules.50-cmds/473-variant-prereq.exp: ts: test variant with
prereq auto_handling mechanism
* modulecmd.tcl.in: Pass down variant when recursively calling
getPathToModule
* modulecmd.tcl.in: Pass modnamevr to getUnmetDependentLoadedModuleList
Pass the module name and variants set as argument to the
getUnmetDependentLoadedModuleList procedure to make it use the variants
specified to determine the dependent modules. This information has to be
passed to the modEq procedure as no modulefile evaluation occurred yet when
getUnmetDependentLoadedModuleList is called, so variants have to be
transmitted as argument to modEq.
2021-04-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Preserve variants set when reloading DepRe mods
2021-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Update mod name and variants using already loaded mod
* modulecmd.tcl.in: Transmit mod name and variants for switch report sum
* testsuite/modules.20-locate/100-wspace.exp,
.../273-adv_version_spec-space.exp: ts: eval mods are reported enclosed if
contains space
* modulecmd.tcl.in: Use mod name with variants to define a unique msgrecid
* modulecmd.tcl.in: Record msgrecid in mod evaluation struct Use the
message recording id (msgrecid) to register the module evaluation instead of
the module name. Call for the module designation based on this recording id
when reporting evaluated modules. Update the registerModuleEval and
registerModuleEvalHidden procedures to use msgrecid rather module name. In
case of evaluation failure, pass the module name with its specified variant
to record for the isModuleEvalFailed query. When evaluated modules are
reported, they use the full denomination syntax with specified variants and
space enclosed in single quotes.
* modulecmd.tcl.in: Record both regular and sgr version of mod designation
When recording evaluated module designation, record it in both regular and
SGR versions, and add the ability to fetch one or the other.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.70-maint/371-variant-msg.exp: ts: adapt error when another
variant of mod is loaded
2021-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Error if module is already loaded with diff. variant set
Break process of cmdModuleLoad if the same module is detected as already
loaded but with a different variant set than the one specified on this
module load.
2021-04-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record modulenamevr in evaluation attempt struct When
recording module evaluation attempt use module name with variant as
identifier. Update all calls to isModuleEvaluated and
registerModuleEvalAttempt procedures.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/100-wspace.exp,
.../273-adv_version_spec-space.exp: ts: correctly enclose mod name on eval
msg block
* testsuite/modules.50-cmds/471-variant-unload.exp: ts: fix specifiedname
test in 50/471
* modulecmd.tcl.in: Add modnamevr arg to execute-modulefile procedure Add
the modnamevr argument to the execute-modulefile procedure and save this
information into the modulenamevr state to make it available during
evaluation context. Use that new modulenamevr state to pass variant list to
the variant procedure when module is unloading. This way the specifiedname
on unload mode is the specification set by user on command line or in
modulefile code, like on any other evaluation modes.
* modulecmd.tcl.in: Fetch modnamevr from getPathToModule calls
2021-04-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Return modnamevr on getPathToModule Update the
getPathToModule procedure to return an additional string as result which
corresponds to the module name plus specified variants. When no variant are
specified, modnamevr equals to modname.
* modulecmd.tcl.in: Compare with variant set in isModuleEvaluated
* modulecmd.tcl.in: Add modvrlist option to modEq proc Add the modvrlist
option to the modEq procedure in order to specify the list of variant of mod
to compare pattern to. Useful when comparing against a mod that is not
loaded or loading.
* modulecmd.tcl.in: Add g_loadedModuleVariant to push/pop/restore settings
2021-04-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/471-variant-unload.exp: ts: update unload tests
in 50/471 now variants are compared
* modulecmd.tcl.in: Add variant comparison ability to modEq Adapt the modEq
procedures to compare the variant specified for pattern to the variant set
for designated loaded or loading module. Only perform such comparison if
module name and version comparison is successful. Variant comparison relies
on the modVariantCmp procedure. Every variant set for pattern should be
found defined and with an identical value on loaded/loading module.
Otherwise there is no match.
2021-04-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc. variant cmp in design doc
2021-04-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove unused icase var in isModuleEvaluated
* modulecmd.tcl.in: Update isModuleEvaluated to rely on new modEq Update
the isModuleEvaluated procedure to indicate to also test alternative names
of evaluated modules through new modEq procedure.
2021-04-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-selection-contexts.rst: doc: remove ref to
does*ModuleMatchesName ref in doc
* modulecmd.tcl.in: Make conflict report detection rely on new modEq modEq
procedure now also test alternative names of loaded modules if ismodlo
argument is set to 2. Update conflict report detection code to take into
account this new ability of modEq when checking against loaded modules.
* modulecmd.tcl.in: Remove useless doesLoadingModuleMatchesName proc
* modulecmd.tcl.in: Remove useless doesModuleMatchesName proc Since modEq
procedure treats alternative names of loaded modules, the
doesModuleMatchesName procedure is now useless and replaced by a direct call
to modEq with its ismodlo option set to 1.
* modulecmd.tcl.in: Retrieve variant list specified in pattern on modEq
procs
* modulecmd.tcl.in: No variant comparison on modEqStatic proc As specified
variant is currently only useful for module specification comparison with
loaded or loading module, the modEqStatic procedure does not need to handle
the variant specified for `modspec` as this procedure is only called on
non-loaded modules contexts
* modulecmd.tcl.in: Treat alt names of load{ed,ing} mods on modEq Add the
`ismodlo` argument to the modEq procedure to determine is passed `mod` is a
non-loaded module (0), a loaded module (1) or a loading module (2). If `mod`
is loaded or loading comparison against `pattern` is also performed over the
alternative names of mod. This with one call to modEq, all module name and
its alternatives are tested against pattern: pattern properties are fetched
and comparison is prepared only once instead of calling modEq procedure over
each alternative name of module.
2021-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/_static/terminal_output.css, doc/source/conf.py: doc: define
sphinx roles/css to colorize variant
2021-04-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp: ts: adapt result if
implicit_default is disabled on 50/470
2021-04-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp: ts: fix stack trace err msgs
for Tcl<8.6 in 50/470
2021-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clear test-related env var
prior tests start
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clear MODULES_LMVARIANT prior
test start
2021-03-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp,
testsuite/modules.70-maint/372-variant-display.exp,
testsuite/modules.70-maint/373-variant-help.exp,
testsuite/modules.70-maint/374-variant-test.exp,
testsuite/modules.70-maint/375-variant-whatis.exp: ts: test @loaded spec
with variant
* modulecmd.tcl.in: Add defined variant when translating @loaded When
translating the @loaded version specifier, also retrieve the variant
specified for corresponding loaded module.
2021-03-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/6.0,
testsuite/modules.50-cmds/472-getvariant.exp,
testsuite/modules.70-maint/375-variant-whatis.exp: ts: test
getvariant/variant on whatis eval mode in 70/375
* modulecmd.tcl.in: Update variant procs to pass Tcl itrp as first arg
Update the variant, variant-wh and getvariant procedures to pass them the
reference to the current Tcl modulefile interpreter, instead of guessing
this reference within the procedures.
* modulecmd.tcl.in: Set an optimized version of variant cmd for whatis eval
Add an optimized version of the variant modulefile command for the whatis
evaluation mode, not to specifically raise specification error for this mode
and barely set the variant to an empty string value in the modulefile
context. This way, operations on variant are lighter on this global
evaluation mode. Variant definition errors still produce error which stops
modulefile evaluation but they are not reported unless if verbosity is set
to debug mode like any other errors during a whatis global evaluation.
* modulecmd.tcl.in: Parse variant cmd args in parseVariantCommandArgs proc
Add the parseVariantCommandArgs procedure to specifically parse arguments
set on variant modulefile command.
2021-03-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/5.0,
testsuite/modules.50-cmds/472-getvariant.exp: ts: test getvariant on
help/test eval mode in 50/472
* testsuite/modulefiles.3/variant/4.0,
testsuite/modules.70-maint/374-variant-test.exp: ts: test variant on test
evalulation mode in 70/374
* testsuite/modulefiles.3/variant/4.0,
testsuite/modules.70-maint/373-variant-help.exp: ts: test variant on help
evalulation mode in 70/373
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/372-variant-display.exp: ts: test variant on
display evalulation mode in 70/372
* testsuite/modulefiles.3/variant/5.0,
testsuite/modules.50-cmds/472-getvariant.exp: ts: test getvariant in 50/472
* doc/source/design/variants.rst: doc: desc. getvariant in variant design
doc
2021-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/vim/syntax/modulefile.vim: vim: add variant-related modulefile
cmds & var
* modulecmd.tcl.in: Add 'getvariant' modulefile command Introduce the
getvariant modulefile command to query the current value of a given variant
name. If variant is not defined, an empty string is return or the specific
value passed as argument. During a display evaluation, getvariant output the
variant name enclosed in curly braces.
* modulecmd.tcl.in: Use msgrecid to identify registerd mod designation
Update the registerModuleDesignation and getModuleDesignation procedures to
identify the module designation with the message record id, which is also
the evaluation id. Identification is this way improve as the same module
name and version could be evaluated multiple times with different variant
set during the same modulecmd.tcl run.
2021-03-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/4.0,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.50-cmds/471-variant-unload.exp: ts: test variant
evaluation on unload mode in 50/471
2021-03-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record variant for persistency unless if unloading
* modulecmd.tcl.in: Return updated module specification on getPathToModule
When getPathToModule is called to find a module specification from the
loaded module list, return an updated version of this module specification
fully matching the designation of found loaded module (name, version and
variants). When unloading module, set this updated designation as the
module specified to unload. Which means querying the [module-info specified]
during an unload evaluation will return the loaded module specification not
the module specification set by user.
* modulecmd.tcl.in: Enclose modname when setting it in switch upper ctx
2021-03-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/w s,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp: ts: update collections tests with
--default variant opt
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.50-cmds/470-variant.exp: ts: add --default tests in 50/470
* modulecmd.tcl.in: Add --default option to variant modfile cmd
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/2.0,
testsuite/modules.50-cmds/470-variant.exp: ts: test variant defined without
allowed value list in 50/470
2021-03-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Raise error when no allowed val list defined for variant
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.61-coll/040-restore.exp: ts: add err_unkvar helper proc
* testsuite/modulefiles.3/variant/1.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.61-coll/040-restore.exp: ts: update variant tests for
unspecified variant global err
* modulecmd.tcl.in: Raise global error if no val specified for variant
2021-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: remove --multivalued opt from variant
cmd Ability to specify multiple values for a variant does not seem to be
needed in the first version of the mechanism.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/470-variant.exp: ts: invalid value for variant is
global error
2021-03-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Invalid variant value specified is a global error Raise
a global error rather a modulefile error when value specified for variant is
not part of the allowed variant list.
2021-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/231-verbose2.exp: ts: test not loaded mod name
vers spec returned by getPathToModule
* modulecmd.tcl.in: Return on getPathToModule mod name vers spec if not
loaded When looking at a loaded module with getPathToModule procedure, if
this module designation is not found loaded, return as module name the
module name and version specification (module specification without the
variant eventually specified)
* modulecmd.tcl.in: Record module name and version spec when parsing
specification Add to the g_moduleVersSpec structure the module name and
version specified on the command-line or in modulefile (which is equivalent
to the module specification minus the variant specified in this
specification). Add the getModuleNameAndVersFromVersSpec procedure to
retrieve this module name and version specification from full module
specification string.
* modulecmd.tcl.in: Return empty modname when mod is empty on
getPathToModule
* modulecmd.tcl.in: Update mod desis. for switch ctx when unload is skipped
When the unload phase of a switch action is skipped, because for instance
module is not loaded, update the switched-off module designation for the
switch context prior ending the unload phase.
2021-03-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/variant/1.0, testsuite/modulefiles.3/variant/w s,
testsuite/modules.70-maint/371-variant-msg.exp: ts: add specific report msg
tests for variant in 70/371
* testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.61-coll/040-restore.exp: ts: update mod designation in
variant tests
2021-03-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/020-module.exp,
testsuite/modules.20-locate/100-wspace.exp,
.../273-adv_version_spec-space.exp: ts: mod desig. with space is now
enclosed in ''
* doc/source/design/variants.rst: doc: desc variant report on info msgs in
design doc
* modulecmd.tcl.in: Record module designation prior its evaluation Record
module designation (module name and version + variants specified on
load/unload sub-command arguments) prior its load or unload evaluation to
report an accurate designation on top of the error message obtained. Update
getVariantList procedure to get the variant specified list for given module
from module specification instead of getting it from the loaded environment.
2021-03-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record/use module designation including variant spec
Add the registerModuleDesignation and getModuleDesignation procedures to
report specified variants in addition to module name and version when
reporting load, unload or switch of modules. Module name or variant
specifications are enclosed between single quotes if they contain a space
character. Module name and variant specifications are highlighted if
configured when registered to produce a graphically enhanced report message.
Variant specification is enclosed between {} to distinguish it from module
name and version.
2021-03-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Work with mod+variant designations on restore sub-cmd
Adapt cmdModuleRestore to work with the full module name, version and
variant specification to compare currently loaded environment against
environment specified in saved collection.
* testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/340-output-key.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: adapt list sub-cmd json
tests for variant
* testsuite/modules.61-coll/040-restore.exp: ts: test variant on restore
sub-cmd in 61/040
2021-03-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll27, testsuite/home/coll28, testsuite/home/coll29,
testsuite/modulefiles.3/variant/1.0,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test variant on saveshow
sub-cmd in 61/060
* testsuite/home/coll26, testsuite/modulefiles.3/variant/1.0,
testsuite/modulefiles.3/variant/3.0, testsuite/modulefiles.3/variant/w s,
testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test variant on save sub-cmd
in 61/030
* testsuite/config/base-config.exp,
testsuite/modules.00-init/005-init_ts.exp: ts: add '*' to the list of
escaped chars on regexp tests
2021-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: desc. recording collection in variant
design
2021-03-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record variant specification in saved collection When
modules have been loaded with variants specified, record the variants
specification along module name and version when saving the loaded
environment as a collection. In case the collection_pin_version
configuration option is disabled, only record in collection the variants
whose value is not the default one. This way the same behavior is obtained
not to pin version or variant if their default value is the one saved.
2021-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp,
testsuite/modules.70-maint/370-variant.exp: ts: adapt and add tests for
is-default variant val persistency
* modulecmd.tcl.in: Record if variant value is default in persistency var
* doc/source/design/variants.rst: doc: desc is-default-set persistency in
variant design
* testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: adapt tests for variant
val in list_*output cfgs in 70/{220,361}
* modulecmd.tcl.in: Add default return val if output elt not known on
isEltInReport
* testsuite/modules.70-maint/370-variant.exp: ts: test variant report on
list sub-cmd in 70/370
2021-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/output-configuration.rst,
doc/source/design/variants.rst: doc: desc. variant reporting in design docs
* modulecmd.tcl.in: Describe variant in list sub-cmd report key
* modulecmd.tcl.in: Sort variants and remove duplicate defs when reporting
* modulecmd.tcl.in: Output variants as object in json mode Adapt
formatListEltToJsonDisplay to call for formatObjectValToJson to output
elements passed as argument as a JSON object. Also add an argument for each
element to control whether it should be reported or not, in order not to
output the variants field on avail output.
2021-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report variant on module list Report the variant set
for loaded modules on module list output if variant are defined in output
list configuration. Adapt formatListEltToDisplay and
formatListEltToJsonDisplay procedures to render the variant set for loaded
modules. Update displayKey procedure to describe how variant are reported.
2021-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Render colon sep only if multiple elt to report
2021-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, configure, doc/source/module.rst: install/doc: add `va` color
key Add the `va` color key in default light and dark color palettes to
graphically enhance the report of variant value.
* INSTALL.rst, configure, doc/source/module.rst, modulecmd.tcl.in:
install/doc: add variant element on list_*output configs Add the element
`variant` in the allow list of the list_output and list_terse_output
configuration options. Set this new element in the default value list of the
list_output configuration option.
2021-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp: ts: adapt variant tests for
persistency in 50/470
* modulecmd.tcl.in: Set specified variant values persistent Record in user
loaded environment the values specified for the variants defined in the
evaluated modulefile. Use MODULES_LMVARIANT environment variable to record
such information.
* testsuite/modulefiles/spread/3.0, testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc: ts: adapt existing interp
tests now variant are checked
2021-03-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp: ts: test mixing variant and
version spec in 50/470
2021-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/470-variant.exp: ts: test specification of
unknown variant in 50/470
* modulecmd.tcl.in: Raise error is specified variant is unknown
2021-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/var=val, testsuite/modulefiles.3/variant/1.0,
testsuite/modulefiles.3/variant/2.0, testsuite/modulefiles.3/variant/3.0,
testsuite/modules.50-cmds/470-variant.exp: ts: add initial variant tests in
50/470
2021-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add variant modulefile command Add initial version of
the variant modulefile command taking as argument a variant name then the
list of allowed values. Variant value specified is retrieved with
getVariantListFromVersSpec procedure. Then variant name is instanciated in
ModuleVariant array with specified value in modulefile interpretation
context.
2021-03-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Parse valued-variant specified Update
parseModuleSpecification procedure to parse valued-variant (name=value) set
in module specification.
* modulecmd.tcl.in: Add variantlist field to module name version spec struct
Update setModuleVersSpec procedure to add as 7th entry in struct list the
list of variant specified for modarg. Introduce the
getVariantListFromVersSpec procedure to retrieve just this variant list from
module name version specification.
2021-03-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. variant changes in diff doc
2021-06-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/400-source-sh.exp: ts: update set-function export
mech. in 50/{390,400}
* NEWS.rst, modulecmd.tcl.in: Export defined shell function only on Bash
When defining a shell function with the set-function modulefile command,
only export this function when using the Bash shell (using the export -f
shell command) to make it available in sub-shell contexts. Shell function
export is not supported on other kind of sh shell (sh, ksh and zsh). Fixes
#401.
* .cirrus.yml: cirrus: force libarchive update on el8.3
2021-06-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. setenv diff between Modules 3.2 and
4+ Describe the difference between Modules 3.2 and 4+ when it comes to the
arguments passed to the setenv modulefile command. Fixes #402.
2021-05-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, .../bar-2.1/bar-setup.csh, .../bar-2.1/bar-setup.sh,
.../source-script-in-modulefile/bar-2.1/bin/barbin, .../modulefiles/bar/2.1,
.../modulefiles/foo/1.2, .../cookbook/source-script-in-modulefile.rst: doc:
desc setup with shell-specific scripts in cookbook Update the *Source
script in modulefile* cookbook recipe to add it a *Usage with shell-specific
scripts* section that demonstrate how to use modulefiles with `source-sh`
commands when software provide a specific initialization script for each
shell it supports. Take this opportunity to improve the readability of this
recipe by coloring/highlighting shell session examples. Fixes #399.
2021-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1: ts: fix modVersCmp redefinition test
in 00/120
2021-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/linux_tests.yaml: gh: exit run on error if executed
through script
2021-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, NEWS.rst, configure: install: allow building from submodule
repository Fix installation scripts to allow building Modules when its
repository is set as a git submodule. Closes #398.
* MIGRATING.rst, NEWS.rst: doc: desc range in list on NEWS/MIGRATING
* doc/source/module.rst: doc: desc. when new concepts were added in
module(1)
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc use of version
range in version list in manpages
* doc/source/design/advanced-module-version-specifiers.rst: doc: update
design doc now vers range allowed in list
* testsuite/modulefiles.3/advvers2/.modulerc,
testsuite/modulefiles.3/advvers2/1.0, testsuite/modulefiles.3/advvers2/1.1,
testsuite/modulefiles.3/advvers2/2.0, testsuite/modulefiles.3/advvers2/2.10,
testsuite/modulefiles.3/advvers2/2.2, testsuite/modulefiles.3/advvers2/2.8,
testsuite/modulefiles.3/advvers2/3.7, testsuite/modulefiles.3/advvers2/4.2,
testsuite/modulefiles.3/advvers2/foo, .../276-adv_version_spec-rangein.exp:
ts: test use of version ranges in version lists
2021-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Allow version range in version list Improve the
advanced version specifier to support use of version ranges within version
list. The syntax `@:2,4:5,7:` enables to exclude versions. Closes #397.
2021-03-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Split version specifier parsing in dedicated proc Add
parseModuleVersionSpecifier procedure, called from parseModuleSpecification
to analyze the version specifier part in full module specification.
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1: Rename
parseModuleVersionSpecifier into parseModuleSpecification Rename the
parseModuleVersionSpecifier procedure into parseModuleSpecification, as it
will now on take in charge more than just the version specifier parsing
(specified variants will be parsed too).
2021-02-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/variants.rst: doc: add *Variants* design document
2021-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/base-config.exp: ts: never reset exit_status var between
tests
* doc/example/log-module-commands/siteconfig.tcl,
doc/example/top-priority-values/siteconfig.tcl: doc: fix modulecmd state
check in recipe code Code to handle the internal states of modulecmd have
been reworked on Modules v4.6. As a consequence several siteconfig.tcl
extension scripts described on documentation recipes have to be adapted.
Closes #396
2021-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. edit/MODULES_EDITOR in NEWS/MIGRATING
* testsuite/modules.70-maint/380-edit.exp: ts: add 'edit' sub-command
specific tests in 70/380
2021-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/modbad/edit, testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.90-avail/070-full.exp: ts: update existing tests to check
'edit'
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clean any editor config
* doc/source/module.rst: doc: desc. edit/MODULES_EDITOR in module(1)
* INSTALL.rst: doc: desc --with-editor in INSTALL
* modulecmd.tcl.in: Throw any error from editor as external error
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in:
install: add --with-editor configure option Introduce the --with-editor
configure option to choose at installation time the default editor command
to use to interactively edit modulefiles. Default editor is 'vi'.
* doc/source/diff_v3_v4.rst: doc: desc. edit/editor in diff doc
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add editor config to completion script
2021-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add the 'editor' configuration option Add the editor
module configuration option to define the editor command to use to
interactively edit modulefiles. When specifically set, the MODULES_EDITOR
environment variable is defined. If not set, environment variable VISUAL or
EDITOR can be used to define the value of this configuration (in this
order). Follow the same configuration scheme than Git with GIT_EDITOR,
VISUAL and EDITOR environment variables.
* modulecmd.tcl.in: Add 'edit' sub-command Introduce the edit sub-command
to interactively edit existing modulefiles.
* testsuite/modules.00-init/005-init_ts.exp: ts: attempt to set term size if
failing to detect it
2021-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, doc/source/conf.py,
version.inc.in: Release of version 4.7.1
2021-04-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../sticky-modules/modulefiles/compiler/.modulerc,
.../sticky-modules/modulefiles/compiler/compA/1.0,
.../sticky-modules/modulefiles/compiler/compA/1.2,
.../sticky-modules/modulefiles/compiler/compB/1.3,
.../sticky-modules/modulefiles/compiler/compB/2.1,
.../sticky-modules/modulefiles/core/.modulerc,
doc/example/sticky-modules/modulefiles/core/1.0,
doc/example/sticky-modules/modulefiles/core/2.0, doc/source/conf.py,
doc/source/cookbook/sticky-modules.rst: doc: add *sticky modules* cookbook
recipe
* doc/source/conf.py: doc: update default etcdir exposed
* doc/source/cookbook/hide-and-forbid-modules.rst: doc: fix
hide-and-forbid-modules document ref
* INSTALL.rst: doc: fix --with-tag-abbrev default value in INSTALL Correct
the default value of the --with-tag-abbrev installation option in INSTALL
document.
* INSTALL.rst, doc/source/module.rst: doc: desc. changes on
MODULES_COLORS/--with-*-background-colors Add description of changes that
occurred on version 4.6 and 4.7 for the --with-dark-background-colors and
--with-light-background-colors installation options and for the
MODULES_COLORS environment variable.
* INSTALL.rst: doc: fix desc. --with-{dark,light}-background-colors in
INSTALL Update the description and default value of the
--with-dark-background-colors and --with-light-background-colors
installation options in INSTALL document.
2021-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/vim/syntax/modulefile.vim: vim: add modfile vars
Module{Tool,ToolVersion,sCurrentModulefile}
2021-04-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: ts: exit code on fish>=3.2
saturates at 255 Update fish install tests following change introduced on
fish 3.2, where the exit code now saturates to 255 for all builtins commands
rather overflowing. (see https://github.com/fish-shell/fish-shell/pull/7702)
* modulecmd.tcl.in: Fix sh-to-mod to support fish 3.2 Update the sh-to-mod
mechanism to support version 3.2 of the fish shell. This new version
introduces the `.` builtin command that should be regexp-escaped when
determining the shell functions or aliases defined by the script analyzed by
sh-to-mod. An extra space character is also added by fish 3.2 at the end of
shell alias or function definition. Update parsing of these elements to
ignore such extra space.
2021-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/ISSUE_TEMPLATE/question.md: github: add question issue template
2021-03-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: re-license configure script from GPLv3+ to GPLv2+
Change license of the configure installation script from GPLv3+ to GPLv2+.
Align this way all files from the Modules project under the GPLv2+ license.
Consent has been obtained from the copyright holders (I, @xdch47 and
@jraphanel) to perform such move. Consent from Jacques Raphanel and Felix
Neumärker were collected by email. Revert contribution from R.K. Owen
(cc4d3194), from whom consent is not yet obtained. Contribution will be
restored as soon as consent will be obrained. Related to #389
* script/envml, script/envml.cmd: script: re-license envml scripts from
GPLv3+ to GPLv2+ Change license of envml and envml.cmd scripts from GPLv3+
to GPLv2+. Align this way all files from the Modules project under the
GPLv2+ license. Consent has been obtained from the copyright holders (I and
@jraphanel) to perform such move. Consent from Jacques Raphanel was
collected by email. Related to #389
2021-02-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: fixes few typos in
module.1 and modulefile.4
* Makefile, README.md: doc: add link to @EnvModules Twitter page in README
* lib/envmodules.c, lib/envmodules.h: lib: re-license envmodules lib from
GPLv3+ to GPLv2+ Change license of the Modules Tcl extension library from
GPLv3+ to GPLv2+. Align this way all files from the Modules project under
the GPLv2+ license. Consent has been obtained from copyright holder to
perform such move (I hold the full copyright for this library). Related to
#389
* lib/testutil-0getgroups.c, lib/testutil-closedir.c,
lib/testutil-dupgetgroups.c, lib/testutil-getgrgid.c,
lib/testutil-getgroups.c, lib/testutil-getpwuid.c, lib/testutil-mktime.c,
lib/testutil-time.c: ts: re-license test libraries from GPLv3+ to GPLv2+
Change license of all testutil-* libraries, used to test Modules Tcl
extension library, from GPLv3+ to GPLv2+. Align this way all files from the
Modules project under the GPLv2+ license. Consent has been obtained from
copyright holder to perform such move (I hold the full copyright for these
librairies). Related to #389
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_csh,
testsuite/bin/install_test_fish, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_sh,
testsuite/bin/install_test_tcl: ts: re-license install test scripts from
GPLv3+ to GPLv2+ Change license of all install_test_* scripts, used to test
Modules installation, from GPLv3+ to GPLv2+. Align this way all files from
the Modules project under the GPLv2+ license. Consent has been obtained
from copyright holder to perform such move (I hold the full copyright for
these script files). Related to #389
* script/mb, script/mlprof, script/modulecmd.in, script/mpub, script/mrel,
script/mt, script/mtreview, script/nglfar2ccov, script/playdemo: script:
re-license script from GPLv3+ to GPLv2+ Change license of mb, mlprof,
modulecmd, mpub, mrel, mt, mtreview, nglfar2ccov and playdemo scripts from
GPLv3+ to GPLv2+. Align this way all files from the Modules project under
the GPLv2+ license. Consent has been obtained from copyright holder to
perform such move (I hold the full copyright for these script files).
Related to #389
2021-02-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md, doc/source/index.rst: doc: clarify license terms (GPLv2+)
Related to #389
2021-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
doc/source/conf.py, version.inc.in: Release of version 4.7.0
* .gitattributes: install: exclude codecov.yml from git export
2021-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst, doc/source/conf.py: doc: add *Get Modules* section
in INSTALL
* INSTALL.rst: doc: use term output-style for examples in INSTALL
2021-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. term_width/--width/-w in NEWS
* doc/source/diff_v3_v4.rst: doc: desc. term_width in diff doc
2021-02-15 Anais GAERTNER <anais.gaertner@cea.fr>
* doc/source/module.rst: doc: desc. term_width/--witdh/-w in module(1) man
2021-02-12 Anais GAERTNER <anais.gaertner@cea.fr>
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add -w/--width options to completion scripts
2021-02-09 Anais GAERTNER <anais.gaertner@cea.fr>
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add term_width config to completion script
* modulecmd.tcl.in: Add a range of acceptable values for term_width config
Add a range of acceptable values for the options -w and --width using
configuration option kind 'intbe'. The value should be an integer comprised
between 0 and 1000. An error message is sent when a value is out of this
range.
2021-02-08 Anais GAERTNER <anais.gaertner@cea.fr>
* testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
term_width config in 70/220
2021-01-25 Anais GAERTNER <anais.gaertner@cea.fr>
* testsuite/modules.70-maint/350-term_width.exp: ts: add test for term_width
config in 70/350
2021-01-07 Anais GAERTNER <anais.gaertner@cea.fr>
* modulecmd.tcl.in: Add term_width configuration By default, term_width is
equal to 0, but can be overridden by the environment variable, which can be
also overriden by the command-line options -w or --width=. When term_width
is equal to 0, the output width is the full terminal width, automatically
detected by the module command. If term_width is different from 0, this sets
a specific number of columns for the display of the output. Closes #359
2021-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. {avail,list}_*output in MIGRATING
* NEWS.rst: doc: desc. silent make and recent inst/mpub/rpm work in NEWS
* NEWS.rst: doc: desc. {avail,list}_*output in NEWS
2021-02-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: fix mfcmd ref in module-tags
design doc
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.90-avail/070-full.exp: ts: update tests relying on
avail_report_{dir,mfile}_sym cfg
* doc/source/module.rst: doc: desc. --output/-o cmd line switches
* doc/source/module.rst: doc: desc {avail,list}_*output configs with related
envar
* doc/source/module.rst: doc: remove avail_report_{dir,mfile}_sym configs
* contrib/rpm/environment-modules.spec.in: rpm: align spec syntax with
Fedora spec file Add on the way a missing build dependency on 'make'
package. Also remove obsolete 'Group' tag (see
https://fedoraproject.org/wiki/Changes/Remove_Group_Tag)
2021-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mpub: script: correctly detect previous version tag on mpub In
case last bugfix release was made from a branch not parent of the current
branch from which the next release will be rolled out. List all tags and get
previous version name from the second to last position.
* Makefile: install: correctly clear git remote in build ref tag
* testsuite/modules.20-locate/043-virtual.exp: ts: illegal dir error now
obtained on FreeBSD 12.2
* .cirrus.yml: cirrus: test over newer FreeBSD 11 & 12 releases
* Makefile, doc/Makefile, init/Makefile: install: silently include
version.inc in Makefiles Silently include version.inc in main, doc and init
Makefiles to avoid 'Makefile:349: version.inc: No such file or directory'
warning message when version.inc needs to be rebuilt prior being loaded.
2021-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile: install: doc cannot be built in parallel
* configure: install: add -i opt to lib autoreconf Ensure missing auxiliary
file are copied when running autoreconf for Modules Tcl extension library.
* lib/tcl.m4: install: import new version of lib/tcl.m4 Import new version
of tcl.m4 for compatibility with autoconf >=2.69. File is imported from
https://github.com/tcltk/tclconfig.
* lib/configure.ac: install: fix lib/configure.ac syntax for autoconf>=2.69
* Makefile, doc/Makefile: install: silent compat version make build
* Makefile, doc/Makefile, init/Makefile: install: no include of version.inc
for 'clean' make goals
* doc/Makefile: install: put 'all' rule first in doc Makefile
* doc/Makefile, init/Makefile: install: build ../version.inc from init/doc
Makefiles Add makefile rule to build ../version.inc file if missing from
the init and doc Makefiles.
2021-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: fix link to module-info in modulefile(4)
man
2021-02-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, doc/Makefile: install: no print directory change for build make
targets Pass the --no-print-directory option to the make commands which are
silenced by default.
2021-02-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, doc/Makefile, init/Makefile, lib/Makefile.in: install: pretty
print on makefile build targets Print generated file names rather commands
executed to generate these files on makefile build targets. Output when
making Modules is this way simplified. When option `V=1` is passed to make
verbose mode is enabled and executed commands are shown. Simplified make
output does not apply to the install, uninstall, test, clean, distclean
targets and their relatives.
2021-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile: install: improve doc-related makefile rules
2021-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/linux_tests.yaml: gh: emulate tty on linux tests with
specific siteconfig
* init/Makefile, init/zsh-functions/_module.in: init: add completion of
-a/--all opt on list sub-cmd
2021-02-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add -o/--output options to completion scripts
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: use -o option instead of sed in
completion scripts Update shell completion scripts to make use of the
module option -o to control the element to find in output rather using sed
command to discard the unwanted elements.
* testsuite/modulefiles.3/foo/.modulerc, testsuite/modulefiles.3/foo/0.2,
testsuite/modules.70-maint/360-avail_output.exp: ts: test modulepath elt
output on avail sub-cmd
2021-02-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Make cmdModuleList rely on reportModules Use
reportModules to output the loaded modules and their properties. Add the
mod_list_order argument to the reportModules procedure to precise the order
to report the results.
* modulecmd.tcl.in: Add show_idx and excluded_tag args to reportModules
* modulecmd.tcl.in: Transform listModules into reportModules Rename the
listModules procedure into reportModules and handle result output from there
by directly calling displayElementList rather returning the list of elements
to output.
* modulecmd.tcl.in: Report modulepath on avail sub-cmd if included in output
If modulepath is not included in output, available modules collected from
global/user rc and enabled modulepaths are aggregated and reported all
together. Firstly defined module wins.
* modulecmd.tcl.in: Externalize getModules call outside of listModules
* modulecmd.tcl.in: Consolidate search filters in cmdModuleAvail
2021-02-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/modulerc-1.in,
testsuite/install.00-init/050-crossshell.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/220-config.exp: ts: update tests of
shells_with_ksh_fpath config Now configuration value expect a specific list
of shell names separated by colon character.
* NEWS.rst, doc/source/module.rst, modulecmd.tcl.in: Validate elements in
shells_with_ksh_fpath value list The shells_with_ksh_fpath configuration
option and its relative environment variable MODULES_SHELLS_WITH_KSH_FPATH
accept a list of shell each of them separated by colon character. Accepted
shell names are sh, bash, csh, tcsh and fish.
2021-02-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, configure: install: split configure err msg over an extra line
* NEWS.rst, configure: install: color ERROR/WARNING msg header in configure
Color the *ERROR* and *WARNING* message headers produced by configure script
if output is sent to a terminal.
* INSTALL.rst: doc: desc. expected value for --with-nearly-forbidden-days
* NEWS.rst, configure: install: check --with-nearly-forbidden-days int value
Check the value set for the --with-nearly-forbidden-days option is an
integer comprised between 0 and 365.
* testsuite/modules.20-locate/115-forbid.exp: ts: test bad val in
MODULES_NEARLY_FORBIDDEN_DAYS in 20/115
2021-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: increase git clone depth
* testsuite/modules.70-maint/220-config.exp: ts: update
nearly_forbidden_days config tests in 70/220
* NEWS.rst, doc/source/module.rst, modulecmd.tcl.in: Restrict accepted
values for nearly_forbidden_days config Restrict the value accepted by
nearly_forbidden_days configuration option to integer comprised between 0
and 365.
* modulecmd.tcl.in: Add configuration option kind 'intbe' Add configuration
option kind 'intbe' which stands for *integer between* where value must be
an integer comprised between a lower and an upper bound. These bounds are
described as a list of two elements in configuration value value list.
Adapt getConf and cmdModuleConfig procedures to check such configuration
option kind.
2021-01-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/360-avail_output.exp: ts: test dirwsym elt
output on avail sub-cmd
* modulecmd.tcl.in: Report dirwsym on avail sub-cmd if included in output
* testsuite/modules.70-maint/360-avail_output.exp: ts: test alias elt output
on avail sub-cmd
* modulecmd.tcl.in: Report alias on avail sub-cmd if included in output
* testsuite/modulefiles.3/foo/.modulerc,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: test tag elt output on
avail/list sub-cmd
* modulecmd.tcl.in: Report tag on avail/list sub-cmd if included in output
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp: ts: update test after
report_format default val change
* testsuite/modules.70-maint/220-config.exp: ts: remove
avail_report_{mfile,dir}_sym config tests
* testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: test sym elt output on
avail/list sub-cmd
* modulecmd.tcl.in: Report sym on avail/list sub-cmd if included in output
Update avail and list sub-command output mechanism to report symbolic
versions only if `sym` keyword is part of current output configuration.
This change makes both avail_report_dir_sym and avail_report_mfile_sym
configuration options useless. Thus these 2 options are removed as it was
not possible to configure them for users without updating the modulecmd.tcl
script.
* testsuite/modules.70-maint/361-list_output.exp: ts: test idx elt output on
list sub-cmd
2021-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report idx on list sub-cmd if included in output
* testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: test key elt output on
avail/list sub-cmd
* testsuite/modules.70-maint/361-list_output.exp: ts: test header elt output
on list sub-cmd
* modulecmd.tcl.in: Report key on avail/list sub-cmd if included in output
* modulecmd.tcl.in: Report header on list sub-cmd if included in output
* modulecmd.tcl.in: Add isEltInReport procedure Introduce the isEltInReport
procedure to check if a given element should be part of the content to
report. This procedure checks for the list of element to report relative to
the currently running module sub-command and currently defined output mode.
2021-01-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: initial MODULES_*OUTPUT
env var tests in 70/{360,361}
2021-01-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/output/1.0,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: invalid value set on
-o/--output opt in 70/{360,361}
2021-01-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
{avail,list}_*output in 70/220
2021-01-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: adapt 70/{360,361} tests
for tcl<8.6
2021-01-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Validate {avail,list}_*output config values Validate
the value list set for the output content configuration based on selected
module sub-command. Error is raised as soon as an element in value list is
not defined in the allowed value list. Add isDiffBetweenList procedure to
check if an element in a list is not part of a second list passed as
argument. Update getConf, cmdModuleConfig and parseModuleCommandArgs
procedures to correctly check the value passed to the output content
configuration options.
2021-01-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/output/1.0,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: mix -o/--output with
-t/-l/-j in 70/{360,361}
* modulecmd.tcl.in: Raise error if -o/--output used on long/json modes
2021-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Update report_format state with terse/long mode Change
the report_format state to also hold the terse and long value in case the
--terse or --long mode is enabled. Change default value of report_format
state to regular. This way the state now indicates the output mode which is
expected with long and terse modes standing for a specific plain output
format.
2021-01-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/431-not-req.exp: Raise error
if --not-req not used in correct context Raise an error to terminate
evaluation instead of printing a warning message when the --not-req option
is used for an unsupported sub-command.
2021-01-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/foo/.modulerc, testsuite/modulefiles.3/output/1.0,
testsuite/modules.70-maint/360-avail_output.exp,
testsuite/modules.70-maint/361-list_output.exp: ts: initial -o/--output
tests in 70/{360,361}
2021-01-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add -o/--output command-line switches Add the
-o/--output command-line switches to supersedes the default output
configuration for avail and list sub-commands. -o requires a value set as
next argument whereas --output requires its value to be joined to it after
'=' character. Adapt parseModuleCommandArgs, to be able to tell it to
ignore errors on first call pass performed on 'ml' command (as at the start
module sub-command is not known). Then a second call is made to raise the
errors for options not appropriate to the selected sub-command. When the
-o/--output options are used on an unsupported module sub-command, or if
these options are wrongly specified an error is raised.
2021-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: ensure expected default
output for tests
* doc/source/diff_v3_v4.rst: doc: desc new avail/list output configs in diff
doc
* INSTALL.rst: doc: desc --with-{avail,list}-*output opts in INSTALL
2021-01-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/fish_completion, init/zsh-functions/_module.in: init:
add {avail,list}_*output configs to completion scripts
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in: Add
{avail,list}_{terse_,}output configurations
* doc/source/design/module-tags.rst,
doc/source/design/output-configuration.rst: doc: add *Output configuration*
design document Describe customization of the output in a dedicated
document. Move all reference on that topic from *Module tags* document to
this new document.
2021-02-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp: ts: filter out volatile OS X
sharepoint user group
* codecov.yml: codecov: no notification before receiving the 5 builds
* NEWS.rst: doc: desc. configure & make docs latest changes in NEWS
2021-02-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: correctly detect pre-built doc environment Do not set
docs as pre-built if configure script is ran another time after building
doc.
* doc/Makefile: install: no html doc build if docs are pre-built Disable
the Makefile rules to build the HTML documentation in case if the
documentation is found pre-built in the dist archive.
2021-02-05 R.K. Owen <rk@owen.sj.ca.us>
* configure: install: fix configure script when called from PATH Have
configure assume the '.' dot directory when invoked without the prepended ./
2021-02-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in, testsuite/home.2/.modulerc,
testsuite/modules.20-locate/070-homerc.exp: Consider user/global rc eval
like top level eval Introduce rc_running state to flag when the init rc or
user/global rc files are evaluated. Consider the module load, unload and
switch performed in user/global rc like top level load, unload or switch
evaluation. Closes #372.
2021-02-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in, testsuite/modules.10-use/030-use.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: Modulepath starting with env var
ref is considered absolute Consider modulepath starting with a reference to
an environment variable as absolute. Closes #376.
2021-02-03 Colin Marquardt <cmarqu42@gmail.com>
* NEWS.rst, init/Makefile, init/bash_completion.in, init/tcsh_completion.in:
init: replace completion helper vars with their content This is done for
tcsh and bash where those variables clutter the environment. Closes #382
2021-01-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in: Fix msg output on very small term width (6<12)
Closes #381.
2021-01-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULES_MCOOKIE_VERSION_CHECK in config
section
* NEWS.rst, modulecmd.tcl.in, testsuite/modules.70-maint/220-config.exp: Fix
config sub-cmd to set nearly_forbidden_days Correct the config sub-command
to accurately check values passed to set the nearly_forbidden_days config
and accept valid integer values. Closes #380.
* NEWS.rst, modulecmd.tcl.in: Fix msg output on very small term width (<6)
The max_idx variable set in reportMsgRecord got a value lower than one
character when terminal width is very small. In addition empty lines were
produced for messages starting with a serie of whitespace (for instance when
reporting error stack trace). Closes #379.
2021-01-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
mcookie_version_check
* testsuite/modules.20-locate/057-mcookie.exp: ts:
MODULES_MCOOKIE_VERSION_CHECK disabled test in 20/057
* NEWS.rst: doc: desc. mcookie_version_check in NEWS
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc.
mcookie_version_check in module(1)/modulefile(4)
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add mcookie_version_check config to
completion scripts
* INSTALL.rst, doc/source/diff_v3_v4.rst: doc: desc. mcookie_version_check
in INSTALL/diff
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in: Add
mcookie_version_check config Add mcookie_version_check configuration to
disable the version check on the Modules magic cookie used in modulefiles.
Option, enabled by default, is linked to the MODULES_MCOOKIE_VERSION_CHECK
environment variable. Closes #377.
* .github/workflows/windows_tests.yaml: gh: no more need to create python
link on Cygwin env
* NEWS.rst, modulecmd.tcl.in: Fix output on very small term width (<3) The
cur_cols variable set in displayElementList got a negative value in case
terminal width is lower or equal to 3. In this situation, set cur_cols to 0.
Closes #378.
2021-01-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. key section in module(1) man
* MIGRATING.rst, NEWS.rst: doc: desc. added key section in NEWS/MIGRATING
* modulecmd.tcl.in, testsuite/modules.70-maint/220-config.exp: Fix config
cmd to also report dynamic states Update config sub-command to also report
when --dump-state option is set the value of the states that are dynamically
set (states with no definition in ::g_state_defs array)
* testsuite/modulefiles.3/key/.modulerc, testsuite/modulefiles.3/key/1.0,
testsuite/modulefiles.3/key/2.0, testsuite/modulefiles.3/key/4.0,
testsuite/modulefiles.3/key/5.0,
testsuite/modules.70-maint/340-output-key.exp: ts: test key output on
avail/list in 70/340
2021-01-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.70-maint/040-list.exp,
.../274-adv_version_spec-autosym.exp, testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/321-tag_abbrev.exp,
testsuite/modules.70-maint/322-tag-sgr.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.90-avail/100-tags.exp: ts: adapt existing test to output
key addition
2021-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add a key at end of avail/list sub-cmd output In case
the output result of the avail or list sub-command makes use of graphical
rendering or tag abbreviation, add a key at the end of the output to help
understanding what these colors or acronyms stand for.
2021-01-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Track if some alias are reported Set
g_used_alias_nocolor global variable if alias are reported in parentheses
(no color to graphically render it).
* modulecmd.tcl.in: Track if some sym are reported Set g_used_sym_nocolor
global variable if symbols are reported in parentheses, excluding alias
abbreviation '@'.
2021-01-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: update 'key' description in module
tag design doc
2021-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add isSgrkeyColored to check if an sgr key is colored
Test if color mode is enabled and passed sgr key exists. Useful to test if
some graphical rendering can be applied without making use of it.
2021-01-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Track tag name or abbrev that have been used Collect
all tag name or abbreviation that are used to graphically render output in a
global array named g_used_tags. Will help to know what to put in output key.
2021-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Track color keys that have been used Collect all color
keys are that used to graphically render output in a global array named
g_used_colors. Will help to know what to put in output key.
* modulecmd.tcl.in: Build g_abbrevTag array in initConfTagAbbrev In
addition to build the g_tagAbbrev array in initConfTagAbbrev procedure that
associate each tag with their corresponding abbreviation, the g_abbrevTag is
now also built to associate each abbreviation with their corresponding tag.
Some tags are known to share the same abbreviation, like hidden-loaded and
hidden tags, but these tags are used in different contexts. So when building
g_abbrevTag array skip tags not relevant to the current command context
2021-01-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst: doc: desc inst opt --enable-new-features in
INSTALL/NEWS
* configure: install: add --enable-new-features configure option Introduce
--enable-new-features configure option to enable all at once all the new
features disabled by default due to the behavior change they introduced on
Modules 4. --enable-new-features option is equivalent to
--enable-auto-handling, --enable-color, --with-icase=search,
--enable-extended-default, --enable-advanced-version-spec.
2021-01-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, doc/source/_static/terminal_output.css: doc: desc. module
tags in MIGRATING
2021-01-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. modulefile read cancellation in NEWS
* testsuite/modules.70-maint/330-large-file.exp: ts: test large modulfile
read in 70/330
* codecov.yml: ts: add codecov configuration file Fix CodeCov behavior to
raise error if CI tests failed or if coverage result is decreasing.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: update readFile bad call
tests in 00/120
* lib/configure.ac, lib/envmodules.c, lib/envmodules.h: lib: add
must_have_cookie arg to readFile proc Update C-version of the readFile
procedure to add it the `must_have_cookie` argument that tells if the
Modules magic cookie (#%Module) has to be checked when reading file to abort
reading as soon as possible if read file must be a modulefile. Bump version
of Tcl Envmodules library to 1.3.0. Fixes #375.
* modulecmd.tcl.in: Add must_have_cookie arg to readFile proc Update
pure-Tcl version of the readFile procedure to add it the `must_have_cookie`
argument that tells if the Modules magic cookie (#%Module) has to be checked
when reading file to abort reading as soon as possible if read file must be
a modulefile. Fixes #375.
* testsuite/modules.00-init/120-siteconfig.exp: ts: fix 00/120 tests now
testouterr_cmd auto append nl
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: no cleanup of
TESTSUITE_ENABLE_SITECONFIG when starting ts
2021-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: colorize term output example in MIGRATING
* doc/source/_static/literal_block.css,
doc/source/_static/rtd_literal_block.css,
doc/source/_static/terminal_output.css, doc/source/conf.py: doc: define
sphinx roles/css to colorize parsed-literal
2021-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. recent doc improvements in NEWS
* MIGRATING.rst: doc: fix typo on sticky mod desc in MIGRATING
2021-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../cookbook/ensure-user-qualify-modules.rst,
doc/source/cookbook/inhibit-report-info.rst,
.../cookbook/module-info-name-return-basename.rst,
doc/source/cookbook/modulefiles-in-git.rst,
.../cookbook/modulepaths-persist-over-sudo.rst,
.../new-features-without-breaking-old-module.rst,
doc/source/cookbook/top-priority-values.rst,
doc/source/cookbook/unload-firstly-loaded.rst,
.../design/advanced-module-version-specifiers.rst,
.../design/default-latest-version-specifiers.rst,
doc/source/design/extended-default.rst,
doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/insensitive-case.rst, doc/source/design/module-tags.rst,
.../design/source-shell-script-in-modulefile.rst: doc: markup
config/subcmd/mfcmd in cookbook/design
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc. when opt were
added to sub-cmd and mf cmd
* doc/source/module.rst: doc: desc. -a option on list subcmd in module(1)
2021-01-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/index.rst: doc: reorg index table of content
* INSTALL.rst, MIGRATING.rst, NEWS.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: markup mconfig refs
* MIGRATING.rst: doc: desc. sticky modules in MIGRATING
* MIGRATING.rst: doc: desc. hidden-loaded in MIGRATING
2021-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. when config opts were introduced in
module(1)
* doc/source/conf.py, doc/source/module.rst: doc: desc. module config.
option with :mconfig: directive
* INSTALL.rst: doc: desc. when inst. opt. were introduced in INSTALL
* NEWS.rst: doc: fix typo on --enable-append-manpath in NEWS
2021-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst: doc: markup subcmd/mfcmd/command refs in INSTALL
* INSTALL.rst, MIGRATING.rst, NEWS.rst: doc: mark refs to installation
option with :instopt:
* INSTALL.rst, doc/source/conf.py: doc: desc. inst. option with :instopt:
directive Add the :instopt: sphinx directive to describe installation
option.
* doc/source/_static/rtd_theme_overrides.css, doc/source/conf.py: doc:
override wide tables in RTD theme
* doc/source/module.rst: doc: desc. -f option on purge subcmd in module(1)
man
* NEWS.rst: doc: desc. sticky/super-sticky in NEWS
* doc/source/modulefile.rst: doc: desc. hidden-loaded in 'Hiding
modulefiles' section
* doc/source/conf.py, modulecmd.tcl.in: New year (2021) copyright mention
update
2020-12-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. hidden-loaded and verbose2 in NEWS
2020-12-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix fish function check in sh-to-mod env change
Correctly get all shell functions defined in fish shell prior
sh-to-mod/source-sh script evaluation as some functions may be autoloading
after the initial function definition check. So function check should be
done twice to ensure to get all function defined on the second pass.
* doc/source/module.rst, doc/source/modulefile.rst: doc: add 'Sticky
modules' section in module(1) And add reference to this new section
everytime the sticky module concept is mentionned in module(1) and
modulefile(4).
2020-12-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: add 'Module tags'
section in module(1) And add reference to this new section everytime the
module tag concept is mentionned in module(1) and modulefile(4).
* NEWS.rst: doc: desc. module tag graphical rendering in NEWS
* NEWS.rst: doc: desc. module tag abbreviations in NEWS
* NEWS.rst: doc: update module tag desc. with new special tags in NEWS
* doc/source/modulefile.rst: doc: desc. special module tags in modulefile(4)
man
2020-12-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp: ts: test purge -f on
sticky/broken mod with dep in 50/{377,460,461}
* doc/source/design/sticky-modules.rst, modulecmd.tcl.in: Unload dependent
module on purge if forced When performing a `purge` sub-command with the
`--force` option set, unload modules that are depended by other modules that
cannot unload. This way `purge --force` behaves like `unload --force`.
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clear all TESTSUITE_* vars
prior running tests
2020-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/sticky/.modulerc,
testsuite/modulefiles.3/stickysub/.modulerc,
testsuite/modules.50-cmds/462-sticky-corner.exp: ts: test corner cases for
stickyness swap in 50/462
2020-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll-sticky-4, testsuite/home/coll-sticky-5,
testsuite/home/coll-sticky-6, testsuite/modulefiles.3/sticky/.modulerc,
testsuite/modulefiles.3/stickysub/.modulerc,
testsuite/modulefiles.3/stickysub/dir1/1.0,
testsuite/modulefiles.3/stickysub/dir1/2.0,
testsuite/modulefiles.3/stickysub/dir2/3.0,
testsuite/modulefiles.3/stickysub/dir2/4.0,
testsuite/modules.50-cmds/460-sticky.exp,
testsuite/modules.50-cmds/461-super-sticky.exp: ts: test stickyness swap in
50/{460,461}
* doc/source/design/module-tags.rst, doc/source/design/sticky-modules.rst:
doc: add *Sticky modules* design notes
2020-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Split reloading_mod state Split reloading_mod state in
reloading_sticky and reloading_supersticky states to get the accurate
information to report in case a module is both sticky and super-sticky and
one of these stickyness declaration is not honored during a reload attempt.
2020-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Swap sticky module if stickyness definition is preserved
Allow a sticky or super-sticky module to be swapped by another modulefile
version as soon as stickyness definition is still satisfied. For instance,
if a sticky tag is applied over *foo* module, *foo/1.0* can be swapped by
*foo/2.0* as *foo* stickyness is preserved. If the sticky tag applies to
*foo/1.0*, this module cannot be replaced by another version of *foo*
module. Such swap may occur when processing a `restore` or a `switch`
sub-command.
2020-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Pass module string cmp method to
getModuleTag/isModuleTagged Add `cmp` option to the getModuleTag and
isModuleTagged procedures to specify the module designation comparison
method.
2020-12-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/231-verbose2.exp: ts: test new verbose2 msgs on
load/unload in 70/231
* doc/source/module.rst, modulecmd.tcl.in: Report already loaded/unloaded
mod if verbosity>=verbose2 Report when trying to load a module which is
already loaded or when trying to unload a module which is not loaded in case
the verbosity level currently set is equal to or higher than *verbose2*.
Closes #187
2020-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/sticky/.modulerc,
testsuite/modulefiles.3/sticky/2.0, testsuite/modulefiles.3/sticky/3.0,
testsuite/modules.50-cmds/462-sticky-corner.exp: ts: add some corner case
tests in 50/462
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/461-super-sticky.exp: ts: test super-sticky
modules in 50/461
* testsuite/home/coll-sticky-0, testsuite/home/coll-sticky-1,
testsuite/home/coll-sticky-2, testsuite/home/coll-sticky-3,
testsuite/modulefiles.3/bar/2.0, testsuite/modulefiles.3/sticky/.modulerc,
testsuite/modulefiles.3/sticky/1.0, testsuite/modulefiles.3/sticky/4.0,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/460-sticky.exp: ts: test sticky modules in 50/460
2020-12-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: update sticky module desc. in tag
design
* modulecmd.tcl.in: Super-sticky mod cannot be unloaded unless reloading
Raise an error on an attempt to unload a module tagged *super-sticky*,
unless if this module is reloading. *super-sticky* modules cannot be
unloaded even if unload is forced Closes #269
* configure: install: add default color/abbrev for super-sticky tag
* modulecmd.tcl.in: Allow unload of sticky module if reloading When
reloading a module, during a `reload` or `restore` sub-command or the
processing of the *Dependency Reload* mechanism, allow the unload of modules
that are tagged sticky, as we know they will be reloaded. Add
`reloading_mod` state to record the name of modules that are unloaded but
that will be reloaded right after. With this new state, unload of sticky
modules can be allowed.
* modulecmd.tcl.in: Remove useless args arg from lpopState proc
2020-12-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Module tagged 'sticky' cannot be unloaded unless forced
Raise error on an unload attempt of a module that is tagged *sticky*. If
this unload attempt is forced, raise a warning and proceed. Closes #269
* configure: install: add default color/abbrev to sticky tag
* doc/source/diff_v3_v4.rst: doc: use tables to desc. new cmds/switches in
diff doc
2020-12-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: test verbose2 verbosity in
20/118 70/{220,230} 50/410
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc.
verbose2 verbosity level in man/INSTALL/diff
* doc/source/module.rst: doc: precise debug2/-DD were added in v4.6 in
module(1) man
* configure, modulecmd.tcl.in: Introduce verbose2 verbosity level verbose2
verbosity level is introduced as a higher level than verbose and lower than
trace level. This new verbosity level currently enables to view the loading
and unloading notification of *hidden-loaded* modules.
2020-12-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc hidden-loaded
in module/modulefile man pages
* .../hide-and-forbid-modules/modulefiles/.modulerc,
doc/source/cookbook/hide-and-forbid-modules.rst: doc: add hidden-loaded
example on hide/forbid recipe
2020-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.70-maint/322-tag-sgr.exp,
testsuite/modules.90-avail/100-tags.exp: ts: test hidden-loaded tag on
70/{320,322} and 90/100
* modulecmd.tcl.in: No report of hidden-loaded tag on avail context
* testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/271-adv_version_spec-in.exp,
testsuite/modules.70-maint/275-adv_version_spec-loaded.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.90-avail/100-tags.exp: ts: update existing tests with
hidden-loaded tag abbrev
* modulecmd.tcl.in, testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.50-cmds/440-module-tag.exp: Raise error when hidden-loaded
tag is manually set
2020-07-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: add module-hide
--hidden-loaded casc tests in 20/119
2020-07-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide-deps,
testsuite/home/coll-hide-once-loaded-nuasked,
testsuite/modulefiles.2/hidereq/4.2, testsuite/modulefiles.2/hidereq/4.3,
testsuite/modulefiles.2/hidereq/4.4, testsuite/modulefiles.deps/h1,
testsuite/modulefiles.deps/h10, testsuite/modulefiles.deps/h2,
testsuite/modulefiles.deps/h20, testsuite/modulefiles.deps/h21,
testsuite/modulefiles.deps/h22, testsuite/modulefiles.deps/h3,
testsuite/modulefiles.deps/h30, testsuite/modulefiles.deps/h31,
testsuite/modulefiles.deps/h32, testsuite/modulefiles.deps/h33,
testsuite/modulefiles.deps/h4, testsuite/modulefiles.deps/ra,
testsuite/modulefiles.deps/rae, testsuite/modulefiles.deps/raf,
testsuite/modulefiles.deps/rag, testsuite/modulefiles.deps/rah,
testsuite/modulefiles.deps/swa, testsuite/modulefiles.deps/swb,
testsuite/modulefiles.deps/swc, testsuite/modulefiles.deps/swj,
testsuite/modules.20-locate/118-hidden-loaded.exp,
testsuite/modules.50-cmds/450-hidden-loaded.exp: ts: check hidden loaded
mods visibility on eval report msgs
2020-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: add abbrev for hidden-loaded tag hidden-loaded tag
will use same abbreviation than hidden tag (*H*), as hidden tag is reported
only on avail context and hidden-loaded on list context. So the sgr code
defined for H abbreviation will also applies to hidden-loaded tag.
2020-07-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll-hide-once-loaded,
testsuite/modulefiles.2/hide3/.modulerc,
testsuite/modulefiles.2/hidereq/4.1, testsuite/modulefiles.2/hidereq/4.2,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/118-hidden-loaded.exp: ts: test --hidden-loaded
opt of module-hide cmd
2020-07-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/design/module-tags.rst: doc: update hidden once loaded module
design
2020-07-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Exclude hidden loaded mods from auto handling reports
Do not report hidden loaded modules in the informational messages of the
auto handling mechanisms unless these hidden modules have been specifically
loaded or unloaded by user, verbosity level is set to debug or an higher
level or any messages are recorded for the hidden module evaluation. The
g_moduleHiddenEval array is introduced to record whether module evaluation
is hidden (hidden once loaded + automated evaluation of module) or not.
* modulecmd.tcl.in: No eval msg report of hidden auto-loaded mod Do not
report load, unload or switch of modules set hidden once loaded if these
modules have been loaded, unloaded or switched automatically. Unless
verbosity mode is set to debug or higher or if any messages are recorded for
this module evaluation.
2020-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Do not report hidden loaded mods on list sub-cmd Unless
-a/--all option is set, do not report loaded modules that have been declared
*hidden once loaded* through *hidden-loaded* module tag.
2020-12-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add --hidden-loaded opt to module-hide cmd Add the
--hidden-loaded option to the module-hide modulefile command that indicates
module should be hidden once loaded. When set, the *hidden-loaded* module
tag applies to module specification set on module-hide command A
hidden-loaded tag set is retained even if it is not held by the module-hide
command with highest hiding level.
2020-12-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: Set color for basic tag abbrev Provide in the default light
and dark background color set a graphical rendition code for the basic
module tags (loaded, auto-loaded, hidden, forbidden, nearly-forbidden).
* testsuite/modules.70-maint/322-tag-sgr.exp: ts: add test for
tag_color_name config in 70/322
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt tests for
tag_color_name config
2020-12-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULES_TAG_COLOR_NAME in module(1) man
* modulecmd.tcl.in: Rename getSgrkeysFromList proc in getTagSgrForModname
Clarify procedure name since it only applies to tag graphical rendering.
* modulecmd.tcl.in: Color tag by their own name For tags set in
tag_color_name configuration, apply graphical rendering over their name
rather than over the name of the module they are attached to. If an
abbreviation is defined for tag, this abbreviation name should be placed in
tag_color_name configuration value to make it stand by itself and not
disappear over module name rendition.
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add tag_color_name config to completion
scripts
* doc/source/diff_v3_v4.rst: doc: desc. MODULES_TAG_COLOR_NAME in diff doc
* INSTALL.rst, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
site.exp.in: Add tag_color_name configuration
2020-12-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.70-maint/322-tag-sgr.exp: ts: test more tags than chars in
name in 70/322
* modulecmd.tcl.in: Render tags separately if more sgr tags than char in
name In case there are more tags that should be rendered with a SGR code
than character in the module name to display, apply rendering of additionnal
tags other these tag names in the side tag list.
2020-11-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/322-tag-sgr.exp: ts: test graphical rendering of
tags in 70/322
2020-11-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: desc. SGR mechanism for tags in
design doc
* testsuite/modules.00-init/140-color.exp: ts: test cumulative sgr codes in
00/140
* modulecmd.tcl.in: Render multiple tags and hightlight matching substr
Update sgr procedure to render multiple other keys applying to the string,
by applying each of these keys to a sub part of string, yet mixing with
matching sub string highlight.
2020-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Apply tag sgr keys to element When tags apply to a
module to display, apply to this module name the sgr keys that are defined
to represent the tags. Each module tag matching a sgr code is then
graphically represented over module name and not reported by its tag name or
abbreviated name. If an abbreviation exists for tag name, sgr key is
matched against this abbreviated string. If no abbreviation exists for a
tag, sgr key is matched against tag full name. Currently only graphically
render single tag.
2020-11-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Handle matching substring hightlight in sgr proc
* modulecmd.tcl.in: Render default sym through single sgr elt processing
2020-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add the ability to apply multiple sgr keys
* modulecmd.tcl.in: Remove useless tagsgr arg on formatListEltToDisplay
2020-11-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULES_TAG_ABBREV in module(1) man
2020-11-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.70-maint/321-tag_abbrev.exp: ts: check tag abbrev in
70/321
* doc/source/design/module-tags.rst: doc: desc. tag abbrev in module tags
design
2020-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/030-options.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/350-allin.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../275-adv_version_spec-loaded.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.90-avail/100-tags.exp: ts: adapt existing tests for tag
abbrev
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt tests for tag_abbrev
config
* modulecmd.tcl.in: Abbreviate tags when reporting them on avail/list Use
abbreviation defined for each tag if any to report them over the avail and
list sub-command output result.
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add tag_abbrev config to completion
scripts
* doc/source/diff_v3_v4.rst: doc: desc. MODULES_TAG_ABBREV in diff doc
* INSTALL.rst, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
site.exp.in: Add tag_abbrev configuration
2020-11-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.50-cmds/440-module-tag.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.90-avail/100-tags.exp: Separate tags with ':' instead of
',' When reporting module tags on avail and list sub-commands, use ':'
character to separate multiple tags applying to the same module.
* doc/source/design/module-tags.rst, modulecmd.tcl.in,
testsuite/modulefiles.3/tag/.modulerc,
testsuite/modules.50-cmds/440-module-tag.exp: Raise error when reserved tag
name is set Raise an error when a reserved tag name is defined with
module-tag. Reserved names are currently: loaded, auto-loaded, forbidden,
nearly-forbidden and hidden.
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clear MODULES_LMTAG prior
test start
2020-11-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, configure: install: clear git remote in build ref tag
2020-11-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: desc. inherited tag from
module-{hide,forbid}
* modulecmd.tcl.in, testsuite/modules.50-cmds/288-info-tags.exp: Update
isModuleTagged to fetch info from collected tags Add the collected argument
to the isModuleTagged procedure to get the ability to query tag information
for designed modulefile from collected tags data for module rather raw tag
definition applying to module specification. Enable this query mode to
determine if module is nearly-forbidden in execute-modulefile procedure (as
tags for evaluated modules are fetched right before this test). Disable
'nearly-forbidden' tag check when performing an unload evaluation.
* NEWS.rst: doc: desc. initial module tag work in NEWS
* doc/source/modulefile.rst: doc: desc. module-tag in modulefile(4)
2020-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp: ts: adapt existing tests
for 'module-info tags' change
* doc/source/module.rst: doc: desc MODULES_LMTAG in module(1) man
* testsuite/etc/modulerc.tag, testsuite/modulefiles.3/info/.modulerc,
testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/6.0,
testsuite/modulefiles.3/tag/7.0, testsuite/modulefiles.3/tag/8.0,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.50-cmds/440-module-tag.exp: ts: add tests for module-tag
in 50/{288,440}
* testsuite/modulefiles.3/info/.modulerc,
testsuite/modulefiles.3/info/tags2,
testsuite/modules.50-cmds/288-info-tags.exp,
testsuite/modules.70-maint/070-display.exp: ts: test module-info tags on all
eval contexts
2020-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. MODULES_TAG on diff doc
* doc/source/diff_v3_v4.rst: doc: desc. module-tag in diff doc
* contrib/vim/syntax/modulefile.vim: vim: add new modulefile command
'module-tag'
* modulecmd.tcl.in: Fetch tags before starting modulefile eval Collect all
tags applying to the modulefile that need to be evaluated right before the
start of its evaluation. It enables to get the accurate tag information
during modulefile evaluation whatever the kind of evaluation (load, unload,
display, help, ...). Disable mechanism for source and unsource evaluation
contexts. In case current user environment state is inconsistent, do not
break the whole modulefile evaluation.
* modulecmd.tcl.in: Introduce 'module-tag' modulefile command Introduce the
`module-tag` modulefile command to enable users to associate their own tag
to modulefiles. These tags are reported on `avail` and `list` sub-command
outputs. This new command is intended to be used in modulerc evaluation
context. It is also recorded for modulefile evaluation context as it
corresponds to the evaluation context of the global and user RCs.
* modulecmd.tcl.in: Make --{after,before} optional in
parseApplicationCriteriaArgs Add the `aftbef` argument to the
parseApplicationCriteriaArgs procedure to optionally support the --after and
--before command-line switches. If support disabled (aftbef set to 0) an
argument equal to --after or --before is treated as regular content.
2020-10-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: desc module-info tags in modulefile(4) man
* doc/source/diff_v3_v4.rst: doc: desc. module-info tags in diff doc
* testsuite/modulefiles.3/info/.modulerc, testsuite/modulefiles.3/info/tags,
testsuite/modules.50-cmds/288-info-tags.exp: ts: test 'module-info tags' in
50/288
2020-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add tags sub-command to module-info modulefile command
Introduce the `tags` sub-command to the module-info modulefile command to
return the list of tags applying to currently evaluated module or tell if
tag specified as argument applyes to this module.
2020-10-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
testsuite/modules.70-maint/320-tags.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: adapt existing tests to
'hidden' tag
* modulecmd.tcl.in: Apply 'hidden' tag to module defined hidden Set a
`hidden` tag for each module targetted by a hidden definition coming whether
from a module-hide statement or by module name or version starting with a
dot character. The `hidden` tag is not exported in MODULES_LMTAG for
loading module as the hidden state concerns the `avail` report only.
2020-10-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/320-tags.exp: ts: test loaded/auto-loaded tags
in 70/320
* testsuite/modules.70-maint/320-tags.exp: ts: test tags output on list
sub-cmd in 70/320
2020-10-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Output tags along module on list subcmd Output the tags
of the modules returned by the list sub-command. Adapt module list regular
and json output styles to include these tags (enclosed in <> like for avail
sub-command). No output of tags on terse output mode as nothing other than
module name is displayed on this mode currently.
* testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/4.0,
testsuite/modulefiles.3/tag/5.0, testsuite/modules.70-maint/320-tags.exp:
ts: test MODULES_LMTAG in 70/320
2020-10-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/280-ml.exp: ts: adapt existing tests for
MODULES_LMTAG
* modulecmd.tcl.in: Record tags of loaded mods in MODULES_LMTAG env var
Record in user environment the tags applying to loaded modules. Making this
information persist in environment via MODULES_LMTAG variable helps to
report them on `list` sub-command and to remember these tags when the module
will be unloaded.
* testsuite/modulefiles.3/tag/.modulerc, testsuite/modulefiles.3/tag/1.0,
testsuite/modules.90-avail/100-tags.exp: ts: test tags output on avail
sub-cmd in 90/100
* modulecmd.tcl.in: Apply getModules phase 5 only for avail subcmd
Consolidate tags set for the modules returned by getModules procedure only
if called from an avail sub-command, as these informations are only useful
for this context (list sub-command does not rely on getModules).
* testsuite/install.00-init/030-options.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/350-allin.exp,
.../275-adv_version_spec-loaded.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.90-avail/070-full.exp: ts: adapt existing tests for tag
output on avail
* modulecmd.tcl.in: Record loaded/auto-loaded tags for loaded modules When
parsing loaded environment, record a loaded tag for each loaded module or an
auto-loaded tag if this module has been automatically loaded by another
module. Load these tags information at phase #5 of getModules prior
fetching the tags found from getModules search. If current user environment
state is inconsistent do not stop the whole avail process on this error.
2020-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Allow to recover from cacheCurrentModules error In case
the current user environment is stated inconsistent, allow to only report
this error and not terminate execution. An exitonerr argument is added to
cacheCurrentModules procedure to just call reportError procedure instead of
reportErrorAndExit.
2020-10-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add global/user rc def to module symbol list in any
cases When building the module symbol list in phase #1 of getModules
procedure, also add the definitions coming from global or user rc files even
if rc definitions should not be part of the result. As these symbolic names
may match query and make their targetted module from the currently searched
directory included in result.
2020-10-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Output tags along module on avail subcmd Output the
tags of the modules returned by the avail sub-command. Adapt module listing
regular, terse and json output styles to include these tags. These tags are
enclosed in <> to distinguish them from symbolic versions. Tags are sorted
when printed. No tag report for long output style not to exceed 80 columns.
* modulecmd.tcl.in: Collect tags for each elt returned by getModules Add a
fifth stage for getModules to gather all the tags applying to resulting
modules. These tags are stored in a g_tagHash global array to be used to
output these tags along the module they belong to.
* modulecmd.tcl.in: Refactor eltsuffix mngt on formatListEltToDisplay
* modulecmd.tcl.in: Rename tag_list var into sym_list for clarity
* modulecmd.tcl.in: Remove useless tag_list var in findModules
2020-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/module-tags.rst: doc: add initial module-tag design
notes
2020-12-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: use python installed by cygwin
to build win dist
2020-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: fix *slight* typo in README Thanks @mirkov for spotting
this. Fixes #373.
2020-12-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: fix centos8 repo config
2020-12-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.95-version/020-load-version.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/050-fullpathentry.exp,
testsuite/modules.95-version/090-dup-modpath-version.exp: ts: use
reset_test_env at end of 95-version ts
* testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp,
testsuite/modules.91-sort/040-load-sort.exp: ts: use reset_test_env at end
of 91-sort ts
* testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.90-avail/090-dup-modpath.exp: ts: use reset_test_env at
end of 90-avail ts
* testsuite/modules.80-deep/020-load-deep.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.80-deep/080-access-deep.exp,
testsuite/modules.80-deep/090-deepvirt.exp: ts: use reset_test_env at end of
80-deep ts
* testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/154-is-saved.exp,
testsuite/modules.70-maint/155-is-used.exp,
testsuite/modules.70-maint/156-is-avail.exp,
testsuite/modules.70-maint/157-info-loaded.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/200-errdisp.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/250-nan.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp, .../275-adv_version_spec-loaded.exp,
testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/300-err_stack.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: use reset_test_env at end
of 70-maint ts
* testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp: ts: use reset_test_env at end
of 61-coll ts
* testsuite/modules.60-initx/015-list.exp,
testsuite/modules.60-initx/080-access-initx.exp: ts: use reset_test_env at
end of 60-initx ts
* testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/099-uname-cleanup.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/322-is-avail.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps-fullpath.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-deps7.exp,
.../modules.50-cmds/376-switch-change-vers.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/391-function-undo.exp,
testsuite/modules.50-cmds/400-source-sh.exp,
testsuite/modules.50-cmds/410-modvar.exp,
testsuite/modules.50-cmds/420-versioncmp.exp,
testsuite/modules.50-cmds/430-implicit-req.exp,
testsuite/modules.50-cmds/431-not-req.exp: ts: use reset_test_env at end of
50-cmds ts
* testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
.../modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
.../modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/116-forbid-before-after.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: use reset_test_env
at end of 20-locate ts
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/040-load-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.10-use/090-bad.exp: ts: use reset_test_env at end of
10-use ts
* testsuite/modules.00-init/015-version.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.00-init/160-multilib.exp: ts: use reset_test_env at end of
00-init ts
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/024-ml.exp,
testsuite/install.00-init/025-autoinit.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/install.00-init/060-quar.exp,
testsuite/install.00-init/070-stderrtty.exp,
testsuite/install.00-init/080-args.exp,
testsuite/install.00-init/090-sh-to-mod.exp: ts: use reset_test_env at end
of install ts
* script/mt, testsuite/config/base-config.exp,
testsuite/install.00-init/011-save_test_env.exp,
testsuite/modules.00-init/085-save_test_env.exp,
testsuite/modules.60-initx/010-init_ts.exp,
testsuite/modules.60-initx/999-cleanup.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.70-maint/010-init_ts.exp,
testsuite/modules.70-maint/999-cleanup.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.91-sort/010-init_ts.exp,
testsuite/modules.91-sort/999-cleanup.exp,
testsuite/modules.95-version/010-init_ts.exp,
testsuite/modules.95-version/999-cleanup.exp: ts: add test env save/restore
mechanism Add the save_test_env and reset_test_env procedure to record
original test environment (global and environment variables) and restore it
once a test set has been done.
* testsuite/modules.00-init/010-environ.exp,
testsuite/modules.50-cmds/010-init_ts.exp,
testsuite/modules.50-cmds/999-cleanup.exp: ts: clear testsuite env var prior
starting tests
* testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: save orig PATH value in a
global ORIG_PATH var
* testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
testsuite/modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/116-forbid-before-after.exp,
testsuite/modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.80-deep/090-deepvirt.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp: ts: save orig MODULERCFILE value
in a global var
* testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.60-initx/010-init_ts.exp,
testsuite/modules.60-initx/999-cleanup.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/154-is-saved.exp,
testsuite/modules.70-maint/240-icase.exp: ts: save orig HOME value in a
global ORIG_HOME var
* testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.95-version/999-cleanup.exp: ts: clear temp vars used in
61-coll/95-version tests
2020-12-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: test with R on OSX instance
* testsuite/config/base-config.exp, testsuite/install.00-init/006-procs.exp,
testsuite/modules.00-init/006-procs.exp: ts: share base code between
testsuites Use dejagnu 'base-config' file to share code between the two
testsuites.
* testsuite/config/unix.exp: ts: collect install test output through pipes
Alternative method to collect stdout and stderr from command execution (on
Tcl>=8.6): use channel pipe instead of saving these outputs in file.
* testsuite/config/unix.exp, testsuite/install.00-init/006-procs.exp,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/024-ml.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/070-stderrtty.exp,
testsuite/install.00-init/080-args.exp: ts: do not ignore newline returned
at install result end Update install tests not to ignore the newline
returned at the end of stdout and stderr output.
2020-12-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/024-ml.exp,
testsuite/install.00-init/025-autoinit.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/install.00-init/070-stderrtty.exp: ts: fix expected regexp on
install test now full str is matched
* testsuite/install.00-init/006-procs.exp,
testsuite/install.00-init/010-environ.exp,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/024-ml.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/install.00-init/060-quar.exp,
testsuite/install.00-init/070-stderrtty.exp,
testsuite/install.00-init/080-args.exp: ts: install ts now checks for full
string match
2020-12-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml, .gitattributes: appveyor: remove config, tests are migrated
to GH Actions
* CONTRIBUTING.rst, README.md, script/mtreview: doc/script: windows CI tests
are now on GitHub Actions
* testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: skip symlink tests if
cannot create it on 20/100 & 90/080
2020-11-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/windows_tests.yaml: gh: port Windows tests from AppVeyor
to GH Actions
2020-11-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/unix.exp: ts: remove need to use thread to collect test
outputs
2020-11-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/unix.exp: ts: collect tests output through pipes and
thread Alternative method to collect stdout and stderr from command
execution (on Tcl>=8.6 and if Thread package is available): use channel pipe
and threads instead of saving these outputs in file.
* testsuite/config/unix.exp, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/160-multilib.exp,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/190-emptyarg.exp: ts: do not ignore newline
returned at result end Update tests not to ignore the newline returned at
the end of stdout and stderr output.
2020-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes, .travis.yml: travis: remove config, tests are migrated to
GH Actions
2020-11-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mtreview: script: add diff config for GHA in 'mtreview'
* CONTRIBUTING.rst, README.md: doc: linux CI tests are now on GitHub Actions
* doc/source/cookbook/hide-and-forbid-modules.rst: doc: fix code-block
syntax issue in hide-and-forbid-modules An argument value was missing for a
code-block in the hide-and-forbid-modules cookbook recipe. Set value to
none, as this block cannot be highlighted as Tcl code.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts: skip tests relying on a
stdin attached to tty In case stdin is not attached to a tty
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: fix ans escaping to cope
with block content output
2020-11-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/unix.exp, testsuite/install.00-init/005-init_ts.exp: ts:
ignore ruby insecure dir msg
* script/mt: script: remove --base64-failed-log opt from mt script Remove
the --base64-failed-log option from the mt script as there is no more need
to output full test output serialized since the CI systems now used can
upload the test log files as artifact.
2020-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/workflows/linux_tests.yaml: gh: port Linux tests from Travis to GH
Actions
2020-11-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/cookbook/test-modulefiles.rst: doc: fix missing space in
test-modulefiles rcp Thanks to Aurélien Degrémont for spotting this issue.
2020-11-16 Colin Marquardt <cmarqu42@gmail.com>
* doc/source/cookbook/test-modulefiles.rst: doc: add proper ReST references
in test-modulefiles rcp
* .../test-modulefiles/modulefiles/test_dir_and_file: doc: use versioned
cookie+getenv in test-modulefiles rcp Use versioned magic cookie and getenv
over $env
2020-11-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. 'loaded' sym in NEWS/MIGRATING
* doc/source/module.rst: doc: desc. 'loaded' sym in module(1) man
* testsuite/modulefiles.3/advvers/1.0,
testsuite/modules.00-init/005-init_ts.exp,
.../275-adv_version_spec-loaded.exp: ts: test 'loaded' auto sym in 70/275
2020-11-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'loaded' auto sym to designated loaded version Add
the `loaded` symbolic version among the advanced version specifier to
designate the currently loaded version of designated module. An error is
returned if no matching module is currently loaded. Fixes #366
2020-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. state changes in NEWS
2020-10-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: update tests for runtime
state handling changes
* modulecmd.tcl.in: Exclude new state helper procs from debug2 Do not
pollute debug2 output with the numerous calls to the new runtime state
helper procedures (lpopState currentState depthState).
* modulecmd.tcl.in: No definition record for basic states Remove the need
to record the definition of runtime states in the g_state_defs global array
for states with no specific properties.
* modulecmd.tcl.in: Use directly depthState on reportholdid rather
isReportHeld Remove isReportHeld procedure and rebase calls directly on
depthState with reportholdid state.
* modulecmd.tcl.in: Rebase llength+getState calls on depthState Use
depthState specific procedure rather calling llength on getState result.
* modulecmd.tcl.in: Use depthState rather getEvalModuleStackDepth Remove
getEvalModuleStackDepth procedure and use depthState procedure over
modulename state instead
* modulecmd.tcl.in: Add depthState proc Add the depthState helper procedure
that returns the number of elements in the list of values for specified
state.
* modulecmd.tcl.in: Migrate evalid to state struct
* modulecmd.tcl.in: Migrate msgrecordid to state struct
* modulecmd.tcl.in: Add topState proc Add the topState helper procedure
that returns the first element from the list of values for specified state.
* modulecmd.tcl.in: Migrate debug_msg_prefix to state struct
* modulecmd.tcl.in: Migrate reportholdid to state struct
* modulecmd.tcl.in: Migrate commandname to state struct
* modulecmd.tcl.in: Migrate specifiedname to state struct
* modulecmd.tcl.in: Drop ::ModulesCurrentModulefile outside of eval context
Rely on modulefile current state value rather use a distinct global variable
named ::ModulesCurrentModulefile outside of modulefile or modulerc
evaluation context.
2020-10-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate modulefile to state struct
* modulecmd.tcl.in: Migrate modulename to state struct
* modulecmd.tcl.in: Migrate mode to state struct
* modulecmd.tcl.in: Migrate always_read_full_file to state struct
2020-10-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove dup appending val with lappendState only if
-nodup set Update the lappendState procedure to clear duplicate entries to
append only if the `-nodup` option is set as first argument.
2020-10-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. lpopState/currentState in NEWS
* NEWS.rst: doc: desc. implicit_requirement/--not-req in NEWS
* .travis.yml: travis: add --disable-implicit-requirement to a test case
* doc/source/modulefile.rst: doc: desc. --not-req in modulefile(4) man
* doc/source/module.rst: doc: desc. implicit_requirement in module(1) man
2020-10-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/notreq/load,
testsuite/modulefiles.3/notreq/loaderr,
testsuite/modulefiles.3/notreq/loadmul,
testsuite/modulefiles.3/notreq/loadsubm,
testsuite/modulefiles.3/notreq/loadsubp,
testsuite/modulefiles.3/notreq/loadunk, testsuite/modulefiles.3/notreq/mix,
testsuite/modulefiles.3/notreq/prereq,
testsuite/modulefiles.3/notreq/switch1,
testsuite/modulefiles.3/notreq/switch1err,
testsuite/modulefiles.3/notreq/switch1unk,
testsuite/modulefiles.3/notreq/switch2,
testsuite/modulefiles.3/notreq/switchsubm,
testsuite/modulefiles.3/notreq/switchsubp,
testsuite/modulefiles.3/notreq/unload,
testsuite/modulefiles.3/notreq/unloaderr,
testsuite/modulefiles.3/notreq/unloadmul,
testsuite/modulefiles.3/notreq/use,
testsuite/modules.50-cmds/431-not-req.exp: ts: test --not-req option in
50/431
* modulecmd.tcl.in: Do not rely on auto_handling if implicit req disabled
Do not rely on the auto_handling code to solve dependency implied by 'module
unload' or 'module switch' commands during an unload evaluation if implicit
requirement feature is disabled as no requirement were recorded for these
commands on load phase.
2020-10-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.3/bar/1.0, testsuite/modulefiles.3/bar/2.0,
testsuite/modulefiles.3/baz/1.0, testsuite/modulefiles.3/baz/2.0,
testsuite/modulefiles.3/foo/0.err, testsuite/modulefiles.3/foo/0.load,
testsuite/modulefiles.3/foo/0.prereq, testsuite/modulefiles.3/foo/1.0,
testsuite/modulefiles.3/foo/2.0, testsuite/modulefiles.3/impreq/load,
testsuite/modulefiles.3/impreq/loaderr,
testsuite/modulefiles.3/impreq/loadmul,
testsuite/modulefiles.3/impreq/loadsubm,
testsuite/modulefiles.3/impreq/loadsubp,
testsuite/modulefiles.3/impreq/loadunk, testsuite/modulefiles.3/impreq/mix,
testsuite/modulefiles.3/impreq/prereq,
testsuite/modulefiles.3/impreq/switch1,
testsuite/modulefiles.3/impreq/switch1err,
testsuite/modulefiles.3/impreq/switch1unk,
testsuite/modulefiles.3/impreq/switch2,
testsuite/modulefiles.3/impreq/switchsubm,
testsuite/modulefiles.3/impreq/switchsubp,
testsuite/modulefiles.3/impreq/unload,
testsuite/modulefiles.3/impreq/unloaderr,
testsuite/modulefiles.3/impreq/unloadmul,
testsuite/modules.50-cmds/430-implicit-req.exp: ts: test disabled
implicit_requirement conf in 50/430
2020-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Extend req recording inhibition to switch subcontext
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: ensure implicit requirement
is enabled for tests
* doc/source/diff_v3_v4.rst: doc: desc. --not-req in diff doc
2020-10-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Inhibit requirement record Inhibit prereq or conflict
requirement record on module load, module unload or module switch if
implicit_requirement option is disabled or --not-user option is set. Add an
inhibit_req_record state to track whether requirement should be recorded or
not. Fixes #260
* testsuite/modules.70-maint/220-config.exp: ts: adapt existing test for
implicit_requirement conf
* modulecmd.tcl.in: Add lpopState/currentState procs Add the lpopState and
currentState helper procedures that respectively remove last element or
return last element from list value of specified state.
* modulecmd.tcl.in: Add --not-req opt to module {load,unload,switch} in
modfile Add the --not-req option for the module load, module unload and
module switch commands when used in modulefile. When set, specified modules
to load, unload of part of a switch are not recorded as requirement for
currently evaluating modulefile.
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add implicit_requirement config to
completion scripts
* doc/source/diff_v3_v4.rst: doc: desc. MODULES_IMPLICIT_REQUIREMENT in diff
* INSTALL.rst: doc: desc. --enable-implicit-requirement in INSTALL
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in: Add
implicit_requirement config Introduce the implicit_requirement
configuration option to control whether a prereq or conflict requirement
should be implicitly set toward modules respectively specified on module
load or module unload commands in modulefile. Default value for option
could be set at configure time with the --enable-implicit-requirement option
(enabled by default). This value could be superseded by setup of
implicit_requirement option with config sub-command. Which set the
MODULES_IMPLICIT_REQUIREMENT environment variable.
2020-10-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/050-crossshell.exp: ts: add cross shell tests
with shells_with_ksh_fpath
* NEWS.rst: doc: desc. shells_with_ksh_fpath in NEWS
* doc/source/module.rst: doc: desc. shells_with_ksh_fpath in module(1)
2020-10-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/modulerc-1.in,
testsuite/modules.70-maint/120-autoinit.exp: ts: test shells_with_ksh_fpath
in 70/120
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for
shells_with_ksh_fpath
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add shells_with_ksh_fpath config to
completion scripts
2020-10-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. MODULES_SHELLS_WITH_KSH_FPATH in
diff doc
* modulecmd.tcl.in: Add shells_with_ksh_fpath config Introduce
`shells_with_ksh_fpath` configuration to define shells where the FPATH
environment has to be defined to target ksh function directory. Value for
this configuration can be set through the MODULES_SHELLS_WITH_KSH_FPATH
environment variable. Fixes #364
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: ts: adapt
test to FPATH setup change for ksh
* init/ksh.in, modulecmd.tcl.in: Define FPATH during autoinit for ksh shell
When initializing module on ksh shell with the autoinit sub-command, add to
the FPATH environment variable the directory where module function is
defined. Which helps to get module function defined in ksh interactive and
non-interactive sub-shells. This FPATH setup for ksh shell was previously
done in ksh initialization script.
* NEWS.rst: doc: desc. MODULES_LMALTNAME/list changes in NEWS
* doc/source/module.rst: doc: MODULES_LMALTNAME used on list to report syms
* testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp: ts: new list report tests with
syms
2020-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/140-color.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/280-ml.exp: ts: adapt tests for loaded mod sym
fetch change
* modulecmd.tcl.in: Report sym recorded in env on list sub-command Use
symbolic versions recorded in environment, with MODULES_LMALTNAME variable,
to report symbols applying to loaded modules on list sub-command. This
change removes the need to evalute modulercs to fetch symbolic versions for
loaded modules, which leads to significant performance improvement for the
list sub-command.
* modulecmd.tcl.in: Simplify mtime fetch in cmdModuleList Fetch file
modification time only if required by module list display format.
2020-10-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.10-use/080-access-use.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp,
testsuite/modules.20-locate/111-hide-soft.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
.../274-adv_version_spec-autosym.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/068-transitive-deep.exp: ts: update
MODULES_LMALTNAME for new alias prefix
* doc/source/module.rst: doc: desc alt name prefixes used in
MODULES_LMALTNAME
* modulecmd.tcl.in: Flag alias in MODULES_LMALTNAME Distinguish aliases
from symbolic versions in MODULES_LMALTNAME environment variable. Prefix
these alias entries with the `al|` string.
2020-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modulefiles/bar/.common, .../modulefiles/bar/.modulerc,
.../new-features-without-breaking-old-module.rst: doc: update
new-features-without-breaking-old-module recipe Describe use of new
ModuleTool and ModuleToolVersion Tcl variables as well as versioncmp
modulefile command.
* MIGRATING.rst: doc: mention Lmod support for ModuleTool&co in MIGRATING
2020-10-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, Makefile, testsuite/example/.modulespath-wild.in: ts: test
wildcard char in modulespath conf
* NEWS.rst, modulecmd.tcl.in: Use of wildcard char to designate dirs in
modulespath Enable the use of wildcard character to designate multiple
directories at once in modulespath configuration file. Fixes #125
* testsuite/modulefiles.3/versioncmp/.modulerc,
testsuite/modulefiles.3/versioncmp/1.0,
testsuite/modules.50-cmds/420-versioncmp.exp: ts: test versioncmp in 50/420
* configure, site.exp.in, testsuite/modulefiles.3/mfvar/.modulerc,
testsuite/modulefiles.3/mfvar/1.0, testsuite/modulefiles.3/mfvar/2.0,
testsuite/modules.50-cmds/410-modvar.exp: ts: test
ModuleTool/ModuleToolVersion in 50/410
2020-10-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. versioncmp in NEWS
* MIGRATING.rst: doc: desc versioncmp in MIGRATING
* MIGRATING.rst: doc: simplify TOC of MIGRATING document
* doc/source/modulefile.rst: doc: desc. new versioncmp command in
modulefile(4)
* doc/source/conf.py, doc/source/modulefile.rst: doc: desc. ModuleTool and
ModuleToolVersion in modulefile(4)
* doc/source/conf.py, doc/source/modulefile.rst: doc: add new 'mfvar' sphinx
directive/role
* doc/source/diff_v3_v4.rst: doc: desc. versioncmp new elements in diff doc
2020-10-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce 'versioncmp' modulefile command Compare two
version strings and return -1, 0 or 1 respectively if first version string
is lower, equal or higher than second version string specified.
* modulecmd.tcl.in: Record module tool properties on eval interp For each
modulefile or modulerc Tcl interpreter created, initialize the global
variables ModuleTool and ModuleToolVersion with the information relative to
the module tool in use. Which help to know how modulefiles or modulerc
should be written, what features can be used or not.
2020-11-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, version.inc.in: Release
of version 4.6.1
* testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/114-hide-before-after.exp,
.../modules.20-locate/116-forbid-before-after.exp: ts: fix tested future
date for tests on 32bit sys
2020-11-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../hide-and-forbid-modules/modulefiles/.modulerc,
.../hide-and-forbid-modules/modulefiles/appA/1.0,
.../hide-and-forbid-modules/modulefiles/appA/2.0,
.../hide-and-forbid-modules/modulefiles/appB/1.0,
.../hide-and-forbid-modules/modulefiles/appB/2.0,
.../modulefiles/bioappA/1.0, .../modulefiles/bioappA/2.0,
.../modulefiles/bioappB/1.0, .../modulefiles/bioappB/2.0,
.../modulefiles/chemappA/1.0, .../modulefiles/chemappA/2.0,
.../modulefiles/chemappB/1.0, .../modulefiles/chemappB/2.0,
.../modulefiles/deplibA/1.0, .../modulefiles/deplibA/2.0,
.../modulefiles/deplibB/1.0, .../modulefiles/deplibB/2.0,
doc/source/cookbook/hide-and-forbid-modules.rst: doc: add
'hide-and-forbid-modules' cookbook recipe
2020-11-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/377-error.exp: Skip unload of
depended mods on purge When a module fails to unload during a `purge`
sub-command, preserve loaded the modules it requires to keep environment
consistent. Fixes #370
2020-11-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/111-hide-hard.exp: ts: fix hide tests for sym
resolution update
2020-11-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Drop result cache in isModuleHidden Recheck module
hiddenness each time isModuleHidden procedure is called. Drop cache result
of this procedure to ensure hiddenness is checked against up-to-date
module-hide definitions. Fix module hiddenness resolution for symbolic
versions defined in a global RC file when module-hide statements are set in
the modulepath where the modulefiles targeted by these symbols are located.
Fixes #369
2020-10-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add global/user rc def to module symbol list in any
cases When building the module symbol list in phase #1 of getModules
procedure, also add the definitions coming from global or user rc files even
if rc definitions should not be part of the result. As these symbolic names
may match query and make their targetted module from the currently searched
directory included in result. Fixes #368
2020-11-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.70-maint/280-ml.exp: Unset MODULES_LMSOURCESH with clear
sub-cmd Fix `clear` sub-command to unset the MODULES_LMSOURCESH environment
variable. Fixes #367
* .cirrus.yml: cirrus: adapt make command name to build env
* .cirrus.yml: cirrus: use template for build/install/uninstall scripts
2020-11-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: remove duplicate envvar desc. section
* .appveyor.yml: appveyor: use latest Win image to get msys2 ok
* CONTRIBUTING.rst, README.md: doc: update desc. related to CI systems used
* .cirrus.yml: cirrus: use template for tests and split test phases
* .cirrus.yml: cirrus: make a dedicated template for git clone script
* .travis.yml: travis: factorize linux test cases
2020-11-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: expose test log files as artifacts
* .travis.yml: travis: cleanup useless code now some tests are migrated
* .cirrus.yml, .travis.yml: travis/cirrus: migrate first Ubuntu test case to
Cirrus CI
2020-11-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .travis.yml: travis/cirrus: migrate OpenSUSE test cases to
Cirrus CI
* .cirrus.yml: cirrus: FreeBSD test cases just need 1 cpu
* testsuite/install.00-init/005-init_ts.exp: ts: ignore ruby warning when
tests are run from /tmp
* .cirrus.yml, .travis.yml: travis/cirrus: migrate CentOS test cases to
Cirrus CI
* .travis.yml: travis: remove non-essential CentOS tests
* testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: adapt DYLD warning msg
on new OSX test env
2020-11-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .travis.yml: travis/cirrus: migrate OSX test case to Cirrus
CI
2020-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. shell special chars escaping in diff
doc Shell special characters like backticks are escaped when used in values
starting Modules 4. Fixes #365
* doc/source/diff_v3_v4.rst: doc: fix typo on 4.5 and 4.6 envvar desc.
2020-10-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: rework module-{hide,forbid} option
description
2020-10-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: add anchor for each feature release in NEWS
* NEWS.rst: doc: fix typo on 4.6.0 title in NEWS
* doc/source/diff_v3_v4.rst: doc: fix typos in diff doc for 4.6 new mf cmds
2020-10-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modulefiles/.modulerc, .../modulefiles/foo/1.1,
.../modulefiles/foo/1.2, .../new-features-without-breaking-old-module.rst:
doc: add 'new-features-without-breaking-old-module' recipe
2020-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst: doc: clarify hide-forbid
design regarding retained rule
2020-09-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/115-forbid.exp: Optimize
module tag search Optimize internal recording of module tag specification
inherited from module-forbid commands found when parsing modulerc files.
Thus time taken to fetch a given tag applying to a module is reduced.
Record module tag specification in an array where key is module root name
and each tag has its own list of module specification/associated properties
couplet applying to it. When looking if a given module matches a given tag,
the associated properties to the tag from first matching module
specification is returned.
2020-09-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mb: script: add ability to select test to perform on 'mb'
* modulecmd.tcl.in: Filter entries in phase 2 of getModules for simple
searches Apply an early filter to remove entries not matching search query
module root in phase 2 of getModules procedure. Doing so improve
performances of whatis and search sub-commands. Only proceed with this
early filtering for basic searches (non wild, non contains and no wildcard
character in searched module root name).
2020-09-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Optimize hidden property search Optimize internal
recording of hidden module specification when parsing modulerc files in
order to reduce the time taken to test if a given module is hidden or not.
Record hidden module specification in an array where key is module root
name. So it can be easy to check if there is some hidden specification to
test for a given module (based on root name). Within each array entry hidden
module specifications are sorted by hidden level to be able to search these
specifications from strongest to weakest hidding level.
* modulecmd.tcl.in: Save/get module root name from module name and vers spec
When parsing module version specifiers compute the module root name and
record it in module version spec structure. Add the
getModuleRootFromVersSpec procedure to fetch module root name from a module
version spec.
2020-09-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, Makefile, testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/160-multilib.exp: ts/travis: test multilib support
with use of alt lib
2020-09-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/270-adv_version_spec.exp:
Raise error if mod spec is equal to '@' When full module specification is
equal to `@`, raise an error as no module name is provided. Fixes #362
2020-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
testsuite/example/sh-to-mod.sh,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: improve coverage of
sh-to-mod proc
2020-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mb: script: drop profiling of <4.4 releases in mb
* lib/configure.ac: lib: bump version to 1.2.0
* lib/configure.ac, lib/envmodules.c: lib: include missing
stdio.h/_ISOC99_SOURCE for snprintf
* testsuite/modules.50-cmds/400-source-sh.exp: ts: display loaded mod with
MODULES_LMSOURCESH cleared
2020-09-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/272-adv_version_spec-range.exp: ts: improve
coverage of modVersCmpProcIcaseExtdfl proc
* testsuite/modules.00-init/140-color.exp: ts: test --color opt set to an
unknown value
* testsuite/modules.00-init/071-args.exp: ts: improve coverage of
parseModuleCommandArgs proc
* modulecmd.tcl.in: findModules proc is always called on mod root Clean up
code relative to call over deep module name, which are not made anymore.
* modulecmd.tcl.in: No need to test if 'ml' was called within modulefile As
'ml' is not defined as a valid command for modulefile or modulerc
interpreters.
* modulecmd.tcl.in: Remove nextargisign from parseApplicationCriteriaArgs
proc nextargisign variable defined in parseApplicationCriteriaArgs is
useless as it was only set after an error raise. So it was never reached.
* testsuite/modules.20-locate/110-hide.exp: ts: improve coverage of eqspec
mode of modEq proc
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: Remove useless psuf arg on
modEq proc Pattern suffix is not used anymore in modEq comparison procedure
(it is only useful for modEqStatic procedure). So remove this useless
argument.
2020-09-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: check parseDateTimeArg lib
func against bad date
* .appveyor.yml: appveyor: need to set TZ for date time tests on MSYS
2020-09-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-mktime.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed mktime call Add an utility library that supersedes the
mktime function from libc. The mktime function from this added library
always returns an error (-1). It is used for coverage test of the mktime
call made within the Envmodules_ParseDateTimeArgObjCmd function of the Tcl
extension library.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: test parseDateTimeArg proc
with no arg in 00/120
2020-09-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mb: script: fix min version condition bench test
* lib/envmodules.c, lib/envmodules.h, modulecmd.tcl.in: lib: implement
parseDateTimeArg Add function in libtclenvmodules to implement
'parseDateTimeArg' as a Tcl command, which provides a more efficient way to
convert a datetime string into an Epoch time.
2020-09-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-time.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed time call Add an utility library that supersedes the time
function from libc. The time function from this added library always returns
an error (-1). It is used for coverage test of the time call made within the
Envmodules_InitStateClockSecondsObjCmd function of the Tcl extension
library.
* lib/configure.ac, lib/envmodules.c, lib/envmodules.h, modulecmd.tcl.in:
lib: implement initStateClockSeconds Add function in libtclenvmodules to
implement 'initStateClockSeconds' as a Tcl command, which provides a more
efficient way to retrieve current Epoch time.
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in,
version.inc.in: Release of version 4.6.0
* script/mrel: script: build src with compat vers enabled on mrel
2020-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. blank value set on win platform in NEWS
2020-09-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/090-memcache.exp: Simplify
arg setup to call findModules For the record, findModules need to get all
root module-related elements to correctly compute auto symbols to know if
they apply to searched modules.
2020-09-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use get-env to manipulate env var in cmdModuleAutoinit
As LOADEDMODULES and MODULEPATH are defined empty in cmdModuleAutoinit
procedure, use the get-env procedure to manipulate these variables to avoid
accessing undefined variable on Windows platform (as setting these variables
to an empty string means to unset these variables on this platform).
* modulecmd.tcl.in: unset env var when setting it to empty val on Win When
an empty string is set to an environment variable on Windows platform, this
variable is unset yet still seen defined by 'info exists' command on Tcl,
which leads to errors when trying to access variable content. So when trying
to set an empty string to an environment variable on Windows platform, call
for variable unset instead to reflect underlying OS behavior.
2020-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: disable git clone depth
2020-09-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml: appveyor: use BAWT Tcl installer for native Win test
2020-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: fix some typos in MIGRATING
2020-09-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. module-forbid in MIGRATING
2020-09-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. trace verbosity mode in MIGRATING
2020-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/140-color.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: test trace verbosity in
00/140 and 70/230
* NEWS.rst: doc: desc. trace verbosity in NEWS
2020-09-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/module.rst: doc: desc. trace in INSTALL/module(1)
2020-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, modulecmd.tcl.in: Add 'tr' sgr color key for trace messages
2020-09-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests for new
trace verbosity
* NEWS.rst, configure, testsuite/install.00-init/005-init_ts.exp: install:
add support for MinGW platform Look for `make` rather `gmake` on MinGW and
build library with a `.dll` extension on this platform.
2020-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: finalize module-hide desc. in MIGRATING
2020-09-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, modulecmd.tcl.in: Rework trace verbosity level Report module
resolution/search/selection/evaluation to trace big steps of modulecmd.tcl
activity.
2020-09-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: test debug2 verbosity in
70/{220,230}
* INSTALL.rst, NEWS.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst:
doc: desc. debug2 verbosity mode in diff/man/NEWS/INSTALL
* configure, modulecmd.tcl.in: Rework current trace verbose mode into debug2
mode Report procedure call in addition to other debug messages through the
`debug2` verbosity level rather the `trace` level (that is preserved for
another task). When -D/--debug option is set multiple times, `debug2` mode
is set.
* modulecmd.tcl.in: Add caller argument to reportDebug proc Introduce the
`caller` argument to the reportDebug procedure to get the ability to define
the calling procedure name to report. This argument is especially used by
the initial reportDebug procedure set prior report initialization, to send
toward final reportDebug procedure the actual caller name.
2020-09-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mb, testsuite/etc/modulerc.bench3: script: add avail3/whatis3 tests
to mb Bench new hide/forbid features mixed with advanced version specifiers
syntax. These new tests only apply to newer versions.
2020-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: merge release of version 4.5.3
* modulecmd.tcl.in: Make --before matches if strictly below Instead of
matching past or current time, make value of `--before` option only match if
specified time is over.
* testsuite/modules.20-locate/115-forbid.exp: ts: help old dejagnu version
to load `msgcat` cmd
2020-08-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: test when
nealy-forbidden tag applies
2020-08-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst: doc: desc.
nearly-forbidden feature and opts in design notes
* NEWS.rst: doc: desc. nearly-forbidden feature and opts in NEWS
* doc/source/modulefile.rst: doc: desc. --nearly-message option in
modulefile(4) man
* modulecmd.tcl.in: Add --nearly-message option to module-forbid command
Add the --nearly-message option on module-forbid command to enable set of
specific additionnal error message when an attempt to evaluate a *nearly
forbidden* module is made. When defined, record message as a property of
the nearly-forbidden tag.
* modulecmd.tcl.in: Warn when evaluate a nearly-forbidden module Produce a
warning message when a module with *nearly-forbidden* is evaluated. Message
produced indicate the date time starting when module will effectively be
forbidden.
* modulecmd.tcl.in: Set nearly-forbidden tag if in range Update
parseApplicationCriteriaArgs procedure to get a *near range in seconds* as
first argument, then determine in this procedure if the *after* criteria is
near. Add this information and the *after* criteria value to the list of
returned values. With these new informations, the *nearly-forbidden* tag is
set in module-forbid for module specification that are close to reach the
*after* limit defined.
2020-08-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt tests for
nearly_forbidden_days config
* doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc. nearly_forbidden_days config in
man/diff docs
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add nearly_forbidden_days config in
completion scripts
* modulecmd.tcl.in: Add nearly_forbidden_days configuration Introduce the
`nearly_forbidden_days` configuration to determine the number of days a
module should be considered *nearly forbidden* prior reaching its expiry
date set by `module-forbid` modulefile command. Default value for this
option is obtained from --with-nearly-forbidden-days configure option, which
is set to 14 days by default. Configuration value can be superseded by use
of MODULES_NEARLY_FORBIDDEN_DAYS environment variable.
* modulecmd.tcl.in: Validate config value against class Add the ability to
validate a configuration value against a value class (integer, string, ...)
rather a list of accepted values. See list of accepted class names on Tcl
`string is` command.
* INSTALL.rst, Makefile, Makefile.inc.in, configure, site.exp.in: install:
add --with-nearly-forbidden-days configure opt Introduce the
--with-nearly-forbidden-days ./configure script option to define the number
of days a module is considered nearly forbidden prior reaching its expiry
date limit set by module-forbid command.
2020-08-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: increase mt run timeout for macos coverage build
* doc/source/design/hide-or-forbid-modulefile.rst: doc: desc. --message in
module-forbid design notes
2020-08-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/115-forbid.exp: ts: test --message option in
20/115
* modulecmd.tcl.in: Add --message option to module-forbid command Add the
--message option on module-forbid command to enable set of specific
additionnal error message when an attempt to evaluate a forbidden module is
made. When defined, record message as a property of the forbidden tag.
* modulecmd.tcl.in: Record properties along tag Adapt
setModspecTag/getModuleTag/isModuleTagged procedure to give the ability to
set a list of properties for a tag. Add getModuleTagProp procedure to
retrieve the properties associated to recorded tag.
* NEWS.rst, doc/source/modulefile.rst: doc: desc --message module-forbid
option in NEWS/modulefile(4)
* modulecmd.tcl.in: Define forbidden err msg from getForbiddenMsg proc Add
getForbiddenMsg procedure to generate error message obtained when trying to
evaluate a forbidden module.
2020-08-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc,
testsuite/modules.20-locate/115-forbid.exp: ts: add module-forbid tests
Tests over different kind of elements and coupled with different kind of
module-hide commands
2020-08-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc,
testsuite/modules.20-locate/113-hide-all-opt.exp,
.../modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/116-forbid-before-after.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/118-forbid-all-opt.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: reduce/adapt number
of module-forbid tests To avoid duplication with module-hide --hard tests
2020-08-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst: doc: update desc. of
module-forbid in design notes
* modulecmd.tcl.in: Disallow evaluation of forbidden modules When a module
has been tagged forbidden, disallow its evaluation by transforming
modulefile path location result in an `accesserror` entry. As evaluation is
concerned, it only has an impact on modulefile or virtual modules.
Directories, alias or symbolic version are not impacted thus still used to
resolve path to modulefile and virtual module even if tagged forbidden.
2020-08-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: update desc. of
module-forbid in man pages.
* NEWS.rst: doc: update desc. of module-forbid in NEWS
2020-08-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc,
.../modules.20-locate/114-hide-before-after.exp,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/116-forbid-before-after.exp,
.../modules.20-locate/117-forbid-user-group.exp: ts: transform 20/115 tests
in module-hide --hard + module-forbid
* modulecmd.tcl.in: Uncouple module hiding from module-forbid command Do
not imply hiding specified module on `module-forbid` command. Just record
module specification is said *forbidden* which will be checked to disallow
module load. Doing so, hiding module is now only done through `module-hide`
command and the previous behavior of `module-forbid` command can now be
achieved with `module-hide --hard` + `module-forbid`. This change also
enables to forbid use of modules that are visible. Hard-hiding level is
lowered to *2*, as this spot was left empty through this change.
* modulecmd.tcl.in: Add internal helper procs to define tags over modules
Add the setModspecTag procedure to record defined tag over a module
specification. getModuleTag procedure enables to retrieve all the tags
applying to a module passed as argument. isModuleTagged procedure returns
whether or not given module has given tag set on it.
* modulecmd.tcl.in: Reword doesModuleHaveTag proc in doesModuleHaveSym To
avoid confusion with upcoming tag feature.
* doc/source/design/hide-or-forbid-modulefile.rst: doc: desc. --hard in
hide-or-forbid design doc
* MIGRATING.rst: doc: desc. module-hide --hard in MIGRATING
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: add cascading tests
for --hard in 20/119
* doc/source/modulefile.rst: doc: desc auto sym hidden properties in
modulefile(4)
* testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.20-locate/115-forbid.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: fix 20/11* tests as
auto-syms cannot be set hidden
* modulecmd.tcl.in: Get default version from sym target in getModules
Rework getModules procedure to get the defined default version from the
fetched symbolic version target available in found_list structure rather
querying g_resolvedPath global structure. Doing so, hidden default are
automatically dropped.
2020-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst, modulecmd.tcl.in:
Auto-symbols cannot be set hidden Hidden statements can only target
declared symbolic versions and not those automatically defined (@default and
@latest). Thus when a declared `default` or `latest` symbol is set hidden,
an auto-symbol is automatically defnied instead (targeting highest module
version available).
* NEWS.rst, doc/source/module.rst, doc/source/modulefile.rst: doc: desc
--hard option in NEWS/MIGRATING/man
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/111-hide-hard.exp: ts: test --hard option in
20/111-hide-hard
2020-08-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add --hard option to module-hide command Add `--hard`
option to module-hide modulefile command. When set, modules specified are
hidden with highest stealth level. They are never disclosed, even if
precisely targetted by search or selection query.
* modulecmd.tcl.in: Rework isModuleHidden procedure Rework isModuleHidden
procedure to split test per hiding level and category. Transform retlvl
option into retdetails that now returns a list of values: is module hidden,
what is module hiding level and is module considered matching search query
depending on its hiding level.
2020-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: combinated use of
module-hide/module-forbid opts in 20/119
* testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/116-forbid-before-after.exp: ts: test --before/--after
on module-forbid in 20/116
* testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/114-hide-before-after.exp: ts: test --before/--after
on module-hide in 20/114
* doc/source/design/hide-or-forbid-modulefile.rst: doc: specify date time
format in hide/forbid design notes
* doc/source/design/hide-or-forbid-modulefile.rst, modulecmd.tcl.in,
.../modules.20-locate/112-hide-user-group.exp,
.../modules.20-locate/117-forbid-user-group.exp: Raise error rather warn
when --not-{user,group} used on Win Raise an error rather report a warning
when the --not-user or --not-group options to the module-hide or
module-forbid commands are used on Windows platform. Issue is clearly
localized this way when trying to load impacted modules. Also as such error
leads to skip remaining part of modulerc, staff will fix it right away.
* doc/source/modulefile.rst: doc: desc. --before/--after in modulefile(4)
man
* NEWS.rst: doc: desc. --before/--after in NEWS
* modulecmd.tcl.in: Factorize --not-group/--not-user switch cases
* modulecmd.tcl.in: Add --before/--after options to module-{hide,forbid}
cmds Introduce the `--before` and `--after` options to `module-hide` and
`module-forbid` to make these commands apply only before a specific date
and/or after a specific date. Procedure parseDateTimeArg is added to
evaluate date time value specified on the 2 new options and translate it
into an epoch time for comparison against current epoch time, saved in
`clock_seconds` state. Accepted datetime format are `YYYY-MM-DD` or
`YYYY-MM-DDTHH:MM`. Both options are ignored on Tcl<8.5 as -format option
of clock scan command is not available, which does not permit to work with
selected date time format.
2020-08-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add clock_seconds and tcl_version_lt85 states
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc module-forbid
in module(1)/modulefile(4)
* NEWS.rst: doc: desc. module-forbid in NEWS
* testsuite/etc/modulerc.hide,
testsuite/modules.20-locate/118-forbid-all-opt.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: test dot mod
targetted by module-forbid in 20/{118,119}
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/115-forbid.exp,
.../modules.20-locate/117-forbid-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: add cascading tests
with module-forbid in 20/119
* testsuite/modules.20-locate/118-forbid-all-opt.exp: ts: test --all option
over forbidden mods in 20/118
* testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/117-forbid-user-group.exp: ts: add module-forbid
--not-{user,group} tests in 20/117
* doc/source/design/hide-or-forbid-modulefile.rst: doc: clarify mod@1.0,2.0
load selection in forbid context
2020-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst, modulecmd.tcl.in,
testsuite/modules.20-locate/112-hide-user-group.exp: Ignore
--not-user/--not-group options on Windows platform Ignore any `--not-user`
or `--not-group` option set on `module-hide` or `module-forbid` commands on
Windows platform. Emit a warning message to indicate these options are not
supported.
* modulecmd.tcl.in: Ignore forbidden default symbol In case a `default`
symbolic version is defined forbidden, ignore this default resolution.
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/115-forbid.exp: ts: add 20/115 to test
'module-forbid'
2020-08-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Unset forbidden or set them as error elts in getModules
res Adapt `isModuleHidden` procedure and phase #2 of `getModules` procedure
to transform module entries set as forbidden in error entries shipped with a
*Access denied* message if these entries are specified in search query or
unset the forbidden entries not specified in search query (like for hidden
entries). When search query matches forbidden modules, the error entry is
processed by procedure like `getPathToModule` to report the error message to
the user.
* contrib/vim/syntax/modulefile.vim: vim: add new modulefile command
'module-forbid'
2020-08-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce 'module-forbid' modulefile command Create
initial 'module-forbid' procedure and record it in modulefile and modulerc
evaluation context. Procedure follows the same approach than 'module-hide'
except than hiding level is *2* here.
2020-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/110-hide.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/271-adv_version_spec-in.exp,
testsuite/modules.70-maint/272-adv_version_spec-range.exp: Correctly report
failed eval attempt of adv_vers_spec prereq Correctly report failed
attempts to load module requirements expressed with advanced version
specifiers. Fixes #356
2020-08-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml: appveyor: temporarily stop testing CMake in Cygwin platform
On Cygwin platform, CMake installation seems currently broken under the
AppVeyor CI environment (see https://github.com/appveyor/ci/issues/3508). So
for the time being, remove CMake installation to avoid failing test results.
2020-08-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/110-hide.exp,
.../modules.20-locate/112-hide-user-group.exp: Raise error when invalid opt
set on module-hide Raise an error when an invalid option is passed to
`module-hide` command.
* modulecmd.tcl.in: Record mod spec hiding level with setModspecHidingLevel
proc Add `setModspecHidingLevel` procedure to record hiding level of a
given module specification.
* modulecmd.tcl.in: Parse and eval application criteria args in specific
proc Add `parseApplicationCriteriaArgs` procedure to deleguate from
`module-hide` procedure the parsing and evaluation of application criteria
arguments (--not-user, --not-group). This new procedure returns if command
applies and the other arguments to parse in command procedure.
* NEWS.rst: doc: desc. module switch conflict skip in NEWS
2020-08-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/swaa/1.0, testsuite/modulefiles.deps/swaa/1.1,
testsuite/modulefiles.deps/swaa/1.2, testsuite/modulefiles.deps/swaa/1.4,
testsuite/modulefiles.deps/swaa/2/0, testsuite/modulefiles.deps/swaa/2/2,
testsuite/modulefiles.deps/swaa/2/8, testsuite/modulefiles.deps/swaa/3.0,
testsuite/modulefiles.deps/swaa/3.2, testsuite/modulefiles.deps/swaa/3.8,
testsuite/modulefiles.deps/swab,
.../modules.50-cmds/376-switch-change-vers.exp: ts: test 'switch to change
module version' usecase in 50/376
* modulecmd.tcl.in: Skip module switch conflict set if old matches new
`module switch` command used in modulefile is sometimes used to ensure a
given version of a module is loaded. Currently loaded version of this module
is unloaded to replace it by the designated specific version. This use case
does not cope with the conflict declaration that is set over switched-off
module specification. To support this use case, conflict definition is
skipped if swapped-off module specification matches (includes) swapped-on
module specification. Fixes #355
* MIGRATING.rst, NEWS.rst, doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/modulefile.rst, modulecmd.tcl.in, testsuite/etc/modulerc.hide,
testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: Reword '--allow-group'
option into '--not-group' Reword module-hide option `--allow-group' into
`--not-group` to get a generic term to designate that command does not apply
to specified groups. Such generic term could be reused on other future
modulefile commands, making this concept easier to understand as it applies
with the same meaning on several commands.
* MIGRATING.rst, NEWS.rst, doc/source/design/hide-or-forbid-modulefile.rst,
doc/source/modulefile.rst, modulecmd.tcl.in, testsuite/etc/modulerc.hide,
testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/112-hide-user-group.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: Reword '--allow-user'
option into '--not-user' Reword module-hide option `--allow-user' into
`--not-user` to get a generic term to designate that command does not apply
to specified users. Such generic term could be reused on other future
modulefile commands, making this concept easier to understand as it applies
with the same meaning on several commands.
2020-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: update module-hide ex with --allow-* opts in MIGRATING
2020-08-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: cascading tests with
--allow-{user,group} in 20/119
* testsuite/modulefiles.2/hide1/.modulerc,
.../modules.20-locate/112-hide-user-group.exp: ts: test --allow-{user,group}
options in 20/112
2020-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: use console code-block for 4.6 examples in MIGRATING
* NEWS.rst, doc/source/modulefile.rst: doc: desc. --allow-group in
modulefile(4) man and NEWS
* modulecmd.tcl.in: Add '--allow-group' option to module-hide mf cmd
* NEWS.rst, doc/source/modulefile.rst: doc: desc. --allow-user opt in
modulefile(4) man and NEWS
* modulecmd.tcl.in: Add '--allow-user' option to module-hide mf cmd
* MIGRATING.rst: doc: desc. module-hide in MIGRATING
2020-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: desc. module-hide in modulefile(4) man
* doc/source/module.rst: doc: desc. --all/-a option in module(1) man
2020-07-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. module-hide & related changes in NEWS
2020-07-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide4/.1.0,
testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: test module-hide
statements of dot named mod in 20/119
* contrib/vim/syntax/modulefile.vim: vim: add new modulefile command
'module-hide'
2020-07-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Highest hiding level defined wins In case multiple
module-hide commands target the same module set, the highest hiding level
among those commands wins and is retained, which means most restrictive
command wins.
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modules.20-locate/119-hide-cascading.exp: ts: add 20/119,
module-hide cascading tests
* modulecmd.tcl.in: Clean trailing space character
* script/createmodule.py.in, script/createmodule.sh, script/envml,
script/mkroot, script/mrel, script/mtreview: script: clean trailing space
character
2020-07-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst, modulecmd.tcl.in,
testsuite/modules.20-locate/113-hide-all-opt.exp: Remove -a/--all option for
is-avail sub-cmd As it seems more consistent that any `is-avail mod`
command returning true should lead to a ``load mod`` command effectively
loading a module, -a/--all option does not apply to is-avail sub-command.
* modulecmd.tcl.in: Refactor add path pos opt pass toward cmdModuleUse
Parse --append/--prepend and derivatives options for cmdModuleUse procedure
in the general module command parsing procedure: parseModuleCommandArgs. By
doing so, it is possible to distinguish if -a option is the --append option
of use sub-command or --all option of searching/listing sub-command.
2020-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/113-hide-all-opt.exp,
testsuite/modules.90-avail/070-full.exp: ts: test --all option in 20/113
2020-07-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc,
testsuite/modules.20-locate/111-hide-soft.exp: ts: add 'module-hide --soft'
tests in 20/111
2020-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc. module-hide/module-forbid/--all in
diff doc
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add -a/--all option to completion
scripts
* modulecmd.tcl.in: Add -a/--all opt for av/al/wh/search/is-avail sub-cmd
Introduce the -a/--all option to include hidden modules in avail, aliases,
whatis, search and is-avail search sub-commands. When set, -a/--all option
increase hiding_threshold to 2, which means dot name modules or modules
declared hidden with module-hide are visible.
* modulecmd.tcl.in: Add 'hiding_threshold' state Introduce the
'hiding_threshold' state that determine the threshold value starting from a
module is considered hidden.
* modulecmd.tcl.in: Introduce '--soft' option to module-hide modfile cmd
Soften level of camouflage with new option --soft of module-hide Tcl
modulefile command. Modules targeted by such hide directive are made visible
as soon as their root name is part of search query. A '0' hiding level is
applied to soft hide.
* modulecmd.tcl.in: Cache isModuleHidden test result
* modulecmd.tcl.in: Record a hiding level of module Rather querying if
module has been declared hidden or not with isModuleDeclHidden procedure,
query the hiding level of module with getModuleHidingLevel procedure. -1
means module is not hidden. any value above -1 means module is hidden.
2020-07-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Test search query match directly in isModuleHidden Move
test that determine if a dot-named module or a declared hidden module is
matching search query, which renders it visible, into the isModuleHidden
procedure. Thus this procedure directly tells if module is effectively
hidden based on search query.
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide3/.modulerc: ts:
test cascading module-hide defs in 20/110
* testsuite/modules.20-locate/110-hide.exp: ts: add tests over loaded env in
20/110
* testsuite/modulefiles.2/hidereq/4.0, testsuite/modulefiles.2/hidereq/{3.1
=> 4.1}, testsuite/modules.20-locate/110-hide.exp: ts: add is-avail test in
20/110
* modulecmd.tcl.in: Fix use of adv vers spec arg on is-avail in modulefile
Fix use of the advanced version specifiers in arguments to the is-avail Tcl
modulefile command.
2020-07-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide3/.modulerc, testsuite/modulefiles.2/hide3/1.0,
testsuite/modulefiles.2/hide3/sub1/2.0,
testsuite/modulefiles.2/hide3/sub1/3.0,
testsuite/modulefiles.2/hide3/sub2/.modulerc,
testsuite/modulefiles.2/hide3/sub2/4.0,
testsuite/modulefiles.2/hide3/sub2/5.0,
testsuite/modules.20-locate/110-hide.exp: ts: add module-hide tests over
deep mods
* modulecmd.tcl.in, testsuite/modules.80-deep/010-init_ts.exp: Record
resolution of transitive symbols In case a symbolic version is transitively
applied toward a modulefile, like for instance when this symbol is first set
onto a directory, record resolution of each transitively applied symbol. By
doing so, a module load tentative using the transitively applied symbolic
version will now correctly resolve to the modulefile targeted by symbol.
2020-06-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.hide, testsuite/modulefiles.2/hide1/.modulerc,
testsuite/modulefiles.2/hide1/1.0, testsuite/modulefiles.2/hide1/2.0,
testsuite/modulefiles.2/hide1/2.1, testsuite/modulefiles.2/hide1/2.2,
testsuite/modulefiles.2/hide1/3.0, testsuite/modulefiles.2/hide1/3.1,
testsuite/modulefiles.2/hide1/3.2, testsuite/modulefiles.2/hide1/4.0,
testsuite/modulefiles.2/hide1/5.0, testsuite/modulefiles.2/hide2/.modulerc,
testsuite/modulefiles.2/hide2/1.0, testsuite/modulefiles.2/hidereq/1.0,
testsuite/modulefiles.2/hidereq/1.1, testsuite/modulefiles.2/hidereq/1.2,
testsuite/modulefiles.2/hidereq/1.3, testsuite/modulefiles.2/hidereq/1.4,
testsuite/modulefiles.2/hidereq/1.5, testsuite/modulefiles.2/hidereq/2.0,
testsuite/modulefiles.2/hidereq/2.1, testsuite/modulefiles.2/hidereq/2.2,
testsuite/modulefiles.2/hidereq/2.3, testsuite/modulefiles.2/hidereq/2.4,
testsuite/modulefiles.2/hidereq/2.5, testsuite/modulefiles.2/hidereq/2.6,
testsuite/modulefiles.2/hidereq/3.0, testsuite/modulefiles.2/hidereq/3.1,
testsuite/modules.20-locate/110-hide.exp: ts: add initial module-hide tests
in 20/110
2020-07-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Relocate defineModEqStaticProc call in getModules
2020-07-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Define autosym only for dir matching query Define the
default and latest auto symbols only if module name matches search query to
ensure all module entries have been processed prior setting these symbols.
If some alias are defined in global or user modulerc, their relative module
name will automatically be part of names analyzed for auto symbol
definition. However if available module searched does not match this alias,
auto symbol were previously defined without all the module entries evaluated
to know if these symbols should be defined and how.
* modulecmd.tcl.in: Unhide default symbol on res ctx matching bare mod name
On a resolution context, like a load sub-command, unhide any default
symbolic version if search query matches bare module name.
* modulecmd.tcl.in: Hide mod root name from alt names if default sym hidden
When loading module, if it matches default version but this symbolic version
is set hidden, also remove module parent name from the list of alternative
names to record in environment.
* modulecmd.tcl.in: Unhide 'default' symbol on 'avail -d' When the *only
defaults* filter of avail sub-command is enabled, unhide all the default
symbolic version or module targeted by this symbol.
2020-07-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.90-avail/070-full.exp: Do not report hidden symbol on
avail On avail sub-command, remove hidden symbolic version from list to
display along modulefile or directory they target, unless these symbols are
specifically referred in search query. As side effect, symbol prefixed by a
dot character are also made hidden from avail sub-command with this change.
* modulecmd.tcl.in, testsuite/modules.20-locate/067-hidden.exp: No record of
hidden alt names When loading module has alternative names declared hidden
(alias or symbolic version), withdraw these names from the alternative names
to record in environment (in MODULES_LMALTNAME) unless they precisely match
search query used to load module. Applies to both module declared hidden or
whose name starts with a dot character.
2020-07-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Simplify ternary operators rendering boolean result
* modulecmd.tcl.in: Keep hidden tgt of default sym in resolve context When
getModules procedure is called in a resolution context (when it is called by
getPathToModule proceudre), keep the hidden target of the default symbol if
search query is equivalent to module name. As during a resolution context
'mod' query is equivalent to 'mod/default' query.
2020-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/067-hidden.exp: No specific
res for sym ver target in cmdModuleSearch Modulefile targeted by symbolic
version should be included in getModules result along with symbolic version
entry. So there is no need to specifically resolve by default symbolic
version target in cmdModuleSearch procedure. If symbol's target is found in
error, record it if search query matches symbol. And if symbol's target has
not been found in directory where symbol is defined, add this symbol target
to the list of element to resolve in other modulepath directories later on
cmdModuleSearch procedure.
* modulecmd.tcl.in: Resolve icase symver target in getModules When looking
for symbolic version target to add them to getModules result in case
symbolic versions targeting them match search query. Resolves symbolic
version target in an icase way when icase mode is enabled.
2020-07-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Refactor hversmod_list in getModules Rather testing if
symbol target is hidden in phase #1 of getModules procedure when building
list of symbolic versions, build at this first stage the list of symbols for
each module having at least one symbol targeting it. Use this array list,
named versmod_list, at stage #2 when withdrawing hidden modules unless if
they are directly targeted by search query or the symbolic versions
targeting them.
* modulecmd.tcl.in: Exclude declared hidden mods from getModules res Adapt
phase #2 of getModules procedure to withdraw all modules declared hidden
unless if they match search query. Hidden elements should exactly match
search query to be retained.
* modulecmd.tcl.in: Add 'eqspec' test on modEq proc Add the `eqspec` test
on modEq procedure to check equality against precise version specification,
even when extended_default configuration is enabled, and precisely match
versions specified in list or as range boundaries.
2020-07-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Check for hidden mod spec in isModuleHidden Transform
existing isModuleHidden procedure in isModuleDotHidden procedure, checking
hidden state against dot name aspect only. Introduce isModuleDeclHidden
procedure to check hidden state against hidden module specifications. Make
isModuleHidden procedure to check against dot name hidden and declared
hidden modules by calling isModuleDotHidden and isModuleDeclHidden
procedure.
* modulecmd.tcl.in: One global statement for all req vars in getModules
2020-06-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce 'module-hide' modulefile command Create
initial `module-hide` procedure and record it in modulefile and modulerc
evaluation context. Throw an error if no module is specified as argument.
Every module specification is recorded in a global array named g_moduleHide
are being parsed like any other module version specification. Fixes #202.
2020-06-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/hide-or-forbid-modulefile.rst: doc: add
hide-or-forbid-modulefile design doc
2020-07-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, lib/configure.ac, lib/envmodules.c, modulecmd.tcl.in,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: Remove fetch_hidden arg on
getFilesInDirectory proc Always return hidden directory entries. Update
both pure-Tcl and C version of getFilesInDirectory procedure
* modulecmd.tcl.in: Remove fetch_hidden arg on findModules proc Always
fetch hidden elements, getModules query is then used to filter and only
return accurate entries.
* modulecmd.tcl.in: Remove fetch_hidden arg on getModules proc Now hidden
entries are automatically searched if specified on query. Remove
isModuleSpecHidden procedure which is now useless.
2020-06-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/067-hidden.exp: Auto return
hidden elt if matching query on getModules Automatically determine if
hidden elements have to be returned on getModules procedure, rather
explicitly setting a fetch_hidden flag. These hidden elements need to be
returned if they exactly match search query.
2020-06-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/120-siteconfig.exp: Fix
modStartNb to return nb of matching parts 0 means no match, 1+ the number
of element in names that are matching.
2020-06-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mb: script: add single module avail/whatis test on mb
* modulecmd.tcl.in: Limit search to specified query in getPathToModule Call
getModules procedure with query specified to getPathToModule rather on
module root name. As a consequence getPathToModule recalls itself more often
when resolution hit a module alias or a symbolic version, as those elements
are less likely to be part of initial getModules result. Delete the
isSameModuleRoot procedure which is not used anymore.
* modulecmd.tcl.in, testsuite/modules.70-maint/290-json.exp: Fix
modEq/modEqStatic for mod with trailing /s When specified module has
several trailing slash characters, adapt modEq and modEqStatic procedure to
clear the extra slashes (mod// gives mod/) and adapt suffix appending, when
this suffix also starts by a slash character (mod/ + /* gives mod/* not
mod//*).
* modulecmd.tcl.in: Trim all trailing / from querydir in getModules string
range operation was only removing the last one, but did not cover cases
where mod is specified 'mod//'.
2020-06-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Return parent dir of matching elements in getModules
When performing a non-wild search in getModules (for instance when it is
called by getPathToModule procedure), returns the parent directory element
equal to query module name in order to retrieve the default and latest entry
information in calling procedure.
2020-08-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. configure updates and multilib support in NEWS
2020-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: del 'make srpm' test on non-compat el7 cases
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-dupgetgroups.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a dup ent res getgroups call Add an utility library that supersedes
the getgroups function from libc. The getgroups function from this added
library always returns a list with 3 elements that all correspond to user's
primary group. It is used for coverage test of the getgroups call made
within the Envmodules_InitStateUsergroupsObjCmd function of the Tcl
extension library.
* lib/configure.ac, lib/envmodules.c: lib: remove dup from getgroups result
`getgroups` system call may return a group list with duplicate entries, so
these duplicates need to be removed from result list. Use a *sort then skip
consecutive identical entries* strategy for this cleanup task. Sort is
performed with `qsort` system call therefore a `+__Envmodules_IntCmp`
function is introduced for it.
2020-08-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp: ts: adapt existing tests for
multilib support
* Makefile: install: raise error when making srpm/rpm if no compat Raise an
error when trying to build SRPM or RPM packages if compatibility version
sources are missing.
* contrib/rpm/environment-modules.spec.in: rpm: build with multilib support
enabled
* .travis.yml: travis: update ubuntu version to xenial
* INSTALL.rst, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
site.exp.in: Add support for multilib systems Introduce the
`--enable-multilib-support` configure option to add mechanism in
`modulecmd.tcl` to look at an alternative location to find the Modules Tcl
extension library in case this library cannot be found at its main location.
It adds the ability on specific architecture (e.g., x86_64) to use the
library build for another architecture compatible with current machine
(e.g., i686). When this option is enabled, modulecmd.tcl is produced in a
way that make it identical whether built from 32bit or 64bit systems. This
way no conflict happen on EL/Fedora systems when installing both 64bit and
32bit RPM packages.
2020-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp: ts: report current sys info at
beginning of tests
* .travis.yml: travis: test set of dummy configure args
* contrib/rpm/environment-modules.spec.in: rpm: use make macros to build and
install Apply requested change for F33:
https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
* contrib/rpm/environment-modules.spec.in: rpm: fix modulecmd
pre-alternatives check Was wrongly checking %{buildroot} content rather
targeted system.
* configure: install: pass --{build,target,host} opt to lib configure Also
pass the --build, --target and --host options down to the `configure` script
of Modules Tcl extension library.
* configure: install: add support for env var and system type set on
configure Add support to define environment variable and build system type
as `configure` script arguments to better match GNU configuration
specification.
2020-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: ign not supported --enable-*/--with-* opts Ignore not
supported `--enable-*` and `--with-*` options on `configure` script rather
raise an error to comply with GNU configuration specification.
* configure: install: ignore configure script standard option To cope with
default build macro, like `%configure` in RPM spec, ignore `configure`
script standard options like `--program-prefix` rather raise an *unsupported
option* error.
2020-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, contrib/rpm/environment-modules.spec.in: install: accept new
compat-specific opts on ./configure Take into account the `--build`,
`--host`, `--target`, `--enable-dependency-tracking` and
`--disable-dependency-tracking` configure options to transmit them to
Modules compatibility version ./configure script. Such options are implied
when using `%configure` macro in RPM spec file. Fixes #354
2020-07-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/mrel: script: add support of koji 'free' task state in mrel
* NEWS.rst: doc: merge release of version 4.5.2
* testsuite/modules.50-cmds/370-deps-fullpath.exp: ts: fix 50/370 tests on
short term size
* script/mpub, script/mrel: script: enable mrel/mpub to release from a
vZ.Y.x branch Adapt the `mrel` and `mpub` release to produce new Modules
release from a 'vZ.Y.x' branch rather from 'master' branch.
2020-07-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/370-deps-fullpath.exp: Fix
reflexive conflict issue when mod is loaded full path Adapt conflict
detection tests to ensure a module loaded by its full pathname will not
detect itself as a conflict when declaring a reflexive conflict. Fixes
#352.
2020-07-28 Rob Hurt <rchurt@users.noreply.github.com>
* doc/source/index.rst: doc: clarify about lang-specific modules in index I
think it would be worth adding a clarification about Perl (and other
language) modules vs. the environment modules described here, because the
use of the term "modules" for both can be confusing to new users. Also
fixed some typos and formatting.
2020-07-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp:
Separate quar var def from tclshbin in _module_raw Clearly separate
quarantine variable definition from tclsh binary on modulecmd.tcl evaluated
command call in _module_raw function for sh, bash, ksh and zsh shells. When
_module_raw is evaluted in zsh completion process, the command call was not
correctly generated and location of tclsh binary was the value set to all
quarantine variable declared. Which in case of LD_PRELOAD, led to error
messages. Fixes #350.
2020-07-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. inclusivity/versioned magic cookie in NEWS
* MIGRATING.rst, doc/source/cookbook/source-script-in-modulefile.rst: doc:
use versioned magic cookie in recent examples Fixes #349.
2020-06-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst: doc: state code must comply with Tcl8.4+ in CONTRIBUTING
* MIGRATING.rst: doc: desc. module-info user{name,groups} in MIGRATING
2020-06-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-0getgroups.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a zero res getgroups call Add an utility library that supersedes
the getgroups function from libc. The getgroups function from this added
library always returns an empty result (0). It is used for coverage test of
the getgroups call made within the Envmodules_InitStateUsergroupsObjCmd
function of the Tcl extension library.
* .appveyor.yml, .cirrus.yml, .travis.yml: travis/appveyor/cirrus: use
--base64-failed-log mt opt
* script/mt: script: add option --base64-failed-log to mt Add option
``--base64-failed-log`` to the ``mt`` script to output test log on failure
in a base64 serialized format.
2020-06-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-getgrgid.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed getgrgid call Add an utility library that supersedes the
getgrgid function from libc. The getgrgid function from this added library
always returns an error (NULL). It is used for coverage test of the getgrgid
call made within the Envmodules_InitStateUsergroupsObjCmd function of the
Tcl extension library.
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-getgroups.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed getgroups call Add an utility library that supersedes the
getgroups function from libc. The getgroups function from this added library
always returns an error (-1). It is used for coverage test of the getgroups
call made within the Envmodules_InitStateUsergroupsObjCmd function of the
Tcl extension library.
* Makefile, lib/.gitignore, lib/Makefile.in, lib/testutil-getpwuid.c,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed getpwuid call Add an utility library that supersedes the
getpwuid function from libc. The getpwuid function from this added library
always returns an error (NULL). It is used for coverage test of the getpwuid
call made within the Envmodules_InitStateUsernameObjCmd function of the Tcl
extension library.
* MIGRATING.rst, NEWS.rst: doc: mark subcmd/mfcmd/command in NEWS/MIGRATING
Improve markup of NEWS and MIGRATING documents starting from this 4.6
version to enable references to module sub-commands, command line switches,
environment variables and modulefile Tcl commands.
* NEWS.rst: doc: desc. module-info usergroups/username in NEWS
* script/mpub, script/mrel: script: fix distclean err to ignore in mrel/mpub
* script/mrel: script: add cleaning of prev built rpm in 'mrel'
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp: ts: adapt stack trace
msgs to tcl vers in 50/{286,287}
2020-06-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp: ts: test module-info
user{name,groups} on win platform
* testsuite/modulefiles.2/info/.modulerc,
testsuite/modulefiles.2/info/usergroups,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/287-info-usergroups.exp: ts: test 'module-info
usergroups' in 50/287
* testsuite/modulefiles.2/info/.modulerc,
testsuite/modulefiles.2/info/username,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/286-info-username.exp,
testsuite/modules.70-maint/220-config.exp: ts: test 'module-info username'
in 50/286
* lib/configure.ac, lib/envmodules.c, lib/envmodules.h: lib: implement
initStateUsergroups Add function in libtclenvmodules to implement
`initStateUsergroups` as a Tcl command, which provides a more efficient way
to retrieve current groups of running process, rather forking to execute
`id` external binary. Note that if current system does not support the
`getgroups` system call, only the primary group name of current user will be
returned.
2020-06-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* lib/configure.ac, lib/envmodules.c, lib/envmodules.h: lib: Implement
initStateUsername Add function in libtclenvmodules to implement
`initStateUsername` as a Tcl command, which provides a more efficient way to
retrieve current username, rather forking to execute `id` external binary.
* modulecmd.tcl.in: Raise error if module-info usergroups/username called
from win
* doc/source/modulefile.rst: doc: desc. module-info usergroups/username in
modulefile(4)
* doc/source/modulefile.rst: doc: reorder module-info sub-cmd desc. in
modulefile(4)
* doc/source/diff_v3_v4.rst: doc: desc. module-info username/usergroups in
diff doc
* modulecmd.tcl.in: Add 'usergroups' sub-cmd to module-info command Be able
to fetch groups of current user through `module-info` modulefile command.
With no extra argument, all group names are returned. If a name is provided
as argument, true is returned if this name matches one entry in the group
list, false is returned otherwise.
* modulecmd.tcl.in: Add 'usergroups' state Create `usergroups` state to
collect all the groups the user running modulecmd.tcl process is member of.
Add an initStateUsergroups procedure to initialize this state, which calls
`id -G -n` to fetch these group names. This external command is available on
every Unices and its `-G -n` arguments operate the same way. An error will
be obtained on Windows platform as `id` command is not known there.
initStateUsergroups procedure is recorded in modulecmd.tcl as
__initStateUsergroups and renamed if initStateUsergroups procedure is not
found from Modules Tcl extension library. A more efficient version of
initStateUsergroups will be provided in the library later on (not to depend
on an external command call).
* modulecmd.tcl.in: Add 'username' sub-cmd to module-info command Be able
to fetch current username through `module-info` modulefile command. With no
extra argument, username is returned. If a name is provided as argument,
true is returned if this name matches current username, false is returned
otherwise.
* modulecmd.tcl.in: Add 'username' state Create `username` state to collect
the name of the user running modulecmd.tcl process. Add an initStateUsername
procedure to initialize this state, which calls `id -u -n` to fetch
username. This external command is available on every Unices and its `-u -n`
arguments operate the same way. An error will be obtained on Windows
platform as `id` command is not known there. initStateUsername procedure is
recorded in modulecmd.tcl as __initStateUsername and renamed if
initStateUsername procedure is not found from Modules Tcl extension library.
A more efficient version of initStateUsername will be provided in the
library later on (not to depend on an external command call).
2020-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, configure,
doc/example/modulefiles-in-git/modulefiles/localmodules,
doc/source/cookbook/modulefiles-in-git.rst, doc/source/module.rst,
modulecmd.tcl.in: Apply inclusive terminology in code and docs Use
inclusive terminology [1] to eliminate 'master' and 'slave' terms as much as
possible from code and documentation. 'master' has been changed into 'main'
and 'slave' into 'subordinate' or 'sub'. After this change, some references
to the 'master' and 'slave' word can still be found in repository: *
`slaves` sub-command of `interp` Tcl command * `--slave` option of
`update-alternatives tool in RPM spec file * `master_doc` attribute of
Sphinx `conf.py` file * git 'master' branch need to be renamed and tools
referring it need to be updated accordingly (configure, script/mpub,
script/mrel) [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/l
inux.git/commit/?id=49decddd39e5f6132ccd7d9fdc3d7c470b0061bb
2020-07-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. recent doc and configure script updates in NEWS
* testsuite/install.00-init/060-quar.exp: ts: fix install quar test when
LD_PRELOAD is set
2020-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml, .cirrus.yml, .travis.yml, INSTALL.rst, configure,
contrib/rpm/environment-modules.spec.in: install: disable compat version
build by default Version 4 of Modules is available since almost 3 years.
Many improvements have been made to integrate features of version 3.2 still
needed in module command. So it is now time to disable the build of version
3.2 which was triggered by default since 4.0.
* .travis.yml: travis: use '--arg val' configure syntax on 2 test cases
* configure: install: set dir arg with '--arg val' form in configure Enable
the definition of the installation directory argument of the ./configure
script with the `--arg val` syntax form in addition to the `--arg=val`
syntax. Fixes #348
* .travis.yml: travis: fix --with-quarantine-vars arg bad definition
* configure: install: show lib/compat configure args on configure
* configure: install: raise error on unknown configure argument Fixes #348
* configure: install: limit compat args to those supported in configure
Only pass to compatibility version ./configure script arguments that make
sense to it. Do not transmit anymore arguments that are unknown to this
compatibility version ./configure script. Compatibility version ./configure
script argument listed in project's main configure script are only a subset
of supported arguments. Main configure script can only be used to run
compatibility configure script with the argument list here.
2020-06-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/img/modules_red.svg: doc: use brighter variation of red svg logo
Built from CMYK EPS file.
2020-06-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, README.md: doc: include logo on README
* doc/source/conf.py: doc: fix html theme on RTD To avoid RTD to override
html_theme_options when html_theme is set to 'default'.
* doc/img/favicon.ico, doc/img/modules_red.svg, doc/img/modules_white.svg,
doc/source/conf.py: doc: include logo in doc portal
2020-05-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../source-script-in-modulefile/foo-1.2/bin/foobin,
.../foo-1.2/foo-setup.sh, .../modulefiles/foo/1.2,
.../cookbook/source-script-in-modulefile.rst: doc: add
source-script-in-modulefile recipe
2020-05-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. source-sh in MIGRATING/NEWS
* doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc. source-sh/MODULES_LMSOURCESH in
man/diff
2020-05-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../design/source-shell-script-in-modulefile.rst: doc: desc. env recording
in source-sh design doc
2020-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/source-sh/3,
testsuite/modulefiles.2/source-sh/5.0,
testsuite/modules.50-cmds/400-source-sh.exp: ts: fix result order on 50/400
tests
* testsuite/modules.50-cmds/400-source-sh.exp: ts: adapt 50/400 err stack
trace msg to Tcl version used
* testsuite/modulefiles.2/source-sh/6.0,
testsuite/modules.50-cmds/400-source-sh.exp: ts: test var relying on
source-sh script defined var
* testsuite/modules.50-cmds/400-source-sh.exp: ts: add 'display' mode test
for source-sh cmd
2020-05-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Implement 'source-sh' for display mode When modulefile
is displayed, report modulefile commands resulting from source-sh script
evaluation rather source-sh modulefile command. As for unload modulefile
evaluation, display mode relies on MODULES_LMSOURCESH if modulefile is
currently loaded. However it will requery script to fetch the definition of
shell aliases and functions.
2020-05-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Split sh-to-mod code in 2 procs Separate script
evaluation and output extraction in a dedicated procedure called
execShAndGetEnv.
2020-05-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/mini-sh-to-mod.sh, testsuite/modulefiles.2/source-sh/1,
testsuite/modulefiles.2/source-sh/2, testsuite/modulefiles.2/source-sh/3,
testsuite/modulefiles.2/source-sh/4.0,
testsuite/modulefiles.2/source-sh/4.1,
testsuite/modulefiles.2/source-sh/4.2,
testsuite/modulefiles.2/source-sh/4.3,
testsuite/modulefiles.2/source-sh/5.0,
testsuite/modulefiles.2/source-sh/5.1,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/400-source-sh.exp: ts: test 'source-sh' modulefile
command
2020-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Transform sep char used in MODULES_LMSOURCESH value
Transform character used as separator to structure MODULES_LMSOURCESH
environment variable value (:, & and |), when these characters are used
among values set by source-sh scripts. Respectively transform these
characters into `<EnvModEscPS>`, `<EnvModEscS1>` and `<EnvModEscS2>`.
2020-05-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Implement 'source-sh' for unload mode Rely on
information saved in MODULES_LMSOURCESH environment variable to know what to
undo when modulefile is evaluated in unload mode. Evaluate source-sh
resulting modulefile commands through unload Tcl interpreter to get those
command reversed.
2020-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record cmds from source-sh in MODULES_LMSOURCESH env var
Record in user environment the modulefile commands resulting from source-sh
evaluations. Making this information persist in environment via
MODULES_LMSOURCESH variable helps to determine what to undo when unloading
modulefiles making use of the source-sh command.
2020-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Implement 'source-sh' command for load mode
2020-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/vim/syntax/modulefile.vim: vim: add new modulefile command
'source-sh'
* modulecmd.tcl.in: Add skeleton for new modulefile command 'source-sh' Add
an undo procedure to apply on unload modulefile evaluation mode. Print
command call on display mode. And no operation for other modes.
2020-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. -T/--trace option in NEWS
* testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: add tests for 'trace'
verbosity level
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc.
-T/--trace in man/diff/INSTALL docs
* modulecmd.tcl.in: Fix double err counter increase when mod eval breaks
2020-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add -T/--trace options to completion
scripts
2020-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, modulecmd.tcl.in: Introduce 'trace' verbosity level
2020-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. sh-to-mod in NEWS/MIGRATING
2020-05-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc. sh-to-mod in
module(1) and diff docs
* .../design/source-shell-script-in-modulefile.rst: doc: add
source-shell-script-in-modulefile design doc
2020-05-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.csh, testsuite/example/sh-to-mod.fish,
testsuite/example/sh-to-mod.sh,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: add test for path-like
variable in 70/310
2020-05-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Dedup path entries found after sh-to-mod script source
For path-like variable set by sourced script, the newly added path entries
are analyzed to remove duplicates among the same portion to avoid a path to
be prepended multiple times or appended multiple times. Deduplication does
not apply between prepended portion and appended portion. Path entries found
set prior script sourced are also excluded from deduplication process.
2020-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Exclude PS1 variable from sh-to-mod environment change
Sourced scripts may detect the need to update PS1, but this decision is
taken over a specific environment where initialization scripts have not been
evaluated for the shells.
2020-05-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: No support of BSD sh shell on
sh-to-mod currently sh shell on BSD platform outputs alias definition with
different character escaping than regular sh or dash on Linux platform.
Disable test for this shell on this platform currently. Will see later on if
a need to support this shell is needed.
* testsuite/example/sh-to-mod.sh,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: rework FOOSHELL var test
in 70/310 Prefer BASH environment variable to SHELL to check bash binary
location used for current shell session.
2020-05-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Run shell without loading its config to proceed
sh-to-mod eval
* modulecmd.tcl.in, testsuite/bin/install_test_csh,
testsuite/example/sh-to-mod.csh,
testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Add support for csh/tcsh
shells on sh-to-mod sub-cmd
2020-05-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: mksh not supported on
sh-to-mod currently
* testsuite/install.00-init/090-sh-to-mod.exp: ts: fix install 00/090 when
quarantine is disabled With quarantine mechanism disabled, no specific IFS
is set when modulecmd.tcl output is evaluated with zsh and ksh shells,
sh-to-mod does not output ';' character at end of each function line, thus
when evaluated with default IFS the multiple lines are treated as a single
command line.
2020-04-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, modulecmd.tcl.in, testsuite/example/sh-to-mod.fish,
testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Add support for fish shell on
sh-to-mod sub-cmd
2020-04-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/310-sh-to-mod.exp: ts: prepare 70/310 for
non-sh shells
2020-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Add support for ksh93 shell on
sh-to-mod sub-cmd
* modulecmd.tcl.in, testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Add support for dash shell on
sh-to-mod sub-cmd dash has some limitations for this task: - there is no
mechanism to report shell functions set, so no shell function will be
defined or unset with this shell through sh-to-mod - arguments cannot be
passed to a sourced script
2020-04-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/install.00-init/090-sh-to-mod.exp,
testsuite/modules.70-maint/310-sh-to-mod.exp: Add support for sh shell on
sh-to-mod sub-cmd
2020-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/090-sh-to-mod.exp: ts: add install tests for
sh-to-mod sub-cmd
2020-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/310-sh-to-mod.exp: Add
support for ksh shell on sh-to-mod sub-cmd Specific code is required to
retrieve defined functions in environment as `typeset -f` may output
function definition with no clear separation between each other.
* modulecmd.tcl.in, testsuite/modules.70-maint/310-sh-to-mod.exp: Add
support for zsh shell on sh-to-mod sub-cmd
2020-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/sh-to-mod.sh,
testsuite/modules.70-maint/310-sh-to-mod.exp: ts: add tests for 'sh-to-mod'
sub-command
* modulecmd.tcl.in: Handle error occuring when sourcing script in sh-to-mod
Redirect stderr onto stdout when sourcing script in sh-to-mod sub-command in
order to avoid a warning message put on stderr by script were taken as an
error by Tcl exec command. Also mix stdout and stderr messages of script to
be able to provide all of them to user in case an error occurs during script
source by shell (exit code found different than 0). An error returned by
shell execution is reported and ends sh-to-mod processing.
* modulecmd.tcl.in: Format string and list for output Add the strTo and
listTo procedures to format a string or a list of string making it compliant
with the destination language. Add support for Tcl and shell output,
enclosing strings if they are empty or if they contain a space character
respectively with curly braces or single quotes. And escaping those
character if used in strings. Use the new procedures in sh-to-mod to
enclose/escape script name and its argument to source in shell command. Also
use listTo in reportCmd, which was previously doing the same enclosing work.
Make use of reportCmd to output result of sh-to-mod sub-command, in order to
get the same formatted output than when doing a module display (with tabs
and colors if enabled). Add a -nativeargrep argument to reportCmd procedure
to use (when called for sh-to-mod result) Tcl native string representation
of list, which automatically enclose string if needed and escape special
characters if present. Do not make this behavior a default as output made
for module display should not automatically enclose strings using variable
value reference (eg. $VAR).
2020-04-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'sh-to-mod' procedure Add the `sh-to-mod' procedure
that executes script with args through shell and converts environment
changes the script performs into corresponding modulefile commands.
Environment changes made by script are found by making shell first outputing
environment state, then sourcing script and after that outputing resulting
environment state. Shell full output is after this execution parsed and
analyzed, comparing environment state prior script source with state after
script source. Add support for Bash shell and track changes over
environment variables, shell functions, shell aliases and current working
directory. Result is returned as a list of modulefile commands. Procedure
is called by cmdModuleShToMod which outputs the modulefile commands with
modulefile header '#%Module'.
2020-04-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in: init: fix dup apropos/keyword/search in bash comp
apropos, keyword and search sub-commands now accept arguments so they need
to be removed from empty-or-wide-argument-command list
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module.in: init: add 'sh-to-mod' sub-cmd to shell comp
scripts
* init/fish_completion: init: fix list/source sub-cmd in fish completion
list and source sub-commands do not need available modulefiles as argument.
* testsuite/modulefiles/modbad/sh-to-mod,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.90-avail/070-full.exp: ts: update existing tests to check
'sh-to-mod'
* modulecmd.tcl.in: Add skeleton for new 'sh-to-mod' sub-command
2020-04-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/220-config.exp: Optionally
catch error when initializing a state Ensure, when dumping all states that
an error occuring during a state initialiaztion will not break the whole
report.
2020-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. state handling rework in NEWS
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt tests to new state mngt
2020-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Refactor 'reportfd' state initialization Transform the
startPager procedure into initStateReportfd to have it automatically called
first time value of 'reportfd' state is queried (so first time a message has
to be outputed). initStateReportfd procedure embeds the output of document
start in case of structured output mode. This output is done there to avoid
an infinite loop of reportfd state initialization. Initialization of the
'reportfd' state is triggered in initErrorReport if debug mode is enabled to
have its reportDebug calls processed in buffer mode to get processed in
correct order (otherwise reportfd initialization will appear first, before
debug messages stored in buffer). 'already_report' state is removed as it
is now useless.
* modulecmd.tcl.in: Refactor 'paginate' state initialization Transform
initPager procedure into initStatePaginate and set this procedure as the
initialization one for the 'paginate' state. Keep a specific call to
'paginate' state to get it set prior pager initialization. 'pager_started'
state is removed as it is now useless.
* modulecmd.tcl.in: Migrate 'report_sep_next' to state struct
* modulecmd.tcl.in: Migrate 'init_error_report' to state struct
* CONTRIBUTING.rst, modulecmd.tcl.in: Migrating 'already_report' to state
struct
* modulecmd.tcl.in: Migrate 'false_rendered' to state struct
* modulecmd.tcl.in: Migrate 'lm_info_cached' to state struct
* modulecmd.tcl.in: Migrate all uname props to state struct Instead of
using a specific struct to cache uname properties value, use global state
structure. As a consequence, domainname, kernelversion, nodename and
osversion states are introduced. os state is changed just to store OS name
and not OS name and version: OS version has its own state now.
* modulecmd.tcl.in: Migrate 'sub2_separator' to state struct
* modulecmd.tcl.in: Migrate 'sub1_separator' to state struct
* modulecmd.tcl.in: Migrate 'cwd' to state struct
* modulecmd.tcl.in: Migrate 'error_count' to state struct
* modulecmd.tcl.in: Migrate 'return_false' to state struct
* modulecmd.tcl.in: Migrate 'autoinit' to state struct
* modulecmd.tcl.in: Migrate 'inhibit_interp' to state struct
* modulecmd.tcl.in: Migrate 'inhibit_errreport' to state struct
2020-04-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate CSH_LIMIT to 'csh_limit' cfg option
* modulecmd.tcl.in: Migrate 'reportfd' to state struct
* modulecmd.tcl.in: Migrate 'report_format' to state struct
* modulecmd.tcl.in: Migrate 'cmdline' state retrieval to getState
* modulecmd.tcl.in: Migrate 'extra_siteconfig_loaded' state retrieval to
getState
* modulecmd.tcl.in: Migrate 'force' state retrieval to getState
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1,
testsuite/install.00-init/005-init_ts.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp: Migrate 'is_stderr_tty' state
retrieval to getState
* modulecmd.tcl.in: Migrate 'is_win' state retrieval to getState
* modulecmd.tcl.in: Migrate 'machine' state retrieval to getState
* modulecmd.tcl.in: Migrate 'os' state retrieval to getState
* modulecmd.tcl.in: Migrate 'pager_started' state retrieval to getState
2020-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate 'paginate' state retrieval to getState
* modulecmd.tcl.in: Migrate 'path_separator' state retrieval to getState
2020-04-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate 'rc_loaded' state retrieval to getState
* modulecmd.tcl.in: Migrate 'siteconfig_loaded' state retrieval to getState
* modulecmd.tcl.in: Migrate 'shell' state retrieval to getState
* modulecmd.tcl.in: Migrate 'shelltype' state retrieval to getState
* modulecmd.tcl.in: Migrate 'subcmd' state retrieval to getState
* modulecmd.tcl.in: Migrate 'subcmd_args' state retrieval to getState
* modulecmd.tcl.in: Migrate 'tcl_ext_lib_loaded' state retrieval to getState
* modulecmd.tcl.in: Migrate 'tcl_version' state retrieval to getState
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1: Migrate
'term_columns' state retrieval to getState
* modulecmd.tcl.in: Create structs/procs to store/get states in common array
2020-06-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, version.inc.in: Release
of version 4.5.1
2020-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix format of err stack trace start Fix formatting of
error stack trace not to look for internal commands to withdraw if startup
stack pattern cannot be matched.
2020-05-14 Roy Storey <kiwiroy@users.noreply.github.com>
* modulecmd.tcl.in, testsuite/modules.00-init/150-access-init.exp: Use
absolute path to load tcl_ext_lib Fixes #344
2020-05-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: update one OSX case to use latest img version
2020-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: improve test deps dl retry mechanism
2020-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, Makefile: travis: retry test deps setup as their dl regularly
fail Add a 'test-deps' make target to specifically build all dependencies
for tests, like Nagelfar and Tcl8.3 download. Call this specific target in
Travis CI through the `travis_retry` utility to retry dependency download if
they fail.
* modulecmd.tcl.in, testsuite/modulefiles.2/setenv/0.1,
testsuite/modulefiles/spread/3.0, testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc,
testsuite/modules.50-cmds/029-setenv-env.exp: Sync env var changes across
Tcl sub-interpreters Ensure environment variable change at the Tcl
interpreter level is propagated to every sub-interpreters used to evaluate
modulefiles or modulercs. Tcl by default maintain the `::env` array in sync
across all started interpreters. But in some cases, it appears a change
occuring in master interpreter is not correctly propagated when the variable
is later on updated in sub-interpreter. Fixes #342
2020-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.allin/restoreenv/0.1,
testsuite/modulefiles.allin/restoreenv/0.2,
testsuite/modules.50-cmds/360-restoreenv.exp: Keep link with env vars when
restoring settings after breakage In case a modulefile evaluation fails,
environment context prior this failed evaluation is restored. Fix
environment variable restoration mechanism to keep the link that monitors
and updates environment variable array `env` in every Tcl sub-interpreters.
Unsetting the whole `env` array makes Tcl stop monitoring env accesses and
stop updating environment variables. Environment context restoration is now
done by updating the `env` array (unsetting keys in the array and setting
value for new or existing keys). Fixes #340
2020-05-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/280-ml.exp: Disable pager
when clear sub-cmd called with ml cmd To ensure a proper prompt message
output on clear sub-command, no pager is started. This commit also turns off
pager when clear sub-command is called through the ml shortcut command.
Fixes #338
2020-04-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes: install: remove project-specific tools from git export
2020-04-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes, script/mpub: script: add 'mpub' to publish new release
Add the `mpub` script, that automates Modules new release publishing over
git repositories and websites.
* .gitattributes, script/mrel: script: add 'mrel' to build/test release
files Introduce the `mrel` script, that automates build of the Modules
release files and performs tests over these distribution files to guaranty
their correctness.
* Makefile: install: consistenly output Makefile warning msgs on stderr
2020-04-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in, version.inc.in: Release
of version 4.5.0
* .gitattributes: install: exclude .github dir from dist tarballs
* .cirrus.yml: cirrus: use updated FreeBSD images Remove openmp package,
not available in these new images. (was required on previous images to get
an operational R setup)
* testsuite/modulefiles.2/autosym1/.modulerc,
testsuite/modulefiles.2/autosym1/1, testsuite/modulefiles.2/autosym1/2,
testsuite/modulefiles.2/autosym2/.modulerc,
testsuite/modulefiles.2/autosym2/1, testsuite/modulefiles.2/autosym2/2,
testsuite/modulefiles.2/autosym3/.modulerc,
testsuite/modulefiles.2/autosym3/1, testsuite/modulefiles.2/autosym3/2,
testsuite/modulefiles.2/autosym4/.modulerc,
testsuite/modulefiles.2/autosym4/1, testsuite/modulefiles.2/autosym4/2,
testsuite/modulefiles.2/autosym5/.modulerc,
testsuite/modulefiles.2/autosym5/1, testsuite/modulefiles.2/autosym5/2,
testsuite/modulefiles.2/autosym5/default,
testsuite/modulefiles.2/autosym6/.modulerc,
testsuite/modulefiles.2/autosym6/1, testsuite/modulefiles.2/autosym6/2,
testsuite/modulefiles.2/autosym7/dir1/1,
testsuite/modulefiles.2/autosym7/dir1/2,
testsuite/modulefiles.2/autosym7/dir2/1,
testsuite/modulefiles.2/autosym7/dir2/2,
testsuite/modulefiles.2/autosym8/.modulerc,
testsuite/modulefiles.2/autosym8/1, testsuite/modulefiles.2/autosym8/2,
testsuite/modulefiles.2/autosym9/1, .../274-adv_version_spec-autosym.exp:
ts: add 70/274 tests to validate auto symbols
2020-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in,
.../modules.70-maint/271-adv_version_spec-in.exp: Honor default when version
list is composed of symvers When an advanced version specifier list
contains symbolic version references, fix resolving to honor default version
if part of the specified list. Fixes #334.
2020-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. getModules improvements in NEWS
* MIGRATING.rst: doc: desc. auto default/latest symbols in MIGRATING
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc.
default/latest auto symbols in man pages
2020-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.10-use/040-load-use.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/250-nan.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp,
testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/300-err_stack.exp,
testsuite/modules.80-deep/020-load-deep.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.80-deep/080-access-deep.exp,
testsuite/modules.80-deep/090-deepvirt.exp,
testsuite/modules.91-sort/040-load-sort.exp,
testsuite/modules.95-version/022-load2.exp: ts: adapt existing tests for
auto symbols
2020-04-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record auto symbol in loaded environment Once a module,
which benefits from automatically defined symbolic versions, is loaded, the
associated auto symbols are recorded in loaded environment among all the
alternative names applying to the loaded module (in `MODULES_LMALTNAME`
environment variable). Auto symbols are distinguished from regular symbols
by the `as|` prefix which is applied to them.
2020-03-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Auto define default/latest symbol when adv_vers_spec
enabled When `advanced_version_spec` is enabled, automatically define a
`default` and `latest` symbolic version for each module (at each module
depth for deep modules) if those symbols or alias or regular modules with
these names are not defined. In case `implicit_default` configuration is
disabled, these automatic symbolic versions are not defined. Design
principles are described in *Default and latest version specifiers*
document. Fixes #210.
2020-04-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix version target inclusion loop in getModules Change
loop variable name, as direlt is already used to control what entry to
record in parent directory.
2020-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../design/default-latest-version-specifiers.rst: doc: refine
default/latest vers spec design
2020-03-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/090-memcache.exp,
.../modules.70-maint/260-extended_default.exp: Perform noplaindir filter
within getModules Rather applying a filter that removes the directory
entries with no tag attached to them, except if search is performed in a
no-indepth manner, perform this filter directly withing getModules
procedure.
* modulecmd.tcl.in, .../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.90-avail/080-noindepth.exp: Perform
onlydefaults/onlylatest filter within getModules Rather re-filtering result
from getModules procedure within listModules procedure, perform the
onlydefaults/onlylatest (-d/-L) avail filters directly within getModules.
2020-03-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Ensure dir struct definition when only contains
not-searched default In case a directory has set for default element an
hidden entry not searched in this getModules processing, still record this
directory in dir_list with the default target referred in it (even if not
part of found_list result. Doing so ensure that starting phase 3 of
getModules processing, all directories with a default defined will have an
entry in found_list.
* testsuite/modules.70-maint/220-config.exp: ts: fix 70/220 when
MODULES_ICASE is externally set
2020-03-31 Adrien Cotte <adrien.cotte@eolen.com>
* init/bash_completion.in: bash_completion: fix ml no space between -modules
2020-03-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove uneeded test when removing dir from getModules
res
* .travis.yml, contrib/rpm/environment-modules.spec.in: rpm: define
LD_PRELOAD as quarantine var along with LD_LIBRARY_PATH To ensure a sane
quarantine effect in case LD_PRELOAD libs depend on libraries found with
LD_LIBRARY_PATH. See
https://sourceforge.net/p/modules/mailman/message/36959212/
* modulecmd.tcl.in, testsuite/modulefiles/loc_rc010/.modulerc,
testsuite/modulefiles/loc_rc010/dir/.4.0,
testsuite/modulefiles/loc_rc010/dir/sub1/notamod,
testsuite/modulefiles/loc_rc010/dir/sub2/incompat,
testsuite/modulefiles/loc_rc010/wrong,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.70-maint/130-aliases.exp: Rework version target inclusion
in getModules result Rework loop walking the symbolic version target to
include all elements recursively contained in directory targeted by symbolic
version. Now using dir_list structure to walk path rather querying the whole
found_list with modEq test procedure.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.80-deep/068-transitive-deep.exp: ts: fix indepth-dependent
test in 80/068 For 3 tests, result depends on indepth option, not
implicit_default option.
2020-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: clarify hidden module location in
modulefile.4
* modulecmd.tcl.in, testsuite/modulefiles/loc_rc010/subdir/.hidsub/3.0,
testsuite/modulefiles/loc_rc010/subdir/.modulerc,
testsuite/modulefiles/loc_rc010/subdir/.subdir/3.0,
testsuite/modules.20-locate/067-hidden.exp: Add ref in res to version target
not in res but not searched Enable resolution of default module in module
sub-directory when this default symbol targets an hidden directory (whose
name starts with a dot character). Adapt getModules procedure to add
reference, in the directory description returned as result, for symbolic
version targets that are hidden, not included in returned result but
excluded from search made. Fixes #331
* modulecmd.tcl.in, testsuite/modules.70-maint/130-aliases.exp: Filter
hidden sym/alias/module from aliases output Filter-out from the output of
the `aliases` sub-command all hidden aliases, symbolic versions or hidden
modules targeted by a non-hidden symbolic version. Fixes #330
2020-03-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/loc_rc010/.modulerc,
testsuite/modulefiles/loc_rcv1/.modulerc,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.90-avail/070-full.exp: ts: test alias/symver/virtual
hidden modules in 20/067
2020-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Consider alias/symver/virtual hidden if name starts with
. Hide special modules (aliases, symbolic versions and virtual modules)
whose version name starts with a dot character (.) from avail, whatis and
paths searches if their query does not fully match special module name.
Hidden symbolic version will still be reported if the modulefile it targets
is part of search result. Fixes #329
2020-03-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.deepvirt, testsuite/modulefiles.2/.modulerc,
testsuite/modulefiles.2/deepvirt1/.modulerc, testsuite/modulefiles.2/quux/1,
testsuite/modules.80-deep/090-deepvirt.exp: ts: add 80/090 deep alias and
virtual module tests
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.90-avail/070-full.exp: ts: compare sorted json output As
json output is not sorted by modulecmd.tcl it may happens that test output
found on some configurations or platforms is not the one expected although
it is correct. To avoid these errors a new test procedure is added to
compare stderr output in a sorted manner, so error will be obtained if
something is missing in the result but not if the result is outputed in a
different order.
2020-03-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.90-avail/070-full.exp: Exclude directory from findModules
result There is no need to record found directory in findModules result as
these elements will be computed in getModules.
* modulecmd.tcl.in: No record of dir content in res returned by findModules
No need to record the content of each directory in the result returned by
the findModules procedure as full directory content (with virtual elements)
is computed in getModules.
* modulecmd.tcl.in: Remove useless modMatchAtDepth procedure Following
getModules code refactoring, the generated procedure modMatchAtDepth has
become useless. Only doesModMatchAtDepth is now used.
2020-03-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.90-avail/070-full.exp: ts: adapt tests to getModules
refactoring Available modules search process is not changed but the
refactoring of the getModules procedure fixed some hidden issues like in
80/068: symbol targeting a directory which contains aliases where not
correctly analyzed previously (aliases where skipped from result) Module
avail result order also change when JSON format output is enabled due to
this code refactoring (as JSON output is not sorted). It also fix non-wild
searches (performed during whatis or paths sub-commands) that previously
matched partial alias, symbolic version or virtual module names. Fully
matching names for these kind of modules are not only retained for these
non-wild searches. Test results in 70/190, 70/240 and 70/290 have been
adapted.
2020-03-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Refactor getModules procedure Rework the full
getModules procedure to simplify its processing and apply the same match
tests to every kind of modules (regular modulefile, symbolic, version, alias
or virtual module). getModules procedure acts now in 4 phases. First every
kind of modules are gathered. Then a second phase is set to filter-out
modules dynamically hidden or forbidden (this filter will be deployed later
on). Third phase is the elaboration of each directory content to determine
especially their default and latest versions. At last the fourth phase
process all gathered results to only keep those matching search query. As
the procedure now applies the same mechanisms for all kind of modules, this
code refactoring has solved several issues: * An `avail` search over a
symbolic version targeting a directory now correctly returns the special
modules (alias and virtual module) lying in this directory. * `whatis` and
`paths` searches only return special modules (symbolic version, alias and
virtual modules) that fully match search query not those that partially
match it. * alias and virtual module whose name mention a directory that
does not exists are correctly handled. Fixes #168, #327 and #328
2020-03-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/default-latest-version-specifiers.rst: doc: update
deflatest design for default/latest modfile
2020-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. ml bash comp/fish stderr fix/space fixes in NEWS
2020-03-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/100-wspace.exp: Fix path cmd
result if it contains space char
* testsuite/install.00-init/080-args.exp,
testsuite/modules.20-locate/100-wspace.exp,
.../273-adv_version_spec-space.exp: ts: adapt tests after enclosed mod names
in adv_vers_spec disabled mode
2020-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Enclose names incl. space even if adv_vers_spec is
disabled Enclose module name and versions if it contains a space character
even if the advanced versio specifier mechanism is disabled. Rework the
advanced version specifier parsing done in parseModuleVersionSpecifier
procedure to also check argument passed if advanced_version_spec mechanism
is disabled and enclose them in curly braces if a space character is found
in them.
2020-03-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll15, testsuite/home/coll16,
testsuite/modulefiles.2/space ye/1.8, testsuite/modulefiles.2/space ye/1.9,
testsuite/modulefiles.2/space ye/2.8, testsuite/modulefiles.2/space ye/2.9,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp,
.../273-adv_version_spec-space.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: tests module
path/name/version finishing by a space char
2020-03-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/sp.ce y+/0 2, testsuite/modulefiles.2/space
ye/1.0, testsuite/modulefiles.2/space ye/1.1, testsuite/modulefiles.2/space
ye/1.2, testsuite/modulefiles.2/space ye/1.3, testsuite/modulefiles.2/space
ye/1.4, testsuite/modulefiles.2/space ye/1.5, testsuite/modulefiles.2/space
ye/1.6, testsuite/modulefiles.2/space ye/1.7, testsuite/modulefiles.2/space
ye/2.0, testsuite/modulefiles.2/space ye/2.1, testsuite/modulefiles.2/space
ye/2.2, testsuite/modulefiles.2/space ye/2.3, testsuite/modulefiles.2/space
ye/2.4, testsuite/modulefiles.2/space ye/2.5, testsuite/modulefiles.2/space
ye/2.6, testsuite/modulefiles.2/space ye/2.7,
testsuite/modules.00-init/005-init_ts.exp,
.../272-adv_version_spec-range.exp, .../273-adv_version_spec-space.exp: ts:
add tests mixing adv vers spec and deps
2020-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.70-maint/240-icase.exp,
testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/272-adv_version_spec-range.exp: ts: skip wspace
tests if symlinks not supported on fs
2020-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Correctly enclose mod name when defining cmp proc
* modulecmd.tcl.in: Keep mod vers spec enclosed if containing space when
parsed
2020-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/sp.ce y+/1.2, testsuite/modulefiles.2/sp.ce
y+/2.10, testsuite/modulefiles.2/sp.ce y+/2.4, testsuite/modulefiles.2/sp.ce
y+/2.6, testsuite/modulefiles.2/sp.ce y+/2.7, testsuite/modulefiles.2/space
yd/2.1, testsuite/modulefiles.2/space yd/2.10, testsuite/modulefiles.2/space
yd/2.2, testsuite/modulefiles.2/space yd/3.0, testsuite/modulefiles.2/space
yd/4.1, testsuite/modulefiles.2/space yd/5.0,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../272-adv_version_spec-range.exp: ts: test space in names with
icase/extdfl/adv_vers_spec
2020-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/initrc.in, testsuite/modules.70-maint/120-autoinit.exp:
ts: add names with space in test example initrc
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/020-module.exp: ts: test name containing space on
install ts
* .appveyor.yml: appveyor: use default inst dir for win native test
* site.exp.in, testsuite/install.00-init/030-options.exp: ts: check
availability of createmodule.py in install ts
* testsuite/modules.20-locate/100-wspace.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: test space in name against
no-indepth and no implicit_default
* modulecmd.tcl.in: Enclose mod and modpath names if space in them when
saving coll
* modulecmd.tcl.in: Fix collection parsing to handle enclosed names
Correctly read modulepath and module names if enclosed in double-quotes or
curly-braces to escape space characters used in these names.
* testsuite/home/coll15, testsuite/home/coll16,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: test colls with space in
modulepath and module names
* testsuite/modules.20-locate/100-wspace.exp: ts: test space in module name
against ml command
2020-02-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/space yc/2, testsuite/modulefiles.2/space yc/3,
testsuite/modulefiles.2/space yc/4, testsuite/modulefiles.2/space yc/5,
testsuite/modulefiles.2/spacenc/2, testsuite/modulefiles.2/spacenc/3,
testsuite/modulefiles.2/spacenc/4,
testsuite/modules.20-locate/100-wspace.exp: ts: tests using space in module
dependencies
* modulecmd.tcl.in: Fix handling of mod containing space when set as deps
Fix dependency analysis mechanisms to correctly handle modulefiles contaning
space in their name.
2020-02-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/unix.exp, testsuite/modulefiles wspace,
testsuite/modulefiles.2/space ya/.modulerc, testsuite/modulefiles.2/space
ya/1, testsuite/modulefiles.2/space ya/2, testsuite/modulefiles.2/space
yb/.modulerc, testsuite/modulefiles.2/space yb/1,
testsuite/modulefiles.2/spacen/.modulerc, testsuite/modulefiles.2/spacen/1,
testsuite/modulefiles.2/spacen/2 s,
testsuite/modulefiles.2/spacenb/.modulerc,
testsuite/modulefiles.2/spacenb/1,
testsuite/modules.20-locate/100-wspace.exp: ts: tests using space in module
or modulepath names
2020-02-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Protect mod or modpath names containing space from eval
Correctly handle modulefiles and modulepaths containing a space character in
their name. Protect module and modulepath names which contain a space from
being splitted in two words.
2020-03-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/fish_completion, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Update stderr redirection for
new Fish shell versions Use of '^' character to redirect stderr has been
deprecated starting Fish version 3.1. It now produces an error. Stderr
should be redirected with '2>' like on SH shells. Hopefully '2>' redirection
is also supported on old Fish versions (all version 2 support it). Fixes
#325
2020-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in: init: define ml completion only if ml command
defined
2020-03-12 Adrien Cotte <adrien@cotte.com>
* init/bash_completion.in: init: add 'ml' command support in bash completion
2020-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. recent changes in NEWS
2020-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, MIGRATING.rst, Makefile, NEWS.rst, script/TESTINSTALL.bat,
testsuite/install.00-init/030-options.exp: install/ts/doc: install and test
envml.cmd along other *.cmd
* script/envml.cmd: script: apply same module enablement check in all *.cmd
2020-02-29 Jacques Raphanel <Jacques.Raphanel@esi-group.com>
* script/envml, script/envml.cmd: script: introduce envml.cmd for windows
Provide a dedicated batch file to provide similar behavior of envml bash
script but for CMD Windows shell. Update existing envml bash script to
provide same behavior for cmd and sh file (split argument over ';'
character, in addition to '&' character).
2020-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: add ref to 4.0 closed issues in diff doc
* MIGRATING.rst: doc: desc. error stack trace in MIGRATING
2020-03-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .github/ISSUE_TEMPLATE/bug_report.md,
.github/ISSUE_TEMPLATE/feature_request.md: github: add issue templates
* testsuite/example/siteconfig.tcl-1, testsuite/modulefiles.2/bad3/bodyfor,
testsuite/modulefiles.2/bad3/bodyif, testsuite/modulefiles.2/bad3/bodywhile,
testsuite/modulefiles.2/bad3/proc2, testsuite/modulefiles.2/bad3/proc3,
testsuite/modulefiles.2/badrc3/.modulerc,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: add more error stack tests
2020-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: tclsh is reported
tclshX.Y on FreeBSD
2020-03-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp: ts: adapt err stack output for
siteconfig failed eval
* modulecmd.tcl.in: Rework error stack filtering for siteconfig eval issue
When a error occurs during the evaluation of the siteconfig specific file,
only remove from error stack the elements relative to the modulecmd.tcl code
that evaluates the file.
* .cirrus.yml: cirrus: add tclsh to FreeBSD test env
* script/mt: script: mt exits in err if ts ok but review failed
* testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: fix expected err stack
result for Tcl8.4 ran with coverage Do not match error stack output exactly
as extended code block reported on Tcl8.4 differ whether tests are run with
coverage enabled or disabled.
2020-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.70-maint/230-verbosity.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp, testsuite/modules.70-maint/280-ml.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: refactor common modulefile
error msg
* testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/330-source.exp: ts: new err stack format expose
switch block on Tcl8.4
2020-03-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework error stack filtering Improve error stack output
format to only filter elements of the stack describing modulecmd.tcl
internals. This is now achieved by comparing procedure name in the stack or
its caller procedure name against interpreter known Tcl commands and
procedures. If procedure or caller name in the stack is only known by
modulecmd.tcl Tcl interpreter (and not modulefile or modulerc Tcl
interpreter) then this element in the error stack is discarded.
2020-03-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Also report modulerc err stack trace for known error
* testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/140-multiargs.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp: ts: adapt module err output to display
err stack
* modulecmd.tcl.in: Also report modulefile err stack trace for known error
When an error occurs during the evaluation of a modulefile, report
associated error stack trace filtered to only output useful information for
users. Errors thrown by a modulecmd.tcl procedure, only the second to last
element in error stack has to be kept to hide modulecmd.tcl internals.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: adapt err stack output for
old tcl version
2020-02-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/bad3/.bodycommon,
testsuite/modulefiles.2/bad3/.proccommon,
testsuite/modulefiles.2/bad3/bodyproc,
testsuite/modulefiles.2/bad3/bodysource,
testsuite/modulefiles.2/bad3/procproc,
testsuite/modulefiles.2/bad3/procsource,
testsuite/modulefiles.2/badrc3/.modulerc, testsuite/modulefiles.2/badrc3/1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/300-err_stack.exp: ts: test err stack trace
output in 70/300
* testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp: ts: adapt modulerc err output to
display err stack
* modulecmd.tcl.in: Report modulerc err stack trace if error is unknown
When an error occurs during the evaluation of a modulerc, report associated
error stack trace filtered to only output useful information for users.
2020-02-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/200-errdisp.exp,
testsuite/modules.70-maint/230-verbosity.exp,
testsuite/modules.70-maint/280-ml.exp: ts: adapt module err output to
display err stack
* modulecmd.tcl.in: Return error thrown by puts with a specific code As
`puts` procedure is specifically handled in modulefile evaluation context,
also consider the errors it thrown as specific not to disclose the specific
stack trace.
2020-02-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report modulefile err stack trace if error is unknown
When an error occurs during the evaluation of a modulefile, report
associated error stack trace filtered to only output useful information for
users.
2020-02-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: test unknown issue throw
in 00/120
* modulecmd.tcl.in: Encourage unknown issue report to GitHub project
* modulecmd.tcl.in: Catch modulefile known errors with error codes Use
specific error code (MODULES_ERR_SUBFAILED, MODULES_ERR_GLOBALTOP and
MODULES_ERR_GLOBAL) rather prepending error message with a specific string
to throw known errors occurring during modulefile evaluation.
* modulecmd.tcl.in, testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp: Report err stack trace for
siteconfig eval errors Add to the error message the error stack trace for
errors occuring during site-specific configuration evaluation. Error stack
is expunged from the modulecmd.tcl internals to only report information
relevant to site-specific configuration file. Introduce the
`formatErrStackTrace` procedure to tailor error stack trace to filter and
only keep informations that are relevant to users to understand what code is
broken.
* modulecmd.tcl.in: Report err stack trace if error is unknown Add to the
error message the error stack trace on a global error when this error is
unknown.
2020-02-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Throw known error with a specific error code Use
`MODULES_ERR_KNOWN` error code to throw errors that are known to the module
system. `knerror` procedure is introduced to throw error with this new
specific error code set.
* modulecmd.tcl.in: Render error in main's catch Define
`MODULES_ERR_RENDERED` error code, used in `reportErrorAndExit` procedure to
express that generated error has been rendered (error count increased and
false value returned on stdout). If an error is caught in main procedure
catch, render its error if not done yet (if obtained errorCode is not
`MODULES_ERR_RENDERED`). So there is no more need to catch error around
main call to `module` or `ml` procedure has it will be now correctly handled
by main catch. Thus in this situation error will only be rendered once.
2020-02-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.60-initx/080-access-initx.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.70-maint/290-json.exp: ts: adapt err msg for multi-line
msg harmonization
* modulecmd.tcl.in: Harmonize multi-line error message report When an error
message is composed of multiple lines, render it in the same way whether it
is part of a block message or not: lines after the first one are prepended
with a 2-space padding. As a result error messages appear clearly separated
from each other.
2020-03-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: clarify next version if not released yet
2020-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/createmodule.sh: script: handle variable value change in
createmodule.sh When analyzing environment variable changes applied by
shell script passed as argument, produce a `setenv` modulefile statement for
any variable found set prior script evaluation and for which value is
completely changed after script evaluation. Fixes #320
2020-02-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/nglfar2ccov: script: adapt nglfar2ccov to nagelfar new format
output Analyzed script name is now reported with its path name.
2020-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, modulecmd.tcl.in,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/140-color.exp: Add support for NO_COLOR env
variable Add support for the NO_COLOR environment variable
(https://no-color.org/) which when set (regardess of its value) prevents the
addition of ANSI color. When set, NO_COLOR prevails over CLICOLOR and
CLICOLOR_FORCE environment variables. MODULES_COLOR overrides these tree
variables. Fixes #310
2020-02-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: rm README on 'make clean'
* Makefile.inc.in, configure, init/.gitignore, init/Makefile,
init/bash_completion.in, init/zsh-functions/{_module => _module.in}: init:
use 'sed -r' if 'sed -E' not supported `-E` option is a *relatively* recent
option of GNU sed (v4.2), yet mandatory for OS portability (as detailled in
b68e44e). Adapt configure step to detect if sed option `-E` is supported
and fallback to `-r` otherwise. Fixes #317
* init/bash_completion.in: init: fix bash completion script for Bash <4.0
`compopt` Bash builtin has been introduced in Bash 4.0, so using it on Bash
<4.0 prints error messages. To fix this, `comptopt` availability is checked
prior usage. If not available, the no-space-append behavior will not be
obtained which will not be an optimal situation if the `no-indepth` mode is
set for the `avail` sub-command. Fixes #318
2020-02-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: clarify some
statements in compiler-etc-depend recipe
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: add refs between
sections in compiler-etc-depend recipe
* .../{modules3.2.10 => modules3}/bar-defaults.out, .../{modules3.2.10 =>
modules3}/bar-loads.out, .../{modules3.2.10 => modules3}/bar-switch.out,
.../{modules3.2.10 => modules3}/foo-avail1.out, .../{modules3.2.10 =>
modules3}/foo-avail2.out, .../{modules3.2.10 => modules3}/foo-defaults.out,
.../{modules3.2.10 => modules3}/foo-loads.out, .../{modules3.2.10 =>
modules3}/foo-switch.out, .../{modules3.2.10 => modules3}/modavail.out,
.../{modules3.2.10 => modules3}/modversion.out, .../{modules3.2.10 =>
modules3}/ompi-defaults.out, .../{modules3.2.10 =>
modules3}/ompi-loads1.out, .../{modules3.2.10 => modules3}/ompi-switch.out,
.../{modules4.3.1 => modules4}/bar-defaults.out, .../{modules4.3.1 =>
modules4}/bar-loads.out, .../{modules4.3.1 => modules4}/bar-switch.out,
.../{modules4.3.1 => modules4}/foo-avail1.out, .../{modules4.3.1 =>
modules4}/foo-avail2.out, .../{modules4.3.1 => modules4}/foo-defaults.out,
.../{modules4.3.1 => modules4}/foo-loads.out, .../{modules4.3.1 =>
modules4}/foo-switch.out, .../{modules4.3.1 => modules4}/modavail.out,
.../{modules4.3.1 => modules4}/modversion.out, .../{modules4.3.1 =>
modules4}/ompi-defaults.out, .../{modules4.3.1 => modules4}/ompi-loads1.out,
.../{modules4.3.1 => modules4}/ompi-switch.out, .../{modules3.2.10 =>
modules3}/bar-defaults.out, .../{modules3.2.10 => modules3}/bar-loads.out,
.../{modules3.2.10 => modules3}/bar-switch.out, .../{modules3.2.10 =>
modules3}/foo-avail1.out, .../{modules3.2.10 => modules3}/foo-avail2.out,
.../{modules3.2.10 => modules3}/foo-defaults.out, .../{modules3.2.10 =>
modules3}/foo-loads.out, .../{modules3.2.10 => modules3}/foo-switch.out,
.../{modules3.2.10 => modules3}/modavail.out, .../{modules3.2.10 =>
modules3}/modversion.out, .../{modules3.2.10 => modules3}/ompi-defaults.out,
.../{modules3.2.10 => modules3}/ompi-loads1.out, .../{modules3.2.10 =>
modules3}/ompi-switch.out, .../{modules4.3.1 => modules4}/bar-defaults.out,
.../{modules4.3.1 => modules4}/bar-loads.out, .../{modules4.3.1 =>
modules4}/bar-switch.out, .../{modules4.3.1 => modules4}/foo-avail1.out,
.../{modules4.3.1 => modules4}/foo-avail2.out, .../{modules4.3.1 =>
modules4}/foo-defaults.out, .../{modules4.3.1 => modules4}/foo-loads.out,
.../{modules4.3.1 => modules4}/foo-switch.out, .../{modules4.3.1 =>
modules4}/modavail.out, .../{modules4.3.1 => modules4}/modversion.out,
.../{modules4.3.1 => modules4}/ompi-defaults.out, .../{modules4.3.1 =>
modules4}/ompi-loads1.out, .../{modules4.3.1 => modules4}/ompi-switch.out,
.../{modules3.2.10 => modules3}/bar-defaults.out, .../{modules3.2.10 =>
modules3}/bar-loads.out, .../{modules3.2.10 => modules3}/bar-switch.out,
.../{modules3.2.10 => modules3}/foo-avail1.out, .../{modules3.2.10 =>
modules3}/foo-avail2.out, .../{modules3.2.10 => modules3}/foo-defaults.out,
.../{modules3.2.10 => modules3}/foo-loads.out, .../{modules3.2.10 =>
modules3}/foo-switch.out, .../{modules3.2.10 => modules3}/modavail.out,
.../{modules3.2.10 => modules3}/modversion.out, .../{modules3.2.10 =>
modules3}/ompi-defaults.out, .../{modules3.2.10 =>
modules3}/ompi-loads1.out, .../{modules3.2.10 => modules3}/ompi-switch.out,
.../{modules4.3.1 => modules4}/bar-defaults.out, .../{modules4.3.1 =>
modules4}/bar-loads.out, .../{modules4.3.1 => modules4}/bar-switch.out,
.../{modules4.3.1 => modules4}/foo-avail1.out, .../{modules4.3.1 =>
modules4}/foo-avail2.out, .../{modules4.3.1 => modules4}/foo-defaults.out,
.../{modules4.3.1 => modules4}/foo-loads.out, .../{modules4.3.1 =>
modules4}/foo-switch.out, .../{modules4.3.1 => modules4}/modavail.out,
.../{modules4.3.1 => modules4}/modversion.out, .../{modules4.3.1 =>
modules4}/ompi-defaults.out, .../{modules4.3.1 => modules4}/ompi-loads1.out,
.../{modules4.3.1 => modules4}/ompi-switch.out, .../{modules3.2.10 =>
modules3}/bar-defaults.out, .../{modules3.2.10 => modules3}/bar-loads.out,
.../{modules3.2.10 => modules3}/bar-switch.out, .../{modules3.2.10 =>
modules3}/foo-avail1.out, .../{modules3.2.10 => modules3}/foo-avail2.out,
.../{modules3.2.10 => modules3}/foo-defaults.out, .../{modules3.2.10 =>
modules3}/foo-loads.out, .../{modules3.2.10 => modules3}/foo-switch.out,
.../{modules3.2.10 => modules3}/modavail.out, .../{modules3.2.10 =>
modules3}/modversion.out, .../{modules3.2.10 => modules3}/ompi-defaults.out,
.../{modules3.2.10 => modules3}/ompi-loads1.out, .../{modules3.2.10 =>
modules3}/ompi-switch.out, .../{modules4.3.1 => modules4}/bar-defaults.out,
.../{modules4.3.1 => modules4}/bar-loads.out, .../{modules4.3.1 =>
modules4}/bar-switch.out, .../{modules4.3.1 => modules4}/foo-avail1.out,
.../{modules4.3.1 => modules4}/foo-avail2.out, .../{modules4.3.1 =>
modules4}/foo-defaults.out, .../{modules4.3.1 => modules4}/foo-loads.out,
.../{modules4.3.1 => modules4}/foo-switch.out, .../{modules4.3.1 =>
modules4}/modavail.out, .../{modules4.3.1 => modules4}/modversion.out,
.../{modules4.3.1 => modules4}/ompi-defaults.out, .../{modules4.3.1 =>
modules4}/ompi-loads1.out, .../{modules4.3.1 => modules4}/ompi-switch.out,
doc/source/cookbook/compiler-etc-dependencies.rst: doc: refer to more
generic vers name in compiler-etc-depend recipe
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: simplify reading
of compiler-etc-depend recipe (code)
2020-02-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../example-sessions/common_code.sh,
.../flavours/modules3.2.10/bar-defaults.out,
.../flavours/modules3.2.10/bar-loads.out,
.../flavours/modules3.2.10/bar-switch.out,
.../flavours/modules3.2.10/foo-avail1.out,
.../flavours/modules3.2.10/foo-avail2.out,
.../flavours/modules3.2.10/foo-defaults.out,
.../flavours/modules3.2.10/foo-loads.out,
.../flavours/modules3.2.10/foo-switch.out,
.../flavours/modules3.2.10/modavail.out,
.../flavours/modules3.2.10/modversion.out,
.../flavours/modules3.2.10/ompi-defaults.out,
.../flavours/modules3.2.10/ompi-loads1.out,
.../flavours/modules3.2.10/ompi-switch.out,
.../flavours/modules4.3.1/bar-defaults.out,
.../flavours/modules4.3.1/bar-loads.out,
.../flavours/modules4.3.1/bar-switch.out,
.../flavours/modules4.3.1/foo-avail1.out,
.../flavours/modules4.3.1/foo-avail2.out,
.../flavours/modules4.3.1/foo-defaults.out,
.../flavours/modules4.3.1/foo-loads.out,
.../flavours/modules4.3.1/foo-switch.out,
.../flavours/modules4.3.1/modavail.out,
.../flavours/modules4.3.1/modversion.out,
.../flavours/modules4.3.1/ompi-defaults.out,
.../flavours/modules4.3.1/ompi-loads1.out,
.../flavours/modules4.3.1/ompi-switch.out,
.../homebrewed/modules3.2.10/bar-defaults.out,
.../homebrewed/modules3.2.10/bar-loads.out,
.../homebrewed/modules3.2.10/bar-switch.out,
.../homebrewed/modules3.2.10/foo-avail1.out,
.../homebrewed/modules3.2.10/foo-avail2.out,
.../homebrewed/modules3.2.10/foo-defaults.out,
.../homebrewed/modules3.2.10/foo-loads.out,
.../homebrewed/modules3.2.10/foo-switch.out,
.../homebrewed/modules3.2.10/modavail.out,
.../homebrewed/modules3.2.10/modversion.out,
.../homebrewed/modules3.2.10/ompi-defaults.out,
.../homebrewed/modules3.2.10/ompi-loads1.out,
.../homebrewed/modules3.2.10/ompi-switch.out,
.../homebrewed/modules4.3.1/bar-defaults.out,
.../homebrewed/modules4.3.1/bar-loads.out,
.../homebrewed/modules4.3.1/bar-switch.out,
.../homebrewed/modules4.3.1/foo-avail1.out,
.../homebrewed/modules4.3.1/foo-avail2.out,
.../homebrewed/modules4.3.1/foo-defaults.out,
.../homebrewed/modules4.3.1/foo-loads.out,
.../homebrewed/modules4.3.1/foo-switch.out,
.../homebrewed/modules4.3.1/modavail.out,
.../homebrewed/modules4.3.1/modversion.out,
.../homebrewed/modules4.3.1/ompi-defaults.out,
.../homebrewed/modules4.3.1/ompi-loads1.out,
.../homebrewed/modules4.3.1/ompi-switch.out,
.../modulepath/modules3.2.10/bar-defaults.out,
.../modulepath/modules3.2.10/bar-loads.out,
.../modulepath/modules3.2.10/bar-switch.out,
.../modulepath/modules3.2.10/foo-avail1.out,
.../modulepath/modules3.2.10/foo-avail2.out,
.../modulepath/modules3.2.10/foo-defaults.out,
.../modulepath/modules3.2.10/foo-loads.out,
.../modulepath/modules3.2.10/foo-switch.out,
.../modulepath/modules3.2.10/modavail.out,
.../modulepath/modules3.2.10/modversion.out,
.../modulepath/modules3.2.10/ompi-defaults.out,
.../modulepath/modules3.2.10/ompi-loads1.out,
.../modulepath/modules3.2.10/ompi-switch.out,
.../modulepath/modules4.3.1/bar-defaults.out,
.../modulepath/modules4.3.1/bar-loads.out,
.../modulepath/modules4.3.1/bar-switch.out,
.../modulepath/modules4.3.1/foo-avail1.out,
.../modulepath/modules4.3.1/foo-avail2.out,
.../modulepath/modules4.3.1/foo-defaults.out,
.../modulepath/modules4.3.1/foo-loads.out,
.../modulepath/modules4.3.1/foo-switch.out,
.../modulepath/modules4.3.1/modavail.out,
.../modulepath/modules4.3.1/modversion.out,
.../modulepath/modules4.3.1/ompi-defaults.out,
.../modulepath/modules4.3.1/ompi-loads1.out,
.../modulepath/modules4.3.1/ompi-switch.out,
.../modulerc/modules3.2.10/bar-defaults.out,
.../modulerc/modules3.2.10/bar-loads.out,
.../modulerc/modules3.2.10/bar-switch.out,
.../modulerc/modules3.2.10/foo-avail1.out,
.../modulerc/modules3.2.10/foo-avail2.out,
.../modulerc/modules3.2.10/foo-defaults.out,
.../modulerc/modules3.2.10/foo-loads.out,
.../modulerc/modules3.2.10/foo-switch.out,
.../modulerc/modules3.2.10/modavail.out,
.../modulerc/modules3.2.10/modversion.out,
.../modulerc/modules3.2.10/ompi-defaults.out,
.../modulerc/modules3.2.10/ompi-loads1.out,
.../modulerc/modules3.2.10/ompi-switch.out,
.../modulerc/modules4.3.1/bar-defaults.out,
.../modulerc/modules4.3.1/bar-loads.out,
.../modulerc/modules4.3.1/bar-switch.out,
.../modulerc/modules4.3.1/foo-avail1.out,
.../modulerc/modules4.3.1/foo-avail2.out,
.../modulerc/modules4.3.1/foo-defaults.out,
.../modulerc/modules4.3.1/foo-loads.out,
.../modulerc/modules4.3.1/foo-switch.out,
.../modulerc/modules4.3.1/modavail.out,
.../modulerc/modules4.3.1/modversion.out,
.../modulerc/modules4.3.1/ompi-defaults.out,
.../modulerc/modules4.3.1/ompi-loads1.out,
.../modulerc/modules4.3.1/ompi-switch.out, .../tcllib/LoadedCompMatches.tcl,
.../tcllib/LoadedMpiMatches.tcl, .../tcllib/WarningUtils.tcl,
doc/source/cookbook/compiler-etc-dependencies.rst: doc: improve console
output reading of compiler-etc-depend recipe
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: adopt neutral tone
compiler-etc-depend recipe
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: add ref to ext
tools mentionned in compiler-etc-depend recipe
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: normalize rst
section/link syntax in compiler-etc-depend recipe
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: fix typos in
compiler-etc-depend recipe
* .../compiler-etc-dependencies/flavours/bar/4.7,
.../compiler-etc-dependencies/flavours/bar/5.4,
.../compiler-etc-dependencies/flavours/bar/common,
.../compiler-etc-dependencies/flavours/foo/1.1,
.../compiler-etc-dependencies/flavours/foo/2.4,
.../compiler-etc-dependencies/flavours/foo/common,
.../compiler-etc-dependencies/flavours/gnu/8.2.0,
.../compiler-etc-dependencies/flavours/gnu/9.1.0,
.../compiler-etc-dependencies/flavours/gnu/common,
.../compiler-etc-dependencies/flavours/intel/2018,
.../compiler-etc-dependencies/flavours/intel/2019,
.../flavours/intel/common, .../flavours/intelmpi/default,
.../compiler-etc-dependencies/flavours/mvapich/2.1,
.../flavours/mvapich/2.3.1, .../flavours/mvapich/common,
.../compiler-etc-dependencies/flavours/openmpi/3.1,
.../compiler-etc-dependencies/flavours/openmpi/4.0,
.../flavours/openmpi/common,
.../compiler-etc-dependencies/flavours/pgi/18.4,
.../compiler-etc-dependencies/flavours/pgi/19.4,
.../compiler-etc-dependencies/flavours/pgi/common,
.../compiler-etc-dependencies/flavours/simd/avx,
.../compiler-etc-dependencies/flavours/simd/avx2,
.../compiler-etc-dependencies/flavours/simd/common,
.../compiler-etc-dependencies/flavours/simd/sse4.1,
.../compiler-etc-dependencies/homebrewed/bar/4.7,
.../compiler-etc-dependencies/homebrewed/bar/5.4, .../homebrewed/bar/common,
.../compiler-etc-dependencies/homebrewed/foo/1.1,
.../compiler-etc-dependencies/homebrewed/foo/2.4, .../homebrewed/foo/common,
.../compiler-etc-dependencies/homebrewed/gcc/8.2.0,
.../compiler-etc-dependencies/homebrewed/gcc/9.1.0,
.../homebrewed/gcc/common, .../homebrewed/intel/2018,
.../homebrewed/intel/2019, .../homebrewed/intel/common,
.../homebrewed/intelmpi/default, .../homebrewed/mvapich/2.1,
.../homebrewed/mvapich/2.3.1, .../homebrewed/mvapich/common,
.../homebrewed/openmpi/3.1, .../homebrewed/openmpi/4.0,
.../homebrewed/openmpi/common,
.../compiler-etc-dependencies/homebrewed/pgi/18.4,
.../compiler-etc-dependencies/homebrewed/pgi/19.4,
.../homebrewed/pgi/common,
.../compiler-etc-dependencies/homebrewed/simd/avx,
.../compiler-etc-dependencies/homebrewed/simd/avx2,
.../homebrewed/simd/common, .../homebrewed/simd/sse4.1,
.../modrc_common/modulerc.default_lowest_simd,
.../modrc_common/modulerc.select_compiler_family,
.../modrc_common/modulerc.select_compiler_version,
.../modrc_common/modulerc.select_mpi_family,
.../modrc_common/modulerc.select_mpi_version,
.../modulepath/Compiler/gcc/8.2.0/bar/4.7/avx,
.../modulepath/Compiler/gcc/8.2.0/bar/4.7/sse4.1,
.../modulepath/Compiler/gcc/8.2.0/foo/1.1,
.../modulepath/Compiler/gcc/8.2.0/mvapich/2.1,
.../modulepath/Compiler/gcc/8.2.0/openmpi/3.1,
.../modulepath/Compiler/gcc/9.1.0/bar/5.4/avx,
.../modulepath/Compiler/gcc/9.1.0/bar/5.4/avx2,
.../modulepath/Compiler/gcc/9.1.0/foo/2.4,
.../modulepath/Compiler/gcc/9.1.0/mvapich/2.1,
.../modulepath/Compiler/gcc/9.1.0/mvapich/2.3.1,
.../modulepath/Compiler/gcc/9.1.0/openmpi/3.1,
.../modulepath/Compiler/gcc/9.1.0/openmpi/4.0,
.../modulepath/Compiler/intel/2018/foo/1.1,
.../Compiler/intel/2018/intelmpi/default,
.../modulepath/Compiler/intel/2018/mvapich/2.1,
.../modulepath/Compiler/intel/2018/openmpi/3.1,
.../modulepath/Compiler/intel/2019/foo/2.4,
.../Compiler/intel/2019/intelmpi/default,
.../modulepath/Compiler/intel/2019/mvapich/2.1,
.../modulepath/Compiler/intel/2019/mvapich/2.3.1,
.../modulepath/Compiler/intel/2019/openmpi/3.1,
.../modulepath/Compiler/intel/2019/openmpi/4.0,
.../modulepath/Compiler/pgi/18.4/foo/1.1,
.../modulepath/Compiler/pgi/18.4/mvapich/2.1,
.../modulepath/Compiler/pgi/18.4/openmpi/3.1,
.../modulepath/Compiler/pgi/19.4/foo/2.4,
.../modulepath/Compiler/pgi/19.4/mvapich/2.1,
.../modulepath/Compiler/pgi/19.4/mvapich/2.3.1,
.../modulepath/Compiler/pgi/19.4/openmpi/3.1,
.../modulepath/Compiler/pgi/19.4/openmpi/4.0,
.../CompilerMPI/gcc/8.2.0/mvapich/2.1/foo/1.1,
.../CompilerMPI/gcc/8.2.0/openmpi/3.1/foo/1.1,
.../CompilerMPI/gcc/9.1.0/mvapich/2.3.1/foo/2.4,
.../CompilerMPI/gcc/9.1.0/openmpi/4.0/foo/2.4,
.../intel/2018/intelmpi/default/foo/1.1,
.../CompilerMPI/intel/2018/mvapich/2.1/foo/1.1,
.../CompilerMPI/intel/2018/openmpi/3.1/foo/1.1,
.../intel/2019/intelmpi/default/foo/2.4,
.../CompilerMPI/intel/2019/mvapich/2.3.1/foo/2.4,
.../CompilerMPI/intel/2019/openmpi/4.0/foo/2.4,
.../CompilerMPI/pgi/18.4/mvapich/2.1/foo/1.1,
.../CompilerMPI/pgi/18.4/openmpi/3.1/foo/1.1,
.../CompilerMPI/pgi/19.4/openmpi/3.1/foo/2.4,
.../19.4/openmpi/4.0/{REAMDE.txt => README.txt},
.../modulepath/Core/gcc/8.2.0, .../modulepath/Core/gcc/9.1.0,
.../modulepath/Core/gcc/common, .../modulepath/Core/intel/2018,
.../modulepath/Core/intel/2019, .../modulepath/Core/intel/common,
.../modulepath/Core/pgi/18.4, .../modulepath/Core/pgi/19.4,
.../modulepath/Core/pgi/common, .../modulepath/common/bar/common,
.../modulepath/common/foo/common, .../modulepath/common/intelmpi/common,
.../modulepath/common/mvapich/common, .../modulepath/common/openmpi/common,
.../compiler-etc-dependencies/modulerc3/bar/common,
.../compiler-etc-dependencies/modulerc3/foo/common,
.../modulerc3/mvapich/common, .../modulerc3/openmpi/common,
.../modulerc4/bar/4.7/gcc/8.2.0/avx, .../modulerc4/bar/4.7/gcc/8.2.0/sse4.1,
.../modulerc4/bar/5.4/gcc/9.1.0/avx, .../modulerc4/bar/5.4/gcc/9.1.0/avx2,
.../compiler-etc-dependencies/modulerc4/bar/common,
.../modulerc4/foo/1.1/gcc/8.2.0/mvapich/2.1,
.../modulerc4/foo/1.1/gcc/8.2.0/nompi,
.../modulerc4/foo/1.1/gcc/8.2.0/openmpi/3.1,
.../modulerc4/foo/1.1/intel/2018/intelmpi,
.../modulerc4/foo/1.1/intel/2018/mvapich/2.1,
.../modulerc4/foo/1.1/intel/2018/nompi,
.../modulerc4/foo/1.1/intel/2018/openmpi/3.1,
.../modulerc4/foo/1.1/pgi/18.4/mvapich/2.1,
.../modulerc4/foo/1.1/pgi/18.4/nompi,
.../modulerc4/foo/1.1/pgi/18.4/openmpi/3.1,
.../modulerc4/foo/2.4/gcc/9.1.0/mvapich/2.3.1,
.../modulerc4/foo/2.4/gcc/9.1.0/nompi,
.../modulerc4/foo/2.4/gcc/9.1.0/openmpi/4.0,
.../modulerc4/foo/2.4/intel/2019/intelmpi,
.../modulerc4/foo/2.4/intel/2019/mvapich/2.3.1,
.../modulerc4/foo/2.4/intel/2019/nompi,
.../modulerc4/foo/2.4/intel/2019/openmpi/4.0,
.../modulerc4/foo/2.4/pgi/19.4/nompi,
.../modulerc4/foo/2.4/pgi/19.4/openmpi/3.1,
.../compiler-etc-dependencies/modulerc4/foo/common,
.../compiler-etc-dependencies/modulerc4/gcc/8.2.0,
.../compiler-etc-dependencies/modulerc4/gcc/9.1.0,
.../compiler-etc-dependencies/modulerc4/gcc/common,
.../compiler-etc-dependencies/modulerc4/intel/2018,
.../compiler-etc-dependencies/modulerc4/intel/2019,
.../modulerc4/intel/common, .../modulerc4/mvapich/2.1/gcc/8.2.0,
.../modulerc4/mvapich/2.1/gcc/9.1.0, .../modulerc4/mvapich/2.1/intel/2018,
.../modulerc4/mvapich/2.1/intel/2019, .../modulerc4/mvapich/2.1/pgi/18.4,
.../modulerc4/mvapich/2.1/pgi/19.4, .../modulerc4/mvapich/2.3.1/gcc/9.1.0,
.../modulerc4/mvapich/2.3.1/intel/2019,
.../modulerc4/mvapich/2.3.1/pgi/19.4, .../modulerc4/mvapich/common,
.../modulerc4/openmpi/3.1/gcc/8.2.0, .../modulerc4/openmpi/3.1/gcc/9.1.0,
.../modulerc4/openmpi/3.1/intel/2018, .../modulerc4/openmpi/3.1/intel/2019,
.../modulerc4/openmpi/3.1/pgi/18.4, .../modulerc4/openmpi/3.1/pgi/19.4,
.../modulerc4/openmpi/4.0/gcc/9.1.0, .../modulerc4/openmpi/4.0/intel/2019,
.../modulerc4/openmpi/4.0/pgi/19.4, .../modulerc4/openmpi/common,
.../compiler-etc-dependencies/modulerc4/pgi/18.4,
.../compiler-etc-dependencies/modulerc4/pgi/19.4,
.../compiler-etc-dependencies/modulerc4/pgi/common,
doc/source/cookbook/compiler-etc-dependencies.rst: doc: normalize code of
modulefile of compiler-etc-depend recipe And include these modulefile
examples as Tcl code in recipe document to get their content highlighted.
2020-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../tcllib/ChildModules.tcl, .../tcllib/CompilerFromPath.tcl,
.../tcllib/CompilerUtils.tcl,
.../compiler-etc-dependencies/tcllib/GetFamVer.tcl,
.../tcllib/LoadedCompMatches.tcl, .../tcllib/LoadedModules.tcl,
.../tcllib/LoadedMpiMatches.tcl,
.../compiler-etc-dependencies/tcllib/MpiUtils.tcl,
.../tcllib/WarningUtils.tcl, .../tcllib/common_utilities.tcl,
.../compiler-etc-dependencies/tcllib/temp.tcl,
doc/source/cookbook/compiler-etc-dependencies.rst: doc: normalize code of
Tcl lib of compiler-etc-depend recipe Add authorship information, same
header and comment structure for all Tcl files to include these files in
cookbook recipe document with Tcl syntax highlight.
* doc/source/cookbook/compiler-etc-dependencies.rst: doc: fix broken refs in
compiler-etc-depend recipe
2020-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../flavours/modules3.2.10/foo-avail1.out,
.../flavours/modules3.2.10/foo-avail2.out,
.../flavours/modules3.2.10/modavail.out,
.../flavours/modules4.3.1/bar-loads.out,
.../flavours/modules4.3.1/bar-switch.out,
.../flavours/modules4.3.1/foo-avail1.out,
.../flavours/modules4.3.1/foo-avail2.out,
.../flavours/modules4.3.1/foo-defaults.out,
.../flavours/modules4.3.1/foo-loads.out,
.../flavours/modules4.3.1/foo-switch.out,
.../flavours/modules4.3.1/modavail.out,
.../flavours/modules4.3.1/ompi-defaults.out,
.../flavours/modules4.3.1/ompi-loads1.out,
.../flavours/modules4.3.1/ompi-switch.out,
.../example-sessions/foo-loads.sh,
.../homebrewed/modules3.2.10/foo-avail1.out,
.../homebrewed/modules3.2.10/foo-avail2.out,
.../homebrewed/modules3.2.10/modavail.out,
.../homebrewed/modules4.3.1/bar-defaults.out,
.../homebrewed/modules4.3.1/bar-loads.out,
.../homebrewed/modules4.3.1/bar-switch.out,
.../homebrewed/modules4.3.1/foo-avail1.out,
.../homebrewed/modules4.3.1/foo-avail2.out,
.../homebrewed/modules4.3.1/foo-defaults.out,
.../homebrewed/modules4.3.1/foo-loads.out,
.../homebrewed/modules4.3.1/foo-switch.out,
.../homebrewed/modules4.3.1/modavail.out,
.../homebrewed/modules4.3.1/ompi-defaults.out,
.../homebrewed/modules4.3.1/ompi-loads1.out,
.../homebrewed/modules4.3.1/ompi-switch.out,
.../modulepath/modules3.2.10/foo-avail1.out,
.../modulepath/modules3.2.10/modavail.out,
.../modulepath/modules4.3.1/bar-defaults.out,
.../modulepath/modules4.3.1/bar-loads.out,
.../modulepath/modules4.3.1/bar-switch.out,
.../modulepath/modules4.3.1/foo-avail1.out,
.../modulepath/modules4.3.1/foo-defaults.out,
.../modulepath/modules4.3.1/foo-loads.out,
.../modulepath/modules4.3.1/foo-switch.out,
.../modulepath/modules4.3.1/modavail.out,
.../modulepath/modules4.3.1/ompi-defaults.out,
.../modulepath/modules4.3.1/ompi-loads1.out,
.../modulepath/modules4.3.1/ompi-switch.out,
.../modulerc/modules3.2.10/foo-avail1.out,
.../modulerc/modules3.2.10/foo-avail2.out,
.../modulerc/modules3.2.10/modavail.out,
.../modulerc/modules4.3.1/bar-defaults.out,
.../modulerc/modules4.3.1/bar-loads.out,
.../modulerc/modules4.3.1/bar-switch.out,
.../modulerc/modules4.3.1/foo-avail1.out,
.../modulerc/modules4.3.1/foo-avail2.out,
.../modulerc/modules4.3.1/foo-defaults.out,
.../modulerc/modules4.3.1/foo-loads.out,
.../modulerc/modules4.3.1/foo-switch.out,
.../modulerc/modules4.3.1/modavail.out,
.../modulerc/modules4.3.1/ompi-defaults.out,
.../modulerc/modules4.3.1/ompi-loads1.out,
.../modulerc/modules4.3.1/ompi-switch.out,
.../example-sessions/ompi-switch.sh,
.../compiler-etc-dependencies/flavours/gnu/common,
.../flavours/intel/common, .../flavours/openmpi/common,
.../compiler-etc-dependencies/flavours/pgi/common,
.../homebrewed/foo/common, .../homebrewed/gcc/common,
.../homebrewed/intel/common, .../homebrewed/pgi/common,
.../homebrewed/simd/common, .../modrc_common/modulerc.default_lowest_simd,
.../modrc_common/modulerc.select_compiler_family,
.../modrc_common/modulerc.select_compiler_version,
.../modrc_common/modulerc.select_mpi_family,
.../modrc_common/modulerc.select_mpi_version,
.../CompilerMPI/pgi/19.4/openmpi/4.0/REAMDE.txt,
.../modulepath/Core/gcc/common, .../modulepath/Core/intel/common,
.../modulepath/Core/pgi/common, .../modulepath/common/intelmpi/common,
.../modulepath/common/mvapich/common, .../modulepath/common/openmpi/common,
.../modulerc3/mvapich/common, .../modulerc3/openmpi/common,
.../compiler-etc-dependencies/modulerc4/gcc/common,
.../modulerc4/intel/common, .../modulerc4/mvapich/common,
.../modulerc4/openmpi/common,
.../compiler-etc-dependencies/modulerc4/pgi/common,
.../tcllib/ChildModules.tcl, .../tcllib/CompilerFromPath.tcl,
.../tcllib/CompilerUtils.tcl,
.../compiler-etc-dependencies/tcllib/GetFamVer.tcl,
.../tcllib/LoadedCompMatches.tcl, .../tcllib/LoadedMpiMatches.tcl,
.../compiler-etc-dependencies/tcllib/MpiUtils.tcl,
.../tcllib/WarningUtils.tcl, .../tcllib/common_utilities.tcl,
.../compiler-etc-dependencies/tcllib/temp.tcl: doc: simplify reading of
compiler-etc-depend recipe (trailing space)
* .../flavours/modules3.2.10/bar-loads.out,
.../flavours/modules3.2.10/bar-switch.out,
.../flavours/modules3.2.10/foo-loads.out,
.../flavours/modules3.2.10/foo-switch.out,
.../flavours/modules3.2.10/ompi-loads1.out,
.../flavours/modules3.2.10/ompi-switch.out,
.../flavours/modules4.3.1/bar-loads.out,
.../flavours/modules4.3.1/bar-switch.out,
.../flavours/modules4.3.1/foo-loads.out,
.../flavours/modules4.3.1/foo-switch.out,
.../flavours/modules4.3.1/ompi-loads1.out,
.../flavours/modules4.3.1/ompi-switch.out,
.../homebrewed/modules3.2.10/bar-loads.out,
.../homebrewed/modules3.2.10/bar-switch.out,
.../homebrewed/modules3.2.10/foo-loads.out,
.../homebrewed/modules3.2.10/foo-switch.out,
.../homebrewed/modules3.2.10/ompi-loads1.out,
.../homebrewed/modules3.2.10/ompi-switch.out,
.../homebrewed/modules4.3.1/bar-defaults.out,
.../homebrewed/modules4.3.1/bar-loads.out,
.../homebrewed/modules4.3.1/bar-switch.out,
.../homebrewed/modules4.3.1/foo-defaults.out,
.../homebrewed/modules4.3.1/foo-loads.out,
.../homebrewed/modules4.3.1/foo-switch.out,
.../homebrewed/modules4.3.1/ompi-defaults.out,
.../homebrewed/modules4.3.1/ompi-loads1.out,
.../homebrewed/modules4.3.1/ompi-switch.out,
.../modulepath/modules3.2.10/bar-defaults.out,
.../modulepath/modules3.2.10/bar-loads.out,
.../modulepath/modules3.2.10/bar-switch.out,
.../modulepath/modules3.2.10/foo-defaults.out,
.../modulepath/modules3.2.10/foo-loads.out,
.../modulepath/modules3.2.10/foo-switch.out,
.../modulepath/modules3.2.10/ompi-defaults.out,
.../modulepath/modules3.2.10/ompi-loads1.out,
.../modulepath/modules3.2.10/ompi-switch.out,
.../modulepath/modules4.3.1/bar-defaults.out,
.../modulepath/modules4.3.1/bar-loads.out,
.../modulepath/modules4.3.1/bar-switch.out,
.../modulepath/modules4.3.1/foo-defaults.out,
.../modulepath/modules4.3.1/foo-loads.out,
.../modulepath/modules4.3.1/foo-switch.out,
.../modulepath/modules4.3.1/ompi-defaults.out,
.../modulepath/modules4.3.1/ompi-loads1.out,
.../modulepath/modules4.3.1/ompi-switch.out,
.../modulerc/modules3.2.10/bar-defaults.out,
.../modulerc/modules3.2.10/bar-loads.out,
.../modulerc/modules3.2.10/bar-switch.out,
.../modulerc/modules3.2.10/foo-defaults.out,
.../modulerc/modules3.2.10/foo-loads.out,
.../modulerc/modules3.2.10/foo-switch.out,
.../modulerc/modules3.2.10/ompi-defaults.out,
.../modulerc/modules3.2.10/ompi-loads1.out,
.../modulerc/modules3.2.10/ompi-switch.out,
.../modulerc/modules4.3.1/bar-defaults.out,
.../modulerc/modules4.3.1/bar-loads.out,
.../modulerc/modules4.3.1/bar-switch.out,
.../modulerc/modules4.3.1/foo-defaults.out,
.../modulerc/modules4.3.1/foo-loads.out,
.../modulerc/modules4.3.1/foo-switch.out,
.../modulerc/modules4.3.1/ompi-defaults.out,
.../modulerc/modules4.3.1/ompi-loads1.out,
.../modulerc/modules4.3.1/ompi-switch.out,
.../fake-sw-root/bar/4.7/gcc/8.2.0/avx/bin/bar,
.../fake-sw-root/bar/4.7/gcc/8.2.0/sse4.1/bin/bar,
.../fake-sw-root/bar/5.4/gcc/9.1.0/avx/bin/bar,
.../fake-sw-root/bar/5.4/gcc/9.1.0/avx2/bin/bar,
.../fake-sw-root/foo/1.1/gcc/8.2.0/mvapich/2.1/bin/foo,
.../fake-sw-root/foo/1.1/gcc/8.2.0/nompi/bin/foo,
.../fake-sw-root/foo/1.1/gcc/8.2.0/openmpi/3.1/bin/foo,
.../fake-sw-root/foo/1.1/intel/2018/intelmpi/bin/foo,
.../foo/1.1/intel/2018/mvapich/2.1/bin/foo,
.../fake-sw-root/foo/1.1/intel/2018/nompi/bin/foo,
.../foo/1.1/intel/2018/openmpi/3.1/bin/foo,
.../fake-sw-root/foo/1.1/pgi/18.4/mvapich/2.1/bin/foo,
.../fake-sw-root/foo/1.1/pgi/18.4/nompi/bin/foo,
.../fake-sw-root/foo/1.1/pgi/18.4/openmpi/3.1/bin/foo,
.../foo/2.4/gcc/9.1.0/mvapich/2.3.1/bin/foo,
.../fake-sw-root/foo/2.4/gcc/9.1.0/nompi/bin/foo,
.../fake-sw-root/foo/2.4/gcc/9.1.0/openmpi/4.0/bin/foo,
.../fake-sw-root/foo/2.4/intel/2019/intelmpi/bin/foo,
.../foo/2.4/intel/2019/mvapich/2.3.1/bin/foo,
.../fake-sw-root/foo/2.4/intel/2019/nompi/bin/foo,
.../foo/2.4/intel/2019/openmpi/4.0/bin/foo,
.../fake-sw-root/foo/2.4/pgi/19.4/nompi/bin/foo,
.../fake-sw-root/foo/2.4/pgi/19.4/openmpi/3.1/bin/foo,
.../fake-sw-root/gcc/8.2.0/bin/gcc, .../fake-sw-root/gcc/9.1.0/bin/gcc,
.../fake-sw-root/intel/2018/bin/icc, .../fake-sw-root/intel/2019/bin/icc,
.../fake-sw-root/mvapich/2.1/gcc/8.2.0/bin/mpirun,
.../fake-sw-root/mvapich/2.1/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/mvapich/2.1/intel/2018/bin/mpirun,
.../fake-sw-root/mvapich/2.1/intel/2019/bin/mpirun,
.../fake-sw-root/mvapich/2.1/pgi/18.4/bin/mpirun,
.../fake-sw-root/mvapich/2.1/pgi/19.4/bin/mpirun,
.../fake-sw-root/mvapich/2.3.1/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/mvapich/2.3.1/intel/2019/bin/mpirun,
.../fake-sw-root/mvapich/2.3.1/pgi/19.4/bin/mpirun,
.../fake-sw-root/openmpi/3.1/gcc/8.2.0/bin/mpirun,
.../fake-sw-root/openmpi/3.1/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/openmpi/3.1/intel/2018/bin/mpirun,
.../fake-sw-root/openmpi/3.1/intel/2019/bin/mpirun,
.../fake-sw-root/openmpi/3.1/pgi/18.4/bin/mpirun,
.../fake-sw-root/openmpi/3.1/pgi/19.4/bin/mpirun,
.../fake-sw-root/openmpi/4.0/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/openmpi/4.0/intel/2019/bin/mpirun,
.../fake-sw-root/openmpi/4.0/pgi/19.4/bin/mpirun,
.../fake-sw-root/pgi/18.4/bin/pgcc, .../fake-sw-root/pgi/19.4/bin/pgcc,
doc/example/compiler-etc-dependencies/flavours/bar/4.7,
doc/example/compiler-etc-dependencies/flavours/bar/5.4,
.../compiler-etc-dependencies/flavours/bar/common,
doc/example/compiler-etc-dependencies/flavours/foo/1.1,
doc/example/compiler-etc-dependencies/flavours/foo/2.4,
.../compiler-etc-dependencies/flavours/foo/common,
.../compiler-etc-dependencies/flavours/gnu/8.2.0,
.../compiler-etc-dependencies/flavours/gnu/9.1.0,
.../compiler-etc-dependencies/flavours/gnu/common,
.../compiler-etc-dependencies/flavours/intel/2018,
.../compiler-etc-dependencies/flavours/intel/2019,
.../compiler-etc-dependencies/flavours/intel/common,
.../compiler-etc-dependencies/flavours/mvapich/2.1,
.../compiler-etc-dependencies/flavours/mvapich/2.3.1,
.../compiler-etc-dependencies/flavours/mvapich/common,
.../compiler-etc-dependencies/flavours/openmpi/3.1,
.../compiler-etc-dependencies/flavours/openmpi/4.0,
.../compiler-etc-dependencies/flavours/openmpi/common,
.../compiler-etc-dependencies/flavours/pgi/18.4,
.../compiler-etc-dependencies/flavours/pgi/19.4,
.../compiler-etc-dependencies/flavours/pgi/common,
.../compiler-etc-dependencies/homebrewed/bar/4.7,
.../compiler-etc-dependencies/homebrewed/bar/5.4,
.../compiler-etc-dependencies/homebrewed/bar/common,
.../compiler-etc-dependencies/homebrewed/foo/1.1,
.../compiler-etc-dependencies/homebrewed/foo/2.4,
.../compiler-etc-dependencies/homebrewed/foo/common,
.../compiler-etc-dependencies/homebrewed/gcc/8.2.0,
.../compiler-etc-dependencies/homebrewed/gcc/9.1.0,
.../compiler-etc-dependencies/homebrewed/gcc/common,
.../compiler-etc-dependencies/homebrewed/intel/2018,
.../compiler-etc-dependencies/homebrewed/intel/2019,
.../compiler-etc-dependencies/homebrewed/intel/common,
.../compiler-etc-dependencies/homebrewed/mvapich/2.1,
.../compiler-etc-dependencies/homebrewed/mvapich/2.3.1,
.../homebrewed/mvapich/common,
.../compiler-etc-dependencies/homebrewed/openmpi/3.1,
.../compiler-etc-dependencies/homebrewed/openmpi/4.0,
.../homebrewed/openmpi/common,
.../compiler-etc-dependencies/homebrewed/pgi/18.4,
.../compiler-etc-dependencies/homebrewed/pgi/19.4,
.../compiler-etc-dependencies/homebrewed/pgi/common,
.../modulepath/Compiler/gcc/8.2.0/bar/4.7/avx,
.../modulepath/Compiler/gcc/8.2.0/bar/4.7/sse4.1,
.../modulepath/Compiler/gcc/8.2.0/foo/1.1,
.../modulepath/Compiler/gcc/8.2.0/mvapich/2.1,
.../modulepath/Compiler/gcc/8.2.0/openmpi/3.1,
.../modulepath/Compiler/gcc/9.1.0/bar/5.4/avx,
.../modulepath/Compiler/gcc/9.1.0/bar/5.4/avx2,
.../modulepath/Compiler/gcc/9.1.0/foo/2.4,
.../modulepath/Compiler/gcc/9.1.0/mvapich/2.1,
.../modulepath/Compiler/gcc/9.1.0/mvapich/2.3.1,
.../modulepath/Compiler/gcc/9.1.0/openmpi/3.1,
.../modulepath/Compiler/gcc/9.1.0/openmpi/4.0,
.../modulepath/Compiler/intel/2018/foo/1.1,
.../modulepath/Compiler/intel/2018/intelmpi/default,
.../modulepath/Compiler/intel/2018/mvapich/2.1,
.../modulepath/Compiler/intel/2018/openmpi/3.1,
.../modulepath/Compiler/intel/2019/foo/2.4,
.../modulepath/Compiler/intel/2019/intelmpi/default,
.../modulepath/Compiler/intel/2019/mvapich/2.1,
.../modulepath/Compiler/intel/2019/mvapich/2.3.1,
.../modulepath/Compiler/intel/2019/openmpi/3.1,
.../modulepath/Compiler/intel/2019/openmpi/4.0,
.../modulepath/Compiler/pgi/18.4/foo/1.1,
.../modulepath/Compiler/pgi/18.4/mvapich/2.1,
.../modulepath/Compiler/pgi/18.4/openmpi/3.1,
.../modulepath/Compiler/pgi/19.4/foo/2.4,
.../modulepath/Compiler/pgi/19.4/mvapich/2.1,
.../modulepath/Compiler/pgi/19.4/mvapich/2.3.1,
.../modulepath/Compiler/pgi/19.4/openmpi/3.1,
.../modulepath/Compiler/pgi/19.4/openmpi/4.0,
.../CompilerMPI/gcc/8.2.0/mvapich/2.1/foo/1.1,
.../CompilerMPI/gcc/8.2.0/openmpi/3.1/foo/1.1,
.../CompilerMPI/gcc/9.1.0/mvapich/2.3.1/foo/2.4,
.../CompilerMPI/gcc/9.1.0/openmpi/4.0/foo/2.4,
.../CompilerMPI/intel/2018/intelmpi/default/foo/1.1,
.../CompilerMPI/intel/2018/mvapich/2.1/foo/1.1,
.../CompilerMPI/intel/2018/openmpi/3.1/foo/1.1,
.../CompilerMPI/intel/2019/intelmpi/default/foo/2.4,
.../CompilerMPI/intel/2019/mvapich/2.3.1/foo/2.4,
.../CompilerMPI/intel/2019/openmpi/4.0/foo/2.4,
.../CompilerMPI/pgi/18.4/mvapich/2.1/foo/1.1,
.../CompilerMPI/pgi/18.4/openmpi/3.1/foo/1.1,
.../CompilerMPI/pgi/19.4/openmpi/3.1/foo/2.4, .../modulepath/Core/gcc/8.2.0,
.../modulepath/Core/gcc/9.1.0, .../modulepath/Core/gcc/common,
.../modulepath/Core/intel/2018, .../modulepath/Core/intel/2019,
.../modulepath/Core/intel/common,
.../compiler-etc-dependencies/modulepath/Core/pgi/18.4,
.../compiler-etc-dependencies/modulepath/Core/pgi/19.4,
.../modulepath/Core/pgi/common, .../modulepath/common/bar/common,
.../modulepath/common/foo/common, .../modulepath/common/mvapich/common,
.../modulepath/common/openmpi/common,
.../compiler-etc-dependencies/modulerc3/bar/common,
.../compiler-etc-dependencies/modulerc3/foo/common,
.../compiler-etc-dependencies/modulerc3/mvapich/common,
.../compiler-etc-dependencies/modulerc3/openmpi/common,
.../modulerc4/bar/4.7/gcc/8.2.0/avx, .../modulerc4/bar/4.7/gcc/8.2.0/sse4.1,
.../modulerc4/bar/5.4/gcc/9.1.0/avx, .../modulerc4/bar/5.4/gcc/9.1.0/avx2,
.../compiler-etc-dependencies/modulerc4/bar/common,
.../modulerc4/foo/1.1/gcc/8.2.0/mvapich/2.1,
.../modulerc4/foo/1.1/gcc/8.2.0/nompi,
.../modulerc4/foo/1.1/gcc/8.2.0/openmpi/3.1,
.../modulerc4/foo/1.1/intel/2018/intelmpi,
.../modulerc4/foo/1.1/intel/2018/mvapich/2.1,
.../modulerc4/foo/1.1/intel/2018/nompi,
.../modulerc4/foo/1.1/intel/2018/openmpi/3.1,
.../modulerc4/foo/1.1/pgi/18.4/mvapich/2.1,
.../modulerc4/foo/1.1/pgi/18.4/nompi,
.../modulerc4/foo/1.1/pgi/18.4/openmpi/3.1,
.../modulerc4/foo/2.4/gcc/9.1.0/mvapich/2.3.1,
.../modulerc4/foo/2.4/gcc/9.1.0/nompi,
.../modulerc4/foo/2.4/gcc/9.1.0/openmpi/4.0,
.../modulerc4/foo/2.4/intel/2019/intelmpi,
.../modulerc4/foo/2.4/intel/2019/mvapich/2.3.1,
.../modulerc4/foo/2.4/intel/2019/nompi,
.../modulerc4/foo/2.4/intel/2019/openmpi/4.0,
.../modulerc4/foo/2.4/pgi/19.4/nompi,
.../modulerc4/foo/2.4/pgi/19.4/openmpi/3.1,
.../compiler-etc-dependencies/modulerc4/foo/common,
.../compiler-etc-dependencies/modulerc4/gcc/8.2.0,
.../compiler-etc-dependencies/modulerc4/gcc/9.1.0,
.../compiler-etc-dependencies/modulerc4/gcc/common,
.../compiler-etc-dependencies/modulerc4/intel/2018,
.../compiler-etc-dependencies/modulerc4/intel/2019,
.../compiler-etc-dependencies/modulerc4/intel/common,
.../modulerc4/mvapich/2.1/gcc/8.2.0, .../modulerc4/mvapich/2.1/gcc/9.1.0,
.../modulerc4/mvapich/2.1/intel/2018, .../modulerc4/mvapich/2.1/intel/2019,
.../modulerc4/mvapich/2.1/pgi/18.4, .../modulerc4/mvapich/2.1/pgi/19.4,
.../modulerc4/mvapich/2.3.1/gcc/9.1.0,
.../modulerc4/mvapich/2.3.1/intel/2019,
.../modulerc4/mvapich/2.3.1/pgi/19.4,
.../compiler-etc-dependencies/modulerc4/mvapich/common,
.../modulerc4/openmpi/3.1/gcc/8.2.0, .../modulerc4/openmpi/3.1/gcc/9.1.0,
.../modulerc4/openmpi/3.1/intel/2018, .../modulerc4/openmpi/3.1/intel/2019,
.../modulerc4/openmpi/3.1/pgi/18.4, .../modulerc4/openmpi/3.1/pgi/19.4,
.../modulerc4/openmpi/4.0/gcc/9.1.0, .../modulerc4/openmpi/4.0/intel/2019,
.../modulerc4/openmpi/4.0/pgi/19.4,
.../compiler-etc-dependencies/modulerc4/openmpi/common,
.../compiler-etc-dependencies/modulerc4/pgi/18.4,
.../compiler-etc-dependencies/modulerc4/pgi/19.4,
.../compiler-etc-dependencies/modulerc4/pgi/common,
doc/source/cookbook/compiler-etc-dependencies.rst: doc: simplify reading of
compiler-etc-depend recipe (dummy)
2019-12-20 Tom Payerle <payerle@umd.edu>
* .../example-sessions/bar-defaults.sh, .../example-sessions/bar-loads.sh,
.../example-sessions/bar-switch.sh, .../example-sessions/common_code.sh,
.../flavours/modules3.2.10/bar-defaults.out,
.../flavours/modules3.2.10/bar-loads.out,
.../flavours/modules3.2.10/bar-switch.out,
.../flavours/modules3.2.10/foo-avail1.out,
.../flavours/modules3.2.10/foo-avail2.out,
.../flavours/modules3.2.10/foo-defaults.out,
.../flavours/modules3.2.10/foo-loads.out,
.../flavours/modules3.2.10/foo-switch.out,
.../flavours/modules3.2.10/modavail.out,
.../flavours/modules3.2.10/modversion.out,
.../flavours/modules3.2.10/ompi-defaults.out,
.../flavours/modules3.2.10/ompi-loads1.out,
.../flavours/modules3.2.10/ompi-switch.out,
.../flavours/modules4.3.1/bar-defaults.out,
.../flavours/modules4.3.1/bar-loads.out,
.../flavours/modules4.3.1/bar-switch.out,
.../flavours/modules4.3.1/foo-avail1.out,
.../flavours/modules4.3.1/foo-avail2.out,
.../flavours/modules4.3.1/foo-defaults.out,
.../flavours/modules4.3.1/foo-loads.out,
.../flavours/modules4.3.1/foo-switch.out,
.../flavours/modules4.3.1/modavail.out,
.../flavours/modules4.3.1/modversion.out,
.../flavours/modules4.3.1/ompi-defaults.out,
.../flavours/modules4.3.1/ompi-loads1.out,
.../flavours/modules4.3.1/ompi-switch.out,
.../example-sessions/foo-avail1.sh, .../example-sessions/foo-avail2.sh,
.../example-sessions/foo-defaults.sh, .../example-sessions/foo-loads.sh,
.../example-sessions/foo-switch.sh,
.../homebrewed/modules3.2.10/bar-defaults.out,
.../homebrewed/modules3.2.10/bar-loads.out,
.../homebrewed/modules3.2.10/bar-switch.out,
.../homebrewed/modules3.2.10/foo-avail1.out,
.../homebrewed/modules3.2.10/foo-avail2.out,
.../homebrewed/modules3.2.10/foo-defaults.out,
.../homebrewed/modules3.2.10/foo-loads.out,
.../homebrewed/modules3.2.10/foo-switch.out,
.../homebrewed/modules3.2.10/modavail.out,
.../homebrewed/modules3.2.10/modversion.out,
.../homebrewed/modules3.2.10/ompi-defaults.out,
.../homebrewed/modules3.2.10/ompi-loads1.out,
.../homebrewed/modules3.2.10/ompi-switch.out,
.../homebrewed/modules4.3.1/bar-defaults.out,
.../homebrewed/modules4.3.1/bar-loads.out,
.../homebrewed/modules4.3.1/bar-switch.out,
.../homebrewed/modules4.3.1/foo-avail1.out,
.../homebrewed/modules4.3.1/foo-avail2.out,
.../homebrewed/modules4.3.1/foo-defaults.out,
.../homebrewed/modules4.3.1/foo-loads.out,
.../homebrewed/modules4.3.1/foo-switch.out,
.../homebrewed/modules4.3.1/modavail.out,
.../homebrewed/modules4.3.1/modversion.out,
.../homebrewed/modules4.3.1/ompi-defaults.out,
.../homebrewed/modules4.3.1/ompi-loads1.out,
.../homebrewed/modules4.3.1/ompi-switch.out,
.../example-sessions/modavail.sh,
.../modulepath/modules3.2.10/bar-defaults.out,
.../modulepath/modules3.2.10/bar-loads.out,
.../modulepath/modules3.2.10/bar-switch.out,
.../modulepath/modules3.2.10/foo-avail1.out,
.../modulepath/modules3.2.10/foo-avail2.out,
.../modulepath/modules3.2.10/foo-defaults.out,
.../modulepath/modules3.2.10/foo-loads.out,
.../modulepath/modules3.2.10/foo-switch.out,
.../modulepath/modules3.2.10/modavail.out,
.../modulepath/modules3.2.10/modversion.out,
.../modulepath/modules3.2.10/ompi-defaults.out,
.../modulepath/modules3.2.10/ompi-loads1.out,
.../modulepath/modules3.2.10/ompi-switch.out,
.../modulepath/modules4.3.1/bar-defaults.out,
.../modulepath/modules4.3.1/bar-loads.out,
.../modulepath/modules4.3.1/bar-switch.out,
.../modulepath/modules4.3.1/foo-avail1.out,
.../modulepath/modules4.3.1/foo-avail2.out,
.../modulepath/modules4.3.1/foo-defaults.out,
.../modulepath/modules4.3.1/foo-loads.out,
.../modulepath/modules4.3.1/foo-switch.out,
.../modulepath/modules4.3.1/modavail.out,
.../modulepath/modules4.3.1/modversion.out,
.../modulepath/modules4.3.1/ompi-defaults.out,
.../modulepath/modules4.3.1/ompi-loads1.out,
.../modulepath/modules4.3.1/ompi-switch.out,
.../modulerc/modules3.2.10/bar-defaults.out,
.../modulerc/modules3.2.10/bar-loads.out,
.../modulerc/modules3.2.10/bar-switch.out,
.../modulerc/modules3.2.10/foo-avail1.out,
.../modulerc/modules3.2.10/foo-avail2.out,
.../modulerc/modules3.2.10/foo-defaults.out,
.../modulerc/modules3.2.10/foo-loads.out,
.../modulerc/modules3.2.10/foo-switch.out,
.../modulerc/modules3.2.10/modavail.out,
.../modulerc/modules3.2.10/modversion.out,
.../modulerc/modules3.2.10/ompi-defaults.out,
.../modulerc/modules3.2.10/ompi-loads1.out,
.../modulerc/modules3.2.10/ompi-switch.out,
.../modulerc/modules4.3.1/bar-defaults.out,
.../modulerc/modules4.3.1/bar-loads.out,
.../modulerc/modules4.3.1/bar-switch.out,
.../modulerc/modules4.3.1/foo-avail1.out,
.../modulerc/modules4.3.1/foo-avail2.out,
.../modulerc/modules4.3.1/foo-defaults.out,
.../modulerc/modules4.3.1/foo-loads.out,
.../modulerc/modules4.3.1/foo-switch.out,
.../modulerc/modules4.3.1/modavail.out,
.../modulerc/modules4.3.1/modversion.out,
.../modulerc/modules4.3.1/ompi-defaults.out,
.../modulerc/modules4.3.1/ompi-loads1.out,
.../modulerc/modules4.3.1/ompi-switch.out,
.../example-sessions/modversion.sh, .../example-sessions/ompi-defaults.sh,
.../example-sessions/ompi-loads1.sh, .../example-sessions/ompi-switch.sh,
.../example-sessions/ompi-switch.sh.m431,
.../fake-sw-root/bar/4.7/1/README.txt,
.../fake-sw-root/bar/4.7/1/gnu-8.2.0-simd-avx,
.../fake-sw-root/bar/4.7/1/gnu-8.2.0-simd-sse4.1,
.../fake-sw-root/bar/4.7/gcc/8.2.0/avx/bin/bar,
.../fake-sw-root/bar/4.7/gcc/8.2.0/sse4.1/bin/bar,
.../fake-sw-root/bar/5.4/1/README.txt,
.../fake-sw-root/bar/5.4/1/gnu-9.1.0-simd-avx,
.../fake-sw-root/bar/5.4/1/gnu-9.1.0-simd-avx2,
.../fake-sw-root/bar/5.4/gcc/9.1.0/avx/bin/bar,
.../fake-sw-root/bar/5.4/gcc/9.1.0/avx2/bin/bar,
.../fake-sw-root/foo/1.1/1/README.txt, .../fake-sw-root/foo/1.1/1/gnu-8.2.0,
.../fake-sw-root/foo/1.1/1/gnu-8.2.0-mvapich-2.1,
.../fake-sw-root/foo/1.1/1/gnu-8.2.0-openmpi-3.1,
.../fake-sw-root/foo/1.1/1/intel-2018,
.../foo/1.1/1/intel-2018-intelmpi-default,
.../fake-sw-root/foo/1.1/1/intel-2018-mvapich-2.1,
.../fake-sw-root/foo/1.1/1/intel-2018-openmpi-3.1,
.../fake-sw-root/foo/1.1/1/pgi-18.4,
.../fake-sw-root/foo/1.1/1/pgi-18.4-mvapich-2.1,
.../fake-sw-root/foo/1.1/1/pgi-18.4-openmpi-3.1,
.../foo/1.1/gcc/8.2.0/mvapich/2.1/bin/foo,
.../fake-sw-root/foo/1.1/gcc/8.2.0/nompi/bin/foo,
.../foo/1.1/gcc/8.2.0/openmpi/3.1/bin/foo,
.../foo/1.1/intel/2018/intelmpi/bin/foo,
.../foo/1.1/intel/2018/mvapich/2.1/bin/foo,
.../fake-sw-root/foo/1.1/intel/2018/nompi/bin/foo,
.../foo/1.1/intel/2018/openmpi/3.1/bin/foo,
.../foo/1.1/pgi/18.4/mvapich/2.1/bin/foo,
.../fake-sw-root/foo/1.1/pgi/18.4/nompi/bin/foo,
.../foo/1.1/pgi/18.4/openmpi/3.1/bin/foo,
.../fake-sw-root/foo/2.4/1/README.txt, .../fake-sw-root/foo/2.4/1/gnu-9.1.0,
.../fake-sw-root/foo/2.4/1/gnu-9.1.0-mvapich-2.3.1,
.../fake-sw-root/foo/2.4/1/gnu-9.1.0-openmpi-4.0,
.../fake-sw-root/foo/2.4/1/intel-2019,
.../foo/2.4/1/intel-2019-intelmpi-default,
.../foo/2.4/1/intel-2019-mvapich-2.3.1,
.../fake-sw-root/foo/2.4/1/intel-2019-openmpi-4.0,
.../fake-sw-root/foo/2.4/1/pgi-19.4,
.../fake-sw-root/foo/2.4/1/pgi-19.4-openmpi-3.1,
.../foo/2.4/gcc/9.1.0/mvapich/2.3.1/bin/foo,
.../fake-sw-root/foo/2.4/gcc/9.1.0/nompi/bin/foo,
.../foo/2.4/gcc/9.1.0/openmpi/4.0/bin/foo,
.../foo/2.4/intel/2019/intelmpi/bin/foo,
.../foo/2.4/intel/2019/mvapich/2.3.1/bin/foo,
.../fake-sw-root/foo/2.4/intel/2019/nompi/bin/foo,
.../foo/2.4/intel/2019/openmpi/4.0/bin/foo,
.../fake-sw-root/foo/2.4/pgi/19.4/nompi/bin/foo,
.../foo/2.4/pgi/19.4/openmpi/3.1/bin/foo,
.../fake-sw-root/gcc/8.2.0/bin/gcc, .../fake-sw-root/gcc/9.1.0/bin/gcc,
.../fake-sw-root/intel/2018/bin/icc, .../fake-sw-root/intel/2019/bin/icc,
.../fake-sw-root/mvapich/2.1/1/README.txt,
.../fake-sw-root/mvapich/2.1/1/gnu-8.2.0,
.../fake-sw-root/mvapich/2.1/1/gnu-9.1.0,
.../fake-sw-root/mvapich/2.1/1/intel-2018,
.../fake-sw-root/mvapich/2.1/1/intel-2019,
.../fake-sw-root/mvapich/2.1/1/pgi-18.4,
.../fake-sw-root/mvapich/2.1/1/pgi-19.4,
.../fake-sw-root/mvapich/2.1/gcc/8.2.0/bin/mpirun,
.../fake-sw-root/mvapich/2.1/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/mvapich/2.1/intel/2018/bin/mpirun,
.../fake-sw-root/mvapich/2.1/intel/2019/bin/mpirun,
.../fake-sw-root/mvapich/2.1/pgi/18.4/bin/mpirun,
.../fake-sw-root/mvapich/2.1/pgi/19.4/bin/mpirun,
.../fake-sw-root/mvapich/2.3.1/1/README.txt,
.../fake-sw-root/mvapich/2.3.1/1/gnu-9.1.0,
.../fake-sw-root/mvapich/2.3.1/1/intel-2019,
.../fake-sw-root/mvapich/2.3.1/1/pgi-19.4,
.../mvapich/2.3.1/gcc/9.1.0/bin/mpirun,
.../mvapich/2.3.1/intel/2019/bin/mpirun,
.../fake-sw-root/mvapich/2.3.1/pgi/19.4/bin/mpirun,
.../fake-sw-root/openmpi/3.1/1/README.txt,
.../fake-sw-root/openmpi/3.1/1/gnu-8.2.0,
.../fake-sw-root/openmpi/3.1/1/gnu-9.1.0,
.../fake-sw-root/openmpi/3.1/1/intel-2018,
.../fake-sw-root/openmpi/3.1/1/intel-2019,
.../fake-sw-root/openmpi/3.1/1/pgi-18.4,
.../fake-sw-root/openmpi/3.1/1/pgi-19.4,
.../fake-sw-root/openmpi/3.1/gcc/8.2.0/bin/mpirun,
.../fake-sw-root/openmpi/3.1/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/openmpi/3.1/intel/2018/bin/mpirun,
.../fake-sw-root/openmpi/3.1/intel/2019/bin/mpirun,
.../fake-sw-root/openmpi/3.1/pgi/18.4/bin/mpirun,
.../fake-sw-root/openmpi/3.1/pgi/19.4/bin/mpirun,
.../fake-sw-root/openmpi/4.0/1/README.txt,
.../fake-sw-root/openmpi/4.0/1/gnu-9.1.0,
.../fake-sw-root/openmpi/4.0/1/intel-2019,
.../fake-sw-root/openmpi/4.0/1/pgi-19.4,
.../fake-sw-root/openmpi/4.0/gcc/9.1.0/bin/mpirun,
.../fake-sw-root/openmpi/4.0/intel/2019/bin/mpirun,
.../fake-sw-root/openmpi/4.0/pgi/19.4/bin/mpirun,
.../fake-sw-root/pgi/18.4/bin/pgcc, .../fake-sw-root/pgi/19.4/bin/pgcc,
.../compiler-etc-dependencies/flavours/bar/4.7,
.../compiler-etc-dependencies/flavours/bar/5.4,
.../compiler-etc-dependencies/flavours/bar/common,
.../compiler-etc-dependencies/flavours/foo/1.1,
.../compiler-etc-dependencies/flavours/foo/2.4,
.../compiler-etc-dependencies/flavours/foo/common,
.../compiler-etc-dependencies/flavours/gnu/8.2.0,
.../compiler-etc-dependencies/flavours/gnu/9.1.0,
.../compiler-etc-dependencies/flavours/gnu/common,
.../compiler-etc-dependencies/flavours/intel/2018,
.../compiler-etc-dependencies/flavours/intel/2019,
.../flavours/intel/common, .../flavours/intelmpi/default,
.../compiler-etc-dependencies/flavours/mvapich/2.1,
.../flavours/mvapich/2.3.1, .../flavours/mvapich/common,
.../compiler-etc-dependencies/flavours/openmpi/3.1,
.../compiler-etc-dependencies/flavours/openmpi/4.0,
.../flavours/openmpi/common,
.../compiler-etc-dependencies/flavours/pgi/18.4,
.../compiler-etc-dependencies/flavours/pgi/19.4,
.../compiler-etc-dependencies/flavours/pgi/common,
.../compiler-etc-dependencies/flavours/simd/avx,
.../compiler-etc-dependencies/flavours/simd/avx2,
.../compiler-etc-dependencies/flavours/simd/common,
.../compiler-etc-dependencies/flavours/simd/sse4.1,
.../compiler-etc-dependencies/homebrewed/bar/4.7,
.../compiler-etc-dependencies/homebrewed/bar/5.4, .../homebrewed/bar/common,
.../compiler-etc-dependencies/homebrewed/foo/1.1,
.../compiler-etc-dependencies/homebrewed/foo/2.4, .../homebrewed/foo/common,
.../compiler-etc-dependencies/homebrewed/gcc/8.2.0,
.../compiler-etc-dependencies/homebrewed/gcc/9.1.0,
.../homebrewed/gcc/common, .../homebrewed/intel/2018,
.../homebrewed/intel/2019, .../homebrewed/intel/common,
.../homebrewed/intelmpi/default, .../homebrewed/mvapich/2.1,
.../homebrewed/mvapich/2.3.1, .../homebrewed/mvapich/common,
.../homebrewed/openmpi/3.1, .../homebrewed/openmpi/4.0,
.../homebrewed/openmpi/common,
.../compiler-etc-dependencies/homebrewed/pgi/18.4,
.../compiler-etc-dependencies/homebrewed/pgi/19.4,
.../homebrewed/pgi/common,
.../compiler-etc-dependencies/homebrewed/simd/avx,
.../compiler-etc-dependencies/homebrewed/simd/avx2,
.../homebrewed/simd/common, .../homebrewed/simd/sse4.1,
.../modrc_common/modulerc.default_lowest_simd,
.../modrc_common/modulerc.select_compiler_family,
.../modrc_common/modulerc.select_compiler_version,
.../modrc_common/modulerc.select_mpi_family,
.../modrc_common/modulerc.select_mpi_version,
.../Compiler/gcc/8.2.0/bar/4.7/.modulerc,
.../modulepath/Compiler/gcc/8.2.0/bar/4.7/avx,
.../modulepath/Compiler/gcc/8.2.0/bar/4.7/sse4.1,
.../modulepath/Compiler/gcc/8.2.0/bar/common,
.../modulepath/Compiler/gcc/8.2.0/foo/1.1,
.../modulepath/Compiler/gcc/8.2.0/foo/common,
.../modulepath/Compiler/gcc/8.2.0/mvapich/2.1,
.../modulepath/Compiler/gcc/8.2.0/mvapich/common,
.../modulepath/Compiler/gcc/8.2.0/openmpi/3.1,
.../modulepath/Compiler/gcc/8.2.0/openmpi/common,
.../Compiler/gcc/9.1.0/bar/5.4/.modulerc,
.../modulepath/Compiler/gcc/9.1.0/bar/5.4/avx,
.../modulepath/Compiler/gcc/9.1.0/bar/5.4/avx2,
.../modulepath/Compiler/gcc/9.1.0/bar/common,
.../modulepath/Compiler/gcc/9.1.0/foo/2.4,
.../modulepath/Compiler/gcc/9.1.0/foo/common,
.../modulepath/Compiler/gcc/9.1.0/mvapich/2.1,
.../modulepath/Compiler/gcc/9.1.0/mvapich/2.3.1,
.../modulepath/Compiler/gcc/9.1.0/mvapich/common,
.../modulepath/Compiler/gcc/9.1.0/openmpi/3.1,
.../modulepath/Compiler/gcc/9.1.0/openmpi/4.0,
.../modulepath/Compiler/gcc/9.1.0/openmpi/common,
.../modulepath/Compiler/intel/2018/foo/1.1,
.../modulepath/Compiler/intel/2018/foo/common,
.../modulepath/Compiler/intel/2018/intelmpi/common,
.../Compiler/intel/2018/intelmpi/default,
.../modulepath/Compiler/intel/2018/mvapich/2.1,
.../modulepath/Compiler/intel/2018/mvapich/common,
.../modulepath/Compiler/intel/2018/openmpi/3.1,
.../modulepath/Compiler/intel/2018/openmpi/common,
.../modulepath/Compiler/intel/2019/foo/2.4,
.../modulepath/Compiler/intel/2019/foo/common,
.../modulepath/Compiler/intel/2019/intelmpi/common,
.../Compiler/intel/2019/intelmpi/default,
.../modulepath/Compiler/intel/2019/mvapich/2.1,
.../modulepath/Compiler/intel/2019/mvapich/2.3.1,
.../modulepath/Compiler/intel/2019/mvapich/common,
.../modulepath/Compiler/intel/2019/openmpi/3.1,
.../modulepath/Compiler/intel/2019/openmpi/4.0,
.../modulepath/Compiler/intel/2019/openmpi/common,
.../modulepath/Compiler/pgi/18.4/foo/1.1,
.../modulepath/Compiler/pgi/18.4/foo/common,
.../modulepath/Compiler/pgi/18.4/mvapich/2.1,
.../modulepath/Compiler/pgi/18.4/mvapich/common,
.../modulepath/Compiler/pgi/18.4/openmpi/3.1,
.../modulepath/Compiler/pgi/18.4/openmpi/common,
.../modulepath/Compiler/pgi/19.4/foo/2.4,
.../modulepath/Compiler/pgi/19.4/foo/common,
.../modulepath/Compiler/pgi/19.4/mvapich/2.1,
.../modulepath/Compiler/pgi/19.4/mvapich/2.3.1,
.../modulepath/Compiler/pgi/19.4/mvapich/common,
.../modulepath/Compiler/pgi/19.4/openmpi/3.1,
.../modulepath/Compiler/pgi/19.4/openmpi/4.0,
.../modulepath/Compiler/pgi/19.4/openmpi/common,
.../CompilerMPI/gcc/8.2.0/mvapich/2.1/foo/1.1,
.../CompilerMPI/gcc/8.2.0/mvapich/2.1/foo/common,
.../CompilerMPI/gcc/8.2.0/openmpi/3.1/foo/1.1,
.../CompilerMPI/gcc/8.2.0/openmpi/3.1/foo/common,
.../CompilerMPI/gcc/9.1.0/mvapich/2.3.1/foo/2.4,
.../CompilerMPI/gcc/9.1.0/mvapich/2.3.1/foo/common,
.../CompilerMPI/gcc/9.1.0/openmpi/4.0/foo/2.4,
.../CompilerMPI/gcc/9.1.0/openmpi/4.0/foo/common,
.../intel/2018/intelmpi/default/foo/1.1,
.../intel/2018/intelmpi/default/foo/common,
.../CompilerMPI/intel/2018/mvapich/2.1/foo/1.1,
.../CompilerMPI/intel/2018/mvapich/2.1/foo/common,
.../CompilerMPI/intel/2018/openmpi/3.1/foo/1.1,
.../CompilerMPI/intel/2018/openmpi/3.1/foo/common,
.../intel/2019/intelmpi/default/foo/2.4,
.../intel/2019/intelmpi/default/foo/common,
.../CompilerMPI/intel/2019/mvapich/2.3.1/foo/2.4,
.../intel/2019/mvapich/2.3.1/foo/common,
.../CompilerMPI/intel/2019/openmpi/4.0/foo/2.4,
.../CompilerMPI/intel/2019/openmpi/4.0/foo/common,
.../CompilerMPI/pgi/18.4/mvapich/2.1/foo/1.1,
.../CompilerMPI/pgi/18.4/mvapich/2.1/foo/common,
.../CompilerMPI/pgi/18.4/openmpi/3.1/foo/1.1,
.../CompilerMPI/pgi/18.4/openmpi/3.1/foo/common,
.../CompilerMPI/pgi/19.4/openmpi/3.1/foo/2.4,
.../CompilerMPI/pgi/19.4/openmpi/3.1/foo/common,
.../CompilerMPI/pgi/19.4/openmpi/4.0/REAMDE.txt,
.../modulepath/Core/gcc/8.2.0, .../modulepath/Core/gcc/9.1.0,
.../modulepath/Core/gcc/common, .../modulepath/Core/intel/2018,
.../modulepath/Core/intel/2019, .../modulepath/Core/intel/common,
.../modulepath/Core/pgi/18.4, .../modulepath/Core/pgi/19.4,
.../modulepath/Core/pgi/common, .../modulepath/common/bar/common,
.../modulepath/common/foo/common, .../modulepath/common/intelmpi/common,
.../modulepath/common/mvapich/common, .../modulepath/common/openmpi/common,
.../modulerc3/bar/.modulerc, .../modulerc3/bar/4.7/.modulerc,
.../modulerc3/bar/4.7/gcc/.modulerc,
.../modulerc3/bar/4.7/gcc/8.2.0/.modulerc,
.../modulerc3/bar/4.7/gcc/8.2.0/avx, .../modulerc3/bar/4.7/gcc/8.2.0/sse4.1,
.../modulerc3/bar/5.4/.modulerc, .../modulerc3/bar/5.4/gcc/.modulerc,
.../modulerc3/bar/5.4/gcc/9.1.0/avx, .../modulerc3/bar/5.4/gcc/9.1.0/avx2,
.../modulerc3/bar/avx/.modulerc, .../modulerc3/bar/avx/gcc/.modulerc,
.../modulerc3/bar/avx/gcc/8.2.0/4.7, .../modulerc3/bar/avx/gcc/9.1.0/5.4,
.../modulerc3/bar/avx2/.modulerc, .../modulerc3/bar/avx2/gcc/.modulerc,
.../modulerc3/bar/avx2/gcc/9.1.0/5.4,
.../compiler-etc-dependencies/modulerc3/bar/common,
.../modulerc3/bar/gcc/.modulerc, .../modulerc3/bar/gcc/8.2.0/.modulerc,
.../modulerc3/bar/gcc/8.2.0/avx/4.7, .../modulerc3/bar/gcc/8.2.0/sse4.1/4.7,
.../modulerc3/bar/gcc/9.1.0/.modulerc, .../modulerc3/bar/gcc/9.1.0/avx/5.4,
.../modulerc3/bar/gcc/9.1.0/avx2/5.4, .../modulerc3/bar/sse4.1/.modulerc,
.../modulerc3/bar/sse4.1/gcc/.modulerc,
.../modulerc3/bar/sse4.1/gcc/8.2.0/4.7, .../modulerc3/foo/.modulerc,
.../modulerc3/foo/1.1/.modulerc, .../modulerc3/foo/1.1/gcc/.modulerc,
.../modulerc3/foo/1.1/gcc/8.2.0/.modulerc,
.../modulerc3/foo/1.1/gcc/8.2.0/mvapich/.modulerc,
.../modulerc3/foo/1.1/gcc/8.2.0/mvapich/2.1,
.../modulerc3/foo/1.1/gcc/8.2.0/nompi,
.../modulerc3/foo/1.1/gcc/8.2.0/openmpi/.modulerc,
.../modulerc3/foo/1.1/gcc/8.2.0/openmpi/3.1,
.../modulerc3/foo/1.1/intel/.modulerc,
.../modulerc3/foo/1.1/intel/2018/.modulerc,
.../modulerc3/foo/1.1/intel/2018/intelmpi,
.../modulerc3/foo/1.1/intel/2018/mvapich/.modulerc,
.../modulerc3/foo/1.1/intel/2018/mvapich/2.1,
.../modulerc3/foo/1.1/intel/2018/nompi,
.../modulerc3/foo/1.1/intel/2018/openmpi/.modulerc,
.../modulerc3/foo/1.1/intel/2018/openmpi/3.1,
.../modulerc3/foo/1.1/pgi/.modulerc,
.../modulerc3/foo/1.1/pgi/18.4/.modulerc,
.../modulerc3/foo/1.1/pgi/18.4/mvapich/.modulerc,
.../modulerc3/foo/1.1/pgi/18.4/mvapich/2.1,
.../modulerc3/foo/1.1/pgi/18.4/nompi,
.../modulerc3/foo/1.1/pgi/18.4/openmpi/.modulerc,
.../modulerc3/foo/1.1/pgi/18.4/openmpi/3.1, .../modulerc3/foo/2.4/.modulerc,
.../modulerc3/foo/2.4/gcc/.modulerc,
.../modulerc3/foo/2.4/gcc/9.1.0/.modulerc,
.../modulerc3/foo/2.4/gcc/9.1.0/mvapich/.modulerc,
.../modulerc3/foo/2.4/gcc/9.1.0/mvapich/2.3.1,
.../modulerc3/foo/2.4/gcc/9.1.0/nompi,
.../modulerc3/foo/2.4/gcc/9.1.0/openmpi/.modulerc,
.../modulerc3/foo/2.4/gcc/9.1.0/openmpi/4.0,
.../modulerc3/foo/2.4/intel/.modulerc,
.../modulerc3/foo/2.4/intel/2019/.modulerc,
.../modulerc3/foo/2.4/intel/2019/intelmpi,
.../modulerc3/foo/2.4/intel/2019/mvapich/.modulerc,
.../modulerc3/foo/2.4/intel/2019/mvapich/2.3.1,
.../modulerc3/foo/2.4/intel/2019/nompi,
.../modulerc3/foo/2.4/intel/2019/openmpi/.modulerc,
.../modulerc3/foo/2.4/intel/2019/openmpi/4.0,
.../modulerc3/foo/2.4/pgi/.modulerc,
.../modulerc3/foo/2.4/pgi/19.4/.modulerc,
.../modulerc3/foo/2.4/pgi/19.4/nompi,
.../modulerc3/foo/2.4/pgi/19.4/openmpi/.modulerc,
.../modulerc3/foo/2.4/pgi/19.4/openmpi/3.1,
.../compiler-etc-dependencies/modulerc3/foo/common,
.../modulerc3/foo/gcc/.modulerc, .../modulerc3/foo/gcc/8.2.0/.modulerc,
.../modulerc3/foo/gcc/8.2.0/mvapich/.modulerc,
.../modulerc3/foo/gcc/8.2.0/mvapich/2.1/1.1,
.../modulerc3/foo/gcc/8.2.0/nompi/1.1,
.../modulerc3/foo/gcc/8.2.0/openmpi/.modulerc,
.../modulerc3/foo/gcc/8.2.0/openmpi/3.1/1.1,
.../modulerc3/foo/gcc/9.1.0/.modulerc,
.../modulerc3/foo/gcc/9.1.0/mvapich/.modulerc,
.../modulerc3/foo/gcc/9.1.0/mvapich/2.3.1/2.4,
.../modulerc3/foo/gcc/9.1.0/nompi/2.4,
.../modulerc3/foo/gcc/9.1.0/openmpi/.modulerc,
.../modulerc3/foo/gcc/9.1.0/openmpi/4.0/2.4,
.../modulerc3/foo/intel/.modulerc, .../modulerc3/foo/intel/2018/.modulerc,
.../modulerc3/foo/intel/2018/intelmpi/1.1,
.../modulerc3/foo/intel/2018/mvapich/.modulerc,
.../modulerc3/foo/intel/2018/mvapich/2.1/1.1,
.../modulerc3/foo/intel/2018/nompi/1.1,
.../modulerc3/foo/intel/2018/openmpi/.modulerc,
.../modulerc3/foo/intel/2018/openmpi/3.1/1.1,
.../modulerc3/foo/intel/2019/.modulerc,
.../modulerc3/foo/intel/2019/intelmpi/2.4,
.../modulerc3/foo/intel/2019/mvapich/.modulerc,
.../modulerc3/foo/intel/2019/mvapich/2.3.1/2.4,
.../modulerc3/foo/intel/2019/nompi/2.4,
.../modulerc3/foo/intel/2019/openmpi/.modulerc,
.../modulerc3/foo/intel/2019/openmpi/4.0/2.4,
.../modulerc3/foo/pgi/.modulerc, .../modulerc3/foo/pgi/18.4/.modulerc,
.../modulerc3/foo/pgi/18.4/mvapich/.modulerc,
.../modulerc3/foo/pgi/18.4/mvapich/2.1/1.1,
.../modulerc3/foo/pgi/18.4/nompi/1.1,
.../modulerc3/foo/pgi/18.4/openmpi/.modulerc,
.../modulerc3/foo/pgi/18.4/openmpi/3.1/1.1,
.../modulerc3/foo/pgi/19.4/.modulerc, .../modulerc3/foo/pgi/19.4/nompi/2.4,
.../modulerc3/foo/pgi/19.4/openmpi/.modulerc,
.../modulerc3/foo/pgi/19.4/openmpi/3.1/2.4,
.../compiler-etc-dependencies/modulerc3/gcc/8.2.0,
.../compiler-etc-dependencies/modulerc3/gcc/9.1.0,
.../compiler-etc-dependencies/modulerc3/gcc/common,
.../compiler-etc-dependencies/modulerc3/intel/2018,
.../compiler-etc-dependencies/modulerc3/intel/2019,
.../modulerc3/intel/common, .../modulerc3/mvapich/.modulerc,
.../modulerc3/mvapich/2.1/.modulerc,
.../modulerc3/mvapich/2.1/gcc/.modulerc,
.../modulerc3/mvapich/2.1/gcc/8.2.0, .../modulerc3/mvapich/2.1/gcc/9.1.0,
.../modulerc3/mvapich/2.1/intel/.modulerc,
.../modulerc3/mvapich/2.1/intel/2018, .../modulerc3/mvapich/2.1/intel/2019,
.../modulerc3/mvapich/2.1/pgi/.modulerc, .../modulerc3/mvapich/2.1/pgi/18.4,
.../modulerc3/mvapich/2.1/pgi/19.4, .../modulerc3/mvapich/2.3.1/.modulerc,
.../modulerc3/mvapich/2.3.1/gcc/.modulerc,
.../modulerc3/mvapich/2.3.1/gcc/9.1.0,
.../modulerc3/mvapich/2.3.1/intel/.modulerc,
.../modulerc3/mvapich/2.3.1/intel/2019,
.../modulerc3/mvapich/2.3.1/pgi/.modulerc,
.../modulerc3/mvapich/2.3.1/pgi/19.4, .../modulerc3/mvapich/common,
.../modulerc3/mvapich/gcc/.modulerc, .../modulerc3/mvapich/gcc/8.2.0/2.1,
.../modulerc3/mvapich/gcc/9.1.0/2.1, .../modulerc3/mvapich/gcc/9.1.0/2.3.1,
.../modulerc3/mvapich/intel/.modulerc, .../modulerc3/mvapich/intel/2018/2.1,
.../modulerc3/mvapich/intel/2019/2.1,
.../modulerc3/mvapich/intel/2019/2.3.1, .../modulerc3/mvapich/pgi/.modulerc,
.../modulerc3/mvapich/pgi/18.4/2.1, .../modulerc3/mvapich/pgi/19.4/2.1,
.../modulerc3/mvapich/pgi/19.4/2.3.1, .../modulerc3/openmpi/.modulerc,
.../modulerc3/openmpi/3.1/.modulerc,
.../modulerc3/openmpi/3.1/gcc/.modulerc,
.../modulerc3/openmpi/3.1/gcc/8.2.0, .../modulerc3/openmpi/3.1/gcc/9.1.0,
.../modulerc3/openmpi/3.1/intel/.modulerc,
.../modulerc3/openmpi/3.1/intel/2018, .../modulerc3/openmpi/3.1/intel/2019,
.../modulerc3/openmpi/3.1/pgi/.modulerc, .../modulerc3/openmpi/3.1/pgi/18.4,
.../modulerc3/openmpi/3.1/pgi/19.4, .../modulerc3/openmpi/4.0/.modulerc,
.../modulerc3/openmpi/4.0/gcc/.modulerc,
.../modulerc3/openmpi/4.0/gcc/9.1.0,
.../modulerc3/openmpi/4.0/intel/.modulerc,
.../modulerc3/openmpi/4.0/intel/2019,
.../modulerc3/openmpi/4.0/pgi/.modulerc, .../modulerc3/openmpi/4.0/pgi/19.4,
.../modulerc3/openmpi/common, .../modulerc3/openmpi/gcc/.modulerc,
.../modulerc3/openmpi/gcc/8.2.0/3.1, .../modulerc3/openmpi/gcc/9.1.0/3.1,
.../modulerc3/openmpi/gcc/9.1.0/4.0, .../modulerc3/openmpi/intel/.modulerc,
.../modulerc3/openmpi/intel/2018/3.1, .../modulerc3/openmpi/intel/2019/3.1,
.../modulerc3/openmpi/intel/2019/4.0, .../modulerc3/openmpi/pgi/.modulerc,
.../modulerc3/openmpi/pgi/18.4/3.1, .../modulerc3/openmpi/pgi/19.4/3.1,
.../modulerc3/openmpi/pgi/19.4/4.0,
.../compiler-etc-dependencies/modulerc3/pgi/18.4,
.../compiler-etc-dependencies/modulerc3/pgi/19.4,
.../compiler-etc-dependencies/modulerc3/pgi/common,
.../modulerc4/bar/.modulerc, .../modulerc4/bar/4.7/.modulerc,
.../modulerc4/bar/4.7/gcc/.modulerc,
.../modulerc4/bar/4.7/gcc/8.2.0/.modulerc,
.../modulerc4/bar/4.7/gcc/8.2.0/avx, .../modulerc4/bar/4.7/gcc/8.2.0/sse4.1,
.../modulerc4/bar/5.4/.modulerc, .../modulerc4/bar/5.4/gcc/.modulerc,
.../modulerc4/bar/5.4/gcc/9.1.0/avx, .../modulerc4/bar/5.4/gcc/9.1.0/avx2,
.../modulerc4/bar/avx/.modulerc, .../modulerc4/bar/avx/gcc/.modulerc,
.../modulerc4/bar/avx/gcc/8.2.0/4.7, .../modulerc4/bar/avx/gcc/9.1.0/5.4,
.../modulerc4/bar/avx2/.modulerc, .../modulerc4/bar/avx2/gcc/.modulerc,
.../modulerc4/bar/avx2/gcc/9.1.0/5.4,
.../compiler-etc-dependencies/modulerc4/bar/common,
.../modulerc4/bar/gcc/.modulerc, .../modulerc4/bar/gcc/8.2.0/.modulerc,
.../modulerc4/bar/gcc/8.2.0/avx/4.7, .../modulerc4/bar/gcc/8.2.0/sse4.1/4.7,
.../modulerc4/bar/gcc/9.1.0/.modulerc, .../modulerc4/bar/gcc/9.1.0/avx/5.4,
.../modulerc4/bar/gcc/9.1.0/avx2/5.4, .../modulerc4/bar/sse4.1/.modulerc,
.../modulerc4/bar/sse4.1/gcc/.modulerc,
.../modulerc4/bar/sse4.1/gcc/8.2.0/4.7, .../modulerc4/foo/.modulerc,
.../modulerc4/foo/1.1/.modulerc, .../modulerc4/foo/1.1/gcc/.modulerc,
.../modulerc4/foo/1.1/gcc/8.2.0/.modulerc,
.../modulerc4/foo/1.1/gcc/8.2.0/mvapich/.modulerc,
.../modulerc4/foo/1.1/gcc/8.2.0/mvapich/2.1,
.../modulerc4/foo/1.1/gcc/8.2.0/nompi,
.../modulerc4/foo/1.1/gcc/8.2.0/openmpi/.modulerc,
.../modulerc4/foo/1.1/gcc/8.2.0/openmpi/3.1,
.../modulerc4/foo/1.1/intel/.modulerc,
.../modulerc4/foo/1.1/intel/2018/.modulerc,
.../modulerc4/foo/1.1/intel/2018/intelmpi,
.../modulerc4/foo/1.1/intel/2018/mvapich/.modulerc,
.../modulerc4/foo/1.1/intel/2018/mvapich/2.1,
.../modulerc4/foo/1.1/intel/2018/nompi,
.../modulerc4/foo/1.1/intel/2018/openmpi/.modulerc,
.../modulerc4/foo/1.1/intel/2018/openmpi/3.1,
.../modulerc4/foo/1.1/pgi/.modulerc,
.../modulerc4/foo/1.1/pgi/18.4/.modulerc,
.../modulerc4/foo/1.1/pgi/18.4/mvapich/.modulerc,
.../modulerc4/foo/1.1/pgi/18.4/mvapich/2.1,
.../modulerc4/foo/1.1/pgi/18.4/nompi,
.../modulerc4/foo/1.1/pgi/18.4/openmpi/.modulerc,
.../modulerc4/foo/1.1/pgi/18.4/openmpi/3.1, .../modulerc4/foo/2.4/.modulerc,
.../modulerc4/foo/2.4/gcc/.modulerc,
.../modulerc4/foo/2.4/gcc/9.1.0/.modulerc,
.../modulerc4/foo/2.4/gcc/9.1.0/mvapich/.modulerc,
.../modulerc4/foo/2.4/gcc/9.1.0/mvapich/2.3.1,
.../modulerc4/foo/2.4/gcc/9.1.0/nompi,
.../modulerc4/foo/2.4/gcc/9.1.0/openmpi/.modulerc,
.../modulerc4/foo/2.4/gcc/9.1.0/openmpi/4.0,
.../modulerc4/foo/2.4/intel/.modulerc,
.../modulerc4/foo/2.4/intel/2019/.modulerc,
.../modulerc4/foo/2.4/intel/2019/intelmpi,
.../modulerc4/foo/2.4/intel/2019/mvapich/.modulerc,
.../modulerc4/foo/2.4/intel/2019/mvapich/2.3.1,
.../modulerc4/foo/2.4/intel/2019/nompi,
.../modulerc4/foo/2.4/intel/2019/openmpi/.modulerc,
.../modulerc4/foo/2.4/intel/2019/openmpi/4.0,
.../modulerc4/foo/2.4/pgi/.modulerc,
.../modulerc4/foo/2.4/pgi/19.4/.modulerc,
.../modulerc4/foo/2.4/pgi/19.4/nompi,
.../modulerc4/foo/2.4/pgi/19.4/openmpi/.modulerc,
.../modulerc4/foo/2.4/pgi/19.4/openmpi/3.1,
.../compiler-etc-dependencies/modulerc4/foo/common,
.../modulerc4/foo/gcc/.modulerc, .../modulerc4/foo/gcc/8.2.0/.modulerc,
.../modulerc4/foo/gcc/8.2.0/mvapich/.modulerc,
.../modulerc4/foo/gcc/8.2.0/mvapich/2.1/1.1,
.../modulerc4/foo/gcc/8.2.0/nompi/1.1,
.../modulerc4/foo/gcc/8.2.0/openmpi/.modulerc,
.../modulerc4/foo/gcc/8.2.0/openmpi/3.1/1.1,
.../modulerc4/foo/gcc/9.1.0/.modulerc,
.../modulerc4/foo/gcc/9.1.0/mvapich/.modulerc,
.../modulerc4/foo/gcc/9.1.0/mvapich/2.3.1/2.4,
.../modulerc4/foo/gcc/9.1.0/nompi/2.4,
.../modulerc4/foo/gcc/9.1.0/openmpi/.modulerc,
.../modulerc4/foo/gcc/9.1.0/openmpi/4.0/2.4,
.../modulerc4/foo/intel/.modulerc, .../modulerc4/foo/intel/2018/.modulerc,
.../modulerc4/foo/intel/2018/intelmpi/1.1,
.../modulerc4/foo/intel/2018/mvapich/.modulerc,
.../modulerc4/foo/intel/2018/mvapich/2.1/1.1,
.../modulerc4/foo/intel/2018/nompi/1.1,
.../modulerc4/foo/intel/2018/openmpi/.modulerc,
.../modulerc4/foo/intel/2018/openmpi/3.1/1.1,
.../modulerc4/foo/intel/2019/.modulerc,
.../modulerc4/foo/intel/2019/intelmpi/2.4,
.../modulerc4/foo/intel/2019/mvapich/.modulerc,
.../modulerc4/foo/intel/2019/mvapich/2.3.1/2.4,
.../modulerc4/foo/intel/2019/nompi/2.4,
.../modulerc4/foo/intel/2019/openmpi/.modulerc,
.../modulerc4/foo/intel/2019/openmpi/4.0/2.4,
.../modulerc4/foo/pgi/.modulerc, .../modulerc4/foo/pgi/18.4/.modulerc,
.../modulerc4/foo/pgi/18.4/mvapich/.modulerc,
.../modulerc4/foo/pgi/18.4/mvapich/2.1/1.1,
.../modulerc4/foo/pgi/18.4/nompi/1.1,
.../modulerc4/foo/pgi/18.4/openmpi/.modulerc,
.../modulerc4/foo/pgi/18.4/openmpi/3.1/1.1,
.../modulerc4/foo/pgi/19.4/.modulerc, .../modulerc4/foo/pgi/19.4/nompi/2.4,
.../modulerc4/foo/pgi/19.4/openmpi/.modulerc,
.../modulerc4/foo/pgi/19.4/openmpi/3.1/2.4,
.../compiler-etc-dependencies/modulerc4/gcc/8.2.0,
.../compiler-etc-dependencies/modulerc4/gcc/9.1.0,
.../compiler-etc-dependencies/modulerc4/gcc/common,
.../compiler-etc-dependencies/modulerc4/intel/2018,
.../compiler-etc-dependencies/modulerc4/intel/2019,
.../modulerc4/intel/common, .../modulerc4/mvapich/.modulerc,
.../modulerc4/mvapich/2.1/.modulerc,
.../modulerc4/mvapich/2.1/gcc/.modulerc,
.../modulerc4/mvapich/2.1/gcc/8.2.0, .../modulerc4/mvapich/2.1/gcc/9.1.0,
.../modulerc4/mvapich/2.1/intel/.modulerc,
.../modulerc4/mvapich/2.1/intel/2018, .../modulerc4/mvapich/2.1/intel/2019,
.../modulerc4/mvapich/2.1/pgi/.modulerc, .../modulerc4/mvapich/2.1/pgi/18.4,
.../modulerc4/mvapich/2.1/pgi/19.4, .../modulerc4/mvapich/2.3.1/.modulerc,
.../modulerc4/mvapich/2.3.1/gcc/.modulerc,
.../modulerc4/mvapich/2.3.1/gcc/9.1.0,
.../modulerc4/mvapich/2.3.1/intel/.modulerc,
.../modulerc4/mvapich/2.3.1/intel/2019,
.../modulerc4/mvapich/2.3.1/pgi/.modulerc,
.../modulerc4/mvapich/2.3.1/pgi/19.4, .../modulerc4/mvapich/common,
.../modulerc4/mvapich/gcc/.modulerc, .../modulerc4/mvapich/gcc/8.2.0/2.1,
.../modulerc4/mvapich/gcc/9.1.0/2.1, .../modulerc4/mvapich/gcc/9.1.0/2.3.1,
.../modulerc4/mvapich/intel/.modulerc, .../modulerc4/mvapich/intel/2018/2.1,
.../modulerc4/mvapich/intel/2019/2.1,
.../modulerc4/mvapich/intel/2019/2.3.1, .../modulerc4/mvapich/pgi/.modulerc,
.../modulerc4/mvapich/pgi/18.4/2.1, .../modulerc4/mvapich/pgi/19.4/2.1,
.../modulerc4/mvapich/pgi/19.4/2.3.1, .../modulerc4/openmpi/.modulerc,
.../modulerc4/openmpi/3.1/.modulerc,
.../modulerc4/openmpi/3.1/gcc/.modulerc,
.../modulerc4/openmpi/3.1/gcc/8.2.0, .../modulerc4/openmpi/3.1/gcc/9.1.0,
.../modulerc4/openmpi/3.1/intel/.modulerc,
.../modulerc4/openmpi/3.1/intel/2018, .../modulerc4/openmpi/3.1/intel/2019,
.../modulerc4/openmpi/3.1/pgi/.modulerc, .../modulerc4/openmpi/3.1/pgi/18.4,
.../modulerc4/openmpi/3.1/pgi/19.4, .../modulerc4/openmpi/4.0/.modulerc,
.../modulerc4/openmpi/4.0/gcc/.modulerc,
.../modulerc4/openmpi/4.0/gcc/9.1.0,
.../modulerc4/openmpi/4.0/intel/.modulerc,
.../modulerc4/openmpi/4.0/intel/2019,
.../modulerc4/openmpi/4.0/pgi/.modulerc, .../modulerc4/openmpi/4.0/pgi/19.4,
.../modulerc4/openmpi/common, .../modulerc4/openmpi/gcc/.modulerc,
.../modulerc4/openmpi/gcc/8.2.0/3.1, .../modulerc4/openmpi/gcc/9.1.0/3.1,
.../modulerc4/openmpi/gcc/9.1.0/4.0, .../modulerc4/openmpi/intel/.modulerc,
.../modulerc4/openmpi/intel/2018/3.1, .../modulerc4/openmpi/intel/2019/3.1,
.../modulerc4/openmpi/intel/2019/4.0, .../modulerc4/openmpi/pgi/.modulerc,
.../modulerc4/openmpi/pgi/18.4/3.1, .../modulerc4/openmpi/pgi/19.4/3.1,
.../modulerc4/openmpi/pgi/19.4/4.0,
.../compiler-etc-dependencies/modulerc4/pgi/18.4,
.../compiler-etc-dependencies/modulerc4/pgi/19.4,
.../compiler-etc-dependencies/modulerc4/pgi/common,
.../tcllib/ChildModules.tcl, .../tcllib/CompilerFromPath.tcl,
.../tcllib/CompilerUtils.tcl,
.../compiler-etc-dependencies/tcllib/GetFamVer.tcl,
.../tcllib/LoadedCompMatches.tcl, .../tcllib/LoadedModules.tcl,
.../tcllib/LoadedMpiMatches.tcl,
.../compiler-etc-dependencies/tcllib/MpiUtils.tcl,
.../tcllib/WarningUtils.tcl, .../tcllib/common_utilities.tcl,
.../compiler-etc-dependencies/tcllib/temp.tcl,
doc/source/cookbook/compiler-etc-dependencies.rst: doc: add
compiler-etc-dependencies cookbook recipe New cookbook discussing various
strategies for creating modulefiles for packages with multiple builds
depending on previously loaded compiler, MPI libraries etc. (E.g. handling
different "flavors" of packages)
2020-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/createmodule.sh: script: fix path deduplication in createmodule.sh
Fixes #316
2020-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/006-procs.exp: ts: adapt perl code which sets
_mlstatus
* modulecmd.tcl.in: Lift perl variable strictness for _mlstatus Declaration
of $_mlstatus (evaluation status variable) cannot be done as part of
generated code passed to `eval` statement. If $_mlstatus is declared or
re-declared as part of evaluated code, defined value cannot be retrieved
afterward in `module` subroutine. To be able to retrieve the value of
$_mlstatus set within generated code evaluation yet avoiding warnings of a
'use strict;' mode, temporarily disable variable strictness.
2020-02-10 Andrey Maslennikov <andrew.maslennikov@gmail.com>
* modulecmd.tcl.in: Add "my" for perl's $_mlstatus Since this variable is
always rendered it might be evaluated in a strict scope and fail with the
following error: `Global symbol "$_mlstatus" requires explicit package name
(did you forget to declare "my $_mlstatus"?)`
2020-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: ts: adapt (again) err msg and
code for fish 3.1
2020-02-17 Armin Wehrfritz <armin.wehrfritz@unsw.edu.au>
* script/createmodule.py.in: script: fix createmodule.py for python3 Fixes
#315
2020-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore: git: ignore dir used for local tests
2020-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/040-subshell.exp: ts: adapt err msg for fish 3.1
2020-02-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: pass --with-python option to compat configure
2020-02-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: use configure option
--with-python to set shebang
* Makefile: install: build and install createmodule.py in bindir
* Makefile: install: ensure all built scripts have exec perms
* INSTALL.rst, configure: install: add --with-python configure option
Enable to pass a specific Python interpreter command name or location at
configure step with `--with-python` option. Specified command name or
location should be found on build system only if building from git
repository.
* .gitignore, INSTALL.rst, Makefile, Makefile.inc.in, configure,
script/{createmodule.py => createmodule.py.in}, .../{gitlog2changelog.py =>
gitlog2changelog.py.in}: install: build createmodule.py/gitlog2changelog.py
to set shebang Adapt configure script and Makefile to detect `python`
command location and set it as shebang for `createmodule.py` and
`gitlog2changelog.py`. If python command is not found python3 then python2
are searched.
2020-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: fix configuration warnings
* .travis.yml: travis: replace a CentOS 6 test case by a CentOS 8
* Makefile, configure: install: %D git-log placeholder by not be supported
* .travis.yml, Makefile: install/travis: add rules to build rpm and test it
* testsuite/modules.00-init/005-init_ts.exp: ts: output detected tty col
number
2020-02-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-switch.exp: ts: fix msg block err tests with
regexp special chars
2020-02-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.60-initx/010-init_ts.exp: ts: output test error details
whatever verbose value
2020-02-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile, script/mt: install/script: abort auxiliary tools
download after few seconds Abort download of icdiff, nagelfar or tclsh83
after 2 timeouts of 5 seconds and record download failure for icdiff to
avoid mt script to attempt a new download tentative every time it is called.
2020-02-03 Andrey Portnoy <aportnoy@fastmail.com>
* script/add.modules.in: Fix typo in add.modules.in
2020-02-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.path1/loc_dv10/.version,
testsuite/modulefiles.path1/loc_dv10/1.1,
testsuite/modulefiles.path2/loc_dv10/.version,
testsuite/modulefiles.path2/loc_dv10/1.2,
testsuite/modules.20-locate/069-cross.exp: Fix sym version targetting mod
version with space in name Correctly handle symbolic version target
including a whitespace in their name.
2020-02-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. git archive build and createmodule script fixes in
NEWS
2020-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* script/createmodule.py, script/createmodule.sh: script: fix
createmodule.{sh,py} for script outputting text Inhibit output generated by
scripts evaluated by createmodule.sh and createmodule.py to ensure these
outputs will not get in the way when analyzing the environment change done
by the evaluated scripts. Fixes #309
* script/createmodule.sh: script: avoid shell func defs in createmodule.sh
Fix createmodule.sh script to correctly analyses environment when shell
functions are found defined in it. These shell function definitions are
skipped.
2020-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst: doc: need more tools to install from a git archive export
2020-01-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, configure, doc/Makefile,
testsuite/install.00-init/030-options.exp: install: need sphinx if dist does
not contain prebuilt doc Check at configure step if pre-built documents are
available, if found Sphinx-related makefile rules are inhibited. Otherwise
Sphinx availability is tested and documentation build is disabled if not
found.
* .gitignore, Makefile: install: no txt version of docs at dist root
* Makefile: install: no need to pre-build README file in dist
* README.md: doc: update core dev list in README
* .gitattributes, Makefile, doc/Makefile: install: no exclude of doc files
from git archive dist No more exclusion of project-related or installation
documents from git archive distribution. Enable makefile rules relative to
Sphinx documentation build even if not building from git repository. With
release distribution tarballs nothing changes as document is pre-built in
these archives. When working from a `git archive` export, these Sphinx rules
will help to build docs.
2020-01-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile: install: do not clean ml.1 on 'make clean' if pre-built
* Makefile: install: add missing ml.1 pre-built doc in dist
* .gitattributes, Makefile: install: build empty changelog if not building
from git In case Modules is built from a `git archive` distribution,
generate a bare ChangeLog file only referring to the NEWS document. Always
include gitlog2changelog.py tool in distributions, but do not run it if not
building from a git repository.
* configure: install: auto disable compat build if no src and not in git
2020-01-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes, Makefile, configure, version.inc.in: install: enable
version.inc build outside git repository Make `git archive` substitute
.version.inc.in with commit hash, date and refs. Compute MODULES_BUILD and
MODULES_BUILD_DATE from these informations in ./configure and Makefile if
not working from git repository.
2020-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. Improved Windows support in
NEWS/MIGRATING
2020-01-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: add ref to ml(1) man page in README
2020-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml: appveyor: add native windows installation test case
2020-01-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, script/TESTINSTALL.bat: script: add TESTINSTALL.bat script and
ship it in dist-win
* script/ml.cmd, script/module.cmd: script: ensure relevant exit code is set
at end of win scripts
2020-01-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, INSTALL.bat => script/INSTALL.bat, UNINSTALL.bat =>
script/UNINSTALL.bat: script: move INSTALL.bat & UNINSTALL.bat in script dir
2020-01-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.bat, UNINSTALL.bat: install: set session PATH in INSTALL/UNINSTALL
win scripts
* INSTALL.bat: install: fix location of Windows find command
2020-01-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/FAQ.rst, doc/source/index.rst: doc: reorganize documentation
index
2020-01-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/howto/using_on_windows.pdf: doc: remove now deprecated
using_on_windows howto
* Makefile, UNINSTALL.bat: install: provide a basic uninstall script for
Windows
2020-01-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/cmd.cmd, script/ml.cmd, script/module.cmd: script/init: quote path
variables in win-specific scripts To handle installation path containing
whitespaces like "C:\Program Files\Environment Modules".
* INSTALL.bat, Makefile: install: provide a basic install script for Windows
* .gitignore, Makefile, init/Makefile: install: add dist-win rule to build
win-specific dist zip ball
* Makefile, NEWS.rst, script/ml.cmd,
testsuite/install.00-init/030-options.exp: install: add ml.cmd wrapper on
Windows installation
* .gitattributes, .gitignore, INSTALL-win.rst, INSTALL-win.txt, Makefile,
doc/Makefile, doc/source/INSTALL-win.rst, doc/source/index.rst: doc:
transform INSTALL-win.txt into INSTALL-win.rst
2020-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst: doc: desc --enable-windows-support in NEWS/INSTALL
* .travis.yml, site.exp.in, testsuite/install.00-init/030-options.exp: ts:
add test to check win-specific file install
* script/module.cmd: script: simplify module.cmd batch file Execute
initialization script if MODULES_CMD environment variable is not found
defined.
* init/cmd.cmd: init: simplify cmd init file Always define Modules-specific
environment variables when running `cmd` initialization file.
* Makefile, {windows => script}/module.cmd: script: move win-specific
module.cmd file in script dir
* Makefile, init/Makefile, windows/moduleinit.cmd => init/cmd.cmd,
windows/module.cmd: init: move windows/moduleinit.cmd as init/cmd.cmd file
2019-05-21 Jacques Raphanel <dvp@crabisoft.fr>
* Makefile, Makefile.inc.in, configure: Install: add
--enable-windows-support configure option Provide new
`--enable-windows-support` option for configure to automatically install
windows batch file to bin directory during install step. This new option is
not enabled by default.
2019-05-08 Jacques Raphanel <dvp@crabisoft.fr>
* windows/module.cmd, windows/moduleinit.cmd: Add support for
portable/standalone install on Windows Update moduleinit.cmd file to set
Modules-specific environment variables according to the script directory and
the file existence for: * MODULESHOME if not defined yet and if
`..\libexec\modulecmd.tcl` exists * add `..\bin` directory to PATH if
`module.cmd` is not available from PATH and available from `..\bin` * add
`..\bin` directory to PATH if `tclsh.exe` is not available from PATH and
available from `..\bin` Automatically call `moduleinit.cmd` from
`module.cmd` if modules is not initialized yet (based on environment
variables) Fixes #272
2020-01-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: increase testsuite timeout to 25mins
* Makefile: install: use newer version of nagelfar (1.3.1)
* Makefile: install: use newer version of icdiff (1.9.5)
* .gitattributes, contrib/pre-commit: contrib: remove not-used-anymore
pre-commit script
* .gitattributes, .gitignore: git: remove refs to deleted www-specific stuff
* .appveyor.yml, .cirrus.yml, .gitattributes, .gitignore, .travis.yml,
Makefile, NEWS.rst, contrib/readme.txt,
contrib/rpm/environment-modules.spec.in, {contrib/scripts =>
script}/add.modules.in, {contrib/scripts => script}/createmodule.py,
{contrib/scripts => script}/createmodule.sh, {contrib => script}/envml,
{contrib => script}/gitlog2changelog.py, {contrib => script}/mb,
{contrib/scripts => script}/mkroot, {contrib => script}/mlprof,
{contrib/scripts => script}/modulecmd.in, {contrib => script}/mt, {contrib
=> script}/mtreview, {contrib => script}/nglfar2ccov, {contrib =>
script}/playdemo: script: move all dist. and maint. scripts in a script dir
* .gitignore, Makefile, NEWS.rst, contrib/{mb.in => mb}, contrib/{mlprof.in
=> mlprof}, contrib/mt, contrib/{mtreview.in => mtreview},
contrib/{playdemo.in => playdemo}: script: remove need to build project
management-specific tools Make mb, mlprof, mtreview and playdemo use
`/usr/bin/env tclsh` shebang rather applying there TCLSH location defined by
`./configure` process.
2019-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/NaN, testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/290-json.exp,
testsuite/modules.90-avail/070-full.exp: ts: test json output in 70/290
2019-12-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Make -j/-t/-l mutually exclusive Use of --json command
line switch automatically disables previous enablement of -t or -l. Same
goes for --terse and --long switches.
* modulecmd.tcl.in: Save err msg if json output to render them all together
Record error messages in a g_report_erralist global array list rather output
them directly in order to output all of them together in a JSON structure
right before exiting.
* modulecmd.tcl.in: Render final error message through reportError Use
regular reportError procedure to also render the last error message before
exiting. Re-enable error report prior this call in case it was previously
inhibited. Also clear all record message ids to ensure last error will be
rendered at top level.
2019-12-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Enable JSON output only on supported sub-cmd
2019-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc -j/--json in NEWS/MIGRATING
* doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc. -j/--json
option in diff/man
* modulecmd.tcl.in: Add support for JSON output on whatis/search subcmds
2019-12-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add support for JSON output on savelist subcmd
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: add -j/--json options to completion
scripts
* modulecmd.tcl.in: Add support for JSON output on list subcmd
2019-12-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add support for JSON output on avail subcmd Fixes #303
* modulecmd.tcl.in: Add --json/-j command-line switches
* modulecmd.tcl.in: Handle output report done in JSON format
* modulecmd.tcl.in: Add modfile pathname to result returned by findModules
2019-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in, testsuite/modulefiles.2/loc,
testsuite/modulefiles.2/unloc, testsuite/modules.00-init/070-command.exp,
testsuite/modules.70-maint/280-ml.exp: Fix mod subcmd abbrev match Fix
module sub-command abbreviation match to ensure passed abbreviated form
fully match sub-command, not only its minimal abbreviated form. As an
example, ``lod`` or ``loda`` do not match anymore the ``load`` sub-command,
``lo`` or ``loa`` still do.
* modulecmd.tcl.in, testsuite/modulefiles.2/f, testsuite/modulefiles.2/t,
testsuite/modules.70-maint/280-ml.exp: Filter-out all known cmd line
switches when parsing ml args To accurately determine specified module
sub-command or list of modules to load or unload.
2019-12-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc ml in NEWS/MIGRATING
2019-12-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/bash.in, init/sh.in: init: ensure ml is defined in
bash/ksh subshells
* .travis.yml: travis: disable ml on a CI case
* testsuite/example/modulerc-1.in,
testsuite/modules.70-maint/120-autoinit.exp: ts: adapt autoinit output test
for 'ml'
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_tcl,
testsuite/install.00-init/024-ml.exp,
testsuite/install.00-init/025-autoinit.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/080-args.exp: ts: test 'ml' over Modules
installation
2019-11-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/bar/0.1, testsuite/modulefiles.2/bar/0.2,
testsuite/modulefiles.2/bar/1, testsuite/modulefiles.2/bar/2,
testsuite/modulefiles.2/baz/1, testsuite/modulefiles.2/baz/2,
testsuite/modulefiles.2/foo/0.1, testsuite/modulefiles.2/foo/0.2,
testsuite/modulefiles.2/foo/1, testsuite/modulefiles.2/foo/2,
testsuite/modulefiles.2/load, testsuite/modulefiles.2/mlinmod,
testsuite/modulefiles.2/modemptyarg/swap,
testsuite/modulefiles.2/modemptyarg/swap2, testsuite/modulefiles.2/qux/1,
testsuite/modulefiles.2/qux/2,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.70-maint/280-ml.exp: ts: add test for 'ml' command
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/230-verbosity.exp: ts: set global var for cur
loaded msg header
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/048-listlongno.exp: ts: set in a common var the
no loaded msg
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/015-version.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.70-maint/220-config.exp: ts: set a common var for Modules
version report msg
2019-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add ml procedure
2019-11-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1: Adapt
parseModuleVersionSpecifier proc mlspec Add a 'mlspec' argument to the
parseModuleVersionSpecifier procedure to indicate module specification comes
or not from the 'ml' command. A slightly different processing is applied in
this case as module name may be prefixed by a '-' character when specified
over the 'ml' command to indicate this module should be unloaded. When
mlspec is enabled two lists are returned by parseModuleVersionSpecifier: one
for the list of the module to load and another for the modules to unload.
2019-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Define ml func/alias if enabled in renderAutoinit
* modulecmd.tcl.in: Add cmdMlHelp proc to output ml usage msg
* modulecmd.tcl.in: Adapt main to call 'ml' procs when ml is called cmd
2019-11-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Resolve and check module command in
parseModuleCommandName Add parseModuleCommandName procedure to handle the
name check and resolution (in case of aliased name) of the command supplied
to the module procedure.
2019-11-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in, doc/Makefile, doc/source/conf.py,
doc/source/index.rst, doc/source/ml.rst, doc/source/module.rst: doc/rpm: add
ml man page
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc ml in man/diff/INSTALL
* testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests to ml
cfg opt
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Introduce ml configuration option Add the
ability to control whether or not a ``ml`` command should be defined at
Modules initialization time. `ml` is a handy frontend to the module command:
it reduces the number of characters to type to trigger module. Enablement
is managed throught a new configuration option named `ml` (which defines
`MODULES_ML` environment variable when set). It may be enabled by default in
`modulecmd.tcl` script with option `--enable-ml` passed to `./configure`
script.
2019-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../design/default-latest-version-specifiers.rst: doc: add
default-latest-version-specifiers design notes
2020-01-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. doc improvements in NEWS
2020-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: alphabetically sort sub-cmds, opts and envar
in module.1
* doc/source/modulefile.rst: doc: alphabetically sort modulefile cmds in
modulefile.4
* doc/source/diff_v3_v4.rst: doc: apply same markup on diff doc than man
pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: split lines larger
than 78 cols in man pages
* doc/source/modulefile.rst: doc: desc. modulefile cmd version addition in
modulefile.4
2020-01-08 Colin Marquardt <cmarqu42@gmail.com>
* doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc. env var
version addition in module.1
* doc/source/module.rst: doc: desc. sub-cmds version addition in module.1
2020-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. cmd line switches version addition in
module.1
2020-01-08 Colin Marquardt <cmarqu42@gmail.com>
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup code with
double backticks in man pages
2020-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: fix missing ref
link in or between man pages
2020-01-07 Colin Marquardt <cmarqu42@gmail.com>
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup modulefile
cmd with :mfcmd: in man pages
* doc/source/modulefile.rst: doc: markup modulefile cmd sections with ..
mfcmd:: in man pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup subcmd with
:subcmd: in man pages
* doc/source/module.rst: doc: markup subcmd sections with .. subcmd:: in man
pages
2020-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/conf.py: doc: add sphinx directives/roles for sub-cmd and
modulefile cmd
2020-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/conf.py, doc/source/module.rst: doc: markup autogen files with
:file: in man pages
2020-01-06 Colin Marquardt <cmarqu42@gmail.com>
* doc/source/module.rst: doc: markup option sections with .. option:: in man
pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup cmd opt with
:option: in man pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup env var with
:envvar: in man pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup env var
sections with .. envar:: in man pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup cmds with
:command: in man pages
2020-01-05 Colin Marquardt <cmarqu42@gmail.com>
* doc/source/modulefile.rst: doc: markup man page ref with :manpage: in man
pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: markup files with
:file: in man pages
* doc/source/module.rst, doc/source/modulefile.rst: doc: fix ref link to
Locating Modulefiles section
* doc/example/modulepaths-persist-over-sudo/rc,
doc/example/test-modulefiles/modulefiles/test_dir_and_file,
doc/source/cookbook/ensure-user-qualify-modules.rst,
doc/source/cookbook/inhibit-report-info.rst,
doc/source/cookbook/log-module-commands.rst,
doc/source/cookbook/module-info-name-return-basename.rst,
doc/source/cookbook/modulepaths-persist-over-sudo.rst,
doc/source/cookbook/test-modulefiles.rst,
doc/source/cookbook/unload-firstly-loaded.rst: doc: highlight code included
in cookbook recipes Specify language directive for included Tcl script
files in cookbook recipes to get their code highlighted in resulting HTML
documents. As Pygment Tcl lexer used by Sphinx does not support the whole
Tcl syntax, scripts of modulepaths-persist-over-sudo and test-modulefiles
recipes have been adapted to enable highlighting. Change has not been
performed over the expose-procs-vars-to-modulefiles and top-priority-values
recipes as their code cannot be adapted to match lexer needs.
* doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: fix some typos and grammar across documents
2020-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: update python requirement on FreeBSD test env
2020-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.4.1
* doc/source/design/advanced-module-version-specifiers.rst: doc: clarify adv
vers spec does not support identification context
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: add tests to improve
on-the-fly proc define coverage
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp,
.../modules.70-maint/260-extended_default.exp,
.../272-adv_version_spec-range.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: add tests to improve modEq
procs coverage
* modulecmd.tcl.in: Remove useless getModuleFromVersSpec proc
2020-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/mlprof.in, doc/source/conf.py, modulecmd.tcl.in: New year (2020)
copyright mention update
* contrib/mlprof.in: contrib/mlprof: keep proc stats even if redefined
2019-12-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/loc_sym/exec2,
testsuite/modulefiles/loc_sym/exec3,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/090-memcache.exp: Cache getModules results
Introduce a memory cache for the results build up by getModules procedure.
Done in order to reuse these results if next searches are identical, which
happens in whatis/search context. As a side effect a module resolution
cannot be changed by the evaluation of a modulefile sharing same root name,
as the initial module resolution to find this modulefile to evaluation has
cached resolution result. This side effect should not however impact more
than the project testsuite as module resolution should not be defined within
a modulefile but within modulerc files.
2019-12-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use modEqStatic proc in findModules
* modulecmd.tcl.in: Introduce doesModMatchAtDepth procedure When defining
modMatchAtDepth procedure also define the doesModMatchAtDepth procedure,
similar to modMatchAtDepth but only receiving one module name as argument
and returning a boolean.
* modulecmd.tcl.in: Hardwire modMatchAtDepth procedure Redefine the
modMatchAtDepth to hardwire indepth and test argument directly at procedure
definition time to optimize performances.
* modulecmd.tcl.in: Introduce modEqStatic procedure Introduce the
modEqStatic procedure, a more static version of the modEq procedure to use
in repetitive comparison contexts like done in getModules and
modMatchAtDepth. In modEqStatic, search query is hard wired which removes
the need to call getModuleVersSpec each time the procedure is called.
Instead getModuleVersSpec is called when the modEqStatic procedure is
defined to get the hard wire elements. Doing so saves a lot of time in the
getModules routine.
2019-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/mb.in: contrib: adapt 'mb' script to profile rather bench module
Adapt `mb` script to profile modulecmd test runs rather bench them when
`profile` argument is passed to the script.
* .gitignore, Makefile, contrib/mlprof.in: contrib: add 'mlprof' script Add
the 'mlprof' script which wraps modulecmd.tcl to collect profiling
information on its execution.
2019-12-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/140-color.exp: Highlight
avail/whatis res matching adv vers spec query Improve highlighting of
module avail and whatis search result by coloring module names matching
search query expressed with the advanced version specifiers. A name@1,3 or
name@1:3 queries now highlight name/1 and name/3 strings found in search
result.
2019-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/272-adv_version_spec-range.exp: Fix avail search for
default vers when not matching query Fix module avail --default queries
when modulefile default version does not match query: select latest version
from modulefiles matching query unless implicit_default configuration is
disabled in which case no default version is returned.
* modulecmd.tcl.in, testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/271-adv_version_spec-in.exp: Fix avail queries in
no-depth mode when res is a virtual mod When a module avail query performed
in no-indepth mode and targets a virtual module, fix result to filter-out
the directory holding the virtual module from result.
* testsuite/modulefiles.indepth/deepA/1/notamod,
testsuite/modulefiles.indepth/deepA/2/1/notamod,
testsuite/modulefiles.indepth/deepA/4/.modulerc,
testsuite/modulefiles.indepth/deepA/4/1/1/notamod,
testsuite/modulefiles.indepth/deepA/4/1/2/1,
testsuite/modulefiles.indepth/deepA/4/1/2/3,
testsuite/modulefiles.indepth/deepA/4/1/3/.modulerc,
testsuite/modulefiles.indepth/deepA/4/1/3/1,
testsuite/modulefiles.indepth/deepA/4/1/3/2,
testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp,
testsuite/modules.70-maint/272-adv_version_spec-range.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: add tests for avail dir
and filtering fixes
* modulecmd.tcl.in: Fix avail queries when dirs in result in no-indepth mode
In case a module avail query performed in a no-indepth mode with --latest/-L
or --default/-d flags either enabled or disabled, fix query processing to
return directory elements if they are part of result.
2019-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix -L/-d queries when upper dir not matching query In
case module avail query does not match a directory but only its contained
elements (for instance `module av mod/7` matches mod/7.1 and mod/7.2 but not
mod/), fix query processing to correctly return latest or default element in
case --latest/-L or --default/-d flags are set. Add an ext_filter argument
to getModules procedure to indicate that directories of elements matching
query should be part of the result list even if these directories does not
match query. This ext_filter argument is enabled by listModules procedure
when latest or default filters are enabled. These directories are used when
filtering is enabled to determine what element should be displayed.
2019-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: no more need for md5sha1sum pkg on OSX md5sum is now
provided by coreutils
2019-12-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../design/advanced-module-version-specifiers.rst,
doc/source/design/extended-default.rst,
doc/source/design/insensitive-case.rst,
doc/source/design/module-selection-contexts.rst: doc: fix rst bullet lists
in design docs Conform to RST docutils standard [1] that express bullet
lists and nested bullet lists should be separated by a blank line before and
after them. Fixes #306. [1] https://docutils.sourceforge.io/docs/ref/rst/r
estructuredtext.html#bullet-lists
2019-12-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: fix spec file for el8 build
Remove Modules compat version build dependency on tclx-devel package as TclX
is not provided anymore in el8. Convert shebang of createmodule.py tool
from python to python3.
2019-11-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: explicitly install wget on osx to fix libssl dep
issue
2019-11-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: add anchor for each module sub-cmd and env var
* doc/source/modulefile.rst: doc: add anchor for each modulefile command
2019-11-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/advvers10/1, testsuite/modulefiles.2/advvers10/2,
testsuite/modulefiles.2/advvers10/3, testsuite/modulefiles.2/advvers10/4,
testsuite/modulefiles.2/advvers10/5, testsuite/modulefiles.2/advvers10/6,
testsuite/modulefiles.2/advvers10/7, testsuite/modulefiles.2/advvers10/8,
testsuite/modulefiles.2/advvers8/1, testsuite/modulefiles.2/advvers8/2,
testsuite/modulefiles.2/advvers8/3,
testsuite/modulefiles.2/advvers9/.modulerc,
testsuite/modulefiles.2/advvers9/1, testsuite/modulefiles.2/advvers9/2,
testsuite/modulefiles.2/advvers9/3, testsuite/modulefiles.deps/haa,
testsuite/modulefiles.deps/hab, testsuite/modulefiles.deps/hac/.modulerc,
testsuite/modulefiles.deps/hac/1, testsuite/modulefiles.deps/hac/2,
testsuite/modulefiles.deps/had, testsuite/modulefiles.deps/hae,
testsuite/modules.50-cmds/378-sametarget.exp,
.../modules.70-maint/271-adv_version_spec-in.exp,
.../272-adv_version_spec-range.exp: ts: check load/prereq handle loaded
non-default the same Add test to check dependency resolution applies the
same against a non default version loaded whether module load/prereq is used
to declared and whatever the auto_handling module enabled. Handling was
different between module load and prereq prior
c50e2ba7d3a03ecd2baa933a5ce8991835f3feb1. Which fixes #228. Added tests
also check behavior against advanced module version specifier.
2019-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, doc/demo/Makefile: doc/demo: add Makefile to build imgs from
session cast
* .gitignore, Makefile, contrib/playdemo.in: contrib: add 'playdemo' script
2019-11-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/demo/sc19/01welcome.cast, doc/demo/sc19/02config.cast,
doc/demo/sc19/03auto_handling.cast, doc/demo/sc19/04icase.cast,
doc/demo/sc19/05extended_default.cast,
doc/demo/sc19/06advanced_version_spec.cast, doc/demo/sc19/07thanks.cast,
doc/demo/sc19/script, doc/example/sc19/modulefiles/appA/1.0,
doc/example/sc19/modulefiles/appA/2.0,
doc/example/sc19/modulefiles/appB/1.0,
doc/example/sc19/modulefiles/appC/.modulerc,
doc/example/sc19/modulefiles/appC/1.0,
doc/example/sc19/modulefiles/appC/2.0,
doc/example/sc19/modulefiles/appC/2.2.10,
doc/example/sc19/modulefiles/appC/2.2.2,
doc/example/sc19/modulefiles/appC/2.4,
doc/example/sc19/modulefiles/appC/3.6,
doc/example/sc19/modulefiles/appD/1.2,
doc/example/sc19/modulefiles/appD/2.1,
doc/example/sc19/modulefiles/libX/1.0,
doc/example/sc19/modulefiles/libX/2.0,
doc/example/sc19/modulefiles/libY/.modulerc,
doc/example/sc19/modulefiles/libY/1.0,
doc/example/sc19/modulefiles/libY/2.0,
doc/example/sc19/modulefiles/toolchain/a,
doc/example/sc19/modulefiles/toolchain/b: doc: add sc19 demo
2019-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Skip mod loading msg if mod already loaded Skip output
of module loading message if module is already loaded.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp: Enclose in
quote dep spec in error/warning mesg Fix error and warning messages
relative to dependency management to enclose dependency specification in
single quotes to clearly distinguish specification from each other.
2019-11-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.4.0
2019-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. conflict fix/design notes/MODULESHOME in NEWS
* doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc. advanced_version_spec in diff/man
* INSTALL.rst, configure: doc: desc. advanced_version_spec in
configure/INSTALL
* MIGRATING.rst, NEWS.rst: doc: desc. advanced_version_spec in NEWS
2019-11-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. advanced_version_spec in MIGRATING
2019-11-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: fix missing -i/--icase in completion
scripts
* testsuite/example/modulerc-1.in,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt tests to new config
option home
* INSTALL.rst, Makefile, Makefile.inc.in, configure, doc/source/module.rst,
init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in, site.exp.in: Introduce home
configuration option Make MODULESHOME environment variable controllable
through the `config` sub-command with `home` configuration option. A
`--with-moduleshome` argument is also added to the ./configure script to set
specific default value for this option at installation time. Fixes #292
2019-11-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../design/advanced-module-version-specifiers.rst: doc: refine again
advanced_version_spec design
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/020-module.exp,
testsuite/modulefiles.2/advvers6/3.0, testsuite/modulefiles.2/advvers6/3.1,
testsuite/modulefiles.2/advvers6/3.2, .../272-adv_version_spec-range.exp:
ts: additionnal adv_vers_spec in 70/272 and install ts
* .cirrus.yml: cirrus: install openmp to satisfy R needs
2019-11-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/advvers6/1.2,
testsuite/modulefiles.2/advvers6/1.3, testsuite/modulefiles.2/advvers6/1.4,
testsuite/modulefiles.2/advvers6/1.5.1,
testsuite/modulefiles.2/advvers6/1.5.2,
testsuite/modulefiles.2/advvers6/1.6, testsuite/modulefiles.2/advvers6/1.7,
testsuite/modulefiles.2/advvers6/1.8, testsuite/modulefiles.2/advvers6/2.0,
testsuite/modulefiles.2/advvers6/2.1,
testsuite/modulefiles.2/advvers7/.modulerc,
testsuite/modulefiles.2/advvers7/0.9, testsuite/modulefiles.2/advvers7/1.0,
testsuite/modulefiles.2/advvers7/1.1, testsuite/modulefiles.2/advvers7/1.2,
testsuite/modulefiles.2/advvers7/1.3.1,
testsuite/modulefiles.2/advvers7/1.3.2,
testsuite/modulefiles.2/advvers7/2.0, testsuite/modulefiles.2/advvers7/2.1,
testsuite/modulefiles.2/advvers7/2.2, testsuite/modulefiles.2/advvers7/3.0,
testsuite/modulefiles.2/advvers7/3.1, testsuite/modulefiles.2/advvers7/3.2,
testsuite/modulefiles.2/advvers7/3.3, testsuite/modulefiles.2/advvers7/4.0,
testsuite/modulefiles.2/advvers7/4.1, testsuite/modulefiles.2/advvers7/4.2,
testsuite/modulefiles.2/advvers7/5.0, testsuite/modulefiles.2/advvers7/5.1,
testsuite/modulefiles.2/advvers7/5.2, testsuite/modulefiles.2/advvers7/5.3,
testsuite/modulefiles.2/advvers7/6.0, testsuite/modulefiles.2/advvers7/6.1,
testsuite/modulefiles.2/advvers7/6.2, testsuite/modulefiles.2/advvers7/6.3,
testsuite/modulefiles.2/advvers7/6.4, testsuite/modulefiles.2/advvers7/6.5,
testsuite/modulefiles.2/advvers7/6.6, testsuite/modulefiles.2/advvers7/6.7,
testsuite/modulefiles.2/advvers7/7.0,
testsuite/modulefiles.2/advvers7/8.1.1,
testsuite/modulefiles.2/advvers7/8.1.2,
testsuite/modulefiles.2/advvers7/8.2.1,
testsuite/modulefiles.2/advvers7/8.2.2,
testsuite/modulefiles.2/advvers7/8.3.1,
testsuite/modulefiles.2/advvers7/8.3.2,
testsuite/modulefiles.2/advvers7/8.4.1,
testsuite/modulefiles.2/advvers7/8.4.2,
testsuite/modulefiles.2/advvers7/8.5.1,
testsuite/modulefiles.2/advvers7/8.5.2,
testsuite/modulefiles.2/advvers7/9.0,
testsuite/modules.00-init/006-procs.exp, .../272-adv_version_spec-range.exp:
ts: vers range spec compat check mod ctx tests
2019-11-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../272-adv_version_spec-range.exp: ts: vers range spec select one mod ctx
tests
2019-11-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Serialize version range specifier in
MODULES_{LMPREREQ,LMCONFLICT} When saving current loaded prereq and
conflict through MODULES_LMPREREQ and MODULES_LMCONFLICT environment
variable, translate version range specifier `:` into `<` character to
distinguish it from path separator character.
* testsuite/modulefiles.2/extdfl7/.modulerc,
testsuite/modulefiles.2/extdfl7/10a, testsuite/modulefiles.2/extdfl7/10foo,
testsuite/modulefiles.2/extdfl7/10g, testsuite/modulefiles.2/extdfl8/1.3.1,
testsuite/modulefiles.2/extdfl8/1.3.7, testsuite/modulefiles.2/extdfl8/1.33,
testsuite/modulefiles.2/extdfl8/1.4.5,
testsuite/modules.00-init/005-init_ts.exp,
.../272-adv_version_spec-range.exp: ts: vers range spec basic and
search-specific ctx tests
2019-11-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce range of version in mod version spec A range
of version may be specified after '@' with the help of ':' character to
express *greater or equal* (ex: `1.2:`), *lower or equal* (ex: `:1.2`) or
*between or equal* (ex: `1.1:1.2`) conditions. Adapt procedures that parse
module version specifier or compare module version. Error is raised if
version specified for range are not versions or higher version is lower than
lower version. Non 'xdigit' character in higher part of version number is
considered as a non version number. It avoids symbols like `default`, `new`
and so on to get in the version range way.
2019-11-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/270-adv_version_spec.exp,
.../modules.70-maint/271-adv_version_spec-in.exp: ts: skip icase tests if
underlying fs is case-insensitive
2019-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/378-sametarget.exp: One
conflict statement may match multiple loaded mod Conflict defined with a
generic module name or an advanced version specifier may match multiple
loaded modules (generally in case multiple loaded modules share same root
name). Loaded environment analysis has been fixed to bound conflict to all
loaded modules matching it. As a result the dependent reload mechanism is
not triggered when one loaded module matching conflict is removed if another
loaded module still match the conflict.
* testsuite/modulefiles.2/advvers4/1.1,
testsuite/modulefiles.2/advvers4/1.2, testsuite/modulefiles.2/advvers4/1.3,
testsuite/modulefiles.2/advvers4/1.4,
testsuite/modulefiles.2/advvers4/1.5.1,
testsuite/modulefiles.2/advvers4/1.5.2,
testsuite/modulefiles.2/advvers4/1.6, testsuite/modulefiles.2/advvers4/1.7,
testsuite/modulefiles.2/advvers4/1.8, testsuite/modulefiles.2/advvers4/2.0,
testsuite/modulefiles.2/advvers4/2.1,
testsuite/modulefiles.2/advvers5/.modulerc,
testsuite/modulefiles.2/advvers5/0.9, testsuite/modulefiles.2/advvers5/1.0,
testsuite/modulefiles.2/advvers5/1.1, testsuite/modulefiles.2/advvers5/1.2,
testsuite/modulefiles.2/advvers5/1.3.1,
testsuite/modulefiles.2/advvers5/1.3.2,
testsuite/modulefiles.2/advvers5/2.0, testsuite/modulefiles.2/advvers5/2.1,
testsuite/modulefiles.2/advvers5/2.2, testsuite/modulefiles.2/advvers5/3.0,
testsuite/modulefiles.2/advvers5/3.1, testsuite/modulefiles.2/advvers5/3.2,
testsuite/modulefiles.2/advvers5/3.3, testsuite/modulefiles.2/advvers5/4.0,
testsuite/modulefiles.2/advvers5/4.1, testsuite/modulefiles.2/advvers5/4.2,
testsuite/modulefiles.2/advvers5/5.0, testsuite/modulefiles.2/advvers5/5.1,
testsuite/modulefiles.2/advvers5/5.2, testsuite/modulefiles.2/advvers5/5.3,
testsuite/modulefiles.2/advvers5/6.0, testsuite/modulefiles.2/advvers5/6.1,
testsuite/modulefiles.2/advvers5/6.2, testsuite/modulefiles.2/advvers5/6.3,
testsuite/modulefiles.2/advvers5/6.4, testsuite/modulefiles.2/advvers5/6.5,
testsuite/modulefiles.2/advvers5/6.6, testsuite/modulefiles.2/advvers5/6.7,
testsuite/modulefiles.2/advvers5/7.0,
testsuite/modulefiles.2/advvers5/8.1.1,
testsuite/modulefiles.2/advvers5/8.1.2,
testsuite/modulefiles.2/advvers5/8.2.1,
testsuite/modulefiles.2/advvers5/8.2.2,
testsuite/modulefiles.2/advvers5/8.3.1,
testsuite/modulefiles.2/advvers5/8.3.2,
testsuite/modulefiles.2/advvers5/8.4.1,
testsuite/modulefiles.2/advvers5/8.4.2,
testsuite/modulefiles.2/advvers5/8.5.1,
testsuite/modulefiles.2/advvers5/8.5.2,
testsuite/modulefiles.2/advvers5/9.0,
.../modules.70-maint/271-adv_version_spec-in.exp: ts: vers list spec compat
check mod ctx tests
2019-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record mod vers spec with setModuleVersSpec proc
* doc/source/design/insensitive-case.rst: doc: desc avail/load corner case
for icase design
* .../design/advanced-module-version-specifiers.rst: doc: refine
advanced_version_spec design
* testsuite/modulefiles.2/extdfl/.1.3.3,
.../modules.70-maint/271-adv_version_spec-in.exp: ts: vers list spec select
one mod ctx tests
2019-10-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/ICASE3/1.1, testsuite/modulefiles.2/ICASE3/VERS.1,
testsuite/modulefiles.2/ICASE3/vers.1, testsuite/modulefiles.2/advvers@2.2,
testsuite/modulefiles.2/iCaSe3/1.3, testsuite/modulefiles.2/iCaSe3/1.4,
testsuite/modulefiles.2/icase3/1.2, testsuite/modulefiles.2/nocase/deep/2,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/271-adv_version_spec-in.exp: ts: vers list spec basic
and search-specific ctx tests
2019-10-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/con1/1.1,
testsuite/modulefiles.deps/con1/1.2, testsuite/modulefiles.deps/con2/2.1,
testsuite/modulefiles.deps/con2/2.2, testsuite/modulefiles.deps/con2/2.3,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp: Handle complex mod vers spec
in isModuleEvaluated Rework whole isModuleEvaluated procedure to check all
names of loaded or loadind module attempt against module version specifiers
passed as argument. Add the 'exclmod' argument to the procedure to exclude
from tested list the currently evaluated module: avoid this way detecting
self on reflexive conflict definition. As a result just loaded or currently
loading conflicting modules are better detected when conflict is expressed
against an alias name or a module generic name.
* modulecmd.tcl.in: Rename arrayKeyMatch into getEqArrayKey As procedure
returns key string, not a boolean value.
* modulecmd.tcl.in: Rename arrayKeyEq into getArrayKey And remove call to
module version specifier translation: procedure only receive regular
module/version specification.
* modulecmd.tcl.in: Improve extdfl check in modVersCmp
2019-10-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, .../modules.70-maint/260-extended_default.exp: Adapt mod
ext dfl check in modEq if contains *? When query's module contains globbing
wildcard characters (? or *) adapt extended default match test to use an
escaped version of module designation when modEq is called for an equal
test.
2019-10-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/030-defvers.exp,
.../modules.70-maint/270-adv_version_spec.exp: Makes arrayKeyMatch rely on
modEq Call modEq to check mod name passed matches array elements, so
arrayKeyMatch procedure does not need to be specialized to match icase and
extended_default setup, which is now deleguated to modEq.
* modulecmd.tcl.in: Makes modMatchAtDepth rely on modEq Call modEq to check
mod name passed in modMatchAtDepth, so this procedure does not need to
handle the icase check which is deleguated to modEq.
* modulecmd.tcl.in: Fix modEq for empty mod name Test empty module name
against simple module name/vers test branch.
2019-10-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add support for contains test in modEq By setting test
argument of modEq procedure to 'matchin', perform contains-style match test.
2019-10-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Adapt modname check in modEq if contains *? When
query's module name contains globbing wildcard characters (? or *) adapt
test to check module names match and then extract module version in modEq.
* testsuite/modulefiles.2/e+t.fl/1.3.1,
testsuite/modulefiles.2/e+t.fl/1.3.7, testsuite/modulefiles.2/e+t.fl/1.4.5,
testsuite/modules.70-maint/260-extended_default.exp,
testsuite/modules.70-maint/270-adv_version_spec.exp: ts: test wildcard chars
in mod name on 70/{260,270}
2019-10-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Handle version list spec on modEq Adapt modEq procedure
to handle version list specifier (ex: @1,2). Introduce modVersCmp procedure
to handle version comparison.
* modulecmd.tcl.in: Introduce list of version in mod version spec A list of
version may be specified after '@' by joining the multiple versions to set
with the ',' character (ex: @1.2,1.3). Parse this syntax and store version
specification information in parseModuleVersionSpecifier procedure and adapt
procedures that handle the version specification information like
getOneModuleFromVersSpec and getAllModuleFromVersSpec.
* modulecmd.tcl.in: Rework storage of mod version specifier Change internal
storage structure to hold module version specifier with 4 fields: complete
module name version, module name, version comparison set, and module
version.
* modulecmd.tcl.in: Rework getModuleVersSpec into getModuleFromVersSpec
Change getModuleVersSpec procedure into getModuleFromVersSpec to extract
just specified module (name and version) from module name and version
specifier.
2019-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Get one mod name from spec with getOneModuleFromVersSpec
Introduce getOneModuleFromVersSpec procedure to extract one module name from
module name version specification.
* modulecmd.tcl.in: Test all mod mentionned in spec on isModuleSpecHidden
Add a getAllModulesFromVersSpec procedure that parses module name version
specification to return a list of all the module mentionned in
specification. Use this new helper procedure in isModuleSpecHidden to check
if one module from returned list is an hidden module.
* modulecmd.tcl.in: Adapt modEq to include modMatch test Refactor modEq
procedure to include modMatch-kind test.
* modulecmd.tcl.in: Define mod cmp procs in getModules instead findModules
Define the module name and version comparison procedures at the beginning of
the getModules procedure so it is not needed to define the modMatch
procedure in findModules as findModules is only called by getModules.
2019-10-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Adapt modEq to include modStartEq test Add a 'test'
argument to modEq procedure to only check if passed module name matches
pattern on pattern length when it equals to 'eqstart'. So modStartEq
procedure is not needed anymore, calls are replaced with [modEq $pattern
$mod eqstart].
* modulecmd.tcl.in: Makes modStartNb rely on modStartEq Call modStartEq to
check full name passed in modStartNb, so modStartNb does not need to handle
the extended_default check which is then deleguated to modStartEq.
Introduce getModuleNameFromVersSpec to extract module name from module name
version specification.
2019-10-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
.../modules.70-maint/270-adv_version_spec.exp: Module version specifier
cannot contain / char No deep version specification to ease version
comparison.
* modulecmd.tcl.in: Translate vers spec directly in arrayKeyEq Pass the
module version specification toward arrayKeyEq to translate it there for
module matching.
* modulecmd.tcl.in: Translate vers spec directly in modStartNb Pass the
module version specification toward modStartNb to translate it there for
module matching.
2019-10-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Translate vers spec directly in modStartEq Pass the
module version specification toward modStartEq to translate it there for
module matching.
* modulecmd.tcl.in: Translate vers spec directly in arrayKeyMatch Pass the
module version specification toward arrayKeyMatch to translate it there for
module matching.
* modulecmd.tcl.in: Get one module name from vers spec in getPathToModule
Translate module name version specification in getPathToModule to extract
one module version name from it. Use that to determine the module name root
to find.
* modulecmd.tcl.in: Get one module name from vers spec in listModules
Translate module name version specification in listModules to extract one
module version name from it. Use that to determine the no-indepth search
properties.
* modulecmd.tcl.in: Get one module name from vers spec in getModules
Translate module name version specification in getModules to extract one
module version name from it. Use that to determine the module name root to
find and no-indepth search properties.
* modulecmd.tcl.in: Translate vers spec directly in modMatch Pass the
module version specification toward modMatch procedure to translate it there
for module matching. modMatch procedure is adapted to apply the translation
only if a 'trspec' argument is set to 1. A pattern suffix 'psuf' argument
is also added to give the ability to append a suffix string to translated
module name version.
* modulecmd.tcl.in: Add isModuleSpecHidden to translate vers spec Introduce
the isModuleSpecHidden procedure to pass it the module version specification
which is there translated to check if corresponding module names are hidden
or not.
* modulecmd.tcl.in: Translate vers spec directly in modMatchAtDepth Pass
the module version specification toward modMatchAtDepth to translate it
there for module matching. Also pass the 'contains' mode toward this
procedure to adapt module name version once translated.
2019-10-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.2/extdfl2/.modulerc,
testsuite/modulefiles.2/extdfl7/.modulerc,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/260-extended_default.exp,
.../modules.70-maint/270-adv_version_spec.exp: Adapt modEq proc to icase and
extended_default config
2019-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/270-adv_version_spec.exp: No
need to translate mod vers spec in conflict proc Get error message
reflecting way conflict is defined.
* modulecmd.tcl.in, .../modules.70-maint/270-adv_version_spec.exp: Introduce
a modEq proc for cmdModuleSearch/getModules Check 2 module names are equal
with a dedicated proc called 'modEq' that translates one name argument
against recorded module version specifiers. Use this procedure in
cmdModuleSearch, thus this procedure does not need to translate module name
it receives against recorded module version specifiers. Also use modEq for
a comparison in getModules procedure.
2019-10-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/.modulerc, testsuite/modulefiles.2/advvers/1.3,
testsuite/modulefiles.2/advvers/1.4, testsuite/modulefiles.2/advvers/1.5,
testsuite/modulefiles.2/advvers/1.6, testsuite/modulefiles.2/advvers/1.7,
testsuite/modulefiles.2/advvers/1.8, testsuite/modulefiles.2/advvers2/1.0,
testsuite/modulefiles.2/advvers2/1.1, testsuite/modulefiles.2/advvers2/1.2,
testsuite/modulefiles.2/advvers2/1.3, testsuite/modulefiles.2/advvers2/2.0,
testsuite/modulefiles.2/advvers2/2.1, testsuite/modulefiles.2/advvers2/2.2,
testsuite/modulefiles.2/advvers2/3.0, testsuite/modulefiles.2/advvers2/3.1,
testsuite/modulefiles.2/advvers2/3.2, testsuite/modulefiles.2/advvers2/3.3,
testsuite/modulefiles.2/advvers2/4.0, testsuite/modulefiles.2/advvers2/4.1,
testsuite/modulefiles.2/advvers2/4.2, testsuite/modulefiles.2/advvers2/5.0,
testsuite/modulefiles.2/advvers2/5.1, testsuite/modulefiles.2/advvers2/5.2,
testsuite/modulefiles.2/advvers2/5.3, testsuite/modulefiles.2/advvers2/6.0,
testsuite/modulefiles.2/advvers2/6.1, testsuite/modulefiles.2/advvers2/6.2,
testsuite/modulefiles.2/advvers2/6.3, testsuite/modulefiles.2/advvers2/6.4,
testsuite/modulefiles.2/advvers2/6.5, testsuite/modulefiles.2/advvers2/6.6,
testsuite/modulefiles.2/advvers2/6.7, testsuite/modulefiles.2/advvers2/7.0,
testsuite/modulefiles.2/advvers2/8.1.1,
testsuite/modulefiles.2/advvers2/8.1.2,
testsuite/modulefiles.2/advvers2/8.2.1,
testsuite/modulefiles.2/advvers2/8.2.2,
testsuite/modulefiles.2/advvers2/8.3.1,
testsuite/modulefiles.2/advvers2/8.3.2,
testsuite/modulefiles.2/advvers2/8.4.1,
testsuite/modulefiles.2/advvers2/8.4.2,
testsuite/modulefiles.2/advvers2/8.5.1,
testsuite/modulefiles.2/advvers2/8.5.2,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.70-maint/240-icase.exp,
.../modules.70-maint/270-adv_version_spec.exp: ts: add adv vers spec tests
for check compat mod ctx
2019-10-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/advvers/1.2,
.../modules.70-maint/270-adv_version_spec.exp: ts: add adv vers spec tests
for select one mod ctx
2019-10-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/advvers/deep/1/1.2,
testsuite/modulefiles.2/advvers@2.1, testsuite/modulefiles.2/extdfl/.1.3.4,
testsuite/modules.00-init/005-init_ts.exp,
.../modules.70-maint/270-adv_version_spec.exp: ts: add basic adv vers spec
test + search-specific ctx
2019-10-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fetch translated vers spec in 'check compat' contexts
* modulecmd.tcl.in: Fetch translated vers spec in 'select one' contexts
* modulecmd.tcl.in: Fetch translated vers spec in 'return all' contexts
2019-10-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Parse mod vers specifier where mod could be specified
Introduce parseModuleVersionSpecifier procedure to parse module
specification and extract from it module name and version specifier. Call
this new procedure in all procedures receiving module specification: module,
conflict, prereq and is-loaded.
* modulecmd.tcl.in: Rework error mngt in module proc Do not catch error in
procedure, let it flow upstream and catch it at top level.
2019-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts/travis: adapt existing tests
to advanced_version_spec cfg opt
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Introduce advanced_version_spec configuration
option Add the advanced_version_spec configuration option that will control
the activation of advanced module version specifier syntax.
2019-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../design/advanced-module-version-specifiers.rst: doc: add
advanced-module-version-specifiers design spec
2019-11-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc extended_default in NEWS/MIGRATING
2019-11-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: mention module-info-name-return-basename recipe add in NEWS
2019-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/design/extended-default.rst,
doc/source/module.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
.../modules.70-maint/260-extended_default.exp: Remove '-' from list of ext
dfl separator char Remove the '-' character from the list of extended
default separator characters, as it is not feasible to determine in all
cases the highest version specified after this character (to determine an
implicit default). This removal means that only '.' is taken into account as
extended default separator.
2019-09-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Apply extended_default to compatibility check context
2019-09-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework def of modStartNb alternatives Expand procedure
alternatives as individual procedures. The one to activate is renamed
'modStartNb' by defineModStartNbProc.
* modulecmd.tcl.in: Rework def of modStartEq alternatives Expand procedure
alternatives as individual procedures. The one to activate is renamed
'modStartEq' by defineModStartEqProc.
2019-09-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/extdfl/.modulerc,
testsuite/modulefiles.2/extdfl/1.0.0-alpha.1,
testsuite/modulefiles.2/extdfl/1.0.0-alpha.beta,
testsuite/modulefiles.2/extdfl/1.0.0-beta,
testsuite/modulefiles.2/extdfl/1.0.2, testsuite/modulefiles.2/extdfl/1.1.0,
testsuite/modulefiles.2/extdfl/1.1.0-beta,
testsuite/modulefiles.2/extdfl/1.2.10, testsuite/modulefiles.2/extdfl/1.2.3,
testsuite/modulefiles.2/extdfl/1.3.1, testsuite/modulefiles.2/extdfl/1.3.7,
testsuite/modulefiles.2/extdfl/1.4.5, testsuite/modulefiles.2/extdfl/2.0,
testsuite/modulefiles.2/extdfl/2.0.1,
testsuite/modulefiles.2/extdfl2/2.rc.1,
testsuite/modulefiles.2/extdfl2/2.rc.2,
testsuite/modulefiles.2/extdfl2/3.0.0,
testsuite/modulefiles.2/extdfl2/3.0.15,
testsuite/modulefiles.2/extdfl2/3.0.2,
testsuite/modulefiles.2/extdfl2/3.010.1,
testsuite/modulefiles.2/extdfl2/3.09.3,
testsuite/modulefiles.2/extdfl2/3.1.3,
testsuite/modulefiles.2/extdfl2/3.1.7,
testsuite/modulefiles.2/extdfl2/3.10.2,
testsuite/modulefiles.2/extdfl2/3.9.2,
testsuite/modulefiles.2/extdfl3/.modulerc,
testsuite/modulefiles.2/extdfl3/1.0, testsuite/modulefiles.2/extdfl3/1.1/3,
testsuite/modulefiles.2/extdfl3/1.3/4,
testsuite/modulefiles.2/extdfl6/conflict,
testsuite/modulefiles.2/extdfl6/conflict2,
testsuite/modulefiles.2/extdfl6/conflicta,
testsuite/modulefiles.2/extdfl6/conflicts,
testsuite/modulefiles.2/extdfl6/info, testsuite/modulefiles.2/extdfl6/info2,
testsuite/modulefiles.2/extdfl6/isloaded,
testsuite/modulefiles.2/extdfl6/isloaded2,
testsuite/modulefiles.2/extdfl6/load, testsuite/modulefiles.2/extdfl6/load2,
testsuite/modulefiles.2/extdfl6/load3,
testsuite/modulefiles.2/extdfl6/prereq,
testsuite/modulefiles.2/extdfl6/prereq2,
testsuite/modulefiles.2/extdfl6/prereqc,
testsuite/modulefiles.2/extdfl6/prereqi,
testsuite/modulefiles.2/extdfl6/prereqi2,
testsuite/modulefiles.2/extdfl6/unload,
testsuite/modulefiles.2/extdfl6/unload2,
testsuite/modulefiles.2/extdfl7/.modulerc,
testsuite/modulefiles.2/extdfl7/1.1, testsuite/modulefiles.2/extdfl7/2.1,
testsuite/modulefiles.2/extdfl7/2.10, testsuite/modulefiles.2/extdfl7/3.1,
testsuite/modulefiles.2/extdfl7/4.1, testsuite/modulefiles.2/extdfl7/5.1,
testsuite/modulefiles.2/extdfl7/6.1, testsuite/modulefiles.2/extdfl7/7.0,
testsuite/modulefiles.2/extdfl7/7.1, testsuite/modulefiles.2/extdflb.4.0,
testsuite/modulefiles.2/extdflb.4.1/1, testsuite/modulefiles.2/extdflc-4/1,
testsuite/modulefiles.2/extdflc-5/1,
.../modules.70-maint/260-extended_default.exp: ts: cover extended_default
with tests
2019-09-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework def of arrayKeyMatch alternatives Expand
procedure alternatives as individual procedures. The one to activate is
renamed 'arrayKeyMatch' by defineArrayKeyMatchProc.
* modulecmd.tcl.in: Rework def of modMatch alternatives Expand procedure
alternatives as individual procedures. The one to activate is renamed
'modMatch' by defineModMatchProc.
* modulecmd.tcl.in: Rework def of modMatchAtDepth alternatives Expand
procedure alternatives as individual procedures. The one to activate is
renamed 'modMatchAtDepth' by defineModMatchAtDepthProc.
* modulecmd.tcl.in: Apply extended_default to return all matching mod
context Only update modMatch. No need to update modMatchAtDepth procedure
to take into account extended_default, as all match tests going through this
procedures are already appended with a wildcard character (*).
2019-09-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/extended-default.rst: doc: refine extended_default
design
2019-09-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Apply extended_default to single module selection
context
2019-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc extended_default in man/diff/INSTALL
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt existing tests to
extended_default cfg opt
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Introduce extended_default configuration
option Add the ability to select a module when its version is partially
specified. Enable this behavior through a new configuration option named
`extended_default` (which defines `MODULES_EXTENDED_DEFAULT` environment
variable when set). When extended_default mechanism is enabled a module
version may be specified by its starting portion, part separated from the
rest of the version string by a `.` or `-` character. When multiple
versions match partial version specified and only one module should be
returned, default version (implicit or explicit) among matches is returned.
In case `implicit_default` is disabled and no explicit default is found
among matches, an error is returned. Mechanism may be enabled by default in
`modulecmd.tcl` script with option `--enable-extended-default` passed to
`./configure` script.
2019-11-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: add in NEWS issue ref and contrib. name for icase feature
2019-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/250-nan.exp: ts: ensure icase is disabled for
70/250 tests
2019-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/insensitive-case.rst: doc: desc corner cases in icase
design
2019-09-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/152-module-emptyarg.exp: ts: adapt 50/152 tests
due to whatis changes in ts/modpath.2
* modulecmd.tcl.in: Introduce arrayKeyEq help proc Search array keys for an
insensitive case match if icase mode is enabled and no sensitive case match
is found.
2019-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Resolve vers or alias specified with different case
When insensitive case match is enabled for module version specification to
select one module context, if no case sensitive exact match is found when
trying to resolve a symbolic version or a module alias, then select highest
case insensitive matching version if any. This change enables a case
insensitive match only for direct alias or symbol resolution. In case an
alias or symbolic version icase matches another alias or symbolic version
which in turn also icase matches a modulefile, resolution will currently
fail.
* modulecmd.tcl.in: Define modStartNb proc on the fly Make
getLoadedWithClosestName procedure relies on a modStartNb procedure to
compare how many starting parts between both names passed as argument are
equivalent. This modStartNb is defined on the fly by the
defineModStartNbProc procedure to adapt its code to the current icase
enabled mode.
2019-09-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Define modStartEq proc on the fly Make
doesModuleMatchesName, doesLoadingModuleMatchesName and
getAllModuleResolvedName procedures rely on a modStartEq procedure to
compare if both names passed as argument have the same starting parts. This
modStartEq is defined on the fly by the defineModStartEqProc procedure to
adapt its code to the current icase enabled mode.
* modulecmd.tcl.in: Get path to module specified with different case When
insensitive case match is enabled for module version specification to select
one module context, if no case sensitive exact match is found then select
highest case insensitive matching version.
2019-09-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Define modMatchAtDepth procedure on the fly Add a
defineModMatchAtDepthProc procedure that defines modMatchAtDepth procedure
with code adapted to the current indepth and icase configuration. On the fly
procedure definition helps to improve performance as defined procedure is
finely tuned.
* modulecmd.tcl.in: Define modMatch procedure on the fly Add a
defineModMatchProc procedure that defines modMatch procedure with code
adapted to the current icase configuration. On the fly procedure definition
helps to improve performance as defined procedure is finely tuned.
2019-09-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.2/.modulerc, testsuite/modulefiles.2/ICASE/1,
testsuite/modulefiles.2/ICASE2/1, testsuite/modulefiles.2/IcAsE/1,
testsuite/modulefiles.2/iCaSe/1, testsuite/modulefiles.2/iCaSe2/1,
testsuite/modulefiles.2/icASE/1, testsuite/modulefiles.2/icase/1,
testsuite/modulefiles.2/icase/conflict,
testsuite/modulefiles.2/icase/conflicta,
testsuite/modulefiles.2/icase/conflictp,
testsuite/modulefiles.2/icase/conflicts, testsuite/modulefiles.2/icase/info,
testsuite/modulefiles.2/icase/infoloaded,
testsuite/modulefiles.2/icase/isloaded, testsuite/modulefiles.2/icase/load,
testsuite/modulefiles.2/icase/loadi, testsuite/modulefiles.2/icase/prereq,
testsuite/modulefiles.2/icase/prereqc, testsuite/modulefiles.2/icase/unload,
testsuite/modulefiles.2/icase/z, testsuite/modulefiles.2/nocase/.hidden,
testsuite/modulefiles.2/nocase/.modulerc, testsuite/modulefiles.2/nocase/1,
testsuite/modulefiles.2/nocase/deep/3,
testsuite/modulefiles.2/nocase/deep2/notamodule,
testsuite/modulefiles.2/nocase/regular, testsuite/modulefiles.2/nocase2,
testsuite/modulefiles.2/nocase7/conflictim1,
testsuite/modulefiles.2/nocase7/conflictim2,
testsuite/modulefiles.2/nocase7/prereqim1,
testsuite/modulefiles.2/nocase7/prereqim2,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.70-maint/240-icase.exp: ts: add tests for icase config
* doc/source/module.rst: doc: search sub-cmd is always performed icase
Clarify on search sub-command that search query string is always matched in
a case insensitive manner.
* modulecmd.tcl.in: Mention -i/--icase in help message
2019-09-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: add 'icase' option to completion scripts
2019-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in:
Rework avail_icase into icase option Rework avail_icase configuration
option in a generic icase option which defines the contexts where to apply a
case insensitive match for search query string and module specification:
never, only on search-related sub-commands or always.
* modulecmd.tcl.in: Migrate 'avail_icase' cfg option retrieval to getConf
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
icase in man/diff/INSTALL Fixes #212
* doc/source/module.rst: doc: fix typo in MODULES_SEARCH_MATCH section of
module.1
2019-09-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc icase in NEWS/MIGRATING
2019-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Match module name in case or nocase mode with modMatch
* testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/060-apropos.exp: ts: adapt existing tests to
reintroduced icase mode
2019-04-15 Eric Deveaud <edeveaud@pasteur.fr>
* modulecmd.tcl.in: icase search only when argument provided
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in: control icase
module av at configure time
* modulecmd.tcl.in: poc for case insensitive search//avail
2019-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/design/extended-default.rst: doc: add extended-default design
spec
* doc/source/design/insensitive-case.rst: doc: add insensitive-case design
spec
* doc/source/design.rst, doc/source/design/module-selection-contexts.rst,
doc/source/index.rst: doc: add module-selection-contexts design spec
2019-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/ensure-user-qualify-modules/siteconfig.tcl,
.../ensure-user-qualify-modules/siteconfig.tcl-4.3,
doc/source/cookbook/ensure-user-qualify-modules.rst: doc: adapt
ensure-user-qualify-modules recipe to config rework
2019-09-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc. conf opt internal rework in
NEWS/MIGRATING
2019-08-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* siteconfig.tcl, testsuite/example/siteconfig.tcl-1: Update siteconfig.tcl
files with new int config setup ways Use the lappendConf procedure to set
the locked_configs option and the setConf procedure to set the
avail_report_dir_sym and avail_report_mfile_sym options.
* modulecmd.tcl.in: Introduce setConf/unsetConf/lappendConf Add the
setConf, unsetConf and lappendConf procedures to provide unified ways to set
the value of configuration option.
2019-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.70-maint/220-config.exp: ts: adapt tests to match new
getConf debugging output
* modulecmd.tcl.in: Rework config option val retrieval in cmdModuleConfig
2019-09-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate 'wa_277' cfg option retrieval to getConf
2019-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, modulecmd.tcl.in, site.exp.in: Migrate 'pager' cfg option
retrieval to getConf Introduce on the way the @pagercmd@ configuration
pattern which is the concatenation of the @pager@ and @pageropts@ patterns
with a whitespace joining the two when @pageropts@ is not empty.
* modulecmd.tcl.in: Migrate 'colors' cfg option retrieval to getConf
* Makefile, modulecmd.tcl.in: Migrate 'color' cfg option retrieval to
getConf Use an 'initConfColor' procedure to specifically initialize this
'color' configuration option. Adapt value set for this option from the
configure script or through the command-line switches to use the valid
public names (never, auto and always) to ensure convertion to the internal
value only occurs in the initConfColor procedure.
2019-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate 'tcl_ext_lib' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'siteconfig' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'run_quarantine' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'rcfile' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'silent_shell_debug' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'collection_target' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'collection_pin_version' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'avail_report_mfile_sym' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'avail_report_dir_sym' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'extra_siteconfig' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'locked_configs' cfg option retrieval to getConf
2019-08-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Migrate 'verbosity' cfg option retrieval to getConf
* modulecmd.tcl.in: Make isVerbosityLevel rely on g_config_defs To get
existing verbosity levels
* modulecmd.tcl.in: Migrate 'set_shell_startup' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'search_match' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'implicit_default' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'unload_match_order' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'term_background' cfg option retrieval to
getConf
* modulecmd.tcl.in: Migrate 'avail_indepth' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'auto_handling' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'ignored_dirs' cfg option retrieval to getConf
* modulecmd.tcl.in: Migrate 'contact' cfg option retrieval to getConf
2019-07-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce 'getConf' proc Add getConf procedure that
retrieves any configuration option value and set the value of this option if
not yet defined.
* modulecmd.tcl.in: Store all configs in a g_configs array
* modulecmd.tcl.in, testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp: Rework pager config internal
variable Use only one global variable to store pager command configuration
and its associated command-line options rather using one variable for the
command name and a second one for its options.
* modulecmd.tcl.in: Rework colors initialization code Use ::g_colors_list
list variable as primary configuration variable rather ::g_colors array
variable. Sync array value on list value.
* modulecmd.tcl.in: Auto guess config option cmd-line overridde Check if a
'::asked_$option' exists, if true it means configuration option has been
overridden from the command-line.
* modulecmd.tcl.in: Store conf opt props in g_config_defs global array
Define a global array named 'g_config_defs' to store the properties of all
configuration options. For each option, a list is set to indicate associated
superseding environment variable, default value if any, is configuration
option lockable to default value, valid value list, internal value
representation and procedure to call to initialize option value.
2019-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modulefiles/info/name, .../siteconfig.tcl,
.../cookbook/module-info-name-return-basename.rst,
doc/source/diff_v3_v4.rst: doc: add module-info-name-return-basename recipe
Fixes #297.
2019-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in: Release
of version 4.3.1
* modulecmd.tcl.in, testsuite/modulefiles.2/NaN,
testsuite/modulefiles.2/nanbar/1, testsuite/modulefiles.2/nanbar/2,
testsuite/modulefiles.2/nanbar/nan,
testsuite/modulefiles.2/nanfoo/.modulerc, testsuite/modulefiles.2/nanfoo/1,
testsuite/modules.70-maint/250-nan.exp: Rework ternary operator expr if res
may equal 'nan' Rework all the ternary operator expressions (eg. [expr
{cond ? true : false}] if their true or false result may be equal to the nan
string (whatever the case used to write it). When a 'nan' value is returned
from such an expression an error is raised, which breaks Modules as soon as
a modulefile, an alias or a symbolic version is named 'nan'. These
expressions are rewritten as bare if/then/else blocks. Fixes #296.
2019-09-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deep/modulerc/.modulerc,
testsuite/modulefiles/loc_rc3/.modulerc,
testsuite/modulefiles/loc_rc3/0.0/.notmodfile,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/070-full.exp: ts: adapt tests for #294 and #295
fixes
* modulecmd.tcl.in: Fix alias over dir when implicit_default is disabled
Fix the whatis and paths sub-command results for module aliases targeting a
directory when implicit_default configuration option is disabled. No error
is returned and same result is now obtained whether the alias name or its
target is used as argument for those two sub-commands. Fixes #295.
* modulecmd.tcl.in: Fix sym over dir when implicit_default is disabled Fix
the whatis and paths sub-command results for module symbolic versions
targeting a directory when implicit_default configuration option is
disabled. No error is returned and same result is now obtained whether the
symbolic name or its target is used as argument for those two sub-commands.
Fixes #294.
2019-09-16 Tom Payerle <payerle@umd.edu>
* doc/example/tips-for-code-reuse/bar/1.0/nothreads,
doc/example/tips-for-code-reuse/bar/1.0/openmp,
doc/example/tips-for-code-reuse/bar/1.0/pthreads,
doc/example/tips-for-code-reuse/bar/2.0/nothreads,
doc/example/tips-for-code-reuse/bar/2.0/openmp,
doc/example/tips-for-code-reuse/bar/2.0/pthreads,
doc/example/tips-for-code-reuse/bar/common,
doc/example/tips-for-code-reuse/foo/1.0,
doc/example/tips-for-code-reuse/foo/2.0,
doc/example/tips-for-code-reuse/fooA/1.0,
doc/example/tips-for-code-reuse/fooA/2.0,
doc/example/tips-for-code-reuse/fooA/common,
doc/example/tips-for-code-reuse/fooB/.generic,
doc/example/tips-for-code-reuse/fooB/1.0,
doc/example/tips-for-code-reuse/fooB/2.0,
doc/example/tips-for-code-reuse/fooB/common,
doc/source/cookbook/tips-for-code-reuse.rst: doc: Adding cookbook page
"tips-for-code-reuse"
2019-09-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
wa_277 in man/diff/INSTALL
2019-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, testsuite/install.00-init/020-module.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/220-config.exp: ts/travis: adapt tests to wa_277
cfg
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Workaround for Tcsh history issue with wa_277
conf opt Introduce the wa_277 configuration option to workaround an issue
with Tcsh history described on ticket #277. When option is enabled (which
sets the MODULES_WA_277 environment variable to 1), an alternative module
alias is defined which fixes the history mechanism issue. However the
alternative definition of the module alias weakens shell evaluation of the
code produced by modulefiles. Characters with special meaning for Tcsh shell
(like { and }) may not be used anymore in shell alias definition elsewhere
the evaluation of the code produced by modulefiles will return a syntax
error. Fixes #277.
2019-09-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/ensure-user-qualify-modules/initrc, .../modulefiles/softa/1,
.../modulefiles/softa/2, .../modulefiles/softb/.modulerc,
.../modulefiles/softb/1, .../modulefiles/softb/2,
.../ensure-user-qualify-modules/siteconfig.tcl,
.../cookbook/ensure-user-qualify-modules.rst: doc: add
ensure-user-qualify-modules recipe to cookbook
* contrib/etc/rc-modulepath, doc/example/modulepaths-persist-over-sudo/rc,
.../cookbook/modulepaths-persist-over-sudo.rst: doc: add
modulepaths-persist-over-sudo recipe to cookbook Rework global RC file
proposed in contrib/etc/rc-modulepath, for use case described at [1], as a
cookbook recipe. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1139165
2019-09-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modulefiles/bar/1, .../modulefiles/foo/1, .../siteconfig.tcl,
.../cookbook/expose-procs-vars-to-modulefiles.rst: doc: add
expose-procs-vars-to-modulefiles recipe to cookbook
2019-09-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/log-module-commands/siteconfig.tcl,
doc/source/cookbook/log-module-commands.rst: doc: add log-module-commands
recipe to cookbook Fixes #283.
* doc/source/cookbook/inhibit-report-info.rst,
doc/source/cookbook/top-priority-values.rst,
doc/source/cookbook/unload-firstly-loaded.rst: doc: desc way to find
siteconfig script location in recipes In cookbook recipes implying the
installation of a site-specific configuration script, instructions are
provided to help to find the expected location of this script on the current
setup. Fixes #266.
2019-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.80-deep/022-switch.exp: Load current env info prior match
switch one-name-rule When looking at the closest match among loaded modules
when switching module with just a single module argument specified, load the
informations on the currently set environment to get the alternative names
of loaded modules prior to look at closest module match. Fixes #290.
2019-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: attempt to clarify eval mode in modulefile
man Fixes #289
2019-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_csh, testsuite/home/.module/.target,
testsuite/home/.module/coll1, testsuite/home/.module/coll2,
testsuite/home/.module/coll3, testsuite/home/.module/coll4.target,
testsuite/home/coll5, testsuite/install.00-init/060-quar.exp,
testsuite/install.00-init/080-args.exp, testsuite/{modulefiles.other =>
modulefiles.2}/1.1/version, testsuite/{modulefiles.other =>
modulefiles.2}/1.2/version, testsuite/{modulefiles.other =>
modulefiles.2}/1.3/version, .../{modulefiles.other2 =>
modulefiles.2}/clear/.modulerc, testsuite/{modulefiles.other2 =>
modulefiles.2}/clear/1, testsuite/{modulefiles.other2 =>
modulefiles.2}/clear/2, testsuite/{modulefiles.other2 =>
modulefiles.2}/clear/3, testsuite/{modulefiles.other =>
modulefiles.2}/longerrword, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/aliases, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/apropos, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/avail, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/display, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/list, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/load, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/purge, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/reload, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/restore, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/save, .../modemptyarg/savelist,
.../{modulefiles.other => modulefiles.2}/modemptyarg/saverm,
.../modemptyarg/saveshow, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/source, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/swap, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/swap2, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/swap3, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/test, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/unload, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/unuse, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/use, .../{modulefiles.other =>
modulefiles.2}/modemptyarg/whatis, testsuite/{modulefiles.other =>
modulefiles.2}/putsvar, testsuite/{modulefiles.other => modulefiles.2}/quar,
testsuite/{modulefiles.other => modulefiles.2}/restore,
.../veryveryveryveryveryveryveryverylong/.modulerc,
.../veryveryveryveryveryveryveryverylong/name,
testsuite/modulefiles.other/README, testsuite/modulefiles/info/isused,
testsuite/modulefiles/use/1.0, testsuite/modulefiles/use/2.0,
testsuite/modulefiles/use/2.1, testsuite/modulefiles/use/2.2,
testsuite/modulefiles/use/3.0, testsuite/modulefiles/use/3.1,
testsuite/modulefiles/use/3.2, testsuite/modulefiles/use/4.1,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/040-load-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/200-errdisp.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.95-version/010-init_ts.exp,
testsuite/modules.95-version/050-fullpathentry.exp: ts: add modulefiles.2
test modulepath repository And make it a repository for additional test
modulefiles that do not need to take part in the global avail tests made
over the main repository (modulefiles) and who could mixed with others (like
other and other2).
2019-08-27 Per Persson <md2perpe+github@gmail.com>
* README.md: doc: use quote instead of code for links in README Inside a
code block URLs are not converted to links when the Markdown is rendered as
HTML. In a quote they do. The other differences are minor both for the raw
text and for the rendered text.
2019-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/120-autoinit.exp: ts: check precedence of
etc/modulespath over init/.modulespath
* testsuite/modules.70-maint/120-autoinit.exp: ts: check precedence of
etc/initrc over init/modulerc
* .gitignore, .travis.yml, Makefile, testsuite/example/initrc.in,
testsuite/modules.70-maint/120-autoinit.exp: ts: test initrc eval output
during autoinit
2019-08-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll14, testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: check urequn mech when
restoring collection
* modulecmd.tcl.in: Remove useless dir content cleanup in getModules proc
No need to remove purged entries from directory content list as elements are
added to these list only if valid for the search performed (they are not
removed later on, so no need to update directory content).
2019-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove useless var test in mod reload helper procs
* testsuite/modules.70-maint/230-verbosity.exp: ts: add more verbosity tests
in 70/230
2019-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* lib/configure.ac: lib: bump Envmodules lib version to 1.0.1 Bump version
of Envmodules library after the small changes made: - directly return result
of Envmodules_Init last operation - Tcl_GetBooleanFromObj already set error
message, no need to rewrite an error message in case boolean argument is not
boolean
* lib/envmodules.c, lib/envmodules.h: lib: bump copyright year mention
* Makefile, lib/.gitignore, lib/Makefile.in, lib/configure.ac,
lib/testutil-closedir.c, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts/lib: test tcl ext lib
against a failed closedir call Add an utility library that supersedes the
closedir function from libc. The closedir function from this added library
always returns an error (-1). It is used for coverage test of the closedir
call made withing the Envmodules_GetFilesInDirectoryObjCmd function of the
Tcl extension library.
2019-08-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: test tcl ext lib
procedures against erroneous calls
* .travis.yml: travis: add a tcl8.4 build to the matrix to check
testsiteconfig-1
* lib/envmodules.c: lib: Tcl_GetBooleanFromObj already set err msg No need
to craft an error message when a non-boolean value is passed to procedures
as the Tcl_GetBooleanFromObj function already set the accurate message when
it returns non-OK.
2019-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: load tcl ext lib by
tclsh83 in 00/120
* .gitignore, .travis.yml, Makefile: install/ts: fetch & install old Tcl
interp for coverage Add directives into Makefile to install a Tcl8.3
interpreter in order to unlock some additional non-regression tests to
improve code coverage tests.
2019-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* lib/envmodules.c: lib: directly return res of Envmodules_Init last op
2019-08-05 Felix Neumärker <xdch47@posteo.de>
* lib/Makefile.in: install: fix typo on CFLAGS definition in lib/Makefile
Fixes #287.
2019-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: increase testsuite run wait time As 15 minutes has
become not enough on OSX.
* testsuite/install.00-init/050-crossshell.exp: ts: fix not found error msg
for mksh New version of mksh returns a 'inaccessible or not found' error
message: https://github.com/MirBSD/mksh/commit/64918da0043974fe07450e99427c
5f276d1b6ea0
2019-07-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/150-access-init.exp: Fix error
report when Tcl ext lib fails to load Correct modulecmd.tcl script startup
to correctly report error in case Tcl extension library fails to load.
Fixes #284.
2019-07-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile, contrib/mb.in: contrib: add 'mb' script to bench
modules versions
2019-07-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in: Release
of version 4.3.0
* MIGRATING.rst, NEWS.rst, doc/source/module.rst, modulecmd.tcl.in,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/140-color.exp: Honor CLICOLOR/CLICOLOR_FORCE env
var to set color mode Add support for standard variables CLICOLOR and
CLICOLOR_FORCE to define color mode. Implement specification for these
variables described at https://bixense.com/clicolors/. Fixes #279.
2019-07-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/230-verbosity.exp: ts: add tests for verbosity
cfg
2019-07-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc verbosity in NEWS/MIGRATING
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
verbosity in man/diff/INSTALL
* doc/source/cookbook/inhibit-report-info.rst: doc: update
inhibit-report-info recipe with verbosity cfg
* configure, modulecmd.tcl.in, testsuite/modules.70-maint/220-config.exp:
Introduce 'concise' verbosity level Introduce the ``concise`` verbosity
level to get slightly less messages than under normal verbosity mode.
Concise mode disables informational messages, like additional module
evaluation triggered by a module load or unload, aborted evaluation issues
or module evaluation report occurring on ``restore`` or ``source``
sub-commands. The ``module`` command could be set concise at ``./configure``
time with ``--with-verbosity`` option. ``MODULES_VERBOSITY`` environment
variable supersedes this setting and it could be set with ``config`` module
sub-command through the ``verbosity`` option. Fixes #204.
* modulecmd.tcl.in: Report every mod load/unload on source sub-cmd When
verbosity level is normal or at an higher level, reports every module loads
or unloads performed to ``source`` a scriptfile, even if there is no
specific message to output for these module evaluations. Clarifies what
module evaluations have been triggered to source the scriptfile.
* modulecmd.tcl.in, testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access-coll.exp: Report every mod load/unload
on restore sub-cmd When verbosity level is normal or at an higher level,
reports every module loads or unloads performed to ``restore`` a collection,
even if there is no specific message to output for these module evaluations.
Clarifies what module evaluations have been triggered to restore the
collection.
2019-07-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/220-config.exp: Reintroduce 'verbose' verbosity
level Reintroduce the ``verbose`` verbosity level and associated
``--verbose`` and ``-v`` command-line switches, which were available on
Modules v3. Verbose mode adds additional informational messages, like a
systematic report of the loading or unloading module evaluations. The
``module`` command could be set verbose by default at ``./configure`` time
with ``--with-verbosity`` option. ``MODULES_VERBOSITY`` environment variable
supersedes this setting and it could be set with ``config`` module
sub-command through the ``verbosity`` option.
* configure, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/220-config.exp: Reintroduce 'silent' verbosity
level Reintroduce the ``silent`` verbosity level and associated
``--silent`` and ``-s`` command-line switches, which were available on
Modules v3. Silent mode turns off error, warning and informational messages.
The ``module`` command could be set silent by default at ``./configure``
time with ``--with-verbosity`` option. ``MODULES_VERBOSITY`` environment
variable supersedes this setting and it could be set with ``config`` module
sub-command through the ``verbosity`` option.
2019-07-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in, testsuite/example/siteconfig.tcl-1,
testsuite/example/siteconfig.tcl-2,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.70-maint/220-config.exp: Add ability to control message
verbosity Add a ``verbosity`` configuration option to define the default
message verbosity level (between a ``normal`` and a ``debug`` level). This
option could be set at ``./configure`` time with ``--with-verbosity``
option. It could be superseded with the ``MODULES_VERBOSITY`` environment
variable, that could be set with ``config`` module sub-command through the
``verbosity`` option. Defining a ``debug`` verbosity level at the
command-line level is still achieved by using the ``-D`` or ``--debug``
command-line switches.
2019-07-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/376-deps7.exp: Inhibit UreqUn
when performing purge/reload/restore sub-cmd When unloading a module that
contains a ``module load`` or ``module switch`` modulefile command, inhibit
the unload performed of the useless requirement when auto_handling mode is
disabled if currently performing a purge, reload or restore sub-command. As
the unload sequence is determined and managed from these top commands.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access-coll.exp: No message block for restore
sub-cmd Remove the message block display output for the ``restore``
sub-command as this output style is reserved for modulefile evaluation mode
(load, unload and switch) to clarify understanding.
* modulecmd.tcl.in: Remove msg record set for purge sub-cmd No the message
block display output for the ``purge`` sub-command as this output style is
reserved for modulefile evaluation mode (load, unload and switch) to clarify
understanding.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-error.exp: No message block for reload sub-cmd
Remove the message block display output for the ``reload`` sub-command as
this output style is reserved for modulefile evaluation mode (load, unload
and switch) to clarify understanding.
2019-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Dissociate an eval id from a record msg id Adapt the
pushMsgRecordId and popMsgRecordId procedures to set and evaluation id in
addition to a record message id. These evaluation ids will track successful
and failed module evaluation to distinguish these evaluation results from
output message recording. A setmsgid argument is added to both procedures
to optionally set this record message id, which is unwanted on global
actions not outputing their results under some message block.
2019-07-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp: Report load/unload evaluation break
Report an error when a module load or unload evaluation aborts due to the
use of the ``break`` or ``exit`` modulefile commands. This error
notification clarifies that module evaluation failed. Fixes #267.
2019-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/050-crossshell.exp: ts: fix ksh err msg change
in install/050 tests
* .cirrus.yml: cirrus: install readline to satisfy R needs
2019-07-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: clarifies usage of config sub-cmd in init RC
* MIGRATING.rst, NEWS.rst: doc: desc init conf alt naming in NEWS/MIGRATING
2019-07-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: use /etc/environment-modules
as etcdir And store Modules initialization configurations in it.
* contrib/rpm/environment-modules.spec.in: rpm: disable set_shell_startup
2019-07-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/diff_v3_v4.rst: doc: desc init conf alt naming in
diff/INSTALL
* .travis.yml, testsuite/install.00-init/005-init_ts.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: adapt tests to
--with-initconf-in=etcdir
* configure: install: add --enable-modulespath configure opt Add the
``--enable-modulespath`` configure option, which is an alias for the
``--enable-dotmodulespath`` option as ``.modulespath`` configuration file is
named ``modulespath`` when installed in ``etcdic``.
* testsuite/modules.70-maint/220-config.exp: ts: fix regexp char escaping in
70/220
* Makefile, Makefile.inc.in, configure, init/Makefile, site.exp.in: install:
add --with-initconf-in configure opt Introduce the ability to install the
Modules initialization configuration files in the ``etcdir`` rather than in
the ``initdir``. A new configure option is introduced for this task:
``--with-initconf-in``. Accepted values for this option are: ``etcdir`` or
``initdir`` (default).
2019-07-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/cmake.in, init/csh.in, init/fish.in, init/ksh.in,
init/python.py.in, init/r.R.in, init/ruby.rb.in, init/sh.in, init/tcl.in,
init/zsh.in, modulecmd.tcl.in: Use initconf in etcdir rather initdir if it
exists Take into account Modules initialization configurations found in
``etc`` directory if they exist rather in ``init`` directory. If ``initrc``
configuration file is found in ``etcdir`` then it is preferred over
``modulerc`` file in ``initdir``. Following the same trend, ``modulespath``
configuration file is found in ``etcdir`` then it is preferred over
``.modulespath`` file in ``initdir``.
* Makefile, doc/source/module.rst, modulecmd.tcl.in,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/081-access-rc.exp: Set global RC file in
@etcdir@ instead @prefix@/etc Fix location of ``etc/rc`` global RC file to
``@etcdir@/rc`` instead of ``@prefix@/etc/rc`` to cope with ``@etcdir@``
specific setup (defaults to ``@prefix@/etc``).
2019-07-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: doc/rpm: merge release
of version 4.2.5
* modulecmd.tcl.in, testsuite/modulefiles.deps/m10,
testsuite/modulefiles.deps/m11, testsuite/modulefiles.deps/m12,
testsuite/modules.50-cmds/376-deps7.exp: Fix 'module load a b' in modfiles
when a or b is loaded Fix automatic loading of modulefiles when multiple
module names are set on a single ``module load`` modulefile command. When
auto_handling mode was disabled, the load of not loaded modules was not
achieved as soon as some modules on this list were already loaded. Fixes
#281.
2019-07-04 Colin Marquardt <cmarqu42@gmail.com>
* NEWS.rst, .../test-modulefiles/modulefiles/test_dir_and_file,
doc/source/cookbook/test-modulefiles.rst: doc: add cookbook recipe for
ModulesTest Fixes #182.
2019-07-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: fix opensuse/leap docker container install
2019-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, .travis.yml, Makefile, testsuite/example/modulerc-1.in,
testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/modules.70-maint/120-autoinit.exp: ts: test init modulerc that
disables set_shell_startup
* modulecmd.tcl.in: Clear cached config value when setting config During a
``config`` sub-command, config values are fetched which leads for some of
the configuration options to the cache of their value. When ``config``
sub-command is called to set a configuration option value, unsets any cached
value for this option (as value has just been updated).
2019-07-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/modulerc.in, testsuite/example/modulerc.in: init: mention possible
config set in modulerc
* modulecmd.tcl.in: Enable 'config' sub-cmd from source/autoinit eval Allow
``config`` sub-command to be called from a modulefile if this modulefile is
evaluated by the ``autoinit`` or ``source`` sub-commands called at a
top-level module context.
2019-07-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc search_match in NEWS/MIGRATING
* .travis.yml, testsuite/install.00-init/010-environ.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/220-config.exp: ts/travis: adapt tests to
set_shell_startup cfg
* contrib/mt: contrib: fix array init issue on 'mt' script
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
set_shell_startup in man/diff/INSTALL
2019-07-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure, init/bash.in,
init/bash_completion.in, init/csh.in, init/fish.in, init/fish_completion,
init/ksh.in, init/sh.in, init/tcsh_completion.in,
init/zsh-functions/_module, init/zsh.in, modulecmd.tcl.in, site.exp.in: Add
ability to disable shell startup file set Introduce the ability not to set
the shell startup file that ensure ``module`` command is defined once shell
has been initialized. Setting shell startup file currently means defining
``ENV`` and ``BASH_ENV`` environment variable to the Modules bourne shell
initialization script. ``./configure`` options
``--enable-set-shell-startup`` and ``--disable-set-shell-startup`` define if
shell startup should be set or not by default. It could be superseded with
the ``MODULES_SET_SHELL_STARTUP`` environment variable, that could be set
with ``config`` module sub-command through the ``set_shell_startup`` option.
2019-07-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/140-color.exp,
testsuite/modules.70-maint/220-config.exp: ts: correctly escape exp res in
00/140 and 70/220
* contrib/mt: contrib: fix var unbound issue on 'mt' with older bash
* .travis.yml: travis: optionally change clone dir To launch tests from
path containing specific chars (with special meaning in regular expressions)
to ensure expected results from test cases are correctly escaped.
2019-06-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, testsuite/modulefiles.indepth/modv/.common,
testsuite/modulefiles.indepth/modv/.modulerc,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.91-sort/020-avail.exp: ts/travis: adapt tests to
search_match cfg
2019-06-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc search_match in NEWS/MIGRATING
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
search_match in man/diff/INSTALL
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Add ability to control module search match
Introduce the ability to control the module search match. Search query
string should match module name start or any part of module fully qualified
name. Default search match behavior is set at ``./configure`` time with the
``--with-search-match`` option. It could be superseded with the
``MODULES_SEARCH_MATCH`` environment variable, that could be set with
``config`` module sub-command through the ``search_match`` option.
Command-line switches ``--starts-with`` (``-S``) and ``--contains`` (``-C``)
for ``avail`` module sub-command enable to supersede defined search match
configuration.
2019-07-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework no-indepth mod match in getModules Match search
query at corresponding search depth level when indepth mode is disabled
without implying that search query matches beginning of module names. This
is a preparatory work to a search match option where query could be
contained in module name and not only be the start of module name. As some
results from findModules are removed through the process of getModules,
update element list of directories to fit results.
2019-06-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in, testsuite/modulefiles/append/1.8,
testsuite/modulefiles/prepend/1.10, testsuite/modulefiles/remove/1.8,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.90-avail/070-full.exp: Args after var name are values on
{append,prepend,remove}-path Fix argument parsing for the `append-path`,
`prepend-path` and `remove-path` modulefile commands to consider every
arguments found after the variable name as variable values and not command
option even if argument starts with `-` character. Fixes #278.
* modulecmd.tcl.in, testsuite/modules.20-locate/057-mcookie.exp: Trim
modfile magic cookie string from # chars Right trim '#' characters from the
fetched modulefile magic cookie string to ensure a correct compatibility
version comparison. Useful when modulefile first line is equal to
'#%Module4.3##############'. Thanks to Eric Deveaud for the issue report.
2019-06-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, modulecmd.tcl.in,
testsuite/modules.70-maint/220-config.exp: Report locked config option value
with a locked mention
* doc/source/module.rst, modulecmd.tcl.in,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/220-config.exp: Raise error when setting locked
config option Raise an error and exit if module 'config' sub-command
attempts to modify a configuration option which is locked.
2019-06-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, INSTALL.rst, MIGRATING.rst, NEWS.rst, configure,
doc/source/module.rst, modulecmd.tcl.in, siteconfig.tcl,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.91-sort/040-load-sort.exp: install: enable
implicit_default in locked_configs Makes implicit_default configuration
option lockable through locked_configs option.
* .travis.yml, INSTALL.rst, MIGRATING.rst, Makefile, Makefile.inc.in,
NEWS.rst, configure, doc/source/module.rst, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in, siteconfig.tcl,
testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp,
testsuite/modules.70-maint/220-config.exp: install: replaces
--enable-extra-siteconfig with --with-locked-configs Add to the configure
script the --with-locked-configs option to ignore environment variable
superseding of Modules configurations defined in modulecmd.tcl script.
Lockable configuration option are extra_siteconfig. Currently locked options
are reported through the locked_configs option on the config sub-command.
This new configure option replces --enable-extra-siteconfig which was
dedicated to the control over the MODULES_SITECONFIG variable.
2019-06-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: clarify source sub-cmd in module.1 man Talk
about scriptfile on `source` sub-command rather modulefile to clarify a bit
usage.
2019-06-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc implicit_default in NEWS/MIGRATING
2019-06-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, testsuite/home/coll13,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/140-color.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/322-is-avail.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access-coll.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/156-is-avail.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.80-deep/020-load-deep.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/068-transitive-deep.exp,
testsuite/modules.80-deep/080-access-deep.exp,
testsuite/modules.90-avail/080-noindepth.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/040-load-sort.exp: ts/travis: adapt tests to
implicit_default cfg
2019-05-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Force implicit_default enablement during 'restore' When
performing a 'module restore', forcibly enable the implicit_default option
to correctly match current state against the collection to restore, even if
this collection was saved with implicit_default enabled and current setup at
restore time has this option disabled. implicit_default is then restored to
its defined value once the match is over. So the load of a module to restore
from the collection may fail when implicit_default is disabled if this
module is an implicit default and collection was saved with implicit_default
enabled.
2019-05-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc implicit_default in man/diff/INSTALL
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Control whether an implicit default should be
selected Add the ability to configure whether an implicit default version
should be defined for modules with no default version explicitly defined.
When enabled, which stays the default behavior, a module version is
automatically selected (latest one) when the generic name of the module is
passed. When implicit default selection is disabled, the name of modules to
evaluate should be fully qualified elsewhere an error is returned. This
option is set at `./configure` time with the `--enable-implicit-default` and
`--disable-implicit-default` options. It could be superseded with the
`MODULES_IMPLICIT_DEFAULT` environment variable, that could be set with
`config` module sub-command throught the `implicit_default` option. When
implicit_default is disabled: - module implicit default versions are
excluded from 'module avail -d' results. - false is returned when argument
passed to the 'is-avail' sub-command is a directory without an explicit
default set in it. - and auto_handling is enabled, the requirement load
mechanism will fail on requirement relying on module implicit default
version Fixes #179.
2019-05-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add report_issue arg to getPathToModule proc Add the
report_issue argument to the getPathToModule procedure to inhibit the report
of issue raised during the search and resolution of a passed module name.
Issue report is unwanted when performing a reverse lookup of the module
names resolving to a known modulefile (like done in procedures
getSimplifiedLoadedModuleList and getAllModuleResolvedName). Issue report
is also disabled in cmdModuleSearch, as found issues are reported later on
through the list returned by the getPathToModule call.
2019-05-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.80-deep/021-unload.exp: ts/travis: adapt tests to
unload_match_order cfg
2019-05-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc unload_match_order in NEWS/MIGRATING
* doc/source/cookbook/unload-firstly-loaded.rst: doc: update
unload-firstly-loaded recipe with unload_match_order cfg
2019-05-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
unload_match_order in man/diff/INSTALL
* Makefile, Makefile.inc.in, configure, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in: Add the ability to configure of unload match
order Add the ability to configure when unloading a module and multiple
loaded modules match request if firstly loaded module should be choosen or
lastly loaded module. Default behavior is set at the `./configure` time with
the `--with-unload-match-order` switch. This default could be superseded
with the `MODULES_UNLOAD_MATCH_ORDER` environment variable, that could be
set with `config` module sub-command throught the `unload_match_order`
option. This change allows to restore behavior of Modules compatibility
version where first matching module in loaded module list were unloaded in
such situation. By default, lastly loaded module is set for unload (like it
was before this change) to limit impact on the loaded module list when
dependencies are woven between these loaded modules. Even if this change
enables to change the default behavior, it is highly recommanded to keep it
as soon your modulefiles express dependencies between each other. Fixes
#198.
2019-05-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc fix for #270 in NEWS
2019-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clean any automated handling
mode configuration
2019-05-08 Jacques Raphanel <dvp@crabisoft.fr>
* contrib/scripts/createmodule.py: contrib: add support for creating module
file skeleton from MSDOS prompt Update createmodule.py to provide support
for cmd shell to use `set` instead of `env`. Fixes #270.
2019-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst: doc: desc config cmd in NEWS/MIGRATING
2019-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* site.exp.in, testsuite/modulefiles/modbad/config,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/220-config.exp,
testsuite/modules.90-avail/070-full.exp: ts: test 'config' sub-command
* contrib/mt, contrib/mtreview.in: ts: outputs full log in 'mt' if testsuite
failed but no failure found
2019-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc config cmd in man module.1
2019-05-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Reword configuration 'key' into configuration 'option'
2019-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, NEWS.rst, contrib/rpm/environment-modules.spec.in,
siteconfig.tcl: install: provide a bare siteconfig.tcl Provide a bare
siteconfig.tcl in designated etcdir at installation time if no pre-existing
site-specific configuration file is found at designated location.
2019-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, INSTALL.rst, MIGRATING.rst, Makefile, Makefile.inc.in,
NEWS.rst, configure, doc/source/module.rst, init/bash_completion.in,
init/fish_completion, init/tcsh_completion.in, init/zsh-functions/_module,
modulecmd.tcl.in, site.exp.in, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp: Add ability to disallow
MODULES_SITECONFIG Add to the configure script the
`--enable-extra-siteconfig` and `--disable-extra-siteconfig` options to
allow or forbid the definition of a site-specific configuration script
controlled with the `MODULES_SITECONFIG` environment variable. These
options control the default value of the `g_extrasiteconfig` variable in
`modulecmd.tcl`. If this variable is true (by default), MODULES_SITECONFIG
is looked at the siteconfig sourcing time. Thus the primary siteconfig.tcl
can set the variable to false to ensure the extra siteconfig is disabled
whatever the option passed at ./configure time.
2019-05-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc config sub-cmd in diff_v3_v4
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in: Report and set
'extra_siteconfig' on 'config' sub-command Report and be able to set the
'extra_siteconfig' configuration, linked to the MODULES_SITECONFIG
environment variable, on the 'config' sub-command.
2019-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/140-color.exp: Fix block
report line split when output color
2019-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULECONTACT/MODULERCFILE in module.1
* CONTRIBUTING.rst: doc: provide 'config --dump-state' result when reporting
issue
* modulecmd.tcl.in: Dump machine/os/tcl_version state on 'config' sub-cmd
2019-01-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in: Report and set 'rcfile' on
'config' sub-command Report and be able to set the 'rcfile' configuration,
linked to the MODULERCFILE environment variable, on the 'config'
sub-command.
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: add 'config' sub-cmd to shell comp scripts
* modulecmd.tcl.in: Rework cmdModuleConfig argument parsing To handle the
definition of empty value.
* modulecmd.tcl.in: Add the ability to report one config on 'config' sub-cmd
When just a configuration key name is passed to the 'config' sub-command
(and no value associated to it) just report this configuration key value
rather reporting all configuration keys.
* modulecmd.tcl.in: Add ability to unset conf from 'config' sub-cmd When
the '--reset' command-line switch and a configuration key name is passed to
the 'config' sub-cmd, unset the relative environment variable. Ensure this
configuration key could be altered.
* modulecmd.tcl.in: Reword cmdModuleConfig data structure Split details in
multiple arrays for modularity.
* modulecmd.tcl.in: Rework displayConfig procedure Pass configuration value
directly and re-order arguments.
* modulecmd.tcl.in: Add ability to set conf from 'config' sub-cmd When a
configuration key name and value is passed to the 'config' sub-command, set
the relative environment variable with passed value. Ensure on the way that
configuration key name can be altered with an environment variable and that
passed value is valid.
2019-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report Modules env variable on config --dump-state
Report the list of the environment variables related to Modules in an
additionnal table displayed on the --dump-state action of the 'config'
sub-command.
* modulecmd.tcl.in: Report in state list global RC files loaded Track the
global RC files that are loaded and report this information on a 'config'
sub-command among the current state information.
* modulecmd.tcl.in: Report in state list if siteconfig/tcl_ext_lib have been
loaded Track if a site configuration has been sourced and if the Tcl
extension library has been loaded. This information is reported on a
'config' sub-command among the current state information.
* modulecmd.tcl.in: Dump Modules state on 'config' sub-cmd with --dump-state
Add the --dump-state command-line switch to the 'config' module sub-cmd. Add
a second report table that displays each state value of the current
modulecmd.tcl execution. Take this opportunity to move 'path_separator',
'term_columns', 'debug', 'force' and 'paginate' from the config table to the
state table.
* modulecmd.tcl.in: Report runenv configs set for modulecmd run-time
execution Report the environment variable set for modulecmd run-time
execution configuration on 'module config' sub-command.
* modulecmd.tcl.in: Report avail_report_{dir,mfile}_sym/ignored_dirs configs
Report the avail_report_dir_sym, avail_report_mfile_sym and ignored_dirs
configuration on 'module config' sub-command.
2019-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Define global 'ignored_dirs' at first use Instead of
initializing ignored dirs in modulecmd.tcl main script body, introduce a
'getIgnoredDirs' procedure that will initialize this information at first
call.
* modulecmd.tcl.in: Define global 'contact' at first use Instead of
initializing 'contact' address in modulecmd.tcl main script body, introduce
a 'getContact' procedure that will initialize this information at first
call.
* modulecmd.tcl.in: Report if config has been overridden on 'config' sub-cmd
Introduce a displayConfig helper procedure that checks if a given
configuration parameter has been overridden from its default value by
command-line switch or environment variable. Report configuration value and
from where it has eventually been overridden.
* modulecmd.tcl.in: Register use_pager as a global variable To get access
to this value, on which the paginate option is based, when reporting
configuration.
* modulecmd.tcl.in: Also register colors as a global list To get access to
this value, on which the color table is based, when reporting configuration.
2019-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce 'config' sub-command Add the 'config'
sub-command to report all the different parameter set for the tool.
2019-05-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. fixes for #274 and #275 in NEWS
* modulecmd.tcl.in, testsuite/modules.90-avail/090-dup-modpath.exp,
.../modules.95-version/090-dup-modpath-version.exp: No duplicate entry in
resolved modulepath list When resolving the enabled list of modulepaths,
ensure resolved path entries are unique. Fixes #274.
* testsuite/modules.10-use/999-cleanup.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.90-avail/999-cleanup.exp: ts: ensure a correct 999-cleanup
exist for every ts parts
* modulecmd.tcl.in, testsuite/install.00-init/020-module.exp,
testsuite/modulefiles/alias/3.0, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/076-alias-sub.exp: Fix escaping of '?' character
in shell alias Fixes #275.
2019-05-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-2,
testsuite/modules.00-init/120-siteconfig.exp: ts: superseded defs between
siteconfig files
* testsuite/modules.00-init/150-access-init.exp: ts: test restricted access
to siteconfig and MODULERCFILE
2019-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, doc/source/module.rst: doc: desc etcdir/siteconfig.tcl in FILES
sect. of module.1
* doc/source/module.rst: doc: desc. MODULERCFILE var in module.1 man page
2019-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst,
testsuite/example/siteconfig.tcl-2,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.00-init/150-access-init.exp: adding documentation and
tests for MODULES_SITECONFIG
2019-03-06 Ben Bowers <nanobowers@gmail.com>
* modulecmd.tcl.in: adding MODULES_SITECONFIG env. variable support Add the
ability to define a site-specific configuration file with an environment
variable: MODULES_SITECONFIG. When set, the script file pointed by the
variable is sourced (if readable) after the site-specific configuration file
initially defined in modulecmd.tcl. Fixes #234.
2019-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: fix typo in migrating guide for v4.3
* .travis.yml: travis: add CentOS 7 test case where extlib is disabled Add
a CentOS 7 test case with compat version disabled and Tcl extension library
disabled. Helps to compare performances between 2 test cases where the only
difference is the enablement of the Tcl extension library.
2019-05-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, init/bash.in, init/ksh.in, init/profile-compat.sh.in,
init/sh.in, init/zsh.in: init: improve readability of var definition
operations Improve readability of variable definition operations by writing
one definition operation per line rather having multiple commands on a
single line like 'VAR=val; export VAR'. Fixes #225.
2019-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst,
init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modules.70-maint/210-clear.exp: Leverage --force cmd-line switch
on 'clear' sub-cmd Leverage --force command-line switch on 'clear'
sub-command to skip confirmation dialog. Fixes #268.
2019-05-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/150-access-init.exp: ts: test tclextlib restricted
read access
* modulecmd.tcl.in: Remove useless var exist test in __getFilesInDirectory
* testsuite/modules.10-use/{040-load.exp => 040-load-use.exp},
testsuite/modules.10-use/{080-access.exp => 080-access-use.exp},
testsuite/modules.20-locate/{095-cleanup.exp => 999-cleanup.exp},
testsuite/modules.60-initx/{005-init.exp => 010-init_ts.exp},
testsuite/modules.60-initx/{010-list.exp => 015-list.exp},
testsuite/modules.60-initx/{080-access.exp => 080-access-initx.exp},
testsuite/modules.60-initx/{095-cleanup.exp => 999-cleanup.exp},
testsuite/modules.61-coll/{080-access.exp => 080-access-coll.exp},
testsuite/modules.80-deep/{020-load.exp => 020-load-deep.exp},
testsuite/modules.80-deep/{040-list.exp => 040-list-deep.exp},
testsuite/modules.80-deep/{068-transitive.exp => 068-transitive-deep.exp},
testsuite/modules.80-deep/{080-access.exp => 080-access-deep.exp},
testsuite/modules.91-sort/{040-load.exp => 040-load-sort.exp},
testsuite/modules.95-version/{020-load.exp => 020-load-version.exp}: ts:
ensure test file name are unique To ensure test file selection done in 'mt'
script will not end up with test file collision.
* Makefile, contrib/mt: ts: rework way 'mt' pass test list to runtest
Instead of removing read access to test files that should not be run in 'mt'
script, transmits to 'runtest' the list of test files to run via a
RUNTESTFILES environment variable appended to 'runtest' command line in
Makefile targets.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: check clear cmd
confirmation msg
* testsuite/config/unix.exp, testsuite/modules.00-init/006-procs.exp: ts:
improve test launch procedures
2019-05-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/140-color.exp: ts: test calling color
initialization procedures twice
* .travis.yml: travis: set coverage on 2 cases where extlib is enabled
Enable code coverage on 2 existing test cases where the Modules Tcl
extension library is enabled.
2019-05-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, lib/.gitignore, lib/Makefile.in: install/ts: enable gcov on
Modules Tcl ext lib When coverage is asked (COVERAGE=y) also check
lib/envmodules.c (Modules Tcl extension library) and report obtained
coverage result (Codecov script automatically finds Gcov coverage results).
2019-05-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, CONTRIBUTING.rst, Makefile, contrib/mt: install/ts: trigger
coverage with var instead of make target Instead of running test coverage
with 'make testcoverage', use COVERAGE variable to trigger this run ('make
test COVERAGE=y').
* CONTRIBUTING.rst: doc: adapt name of coverage annoted script in
CONTRIBUTING Annoted script generated by test coverage process has changed
following to the introduction of the Modules Tcl extension library.
2019-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/config/unix.exp, testsuite/modulefiles.other2/clear/.modulerc,
testsuite/modulefiles.other2/clear/1, testsuite/modulefiles.other2/clear/2,
testsuite/modulefiles.other2/clear/3, testsuite/modulefiles/modbad/clear,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/210-clear.exp,
testsuite/modules.90-avail/070-full.exp: ts: test 'clear' sub-command
* MIGRATING.rst, NEWS.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst,
init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modules.00-init/100-pager.exp: Re-introduce 'clear' sub-command
With same behavior than on compatibility version. The list of the environmet
variables that are cleared by this sub-command has been updated to match the
recent development (MODULES_LMPREREQ, ...) Fixes #203.
2019-05-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix colors init against badly formed MODULES_COLORS
Seems that 'array set' could partially set values to an array in case the
list passed to it is badly formed (odd number of element). This situation
has been witnessed on FreeBSD. So unset the array variable to ensure it will
not be found set at all by the remaining code of the initColors procedure.
2019-01-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc color mode in diff_v3_v4
2019-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/140-color.exp: ts: test colored output
* modulecmd.tcl.in: Buffer reportError calls before initErrorReport To
produce first warning and error messages (triggered during argument parse)
with expected pager and color mode.
2019-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, MIGRATING.rst, NEWS.rst, configure, doc/source/module.rst:
doc: desc color mode in man/NEWS/INSTALL/MIGRATING
2019-01-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, .../veryveryveryveryveryveryveryverylong/.modulerc,
.../veryveryveryveryveryveryveryverylong/name,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.90-avail/050-long.exp: Adapt padding for long modulename
on long-mode reporting Fix some tests that were assuming at least one
whitespace between list long output fields.
2019-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Highlight table column title When displaying a report
table, list when doing a module list or module avail in --long mode,
highlight each column title with the 'hi' SGR code.
2019-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Pass each col len as arg to displayTableHeader Change
displayTableHeader procedure to pass each column length after each column
title.
2019-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts: adapt existing tests for
color
2019-01-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Show caller name of bootstrap reportDebug Like for the
regular reportDebug procedure, report the name of the calling procedure of
the bootstrap reportDebug (procedure set prior paging initialization). So
both bootstrap and regular reportDebug behave and report the same way.
2019-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure, modulecmd.tcl.in, site.exp.in:
Define a light and dark background default color set Define by default a
color set for dark background and a color set for light background. These
color sets can be define at configure time with the
--with-dark-background-colors and --with-dark-background-colors options
respectively. Terminal background color kind can be defined to 'light' or
'dark'. This value can be set at configure time with the
--with-terminal-background option or with the environment variable
MODULES_TERM_BACKGROUND. If the default color set is not superseded by the
MODULES_COLORS environment variable, the dark background colors will apply
if terminal background is set to dark. If the terminal background is set to
light, the light background colors will apply instead.
2018-12-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: add --color opt to bash/fish/tcsh/zsh comp
scripts Add both the --color and --color= forms of the colorize output
command-line switch to the shell completion scripts.
* modulecmd.tcl.in: Color module cmd reported by 'saveshow' cmd Graphically
enhance the 'module' command reported on a 'module saveshow' command. As for
modulefile commands use the 'cm' SGR key.
* modulecmd.tcl.in: Color modfile cmd reported by 'display' cmd Graphically
enhance the modulefile commands reported on a 'module display' command.
Introduce the 'cm' SGR key for these modulefile commands.
* modulecmd.tcl.in: Highlight modfile/collfile name on
display/help/test/saveshow Hightlight the modulefile header name reported
on the display, help and test commands. Following the same trend, highlight
the collection file header name reported on the saveshow command.
* modulecmd.tcl.in: Hightlight matched module whatis/search query string
Hightlight in each module whatis module name result or in each module search
whatis string result the substring matching the search query string
following the same process than for module avail search query hightlight.
* modulecmd.tcl.in: Hightlight matched module avail search query string
Hightlight in each module avail result the substring matching the search
query string in which the wildcard characters have been right trimmed off.
No hightlight is performed if color mode is disabled or if some wildcard
characters persist after the right trim.
2018-12-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Graphically represent 'default' symbol Instead of
outputing the 'default' symbol among the whole symbol list, represent it
graphically with the 'de' SGR key applied to the module name. If color mode
is disabled or no specific 'de' SGR key is defined, output 'default' symbol
like any other symbol.
* modulecmd.tcl.in: Color sym and its separator differently Use 'sy' sgr
key to color symbols and 'se' sgr key to color the separator characters
surrounding these symbols '(', ':' and ')'.
* modulecmd.tcl.in: No '@' tag added to aliases when they are colored Do
not add a '@' tag, to indicate element reported is an alias, when alias are
colored (which already indicates the entry is an alias)
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: run module in --color=never mode in shell
comp scripts Ensure color mode is disabled when calling module command in
the bash, fish, tcsh and zsh completion scripts.
* modulecmd.tcl.in: Color sym reported by 'list' cmd Graphically enhance
symbols on 'module list' command like done for 'module avail'. Make use of
formatListEltToLongDisplay and formatListEltToDisplay procedure to format
the elements to output in the same way than 'module avail'.
* modulecmd.tcl.in: Color alias/sym reported by 'aliases' cmd Graphically
enhance aliases and symbols on 'module aliases' command like done for
'module avail'.
* modulecmd.tcl.in: Color dir/alias/syms reported by 'avail' cmd
Graphically enhance directories, aliases and symbols on 'module avail'
reports (regular, terse and long). Introduce the 'di', 'al' and 'sy' SGR
keys respectively for directories, aliases and symbols).
2018-12-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Pass elts length to displayElementList proc Externalize
from the displayElementList procedure the computation of the length of each
element to display. This is done to prepare the output of graphically
enhanced elements from this procedure. Element lengths are computed in each
procedure building the display list. This is where the graphical enhancement
will take place so it is the right spot to learn the real length (without
SGR code) of these elements to output. Take this opportunity to also change
displayElementList procedure to pass it the display list as a list argument
rather as "args" which requires to 'eval' the procedure call.
* modulecmd.tcl.in: Highlight displayed list header When reporting list
elements, hightlight passed header, mainly with the 'hi' sgr key except if
header is a modulepath, in this case 'mp' sgr key is used.
* modulecmd.tcl.in: Color modulepaths reported by module use Graphically
render modulepaths reported on 'module use' and 'module unuse' with 'mp' sgr
key.
* modulecmd.tcl.in: Highlight named element of msg record Highlight named
element passed as header to reportMsgRecord procedure (using 'hi' sgr key).
* modulecmd.tcl.in: Color DEBUG/ERROR/Module ERROR/WARNING/INFO msgs Make
use of sgr procedure to graphically render header of ERROR, Module ERROR,
WARNING and INFO messages (respectively with 'er', 'me', 'wa' and 'in' sgr
keys). Graphically render the whole DEBUG message (header + message text)
with 'db' sgr key.
2018-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
site.exp.in: Introduce colored output Add the ability to graphically
enhance some part of the produced output to improve result readability.
Colored output enablement could be controlled at configure time with the
--enable-color option, or with the MODULES_COLOR environment variable or
with the command-line switch --color. MODULES_COLOR variable and --color
switch accepts the following values: never, auto and always. With the
--enable-color configure option, the 'auto' color mode is applied. When
color mode is set to 'auto', output is colored if a terminal is attached to
stderr. Colors to apply to each elements can be controlled at configure
time with the --with-colors option or with the MODULES_COLORS environment
variable. A color set consists of a list of key=value separated by colon
where each key represents an output element that can be colored and each
value represents a SGR code applied to this element to color it. Thanks to
[1] for the detailled description of the Select Graphic Rendition (SGR)
codes. [1] https://stackoverflow.com/questions/4842424/list-of-ansi-color-e
scape-sequences
2019-01-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: desc avail in depth mode in diff_v3_v4
2018-12-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, doc/source/module.rst: doc: desc avail in depth
mode in man/NEWS/MIGRATING
* testsuite/modulefiles.indepth/mod30/.1,
testsuite/modulefiles.indepth/mod30/2,
testsuite/modulefiles.indepth/mod9/3/.version,
testsuite/modulefiles.indepth/mod9/3/2,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/080-noindepth.exp: ts: more tests for avail
--no-indepth mode Add situations to check optimisations made to findModules
procedure when no in depth mode is enabled.
* modulecmd.tcl.in: Optimize findModules when no in depth search is asked
Cut down some I/O operations in findModules procedure when a no in depth
search is performed as it is not required to check in depth existing
modulefiles, only those matching query depth level. .modulerc files are
still searched in depth, as they can produce virtual modules and in the
future they may invalidate modulefiles. All files at the search query depth
level are analyze. And for the directories below this depth level
modulefiles are analyzed until one is found valid (other modulefiles are
skipped as we only want to determine if directory holds at least one valid
modulefile and should be reported).
2018-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/zsh-functions/_module: init: zsh completes avail mods in no in depth
mode
* init/fish_completion: init: fish completes avail mods in no in depth mode
2018-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in: init: bash completes avail mods in no in depth
mode Take advantage of the no in depth mode of the module avail command to
only get available choices for the current query file depth level.
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: add support for --indepth/--no-indepth
avail opts
2018-12-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.90-avail/040-wild.exp: ts: test avail in depth mode with
wildcard chars
* testsuite/modulefiles.indepth/mod0, testsuite/modulefiles.indepth/mod1/1,
testsuite/modulefiles.indepth/mod1/2, testsuite/modulefiles.indepth/mod10,
testsuite/modulefiles.indepth/mod11/.modulerc,
testsuite/modulefiles.indepth/mod11/1,
testsuite/modulefiles.indepth/mod11/2,
testsuite/modulefiles.indepth/mod2/.modulerc,
testsuite/modulefiles.indepth/mod2/1, testsuite/modulefiles.indepth/mod2/2,
testsuite/modulefiles.indepth/mod3/.modulerc,
testsuite/modulefiles.indepth/mod4/.1,
testsuite/modulefiles.indepth/mod5/.common,
testsuite/modulefiles.indepth/mod5/.modulerc,
testsuite/modulefiles.indepth/mod6/1/notamod,
testsuite/modulefiles.indepth/mod6/2/1/notamod,
testsuite/modulefiles.indepth/mod6/3/1/1/notamod,
testsuite/modulefiles.indepth/mod6/3/1/2/1,
testsuite/modulefiles.indepth/mod7/1/notamod,
testsuite/modulefiles.indepth/mod7/2/1/notamod,
testsuite/modulefiles.indepth/mod7/3/1/1/notamod,
testsuite/modulefiles.indepth/mod7/3/1/2/notamod,
testsuite/modulefiles.indepth/mod7/4/1,
testsuite/modulefiles.indepth/mod8/1/notamod,
testsuite/modulefiles.indepth/mod8/2/1/notamod,
testsuite/modulefiles.indepth/mod8/3/1/1/notamod,
testsuite/modulefiles.indepth/mod8/3/1/2/notamod,
testsuite/modulefiles.indepth/mod8/4/.modulerc,
testsuite/modulefiles.indepth/mod9/1/notamod,
testsuite/modulefiles.indepth/mod9/2/1/notamod,
testsuite/modulefiles.indepth/mod9/3/1/1/notamod,
testsuite/modulefiles.indepth/mod9/3/1/2/notamod,
testsuite/modulefiles.indepth/mod9/4/.common,
testsuite/modulefiles.indepth/mod9/4/.modulerc,
testsuite/modulefiles.indepth/notmod1/notamod,
testsuite/modulefiles.indepth/notmod2/1/notamod,
testsuite/modulefiles.indepth/notmod3/1/1/.notamod,
testsuite/modulefiles.indepth/notmod3/1/2,
.../modulefiles.indepth/notmod4/1/1/1/notamod,
testsuite/modulefiles.indepth/notmod4/2,
testsuite/modules.90-avail/080-noindepth.exp: ts: test avail --no-indepth
mode
2018-12-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/020-avail.exp: ts: ensure existing avail tests use
'in depth' mode
* modulecmd.tcl.in: Adapt getModules/listModules to --no-indepth mode
Remove in getModules the result entries collected within the procedure where
more filename path separator are found than in search query string. This way
entries related to the content of directories matching query are removed.
Only entries matching search query at its very same depth level are kept +
the matching directories holding those entries. This or these matching
directories holding entries matching search query are kept to get access to
the default or the latest entries in these directories if -d (default) or -L
(latest) filters are enabled. The directories holding entries are then
excluded from display output in listModules procedure to keep this
--no-indepth mode displaying only entries lying at the same directory depth
level. When the -d (default) or -L (latest) filters are enabled and the
--no-indepth mode is enabled too, if search query targets the root content
of the modulepath, do not apply the output filter. In this situation every
elements at the root of a modulepath can be considered a default of a latest
entry.
2018-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, INSTALL.rst, Makefile, Makefile.inc.in, configure,
modulecmd.tcl.in, site.exp.in: Introduce --indepth/--no-indepth avail mode
Add the ability to perform non-recursive avail search by limiting results to
the elements matching search query and not including elements contained in
the directories part of the result. Default behavior is unchanged: in depth
search is performed. --indepth and --no-indepth command-line switches are
introduced to control behavior as well as an environment variable:
MODULES_AVAIL_INDEPTH. Default behavior may also be controlled at
./configure time with the --enable-avail-indepth and --disable-avail-indepth
switches. The --no-indepth mode is pretty useful to provide an efficient
glance at the available packages when a lot of different versions exist for
each of them. Shell completion scripts also benefit from the non-recursive
view to propose choices corresponding to the current depth level only.
Moreover I/O operations are reduced on this --no-indepth mode as the full
modulefile tree is not entirely walked through. This commit introduces the
new configure script and modulecmd options and it lays the ground for the
changes on the module find and the result display that will be made in the
next commits. Fixes #150.
2018-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/020-avail.exp: Append / char to dir results of
avail command Append a forward slash character to any directory result of
an avail command to better distinguish these directories from regular files.
Will also help shell completion scripts to more efficienlty guide users to
the directory entries (no need to type this forward slash character to look
deeper in directory).
2018-12-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.91-sort/020-avail.exp: Fix -d/-L avail
search when arg ends with trailing slash Correctly get available default
(-d) and latest (-L) version whether search pattern is passed with an ending
forward slash character or not or if it contains '*' wildcard character.
* modulecmd.tcl.in: Fix listModules to display dir tags if any only
2018-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Make all findModules proc args mandatory
* modulecmd.tcl.in: Make all listModules proc args mandatory
2018-12-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, NEWS.rst, doc/source/modulefile.rst: doc: desc Modulepath
rc file in man/NEWS/MIGRATING
2018-12-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.rc/.modulerc, testsuite/modulefiles.rc/.version,
testsuite/modulefiles.rc/bar/.modulerc, testsuite/modulefiles.rc/bar/1,
testsuite/modulefiles.rc/bar/2, testsuite/modulefiles.rc/foo/.common,
testsuite/modulefiles.rc/foo/.modulerc, testsuite/modulefiles.rc/plain,
testsuite/modules.20-locate/066-modulepath-rc.exp,
testsuite/modules.20-locate/081-access-rc.exp: ts: test usage of modulepath
rc file
* lib/envmodules.c, modulecmd.tcl.in, .../.modulerc =>
etc/modulerc.depsaltname}, testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-opposite.exp: Take .modulerc at modulepath
root into account When looking for modulefiles in enabled modulepaths, take
.modulerc file found at the root of a modulepath directory into account.
Which means these RC files are now evaluated like global rc files and can be
used to define module aliases targeting modulefiles stored in the underlying
file tree. findModules procedure has been adapted to return any .modulerc
file found at the root of the directory. Code that look at modulepath root
has been adapted to use the getFilesInDirectory procedure or command. A
fetch_dotversion argument is added to the getFilesInDirectory Tcl procedure
and its libtclenvmodules counterpart. This argument is disabled when looking
at modulepath root content to avoid returning eventual .version file stored
there. Shorthand version notation (ex: /1.0) cannot be used in a modulepath
rc file as a module name cannot be determined from this location.
* MIGRATING.rst, NEWS.rst: doc: desc. I/O optim work in NEWS and MIGRATING
2018-12-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst: doc: refer to Modules Tcl extension lib in INSTALL
2018-12-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* lib/configure.ac, lib/envmodules.c, lib/envmodules.h, modulecmd.tcl.in:
Implement getFilesInDirectory in Tcl extension library Add function in
libtclenvmodules to implement getFilesInDirectory as a command, which
provides a more IO-optimized way than native Tcl commands perform by
avoiding specific additional queries to get hidden files like .modulerc and
.version. As a result 1 stat and 2 access syscalls are saved per directory
read.
2018-12-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce getFilesInDirectory proc to get dir elt list
Extract code from findModules procedure that analyzes and returns the
content of a given directory to define a dedicate procedure for that job:
getFilesInDirectory. This getFilesInDirectory procedure will also be made
available as a command defined in the Tcl extension library to reduce the IO
calls made to achieve the task.
2018-12-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* lib/Makefile.in: install: fix lib/Makefile to ensure CFLAGS is applied
Which is required on FreeBSD to pass include location directives.
* testsuite/modules.00-init/100-pager.exp,
testsuite/modules.00-init/120-siteconfig.exp: ts: fix tests confused by ext
lib load debug msg
* lib/envmodules.c: lib: adapt error report to support Tcl8.4 Add code to
Tcl extension library to report error specifically when built against
Tcl8.4. This version of Tcl does not propose a Tcl_ObjPrintf function, so
the Tcl_AppendResult function is used instead when the library is built
against this version.
* .gitignore, .travis.yml, Makefile, contrib/nglfar2ccov,
testsuite/config/unix.exp: install/ts: run ts against currently built ext
lib Adapt Makefile and testsuite initialization to set then use a specific
modulecmd.tcl script tuned to load the libtclenvmodules.so currently built
in 'lib' directory.
2018-12-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Init error report when rendering top main error When an
error is caught during modulecmd.tcl first initialization steps, ensure the
error report facility is initialized to render error message. On main
procedure when an error raised, attempt to initialize error report before
rendering catched error message, as error may have occurred prior regular
error report init. Adapt initErrorReport procedure to ensure its content is
run only once even if called multiple times.
* lib/Makefile.in, lib/configure.ac: install: adapt lib makefile to build
with Tcl8.5 Add @TCL_SHLIB_CFLAGS@ flag to the CFLAGS_DEFAULT to ensure to
obtain the '-fPIC' directive on the resulting compiling command.
2018-12-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml, .travis.yml, INSTALL.rst, Makefile, Makefile.inc.in,
configure, contrib/rpm/environment-modules.spec.in, modulecmd.tcl.in,
site.exp.in: install: configure/build/install lib from main scripts Call
configure script and Makefile of 'lib' directory from main configure and
Makefile to configure/build/install/clean libtclenvmodules from top-level
scripts. Add '--libdir', '--enable-libtclenvmodules', '--with-tcl' and
'--with-tclinclude' options to main configure script to control
libtclenvmodules build and installation. Documentation of these new options
has been added to INSTALL guide. When '--enable-libtclenvmodules' option is
set (default) code in modulecmd.tcl is enabled to load compiled
libtclenvmodules shared library. Update RPM spec file to take into account
libtclenvmodules. Update Travis and AppVeyor configurations to check
libtclenvmodules enablement and disablement over the various test cases.
2018-12-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: improve Makefile install/test target prereqs spec
2018-11-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* lib/.gitignore, lib/Makefile.in, lib/aclocal.m4, lib/configure.ac,
lib/tcl.m4: Add autotools configs to build libtclenvmodules Build this
extension library against Tcl stub library to be able to 'load' it in
modulecmd.tcl script.
* lib/envmodules.c, lib/envmodules.h: Introduce Modules Tcl extension
library Introduce Modules Tcl extension library (written in C) to extend
Tcl language in order to provide more optimized I/O commands than native Tcl
commands do. This library first provides a 'readFile' command which
performs an open, read, close of a given modulefile to fetch its content.
Compared to the Tcl native open, read, close commands it saves 1 ioctl + 1
fcntl + N lstat system calls per modulefile.
2018-11-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce readFile proc to read a file Adapt all
procedures reading file (modulefile, shell init file, collection file) to
use the readFile procedure for that reading job. This readFile command is
defined as a Tcl procedure if not found defined (by the load of the upcoming
C extension).
* modulecmd.tcl.in: Always read full modfile on most module cmds Except for
path, paths, list, avail and aliases module commands always fully read a
modulefile whether its full content is needed or just its header to verify
its validity. Proceed this way to only read file once on commands that first
just check modulefile validity then read again valid files to get their full
content. The path, paths, list, avail and aliases module commands are
excluded from this 'always read full modulefile' mechanism as they never
need to get the full modulefile content. Most files found within
modulepaths are intended to be modulefiles so always reading full file
content even for invalid modulefiles should not harm much performances
compared to the gain of reading every valid modulefiles only once instead of
two.
* modulecmd.tcl.in: Cache modfile content read to minimize file ops If
modulefile is fully read, cache the content read and the file header
computed to avoid another file read if the same modulefile need to be read
multiple times.
2018-11-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Call readModuleContent in checkValidModule proc To read
a modulefile so the code to read file and analyze its header to check it is
a valid modulefile is just written once. readModuleContent procedure has
been adapted to proceed like checkValidModule did when it is called in a
only_check_validity mode. In this mode, only the first line of the file is
read as we just want to parse the header of the file (as it was done
previously in checkValidModule procedure).
2019-04-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, NEWS.rst: doc: desc. Vim addons in NEWS and INSTALL
* .appveyor.yml, .cirrus.yml: appveyor/cirrus: test 'make uninstall'
2019-04-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: install modulefile vim
syntax addons
2019-04-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure: install: rename vim addons configure
options For disambiguation with Vim plugins and for letting room for
further improvements in this area, rename '--enable-vimplugin' configure
option into '--enable-vim-addons' and '--vimplugindir' into '--vimdatadir'.
2018-12-08 Felix Neumärker <xdch47@posteo.de>
* Makefile, Makefile.inc.in, configure, contrib/vim/ftdetect/modulefile.vim,
contrib/vim/ftplugin/modulefile.vim, contrib/vim/syntax/modulefile.vim: add
vim syntax support
2019-04-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.2.4
* testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp: ts: correctly escape exp res
in 50/{042,047,052,057,062,065}
2019-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: provide short install guideline in README Fixes #230.
* init/zsh.in: init: init MANPATH on zsh if empty to preserve man sysconfig
Zsh initializes by default the MANPATH environment variable to an empty
value when it starts. To preserve manpath system configuration even after
addition to this variable by modulefiles, set MANPATH variable to ':' if
found empty. Fixes #224.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: improve getDiffBetweenList
proc test coverage
* modulecmd.tcl.in, testsuite/modulefiles/append/8.0,
testsuite/modulefiles/prepend/8.0, testsuite/modulefiles/remove/8.0,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.90-avail/070-full.exp: Raise error when bad option passed
to {append,prepend,remove}-path Raise an error when an invalid option is
set on append-path, prepend-path or remove-path modulefile command. Fixes
#249.
* .appveyor.yml: Revert "appveyor: stop testing R in Cygwin platform" This
reverts commit 48624f9d11e3f118b7a6f7d31a16614597e179cf. AppVeyor Cygwin
environment has been updated, which fixed the R issue. See
appveyor/ci#2898.
* modulecmd.tcl.in, testsuite/modules.50-cmds/377-error.exp: Inhibit 'module
load' in DepRe context When reloading modules through the *Dependent
Reload* automated mechanism, disable the automated loading of modules by
other modules with the 'module load' modulefile command as done for the
'prereq' command. It saves the mechanism from the reload of modules that
have just been unloaded (and asked by the user to be unloaded from instance
when performing a 'switch' command). Fixes #265.
2019-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/374-deps5.exp: No req load
suggestion msg as soon as one has been tried Instead of requiring that all
possibilities need be tried to consider the requirement load or the conflict
unload has been tried, consider it tried as soon as one module choice has
been evaluated.
* modulecmd.tcl.in, testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.61-coll/040-restore.exp: Do not re-evaluate a failing
module Skip load or unload evaluation of a module whose respectively load
or unload was already attempted but failed. If this second evaluation
attempt occurs within the same main evaluation frame. Fixes #264.
* modulecmd.tcl.in: Refactor eval context change for switch cmd in modfile
* modulecmd.tcl.in, testsuite/modules.50-cmds/377-opposite.exp: No load
attempt of already loaded mod in no-auto mode When the automated module
handling mode is disabled, do not attempt to load a requirement expressed in
a modulefile with a 'module load' command, if this requirement is already
loaded or loading.
2019-04-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-error.exp: Distinguish DepRe load/unload
phases in msgs Adapt warning, error and info messages relative to the
Dependent Reload mechanism to distinguish the unload phase from the load
(reload) phase of this mechanism. In the automated module handling summary
report, unloaded modules via this mechanism are reported in the *Unloading
dependent* list and modules reloaded afterward are reported against the
"Reloading dependent* list. Fixes #263.
2019-04-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/380-altname.exp: Correctly report loading state of
conflicting module Fixes #262.
* testsuite/modulefiles.deps/alt/.modulerc,
testsuite/modulefiles.deps/alt/8, testsuite/modulefiles.deps/i3b,
testsuite/modulefiles.deps/i4b, testsuite/modules.50-cmds/380-altname.exp:
ts: test issue with prereq using alt name in 50/380
2019-04-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/380-altname.exp: Resolve mod name passed to
isModuleEvaluated To check if actual module has been evaluated based on its
aliased or symbolic name.
2019-04-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Register modfile eval attempt in addition to modname
Helps to find a given module has been evaluated when a conflict/prereq
statement is sometimes done on the module name and other times on the
modulefile.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.61-coll/040-restore.exp: ts: adapt text msgs to fixed
loaded conflict report
2019-04-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report loaded conflict on corresp. module msg block
When loading a module, report any loaded conflict on the message reporting
block corresponding to this module load. This warning or error message comes
in addition to the eventual conflict unload message reported under the
message block of the main evaluation. When a module load is forced and a
conflict of this module is loaded, report this conflict with the same
concise message (no hint) whether an unload of this conflicting module was
attempted or not. Fixes #261.
2019-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Raise ConUn err/warn msg to top level message block
When a conflicting module is seen loaded but the unload of this module was
attempted, report a conflict unload error or warning message toward the main
evaluation message block. Fixes #261.
* modulecmd.tcl.in: Refactor error raising code in conflict proc
2019-04-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp: Clearer error/warn msg when
unloading a required mod When unloading a module which has some dependent
module still loaded, produce a more specific error or warning message if an
evaluation of these dependent modules has been realized or if the unload of
the required module is forced. Fixes #259.
2019-04-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-opposite.exp: Also register unload evaluation
attempt In addition to load evaluation attempt, also register the various
unload evaluation attempt to get a more appropriate warning or error message
regarding the missing requirement during a module load. When these
requirements are unloaded due to a conflict or a dependent unload/reload
mechanism, it seems better not to advise user to load this requirement (as
the dependency management system has unloaded it).
* modulecmd.tcl.in: Use distinctive context for main load and unload
2019-04-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp: Same req missing warn msg in
force mode whatever the auto mode When a module load is forced and a
requirement of this module is missing, report this miss with the same
concise message (no hint) whether a load of this requirement was attempted
or not.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.61-coll/040-restore.exp: Report missing req on
corresponding module msg block When loading a module, report any missing
requirement on the message reporting block corresponding to this module
load. This warning or error message comes in addition to the eventual
requirement load message reported under the message block of the main
evaluation. Fixes #258.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.61-coll/040-restore.exp: Raise failed ReqLo msg to top
level message block
2019-04-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/379-module-unload.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/140-multiargs.exp: More appropriate warn/err msg
for failed ReqLo When a module requirement is seen missing but the load of
this module was attempted, report a more specific error or warning message
to let user understand that the load of the requirement was attempted but
failed. Thus distinction is made between missing requirements where a load
tentative was made and those were the no load attempt was performed (when
the automated module handling mode is disabled for instance). Fixes #257.
2019-04-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Refactor cmdModule{Load,Unload} error catch code
2019-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp: Report failed {load,unload} of
switched-{off,on} module When switching modules, report failure of
switched-off module unload or switched-on module load under the message
block of the switch action. A failed switched-off module unload is reported
as an error, as it aborts the switch evaluation, whereas a failed
switched-on module load is reported as a warning. Fixes #255.
2019-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/376-switch.exp: Rely on cmdModuleUnload error
catch mech for prereq report When attempting to unload a module, if this
module has dependent loaded it cannot be unloaded if auto_handling mode is
disabled. Treat that situation through the cmdModuleUnload error catch
rather just with a reportError call. In case this situation happens through
a 'module unload' command in a modulefile evaluated in load mode, no error
return code should be set. However in other situations, cmdModuleUnload
command should return an error code. So this change fixes 'switch'
sub-command when the switched-off module cannot be unloaded as it has some
dependent module loaded. Now it fails the whole switch process and no load
of the switched-on module is not tried. Fixes #251.
* modulecmd.tcl.in: Rely on cmdModuleLoad error catch mech for conflict
report
* modulecmd.tcl.in, testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/376-switch.exp: Move 'module switch' deps set in
cmdModuleSwitch Used for 'module switch' commands is set in modulefile. In
order to get finer control on the dependency definition and error report
when the unload of the switched-off module or the load of the switched-on
module fail.
2019-04-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/373-deps4.exp: Drop output of
failed ReqLo eval if one succeed When multiple modules are listed on a
prereq command, drop the output of those modules that fails to load (by the
requirement load automated mechanism) to only keep the output of the module
whose load succeed. Introduces procedures and variables to hold reports
until all requirement choices are tried to be loaded, then release held
output (drop or print). Exception is made for debug output which is always
immediately printed. Fixes #254.
* testsuite/modules.50-cmds/376-deps7.exp: ts: clarify comment on no-auto
urequn report in 50/376
2019-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp: Warn if useless requirement unload
fails on no-auto mode During the unload of a module when the automated
module handling mode is disabled, report a warning message foreach unload of
a useless requirement that fails as done when the automated module handling
mode is enabled. Fixes #253.
2019-03-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove useless priorlmlist var from
cmdModule{Load,Unload}
* doc/example/inhibit-report-info/siteconfig.tcl, modulecmd.tcl.in,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp: Report auto mech warn/err to top
level message block During an additional evaluation triggered by an
automated module handling mechanism, ensure warning and error messages are
reported under the message block of the main evaluation. Add a 'recordtop'
argument to the reportWarning and reportError procedures in order to
indicate that the message should be recorded under the top-level message
block instead of the currently active message block. Fixes #252.
2019-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/040-list.exp: ts: add specific term width tests
for list subcommand
2019-04-15 Jesper Dahlberg <jesper@ludd.ltu.se>
* modulecmd.tcl.in: Fix hanging 'list' command Bug correction of the list
command for the case when the terminal width is equal to the text width to
be printed when only a single column is used. Without the correction, the
'moudule list' command hangs.
2019-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml: appveyor: stop testing R in Cygwin platform On Cygwin
platform, R installation seems currently broken under the AppVeyor CI
environment (see https://github.com/appveyor/ci/issues/2913). So for the
time being, remove R installation to avoid failing test results.
2019-04-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/conf.py: doc: improve code that disable smart quotes With
contribution from @volans- for the Sphinx version test code.
* doc/source/conf.py: doc: preserve quotes and dashes when making html docs
Restrain Sphinx from converting quotes and dashes to lang-specific entities
with either the html_use_smartypants or smartquotes options. Fixes #250
2019-03-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/377-error.exp: ts: report UReqUn eval in accurate
order in --no-auto mode
* testsuite/modules.50-cmds/377-error.exp: ts: no auto mech summary report
when top eval fails
* testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-error.exp,
testsuite/modules.61-coll/040-restore.exp: ts: detect mod eval in accurate
context on sumup lists
2019-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp: ts: failed eval are not part of
auto mech summary lists
2019-03-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/377-error.exp: ts: auto mech msg summary always
after err/warn msgs
* modulecmd.tcl.in: Rely on context arg of to know if switch is ongoing
* modulecmd.tcl.in: Register and report each evaluation and assoc context
Better track each module evaluation and the context associated to it in
order to report a more accurate information on the additional modules loaded
or unloaded when proceeding the main evaluation request. When calling for a
module load or unload, pass a context name to either the cmdModuleLoad or
cmdModuleUnload procedure called to let it register the module evaluation
and its associated context into a global structure gathering all these
informations per top-level evaluation. Report messages on the additional
evaluation occuring during a main one are now based on these registered
information rather on computed list of elements passed to the cmdModuleLoad
or cmdModuleUnload procedures. As a result a more reliable information is
obtained, especially during a main load evaluation, where previously some
unload/load additional evaluation were not seen or were reported against
another automated mechanism. Additional evaluation messages are only
reported if the main evaluation goes to its end, which means that if some
event forces it to rollback the summary list of actions will not be seen to
let users better understand the resulting situation (nothing was unloaded or
loaded) and focus on the error message. Previously finished auto mechanisms
were immediatly reported which confused people as an error occuring after
the mechanism leads to a full rollback. In case an additional evaluation
fails, the corresponding module is removed from the list of modules on which
the auto mechanism triggered a load or an unload evaluation. When unloading
useless requirements in no-auto mode, these unloads are now reported in
their correct evaluation order (order of definition found in modulefiles).
Fixes #244, fixes #245, fixes #246, fixes #247 and fixes #248
2019-03-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.2.3
* testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.61-coll/040-restore.exp: ts: correctly escape exp res in
50/{375,376} and 61/041
* .gitattributes: install: exclude CI confs from dist tarballs
2019-03-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes, .gitignore, Makefile, doc/Makefile: install: fix
CONTRIBUTING guide build and install
2019-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix useless conditions on
reloadModuleList{Load,Unload}Phase
* testsuite/modules.50-cmds/377-error.exp: ts: add force mode tests in
50-377-error
2019-03-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/mtreview.in, testsuite/install.00-init/006-procs.exp,
testsuite/modules.00-init/006-procs.exp: ts: add distinctive mark at end of
res/exp string To distinguish the end of the output or expected result from
the output or expected result content. 'mtreview' tool better catches the
content it has to compare.
2019-03-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: fix md5sum passed argument To perform correctly on OS
X.
2019-03-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, .gitignore, .travis.yml, Makefile, contrib/mt,
contrib/mtreview.in: install: fetch 'icdiff' to process test res throught it
* contrib/mt: contrib: mt calls mtreview to process test results
* testsuite/modulefiles.deps/rfa, testsuite/modulefiles.deps/rfb,
testsuite/modulefiles.deps/rfc, testsuite/modulefiles.deps/rfd,
testsuite/modulefiles.deps/rfe, testsuite/modulefiles.deps/rff,
testsuite/modulefiles.deps/rfg, testsuite/modulefiles.deps/rfh,
testsuite/modulefiles.deps/rfi, testsuite/modulefiles.deps/rfj,
testsuite/modulefiles.deps/rfk, testsuite/modulefiles.deps/rfl,
testsuite/modulefiles.deps/rfm, testsuite/modulefiles.deps/rfn,
testsuite/modulefiles.deps/rga, testsuite/modulefiles.deps/rgb,
testsuite/modulefiles.deps/rgc, testsuite/modulefiles.deps/rgd,
testsuite/modulefiles.deps/rge, testsuite/modulefiles.deps/rgf,
testsuite/modulefiles.deps/rgg, testsuite/modulefiles.deps/rgh,
testsuite/modulefiles.deps/rgi, testsuite/modulefiles.deps/rgj,
testsuite/modulefiles.deps/rgk, testsuite/modulefiles.deps/rgl,
testsuite/modulefiles.deps/rgm, testsuite/modulefiles.deps/rgn,
testsuite/modules.50-cmds/377-error.exp: ts: add situations in 50/377-error
where crashes occur on multiple auto mech
2019-03-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml, .cirrus.yml, .travis.yml, contrib/mt:
travis,appveyor,cirrus: launch tests throught 'mt'
* .gitignore, Makefile, contrib/mtreview.in: contrib: add 'mtreview' script
to highlight failed tests
* modulecmd.tcl.in, testsuite/modulefiles.deps/raam,
testsuite/modulefiles.deps/rabm, testsuite/modulefiles.deps/racm,
testsuite/modulefiles.deps/radm, testsuite/modulefiles.deps/raem,
testsuite/modulefiles.deps/rafm, testsuite/modulefiles.deps/ragm,
testsuite/modulefiles.deps/rahm, testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/377-error.exp: In no-auto mode one UReqUn failure
should not fail whole unload During the unload of a module with
auto_handling mode disabled, if the unload of one of its useless
requirements (by the useless requirement unload mechanism triggered in
--no-auto mode when requirements are declared with the 'module load'
modulefile command) fails, it should not fail the whole unload process like
when auto_handling mode is enabled. Fixes #238
2019-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/rea, testsuite/modulefiles.deps/reb,
testsuite/modulefiles.deps/rec, testsuite/modulefiles.deps/red,
testsuite/modulefiles.deps/ree, testsuite/modulefiles.deps/ref,
testsuite/modulefiles.deps/reg, testsuite/modulefiles.deps/reh,
testsuite/modulefiles.deps/rei, testsuite/modulefiles.deps/rej,
testsuite/modulefiles.deps/rek, testsuite/modulefiles.deps/rel,
testsuite/modulefiles.deps/rem, testsuite/modulefiles.deps/ren,
testsuite/modules.50-cmds/377-error.exp: ts: add DepRe tests in 50/377-error
2019-03-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/rdc,
testsuite/modulefiles.deps/rdd, testsuite/modulefiles.deps/rde,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-error.exp: On reload cmd, stop if one
unloading/loading mod fails When reloading all loaded modules with the
'reload' sub-command, if one reloading module fails to unload or load abort
the whole reload process to preserve environment sanity. Add a sum-up
message group for reload sub-command to clearly get all errors related to
this command under the same message block. Fixes #237
2019-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-switch.exp: Stop if one DepRe load fails
except if force mode set During the load or the unload of a module, if the
load of one of its dependent (by the dependent reload mechanism) fails abort
the whole unload/load process. Exception made if the force mode is enabled.
In this case failing module stays loaded and Dependent Unload mechanism
continues with next module to load. When applying DepRe load phase during a
switch command, consider force mode a default since here we are trying to
reload the dependent modules found when unloading switched-off module.
Switch action does not guarantee to find all DepRe modules still loaded at
the end of process. Fixes #241
2019-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Stop if one DepRe unload fails except if force mode set
During the load or the unload of a module, if the unload of one of its
dependent (by the dependent reload mechanism) fails abort the whole
unload/load process. Exception made if the force mode is enabled. In this
case failing module stays loaded and Dependent Unload mechanism continues
with next module to unload. This failing module is removed from the
Dependent Reload list, so it will not take part of the load phrase of the
mechanism. Fixes #239
2019-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/rca, testsuite/modulefiles.deps/rcb,
testsuite/modulefiles.deps/rcc, testsuite/modulefiles.deps/rcd,
testsuite/modulefiles.deps/rce, testsuite/modules.50-cmds/377-error.exp: ts:
add purge/reload tests in 50/377-error
* modulecmd.tcl.in: Add debug msgs to {push,pop,restore}Settings procs
2019-03-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/376-switch.exp,
testsuite/modules.50-cmds/377-error.exp: If one UReqUn fails removes its
requirements from UReqUn list During the unload of a module, if the unload
of one of its useless requirements (by the useless requirement unload
mechanism) fails, removes the requirements of this failing module from the
useless requirement list so they are kept loaded as failing module will
still be loaded. Such error is reported as a warning and it does not stop
the whole unload process as main module to unload and its dependent are able
to unload, just its requirements automatically loaded cannot be unloaded. So
the job has been done, not perfectly but main task is successful and
resulting user environment is coherent. A getRequiredLoadedModuleList
procedure is introduced to get all the loaded modules required by a list of
modules passed to the procedure. Fixes #240
2019-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/377-error.exp: Stop unload if one DepUn fails
except if force mode set During the unload of a module, if the unload of
one of its dependent (by the dependent unload mechanism) fails abort the
whole unload process. Exception made if the force mode is enabled. In this
case failing module stays loaded and Dependent Unload mechanism continues
with next module to unload.
2019-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework cmdModuleLoad code with break/continue commands
To improve clarity of the cmdModuleLoad procedure replace large if/then/else
conditional blocks by break or continue abortion commands. A catch statement
is set around the evaluation parts of the procedure and if a break happens,
saved settings are restored (which means some evaluation went wrong and
previous settings are rolled back).
* modulecmd.tcl.in: Remove useless rollback in cmdModuleLoad Now
push/pop/restoreSettings procedures correctly handle the conflict, prereq
and alternative names information, there is no need to specificly clear
their relative structures in cmdModuleLoad when setup must be rolled back.
* modulecmd.tcl.in: Rework cmdModuleUnload code with break/continue commands
To improve clarity of the cmdModuleUnload procedure replace large
if/then/else conditional blocks by break or continue abortion commands. A
catch statement is set around the evaluation parts of the procedure and if a
break happens, saved settings are restored (which means some evaluation went
wrong and previous settings are rolled back).
2019-03-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/flavored-modules/modulefiles/.common,
.../modulefiles/flavor/gromacs/plumed,
.../modulefiles/flavor/gromacs/standard,
.../modulefiles/flavor/hdf5/parallel, .../modulefiles/flavor/hdf5/serial,
.../modulefiles/flavor/netcdf-fortran/.modulerc,
.../modulefiles/flavor/netcdf/.modulerc,
doc/example/flavored-modules/modulefiles/gcc/4.8,
doc/example/flavored-modules/modulefiles/gcc/8,
doc/example/flavored-modules/modulefiles/gromacs/5,
doc/example/flavored-modules/modulefiles/hdf5/1.10,
doc/example/flavored-modules/modulefiles/hdf5/1.8,
doc/example/flavored-modules/modulefiles/intel/15,
doc/example/flavored-modules/modulefiles/intel/17,
.../flavored-modules/modulefiles/intelmpi/17,
.../flavored-modules/modulefiles/jasper/1.900,
.../modulefiles/netcdf-fortran/4.4,
.../flavored-modules/modulefiles/netcdf/4.6,
.../flavored-modules/modulefiles/openmpi/2.0,
doc/example/flavored-modules/modulefiles/pgi/18,
doc/example/flavored-modules/modulefiles/wrf/3.9: doc: add example
modulefiles for 'flavored-modules' recipe
2019-03-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ibm, testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-switch.exp: ts: test reverting 'module
load/switch' when req loaded after
2019-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/378-sametarget.exp: Set
requirement from closest match When computing dependencies between loaded
or loading modules, if multiple candidates match a requirement, the closest
one to the requiring module is selected instead of the farest one. This
change makes dependency selection consistent with loaded module selection
which selects lastly loaded module when multiple modules match search.
* modulecmd.tcl.in: Add a 'isModuleUnloadable' helper procedure
isModuleUnloadable checks whether a given loaded module could be
automatically unloaded or not (it can if it has been automatically loaded
and no other loaded module requires it). Use this new procedure in
getUnloadableLoadedModuleList and cmdModuleUnload procedures. For the latter
it simplifies the treatment when 'onlyureq' argment is enabled
* modulecmd.tcl.in, testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-switch.exp: Correct unloadable mod search when
reverting 'module load/switch' Select unload candidate from loaded module
list excluding modules loaded after the current unloading module. So only
module loaded prior dependent module are taken into account. Then pass this
candidate, if any, to cmdModuleUnload and rely on this procedure to unload
module only if it is unloadable. Previous commit was relying on the list of
unloadable modules, obtained from getUnloadableLoadedModuleList procedure,
which sometimes led to corner cases especially if dependency information
were not set somehow (no module would be unloaded in that case as
getUnloadableLoadedModuleList relies only on these dependency information).
As the candidate is selected to be the closest one from the module requiring
it, it changes unloading result when multiple candidates are found prior
requiring module (previously firstly loaded module was unloaded).
2019-03-06 Ben Bowers <nanobowers@gmail.com>
* CONTRIBUTING.rst: Adding emacs settings useful for adhering to coding
conventions Fixes #233
2019-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml: cirrus: fix custom clone script for pull request
2019-03-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/ih/0,
testsuite/modulefiles.deps/iim, testsuite/modulefiles.deps/swg/0,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/375-order.exp,
testsuite/modules.50-cmds/376-switch.exp: Fix mod selection for 'module
load/switch' in modfile when unloading When unloading a loaded module that
contains 'module load' or 'module switch' commands in its modulefile, loaded
required module should be unloaded if it has been automatically loaded.
This commit fixes the selection of this module to unload automatically when
evaluating in unload mode the 'module load' or 'module switch' commands used
in modulefiles. If a loaded module matches the 'module load' or 'module
switch' statement but was loaded after the module making these statements,
it should not be selected as the module to automatically unload. Fixes #232
2019-03-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/swi, testsuite/modulefiles.deps/swj,
testsuite/modulefiles.deps/swk, testsuite/modulefiles.deps/swl,
testsuite/modulefiles.deps/swm, testsuite/modulefiles.deps/swn,
testsuite/modules.50-cmds/376-switch.exp: ts: add 'module switch' in modfile
erroneous situation With switched-off or switched-on or both modules
targeted by 'module switch' fail to load/unload.
2019-02-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.80-deep/068-transitive.exp: Find alt
names of mod coming from distant dirs If an alias is set on a directory and
this directory default element is an alias toward a modulefile. When this
modulefile is loaded, it holds no reference to first alias. For default
elements in a directory that points to a modulefile, when this modulefile is
loaded, it should receive the eventual aliases set on the distant directory
as alternative names. Fixes #231
2019-02-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove unneeded control prior reporting info when
unloading No need to check if we are on main unload action prior reporting
lists of additionnally loaded or unloaded modules in cmdModuleUnload
procedure, as these code sections could only be reached from the main unload
action.
* modulecmd.tcl.in: Remove unneeded recordId push/pop in switch context No
need to adapt message record id for a switch action for code sections that
are never reached when a switch action is ongoing.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: check getLoadedConflict
proc in non-serialized mode
* testsuite/cmd.exe, testsuite/modules.50-cmds/140-system.exp: ts: check
'system' cmd in a Windows simulated context
2019-02-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.other/restore,
testsuite/modules.61-coll/040-restore.exp: ts: check load msg report when
modfile use restore cmd
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: ts: check
getModuleFromLoadingModulefile proc in 00/120 Call procedure against a not
loaded modulefile.
* testsuite/modulefiles.deps/msf, testsuite/modulefiles.deps/mtf,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/375-deps6.exp: ts: basic conflict/prereq test on
fully qualified module name
* modulecmd.tcl.in: Rewrite evaluation mode test in 'system' proc
* testsuite/modules.50-cmds/375-deps6.exp: ts: test an is-loading conflict
check in force mode
2019-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/swa, testsuite/modulefiles.deps/swb,
testsuite/modulefiles.deps/swc, testsuite/modulefiles.deps/swd,
testsuite/modulefiles.deps/swe, testsuite/modulefiles.deps/swf,
testsuite/modulefiles.deps/swg/1, testsuite/modulefiles.deps/swg/2,
testsuite/modulefiles.deps/swh, testsuite/modules.50-cmds/376-switch.exp:
ts: add 'module switch' in modfile dep tests
* modulecmd.tcl.in, testsuite/modulefiles.other/modemptyarg/swap3,
testsuite/modules.50-cmds/152-module-emptyarg.exp: Revert 'module switch' in
modfile when unloading modfile No distinction were made previously for
'module switch' command used in modulefile regarding modulefile evaluation
mode. This was a mistake as an unload evaluation of a modulefile should
revert what has been set at load time. During an unload evaluation, a
'module switch' command is converted to a 'module unload' of the switched-on
module, like for 'module load' command. Nothing is done for switched-off
module, like for 'module unload' command. CAUTION: it is not recommended to
use the `switch` sub-command in modulefiles as this command is intended for
the command-line for a 2in1 operation. Could be removed from the modulefile
scope in a future release. Use `module unload` and `module load` commands in
modulefiles instead. Fixes #226
2019-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/152-module-emptyarg.exp: Track
deps defined by 'module switch' in modfile When 'module switch' commands
are found in modulefiles, track switched-off modulefile as a conflict and
switched-to modulefile as a requirement to apply same behaviors than for
'module load' and 'module unload' commands in modulefiles. If 'switch'
sub-command has only one argument, do not define any conflict, only a
requirement on the defined switched-to argument. CAUTION: it is not
recommended to use the `switch` sub-command in modulefiles as this command
is intended for the command-line for a 2in1 operation. Could be removed from
the modulefile scope in a future release. Use `module unload` and `module
load` commands in modulefiles instead. Fixes #229
* testsuite/modules.95-version/050-fullpathentry.exp: ts: add use/unuse
tests in 95/050 Demonstrate correct addition or removal to MODULEPATH of
entry composed of a bare variable reference.
2019-02-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/modulefiles-in-git/modulefiles/localmodules: doc: mention
author of modulefiles-in-git examples
2019-02-24 Scott Johnson <scottjohnsoninsf@gmail.com>
* .../modulefiles-in-git/modulefiles/localmodules,
doc/source/cookbook/modulefiles-in-git.rst: New cookbook entry for
versioning Modulefiles with Git Originally developed at:
https://github.com/scottj97/environment-modules-in-git
2019-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.95-version/050-fullpathentry.exp:
Accept a variable reference as a full MODULEPATH entry Enable to define a
path entry to the MODULEPATH variable which corresponds to a variable
reference only (not a variable reference mixed in a path string). Was
previously prefixing this variable reference with current working directory
path as variable reference was detected as a relative path. Fixes #223
* init/bash.in, init/csh.in, init/fish.in, init/ksh.in, init/sh.in,
init/zsh.in: init: init MANPATH if not set to preserve man sysconfig In
shell initialization scripts, initialize MANPATH if not set with a value
that preserves manpath system configuration even after addition of paths to
this variable by modulefiles Fixes #224
* contrib/rpm/environment-modules.spec.in: rpm: add CONTRIBUTING guide to
%doc
2019-02-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ra, testsuite/modulefiles.deps/raa,
testsuite/modulefiles.deps/rab, testsuite/modulefiles.deps/rac,
testsuite/modulefiles.deps/rad, testsuite/modulefiles.deps/rae,
testsuite/modulefiles.deps/raf, testsuite/modulefiles.deps/rag,
testsuite/modulefiles.deps/rah, testsuite/modulefiles.deps/rb,
testsuite/modulefiles.deps/rba, testsuite/modulefiles.deps/rbb,
testsuite/modulefiles.deps/rbc, testsuite/modulefiles.deps/rbd,
testsuite/modulefiles.deps/rbe, testsuite/modulefiles.deps/rbf,
testsuite/modulefiles.deps/rbg, testsuite/modulefiles.deps/rbh,
testsuite/modulefiles.deps/rc, testsuite/modulefiles.deps/rd,
testsuite/modulefiles.deps/re, testsuite/modulefiles.deps/rf,
testsuite/modulefiles.deps/rg, testsuite/modulefiles.deps/rh,
testsuite/modulefiles.deps/ri, testsuite/modulefiles.deps/rj,
testsuite/modulefiles.deps/rk, testsuite/modulefiles.deps/rl,
testsuite/modulefiles.deps/rm, testsuite/modulefiles.deps/rn,
testsuite/modulefiles.deps/ro, testsuite/modulefiles.deps/rq,
testsuite/modulefiles.deps/rr, testsuite/modulefiles.deps/rs,
testsuite/modules.50-cmds/377-error.exp: ts: test mod eval crash during auto
handling mechs
2019-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add dep-related internal structs to settings
save/restore In order to correctly restore internal information state when
a modulefile evaluation fails, add all the dependency-related internal
arrays to the list of variables saved prior modulefile evaluation, then
restored in case modulefile evaluation fails.
2019-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/375-order.exp: ts: clear unneeded comment in
50/375-order
2019-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.2.2
2019-02-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ie, testsuite/modulefiles.deps/if,
testsuite/modulefiles.deps/ig, testsuite/modulefiles.deps/ih/1,
testsuite/modulefiles.deps/ih/2, testsuite/modulefiles.deps/ii,
testsuite/modulefiles.deps/ij, testsuite/modules.50-cmds/375-order.exp: ts:
check requirement loading order in 50/375-order
2019-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use NPO deps to compute DepUn list if it heals loaded
mods Compute Dependent Unload module list with regular or "No Particular
Order" dependency structures. Compare both list to choose the accurate one.
Result list obtained from the "No Particular Order" stuctures is chosen if
the loaded environment could be healed after unloading asked module with
dependencies loaded after the modules requiring them. This is guessed from
the length of the obtained lists: less element in NPO list means NPO
dependencies could save some loaded modules from being unloaded by the
Dependent Unload mechanism.
2019-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: ts: adapt err msg for fish 3.0
* modulecmd.tcl.in: No dep struct exist check in
areModuleConstraintsSatisfied No need to test existence of the requirement
list for a loaded module in g_moduleDepend or g_moduleNPODepend structure,
as all loaded modules get an array key in these arrays whether they have
requirements or not.
2019-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Clarify auto handled mods in debug msgs
* modulecmd.tcl.in: Clarify debug msgs on {set,unset}ModuleDependency
2019-02-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/go,
testsuite/modulefiles.deps/gp, testsuite/modulefiles.deps/gq,
testsuite/modulefiles.deps/gr, testsuite/modulefiles.deps/gs,
testsuite/modules.50-cmds/377-cyclic.exp: Update NPO dep structs to break
dep cycle Update the setModuleDependency and unsetModuleDependency
procedures to break any dependency cycle spotted in the No Particular Order
dependency structures.
2019-02-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use NPO deps struct to compute DepUn/DepRe on unload
Use the No Particular Order dependency structures to get the modules to
handle via the Dependent Unload and the Dependend Reload mechanisms at
unload time. Using these No Particular Order dependency structures help to
"heal" the loaded environment after an unload batch as some dependent
modules loaded before their requirements could be reloaded to get an
unloaded requirement replaced by another loaded after dependent. This
change mainly adds the 'nporeq' argument to the getDependentLoadedModuleList
procedure to use the NPO structures rather the order-dependent ones. Then
the sortModulePerLoadedAndDepOrder, areModuleConstraintsSatisfied and
getDirectDependentList procedures are updated in turns to use these NPO
structures when called by getDependentLoadedModuleList in nporeq mode.
* modulecmd.tcl.in: Add structs to manipulate NPO requirements In addition
to the g_moduleDepend, g_dependHash and g_prereqViolation structures that
hold requirement state of loaded modules, taking into account loading order,
introduce the g_moduleNPODepend, g_dependNPOHash and g_prereqNPOViolation
structures that hold requirements between loaded modules whatever their
loading order (No Particular Order taken into account), which means a
requirement loaded after its dependent module will be found in the *NPO*
structures but not in the regular ones.
2019-02-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/375-deps6.exp: ts: adapt test res for only PRE req
are valid
* modulecmd.tcl.in: Only PRE requirement are considered valid When looking
at the dependency of a loaded module, only consider requirement loaded
before dependent (holding a prior position in the loaded module list) as
valid, those loaded after dependent module are considered as an unmet
dependency.
2019-02-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add getUnmetDependentLoadedModuleList for load DepRe
Compute the Dependent Reload module list when loading a module with the
introduced getUnmetDependentLoadedModuleList procedure. Instead of faking
new module is already loaded to get the dependent list able to be reloaded,
missing requirement over new module is just silenced to determine these
Dependent Reload modules. Also take into account requirements loaded after
dependent that help to solve a requirement constraint with upcoming loaded
mod.
2019-01-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/refcon/1,
testsuite/modulefiles.deps/refcon/2,
testsuite/modules.50-cmds/375-deps6.exp: Fix warn msg when forcing a
reflexive conflict Message appeared twice (one for generic name at conflict
command evaluation and one during persistent conflict check at end of load).
2019-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/tcsh_completion.in: init: fix tcsh completion when 'noclobber' var is
set Fix _module_not_yet_loaded alias in tcsh completion script to handle
situation when 'noclobber' variable is set (should force to write to the
fifo files). Also ensure actual 'rm' command is called and not an alias
that may ask for confirmation. Fixes #219
2019-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .cirrus.yml, README.md: Introduce Cirrus CI config file for FreeBSD CI
* .appveyor.yml: appveyor: exclude compat branches from ci
2019-01-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: up MIGRATING for 'eval then check if conflict'
2019-01-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/un/1, testsuite/modulefiles.deps/un/2,
testsuite/modulefiles.deps/un/3, testsuite/modulefiles.deps/una,
testsuite/modulefiles.deps/unb, testsuite/modulefiles.deps/unc,
testsuite/modulefiles.deps/und,
testsuite/modules.50-cmds/379-module-unload.exp: ts: add tests for 'eval
then check if conflict'
2019-01-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/370-deps-bis.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/377-cyclic.exp,
testsuite/modules.50-cmds/377-opposite.exp,
testsuite/modules.50-cmds/378-sametarget.exp,
testsuite/modules.50-cmds/380-altname.exp: ts: fix for 'eval then check if
conflict' Adapt existing tests according to the modulefile evaluation that
now occurs even if a conflict toward modulefile is set prior load. There is
no change to the output shell code (output order may vary as some rollback
may occur after a load tentative if a conflict violation is detected
afterward). Also some stderr output messages may change since a load
tentative is made (so messages outputed within modulefile will be seen). If
evaluation attempt fails on something else than a conflict violation, this
error will take precedence over the conflict error (prereq not found,
modulefile syntax error, etc). If modulefile declares multiple conflicts
which are currently violated, there will be an error message for each of
them as evaluation is going through the whole modulefile before raising
conflict errors.
2019-01-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Evaluate mod then check conflict violation Give the
chance to the 'module unload' statements in modulefile to solve conflict
that were registered prior the load attempt of this modulefile by evaluating
modulefile then check afterward if a conflict violation is there rather
checking if a conflict violation exists (and shout error if there is) before
evaluating modulefile. So modulefile is evaluated even if a conflict is
registered against him prior its evaluation. If a conflict is still set
after its evaluation (and the evaluation of its requirements) everything is
rolled back. The 'module unload' commands could solve these already
registered conflicts. 'conflict' commands used in the loading modulefile
will however still break the load immediately if the conflict is seen
violated to maintain same behavior. With this change, behavior of these
'module unload' modulefile commands is restored to what it was able to do
prior conflict consistency changes, yet this consistency is maintained as
everything is rolled back in the end if conflict is still there.
doesModuleConflict procedure has also been changed to look at loading
modules in addition to loaded modules, since the conflict check triggered by
'module unload' will not raise an error (error is now raised based on the
result of the doesModuleConflict call. Fixes #216
* testsuite/modules.50-cmds/095-uname.exp: ts: escape (, ) and + in 'uname
-v' res
2019-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: add repology packaging status badge in README
2019-01-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/conf.py, modulecmd.tcl.in: New year (2019) copyright mention
update
2019-01-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: fix OSX brew install Ensure homebrew is up-to-date
to avoid consistency issue
2018-12-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/zsh-functions/_module: init: recognize
--{auto,no-auto,force,paginate,no-pager} opts in zsh comp Add recognition
of the --auto, --no-auto, --force, --paginate and --no-pager command-line
switches in zsh shell completion script.
* init/fish_completion: init: recognize --{auto,no-auto,force} opts in fish
comp Add recognition of the --auto, --no-auto and --force command-line
switches in fish shell completion script.
* modulecmd.tcl.in, testsuite/modulefiles/function/1.0,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/391-function-undo.exp: Trim function body passed
to set-function cmd Trim any whitespace, newline or ';' characters at the
beginning or end of the function body passed to set-function modulefile
command to correctly define shell function whatever the writing style used.
2018-12-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/FAQ.rst: doc: add a FAQ entry to desc. use of module from
Makefile Thanks to Robert McLay for the hint.
* doc/source/module.rst: doc: fix typo in Python init example in module man
page
2018-11-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/guide/get_started/03-first_module-bar.sh,
contrib/guide/get_started/13-datadir-common.sh: contrib: fix mkdir in
get_started guide scripts
2018-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* CONTRIBUTING.rst, doc/source/CONTRIBUTING.rst, doc/source/index.rst: doc:
add CONTRIBUTING guide
2018-11-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/example/inhibit-report-info/modulefiles/bar,
doc/example/inhibit-report-info/modulefiles/foo,
.../example}/inhibit-report-info/siteconfig.tcl,
.../example}/top-priority-values/modulefiles/bar/1,
.../example}/top-priority-values/modulefiles/foo/1,
.../example}/top-priority-values/siteconfig.tcl,
.../unload-firstly-loaded/modulefiles/foo/1,
.../unload-firstly-loaded/modulefiles/foo/2,
.../example}/unload-firstly-loaded/siteconfig.tcl, doc/source/cookbook.rst,
doc/source/cookbook/inhibit-report-info.rst,
doc/source/cookbook/top-priority-values.rst,
doc/source/cookbook/unload-firstly-loaded.rst, doc/source/index.rst: doc:
introduce cookbook Add a cookbook section in the documentation and port
there the 3 pre-existing recipes: inhibit-report-info, top-priority-values
and unload-firstly-loaded. Move the examples files of these recipes from
contrib/cookbook to doc/example directory.
2018-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/ia,
testsuite/modulefiles.deps/ib, testsuite/modulefiles.deps/ic,
testsuite/modulefiles.deps/id, testsuite/modules.50-cmds/373-deps4.exp: Fix
DepUn when all mods from an opt list are unloaded Correct the Dependent
Unload mechanism when it triggers the unload of 2 modules making together a
requirement from another module. This module is now also added to the
dependent modules to unload as both modules from its requirement definition
are unloaded.
2018-11-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.2.1
2018-11-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.70-maint/152-remove-path.exp: Rework ref counter handling
and relative error mngt No more disturbing warning messages when reference
counter variable is not coherent with its relative environment variable.
Erroneous value will raise a debug message only and relative reference
counter is ignored (which means a count of 1 is applied). Now environment
variable is trusted and if its path elements are found in a reference
counter variable, this counter is taken into account. Elsewhere, a reference
counter of 1 is applied. Which means a value found in reference counter
variable but not in variable is ignored. A value found in variable but not
in reference counter (or with a bad reference counter value) gets a count of
1 applied. Adapt existing tests in 70/152 and 50/40 and add some unload
command tests in 50/040. Fixes #206
2018-11-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/csh.in, init/fish.in, init/ksh.in, init/sh.in,
init/zsh.in: init: skip shell env alteration if autoinit cmd failed Fixes
#208
2018-11-07 Satya Mishra <satya.devel@gmail.com>
* init/csh.in, testsuite/modules.70-maint/120-autoinit.exp: use :q to quote
prompt to accomodate prompts with embedded newlines
* modulecmd.tcl.in: use :q to quote prompt to accomodate prompts with
embedded newlines
2018-11-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ha/1, testsuite/modulefiles.deps/ha/2,
testsuite/modulefiles.deps/ha/3, testsuite/modulefiles.deps/hb,
testsuite/modulefiles.deps/hc, testsuite/modulefiles.deps/hd,
testsuite/modulefiles.deps/he, testsuite/modulefiles.deps/hf,
testsuite/modulefiles.deps/hg, testsuite/modules.50-cmds/378-sametarget.exp:
ts: tests multiple deps targeting same mod in 50/378
* modulecmd.tcl.in: Fix dep computation when opt prereq list target same mod
Ensure a loaded module matching multiple entries of a same 'or' prereq will
just be considered as one module matching prereq.
* modulecmd.tcl.in, testsuite/modulefiles.deps/fia,
testsuite/modules.50-cmds/377-deps8.exp: Fix dep computation when unloading
for multi ref Some dependencies expressed may target same module so it is
important to safely unset dependency reference (in case unset has already
been performed)
2018-11-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ga, testsuite/modulefiles.deps/gb,
testsuite/modulefiles.deps/gc, testsuite/modulefiles.deps/gd,
testsuite/modulefiles.deps/ge, testsuite/modulefiles.deps/gf,
testsuite/modulefiles.deps/gg, testsuite/modulefiles.deps/gh,
testsuite/modulefiles.deps/gi, testsuite/modulefiles.deps/gj,
testsuite/modulefiles.deps/gk, testsuite/modulefiles.deps/gl,
testsuite/modulefiles.deps/gm, testsuite/modulefiles.deps/gn,
testsuite/modulefiles.deps/gw, testsuite/modulefiles.deps/gx,
testsuite/modulefiles.deps/gy, testsuite/modulefiles.deps/gz,
testsuite/modules.50-cmds/377-cyclic.exp: ts: tests cyclic dep situations in
50/377-cyclic
2018-11-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Check 'module load' mod not already loading before
loading it Useful in case of cyclic dependencies to avoid an infinite
loading loop.
2018-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Compute loaded mod dependency relations without cycle
When computing dependency relations between loaded modules and a freshly
loaded one, do not launch a refresh of those unmet relations for an already
loaded module with the new one if this relation closes a dependency cycle.
When parsing the already loaded environment, the loaded module dependency
relations are computed giving each module only the visibility of modules
loaded prior it. Modules loaded after one module are not taken into account
as they have not taken part of its requirements.
2018-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Check prereq mod is not already loading before loading
it Useful in case of cyclic dependencies to avoid an infinite loading loop.
2018-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/373-deps4.exp: ts: clarify test in 50/373 with a
UreqUn mod found after dependent
2018-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/mt: contrib: select between files at same ts num in 'mt'
2018-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst, modulecmd.tcl.in,
testsuite/etc/modulerc.altname, testsuite/etc/rc,
testsuite/modulefiles.deps/alt/9, testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.50-cmds/380-altname.exp: Enable 'is-loaded' for modulerc
eval Make 'is-loaded' modulefile command callable from a modulerc
interpretation. Restore this way the behavior of compatibility version.
Update diff doc and add some specific non-regression tests in 20/060 and
50/380. Fixes #207
2018-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/faa, testsuite/modulefiles.deps/fab,
testsuite/modulefiles.deps/fac, testsuite/modulefiles.deps/fad,
testsuite/modulefiles.deps/fae, testsuite/modulefiles.deps/faf,
testsuite/modulefiles.deps/fai, testsuite/modulefiles.deps/faj,
testsuite/modulefiles.deps/fak, testsuite/modulefiles.deps/fal,
testsuite/modulefiles.deps/fam, testsuite/modulefiles.deps/fan,
testsuite/modules.50-cmds/377-deps8.exp,
testsuite/modules.50-cmds/377-opposite.exp: ts: test opposite defs using
diff cmds and alt names 50/377
2018-10-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/380-altname.exp: ts: test empty/bad elt in
MODULES_LMALTNAME in 50/380
* testsuite/modules.50-cmds/120-prereq-full.exp: ts: test empty elt in
MODULES_LMNOTUASKED in 50/120
* testsuite/modules.50-cmds/130-conflict-full.exp: ts: test empty/bad elt in
MODULES_LMCONFLICT in 50/130
* testsuite/modules.50-cmds/120-prereq-full.exp: ts: test empty/bad elt in
MODULES_LMPREREQ in 50/120
* testsuite/home/coll12, testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: restore coll holding incompat
modfiles in 61/040
* testsuite/home/coll11, testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: save/restore coll with mod
using 'module load' cmd
2018-10-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/.modulerc, testsuite/modulefiles.deps/fr,
testsuite/modulefiles.deps/fs, testsuite/modulefiles.deps/ft,
testsuite/modulefiles.deps/fu, testsuite/modules.50-cmds/377-deps8.exp: ts:
test similar defs using diff cmds and alt names 50/377
* testsuite/modulefiles.deps/i6, testsuite/modulefiles.deps/i7,
testsuite/modules.50-cmds/380-altname.exp: ts: test module {unload,load}
cmds on alt names in 50/380
* testsuite/modulefiles.deps/.modulerc, testsuite/modulefiles.deps/fn,
testsuite/modulefiles.deps/fo, testsuite/modulefiles.deps/fp,
testsuite/modulefiles.deps/fq, testsuite/modules.50-cmds/377-deps8.exp: ts:
test dup dep set with diff cmds and alt names in 50/377
2018-10-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/fj, testsuite/modulefiles.deps/fk,
testsuite/modulefiles.deps/fl, testsuite/modulefiles.deps/fm,
testsuite/modules.50-cmds/377-deps8.exp: ts: test dup dep set with diff cmds
in 50/377
* testsuite/modulefiles.deps/fi, testsuite/modules.50-cmds/377-deps8.exp:
ts: test dependency reordered dup defs in 50/377
* testsuite/modulefiles.deps/fa, testsuite/modulefiles.deps/fb,
testsuite/modulefiles.deps/fc, testsuite/modulefiles.deps/fd,
testsuite/modulefiles.deps/fe, testsuite/modulefiles.deps/ff,
testsuite/modulefiles.deps/fg, testsuite/modulefiles.deps/fh,
testsuite/modules.50-cmds/377-deps8.exp: ts: test dependency exact duplicate
defs in 50/377
2018-10-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ma, testsuite/modulefiles.deps/mb,
testsuite/modulefiles.deps/mbs, testsuite/modulefiles.deps/mbt,
testsuite/modulefiles.deps/mbu, testsuite/modulefiles.deps/mc,
testsuite/modulefiles.deps/md, testsuite/modulefiles.deps/me,
testsuite/modulefiles.deps/mf, testsuite/modulefiles.deps/mg,
testsuite/modulefiles.deps/mh, testsuite/modulefiles.deps/mi,
testsuite/modulefiles.deps/mj, testsuite/modulefiles.deps/mk,
testsuite/modulefiles.deps/ml, testsuite/modulefiles.deps/mm,
testsuite/modulefiles.deps/mn, testsuite/modulefiles.deps/mo,
testsuite/modulefiles.deps/mp, testsuite/modulefiles.deps/mq,
testsuite/modulefiles.deps/mr, testsuite/modules.50-cmds/370-deps-bis.exp:
ts: duplicate 50/370 tests with module {load,unload} cmds Instead of
prereq/conflict commands.
* modulecmd.tcl.in, testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/375-deps6.exp: Check mod to unload is not required
by a loading mod Adapt getDependentLoadedModuleList and
getDirectDependentList procedure to be able to take currently loading
modules into account when looking for modules requiring a given module.
Help to refrain a "module unload" order set within a modulefile to unload a
module required by a loading module evaluated deeper in the stack. Adapt
exiting tests working on inconsistent situations.
2018-10-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in: init: fix unload/switch cmd completion on bash
* modulecmd.tcl.in, testsuite/modules.20-locate/090-memcache.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.70-maint/080-help.exp: Add details on active interp on
debug msg
* testsuite/modulefiles.deps/u, testsuite/modules.50-cmds/370-deps.exp: ts:
no spread of broken mod dep defs to next eval mod
* testsuite/modules.70-maint/070-display.exp: ts: auto/no-auto/force args
are ignored on other cmd
2018-10-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/puts/9, testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.90-avail/070-full.exp: ts: check puts is linked to correct
interp
* testsuite/etc/rc, testsuite/modules.20-locate/060-rc.exp: ts: check
'module-info command' resolution from global rc
2018-10-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Use Tcl
'if' or 'expr' ternary operator
* modulecmd.tcl.in: Correctly filter a wild findModules cache When it is
used in a non-wild case later on.
2018-10-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.memcache/foo/1,
testsuite/modulefiles.memcache/foo/2, testsuite/modulefiles.memcache/foo1/1,
testsuite/modulefiles.memcache/foo1/2,
testsuite/modulefiles.memcache/look/1,
testsuite/modulefiles.memcache/look/2,
testsuite/modulefiles.memcache/look/3,
testsuite/modulefiles.memcache/look/4,
testsuite/modulefiles.memcache/look/5,
testsuite/modulefiles.memcache/look/6,
testsuite/modulefiles.memcache/look/7,
testsuite/modulefiles.memcache/look/8, testsuite/modulefiles.memcache/sp
cial/1, testsuite/modules.20-locate/090-memcache.exp: ts: add 20/090 to test
findModules cache
* modulecmd.tcl.in: Adopt Tcl minimal escaping style (fix additional strs)
* modulecmd.tcl.in: Remove useless msg prefix from some reportDebug calls
* modulecmd.tcl.in: Brace value of default path separator on Win As ';' is
elsewhere interpreted as a Tcl syntax keyword
* modulecmd.tcl.in: Brace g_pager setting as it can be empty If Modules is
configured with --without-pager for instance.
* testsuite/modulefiles/alias/3.0, testsuite/modulefiles/function/2.0,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/390-function.exp: ts: fix tests based on
modulecmd.tcl content As 'adopt minimal escaping style' change the piece of
string searched by some tests.
2018-10-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Adopt Tcl minimal escaping style See
https://wiki.tcl.tk/41378
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/system/2.0, testsuite/modules.50-cmds/140-system.exp,
testsuite/systest1: Fix 'system' to run cmd through shell system modulefile
command is intended to the command passed to it trough shell, like done on
compatibility version. So update system procedure to find correct shell on
the current platform and run command through it. Doing so, shell commands
with backticks for instance are correctly run. Fixes #205
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module: init: fix saved coll listing in
bash/zsh/tcsh/fish completions When no collection is currently found.
* init/fish_completion, init/tcsh_completion.in: init: fix loaded modules
listing in tcsh/fish completions
2018-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../cookbook/top-priority-values/siteconfig.tcl: cookbook: port
'top-priority-values' to v4.2
* contrib/cookbook/unload-firstly-loaded/siteconfig.tcl: cookbook: port
'unload-firstly-loaded' to v4.2
* .../cookbook/inhibit-report-info/siteconfig.tcl: cookbook: add
'inhibit-report-info' recipe Helpful for #204
2018-10-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.2.0
* MIGRATING.rst: doc: add cross-ref for each v4.2 new feature in MIGRATING
2018-10-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/151-module-onlytop.exp: ts: fix 50/151 for new
block report style
* MIGRATING.rst: doc: desc. new modfile cmds for v4.2 in MIGRATING
* .travis.yml: travis: increase again git clone depth to catch last tag
2018-09-09 Ben Bowers <nanobowers@gmail.com>
* doc/source/diff_v3_v4.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/function/1.0, testsuite/modulefiles/function/2.0,
testsuite/modules.50-cmds/390-function.exp,
testsuite/modules.50-cmds/391-function-undo.exp,
testsuite/modules.90-avail/070-full.exp: added set-function and
unset-function commands fixed linelength and tabs/spaces adding
set-function/unset-function documentation adding tests for
set-function/unset-function fixed failing test for function modulefile
additions
2018-10-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/mt: contrib: add 'mt' utility Helps to run just a specific part
of the test suite
* modulecmd.tcl.in, testsuite/modulefiles/system/2.0,
testsuite/modules.50-cmds/140-system.exp, testsuite/systest: Fix args pass
on 'system' modfile command Correctly transmit the arguments along with the
command to execute. Need to use 'eval' for the underlying command to get its
multiple args and not one joined string. Fixes #201
2018-10-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modules.50-cmds/180-unload.exp: Support 'remove' as an alias on
'unload' command As compatibility version does Fixes #200
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in,
init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modules.50-cmds/180-unload.exp: Support 'del' as an alias on
'unload' command Like compatibility version does. Fixes #200
2018-10-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/057-mcookie.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: fix tests when ts path
includes spec chars
2018-10-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. improved message report in MIGRATING
* testsuite/modules.50-cmds/310-puts.exp: ts: fix 50/310 for block output
rendering Transform load tests in non-regexp test to avoid re escaping
chars to count in line split mechanism.
2018-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/130-auto_handling.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/380-altname.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.80-deep/022-switch.exp: ts: adapt tests to new block
report style
* modulecmd.tcl.in: Set a rec msg id for reload action Create a record
message id during the reload action to let underlying unload and load
actions to know they are not the top-level action. May be use later on to
provide sum-up information resulting from this reload action.
* modulecmd.tcl.in: Set a rec msg id for purge action Create a record
message id during the purge action to let underlying unload actions to know
they are not the top-level action. May be use later on to provide sum-up
information resulting from this purge action.
2018-10-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report unload/load made during a module restore Report
for the top level module restore all the modules that have been unloaded and
loaded during this restore action.
* modulecmd.tcl.in: Inhibit DepRe load phase on load if switch ongoing If a
switch action is ongoing, inhibit the DepRe load phase when loading switched
to module. Instead add the DepRe module list to the already gathered DepRe
list from the unload action of the switched out module.
* modulecmd.tcl.in: Report additional load/unload during a module switch
Report for the top level module switch all the additional modules that have
been automatically unloaded or loaded during this main switch. Report
record is still enabled on the top unload/load actions part of switch
action, but additional unload/load sumup information is recorded against
switch report. This way errors popping during these main unload or load
actions are reported against their relative unload/load record like if an
unload or load has just occured.
2018-10-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Report additional load/unload during a module unload
Report for the top level module unload all the additional modules that have
been automatically unloaded or loaded during this main unload When auto
handling is disabled but some extra modules have been unloaded during the
unload process (due to module load commands in modulefile) then report these
extra unloads as Useless Requirement Unload (UReqUn)
* modulecmd.tcl.in: Report additional load/unload during a module load On a
top level module load (main load action), report all the additional modules
that have been unload or loaded for this main load process to succeed.
Three helper procedures are added for this change: reportInfo,
getDiffBetweenList and isMsgRecordIdTop.
* modulecmd.tcl.in: Clear all modlist arg from getUnloadableLoadedModuleList
res
2018-10-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.other/longerrword,
testsuite/modules.70-maint/200-errdisp.exp: ts: add 70-maint/200-errdisp
tests
* modulecmd.tcl.in, testsuite/modules.00-init/120-siteconfig.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/060-apropos.exp: Ask for a blankline prior next
content with reportSeparateNextContent Update displayElementList procedure
to use this new reportSeparateNextContent procedure rather handling its own
global flag (g_eltlist_disp). Adapt testsuite related to displayElementList
output
2018-10-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Split line if too wide in reportMsgRecord
* modulecmd.tcl.in: Add procs to format conflict/prereq err msgs
2018-09-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Record messages to report them by block on load/unload
Save warning, error and internal bug message produced during a cmdModuleLoad
or cmdModuleUnload evaluation for a module to report all these messages as a
dedicated "Loading <module>" or "Unloading <module>" block after evaluation.
A recording ID is set when preparing a load or an unload evaluation. If a
recording ID is found when running reportError, the message is recorded in a
global structure rather reported immediately. Once evaluation is finished,
all messages are rendered under a block. Improve this way readability of
those messages when evaluating mode may cascade a lot of stuff.
* modulecmd.tcl.in, testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/376-deps7.exp,
testsuite/modules.50-cmds/380-altname.exp: Neat prereq/conflict err msg when
called from cmdModule procs Remove useless 'WARNING: ' prefix as message
goes to reportError.
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.70-maint/060-apropos.exp: Report global error raised from
modfile eval as error Was reported as WARNING previously which was
confusing as these errors are fatal for modulefile evaluation. Use prefix
code "GLOBALERR " when raising error to catch them in execute-modulefile and
distinguish the global errors from the Module internal bug. As a side nice
effect, these kind of evaluation error are now reported through reportError,
which makes them automatically silent on global evaluation (like avail or
search). Adapt testsuite
* modulecmd.tcl.in: Make report{Warning,InternalBug} rely on reportError
* modulecmd.tcl.in: Handle nonewline report arg as boolean Instead of a
string. Remove this nonewline arg from reportDebug, reportWarning and
reportError as it was unused.
2018-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../cookbook/unload-firstly-loaded/siteconfig.tcl: cookbook: add
'unload-firstly-loaded' recipe Helpful for #198
* doc/source/diff_v3_v4.rst: doc: desc. unload diff when multiple loaded
mods match Helpful for #198
* doc/source/diff_v3_v4.rst, modulecmd.tcl.in,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/068-transitive.exp: Only look at loaded modules
when unloading Adapt getPathToModule procedure to only look at the loaded
module list when searching a module to unload. If passed module not found in
this situation does not produce an "Unable to locate modulefile" issue. So
unloading an unexistent modulefile does not produce an error anymore, as it
was the case on compatibility version. Moreover switching from an
unexistent modulefile to another modulefile does not produce the "Unable to
locate modulefile" error and new module load is attempted. Compatibility
version does not walk in this situation as on this version module to unload
must be loaded elsewhere an error is triggered. Adapt testsuite and diff
document. Fixes #199
2018-09-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. module load/unload consistency in MIGRATING
2018-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: From warn/nuasked to onlyureq/onlyndep args on
cmdModuleUnload Change warn and nuasked arguments previously added to
cmdModuleUnload procedure by onlyureq and onlyndep to better cope needs.
'onlyureq' indicates only the not required anymore modules should be
unloaded (not user asked modules or those not required by another loaded
module). This flag is enabled when dealing with 'module load' commands in
modulefiles interpreted in unload mode. If a module cannot be unloaded
because it is required, then no error message is produced. So 'onlyureq'
argument replaces both 'warn' and 'nuasked' arguments. 'onlyndep' indicates
that only modules not required by other modules should be unloaded. It is
used when dealing with 'module unload' commands in modulefiles interpreted
in load mode. This is useful when force mode is enabled to avoid breaking
the dependency of a loaded module when trying to load a module declaring
this dependency as a module to unload (acts like for conflicts).
2018-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Return err if conflicts found in cmdModuleLoad When
passed module cannot be loaded due to a conflict, set cmdModuleLoad to
return an error code. Which may be interpreted as a sub-interpretation
failure if this load was triggered by a 'module load' command in modulefile.
* modulecmd.tcl.in, testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.70-maint/140-multiargs.exp: Raise prereq error if 'module
load' not satisfied Call prereq procedure rather just bare setLoadedPrereq
when interpreting 'module load' commands found in modulefiles. When
auto_handling mode is enabled, prereq will also handle the cmdModuleLoad
call. This call is still done in module procedure if auto_handling is
disabled. In case load is not satisfied, prereq error message will be
obtained.
2018-09-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/m1, testsuite/modulefiles.deps/m2,
testsuite/modulefiles.deps/m3, testsuite/modulefiles.deps/m4,
testsuite/modulefiles.deps/m5, testsuite/modulefiles.deps/m6,
testsuite/modulefiles.deps/m7, testsuite/modules.50-cmds/376-deps7.exp: ts:
add tests for module load/unload & auto_handling
2018-09-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.allin/allin/1,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/375-deps6.exp: ts: adapt to modfile 'module
unload' auto handling
* testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp: ts: adapt to modfile
'module load' auto/no-auto handling More test case adaptation to follow the
new 'module load' commands handling when the auto_handling mechanisms are
enabled or disabled. The tests changed here show different behavior whether
auto_handling is enabled or not. Due to the fact that module unloads is not
cascaded when auto_handling is enabled and UReqUn modules ares unloaded in
reverse loaded order, not in the order specified within modulefile. These 2
behavior changes lead to different result: command order change, unwind
process when a module to unload is erroneous, or variable resulting value
when unloading modules compete over same variable to set.
2018-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Auto handling and 'module unload' commands in modulefile
'module unload' commands in modulefiles may impact the auto handling mode,
so a few things need to be adapted: - on 'load' mode, proceed with the
unload which may raise error if the module is required by another loaded
module. - on 'load' mode, set a conflict toward modules to unload to ensure
they will not be loaded afterward. If module has not been correctly unloaded
prior the conflict definition, modulefile defining the 'module unload'
command will not be loaded. - on 'unload' mode, does nothing as the defined
conflict ensure environment consistency and will forbid conflicting module
load. If conflicting module has been loaded, it means this situation has
been forced so there is no expectation this module who defines a 'module
unload' effectively unloads this module which is required by the user.
2018-09-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.80-deep/020-load.exp: ts: adapt to modfile 'module load'
auto handling
* modulecmd.tcl.in: Auto handling and 'module load' commands in modulefile
'module load' commands in modulefiles may impact the auto handling mode, so
a few things need to be adapted: - on a 'load' mode, register each module
passed to the module load command as a prereq of evaluated modulefile. This
way the dependency will correctly be tracked - on an 'unload' mode, proceed
to the unload action when evaluating the 'module load' statement only if
auto handling is disabled. Do nothing when evaluating the statement if auto
handling is enabled, as these modules will be unloaded as part of the UReqUn
mechanism. This way all unload/reload are triggered from the top unload
action to ensure nothing will get in the way of the DepUn/DepRe/UReqUn
processed from there. Note that on an unload mode, modules are unloaded
only if no other loaded modules require them and they have not been asked by
user, elsewhere no unload is made to ensure the consistency of the loaded
environment (as these modules are explicitely required by user or by another
loaded module) Treating these modules to unload through UReqUn mechanism
leads to some behavior changes: - unload interpretation is not cascaded
anymore in this case and every module to unload are processed sequentially -
a consequence of the previous point is that an error happening when
processing the unload of a UReqUn module, will not unwinds the whole unload
process as it does when auto_handling is disabled - unload happens in the
reverse loaded order, not in the order defined by the 'module load' commands
in the modulefile - as a consequence of this previous point, environment
change after the whole unload may be different if the unloaded modules
compete over a variable to set when unloading (last module to be unloaded
will not be the same)
2018-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'nuasked' arg to cmdModuleUnload proc Add a
'nuasked' argument to the cmdModuleUnload procedure to control whether or
not only the non-user-asked modules should be unloaded.
2018-09-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove useless global var in cmdModuleUnload
* modulecmd.tcl.in: Add 'warn' arg to cmdModuleUnload proc Add a 'warn'
argument to the cmdModuleUnload procedure to control whether or not display
the warning message when a module cannot be unloaded because it is still
required by other loaded module. This argument is equal to true every time
except for the interpretation of 'module load' commands in modulefile when
mode is 'unload'. In this situation module unload may not be performed if
module is still required but it is a normal situation like the UReqUn
mechanism (only the useless modulefiles are automatically unloaded).
* modulecmd.tcl.in: Avoid unloading mods from getDependentLoadedModuleList
res Excludes modules currently being unloaded from the result of
getDependentLoadedModuleList procedure. This situation may appear when
unloading a module containing itself a "module load" commands, which is
translated into a "module unload" command on unload module. When in turns
this modulefile targetted by the "module load" command is unloaded, it
should not found its dependent modulefile who is currently being unloaded
into its dependent result list to avoid UReqUn/DepUn infinite loop.
2018-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: Fix uninitialized 'rows' var
in displayElementList proc Add test case in 00-init/120-siteconfig to
demonstrate a setup that falls in the uninitialized 'rows' pit. Fixes #195
2018-09-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/mcookie/1, testsuite/modulefiles/mcookierc/.modulerc,
testsuite/modulefiles/mcookierc/1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/057-mcookie.exp: Check version set in modulefile
magic cookie Magic cookie at the beginning of modulefiles may sometimes set
a version number, for instance '#Module1.0'. Until now this version number
was about a modulefile standard version. However there is no known
modulefile API versioning and new modulefile commands are added along new
Modules releases. So the idea here is to match this version number
optionally set on magic cookie and compare it to the modulecmd.tcl release
version. If modulefile sets a version number greater than modulecmd.tcl
version, this modulefile is not evaluated like when no magic cookie is set
at all. Add specific tests in 20-locate suite and adapt modulefile man page
and MIGRATING doc. Fixes #171
2018-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, INSTALL.rst, Makefile, Makefile.inc.in, configure,
init/Makefile, init/bash.in, init/cmake.in, init/fish.in, init/ksh.in,
init/perl.pm.in, init/python.py.in, init/r.R.in, init/ruby.rb.in,
init/sh.in, init/tcl.in, init/zsh.in, modulecmd.tcl.in, site.exp.in,
testsuite/install.00-init/060-quar.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: install: add
--enable-quarantine-support configure opt Add the ability to control
whether or not code to support quarantine mechanism should be added to the
module function and initialization scripts. Enabled by default Fixes #167
2018-09-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, INSTALL.rst, Makefile, Makefile.inc.in, configure,
init/Makefile, init/bash.in, init/ksh.in, init/sh.in, init/zsh.in,
modulecmd.tcl.in, site.exp.in, testsuite/install.00-init/030-options.exp,
testsuite/modules.70-maint/120-autoinit.exp: install: add
--enable-silent-shell-debug-support configure opt Add the ability to
control whether or not code to support silent shell debug should be added to
the module function and sh-kind initialization scripts. Enabled by default
Fixes #166
2018-09-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: init: split unset of shdbg and
quar-related vars
* .travis.yml, INSTALL.rst, configure: install: add --with-bin-search-path
configure opt Get in control of the path list used to search the tools
required to build and configure Modules. Default value:
/usr/bin:/bin:/usr/local/bin Adapt one travis scenario to test the setup of
a specific value for this configure option. Fixes #164
* MIGRATING.rst: doc: desc. alt name consistency in MIGRATING
2018-09-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst, doc/source/module.rst,
doc/source/modulefile.rst: doc: desc. alt name in manpages and diff doc
Also fix some typos found on the way and clarifies commands where symbolic
versions and aliases where already supported.
* testsuite/modules.50-cmds/350-allin.exp: ts: skip allin tests if
domainname tool not there
2018-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.altname, testsuite/modulefiles.deps/alt/.modulerc,
testsuite/modulefiles.deps/alt/1, testsuite/modulefiles.deps/alt/7,
testsuite/modulefiles.deps/alt/8,
testsuite/modulefiles.deps/alt/dir/.modulerc,
testsuite/modulefiles.deps/alt/dir/2, testsuite/modulefiles.deps/alt/dir/3,
testsuite/modulefiles.deps/alt/dir/4, testsuite/modulefiles.deps/alt/dir/5,
testsuite/modulefiles.deps/alt/dir/6, testsuite/modulefiles.deps/alt2/1,
testsuite/modulefiles.deps/i1, testsuite/modulefiles.deps/i2,
testsuite/modulefiles.deps/i3, testsuite/modulefiles.deps/i4,
testsuite/modulefiles.deps/i5/1, testsuite/modulefiles.deps/i5/2,
testsuite/modules.50-cmds/380-altname.exp: ts: add alt name specific tests
* modulecmd.tcl.in: Match alt names on is-loading query Look at all names
resolving to loading modules for is-loading queries.
* modulecmd.tcl.in, testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/999-cleanup.exp: Mod inherits alt names of its
parent directories Improve correlation especially on unload actions. A
module alias set on a parent directory of a module will be added to the list
of module alternative names, thus it will be matched when attempting an
unload on this alias name.
2018-08-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.80-deep/068-transitive.exp: ts: adapt resolution warning
test with alt name These warning messages are not displayed anymore as
alternative names registered in environment are used instead of triggering a
modulefile resolution through the modulepaths.
* testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/157-info-loaded.exp: ts: adapt env consistency
test results with alt name Alternative name match leads to loaded
environment correlation test. So this test is now performed most of the
time.
2018-08-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Check mod alt names when comparing mod to names When
checking if a loaded module name matches a given string, also checks if
match happens with any of the alternative names of mod. Add
doesModuleMatchesName procedure to check mod main and alternative names.
Then replace 'string first' tests by a call to this new procedure in
conflict, getLoadedWithClosestName, getLoadedMatchingName,
doesModuleConflict and setModuleDependency procedures. Register alternative
names of module prior its modulefile evaluation as this information is
required before any query of matching conflict (call to doesModuleConflict
procedure or call to conflict procedure during modulefile evaluation).
Fixes #143
2018-08-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.80-deep/999-cleanup.exp: ts: adapt existing tests to
MODULES_LMALTNAME
2018-08-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Register loaded module alt names in MODULES_LMALTNAME A
module may have alternate names resulting from the module alias or symbolic
version set through the resolution of its modulefile. Here we start to keep
track of these alternative names for every loaded modules by using an
environment variable: MODULES_LMALTNAME. It follows the same tracking
principle than used for keeping track of conflicts or prereqs between
modules. Helper procedures are introduced to get/set module alternative
names. Right after loading modulefile, its alternative names are retrieved
from the ::g_resolvedHash resolving array and set to the
g_loadedModuleAltname array wich is then used to get and set alternative
names value without dependency to the alias/symbol global resolving process.
* MIGRATING.rst: doc: cite Flavours for AMHM in MIGRATING doc
* MIGRATING.rst, doc/source/module.rst: doc: add DepUn + clarify
UReqUn,DepRe Especially regarding the inter-dependencies between these
mechanisms and the specificities of the switch sub-command.
2018-08-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, doc/source/module.rst, modulecmd.tcl.in,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/374-deps5.exp,
testsuite/modules.50-cmds/375-deps6.exp: Brand auto handling mechanisms *
Requirement Load (ReqLo) * Dependent Reload (DepRe) * Useless Requirement
Unload (UReqUn) * Dependent Unload (DepUn) Mention these mechanism titles
in MIGRATION and module man page documentations. Reword code and tests that
where previously using the DU/DR/URU short names.
2018-08-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/FAQ.rst, doc/source/conf.py: doc: mention createmodule.{sh,py}
scripts in FAQ Fixes #189
* modulecmd.tcl.in: No prereq violation set for dependent on
getDependentLoadedModuleList Modules strongly requiring mods where
previously set in prereq violation state as mod where unloaded. Remove that
since these modules requiring mod during an unload (the DU modules) are now
part of the list of modules passed as argument to
getDependentLoadedModuleList. So this part of the code will not be run
anymore.
* modulecmd.tcl.in: Move remaining 'lsearch -exact == -1' to notInList
2018-08-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/375-deps6.exp: No prereq
violation warn msg for DR mech or purge During a purge or the unload phase
of the DR mechanism do not warn about the unload process violating a prereq
constraint. In these situation, violation is due to the dependent module
not being able to also unload or to unload prior its requirement. All of
this because this dependent module is its in a violation state.
* testsuite/modules.50-cmds/374-deps5.exp: ts: add DU/DR/URU tests on switch
action
2018-08-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No getPathToModule call in cmdModuleSwitch Simplify
code of cmdModuleSwitch which now relies more on cmdModuleUnload. There is
no more need to resolve module to unload within cmdModuleSwitch as it is
perfectly handled with its related modules to unload within cmdModuleUnload.
* modulecmd.tcl.in: Rely on cmdModuleUnload DU/URU/DR during switch Rely on
the DU/URU mechanisms of cmdModuleUnload during a switch action and also the
unload part of the DR mechanism. cmdModuleUnload transmit the DR module
list to cmdModuleSwitch for this procedure to be able to handle the reload
phase of the DR mechanism once the newly switched-to module is loaded. This
change makes useless the being_reload argument of the
getDependentLoadedModuleList procedure, as module candidates are now found
when looking for DU modules in cmdModuleSwitch. being_reload argument is
thus removed from getDependentLoadedModuleList proc.
2018-08-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/h50, testsuite/modulefiles.deps/h51,
testsuite/modulefiles.deps/h52, testsuite/modulefiles.deps/h53,
testsuite/modulefiles.deps/h54, testsuite/modulefiles.deps/h55,
testsuite/modulefiles.deps/h56, testsuite/modulefiles.deps/h57,
testsuite/modulefiles.deps/h58, testsuite/modulefiles.deps/h60,
testsuite/modulefiles.deps/h61, testsuite/modulefiles.deps/h62,
testsuite/modulefiles.deps/h63, testsuite/modulefiles.deps/h64,
testsuite/modulefiles.deps/h65, testsuite/modulefiles.deps/h66,
testsuite/modulefiles.deps/h67, testsuite/modulefiles.deps/h68,
testsuite/modulefiles.deps/h69, testsuite/modulefiles.deps/h70,
testsuite/modulefiles.deps/h71, testsuite/modulefiles.deps/h72,
testsuite/modulefiles.deps/h73, testsuite/modulefiles.deps/h74,
testsuite/modules.50-cmds/373-deps4.exp: ts: add new tests DU
mechanism-specific
2018-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/375-deps6.exp: Introduce "Dependent Unload" (DU)
mechanism Add the ability when auto handling is enabled to unload modules
requiring the module asked for unload rather shouting an error. Dependent
Unload (DU) mechanism builds list of all modules actively requiring (not
optionaly requiring it) the module set for unload or actively requiring
modules part of this DU batch. These DU modules are then unloaded prior
main module unload, not to be there anymore once module asked for unload is
in turn unloaded. These DU modules also contributes to determine the list
of Useless Requirement Unload (URU) modules. As unloading the DU modules may
also add new URU modules. These DU modules also contributes to determine
the list of Dependent Reload (DR) modules. As unloading the DU modules may
also add new DR modules. Take this opportunity to clarify comments around
Dependent Reload (DR) and Useless Requirement Unload (URU) mechanisms in
cmdModuleUnload procedure. Update "deps" test expectations now the DU
mechanism is in place.
* modulecmd.tcl.in: Pass a module list to getUnloadableLoadedModuleList
Like for getDependentLoadedModuleList procedure makes
getUnloadableLoadedModuleList able to process a module list passed as
argument.
2018-08-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Compute 'drmodlist' only if auto enabled in
cmdModuleLoad
* modulecmd.tcl.in: Rename 'depmod' in 'drmodlist' in cmdModule{Load,Unload}
Rename local variable 'depmod' into 'drmodlist' (dependent reload module
list) for clarification.
* modulecmd.tcl.in: Treat list of elt in appendNoDupToList Adapt
appendNoDupToList to treat list of elements rather just a single element
* modulecmd.tcl.in: Work over 1 list in getDependentLoadedModuleList Only
use 'fulllist' as 'testlist' could be merged into 'fulllist'.
* modulecmd.tcl.in: Work over 1 list in getUnloadableLoadedModuleList Only
use 'fulllist' as 'unmodlist' could be deduced from it in the end.
* modulecmd.tcl.in: Add appendNoDupToList helper proc Add procedure to
append to a list an element if this element is not already part of this list
* modulecmd.tcl.in: Add isInList/notInList helper procs Introduce two
helper procedures to check existence of an element in a list: isInList and
notInList. When this script compatibility will moved from Tcl>=8.4 to
Tcl>=8.5, will change these helper procs in 'in' and 'ni'.
* modulecmd.tcl.in: Add getDirectDependentList helper procedure Add a
getDirectDependentList procedure in charge of querying ::g_dependHash array
to return list of dependent modules, stronly or weakly attached to passed
mod.
2018-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/h30,
testsuite/modulefiles.deps/h31, testsuite/modulefiles.deps/h32,
testsuite/modulefiles.deps/h33, testsuite/modulefiles.deps/h34,
testsuite/modulefiles.deps/h35, testsuite/modulefiles.deps/h36,
testsuite/modulefiles.deps/h37, testsuite/modulefiles.deps/h38,
testsuite/modulefiles.deps/h39, testsuite/modulefiles.deps/h40,
testsuite/modules.50-cmds/373-deps4.exp: Pass a module list to
getDependentLoadedModuleList Adapt getDependentLoadedModuleList procedure
to get a module list as argument rather a single module name. Helps to get
in one call all the dependent modules of those passed as argument. Also
improve correctness as sometimes multiple modules may violate constraint of
another one. To get this module freed, all conflicting modules may set
unloaded. So if all of these conflicting modules are passed as argument to
getDependentLoadedModuleList, the dependent module will be seen freed and
will be part of the procedure result list.
2018-08-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deps/h10,
testsuite/modulefiles.deps/h11, testsuite/modulefiles.deps/h12,
testsuite/modulefiles.deps/h20, testsuite/modulefiles.deps/h21,
testsuite/modulefiles.deps/h22, testsuite/modulefiles.deps/h23,
testsuite/modulefiles.deps/h24, testsuite/modulefiles.deps/h25,
testsuite/modules.50-cmds/373-deps4.exp: Trigger full useless prereqs unload
from main unload Call from the main unload action the automatic unload of
prereq modules that became useless due to main module unload. To achieve
that, getUnloadableLoadedModuleList procedure now returns to the tree of
unloadable modules. Then cmdModuleUnload calls over this unloadable module
list is made in a --no-auto mode not to deviate from what was computed
before unload/load processing.
* modulecmd.tcl.in, testsuite/modulefiles.deps/h1,
testsuite/modulefiles.deps/h2, testsuite/modulefiles.deps/h3,
testsuite/modulefiles.deps/h4, testsuite/modules.50-cmds/373-deps4.exp:
Compute list of unloadable required modules prior unload When unloading a
module, its requirements that have been automatically loaded and are not
required by any other module will automatically be unloaded when their
dependent module is unloaded. Compute the list of these unloadable required
modules prior to the unload of their dependent module, not to be confused by
currently being reloaded dependent module that may hold a requirement on
these potentially unloadable modules. Merge getRequiredLoadedModuleList
procedure into getUnloadableLoadedModuleList that now takes the name of the
module being unloaded as argument. Call getUnloadableLoadedModuleList prior
any module change so determine that a required module will be useless after
module unload if this required module has only one dependent (module
currently being unloaded)
* modulecmd.tcl.in: Add 'direct' arg to getDependentLoadedModuleList proc
Split meaning of 'strong' argument into a new argument named 'direct'. Now
strong means active dependency (not an optional one). And direct means only
first-level dependent, when equals to 0 it means the full dependency tree
should be returned.
2018-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/373-deps4.exp: Ensure
--no-auto mode on load phase of dependent reload Ensure dependent modules
reload do not deviate from previously loaded list. Like already done during
a "switch" action. Here now also applies to "load" and "unload" actions.
* modulecmd.tcl.in, testsuite/modulefiles.deps/g1,
testsuite/modulefiles.deps/g2, testsuite/modulefiles.deps/g3,
testsuite/modulefiles.deps/g4, testsuite/modulefiles.deps/g5,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/373-deps4.exp,
testsuite/modules.50-cmds/375-deps6.exp: Split dependent reload process
around main action When reloading dependent module during a module load or
a module unload, split this reload process into an unload phase, prior main
action, than a load phase after main action. Performing this way helps
dependent module to get refreshed accurately with an unload phase in same
situation than their last load. Then load phase of the reload process will
be able to correctly adapt with new dependency loaded or unloaded.
Proceeding this way enables modulefiles to adapt their variable definitions
based on their loaded requirements. However when prereq or conflict
violation constraint appear, unload stage of a dependent module may not
correctly unset variable as described in nonreg tests.
2018-08-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add reloadModuleList{Unload,Load}Phase procs Split
module reload process into 2 procedures: reloadModuleListUnloadPhase that
unloads module list and reloadModuleListLoadPhase that load it again after.
Adapt cmdModuleReload and cmdModuleSwitch to take advantage of these new
procedures.
2018-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Handle uasked flag on cmdModuleSwitch proc Add a
'uasked' argument to the cmdModuleSwitch procedure to determine if the
module to load during the switch action is asked by user (called on the
command line or in a first level sourced file) or not.
2018-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: fix cea-hpc/modules appveyor weblink
2018-08-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: add gcc in build
requirements for compat version Reference:
https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot
2018-08-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.1.4
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles.deep/badmodvers/.version,
testsuite/modulefiles.deep/badmodvers/dir1/2.0,
testsuite/modulefiles.deep/badmodvers/foo,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.90-avail/070-full.exp: ModulesVersion can only refer to
modfile in same dir Clarify modulefile man page and .version modulerc
interpretation about ModulesVersion variable which can only refer to
modulefile located in the same directory than where this .version modulerc
file is located. Report error if a nested ModulesVersion value is detected.
This value is ignored. Add tests in 80-deep suite on that change.
Clarifies RH#979787 [1] Fixes #176 [1]
https://bugzilla.redhat.com/show_bug.cgi?id=979787
2018-08-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../cookbook/top-priority-values/modulefiles/bar/1,
.../cookbook/top-priority-values/modulefiles/foo/1,
.../cookbook/top-priority-values/siteconfig.tcl: cookbook: add
'top-priority-values' recipe
2018-08-16 Jan Synacek <jsynacek@redhat.com>
* contrib/scripts/createmodule.py: contrib: createmodule.py: fix typo
* contrib/scripts/createmodule.py: contrib: createmodule.py: open pipes in
text mode Otherwise, pipes are opened in binary mode and there are type
errors further down the code.
* contrib/scripts/createmodule.py: contrib: createmodule.py: fix tab
indentation
2018-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: add appveyor build badge in README
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Fix exec()
usage in module func on Python3 Need to pass a variable namespace to exec()
function to get the value of the '_mlstatus' variable generated by
modulecmd. This change enables to return correct status on Python3, as
exec() function behaves differently between Python2 and 3 [1]. [1] https://
stackoverflow.com/questions/15086040/behavior-of-exec-function-in-python-2-a
nd-python-3
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.60-initx/080-access.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.80-deep/080-access.exp: ts: skip 08?-access tests if
locked dir/file are still readable
* testsuite/modules.10-use/080-access.exp: ts: skip tests in 10/080 when
file readable in locked dir
* contrib/gitlog2changelog.py: Fix gitlog2changelog.py script for python3
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/050-crossshell.exp: ts: sh and ksh shells on MSYS2
behaves like on CYGWIN
2018-08-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.90-avail/070-full.exp: ts: skip tty cols nb test if cols
nb cannot be changed
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/099-uname-cleanup.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.70-maint/060-apropos.exp: ts: adapt expected results when
'domainname' not avail On MSYS2, domainname is not available, which
produces error message on 'uname/domain' modulefile. This message shows up
on every 'module search' queries. Here all impacted test cases are updated
to expect this error message on all module search queries.
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.70-maint/130-aliases.exp: ts: skip mod symlink tests if no
fs support
2018-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .appveyor.yml: Introduce AppVeyor config file for Windows CI
* configure: install: look for 'make' on MSYS2
2018-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: help compat configure to locate tclConfig.sh on osx
* testsuite/modulefiles.deps/dh, testsuite/modulefiles.deps/ea,
testsuite/modulefiles.deps/eb, testsuite/modulefiles.deps/ec,
testsuite/modulefiles.deps/ed, testsuite/modulefiles.deps/ee,
testsuite/modulefiles.deps/ef, testsuite/modulefiles.deps/eg,
testsuite/modules.50-cmds/374-deps5.exp: ts: add complex deps tests on
switch command
2018-08-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/373-deps4.exp: ts: add more missing prereq tests
in 50/373
* testsuite/modules.50-cmds/130-conflict-full.exp: ts: --{no-,}auto switch
tests on conflict situations
2018-07-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp: ts: --{no-,}auto switch
tests on prereq situations
2018-08-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No auto_handling when reloading dependent during a
switch Disable auto handling mode during a switch command when reloading
the modules dependent on "old" after "new" being loaded. Proceed this way
to avoid unsatisfied requirements, now "old" is unloaded to be solved
automatically against user will. As a result, some of the dependent modules
may not be reloaded if "new" module does not satisfy their constraint.
2018-07-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/375-deps6.exp: Reload
dependent and not conflicting anymore on switch When switching a module by
another, add to the list of module to reload, those modules dependent of
unloaded module and those modules that were in conflict with unloaded module
that can take advantage of this unload to be reloaded.
2018-07-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/mv, testsuite/modules.50-cmds/375-deps6.exp:
ts: warning when --force used in modulefile
2018-07-31 Colin Marquardt <github@marquardt-home.de>
* modulecmd.tcl.in: Ignore dirs .SYNC/ (DesignSync) and .sos/ (SOS).
2018-07-28 Colin Marquardt <github@marquardt-home.de>
* doc/source/FAQ.rst: Fix small typo.
2018-07-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. conflict& prereq consistency/auto/force in
MIGRATING
2018-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst: doc: desc. env var change in MIGRATING
* doc/source/diff_v3_v4.rst: doc: desc. conflict& prereq
consistency/auto/force in diff
2018-07-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc. --force in
module.1
2018-07-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst: doc: desc.
--auto/--no-auto/MODULES_AUTO_HANDLING in module.1
2018-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/130-conflict-full.exp: ts: --force over
unsatisfied conflict when --no-auto
* testsuite/modules.50-cmds/120-prereq-full.exp: ts: --force over
unsatisfied prereq when --no-auto
2018-07-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.61-coll/030-save.exp: ts: check saving collection when
constraint not satisfied
2018-07-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/375-deps6.exp: ts: add reload tests to
50-cmds/375-deps6
* modulecmd.tcl.in: No reload of all loaded mods if constraints are violated
* testsuite/modules.50-cmds/375-deps6.exp: ts: add purge tests to
50-cmds/375-deps6
* modulecmd.tcl.in: Reload dependent if auto=1 on cmdModuleUnload Makes
'auto' argument of cmdModuleUnload procedure also control the reload of all
dependent modules once passed mod has been unloaded. 'auto' argument was
already controlling the automatic unload or modules required by passed mod
to unload if these required modules have been loaded without being asked by
users. As a consequence the unloading phase of a purge or reload command or
event the unload phase of the dependent modules of a switch command do not
attempt to reload the dependent modules. (as these dependent modules will be
handled through the same unload phase).
2018-07-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/f1, testsuite/modulefiles.deps/f10,
testsuite/modulefiles.deps/f11, testsuite/modulefiles.deps/f12,
testsuite/modulefiles.deps/f13, testsuite/modulefiles.deps/f14,
testsuite/modulefiles.deps/f15, testsuite/modulefiles.deps/f16,
testsuite/modulefiles.deps/f17, testsuite/modulefiles.deps/f18,
testsuite/modulefiles.deps/f19, testsuite/modulefiles.deps/f2,
testsuite/modulefiles.deps/f20, testsuite/modulefiles.deps/f21,
testsuite/modulefiles.deps/f22/1, testsuite/modulefiles.deps/f22/2,
testsuite/modulefiles.deps/f23, testsuite/modulefiles.deps/f24,
testsuite/modulefiles.deps/f25, testsuite/modulefiles.deps/f26,
testsuite/modulefiles.deps/f27, testsuite/modulefiles.deps/f28,
testsuite/modulefiles.deps/f29, testsuite/modulefiles.deps/f3,
testsuite/modulefiles.deps/f4, testsuite/modulefiles.deps/f5,
testsuite/modulefiles.deps/f6, testsuite/modulefiles.deps/f7,
testsuite/modulefiles.deps/f8, testsuite/modulefiles.deps/f9,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/375-deps6.exp: ts: add deps tests when constraints
are violated
* modulecmd.tcl.in: Take disapearing prereq in account on
getDependentLoadedModuleList When 'being_unload' argument is set, which
means passed mod is currently being unloaded, exclude from result list the
loaded modules requiring passed mod. As this module is being unloaded, these
dependend modules are entering in a violation state, so they cannot be
reloaded. This is achieved by temporarily defining the dependent modules in
prereq violation state, for the time of the getDependentLoadedModuleList
procedure execution.
2018-07-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Change sortPerModuleLoadedOrder into
sortModulePerLoadedAndDepOrder Rename sortPerModuleLoadedOrder proc into
sortModulePerLoadedAndDepOrder. Sort is now refined to take dependencies
into account: a dependent module should be placed prior the loaded module
requiring it. This refinement is made to avoid reloading multiple times the
same loaded module when dependent module is set after module requiring it in
list.
2018-07-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'being_unload' arg to getDependentLoadedModuleList
Indicate to getDependentLoadedModuleList procedure that targeting module is
being unloaded. In this case the procedure will return loaded modules
conflicting with passed mod and the dependent modules of these conflicting
module. These loaded modules are added to the dependent loaded module list
since passed mod is being unloaded, they can be reloaded now the conflict
violation is fixed. This reload garanties the modules previously in conflict
are now correctly loaded and in an expected loaded order.
2018-07-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce a 'force' arg to cmdModuleUnload Add the
ability to by-pass requiring modules check when unloading a module with an
argument on the cmdModuleUnload procedure. This new 'force' argument is
enabled when reloading modules as the requirement by-pass will immediately
be fixed once the required modules are loaded again. Happens when reloading
dependent modules on load, unload and switch actions. Some of the dependent
modules may be excluded from reloading module list as they are in a
prereq/conflict violation state so the remaining modules to reload may face
some requiring modules still loaded, thus their reload need to be forced.
Also enabled when purging loaded modules as all modules should be unloaded
even if some violations make unloading prereqs before the module requiring
them.
* modulecmd.tcl.in: Rename 'autounload' cmdModuleUnload arg into 'auto'
2018-06-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No collection save if mod constraints unsatisfied Raise
error on a save sub-command is some module constraint is not satisfied.
* modulecmd.tcl.in: Update getDependentLoadedModuleList to return sane deps
Add a sat_constraint argument to getDependentLoadedModuleList procedure to
ask for dependent loaded modules whose constraints are satisfied. This
argument is enabled when reloading dependent modules in load, unload and
switch actions. A areModuleConstraintsSatisfied procedure is introduced and
getDependentLoadedModuleList relies on it to determine if a given loaded
module has its constraints (prereq and conflict) satisfied as well as all
loaded modules whose given loaded module depends on. When no module name is
passed to areModuleConstraintsSatisfied, this procedure returns if all
loaded module satisfy their loading constraints.
2018-06-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Track loaded mod violating their prereq/conflict def
Update setModuleDependency and unsetModuleDependency procedures to
register/unregister in a ::g_prereqViolation array loaded modules violating
their prereq definition (means they have been loaded in force mode or their
prereq was unloaded in force mode). Proceed in a similar way for conflicts
with a ::g_conflictViolation array, still in setModuleDependency and
unsetModuleDependency procedures. For prereq violation, updates of
dependent loaded module eventual violation is obtained by the re-compute of
the dependency chain performed in setModuleDependency and
unsetModuleDependency. For conflict violation, updates of violation state
is done for loaded modules conflicting with module processed by
setModuleDependency or unsetModuleDependency. To achieve that list of
conflicting-with loaded modules is set in ::g_conflictViolation array. This
array is handled by setModuleConflictViolation and
unsetModuleConflictViolation procedures. doesModuleConflict procedure is
updated on the way to skip from its result eventual own reflexive conflict,
as this procedure is now called once mod is effectively loaded and not
anymore prior mod load (as when it is called from cmdModuleLoad). Also check
conflicting modules declared by current module are loaded or not.
2018-06-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/tcsh_completion.in, modulecmd.tcl.in,
testsuite/modules.00-init/090-switches.exp: By-pass conflict/prereq issue
with -f/--force cmd-line switches Add -f/--force command-line switches to
by-pass dependency consistency in case of * load of a module conflicting
with another loaded module * load of a module where its declared
requirements cannot be loaded * unload of a module required by other loaded
module These options are only useful for the load, unload and switch module
sub-commands. When a dependency is actually by-passed, still produce a
warning message to help user learn that something has effectively been
forced. Warning messages will be improved later-on to let user better
understand what happens Update shell completion scripts.
2018-06-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1,
testsuite/modules.50-cmds/130-conflict-full.exp: Remove g_force with path
ref counting meaning As a consequence a loaded module cannot be loaded a
second time in force mode. So the check of this situation in conflict
procedure is not useful anymore as the TESTSUITE_ENABLE_SITECONFIG_DEBUG
non-regression test.
* modulecmd.tcl.in, testsuite/modulefiles.deps/mu,
testsuite/modules.50-cmds/372-deps3.exp: Ignore --auto/--no-auto opt when
called from modulefile
2018-06-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: desc. MODULES_LM{CONFLICT,NOTUASKED,PREREQ} in
module.1
2018-06-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion.in, init/fish_completion, init/tcsh_completion.in:
init: add pager opts in shell completion scripts
* testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.50-cmds/373-deps4.exp: ts: always test auto handling in
50-cmds Adapt tests relying on an enabled auto_handling mode in 50-cmds
suite to set in any cases MODULES_AUTO_HANDLING environment variable to
perform the tests whatever the auto_handling mode set at configure time.
Also update prereq tests in 50-cmds/12* to check behaviors when
auto_handling is disabled and when it is enabled.
* init/bash_completion.in, init/tcsh_completion.in, modulecmd.tcl.in,
testsuite/modules.00-init/130-auto_handling.exp: Add --auto/--no-auto
command-line switches Add the ability to control from the command-line
whether the auto_hanling mode should be enabled or disabled. Command-line
option override auto_handling enablement value set with
MODULES_AUTO_HANDLING environment variable or set at configure time. Update
tests and shell completion scripts.
* modulecmd.tcl.in, testsuite/modules.00-init/130-auto_handling.exp:
Introduce MODULES_AUTO_HANDLING Add the ability to control whether the
auto_handling mode should be enabled or disabled with an environment
variable: MODULES_AUTO_HANDLING. When set to 0 or 1, this environment
variable overrides value set for auto_handling mode at configure time.
2018-06-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/da, testsuite/modulefiles.deps/db,
testsuite/modulefiles.deps/dc, testsuite/modulefiles.deps/dd,
testsuite/modulefiles.deps/de, testsuite/modulefiles.deps/df,
testsuite/modulefiles.deps/dg, testsuite/modules.50-cmds/373-deps4.exp: ts:
add broken prereq in list tests
* testsuite/home/coll10, testsuite/home/coll9,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: ts: add coll tests for
--notuasked flag
2018-06-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/ca, testsuite/modulefiles.deps/cb,
testsuite/modulefiles.deps/cc, testsuite/modulefiles.deps/cd,
testsuite/modulefiles.deps/ce, testsuite/modulefiles.deps/cf,
testsuite/modulefiles.deps/cg, testsuite/modules.50-cmds/373-deps4.exp: ts:
add dependent module handling checks
* testsuite/modulefiles.deps/ms, testsuite/modulefiles.deps/mt,
testsuite/modulefiles.deps/s, testsuite/modulefiles.deps/t,
testsuite/modules.50-cmds/372-deps3.exp: ts: add prereq/conflict consistency
checks
2018-06-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/372-deps3.exp: ts: add tests for is-loading
conflict check Introduce 372-deps3 tests to check dependency consistency
whatever the auto_handling state.
2018-06-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework is-loading to get closer to is-loaded handling
Rework is-loading procedure to call getLoadedMatchingName procedure like
is-loaded. Adapt getLoadedMatchingName to work on loading modules rather
loaded modules. To achieve that, isModulefileLoading,
getModuleFromLoadingModulefile, getLoadingModuleFileList and
getLoadingModuleList procedures are introduced to be called instead of their
'loaded' counterpart when getLoadedMatchingName is called to look at loading
modules. Remove is-loading procedure from aliases set for modulefile
interpreter as there is no current need to acces such kind of procedure
during a modulefile evaluation context.
2018-06-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Check unloading mod prereq violation whatever
auto_handling state Ensure unloading module does not violate a registered
prereq set by an already loaded module whatever the auto_handling state as
it does not relate to an automatic handling mechanism.
* modulecmd.tcl.in: Check loading mod conflict violation whatever
auto_handling state Ensure loading module does not violate a registered
conflict set by an already loaded module whatever the auto_handling state as
it does not relate to an automatic handling mechanism.
* modulecmd.tcl.in: Raise is-loading conflict error whatever auto_handling
state Ensure conflict statement is satisfied even against modules currently
being loaded. This error raise is not related to an automatic handling
mechanism so it is triggered whatever the auto_handling state.
2018-06-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Loads from a top source cmd are considered user asked
If module load orders are made from a 'module source' or during the source
of an autoinit commands, consider these 'module load' orders found during
evaluation as user asked orders.
2018-06-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/322-is-avail.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: Record not user asked mod
rather user asked For better and simpler compatibility with previous
modulecmd version and also for using same approach for both loaded
environment and saved collections, track in the user environment the loaded
modules that have not been asked by user (modules that have been
automatically loaded as dependency of another loaded module) instead of
tracking those loaded modules directly asked by user. As a consequence
MODULES_LMUASKED is transformed in MODULES_LMNOTUASKED and modulecmd.tcl
code is adapted to determine the 'user asked' state from this negated
record. Adapt the whole testsuite consequently.
2018-06-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rely on isModuleUserAsked rather
getLoadedModuleUserAskedList Use isModuleUserAsked procedure rather
checking list result returned by getLoadedModuleUserAskedList procedure to
determine a loaded module has been asked by user.
* modulecmd.tcl.in: Replace reloadDepLoadedModuleList by cmdModuleReload
Drop reloadDepLoadedModuleList procedure to make use of cmdModuleReload in
cmdModuleLoad and cmdModuleUnload to reload dependent modules. Adapt
cmdModuleReload procedure to pass it a module list. If no list provided,
proc falls back to the full currently loaded module list.
* modulecmd.tcl.in: Unload/load dep mod one by one in cmdModuleSwitch Like
for reload command, change cmdModuleSwitch to unload then reload dependent
module list one by one rather unloading/loading user asked modules only and
rely on the dependency mechanism. Doing so, the loaded module list that
need to be reloaded is kept as it is exactly reloaded one by one.
* modulecmd.tcl.in, testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/370-deps.exp,
testsuite/modules.50-cmds/371-deps2.exp: Unload/load dep mod one by one in
reloadDepLoadedModuleList Like for reload command, change
reloadDepLoadedModuleList to unload then reload dependent module list one by
one rather unloading/loading user asked modules only and rely on the
dependency mechanism. Doing so, the loaded module list that need to be
reloaded is kept as it is exactly reloaded one by one. No more need to mark
currently loaded module as 'user asked' to avoid it to be reloaded during
reloadDepLoadedModuleList, since we now proceed one by one. Remove
setModuleUserAsked and unsetModuleUserAsked procedures now they are useless.
2018-06-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No auto unload/load on restore/purge/reload Call
cmdModuleUnload with autounload of leaf dependencies disabled when
performing a restore, purge or reload command. So it gets same unload
behavior (processing each module one by one in specified order) whatever the
auto_handling state. Then reload module one by one on restore and reload
commands whatever the auto_handling state to follow the same principle.
* modulecmd.tcl.in: Add autounload arg to cmdModuleUnload Control the
automatic unload attempt of leaf requirements, once mod has been unloaded,
with an 'autounload' argument on cmdModuleUnload proc.
* testsuite/modulefiles.deps/aa, testsuite/modulefiles.deps/ab,
testsuite/modulefiles.deps/ac, testsuite/modulefiles.deps/ad,
testsuite/modulefiles.deps/ae, testsuite/modulefiles.deps/af,
testsuite/modulefiles.deps/ag, testsuite/modulefiles.deps/ah,
testsuite/modulefiles.deps/ai, testsuite/modulefiles.deps/aj,
testsuite/modulefiles.deps/ak, testsuite/modulefiles.deps/bf,
testsuite/modulefiles.deps/bi, testsuite/modulefiles.deps/bj,
testsuite/modulefiles.deps/bk, testsuite/modules.50-cmds/371-deps2.exp: ts:
add 50-cmds/371-deps2 tests
2018-06-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add sortPerModuleLoadedOrder proc Add
sortPerModuleLoadedOrder procedure to sort passed module list following the
module loaded order.
* modulecmd.tcl.in: Rework code to get unload autoloaded mods when no more
req Add getRequiredLoadedModuleList proc to return all loaded modules in
the requirement list of passed mod. This proc is called once mod has been
unloaded, prior to the deletion of these requirement info in
cmdModuleUnload. Add getUnloadableLoadedModuleList proc, to return the
modules that have been automatically loaded and could now be automatically
unloaded, as no more modules requires them (mandatory or optionaly). This
proc takes the result of getRequiredLoadedModuleList as input.
2018-06-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Gets dep modules with getDependentLoadedModuleList proc
Introduce the 'getDependentLoadedModuleList' procedure to retrieve the
currently loaded modules that require the mod passed as argument. By default
only strong dependencies are returned (loaded modules directly depending on
passed mod and not having an alternative module loaded to satisfy their
prereq). When non-strong dependencies are asked, 'depended by' dependencies
are searched recursively to return all loaded modules linked to passed
module. This new 'getDependentLoadedModuleList' procedure relies on the
global arrays managed by setModuleDependency procedure. It replaces both
getDepLoadedModuleList and getActiveDepLoadedModuleList procedures.
2018-05-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Move deps-related procs near similar oth procs
* modulecmd.tcl.in: Build and maintain dep chain between loaded mod
Introduce setModuleDependency and unsetModuleDependency procedures to build
and maintain global arrays representing the dependency chain between loaded
modulefiles based on the prereqs defined by each of these modules.
setModuleDependency is called when module is loaded or current environment
state is analyzed (called by setLoadedModule). unsetModuleDependency is
called when module is unloaded (called by unsetLoadedModule). The
g_moduleDepend array is set for each loaded module as a mirror of their
relative definition in g_loadedModulePrereq, where module reference in the
prereq definition is replaced by the name of the actual loaded modulefile
matching the module reference. When a module reference of a prereq
definition has no match among the currently loaded modulefiles, this unmet
dependency is registered instead in the g_moduleUnmetDep global array. This
situation happens when an optional dependency is not satisfied or if the
load of a module has been forced (no dependency loaded prior to the load of
the asked module). Reverse arrays are also set (g_dependHash and
g_unmetDepHash) to easy the search of registered elements. When a new
module is loaded, setModuleDependency looks if this new module was
previously set as an unmet dependency. If it is the case, update dependent
loaded modules dependency definition now the unmet dep is satisfied.
2018-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.deps/a, testsuite/modulefiles.deps/b,
testsuite/modulefiles.deps/c, testsuite/modulefiles.deps/d,
testsuite/modulefiles.deps/e, testsuite/modulefiles.deps/f,
testsuite/modulefiles.deps/g, testsuite/modulefiles.deps/h,
testsuite/modulefiles.deps/i, testsuite/modulefiles.deps/j,
testsuite/modulefiles.deps/k, testsuite/modulefiles.deps/l,
testsuite/modulefiles.deps/m, testsuite/modulefiles.deps/n,
testsuite/modulefiles.deps/o, testsuite/modulefiles.deps/p,
testsuite/modulefiles.deps/q, testsuite/modulefiles.deps/r,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/370-deps.exp: ts: add 50-cmds/370-deps tests
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp: ts: add procs to format
conflict/prereq err msg
* .travis.yml: travis: enable autohandling on one test config
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp: ts: clean new MODULES_LM* env
vars at ts startup
* testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp: ts: adapt prereq tests if
autohandling is enabled
2018-05-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework mod user asked internal handling Change module
user asked internal handling (registering/unregistering in global
structures) to get similar handling than loaded module list. Rename
g_lmUasked into g_loadedModuleUasked to get closer to the name used for
conflicts and prereqs registration. Primarily sets g_loadedModuleUasked
through setLoadedModule procedure and unsets through unsetLoadedModule. Add
isModuleUserAsked procedure to check if passed mod has been asked by user.
Temporarily add setModuleUserAsked and unsetModuleUserAsked procedures to
set/unset g_loadedModuleUasked array, for use around
reloadDepLoadedModuleList call in cmdModuleLoad.
* modulecmd.tcl.in: Clean currentModule var from cmdModule{Load,Unload}
procs
2018-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No uasked found on current env means all are uasked
When looking at the current environement state in cacheCurrentModules
procedure, if no user asked modules are found then all loaded modules are
user asked modules. Helps transition between a Modules version not knowing
about 'user asked' modules and a newer Modules version introducting this
tracking feature. Environment setup on the previous Modules version will
still be functionnal if newer Modules version is upgraded live.
* modulecmd.tcl.in: Ignore '--notuasked' flag in case it is passed on module
load --notuasked flag enables to keep track of the user asked state in
saved collection (by flagging those not directly asked by user). Ignore it
if passed directly to a 'module load' command (do not raise error) in case a
collection file is sourced like a shell script. Do not advertise this new
flag as it has no effect and should be kept internal as user asked mechanism
is automatically controlled from the location the module load command is
issued.
* modulecmd.tcl.in: No uasked found in collection means all are usaked If
none of the loaded modules found in collection is marked 'user asked', this
means all modules saved are user asked to make collections saved prior to
the user asked change still valid on new Modules version.
* modulecmd.tcl.in: Track user asked loaded modules whatever auto_handling
state Keep track of the loaded modules asked by user whether the
auto_handling option is enabled or disabled. A loaded module has been asked
by user when its load order is coming from the user not from the evaluation
of a modulefile. Keeping track of this state in any cases will help to
introduce per-module command automatic handling. Also saved collections do
not break when auto_handling is enabled or disabled on Modules installation
afterward. An 'uasked' first position argument is set on cmdModuleLoad
procedure to pass the user asked state. cmdModuleReload is reworked to
correctly restore the user asked state for each module unloaded in its first
operation phase. cmdModuleSwitch always sets the module it loads as user
asked. Should be discussed later on in conjunction with the behavior of this
sub-command when called from a modulefile. Collections sub-commands and
related utility procedures have been reworked to save and restore the
non-'user asked' state of the loaded modules. Non-'user asked' state is
recorded rather 'user asked' state to fit collection saved prior to this
change were every modules mentionned in collection are considered 'user
asked'. When restoring a collection currently loaded modules are unloaded to
be loaded again even if they got same loading position than in collection
but a different user asked state. Non-user asked state is saved in
collection by adding the '--notuasked' argument on recorded module load
lines.
2018-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Register conflict/prereq/usaked whatever auto_handling
state Get, set and export in environment loaded modules declared conflicts,
prereqs and their 'user asked' state whether the auto_handling option is
enabled or not. Keep g_auto_handling to control automated actions but
information registering is perfomed in any cases. Will help to introduce
per-module command automatic handling and by-pass mechanism, still keeping a
consistent intel.
* modulecmd.tcl.in: Initial rework of mod prereq internal handling Change
module prereq internal handling (registering/unregistering in global
structures) to get similar handling than loaded module list. Rename
g_lmPrereq into g_loadedModulePrereq. Remove ModulesCurrentPrereq global
list, that were registering the prereq list of the currently evaluated
module. Now directly registers into g_loadedModulePrereq. If evaluation goes
wrong and is aborted, then prereqs registered in g_loadedModulePrereq are
unregistered to correctly restore state prior evaluation. Introduce set,
unset and get accessors for the g_modulesPrereq array. getLoadedPrereq is
also able to return its result serialized to manage MODULES_LMPREREQ
environment variable.
2018-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Rework mod conflict internal handling Change module
conflict internal handling (registering/unregistering in global structures)
to get similar handling than loaded module list. Rename g_lmConflict into
g_loadedModuleConflict. Remove ModulesCurrentConflict global list, that
were registering the conflict list of the currently evaluated module. Now
directly registers into g_loadedModuleConflict, to be able to check only one
structure to get both loaded and loading defined conflicts. If evaluation
goes wrong and is aborted, then conflicts registered in
g_loadedModuleConflict are unregistered to correctly restore state prior
evaluation. Introduce set, unset and get accessors for the
g_loadedModuleConflict array. getLoadedConflict is also able to return its
result serialized to manage MODULES_LMCONFLICT environment variable. A
doesModuleConflict procedure is also added to return whether or not passed
module conflicts with currently defined rules.
2018-05-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Parse MODULES_LMUASKED with getLoadedModuleUserAskedList
proc
* modulecmd.tcl.in: Parse MODULES_LMPREREQ with getLoadedModulePrereqList
proc
* modulecmd.tcl.in: Parse MODULES_LMCONFLICT with
getLoadedModuleConflictList proc
* modulecmd.tcl.in: Rename g_def_separator_lvl{2,3} in g_sub{1,2}_separator
And normalize access to these global variables (using $::varname).
2018-05-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, Makefile, Makefile.inc.in, configure, modulecmd.tcl.in,
site.exp.in: install: add --enable-auto-handling configure opt Enable or
disable the automatic modulefile handling at configure time with
'--enable-auto-handling' option. Disabled by default, will be set enbaled by
default in next major release (v5). Throw this configure information to the
testsuite to adapt result depending of feature enablement.
2018-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Set g_auto_handling as
g_orig_load_control+g_auto_resolve_dep Gather all automatic module handling
features enablement under a single g_auto_handling global variable, rather
g_orig_load_control and g_auto_resolve_dep. Automated actions are all
enabled or all disabled to simplify tests and configurations.
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/322-is-avail.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: ts: adapt test results for
asked mod registration
2018-05-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Register module asked for load in MODULES_LMUASKED
Change name of the environment variable used to register the names of
modules explicitely asked for load by user (not loaded automatically as
dependency): from _LMSTICKY_ to MODULES_LMUASKED in order to get a MODULES_
common prefix for all Modules-specific environment variables.
2014-05-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introducing automatic module dependency resolution
Introduce an automatic module dependency resolution by attempting during a
"module load" to load modules declared as prereq and attempting during a
"module unload" to unload modules declared as prereq if they have been
loaded automatically. To distinguish between modules loaded upon user
request or automatically for dependency resolution, module load requested by
user are registered as "sticky" in _LMSTICKY_ environment variable.
Additionnally all switched modules are considered sticky. Module commands
managing the whole set of loaded modules (save, restore, purge and reload)
have been adapted to only work over the sticky modules to take benefit from
the dependency resolution. Moreover, when reloading modules declaring a
prereq during a switch, load or unload action, only sticky modules are
reloaded. Original dependency management behavior is preserved by default.
Automatic dependency resolution can be enabled by setting to 0 the
g_auto_resolve_dep variable in modulecmd.tcl script.
2018-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/350-allin.exp: ts: adapt test results for prereq
registration
2018-04-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Register declared prereq in MODULES_LMPREREQ Change
name of the environment variable used to register prereqs declared by loaded
modules: from _LMPREREQ_ to MODULES_LMPREREQ in order to get a MODULES_
common prefix for all Modules-specific environment variables.
2014-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Registering prereq of loaded modules to ensure they are
satisfied When defining a prereq with module "b" in module "a", this prereq
is not satisfied when module "b" is unloaded whereas module "a" is still
loaded. It seems interesting to guaranty that prereq modules cannot be
unloaded if modules requiring them are still loaded. To do so, this patch
introduces the registration of the prereq declared by loaded modules in
_LMPREREQ_ environment variable. Checks have been added to cmdModuleUnload
procedure to forbid the unload of modules targeted by a registered prereq.
In case of a switch action, all modules declaring a prereq on the switched
module are reloaded. cmdModuleSwitch procedure first unloads the modules
declaring prereq, then proceed switch as usual and after that loads again
the modules declaring prereq. Similarly to switch action, modules declaring
an optional prereq on a module are reloaded when this module is loaded or
unloaded. cmdModuleLoad and cmdModuleUnload procedures reload the modules
declaring prereq after their main load/unload process to avoid reloading
modules whereas prereq-module fails to load/unload. Original load control
behavior is preserved by default. New behavior can be enabled by setting to
0 the g_orig_load_control variable in modulecmd.tcl script.
2018-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/080-access.exp: ts: adapt test results for
conflict registration
* modulecmd.tcl.in: Register declared conflict in MODULES_LMCONFLICT Change
name of the environment variable used to register conflicts declared by
loaded modules: from _LMCONFLICT_ to MODULES_LMCONFLICT in order to get a
MODULES_ common prefix for all Modules-specific environment variables.
2014-03-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Registering conflict of loaded modules to ensure they
are satisfied When defining a conflict with module "b" in module "a", this
conflict is not satisfied when loading module "b" unless this module defines
a conflict with "a". Since it happens that modules "a" and "b" are not
managed by the same people, it seems interesting to guaranty that conflicts
defined by loaded modules are always satisfied. To do so, this patch
introduces the registration of the conflict declared by loaded modules in
_LMCONFLICT_ environment variable. Checks have been added to cmdModuleLoad
procedure to forbid the load of modules targeted by a registered conflict.
Since modulefile may directly call module load, an is-loading procedure has
been introduced to also ensure that current module will not be loaded if it
defines a conflict toward a module which is currently loading. Original
load control behavior is preserved by default. New behavior can be enabled
by setting to 0 the g_orig_load_control variable in modulecmd.tcl script.
2018-07-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: simplify RPM release number generation Just append
current build number to previous RPM release number, rather making a complex
and too much specific computation. Thanks to Michael Sternberg
(@mgsternberg) for challenging the way this numbering generation worked.
Fixes #175
2018-07-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, Makefile, configure: install: use sed rather grep and cut
Use sed command rather a combination of grep and cut in 'configure' and
'Makefile' scripts. As a result grep and cut commands are not required
anymore to install new Modules releases. However, grep is still required to
install compatibility version. Big thanks to Michael Sternberg
(@mgsternberg) for crafting the right sed commands to achieve a more
efficient installation process. Fixes #175
* init/ksh.in: init: fix ksh script for ksh88 compatibility Fix a ksh88
incompatible assignment and use '.' rather 'source' to source external
script. Fixes #159
* modulecmd.tcl.in, testsuite/modulefiles/loc_rc010/.1.0,
testsuite/modulefiles/loc_rc010/.modulerc,
testsuite/modulefiles/loc_rc010/2.0,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/070-full.exp: Handle default version sets on an
hidden modulefile When looking for the default version of a given
modulefile, if this default is set on an hidden modulefile, this hidden
modulefile were not found as the initial modulefile search were not looking
for hidden modulefiles. When this situation is now spotted, modulefile
search is started again with inclusion of hidden files. Add a test for this
situation in 20-locate/067-hidden. Fixes #177
* init/bash_completion.in, init/zsh-functions/_module: init: enable ERE on
sed with '-E' argument rather '-r' When enabling Extended Regular
Expression (ERE) on sed command, use the '-E' argument (rather '-r') for
compatibility with OS X's and BSDs' sed. 'sed -E' is used in bash and zsh
completion scripts. ERE are required to interpret alternation character '|'.
Fixes #178
2018-07-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.rst: doc: state in modulefile(4) getenv should be
pref. over ::env
2018-06-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure: install: relax GNU grep requirement
constraint Rely on regular grep options rather grep -P to better cope with
OSes where BSD grep is available by default.
2018-06-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.1.3
2018-06-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/profile.sh.in: Detect shell with variables in profile.sh script To
improve shell detection code that until now was relying on a parent process
name check, some shell variables will be used to determine the current shell
name. $BASH and $ZSH_NAME variables will be looked at if defined to
determine calling shell name. Doing so will avoid some external command
call when running bash or zsh. Also if people source /etc/profile script in
their own bash or zsh script it will correctly determine calling shell name,
as parent process in this case is the script name. Cannot determine shell
name on ksh with a variable due to the lack of a consistent detection
mechanism across all ksh flavors [1]. Fixes #173 [1]
https://books.google.fr/books?id=53zaxy423xcC&pg=PA161
2018-05-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: env var definition during a whatis mode
eval
2018-05-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.deep/moddalias/.modulerc,
testsuite/modulefiles.deep/moddalias/dir1/1,
testsuite/modulefiles.deep/moddalias/dir2/.ignored,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.90-avail/070-full.exp: If subdir is empty do not update
parent dir if overwritten During a modulefile lookup in getModules,
directory definitions are updated if some empty directories are found in
them. Do not attempt this directory definition update when finding an empty
directory if parent directory has been overwritten by an alias definition
for instance. Fixes #170
2018-05-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.allin/allenvchg/1,
testsuite/modulefiles.allin/allenvchg/2,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp: Setenv on unload mode set var
to val in interp context Interpreting a setenv modulefile order during an
unload evaluation, variable is still set to be unset in generated shell code
but it is set to the value defined on the setenv order in the interpreter
context instead of being cleared. This change is made to recover and
improve behavior of compat version and previous version of modulecmd.tcl
where variable's value found in environment were not touch in interpreater
context. This is useful when using environment variable value to
append/prepend-path another variable. This change enables to correctly unset
this other variable on an unload evaluation. Was previously not unset since
the first variable used to edit the second was found cleared. This change
is currently limited to the setenv order and does not apply to the
prepend-path and append-path, where during an unload evaluation variable
value part is removed from variable also in interpreter context. Need to
distinguish value in interpreter context from value to set in shell output
code to also apply this mechanism to path edition modulefile orders.
2018-05-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/bin/install_test_sh,
testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/020-module.exp, testsuite/modulefiles/alias/3.0,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.90-avail/070-full.exp: Define shell alias with special
chars escaped When producing code to output shell alias definition,
escaping of special characters was missing until now in renderSettings
procedure. Code to bake shell alias has been fixed to work in a similar way
than for environment variable with full range of shell special characters
escaped. Translation of $n/$* in !!:n/!* on csh-like shells is maintained
for compatibility with v3. To improve this compatibility, a \ prior to $
disables translation on csh (like with v3), then after \$ is translated in $
for all shells. Adapt testsuite to use value escaping over expected output
result for shell alias (like done for environment variable). Adapt
consequently all shell alias tests in 50-cmds/07*. Add test in
50-cmds/076-alias-sub to demonstrate escaping of complex shell alias. Use
modulefile from this new test within install testsuite to garanty shell
alias produce is effective on shell sessions. Check availability of tools
used by this alias (grep, tr, awk) to determine if install test can be
launched on current system. Fixes #165
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: fix special chars
escaping code in values Add more special characters to the escaping list
for regular shells. And fix code to over escape special characters relative
to regular expression when regexp mode is enabled.
* testsuite/bin/install_test_sh, testsuite/install.00-init/040-subshell.exp:
ts: fix word splitting for zsh test in install suite
2018-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Quote csh
generated code to pass it to eval Brace modulecmd.tcl call in module csh
alias with quotes to pass quoted content to the shell evaluation. Use :q
modifier on !* to escape quotes passed as arguments to the module command
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: init: init/export
_module_raw if stderr attached to term To get coherent with the test made
by modulecmd.tcl to determine if autoinit sub-command has to produce code
for the '_module_raw' shell function, export this function (or initialize it
on compat mode) if stderr is attached to a terminal. Was previously testing
stdout, whereas modulecmd.tcl is checking stderr, which led to
inconsistencies as described in [1]. Fixes #169 [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1575479
2018-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/guide/get_started/00-cleanup.sh,
contrib/guide/get_started/01-modulepath-modulerc.sh,
.../guide/get_started/02-first_module-install.sh,
contrib/guide/get_started/03-first_module-bar.sh,
contrib/guide/get_started/04-second_modulefile.sh,
contrib/guide/get_started/05-more_modulefile-foo.sh,
.../guide/get_started/06-more_modulefile-share.sh,
.../guide/get_started/07-guide_modulefile_search.sh,
.../get_started/08-guide_modulefile_search-alias.sh,
contrib/guide/get_started/09-global_modulerc.sh,
contrib/guide/get_started/10-restrict_visibility.sh,
contrib/guide/get_started/11-restore_visibility.sh,
contrib/guide/get_started/12-datadir-create.sh,
contrib/guide/get_started/13-datadir-common.sh,
contrib/guide/get_started/14-datadir-versions.sh,
contrib/guide/get_started/15-datadir-virtual.sh,
contrib/guide/get_started/16-conflict.sh,
contrib/guide/get_started/17-prereq.sh,
contrib/guide/get_started/18-collection-target.sh,
contrib/guide/get_started/19-siteconfig.sh,
contrib/guide/get_started/README, contrib/guide/get_started/test.py:
contrib: add scripts from upcoming 'get started' guide
2018-05-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* MIGRATING.rst, doc/source/module.rst, modulecmd.tcl.in,
testsuite/config/unix.exp, testsuite/modules.00-init/071-args.exp: Args
should be passed as list not single string Update documentation for module
usage on scripting language like Perl or Python to provide examples where
arguments are passed as a list of string rather a single string. For
compatibility with previously advertised examples, first argument is
splitted if multiple word are detected in it.
2018-05-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Clean unneeded global variable set in slave interp
* modulecmd.tcl.in: Pass cur itrp ref in initInterpCommands to aliases
needing it Sets in initInterpCommands procedure interpreter reference as
first argument to interpreter alias requiring it, rather doing it in
initModfileModeAliases where actual interpreter reference is not known (as
this procedure is called at first time a mode-specific interp is created,
but not on subsequent times when another interp of same mode but working in
a nested level is build up). Now initModfileModeAliases defines a specific
__itrp__ keyword to let initInterpCommands know that the argument to pass to
the alias to define is the actual interp reference.
* modulecmd.tcl.in, testsuite/modules.70-maint/080-help.exp: Add
getEvalModuleStackDepth to learn nb of mod in eval Get the number of either
modulerc/modulefile currently being evaluated (nested evaluation) with a new
procedure called getEvalModuleStackDepth, relying on the number of element
of the g_moduleNameStack global list. Use this new procedure rather [info
level] to determine if module procedure is called at top level or not and to
determine the slave interpreter to use (an interpreter is reused to evaluate
a modulefile from same evaluation nested level). Gives a more precise
information on modulefile evaluation depth level than [info level] which
reflects Tcl procedure call stack depth.
* .travis.yml: travis: test --enable-append-{bin,man}path configure opts
* INSTALL.rst, Makefile.inc.in, configure, init/Makefile, init/bash.in,
init/csh.in, init/fish.in, init/ksh.in, init/sh.in, init/zsh.in: install:
add --enable-append-{bin,man}path configure opts Add the ability to append
rather prepend the man or bin directory when adding these directory to the
relative environment variable is enabled (with --enable-set-manpath or
--enable-set-binpath). Takes the form of 2 new configure options:
--enable-append-manpath and --enable-append-binpath. No effect if set but
relative --enable-set-{bin,man}path option is unset or disabled.
2018-05-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.70-maint/120-autoinit.exp: Rename _moduleraw shell func in
_module_raw To use a common _module_ prefix for all module-related internal
shell functions as suggested by Paul FM [1]. [1]
https://sourceforge.net/p/modules/mailman/message/36230667/
* modulecmd.tcl.in: Call runModulerc within module proc at top level Call
runModulerc, to find and execute any global rc file found, within module
procedure once module sub-command is known and registered. This way global
rc file can learn the current command processed.
2018-05-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Use getModuleNameVersion in execute-modulerc to get mod
details
* modulecmd.tcl.in: Track sourced rc files in getModules rather
execute-modulerc Handle g_rcfilesSourced global array that track sourced rc
files in getModules procedure rather execute-modulerc procedure. This way
only call execute-modulerc procedure if rc file has not yet been sourced.
It saves a lot of procedure call especially in case of global query command
like whatis, where initial global findModules result is re-used for each
sub-query raised during modulefile evaluation.
2018-03-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Cache findModules results Introduce a memory cache for
the results build up by findModules procedure. Done in order to reuse these
results if next searches are compatible instead of re-walking the
filesystem. A cached result may be used by a search looking for a subset of
this result. For instance searching for modules 'foo' in '/path/to/dir' may
use the cache result saved after the search of '*' modules in 'path/to/dir'.
This superset result is then filtered-out whithin the getModules procedure.
2018-04-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix resetInterpState to restore empty string value
Useful to restore initial value of ::errorCode and ::errorInfo.
* modulecmd.tcl.in: Set reportDebug as nop proc when debug is disabled
Define in initErrorReport the reportDebug procedure as a no-operation
procedure to optimize operations whether debugging is enabled or not.
* modulecmd.tcl.in, testsuite/modules.50-cmds/359-allin-env.exp: Set *setenv
cmds as init-if-undef proc on whatis mode Define a specific procedure for
the setenv and unsetenv commands on a whatis evaluation mode: setenv-wh.
This procedure checks the environment variable targeted by the command and
initialize it as an empty string if undefined. Proceed this way to reduce
the total amount of time of a whatis query but still initializing variables
if undefined to avoid 'undefined variable' errors during evaluation if
environment variable value are referred to later in modulefile. Value set
to variable are not the correct one (no value set if variable defined, empty
string set if variable is undefined) but it should not affect the whatis
query as only the 'module-whatis' commands are valuable in this mode.
* modulecmd.tcl.in, testsuite/modules.50-cmds/359-allin-env.exp: Set *-path
cmds as init-if-undef proc on whatis mode Define a specific procedure for
the append-path, prepend-path and remove-path commands on a whatis
evaluation mode: edit-path-wh. This procedure checks the environment
variable targeted by the command and initialize it as an empty string if
undefined. Proceed this way to reduce the total amount of time of a whatis
query but still initializing variables if undefined to avoid 'undefined
variable' errors during evaluation if environment variable value are
referred to later in modulefile. Value set to variable are not the correct
one (no value set if variable defined, empty string set if variable is
undefined) but it should not affect the whatis query as only the
'module-whatis' commands are valuable in this mode.
2018-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fallback on split/join in psplit/pjoin if no sep char
found Achieve better performances in most cases (as separator character is
usualy not used)
2018-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove unneeded g_inhibit_dispreport As modulefile
commands do not handle anymore their display-mode report, display report
inhibition for modulerc evaluation is not needed anymore.
* modulecmd.tcl.in, testsuite/modulefiles.allin/allin/1,
testsuite/modulefiles.allin/allin/3, testsuite/modulefiles.allin/allin/4,
testsuite/modulefiles.other/modemptyarg/apropos,
testsuite/modulefiles.other/modemptyarg/avail,
testsuite/modulefiles.other/modemptyarg/whatis,
testsuite/modulefiles/modbad/append-path,
testsuite/modulefiles/modbad/autoinit, testsuite/modulefiles/modbad/empty,
testsuite/modulefiles/modbad/foo, testsuite/modulefiles/modbad/help,
testsuite/modulefiles/modbad/info-loaded,
testsuite/modulefiles/modbad/is-avail,
testsuite/modulefiles/modbad/is-loaded,
testsuite/modulefiles/modbad/is-saved, testsuite/modulefiles/modbad/is-used,
testsuite/modulefiles/modbad/path, testsuite/modulefiles/modbad/paths,
testsuite/modulefiles/modbad/prepend-path,
testsuite/modulefiles/modbad/remove-path,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.80-deep/030-display.exp: Move 'module' to the per-mode
evaluation interp 'module' modulefile command targets module procedure on
load and unload modes of modulefile evaluation. reportCmd is targeted on
display mode. For other modes a nop is targeted. 'module' command is now
disabled on help, test and whatis mode which stabilizes evaluation on these
modes. On Modules v3, module command was also disabled on all these query
evaluation modes.
2018-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/350-allin.exp: Move
'x-resource' to the per-mode evaluation interp 'x-resource' modulefile
command targets x-resource procedure on load and unload modes of modulefile
evaluation. reportCmd is targeted on display mode. For other modes a nop is
targeted.
* modulecmd.tcl.in: Move 'module-virtual' to the per-mode evaluation interp
'module-virtual' modulefile command targets module-virtual procedure on
every mode of modulefile evaluation.
* modulecmd.tcl.in: Move 'module-alias' to the per-mode evaluation interp
'module-alias' modulefile command targets module-alias procedure on every
mode of modulefile evaluation.
* modulecmd.tcl.in: Move 'module-version' to the per-mode evaluation interp
'module-version' modulefile command targets module-version procedure on
every mode of modulefile evaluation.
* modulecmd.tcl.in, testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/170-contact.exp: Brace empty or
whitespace-containing arg on reportCmd reportCmd processes the argument
list of the called command to brace empty arguments or arguments containing
whitespace character. Makes visible for a human eye the limit of each
parameter (especially for empty strings).
* modulecmd.tcl.in, testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.70-maint/140-multiargs.exp: Trace exec to reportCmd on
display mode enabled cmds For those commands enables on display mode
(commands that are also run on this mode, not only reported, like */*-path
commands): use an execution trace (at leave step) to call for the report
commands after running the enabled procedure. With this change these
enabled-on-display commands do not have to handle their display reporting
anymore. Current evaluation mode can now be ignored by these procedures.
The reportCmdTrace procedure is introduced to be set as the execution trace
procedure in case alias command for modulefile interp is not set to
reportCmd on a display evaluation mode. As a side effect of this change,
commands are reported even if their execution raise an error (helps to see
the command line along with raised error message).
2018-04-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Refactor code of getenv command Same kind of debug
message or mode test than used in other modulefile command procedures.
g_inhibit_dispreport test is not needed as getenv cannot be reached from a
modulerc evaluation
2018-04-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/070-display.exp: Move
'*-path' to the per-mode evaluation interp 'append-path' modulefile command
targets append-path procedure on every mode of modulefile evaluation except
unload mode where remove-path is targeted. append-path procedure is called
on all these modes to perform variable set for later use of this variable
during the modulefile evaluation. 'prepend-path' modulefile command targets
prepend-path procedure on every mode of modulefile evaluation except unload
mode where remove-path is targeted. prepend-path procedure is called on all
these modes to perform variable set for later use of this variable during
the modulefile evaluation. 'remove-path' modulefile command targets
remove-path procedure on every mode of modulefile evaluation except unload
mode where remove-path-un is targeted. remove-path procedure is called on
all these modes to perform variable set/unset for later use of this variable
during the modulefile evaluation. remove-path-un procedure is used on unload
mode to clear variable if currently unset for later use of this variable
during eval.
* modulecmd.tcl.in, testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/359-allin-env.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/170-contact.exp,
testsuite/modules.80-deep/080-access.exp: Move '*setenv' to the per-mode
evaluation interp 'setenv' modulefile command targets setenv procedure on
every mode of modulefile evaluation except unload mode where setenv-un is
targeted. setenv procedure is called on all these modes to perform variable
set for later use of this variable during the modulefile evaluation.
setenv-un procedure is used on unload mode to call unsetenv with the correct
argument list. 'unsetenv' modulefile command targets unsetenv procedure on
every mode of modulefile evaluation except unload mode where unsetenv-un is
targeted. unsetenv procedure is called on all these modes to perform
variable set/unset for later use of this variable during the modulefile
evaluation. unsetenv-un procedure is used on unload mode to call setenv or
unsetenv depending on the value passed or not as argument.
2018-04-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/070-display.exp: Move '*set-alias' to the
per-mode evaluation interp 'set-alias' modulefile command targets set-alias
procedure on load mode of modulefile evaluation. set-alias-un is targeted on
unload mode. reportCmd is targeted on display mode. For other modes a nop is
targeted. set-alias-un procedure is used on unload mode to call unset-alias
with the correct argument list. 'unset-alias' modulefile command targets
unset-alias procedure on load mode of modulefile evaluation. reportCmd is
targeted on display mode. For other modes a nop is targeted.
* modulecmd.tcl.in: Move 'conflict' to the per-mode evaluation interp
'conflict' modulefile command targets conflict procedure on load mode of
modulefile evaluation. reportCmd is targeted on display mode. For other
modes a nop is targeted.
* modulecmd.tcl.in: Move 'prereq' to the per-mode evaluation interp
'prereq' modulefile command targets prereq procedure on load mode of
modulefile evaluation. reportCmd is targeted on display mode. For other
modes a nop is targeted.
* modulecmd.tcl.in: Move 'module-whatis' to the per-mode evaluation interp
'module-whatis' modulefile command targets module-whatis procedure on whatis
mode of modulefile evaluation. reportCmd is targeted on display mode. For
other modes a nop is targeted.
* modulecmd.tcl.in: Move 'chdir' to the per-mode evaluation interp 'chdir'
modulefile command targets chdir procedure on load mode of modulefile
evaluation. reportCmd is targeted on display mode. For other modes a nop is
targeted.
* modulecmd.tcl.in, testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp: Move 'module-{log,trace,user,verb}'
to the per-mode evaluation interp module-log, module-trace, module-user and
module-verbosity modulefile commands target 'nimp' procedure on load and
unload modes of modulefile evaluation. reportCmd is targeted on display
mode. For other modes a nop is targeted.
* modulecmd.tcl.in: Add 'nimp' proc to get a dummy 'not implemented' target
* modulecmd.tcl.in: Disable chdir,module{,-trace,-log,-user,-verbosity} from
modulerc eval Make chdir, module, module-trace, module-verbosity,
module-user and module-log commands target the 'nop' procedure on modulerc
interpreter. These commands were declared for modulerc evaluation but this
did not make any sense as their action only concern modulefile evaluation.
* modulecmd.tcl.in: Move 'system' to the per-mode evaluation interp
'system' modulefile command targets system procedure on load and unload
modes of modulefile evaluation. reportCmd is targeted on display mode. For
other modes a nop is targeted. 'system' can also currently be called from a
modulerc evaluation when load or unload mode is detected. Kept as is for the
moment. May/should change for next major release.
* modulecmd.tcl.in: Add 'reportCmd' proc to use as target for display mode
If interpreter alias command targets the reportCmd procedure, make sure
command name is passed as first argument.
* modulecmd.tcl.in: Define arg to pass to interp aliases in
initModfileModeAliases Transform g_modfileAliasesPassItrp, array listing
aliases where the interpreter name should be passed as alias command first
argument, into g_modfile${mode}AliasesPassArg, array listing first argument
to pass to particular aliases. The new structure is defined per evaluation
mode (a specific alias/argument list per mode). So its definition is moved
from execute-modulefile to initModfileModeAliases.
2018-04-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add 'nop' proc to get a dummy target for certain eval
mode
* modulecmd.tcl.in: Adapt interp alias commands to the evaluation mode Make
interpreter alias command targets vary depending on the evaluation mode to
adapt behavior of modulefile commands to the currently run module command.
For instance a 'setenv' command is evaluation as an 'unsetenv' command when
unloading a modulefile. This commit lays the groundwork to adapt modulefile
commands to the evaluation mode. All commands are kept for the moment in the
situation where the same procedure is applied to all evaluation modes.
* modulecmd.tcl.in: Define slave interp cmds in initInterpCommands proc
* modulecmd.tcl.in, testsuite/modulefiles/spread/2.0,
testsuite/modulefiles/spreadrc/dir2/1.0,
testsuite/modules.70-maint/080-help.exp: Dedicate a modfile interp for each
evaluation mode
* modulecmd.tcl.in, testsuite/modules.70-maint/080-help.exp: Use same dump
state for same kind of interp Share same dump state between interpreters of
the same kind (modfile or modrc) but working at different levels.
* modulecmd.tcl.in: Clarify interp name and reportDebug their creation
* modulecmd.tcl.in: Push/pop modname and specified in execute-mod* procs
2018-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/080-help.exp: Automatically
prefix debug msgs by calling proc name
2018-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Harmonize/reduce execute-module{rc,file} debug msg
2018-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: remove-path applied when unloading on
compat vers
* doc/source/diff_v3_v4.rst: doc: desc. MANPATH special treatment on compat
version Describe the difference behavior between Modules 4+ and
compatibility version regarding how append-path/prepend-path commands handle
the MANPATH environment variable when unset. Helps clarify [1]. [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1564899
* modulecmd.tcl.in, testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/069-remove-env.exp: Make remove-path clear
::env(var) on unload mode if unset Clears the variable passed to
'remove-path' procedure in ::env() array on unload mode and if this variable
is unset for later use during the modulefile evaluation. Helps producing
same variable evaluation behavior whatever the evaluation mode, avoiding
access to undefined references by defining a cleared but set value to these
undefined variables. As a side effect as remove-path command is now
evaluated on unload mode, invalid argument on this command will raise error.
Previously arguments were not parsed so no error raised on unload mode.
2018-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Get env var set value or fallback value with get-env
Add a 'get-env' procedure to read values from 'env' array, like what is done
with 'set-env' for setting value. Distinguish set environment variable from
cleared one with help of g_clearedEnvVars array.
* modulecmd.tcl.in, testsuite/modulefiles/getenv/0.6,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/359-allin-env.exp: Keep track of cleared env var
in g_clearedEnvVars When unsetting (clearing) an environment variable in
'unset-env' procedure, keep track of it in a g_clearedEnvVars array to be
able to distinguish later on, in 'getenv' procedure, if variable is equal to
an empty string or if it has been unset (cleared).
* testsuite/modulefiles.allin/allenvchg/1,
testsuite/modulefiles.allin/allenvchg/2,
testsuite/modules.50-cmds/359-allin-env.exp: ts: add 50-cmds/359-allin-env
tests Check environment variable change commands all together over the
different modulefile evaluation modes.
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/getenv/1.0, testsuite/modules.50-cmds/260-getenv.exp:
Add valifundef arg to getenv procedure Allow to define value to return if
variable name passed to the getenv procedure is undef. Add a description of
'getenv' command in the modulefile man page.
* modulecmd.tcl.in, testsuite/modulefiles/getenv/0.6,
testsuite/modules.50-cmds/269-getenv-env.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.90-avail/070-full.exp: Make getenv return value on
help/test/whatis modes
2018-04-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/350-allin.exp: Clear env var even if not set on
unset-env On 'unset-env' procedure, clears environment variable whether it
is set or not to get consistent behavior whatever the current environment
setup on later references of this variable during modulefile evaluation.
Adapt 029-setenv-env, 039-unsetenv-env, 049-append-env, 059-prepend-env and
069-remove-env test cases: no more 'no such variable' errors.
* modulecmd.tcl.in, testsuite/modulefiles.allin/allin/1,
testsuite/modulefiles/unsetenv/0.6,
testsuite/modules.50-cmds/039-unsetenv-env.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/070-full.exp: Make unsetenv alter ::env() on
display/help/test/whatis modes Like previously done for 'remove-path', set
the variable passed to 'unsetenv' procedure in ::env() array to make
accurate value available for later use during the modulefile evaluation.
Add 50-cmds/039-unsetenv-env test to check this ::env() array change over
all evaluation mode. Adapt 50-cmds/350-allin to check this change against
'whatis' mode.
2018-04-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/remove/5.0,
testsuite/modules.50-cmds/069-remove-env.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.90-avail/070-full.exp: Make remove-path alter ::env() on
display/help/test/whatis modes Like previously done for 'append-path', set
the variable passed to 'remove-path' procedure in ::env() array to make
accurate value available for later use during the modulefile evaluation. As
a side effect as remove-path command is now evaluated on help, test, display
and whatis modes, invalid argument on this command will raise error.
Previously arguments were not parsed so no error raised. Add
50-cmds/069-remove-env test to check this ::env() array change over all
evaluation mode. Adapt 50-cmds/350-allin to check this change against
'whatis' mode.
* testsuite/modulefiles/setenv/0.7.1, testsuite/modulefiles/setenv/0.7.2,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.90-avail/070-full.exp: ts: add tests to
50-cmds/028-setenv-refcount Test load and unload mode on modulefiles where
setenv and append-path commands play on same variable. Check both ways:
setenv then append-path or appen-path then setenv.
2018-04-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Set env var and propagate creation with set-env Make
use of the 'set-env' procedure to set an environment variable and propagate
creation to the running shell (outputing set command to stdout). Creation
is propagated only if currently in 'load' or 'unload' evaluation mode.
2018-04-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/180-unload.exp: Unset any ref cnt var on
setenv/unsetenv in any mode Whatever the evaluation mode, unset any
existing reference counter variable when running setenv/unsetenv commands.
Adapt and add tests to put in light behaviors when unloading a
standardly-set variable going through append-path/prepend-path. The
standardly-set variable is transformed into a path-like variable through the
evaluation, resulting in the end in the definition of a reference counter
variable (if variable is not setenv/unsetenv during evaluation) or in the
deletion of this reference counter variable (if setenv/unsetenv during
evaluation).
2018-04-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.70-maint/190-emptyarg.exp: Delete env var and propagate
deletion with unset-env Make use of the 'unset-env' procedure to delete an
environment variable and propagate deletion to the running shell (outputing
deletion command to stdout). Deletion is propagated only if currently in
'load' or 'unload' evaluation mode. unset-env procedure distinguishes
environment variables from those set for Modules internal use, like path
reference counter variables. Internal variables are purely unset whereas
other environment variables are just cleared, not unset, to avoid breaking
later reference to these variables in modulefiles. In case of environment
variable for internal use, variable deletion is propagated to shell only if
variable was found set. Aligning all unsets on this rule gives no unset of
reference counter variable on unload mode if the variable is not found
defined at that time. Adapt expected test results for the above side
effect.
2018-04-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.70-maint/152-remove-path.exp: ts: use helper procs to set
env vars on env var set tests
2018-04-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.50-cmds/010-init_ts.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/155-is-used.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/010-init_ts.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.95-version/010-init_ts.exp,
testsuite/modules.95-version/999-cleanup.exp: ts: use helper procs to set
MODULEPATH env var
2018-04-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.50-cmds/360-restoreenv.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/157-info-loaded.exp,
testsuite/modules.70-maint/180-reload.exp,
testsuite/modules.70-maint/190-emptyarg.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: ts: add helper procs to set
env for tests Add new procedures (unsetenv_loaded_module,
setenv_loaded_module, setenv_path_var, unsetenv_path_var, unsetenv_var,
setenv_var) to set environment for tests in a consistent way (defining
reference counter variable for path-like variables). Adapt all test files
to set LOADEDMODULES and _LMFILES_ (and relative reference counter
variables) with these new helper procedures.
2018-04-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/350-allin.exp: Clear var in
evaluation context on unload mode of setenv To get a more accurate (empty)
value when using variable later on during the evaluation of the modulefile.
Previously set value (prior to unset) was retrieved and used.
* modulecmd.tcl.in: No env var unset on unload-path in evaluation context
Do not unset-env in unload-path proc (called by *-path commands) like setenv
to avoid breaking later reference to the variable in modulefile. Value is
cleared instead.
2018-04-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.allin/allin/1,
testsuite/modulefiles/append/7.0, testsuite/modulefiles/prepend/4.0,
testsuite/modules.50-cmds/049-append-env.exp,
testsuite/modules.50-cmds/059-prepend-env.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.90-avail/070-full.exp: Make append/prepend-path alter
::env() on display/help/test/whatis modes Like previously done for
'setenv', set the variable passed to 'append-path' and 'prepend-path'
procedures in ::env() array to make it available for later use during the
modulefile evaluation. As a side effect as append-path/prepend-path
commands are now evaluated on help, test, display and whatis modes, invalid
argument on these commands will raise error. Previously arguments were not
parsed so no error raised. Add 50-cmds/049-append-env and
50-cmds/059-prepend-env tests to check this ::env() array change over all
evaluation mode. Adapt 50-cmds/350-allin to check this change against
'whatis' mode.
* modulecmd.tcl.in: Pass full ref cnt inconsistency msg to reportWarning To
inhibit full message in case 'g_inhibit_errreport' is enabled.
2018-04-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles.allin/allin/1,
testsuite/modulefiles/setenv/0.6,
testsuite/modules.50-cmds/029-setenv-env.exp,
testsuite/modules.50-cmds/350-allin.exp,
testsuite/modules.90-avail/070-full.exp: Make setenv alter ::env() on
help/test/whatis modes Set the variable passed to 'setenv' procedure in
::env() array to make it available for later use during the modulefile
evaluation. Add 50-cmds/029-setenv-env tests to check this ::env() array
change over all evaluation mode. Adapt 50-cmds/350-allin to check this
change against 'whatis' mode. Fixes #160
* testsuite/modulefiles.allin/restoreenv/1,
testsuite/modulefiles.allin/restoreenv/2,
testsuite/modules.50-cmds/360-restoreenv.exp: ts: add 50-cmds/360-restoreenv
tests Test all kind of environment change (variable, alias, chdir, xres,
puts) in case the evaluation of a modulefile fails: previous environment
context should be restored.
* modulecmd.tcl.in: Correctly save/restore x-resource env settings Fix typo
on x-resource setting array names
2018-04-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add chdir/puts env settings to the per-mod saved env
stack Add the g_changeDir, g_stdoutPuts and g_return_text global variable
to the saved environment context. Restore stacked value of these variable in
case a load failed for instance, like for env and g_Aliases array variable.
* testsuite/modulefiles.allin/allin/1, testsuite/modulefiles.allin/allin/2,
testsuite/modulefiles.allin/allin/3, testsuite/modulefiles.allin/allin/4,
testsuite/modulefiles.allin/allin/5,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/350-allin.exp: ts: add 50-cmds/350-allin tests
Gather all Tcl modulefile commands in few modulefiles and test them against
all the existing modes. This commit is a record of the current situation
where many inconsistencies can be seen especially on descriptive modes where
too many commands are evaluated.
2018-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Factorize cmd switch in module proc
* modulecmd.tcl.in: Treat list-related options within module proc Handle
the options related to list commands (list, savelist and avail) within the
module procedure instead of the main procedure. Makes possible to pass these
options to the module commands when called from a modulefile or scriptfile.
* modulecmd.tcl.in: Remove unused show_flags arg on listModules proc And
simplify related display option management.
* modulecmd.tcl.in: Handle arg list within cmdModuleAvail proc
* modulecmd.tcl.in: Add debug msg at the start of module proc
2018-04-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/060-quar.exp,
testsuite/install.00-init/070-stderrtty.exp: ts: fix tests where cmd arg
separator were missing
* testsuite/modulefiles.other/modemptyarg/aliases,
testsuite/modulefiles.other/modemptyarg/apropos,
testsuite/modulefiles.other/modemptyarg/avail,
testsuite/modulefiles.other/modemptyarg/display,
testsuite/modulefiles.other/modemptyarg/list,
testsuite/modulefiles.other/modemptyarg/load,
testsuite/modulefiles.other/modemptyarg/purge,
testsuite/modulefiles.other/modemptyarg/reload,
testsuite/modulefiles.other/modemptyarg/restore,
testsuite/modulefiles.other/modemptyarg/save,
testsuite/modulefiles.other/modemptyarg/savelist,
testsuite/modulefiles.other/modemptyarg/saverm,
testsuite/modulefiles.other/modemptyarg/saveshow,
testsuite/modulefiles.other/modemptyarg/source,
testsuite/modulefiles.other/modemptyarg/swap,
testsuite/modulefiles.other/modemptyarg/swap2,
testsuite/modulefiles.other/modemptyarg/test,
testsuite/modulefiles.other/modemptyarg/unload,
testsuite/modulefiles.other/modemptyarg/unuse,
testsuite/modulefiles.other/modemptyarg/use,
testsuite/modulefiles.other/modemptyarg/whatis,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/152-module-emptyarg.exp,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.70-maint/190-emptyarg.exp: ts: add
50-cmds/152-module-emptyarg tests Check module commands set in modulefiles
with an empty string argument passed to these commands. This is the "within
modulefile" counterpart of 70-maint/190-emptyarg which is targetting
command-line test. Check the module commands (with their empty string
argument) on every existing mode (load, unload, display, help, test and
whatis). Reveal many inconsistencies, especially on the descriptive modes
(display, help and test), that should be fixed in future commits.
2018-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/modbad/empty,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.90-avail/070-full.exp: ts: empty mod cmd call check in
50/151-module-onlytop
* modulecmd.tcl.in: Handle empty cmd name in module proc only
2018-03-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.1.2
* testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.80-deep/080-access.exp: testsuite: fix some re tests for
special ts dir
2018-03-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_sh: testsuite: correct IFS setup in
install_test_sh for dash The IFS=$';' notation on dash makes $ character
part of field separator list.
2018-03-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_csh, testsuite/install.00-init/080-args.exp,
testsuite/modulefiles.other/putsvar: testsuite: add 080-args test to install
suite Add install non-regression tests to check handling of arguments
passed on the command line of shell langs of passed to the module function
on other langs. Test pass of empty string, string containing space,
variable reference, espace stuff and so on. Hardwire some test in
install_test_csh script to correctly pass single quote to the tested module
command.
* testsuite/modules.70-maint/120-autoinit.exp: testsuite: adapt
70/120-autoinit tests to recent changes
2018-03-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Add '\' to the escape char list
for R "Unless it's escaped, \ is interpreted as a special character that
identifies sectioning and mark-up macros." [1] Also temporary fix escaping
code for 70-maint/120-autoinit tests: no re escaping for R (need re escaping
to better cope with lang escaping). [1]
https://developer.r-project.org/parseRd.pdf
* testsuite/bin/install_test_cmake: testsuite: fix cmake test install script
for args >2
* modulecmd.tcl.in: Fix parameter expansion on sh-shells in quar mode
Protect "$@" from the 'eval' command added when quarantine mode is
activated.
2018-03-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_tcl: testsuite:
check no arg or empty string arg Adapt tests of install suite to be able to
call module function with no passed arg if tested command equals to "NOARG".
Also adapt these tests to call module with an empty string argument if
tested command equals to empty string.
* modulecmd.tcl.in: Fix Python module func to accept no arg Adapt module
function for Python to accept being called with no argument.
* modulecmd.tcl.in: Empty module cmd clears arg list If an empty command
name is passed, it is interpreted as "help" command. For more consistency
argument list (after command name) is cleared in this situation to always
get the general usage message rather triggering the help mode of an
arbitrary modulefile.
2018-03-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_tcl,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/060-quar.exp,
testsuite/install.00-init/070-stderrtty.exp: testsuite: separate cmd args
with ',' Adapt tests of install suite to use ',' character as argument
separator (on same command) for non-pure shell languages (Tcl, Perl, Python,
Ruby, Cmake and R). Help to distinguish a separator between args from a
whitespace within an arg.
* modulecmd.tcl.in: Fix module func parameter expansion on Perl To
correctly handle parameter containing whitespace character or empty string
parameter.
2018-03-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix module func parameter expansion on CMake To
correctly handle parameter containing whitespace character or empty
elements. For the latter case, command definition must be adapted to the
number of args to be able to pass, to some extend (<5 args) empty string
element to modulecmd. There is no other way to achieve empty string element
argument as empty strings are skipped from ${ARGV}. [1] [1]
https://gitlab.kitware.com/cmake/cmake/issues/16341
2018-03-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix module func parameter expansion on R To correctly
handle parameter containing whitespace character.
2018-03-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix module func parameter expansion on Ruby To
correctly handle no passed parameter or parameter containing whitespace
character.
* modulecmd.tcl.in: Fix module func parameter expansion on fish-shell To
correctly handle parameter containing whitespace, quote, escape characters.
* modulecmd.tcl.in: Fix module func parameter expansion on sh-shells To
correctly handle parameter containing whitespace character.
2018-03-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/190-emptyarg.exp: testsuite: add
70-maint/190-emptyarg tests Test all module commands called from cmdline
with an empty string argument. Move pre-existing empty-string-argument tests
in this new test file.
2018-03-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Return empty res if mod name empty on
getLoadedMatchingName
* modulecmd.tcl.in: Report error if path is empty string on cmdModuleUnuse
Like done on cmdModuleUse.
* modulecmd.tcl.in: Return empty res if path empty on getAbsolutePath
* modulecmd.tcl.in: Raise error if coll name is empty Add check in
getCollectionFilename procedure to raise error if passed collection name is
an empty string. Makes collection-related commands quit in error if empty
collection name is provided (save, restore, saverm, saveshow, is-saved). No
collection name provided still activate default collection, thus no error
raise.
* modulecmd.tcl.in: Fix default arg for cmdModule{Save*,Restore} procs
Default collection name set as default 'coll' argument value is 'default'.
Change default value of argument, was '', to directly match default
collection name. It enables to distinguish between an empty string argument
and default argument value.
2018-03-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fix handling of empty list on Tcl8.4 lreverse proc Was
previously returned a list with 1 empty element instead of a list with 0
element.
2018-03-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: No skip of empty arg on cmdModuleHelp Will be handled
by getPathToModule procedure, who will raise error on empty module name.
* modulecmd.tcl.in, testsuite/modulefiles/module/empty,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.90-avail/070-full.exp: Report error when empty name passed
to getPathToModule Triggered with 'module load ""' call in modulefile.
Helps to know what is going on.
2018-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: testsuite: fake win platform
to check path var handling Separator ';' is used instead of ':' on Windows
platform. Add a test leveraging siteconfig.tcl-1 to check path variable
handling on a fake Windows platform. Set/get default path variable
separator with new getPathSeparator procedure. This way, global variable
g_def_separator is defined after parsing the siteconfig.tcl.
* testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.70-maint/120-autoinit.exp: testsuite: add 'cmd' to the
test shell list
* modulecmd.tcl.in: Improve Windows cmd shell support
* modulecmd.tcl.in, testsuite/example/siteconfig.tcl-1, testsuite/mode,
testsuite/modules.90-avail/070-full.exp: Fetch terminal width on Windows
with 'mode' cmd Add test with fake 'mode' command to run on Linux.
2018-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: check stty can change
width before tests
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.50-cmds/040-append.exp: testsuite: fix tests when value
contains parenthesis Escape the environment value like modulecmd does when
producing shell code. Careful when test is performed in regexp mode.
2018-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/030-options.exp: testsuite: adapt install suite
for compat on Cygwin
* modulecmd.tcl.in: Rewrite if/return tests in return/expr
* Makefile, Makefile.inc.in, configure: install: handle modulecmd exe ext on
Cygwin Add EXEEXT Makefile variable in configure/Makefile process to append
on Cygwin a '.exe' extension to modulecmd binary built.
* modulecmd.tcl.in: Remove unneeded dir 'reglob' for Cygwin in findModules
As tested, glob on Cygwin does not change symlink involved in $dir so it
does not seem useful anymore to 'reglob' $dir on findModules procedure.
* modulecmd.tcl.in: Remove unneeded symlink transformation for Cygwin
Symlink created on Cygwin does not get an automatic ".lnk" suffix extension.
".lnk" shortcut made on Windows cannot be interpreted as a symlink either on
Cygwin or Windows cmd. Tcl will not recognize a directory or a modulefile
when looking at these ".lnk" shortcut. Remove the .lnk file name
transformation as it is not useful. In addition, 'isWin' returns false on a
Cygwin environment as detected platform on this tool equals to 'unix' not
'windows'.
2018-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.60-initx/080-access.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.80-deep/080-access.exp: testsuite: fix access tests for
Cygwin Check file permission can be edited and check a file in a locked
directory is readable or not. Adapt access tests depending on these check
results. No access test is perfomed if file permission cannot be edited.
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/050-crossshell.exp: testsuite: adapt install suite
for Cygwin
* testsuite/bin/install_test_csh: testsuite: fix csh empty string cmp in
install_test_csh
* testsuite/modules.50-cmds/040-append.exp: testsuite: fix truncated csh
test for escaped content
2018-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/095-uname.exp: testsuite: fix uname test for
Cygwin
* testsuite/modules.10-use/030-use.exp: testsuite: use modules-specific vars
for tests in 10-use/030-use
* configure: install: look for 'make' on Cygwin
2018-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/home/.module/.target: Rm uneeded coll name
test in cmdModuleSavelist
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: testsuite: test lm accessor in
00-init/120-siteconfig
2018-03-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/180-reload.exp: testsuite: add 'reload' cmd
tests in 70-maint
* testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/020-single.exp: testsuite: check command
nicknames
* modulecmd.tcl.in: Process mod info before any content output on 'list' cmd
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.70-maint/157-info-loaded.exp,
testsuite/modules.90-avail/020-single.exp: Detect inconsistent loaded
environment state When needing to correlate the information from the
LOADEDMODULES and the _LMFILES_ environment variables. Does not affect
module commands not requiring correlation of these informations, like
whatis/avail. Error raised on load, unload, switch, reload, purge, list,
save and restore commands. May affect info-loaded or is-loaded commands if
module passed as argument to these command is specified as a full path
modulefile.
2018-03-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Set/get accessors for g_loadedModules{,Files} arrays
Define set/get accessor procedures to handle the g_loadedModules and
g_loadedModuleFiles arrays. Trigger in the get accessors the load of
currently defined information in LOADEDMODULES and _LMFILES_ in the two
arrays, by calling the cacheCurrentModules procedure. Make this loading
procedure perform its work only once by using a global g_lm_info_cached
flag. cacheCurrentModules is not called anymore at the start of the
modulecmd execution but only once and when needed.
2018-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/071-args.exp: Refactor cmd arg
nb test in module proc
* modulecmd.tcl.in: Refactor command name setup in module proc
* modulecmd.tcl.in: Refactor calling level check for cmd in module proc
* modulecmd.tcl.in: Resolve module cmd alias/shortcut prior running cmd
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: testsuite: file read w/o err
report in 00/120-siteconfig
* testsuite/modules.80-deep/080-access.exp: testsuite: test dfl res when
sibbling dir locked Add test in 80-deep/080-access to remove access to a
modulefile from a sibbling directory than implicit default for this module.
Check that implicit default is not impacted by its sibbling change.
2018-03-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/153-is-loaded.exp: Ignore empty path element in
_LMFILES_ If _LMFILES_ environment variable contains empty module element
(for instance when it equals to '/path/to/mod1::/path/to/mod2'), this empty
element is ignored. This way it ensures all elements from the _LMFILES_
variable are non-empty string. Add tests to check module commands against a
_LMFILES_ variable containing empty element.
* Makefile: install/testsuite: dl nagelfar from alt. location If primary
link is not ok.
2018-03-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/153-is-loaded.exp: Ignore empty path element in
LOADEDMODULES If LOADEDMODULES environment variable contains empty module
element (for instance when it equals to 'mod1::mod2'), this empty element is
ignored. This way it ensures all elements from the LOADEDMODULES variable
are non-empty string. Add tests to check module commands against a
LOADEDMODULES variable containing empty element.
* modulecmd.tcl.in, testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/155-is-used.exp,
testsuite/modules.90-avail/070-full.exp: Ignore empty path element in
MODULEPATH If MODULEPATH environment variable contains empty path element
(for instance when it equals to '/path/to/dir1::/path/to/dir2'), this empty
element is ignored. This way it ensures all elements from the MODULEPATH
variable are non-empty string. Add tests to check module commands against a
MODULEPATH variable containing empty element.
2018-03-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, init/bash.in, init/ksh.in, init/sh.in, init/zsh.in,
testsuite/bin/install_test_sh, testsuite/install.00-init/070-stderrtty.exp:
init: shield autoinit res from param expansion on sh-shells Quote autoinit
result for eval interpretation on SH-kind shells to avoid parameter
expansion to randomly occur on generated code depending on file or directory
names of current working directory. Test basic module commands in install
testsuite with a 'something (test)' file existing in current working
directory. Fixes bug reported at [1]. [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1549664
* modulecmd.tcl.in: Fix whatis result on empty dir name
* modulecmd.tcl.in, testsuite/modulefiles/puts/8,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.90-avail/070-full.exp: Call real 'puts' command in caller
context To be able to 'puts' content on opened channels, the 'puts' command
should be executed from the modulefile interpreter context. Elsewhere,
master interpreter does not know about the channels opened in its
sub-interpreters. Adapt interpreter setup to add a command renaming step,
to avoid the puts modulefile alias to overwrite the original puts command.
puts modulefile alias now also pass the caller interpreter reference as
first argument to be able to execute the original puts command, renamed
_puts, within context of this caller interpreter. Handle wrong argument
number error in putsModfileCmd to report an error for 'puts' command rather
'_puts' which should not be known by users. Add non-regression test to
check puts command against opened channel. Fixes #157
2018-02-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.50-cmds/130-conflict-full.exp: testsuite: load again
conflict test in 50/130-conflict-full
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: testsuite: terse+numbered disp
test in 00/120-siteconfig
* modulecmd.tcl.in: Rely on elt count in displayElementList Do not check
element count before calling displayElementList, rely on element count made
by displayElementList procedure to return if no element has to be displayed.
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: testsuite: parseAccessIssue
custom msg in 00/120-siteconfig
* testsuite/modules.70-maint/120-autoinit.exp: testsuite: MODULE_VERSION set
prior autoinit test
* modulecmd.tcl.in, testsuite/home/coll7, testsuite/home/coll8,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: Handle full path mod in
collection Enable to save and restore collections containing full path
modulefiles eventually with no modulepath defined. Valid collection test is
changed from 'no modulepath saved' to 'no modulepath AND no loaded module
saved'.
* modulecmd.tcl.in, testsuite/home/.module/coll6.target,
testsuite/modulefiles.path1/novercross,
testsuite/modulefiles.path2/novercross,
testsuite/modulefiles.path3/novercross,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.61-coll/999-cleanup.exp: Rewrite
getSimplifiedLoadedModuleList proc Use helper list if it is provided rather
than only in case no MODULEPATH is defined. Rework name simplification code
to make use of getPathToModule procedure instead of listModules. Loop around
as long as parent name matches tested modulefile, so "foo/bar/version" can
returned "foo" if "foo/bar/version" is default version of "foo". Add
non-regression tests mixing deep and virtual modulefiles whose definitions
are spread through multiple modulepaths. Help checking default versions are
correctly detected in complex situation.
2018-02-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/coll5, testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: testsuite: prepended modulepath
tests in 61-coll
* modulecmd.tcl.in, testsuite/modulefiles/append/6.0,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: bad ref counter tests in
50-cmds/040-append
* .travis.yml: travis: remove already installed deps on OS X Which led to
error when an upgrade is available for an already installed brew package.
* testsuite/modules.10-use/030-use.exp: testsuite: test path with extra ./..
in 10-use/030-use
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.90-avail/070-full.exp, testsuite/stty: testsuite: simulate
solaris stty in 90-avail/070-full
* modulecmd.tcl.in, testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.70-maint/154-is-saved.exp: Check HOME var exists before
using in findCollections Add a test for every collection-related commands
to check behavior when HOME variable is not defined.
* testsuite/modules.10-use/070-unuse.exp: testsuite: unuse with ref>1 in
10-use/070-unuse
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.90-avail/070-full.exp: testsuite: no flag report test in
90-avail/070-full
2018-02-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.70-maint/040-list.exp: testsuite: regular output test in
70-maint/040-list
* testsuite/modulefiles/system/1.0,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.90-avail/070-full.exp, testsuite/systest0: testsuite:
display/exit 0 tests in 50-cmds/140-system
* testsuite/modulefiles/append/5.0,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: large val append test in
50-cmds/040-append
* testsuite/modules.90-avail/070-full.exp: testsuite: small term width test
in 90-avail/070-full
* testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/170-contact.exp: testsuite: add
70-maint/170-contact test Check error message of a broken modulefile when
MODULECONTACT environment variable is set.
* modulecmd.tcl.in: Switch over state env vars rather if/elseif
2018-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/loc_sym/alias11,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: alias def loop test in
20-locate/040-alias
* modulecmd.tcl.in, testsuite/modules.10-use/030-use.exp: testsuite: test
modpath var ref in 10-use/030-use
* contrib/etc/rc-modulepath: contrib: add example global rc file Ensuring
MODULEPATH definition, if found empty or undefined. This configuration helps
fixing [1]. [1] https://bugzilla.redhat.com/show_bug.cgi?id=1139165
* testsuite/modulefiles/loc_sym/alias10,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: test 'module-info alias'
on non-alias mod
2018-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/uname/cache, testsuite/modulefiles/uname/unk,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: add uname tests in
50-cmds/095-uname Check uname internal cache value mechanism and result
obtained when an unknown sub-command is passed to uname.
* testsuite/modules.00-init/100-pager.exp: testsuite: 'puts stderr' test in
00-init/100-pager Test that stderr output made during modulefile evaluation
comes in correct order regarding other debugging information when pager is
enabled.
2018-02-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/120-siteconfig.exp: testsuite: add 120-siteconfig
tests in 00-init suite
* testsuite/modules.00-init/100-pager.exp: testsuite: check bad cmd set as
pager Add tests to 100-pager in 00-init suite to check situation where
defined pager command refers to a non-existent file.
* testsuite/install.00-init/070-stderrtty.exp: testsuite: check args
handling in 070-stderrtty Set a directory with name starting by '$' to
check if shell arguments are correctly escaped. Complements #154.
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/070-stderrtty.exp: testsuite: add 070-stderrtty
tests to install suite Check installed Modules version when STDERR channel
is attached to a TTY.
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Improve
passed args protection on _moduleraw As suggested by @degremont on #154, $@
is better suited than $* when surrounded by double-quotes to escape passed
arguments. Improve fix for #154.
2018-02-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, Makefile, testsuite/example/siteconfig.tcl-1,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/100-pager.exp,
testsuite/modules.70-maint/120-autoinit.exp: testsuite/travis: add cases
forcing term attach state
2018-02-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Change 'global var' to '::var'
Work on global variables in procedure with '::var' syntax rather declaring
them with 'global' command. Linking global variable to local scope with
'global' command is expensive in terms of performance and only useful if
variable is accessed more than 15 times [1]. [1] https://wiki.tcl.tk/1177
2018-02-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: fix typo in v4.1.1 release notes
* MIGRATING.rst, NEWS.rst, contrib/rpm/environment-modules.spec.in: Release
of version 4.1.1
* contrib/rpm/environment-modules.spec.in: rpm: add procps in build
requirements As 'ps' is now checked at ./configure time.
2018-02-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, modulecmd.tcl.in,
testsuite/modules.00-init/100-pager.exp: Ignore LESS env var for pager
configuration As for the PAGER environment variable, do not consider
anymore the LESS environment variable for Modules pager configuration in
order to avoid side effects coming from a general pager configuration not
compatible with Modules pager handling. Previously when LESS was spotted
defined, default paging command options were blanked if default pager was
'less'. With this change, even if LESS environment variable is defined,
default paging command options are still taken into account. Adapt doc and
tests accordingly. Complements #146
* contrib/rpm/environment-modules.spec.in: rpm: move hostname requirement to
compat subpackage As suggested by RH#1545369 [1] [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1545369
2018-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: add OS X test cases Cannot install R currently on OS
X image (homebrew issue with gcc install). Should be added later on.
* modulecmd.tcl.in: Zero tty cols equals cols not found 'stty size' on OS X
Travis-CI environment returns '0 0'
* modulecmd.tcl.in: Protect args passed to _moduleraw SH function Avoid
current working directory content to interfere with the arguments to pass
from module to _moduleraw function on SH-kind shells when shell is attached
to a terminal. Fixes #154
2018-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile: install: workaround Linux+Make 3.81 '\\\n' issue Was
affecting tests on Ubuntu Trusty
2018-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/060-quar.exp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: DYLD/LD vars cannot be
path-updated on OSX if SIP-enabled Path-variable handling is not effective
on OSX for DYLD and LD variables in case System Integrity Protection (SIP)
id enabled: in this situation these variables are not exported in subshell
context, so they appear undefined to modulecmd.tcl. Nullify modshare
variable content for the moment, do not print warning message. Adapt the
DYLD/LD test cases when running on OSX if SIP is detected enabled.
* init/Makefile: install: more portable \n to build init/modulerc That also
works on OS X.
2018-02-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/050-crossshell.exp: testsuite: fix sh/ksh
sub/cross shell tests on OSX
* testsuite/modules.50-cmds/095-uname.exp: testsuite: escape ';' in 'uname
-v' res on OSX
* configure: install: fix configure script for OSX On Darwin, 'make' is a
GNU make, GNU grep is called 'ggrep' and autopoint is installed in a
gettext-specific bin directory.
* doc/source/module.rst, modulecmd.tcl.in,
testsuite/modules.00-init/100-pager.exp: Ignore PAGER env var for pager
configuration Do not consider anymore the PAGER environment variable for
Modules pager configuration in order to avoid side effects coming from a
general pager configuration not compatible with Modules pager handling.
This change makes Modules pager implementation moving away from Git pager
implementation (which was taken as reference to model configuration behavior
of Modules pager). Git is able to withstand any pager configuration,
especially to quit pager if content fits in one screen. Not the case with
our implementation currently, so it is safer to only take into account pager
configuration that is specific to Modules. Adapt doc and tests accordingly.
Fixes #146
2018-02-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Start pager only if some text has to be printed Start
pager if enabled at first message to print on stderr. No pager is started
anymore when nothing need to be outputted on stderr. To achieve that pager
setup is split on a configuration and enablement initialization (initPager
procedure) and startup (startPager procedure). Split in two procedures is
required to report debug messages on pager configuration that will be
printed through the started pager. Partially fix #146.
* modulecmd.tcl.in: Split report procedures in pre and post init err report
Define 2 procedures for reportDebug, reportErrorAndExit and report. First to
use before error report being initialized, to bufferize messages. The second
one to be used to effectively report messages once error report being
initialized. initErrorReport procedure handles the procedure switch by use
of 'rename' Tcl command. g_init_errreport variable is removed as the
procedure split make it useless. No performance change is observed.
2018-02-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: Use specific modshare var
name for DYLD-specific vars Name modshare variable for DYLD-specific
variables MODULES_MODSHARE_<var> rather <var>_modshare to avoid warning
messages due to DYLD detecting unknown variables when using _modshare
suffix. A getModshareVarName procedure has been created to determine the
variable name to use for reference counter variables. Maybe all modshare
variables will move to a MODULES_MODSHARE prefix fashion in the future.
Fixes #153
* modulecmd.tcl.in, testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp: Harden list cmd against
unexistent mod Check loaded module is found before outputing stats on it.
* modulecmd.tcl.in, testsuite/modulefiles/info/isused,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/070-full.exp: Clean MODULEPATH content before
using it Improve getModulePathList procedure to pass each directory element
part of the MODULEPATH env variable through getAbsolutePath. Ensure this way
each directory has correct form to work with afterward. A 'set_abs'
argument is added to getModulePathList procedure, enabled by default, to
apply this new cleanup behavior. Not applied for cmdModuleUse and
cmdModuleUnuse who will need extra work to detect relative/full paths
already set in MODULEPATH. Add bunch of tests to check the various commands
when modulepath directory has trailing slash at its end. Fixes #152
2018-02-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/csh.in: init: no call to manpath if MANPATH defined on csh
* INSTALL.rst: doc: clarify use of 'gmake' to install on non-Linux
* init/csh.in: init: correct switchml def for Solaris pure csh
2018-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: testsuite: fix sh sub/cross
shell tests on Solaris
2018-02-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/csh.in, testsuite/bin/install_test_csh: init/testsuite: need quotes
for eval arg on pure csh
2018-02-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_csh, testsuite/bin/install_test_fish,
testsuite/bin/install_test_sh, testsuite/install.00-init/005-init_ts.exp:
testsuite: detect ksh93 if ksh not found Useful on FreeBSD where ksh is not
there only ksh93 binary.
2018-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_csh: testsuite: use pure csh syntax in
install_test_csh
* testsuite/install.00-init/010-environ.exp: testsuite: setup basic locale
for install tests
* init/Makefile: install: portable newline echo in Makefile
* Makefile, Makefile.inc.in, configure, init/Makefile: install: check rmdir
'--ignore-fail-on-non-empty' exists
* Makefile, Makefile.inc.in, configure: install: check for GNU grep on
Solaris
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: testsuite: fix sh sub/cross
shell tests on FreeBSD
* init/Makefile: install: fix multi modulepath build in init/modulerc
* init/Makefile: install: define a portable \n to build init/modulerc
2018-01-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile.inc.in, configure, init/Makefile, init/bash.in, init/csh.in,
init/fish.in, init/ksh.in, init/sh.in, init/zsh.in: install/init: use
MANPATH if manpath cmd not there
* Makefile, Makefile.inc.in, configure: install: save 'git worktree' avail
for Makefile
* configure: install: check for 'gmake' cmd on non-Linux systems
2018-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure, contrib/envml: Use 'env' to start 'bash' in shebang Adapt
configure and envml scripts to call bash interpreter through env utility, as
bash is not installed under /bin on some systems like FreeBSD. Would be a
lot more better if 'configure' script were a /bin/sh script.
2018-01-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.90-avail/070-full.exp: Specific code to query tty col num
on SunOS
* testsuite/install.00-init/005-init_ts.exp: testsuite: use tclsh found at
configuration time For install testsuite, do not try to find tclsh, use
location found at configure time.
* configure: install: detect tclsh8.{4,5,6} if no tclsh found Adapt
configure script to be able to test multiple variant of a command name. Use
that to detect if a version-specific of tclsh is available in case no
generic 'tclsh' binary exists.
* testsuite/modules.20-locate/043-virtual.exp: testsuite: no illegal dir op
on FreeBSD
2018-01-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/modules.70-maint/120-autoinit.exp: init: use default value on
undef var in sh shells To avoid unbound variables on bash '-eu' mode for
instance, use a default value on undefined variable. Adapt SH init scripts
and autoinit code. Add 'bash -eu' to the list of tested shells on
'testinstall' suite. Fixes #151
2018-01-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: No local
var used in sh shell autoinit code Considering the diversity of ways local
variables are handled through the sh-variants ('local' known everywhere
except on ksh, 'typeset' known everywhere except on pure-sh, and on some
systems the pure-sh is in fact a 'ksh'), no local variables are defined and
these variables that should have been local are unset at the beginning and
the end. Fixes #147
* init/Makefile: install: portable symlink copy with '-R -P' Make symlink
copy portable with 'cp -R -P' (to support SunOS)
* configure: install: check automake/aclocal bef. compat configure
* init/Makefile: install: 'cp --remove-destination' is not portable Adapt
'cp --remove-destination' into rm + cp commands as the --remove-destination
is not understood everywhere (not known on SunOS for instance).
2018-01-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure, doc/Makefile, site.exp.in,
testsuite/install.00-init/030-options.exp: install: give ability to install
without doc built If no sphinx-build found, warn user but still make it
possible to build and install Modules (without the documentation). Enables
to install Modules from git repository for test purpose on systems where
python-sphinx is not available in regular pakage repositories.
* Makefile.inc.in, configure, init/Makefile, init/profile-compat.sh.in,
init/profile.sh.in: install: get 'ps' and 'basename' loc in configure Check
paths in configure script to detect the location of the 'ps' and 'basename'
commands. Then use this found location in profile.sh scripts. First part of
#147 is solved here.
2018-01-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Write once all elt list in terse mode
* modulecmd.tcl.in, testsuite/modules.70-maint/070-display.exp: Make
separator line fit small screen width
2018-01-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile: doc/Makefile: Use $(MAKE) variable for recursive cmds
2018-01-19 Felix Neumärker <xdch47@posteo.de>
* Makefile: Makefile: Use $(MAKE) variable for recursive cmds
2018-01-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of version
4.1.0
* MIGRATING.rst: doc: describe v4.1 in MIGRATING
2018-01-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: add 'less' to build
requirements To pass configure step as 'less' is defined as default pager
and build enables paging capabilities in module.
* modulecmd.tcl.in, testsuite/modulefiles.deep/modvirt/.common,
testsuite/modulefiles.deep/modvirt/.modulerc,
testsuite/modulefiles.deep/modvirt/dir1/.modulerc,
testsuite/modulefiles.path1/dvcross/.base,
testsuite/modulefiles.path1/dvcross/.modulerc,
testsuite/modulefiles.path2/dvcross/.base,
testsuite/modulefiles.path2/dvcross/.modulerc,
testsuite/modulefiles.path3/dvcross/.base,
testsuite/modulefiles.path3/dvcross/.modulerc,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.80-deep/999-cleanup.exp: Correctly handle deep virtual
modules Fix getModules procedure to correctly handle virtual modules when
the sub-directories they refer to does not exist on the filesystem. For
instance 'modvirt/dir0/sub1/1.0' may be a virtual module defined with
module-virtual modvirt/dir0/sub1/1.0 .common in 'modvirt/.modulerc' where
modvirt/dir0 and modvirt/dir0/sub1 do not correspond to existing directories
on the filesystem. Now getModules will define among its result virtual
directory entries to make the deep virtual modules findable when, for
instance searching a default version. Add non-regression tests in 20-locate
and 80-deep suites for the deep virtual module use-case.
2018-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/043-virtual.exp: testsuite: less _modshare
checks in 043-virtual Simplify test code and protect it from Tcl array to
list sorting issue.
* NEWS.rst, doc/source/diff_v3_v4.rst, doc/source/modulefile.rst: doc: desc.
module-virtual command
* testsuite/modulefiles/loc_sym/exec3,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: check module-virtual cmd
in display mode
* doc/source/conf.py, modulecmd.tcl.in: New year copyright mention update
* modulecmd.tcl.in, testsuite/modulefiles/loc_virt2/.modulerc,
testsuite/modulefiles/loc_virt2/2.0,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.90-avail/070-full.exp: Virtual module target may be loaded
as is Adapt similar loaded module detection code and add tests to check
behavior when the target of a virtual module is loaded as is and a virtual
module targeting it is loaded/unloaded/switched/etc. Also set test cases on
module mixing regular and virtual versions, playing with short or full path
name representation.
* modulecmd.tcl.in, testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.50-cmds/170-swap.exp: Update g_loadedModuleFiles arrays in
load/unload cmds Update the content of the g_loadedModuleFiles cache array
right after loading or unloading a module. Helps subsequent actions to learn
the exact current state, especially in case of single command implying
multiple actions (switch or load/unload of multiple modules)
2018-01-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/043-virtual.exp: Handle
_LMFILES_ path var in duplicates mode Multiple loaded virtual modules may
target same file so handling of the _LMFILES_ path variable is changed to a
'duplicates' mode to ensure a file entry will always correspond to a module
entry in LOADEDMODULES. Adapt entry removal in _LMFILES_ variable to delete
the entry at the index corresponding to the index of the entry removed in
LOADEDMODULES. Add new test cases to check this duplicate mode entries in
all situation where _LMFILES_ content is involved.
2018-01-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/loc_virt1/.common,
testsuite/modulefiles/loc_virt1/.modulerc,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/043-virtual.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/070-full.exp, testsuite/virttargets/loc_virt:
testsuite: add module-virtual cmd tests
2018-01-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/rc, testsuite/modulefiles.path1/vcross/.base,
testsuite/modulefiles.path1/vcross/.modulerc,
testsuite/modulefiles.path2/vcross/.base,
testsuite/modulefiles.path2/vcross/.modulerc,
testsuite/modulefiles.path3/vcross/.base,
testsuite/modulefiles.path3/vcross/.modulerc,
testsuite/modulefiles/dirmodvirt/.modulerc,
testsuite/modulefiles/dirmodvirt/1.0,
testsuite/modulefiles/loc_dvv1/.common,
testsuite/modulefiles/loc_dvv1/.modulerc,
testsuite/modulefiles/loc_dvv1/.version,
testsuite/modulefiles/loc_rcv1/.base,
testsuite/modulefiles/loc_rcv1/.common,
testsuite/modulefiles/loc_rcv1/.modulerc,
testsuite/modulefiles/loc_rcv2/.common,
testsuite/modulefiles/loc_rcv2/.modulerc,
testsuite/modulefiles/loc_sym/.common, testsuite/modulefiles/loc_sym/alias8,
testsuite/modulefiles/loc_sym/alias9,
testsuite/modulefiles/loc_sym/getvers10,
testsuite/modulefiles/loc_sym/getvers9,
testsuite/modulefiles/loc_sym/version24,
testsuite/modulefiles/loc_sym/version25,
testsuite/modulefiles/loc_sym/version26,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/080-access.exp, testsuite/virttargets/loc_rcv:
testsuite: add virtual modules location tests
2018-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Cache modulefile validity check result Add in
checkValidModule procedure a 'g_modfileValid' global array to save validity
check result of a modulefile at first query, then reuse this cached result
on subsequent queries on same modulefile.
* modulecmd.tcl.in: Cache file mtime query results Add 'getFileMtime' to
query file modification time. On first call, cache the result then use cache
on subsequent calls for the same file.
* modulecmd.tcl.in: Find modulepath of virtual module on 'search' cmd Add
'findModulepathFromModulefile' procedure to get the modulepath corresponding
to a passed modulefile (or modulerc). Adapt 'search' cmd when looking at
module alias target, to correctly handle virtual modules. Modulepath
directory is retrieved, when detecting a virtual module, from the modulerc
file that has defined this virtual module.
* modulecmd.tcl.in: Handle loaded virtual modules on 'list' cmd Introduce
'isModuleVirtual' procedure to detect a module is virtual based on its name
and modulefile. A module is stated virtual if its name cannot be found at
end of its modulefile name. When looking at loaded modules during a 'list'
command, treat specifically virtual modules, almost like full path modules.
Tags on loaded virtual module are not search as once loaded we do not know
anymore from what modulepath directory the virtual module was coming from.
2018-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/source/1.1,
testsuite/modulefiles/source/1.2, testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.90-avail/070-full.exp: Treat file relative to cwd in
source/unsource So a relative file to source from a modulefile or modulerc,
is relative starting from the directory of the modulefile/modulerc sourcing
it. Add a specific case to treat empty file name by the way.
* modulecmd.tcl.in, testsuite/modules.10-use/030-use.exp,
testsuite/modules.50-cmds/015-use.exp: Specific err on cmdModuleUse when
empty dir name
* modulecmd.tcl.in, testsuite/modulefiles/conflict/relpath,
testsuite/modulefiles/info/isused, testsuite/modulefiles/module/relpath,
testsuite/modulefiles/prereq/relpath, testsuite/modulefiles/use/4.1,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/150-module.exp: Cwd during interp corresponds to
modfile dir Now getAbsolutePath procedure, which make a path passed as
argument an absolute path, check the current path of the interpreted
modulefile or modulerc rather always taking the current path of the module
command execution. So a modulefile or modulerc can use relative paths based
on a determistic way as it is now based on their location. Previously it was
not possible as relative paths were dependent of the location from where the
module command was executed. If ModulesCurrentModulefile variable is not
empty, getAbsolutePath nows it is called during a modulefile/modulerc
interpretation, so it takes the directory name of this
ModulesCurrentModulefile as current working directory.
* modulecmd.tcl.in, testsuite/modulefiles/modvar/modfile,
testsuite/modulefiles/modvar/submodfile,
testsuite/modules.50-cmds/340-modvar.exp,
testsuite/modules.90-avail/070-full.exp: Handle ModulesCurrentModulefile in
a push/pop fashion Refactor handling of the ModulesCurrentModulefile public
global variable to get same treatment like ModuleName with a push/pop
mechanism. Then call to the new pushModuleFile and popModuleFile procedures
is gathered in the execute-modulefile and execute-modulerc procedures to
push filename before interpretation and popping it when interpretation is
done. Change is that ModulesCurrentModulefile is reset after
interpretation, so when this variable is queried in a master interpretation
context it is possible to know if some file is currently being interpreted
or not (value restored to the empty string).
2018-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Introduce 'module-virtual' modulefile command Introduce
the virtual module concept with the 'module-virtual' modulefile command.
This new command takes a module name as first argument and a modulefile
location as second argument. A virtual module stands for this module name
associated to a modulefile. The modulefile is the script interpreted when
loading or unloading the virtual module which appears or can be found with
its virtual name. Like a module aliases, virtual modules are expected to be
defined within modulerc files (at whatever rc level). Virtual modules can be
targeted by aliases or symbolic versions. They also compete with aliases and
regular modules for the implicit default version of a module. Multiple
virtual modules may target the same modulefile, which can distinguish
between these various virtual names by use of the "[module-info name]"
command. A virtual module cannot be loaded using a full path name (merge of
its module path and its module name) as this file does not exist. Based on
a proof of concept made by Bert Wesarg [1]. [1]
https://github.com/bertwesarg/modules-tcl/commit/545e9f
2018-01-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, modulecmd.tcl.in, testsuite/modulefiles/spread/1.0,
testsuite/modulefiles/spread/2.0, testsuite/modulefiles/spread/3.0,
testsuite/modulefiles/spread/4.0, testsuite/modulefiles/spread/5.0,
testsuite/modulefiles/spread/6.0, testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spread/8.0,
testsuite/modulefiles/spreadrc/dir1/.modulerc,
testsuite/modulefiles/spreadrc/dir1/1.0,
testsuite/modulefiles/spreadrc/dir2/.modulerc,
testsuite/modulefiles/spreadrc/dir2/1.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir4/1.0,
testsuite/modulefiles/spreadrc/dir5/.modulerc,
testsuite/modulefiles/spreadrc/dir5/1.0,
testsuite/modulefiles/spreadrc/dir6/.modulerc,
testsuite/modulefiles/spreadrc/dir6/1.0,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc,
testsuite/modulefiles/spreadrc/dir8/1.0: Correctly handle list var when
reset interp When restoring an initial interpreter variable which was a
list, issue occured as the 'slave eval set' was given more than one value
argument. Passing values enclosed in a 'list' fixes the issue. Improve
non-regression tests to ensure expected handling will persist over times.
Closes #145
2018-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/030-options.exp: testsuite: check modulecmd on
compat only if inst.
* NEWS.rst, doc/source/diff_v3_v4.rst, doc/source/module.rst: doc: desc
MODULES_CMD var and modulecmd wrapper
* testsuite/install.00-init/030-options.exp: testsuite: check modulecmd in
install suite
* .gitignore, Makefile, contrib/rpm/environment-modules.spec.in,
contrib/scripts/modulecmd.in: install: introduce modulecmd wrapper script
Which execute the module command bin corresponding to active flavor.
2018-01-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/cmake.in, init/csh.in, init/ksh.in, init/perl.pm.in,
init/python.py.in, init/ruby.rb.in, init/sh.in, init/zsh.in,
modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Expose
current modulecmd with MODULES_CMD env var
2018-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst, init/cmake.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Fix removal of tmp
moduleinit.cmake.XXXXXXXXXXXX
* NEWS.rst: doc: dsc versioning, Tcl {} and .modspath parse in NEWS
* testsuite/modules.00-init/100-pager.exp: testsuite: esc install path for
pager regexp tests
2017-12-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/modulefiles/version.in: install: reinit module code in version
modfile Adapt version modulefile, which is deployed in versioning
installation mode, to re-initialize module command during its unload, to
restore the command of the previously loaded version. Goes through a full
re-initialization to overcome incompatible definition of the module command
between version 3 and 4. This full re-initialization cannot be attempted on
scripting shells, like Perl or Python, as function re-definition is not a
common practice on these languages.
2017-12-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.rst: doc: update diff_v3_v4 with 4.1 changes so far
* NEWS.rst, doc/source/module.rst: doc: desc. variable ref support in
MODULEPATH
* testsuite/install.00-init/060-quar.exp,
testsuite/modules.50-cmds/122-prereq-fullpath.exp,
testsuite/modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.50-cmds/330-source.exp: testsuite: fix regexp-tests not
escaping modfile paths
* site.exp.in, testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp: testsuite: check
versioning-specific modfile install
* testsuite/bin/install_test_cmake: testsuite: support 3-arg cmd on cmake
test script
2017-12-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, Makefile.inc.in, configure, init/Makefile, site.exp.in: install:
add @VERSION@ pattern Introduce the '@VERSION@' pattern, combination of
Modules release and build information, for building files to install. Still
rely on @MODULES_RELEASE@ and @MODULES_BUILD@ when these information are
needed prior to ./configure call (dist-related stuff) or are expected to
change after ./configure call (modulecmd.tcl in dev environment).
* .travis.yml: travis: enable versioning install on some test cases
* Makefile, testsuite/example/.modulespath.in,
testsuite/example/modulerc.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: testsuite/travis: adapt modpath
in ex cfg if versioning Adapt defined modulepaths in example testsuite
configuration file (modulerc and .modulespath) depending if versioning
installation mode is enabled or not.
2017-12-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, Makefile, testsuite/example/.modulespath-empty:
testsuite/travis: add an empty .modulespath example Check behavior when
.modulespath exists but does not hold any path to add to MODULEPATH.
* modulecmd.tcl.in: Correct parsing of init/.modulespath lines w/o comment
* modulecmd.tcl.in: Fix MODULEPATH init when init/.modulespath empty
* init/ksh.in: init: change 'string contains' tests for ksh Adapt the
'string contains' tests in ksh init script (used to setup FPATH, PATH and
MANPATH without duplicates) to correctly handle paths containing '+'
character, which is detected as a pattern-specific character on the '=~'
test condition previously used.
* INSTALL.rst, configure, init/Makefile, site.exp.in,
testsuite/install.00-init/030-options.exp: install: adapt default modpath if
versioning set If --enable-versioning configure option is set, default
modulepath option is changed from '$prefix/modulefiles' to
'$baseprefix/$MODULE_VERSION/modulefiles'. Adapt installation process to
handle modulepath containing special '$' character. Adapt also install
testsuite to correctly check these modulepaths containing variable
references.
2017-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp: Set env var on
Tcl with val enclosed in {} Produce environment variable set code for Tcl
shell with value enclosed in curly braces {} rather double-quote "". Curly
braces are more effective to protect value from interpretation, like if it
contains a dollar character.
2017-12-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, INSTALL.rst, Makefile, Makefile.inc.in, configure,
contrib/modulefiles/modules.in, contrib/modulefiles/version.in,
init/Makefile, modulecmd.tcl.in, site.exp.in,
testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.70-maint/120-autoinit.exp: install: deploy MODULE_VERSION
and version modfile When --enable-versioning is set at configure time,
deploy the setup of the MODULE_VERSION and MODULE_VERSION_STACK environment
variables in modulecmd.tcl and in a version-specific modulefile. This
version-specific modulefile is deployed in a @baseprefix@/versions
modulepath directory, which is also created specifically for versioning
installation mode. MODULE_VERSION and MODULE_VERSION_STACK environment
variables setup in modulecmd.tcl is commented if versioning installation
mode is not enabled rather deleted to guaranty consistency across code
coverage tests (same code line numbering whatever the installation options
set). version-specific modulefile is a bit different than the one used
before <4.0 as now module version is initialized when loading this module by
calling the autoinit action on the modulecmd.tcl script. These
version-specific modulefiles enable to switch from one module version to
another but there is an incompatibility of initialization between Modules
3.2 and Modules >=4. Switching from Modules 3.2 to Modules >4 will be
possible, but not going back from >4 to version 3.2.
2017-12-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.95-version/040-xgetenv.exp: Solve env
var reference in MODULEPATH Restore the ability of C-version to resolve
environment variable reference put in MODULEPATH elements. Path element is
registered in MODULEPATH variable with its variable references. When path
entry is used, variable references are solved to get real path. Add a
'resolvStringWithEnv' procedure to handle resolution of environment variable
references set in string. Re-enable non-regression tests of 95-version
suite.
2017-12-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, configure: install: add --enable-versioning Add
'--enable-versioning' configure option to append Modules version to the
chosen installation prefix.
* init/Makefile: testsuite/travis: fix testconfig removal of etcdir
2017-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc. siteconfig.tcl in NEWS
* .travis.yml, Makefile, init/Makefile, testsuite/example/siteconfig.tcl:
testsuite/travis: add an example siteconfig.tcl Add
'install-testsiteconfig' make target to setup a dummy siteconfig.tcl file in
install_etcdir. Link that to some of the travis checks to run testsuite with
an existing siteconfig.tcl
* modulecmd.tcl.in, testsuite/modules.00-init/100-pager.exp: Transparently
bufferize err report before pager init Define a global g_init_errreport
flag to know within report or reportErrorAndExit procedure if error
reporting has been initialized or not. If not yet initialized, call to
output message is saved in a buffer list. A 'initErrorReport' procedure is
added to switch 'g_init_errreport' flag and output every messages saved in
buffer list. With this change, it is possible to use reportDebug,
reportWarning, reportErrorAndExit, etc procedures transparently without
having to know if error reporting has been enabled or not. The report
procedures can then be used in siteconfig.tcl extension without messing
paging output. Regarding reportDebug, g_init_errreport enables to know if
call has to be saved since if error report is not initialized, debug mode
status is not yet known.
2017-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, Makefile, Makefile.inc.in, configure, doc/Makefile,
doc/source/conf.py, doc/source/module.rst, init/Makefile, modulecmd.tcl.in,
site.exp.in: Introduce @etcdir@/siteconfig.tcl script Add the possibility
to setup a site-specific configuration Tcl script which will be sourced at
the start of modulecmd.tcl. This site-specific Tcl script enables to
supersede global variable and procedure definition made in modulecmd.tcl.
This way local adaptations can be made without editing the modulecmd.tcl
script. '--etcdir' configure option is added to specify the location of the
site-specific configuration script.
* NEWS.rst: doc: desc work on *-path commands in NEWS
2017-12-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Improve getReferenceCountArray proc debug message
* modulecmd.tcl.in, testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.70-maint/152-remove-path.exp: Always set/unset var when
removing path in it Even if no change on variable value, always set (or
unset) this variable as its relative counter reference variable is always
set (or unset).
2017-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst, init/bash_completion.in,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/append/4.1, testsuite/modulefiles/remove/4.0,
testsuite/modulefiles/remove/4.1, testsuite/modulefiles/remove/4.2,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Add --index opt to remove-path
Remove path entry in environment variable by passing an index rather a
string. String at specified index in content list is removed if coherent
with relative reference counter.
2017-12-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst, init/bash_completion.in,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/append/4.0, testsuite/modulefiles/remove/3.0,
testsuite/modulefiles/remove/3.1, testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Introduce --duplicates opt to
{append,prepend}-path Let the possibility to append or prepend path element
entry to a variable even if this entry is already registered into the
variable which introduces duplicates element within the variable value.
Entries are added with eventual duplication by the use of the --duplicate
option on append-path and prepend-path commands. These additions increment
the reference counter as usual. Removal of duplicated path entry depends on
the reference counter value. Entries are not removed unless reference
counter value is lesser than the number of duplicated entries.
2017-12-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/append/1.7, testsuite/modulefiles/append/2.4,
testsuite/modulefiles/prepend/1.9, testsuite/modulefiles/prepend/2.4,
testsuite/modulefiles/remove/1.7, testsuite/modulefiles/remove/2.4,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Pass multi paths in multi strs on
{append,prepend,remove}-path Enable append-path, prepend-path and
remove-path to receive multiple path value arguments. Add some
non-regression tests for modulefile or sub-command cases. Update
modulefile.4 and module.1 docs. Closes #141
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/append/1.6, testsuite/modulefiles/append/2.3,
testsuite/modulefiles/prepend/1.8, testsuite/modulefiles/prepend/2.3,
testsuite/modulefiles/remove/1.6, testsuite/modulefiles/remove/2.3,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Pass multiple paths in 1 str on
{append,prepend,remove}-path Detect if path string passed to append-path,
prepend-path or remove-path commands is composed of multiple path entries
(separated by specified or default delimiter string). In this situation
add/remove each path separately to correctly update relative reference
counter. Add some non-regression tests for modulefile or sub-command cases.
Update modulefile.4 doc. Closes #142
2017-12-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Simplify check of add-path pos arg (prepend/append) If
not 'prepend' then it is 'append', no third choice.
* modulecmd.tcl.in: Rely on add-path rather append-path internally Do not
use append-path, prepend-path, remove-path in internal procedures not to
depend on current mode (load or unload).
* modulecmd.tcl.in: Improve readability of cmdModuleUse proc
* modulecmd.tcl.in, testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: Move path cmd arg parse in
{add,unload}-path Move path commands (append-path, prepend-path and
remove-path) argument check and parse in internal unload-path and add-path
procedures. So it can benefit for both external and internal calls and
gather all checks in parsePathCommandArgs. Update all 'unload-path' and
'add-path' calls for new argument order. In addition it is not needed
anymore to pass a separator character to these 2 procedures as it set to the
default value through parsePathCommandArgs. Adapt non-regression tests.
* modulecmd.tcl.in, testsuite/modules.50-cmds/050-prepend.exp: Distinguish
cleared var from bare empty path entry Sometimes a variable is cleared by
defining it empty instead of unsetting it. This is perticulary the case with
LOADEDMODULES which is often set empty in init script to say nothing loaded.
So this situation need to be distinguished from a path variable set to an
empty path entry. To distinguish both situations, relative reference
counter variable is used to check if an empty path entry is registered.
* modulecmd.tcl.in, testsuite/modulefiles/prepend/3.0,
testsuite/modulefiles/prepend/3.1,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.90-avail/070-full.exp: Fix reference counter handling of
empty path entry
2017-12-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/prepend/1.1,
testsuite/modulefiles/prepend/1.6, testsuite/modulefiles/prepend/1.7,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Add support for --delim=C arg
syntax on *-path cmds Closes #140
* modulecmd.tcl.in, testsuite/modulefiles/append/0.5,
testsuite/modulefiles/append/1.5, testsuite/modulefiles/prepend/0.5,
testsuite/modulefiles/prepend/1.5, testsuite/modulefiles/remove/0.5,
testsuite/modulefiles/remove/1.5, testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Check env var name not empty for
*-path commands
* modulecmd.tcl.in: Catch/report error in cmdModuleResurface and return
false
2017-12-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/append/0.3,
testsuite/modulefiles/append/0.4, testsuite/modulefiles/append/1.3,
testsuite/modulefiles/append/1.4, testsuite/modulefiles/prepend/0.3,
testsuite/modulefiles/prepend/0.4, testsuite/modulefiles/prepend/1.3,
testsuite/modulefiles/prepend/1.4, testsuite/modulefiles/remove/0.3,
testsuite/modulefiles/remove/0.4, testsuite/modulefiles/remove/1.3,
testsuite/modulefiles/remove/1.4, testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp,
testsuite/modules.90-avail/070-full.exp: Improve
{append,prepend,remove}-path arg check Detect missing environment variable
name or value when calling append-path, prepend-path or remove-path
procedures. Raise error in this situation. Introduce a
'parsePathCommandArgs' to check args for the 3 *-path commands. Add
non-regression tests in 050-cmds and 070-maint suites to check bad argument
situations. Closes #139
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/070-command.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/020-update.exp: testsuite: set type help message
as global var
2017-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc coll. pinning and @prefix@/etc/rc in NEWS
* .travis.yml, Makefile, init/Makefile, modulecmd.tcl.in,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/081-access-rc.exp: @prefix@/etc/rc does not
depend on MODULESHOME anymore Avoid dependency to the MODULESHOME
environment variable when looking for the etc/rc global RC file. To define
an environment dynamic global RC file the MODULERCFILE variable may be used.
By not relying on an environment variable we ensure this etc/rc will always
be read, if it exists, whatever the current environment state. Location of
this etc/rc is based on @prefix@ defined at configure time which is also the
basis for the MODULESHOME value, so this change should not have an impact if
MODULESHOME variable were not manipulated afterward. This change is useful
when using module through commands resetting the environment like 'sudo'
(see RH#1443124, RH#1139165 [1]) module.1 man page is already mentionning
@prefix@/etc/rc, no change needed there. Adapt testsuite to provide a way
to test the use of a @prefix@/etc/rc file for the whole 'make test'
duration, with 'make install-testetcrc'. [1]
https://bugzilla.redhat.com/show_bug.cgi?id=1139165
2017-12-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/.module/default, testsuite/modules.00-init/010-environ.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: testsuite: check
MODULES_COLLECTION_PIN_VERSION
2017-12-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, modulecmd.tcl.in: Introduce
MODULES_COLLECTION_PIN_VERSION Add the ability to always record module name
+ version even if this version corresponds to the default one. By default,
version number is omitted if it corresponds to the implicit or explicitly
set default version. If MODULES_COLLECTION_PIN_VERSION environment variable
is set to 1, version number is always recorded. When restoring a
collection, we do not know for sure if it was saved with pinned versions or
not, so module load and unload movements are determined on both simplified
or raw module list. Results with less module to load or unload (means with
more matches between module lists) are kept. Acknowledgment: this
development has been made and funded within the framework of the PRACE Fifth
Implementation Phase (PRACE-5IP) project (http://www.prace-ri.eu/).
PRACE-5IP receives funding from the EU's Horizon 2020 research and
innovation programme (2014-2020) under grant agreement no. 730913. Closes
#89
2017-12-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* configure: install: change git repo clone detection threshold Relative to
travis git clone depth increase
* .travis.yml: travis: increase git clone depth to catch last tag
* NEWS.rst: doc: desc work on full path name modfile in NEWS
* testsuite/modules.50-cmds/310-puts.exp: testsuite: fix puts 3-arg bad case
test for Tcl<8.6
* testsuite/modulefiles/puts/7, testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: add 3-arg bad case test
for putsModfileCmd
2017-12-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Full to short name cmp in getLoadedWithClosestName
* testsuite/modules.50-cmds/170-swap.exp: testsuite: one name swap with full
path modfile
2017-12-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/conflict/fullpath,
.../modules.50-cmds/132-conflict-fullpath.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: test conflict will full
path modulefile
* NEWS.rst: doc: desc unload mode 'module source' in NEWS
* testsuite/modulefiles/prereq/fullpath,
testsuite/modules.50-cmds/122-prereq-fullpath.exp: testsuite: test prereq
will full path modulefile
2017-12-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.80-deep/021-unload.exp: Correlate mod to already loaded
full path mod Check if a passed modulefile correspond to an already loaded
full path module (passed as full path name when it was loaded) thank to set
modulepath. This is done to detect this modulefile is-loaded, should not be
loaded a second time (with a different name) or should be unloaded. Add a
'findModuleNameFromModulefile' procedure to get corresponding modulefile
name from a full path name based on currently enabled modulepaths. Adapt
'getLoadedWithClosestName' and 'getLoadedMatchingName' procedures to make
use of 'findModuleNameFromModulefile' when a loaded module is detected to be
full path. Make cmdModuleLoad use 'getLoadedMatchingName' after
'getPathToModule' to check whether returned module is already loaded or not
(checking short or full path name combinations) Add tests on load, unload,
swap and is-loaded actions.
* doc/source/module.rst: doc: fix info-loaded section layout in module.1
2017-12-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/153-is-loaded.exp: Correlate full path mod to
already loaded mod Check if a passed full path modulefile correspond to an
already loaded module (passed as short name when it was loaded). To detect
this full path modulefile is-loaded, should not be loaded a second time
(with a different name), should be unloaded. Add tests on load, unload,
swap and is-loaded actions.
2017-12-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp: testsuite: new tests to check full
path mod support
* modulecmd.tcl.in, testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp: Modulefile starting with '(.|..)/'
are full path Consider modulefile passed with name starting by './' or
'../' a full path name modulefile, like those starting by '/'. Convert them
to an absolute path after detection to always register full path modulefiles
with their absolute path name. Adapt existing full path load and unload
tests. Complements #132
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp: testsuite: def 'err_file' for 'no
such file...' msg
2017-12-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: putsModfileCmd call 'report' to send stderr content To
better handle content sent to stderr, which should sometimes go through a
pager process, pass it to the 'report' procedure rather calling the real
'puts' command in putsModfileCmd procedure (which acts as the puts command
in a modulefile context)
* testsuite/bin/install_test_tcl: testsuite: fix install_test_tcl for Tcl8.5
compat
* testsuite/modulefiles/source/0.9, testsuite/modulefiles/source/1.0,
testsuite/modules.50-cmds/330-source.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: check 'module source'
when called from modfile
* modulecmd.tcl.in: Ensure false is rendered only once If a false statement
has already been rendered, do not render it again even if renderFalse
procedure is called a second time. Useful in case within a modulefile
interpretation a command ends up with a reportErrorAndExit statement, then
renderSettings is called.
* modulecmd.tcl.in: Handle 'source' command in unload and display mode
Report command call in display mode and change source in unsource on unload
mode. Also reverse order of script to interpret on unload. Closes #137
2017-12-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.50-cmds/010-init_ts.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.91-sort/010-init_ts.exp,
testsuite/modules.95-version/010-init_ts.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/999-cleanup.exp: testsuite: use 'modpath'
rather 'env(MODULEPATH)'
* NEWS.rst: doc: desc path/info-loaded/no-arg-case in NEW
* doc/source/module.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/321-is-used.exp,
testsuite/modules.70-maint/155-is-used.exp: Handle no argument case on
'is-used' Returns true when no argument is passed to 'is-used' if any
directory is used, whatever it is. Adapt docs and test cases to this new
behavior. Acknowledgment: this development has been made and funded within
the framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913. Closes #144
* doc/source/module.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.70-maint/154-is-saved.exp: Handle no argument case on
'is-saved' Returns true when no argument is passed to 'is-saved' if any
collection matching currently set collection target exists whatever this
collection is. Adapt docs and test cases to this new behavior.
Acknowledgment: this development has been made and funded within the
framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913.
* modulecmd.tcl.in: Extract findCollections proc from cmdModuleSavelist Add
an independent procedure to find all collections saved corresponding to
enabled collection target.
* doc/source/module.rst, doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.70-maint/153-is-loaded.exp: Handle no argument case on
'is-loaded' Returns true when no argument is passed to 'is-loaded' if any
modulefile is loaded, whatever it is. Adapt docs and test cases to this new
behavior. Acknowledgment: this development has been made and funded within
the framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913.
* testsuite/modules.70-maint/153-is-loaded.exp: testsuite: improve coverage
for is-loaded sub-cmds
* modulecmd.tcl.in: Fix 'is-loaded' to handle list of mods as arg Align
behavior on other is-* commands and man-page: return 1 if at least one arg
matches, return 0 elsewhere.
* modulecmd.tcl.in: Make 'is-loaded' relies on 'getLoadedMatchingName' Add
a 'returnfirst' return type to the getLoadedMatchingName procedure then make
is-loaded use getLoadedMatchingName rather than redoing it.
* testsuite/modulefiles/info/isloaded,
testsuite/modules.50-cmds/088-info-isloaded.exp: testsuite: improve coverage
of 'is-loaded' tests
2017-11-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_tcl,
testsuite/install.00-init/020-module.exp: testsuite: check info-loaded on
install suite Adapt install test scripts to output obtained result text.
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp: Returning text sub-cmds always
returns text In case of error, message is displayed on stderr but commands
will still return text, an empty string. If no result are found, an empty
string is also set as returning value. Text is returned as result if
'g_return_text' global variable is defined. It has the priority over
error/false/true returns. This way text can always be expected as the
returned value of a module sub-command returning text in normal cases.
Adapt non-regression test cases for 'path' and 'paths'.
* doc/source/module.rst, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/modbad/info-loaded,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/157-info-loaded.exp,
testsuite/modules.90-avail/070-full.exp: Introduce 'info-loaded' as module
sub-command Like for 'is-loaded', register 'module-info loaded' modulefile
Tcl command as a module sub-command to make it reachable from the command
line. Sub-command is named 'info-loaded' for sake of efficiency (not
'module-info-loaded'). Add the new command to the existing shell completion
scripts (bash, tcsh fish, zsh). Document new command in the module.1 man
page. Check 'info-loaded' command argument error in 071-args tests of
00-init suite. Test 'module info-loaded' cannot be called from a modulefile
with 151-module-onlytop in 50-cmds suite. Add 156-info-loaded tests in
70-maint suite to validate new sub-command. Acknowledgment: this
development has been made and funded within the framework of the PRACE Fifth
Implementation Phase (PRACE-5IP) project (http://www.prace-ri.eu/).
PRACE-5IP receives funding from the EU's Horizon 2020 research and
innovation programme (2014-2020) under grant agreement no. 730913. Closes
#3
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/info/loaded,
testsuite/modules.50-cmds/285-info-loaded.exp,
testsuite/modules.90-avail/070-full.exp: Introduce 'module-info loaded'
modulefile command Add 'loaded' sub-command to the 'module-info' modulefile
Tcl command. This new sub-command returns name of the modules currently
loaded corresponding to the name passed as argument. May return multiple
modules if passed name matches more than one loaded modules. Document new
command in modulefile.4 and test it with a 285-info-loaded tests in 50-cmds
suite. Acknowledgment: this development has been made and funded within the
framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913.
* testsuite/modules.00-init/006-procs.exp: testsuite: remove shell_echo
helper proc Not used anymore as tests using shell_echo moved to shell_text.
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.80-deep/068-transitive.exp: Paths sub-commands now returns
text Adapt 'paths' module sub-commands to return text result like 'path'
sub-command, rather printing text result. 'paths' may return multiple
values as a result, so these values are returned as words in a space
separated string. Exception made to real shells where each words is
returned(printed as it is real shells) separately, like previously done. As
a side effect also, if an error occur a 'false' boolean will be returned
rather resulting text. Adapt non-regression tests to align 'paths' test on
shell_text procedure rather shell_echo.
2017-11-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/modbad/path,
testsuite/modulefiles/modbad/paths,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.90-avail/070-full.exp: 'path' and 'paths' are only avail
from command line
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.70-maint/100-path.exp: Make sub-commands return text
rather printing text Introduce renderText procedure to return a text string
rather a true/false boolean. On regular shells, it still echoes text, but on
scripting languages a string text value is returned. Apply this new
mechanism to the 'path' sub-command. Adapt non-regression tests with the new
return code for this sub-command.
* modulecmd.tcl.in: Change test to detect something has been sent to stdout
Test something has been rendered by looking at the settings arrays or lists
rather checking stdout channel. (which does not seem to work, as it returns
-1.
2017-11-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc is-{saved,used,avail} in NEWS
* testsuite/install.00-init/005-init_ts.exp: testsuite: fix sh_family
specific install tests Was broken if one sh shell was not installed.
* doc/source/module.rst, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/modbad/is-avail,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/156-is-avail.exp,
testsuite/modules.90-avail/070-full.exp: Introduce 'is-avail' as module
sub-command Like for 'append-path', register 'is-avail' modulefile Tcl
command as a module sub-command to make it reachable from the command line.
Add the new command to the existing shell completion scripts (bash, tcsh
fish, zsh). Document new command in the module.1 man page. Check
'is-avail' command argument error in 071-args tests of 00-init suite. Test
'module is-avail' cannot be called from a modulefile with 151-module-onlytop
in 50-cmds suite. Add 155-is-avail tests in 70-maint suite to validate new
sub-command. Acknowledgment: this development has been made and funded
within the framework of the PRACE Fifth Implementation Phase (PRACE-5IP)
project (http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's
Horizon 2020 research and innovation programme (2014-2020) under grant
agreement no. 730913.
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/info/isavail,
testsuite/modules.50-cmds/322-is-avail.exp: Add 'is-avail' modulefile
command Introduce 'is-avail' modulefile command to check, following the
same spirit than 'is-loaded', if any of the passed modulefiles exists in
enabled in MODULEPATH. Document new command in modulefile.4 and test it
with a 322-is-avail tests in 50-cmds suite. Acknowledgment: this
development has been made and funded within the framework of the PRACE Fifth
Implementation Phase (PRACE-5IP) project (http://www.prace-ri.eu/).
PRACE-5IP receives funding from the EU's Horizon 2020 research and
innovation programme (2014-2020) under grant agreement no. 730913.
* doc/source/module.rst, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/modbad/is-used,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/155-is-used.exp,
testsuite/modules.90-avail/070-full.exp: Introduce 'is-used' as module
sub-command Like for 'append-path', register 'is-used' modulefile Tcl
command as a module sub-command to make it reachable from the command line.
Add the new command to the existing shell completion scripts (bash, tcsh
fish, zsh). Document new command in the module.1 man page. Check 'is-used'
command argument error in 071-args tests of 00-init suite. Test 'module
is-used' cannot be called from a modulefile with 151-module-onlytop in
50-cmds suite. Add 154-is-used tests in 70-maint suite to validate new
sub-command. Acknowledgment: this development has been made and funded
within the framework of the PRACE Fifth Implementation Phase (PRACE-5IP)
project (http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's
Horizon 2020 research and innovation programme (2014-2020) under grant
agreement no. 730913.
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/info/isused,
testsuite/modules.50-cmds/321-is-used.exp: Add 'is-used' modulefile command
Introduce 'is-used' modulefile command to check, following the same spirit
than 'is-loaded', if any of the passed directories has been enabled in
MODULEPATH. Document new command in modulefile.4 and test it with a
321-is-used tests in 50-cmds suite. Acknowledgment: this development has
been made and funded within the framework of the PRACE Fifth Implementation
Phase (PRACE-5IP) project (http://www.prace-ri.eu/). PRACE-5IP receives
funding from the EU's Horizon 2020 research and innovation programme
(2014-2020) under grant agreement no. 730913.
2017-11-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/modbad/is-saved,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/154-is-saved.exp,
testsuite/modules.90-avail/070-full.exp: Introduce 'is-saved' as module
sub-command Like for 'append-path', register 'is-saved' modulefile Tcl
command as a module sub-command to make it reachable from the command line.
Add the new command to the existing shell completion scripts (bash, tcsh
fish, zsh). Document new command in the module.1 man page. Check
'is-saved' command argument error in 071-args tests of 00-init suite. Test
'module is-saved' cannot be called from a modulefile with 151-module-onlytop
in 50-cmds suite. Add 154-is-saved tests in 70-maint suite to validate new
sub-command. Acknowledgment: this development has been made and funded
within the framework of the PRACE Fifth Implementation Phase (PRACE-5IP)
project (http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's
Horizon 2020 research and innovation programme (2014-2020) under grant
agreement no. 730913.
* doc/source/modulefile.rst, modulecmd.tcl.in,
testsuite/modulefiles/info/issaved,
testsuite/modules.50-cmds/320-is-saved.exp,
testsuite/modules.90-avail/070-full.exp: Add 'is-saved' modulefile command
Introduce 'is-saved' modulefile command to check, following the same spirit
than 'is-loaded', if any of the passed collections exists. Document new
command in modulefile.4 and test it with a 320-is-saved tests in 50-cmds
suite. Acknowledgment: this development has been made and funded within the
framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913.
2017-11-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/020-module.exp: testsuite: use unk mod to ensure
!is-loaded test
* NEWS.rst: doc: desc *-path and is-loaded cmds in NEWS
* testsuite/bin/install_test_tcl, testsuite/install.00-init/020-module.exp:
testsuite: test a command return false in install suite Add tests in
install testsuite to check commands returning true or false as result. Use
new sub-command 'is-loaded' for test.
* doc/source/module.rst, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in,
testsuite/modulefiles/modbad/is-loaded,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.70-maint/153-is-loaded.exp,
testsuite/modules.90-avail/070-full.exp: Introduce 'is-loaded' as module
sub-command Like for 'append-path', register 'is-loaded' modulefile Tcl
command as a module sub-command to make it reachable from the command line.
Improve 'cmdModuleResurface' procedure to set a global 'g_return_false' flag
when 'is-loaded' command returns 0. If 'g_return_false' flag is set shell
code rendering will end with a false value returned. Add the new command to
the existing shell completion scripts (bash, tcsh fish, zsh). Document new
command in the module.1 man page. Check 'is-loaded' command argument error
in 071-args tests of 00-init suite. Test 'module is-loaded' cannot be called
from a modulefile with 151-module-onlytop in 50-cmds suite. Add
153-is-loaded tests in 70-maint suite to validate new sub-command.
Acknowledgment: this development has been made and funded within the
framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913. Closes #116
* testsuite/modules.00-init/071-args.exp: testsuite: tests bad arg number
for *-path cmds
* testsuite/modules.70-maint/150-append-path.exp,
testsuite/modules.70-maint/151-prepend-path.exp,
testsuite/modules.70-maint/152-remove-path.exp: testsuite: add *-path tests
in 70-maint Add 150-append-path, 151-prepend-path and 152-remove-path tests
to the 70-maint suite to check these new module sub-command.
2017-11-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/modbad/append-path,
testsuite/modulefiles/modbad/autoinit, testsuite/modulefiles/modbad/foo,
testsuite/modulefiles/modbad/help,
testsuite/modulefiles/modbad/prepend-path,
testsuite/modulefiles/modbad/remove-path,
testsuite/modules.50-cmds/151-module-onlytop.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: add 151-module-onlytop
in 50-cmds suite Check module sub-commands that cannot be called within
modulefile.
* doc/source/module.rst, init/bash_completion.in, init/fish_completion,
init/tcsh_completion.in, init/zsh-functions/_module, modulecmd.tcl.in:
Improve new {append,prepend,remove}-path commands Refactor code to call
from the module command line modulefile-specific commands. These commands
can only be called from the command line, not when calling 'module'
procedure from a modulefile, to avoid any ambiguity. When parsing command
line arguments, check context to know if '-d' means '--default' (avail
command) or '--delim' (*-path commands). Add the new commands to the
existing shell completion scripts (bash, tcsh, fish, zsh). Document new
commands in the module.1 man page. Acknowledgment: this development has
been made and funded within the framework of the PRACE Fifth Implementation
Phase (PRACE-5IP) project (http://www.prace-ri.eu/). PRACE-5IP receives
funding from the EU's Horizon 2020 research and innovation programme
(2014-2020) under grant agreement no. 730913.
2017-03-02 Bert Wesarg <bert.wesarg@googlemail.com>
* modulecmd.tcl.in: New subcommands to run (prepend|append|remove)-path
directly from the command line.
2017-11-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: desc module function return and stdout spool
* modulecmd.tcl.in, testsuite/modulefiles/puts/1,
testsuite/modulefiles/puts/2, testsuite/modulefiles/puts/3,
testsuite/modulefiles/puts/4, testsuite/modulefiles/puts/5,
testsuite/modulefiles/puts/6, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/310-puts.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.90-avail/070-full.exp: Spool puts stdout command to render
after env changes Supersede 'puts' command to catch content sent to stdout
within modulefile in order to postpone content channel send after rendering
on stdout the relative environment changes required by the modulefile. By
doing so, environment variable set within modulefile will be available when
outputing directly command to the stdout channel. A 'putsModfileCmd'
procedure is added to catch all 'puts' call in a modulefile interpretation.
This procedure analyzes if the puts command targets the stdout channel. If
so, command argument is saved in a 'g_stdoutPuts' global list to be then
processed during renderSettings. If no, the real puts is called (for stderr
send for instance). Add 50-cmds/310-puts non-regression tests to garanty
all kind of puts command are well processed. Closes #113
2017-11-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/cmake.in, init/perl.pm.in, init/python.py.in, init/ruby.rb.in: Return
dummy true on compat module function Make compatibility module function to
always return a value to be able to check function result either new main
version or compat version is called. Adapt cmake, perl, python and ruby
compat module function to return a true value. Always true is returned as
compat version does not handle returning error exit code.
* modulecmd.tcl.in, testsuite/install.00-init/020-module.exp,
testsuite/modules.00-init/006-procs.exp: Protect sensitive unsetenv on Tcl
shell When rendering an unsetenv modulefile command, protect the
corresponding "unset env(VAR)" with a 'catch' Tcl command as unset will
raise an error if env(VAR) does not exist prior to unset it.
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/050-locrc.exp: Render 'true' only if something
output already Optimize content sent to stdout by only sending 'true'
statement if something else was sent before that. Nothing written on stdout
means everything is fine and the module function defined for all shells
already take that into account, as assigned result status is set to true
before calling for modulecmd.tcl. With this change, stdout channel is left
empty for sub-commands not outputing shell code like avail, help, ...
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp: Align 'true' rendering of
sh/csh/fish with other shells When calling for a 'true' statement at the
end of shell code rendering, also express a true statement for sh/csh/fish
as it is the case for other shells. True statement will also be produced
even if something has already been sent to stdout channel. To ensure in all
cases that shell code will finish on a true statement if code is correctly
generated.
2017-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Render true/false with a
variable assignment Set a local variable on shells to return true or false
status, like already done on cmake and python. This way shells treat the
return status in the same way. For other shells that cmake and python, it
does not change behavior as the variable assignement returns the value
assigned, so it still returns a boolean as last rendered operation. 'real'
shells are not touched as they already return in all cases a boolean status
without any specific assignment. Prior to modulecmd.tcl execution, the
variable used for returned status assignement is initialized to 'true'. This
way we are sure the variable will always be set and with a default 'true'
value we may optimize rendering as no rendering means true.
2017-11-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/070-display.exp: Rename
renderError/Ok in renderFalse/True
* modulecmd.tcl.in, testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/080-access.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/020-avail.exp: Render 'true' or 'false' at end of
all sub-commands Until now some module sub-commands did not finish their
run with an ok statement when everything goes well. It was the case for
avail, aliases, list, apropos/search/keyword, save*, init* and help (without
arg). However when some errors occurred on these commands, they were
returning an error statement. To apply same behavior to all commands
whatever the result is (error occurred or not) a call to renderSettings is
made after all commands which will produce a true or false statement sent to
stdout. As a consequence the return value of all module sub-command call
can be checked against a true/false value. Even if modulecmd.tcl should now
return a true/false statement, keep checks on the intermediate variable
required on python and cmake shells to guaranty a false boolean return in
case very bad stuff happened within modulecmd.tcl not producing the
intermediate variable statement. Adapt all non-reg tests to get correct
return code (OK or ERR). Note that when apropos/search/keyword hit a
modulefile error when interpreting, it will return a 'false' statement even
if result output seem correct (as these kind of error are not hidden to
better read obtained result).
2017-11-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Rename _mlret var to _mlstatus
in autoinit To better distinguish this internal variable from the _mlre
variable used for quarantine mechanism.
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_tcl: testsuite:
adapt install scripts to check ret value Adapt tcl, perl, python, ruby,
cmake and R install test scripts to check module command result based on new
boolean return value system.
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Adapt
perl/python/cmake/r autoinit to return status Change module function
defined for perl, python, cmake and R, to return the status (true or false)
obtained at rendering end. Also drop on perl the carp error handling, to
get same error handling for all shells.
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/070-display.exp: Make shells return 'false'
rather raising exception Use an expression for each supported shell to say
'false' when error occurred during modulecmd.tcl process. This was already
the behavior for the sh/csh/fish shells but a change is made to the other
lang shells where previously an exception was raised in case of error.
Moving from a raised exception to a boolean return seem to be more
appropriate for the calling scripts, which will not explode anymore each
time a modulefile is not found for instance. Boolean return opens the path
to a return value check on all supported shells (was only possible on
sh/csh/fish before that). Now all shells are aligned with a 'true' value
returned in case of success rendering and a 'false' value returned in case
of error.
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp: Make shells
return 'true' when rendering ok Add an expression for each supported shell
to say 'true' when code rendering is perfomed and things are ok. A
'renderOk' procedure is added following same principle than 'renderError'.
These code additions keep the ability for the rendering to be called from
the shell module function or from a direct execution. To achieve that
instead of using a 'return true' statement, which would had no meaning
outside of a module function, a true statement is expressed. Most of the
shells will return the result from the last evaluated statement. For shells
not returning result from the last evaluated statement (python, cmake), a
variable is set to true. This variable will be used in module function to
return the status value. For the sh/csh/fish shells, no code is rendered if
something has already been sent to stdout, as in this case the last lines
will return 'true' by itself.
2017-11-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/020-fqual.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/080-access.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp: testsuite: check out and err
channels for all tests Always use testouterr* procedures to check both
stdout and stderr channels output.
* modulecmd.tcl.in: Move autoinit code in a renderAutoinit proc Move it out
of renderSettings to improve overall readability.
* modulecmd.tcl.in: No render struct change during display mode setenv
2017-11-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Interpret Tcl rendered code in
proc context When using module interface in a Tcl script, previous code was
upleveling generated modules code to render environment changes. Now that
env array is declared withing proc, eval can be used rather uplevel to
render. By the way, if things are ok, do not exec true. Does not have sense
in a Tcl script context.
2017-11-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/006-procs.exp: Express true or
false on sh/csh/fish with test Use the buildins 'test' function to express
true or false value on sh-kind, csh-kind or fish shells rather making a call
to an external command (/bin/true and /bin/false).
* NEWS.rst, doc/source/module.rst: doc: desc MODULES_SILENT_SHELL_DEBUG in
module.1 and NEWS
* INSTALL.rst: doc: add --with-quarantine-vars in INSTALL
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp: testsuite: check
MODULES_SILENT_SHELL_DEBUG Simple tests to verify
MODULES_SILENT_SHELL_DEBUG environment variable does not break module
command.
2017-11-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/010-environ.exp,
testsuite/install.00-init/060-quar.exp, testsuite/modulefiles.other/quar,
testsuite/modules.00-init/110-quar.exp: testsuite: shield quar tests against
cur env
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Silent sh-shells debug if
MODULES_SILENT_SHELL_DEBUG Introduce MODULES_SILENT_SHELL_DEBUG environment
variable to silent the xtrace and verbose output on sh-kind shells. When
set (means MODULES_SILENT_SHELL_DEBUG=1), current xtrace and verbose flags
are saved then these shell properties are disabled. Once execution is
finished, saved setup is restored. This mechanism is defined on
initialization scripts, at the beginning to silent, at the end to restore
defined behavior. It is also defined within the module function following
exact same principle. By default, xtrace and verbose shell properties are
applied to module function and initialization script if enabled in calling
shell script or interactive session. These properties are disabled in module
context only if MODULES_SILENT_SHELL_DEBUG is set to '1'. Notice that if
xtrace/verbose properties are set, shell code that leads to disable them
when MODULES_SILENT_SHELL_DEBUG is set will be outputed as debugging is set
during these operations. The mechanism only applies to the SH-shell family.
Closes #121
* NEWS.rst: doc: describe quarantine mechanism in NEWS
2017-11-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst: doc: reorder env var in module.1
* doc/source/module.rst: doc: describe quar-related variables in module.1
2017-11-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: revert array handling of CONFIGURE_OPTS Array set is
not understood on travis env setup. Revert to single-quote string set. Just
check a simpler quarantine configuration for the moment.
* .travis.yml: travis: handle CONFIGURE_OPTS as shell array
* .travis.yml: travis: check quarantine configuration in some builds
* testsuite/install.00-init/060-quar.exp: testsuite: adapt install suite for
quar config Add a specific test in 060-quar in case quarantine has been
configured at build time, to check chosen configuration is correctly applied
in shells. This test replaces all other quarantine tests, as init script is
set with quarantine-related variables and the regular tests cannot supersede
that.
* contrib/rpm/environment-modules.spec.in: rpm: define LD_LIBRARY_PATH as
quarantine var
* Makefile.inc.in, configure, init/Makefile, init/bash.in, init/cmake.in,
init/fish.in, init/ksh.in, init/perl.pm.in, init/python.py.in, init/r.R.in,
init/ruby.rb.in, init/sh.in, init/tcl.in, init/zsh.in, site.exp.in: install:
add --with-quarantine-vars Add --with-quarantine-vars configure option to
define quarantine mechanism configuration at build time. Value passed to
the configure option will be used by Makefile to initialize in the various
initialization scripts the MODULES_RUN_QUARANTINE variable and eventual
MODULES_RUNENV_<VAR>.
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Use
_ml-prefixed var name to return code on sh shells
2017-11-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Handle IFS in a sh-compatible
way On sh shell like dash, IFS cannot be local var. Also when setting IFS
with the "IFS=$' ';" syntax $ character is also added to the IFS value.
* testsuite/install.00-init/060-quar.exp,
testsuite/modules.00-init/110-quar.exp: testsuite: check quar mech with ' '
and '"' val Adapt quarantine mechanism tests to check variable values
containing space and double-quote. Single quote currently leads to issue.
Should not be an immediate problem due to the kind of variables and relative
values this mechanism will handle (LD_LIBRARY_PATH, LD_PRELOAD, etc).
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Put
autoinit code in braces as much as possible Use braces for the different
shell autoinit code to avoid special character espacing as much as we can in
these complex piece of shell code. In some cases, braces cannot be used:
when variable value should be replaced and when a beginning brace does not
match a close brace in the same string).
* testsuite/install.00-init/060-quar.exp: testsuite: test bad libpath setup
in install/060-quar Check fake LD_LIBRARY_PATH setup is taken into account
in 060-quar test of install testsuite before running test. Skip test if
tclsh does not rise to the bait.
2017-11-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/install.00-init/060-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: Ensure correct IFS on sh-kind
script or func With quarantine mechanism sh-kind init scripts or module
function are sensitive to IFS value. If space character is not part of IFS,
eval command will not be able to understand command-line string. This
commit add code in init scripts and module function to guaranty correct
value for IFS.
* testsuite/install.00-init/060-quar.exp: testsuite: check runenv in
install.00-init/060-quar Add test in 060-quar of install suite to check
runtime environment value for quarantine variable are effectively set. Test
is made by providing a bad LD_LIBRARY_PATH that will crash all execs.
2017-11-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/r.R.in, modulecmd.tcl.in, testsuite/install.00-init/060-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to r
* init/cmake.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to cmake
* init/ruby.rb.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to ruby
2017-11-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/python.py.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to python
* init/perl.pm.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to perl
* init/tcl.in, modulecmd.tcl.in, testsuite/install.00-init/060-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to tcl
2017-11-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/fish.in, modulecmd.tcl.in,
testsuite/modules.70-maint/120-autoinit.exp: Add quarantine mechanism
support to fish
* modulecmd.tcl.in, testsuite/install.00-init/060-quar.exp,
testsuite/modules.00-init/110-quar.exp: No quarantine mechanism support on
CSH-kind shells Tried to make it fit within the 'module' alias, with no
success. 'foreach' and nested 'if' do not cope with csh alias. Tests have
been adapted to skip csh/tcsh shells. Also MODULES_RUN_QUARANTINE variable
is purely ignored if detected shell is from CSH family.
2017-11-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Improve
generation of csh autoinit code
2017-11-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/install.00-init/060-quar.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: Improve variable name check in
MODULES_RUN_QUARANTINE A variable name cannot start with a [0-9] character.
* testsuite/modules.70-maint/120-autoinit.exp: testsuite: fix autoinit test
in coverage mode
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in, modulecmd.tcl.in,
testsuite/install.00-init/060-quar.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: Validate variable names set in
MODULES_RUN_QUARANTINE Test that the names of the environment variable
defined in MODULES_RUN_QUARANTINE are valid names. Add test in quarantine
setup code within init scripts (silent check) and also test in
modulecmd.tcl. The latter reports a warning if a bad name is detected. Add
a non-regression test in modules.00-init and install.00-init test suites.
2017-11-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/install.00-init/060-quar.exp: testsuite: add 060-quar to
install.00-init suite Check real operation of the quarantine mechanism at
the initialization stage and during call of module commands. Setup a fake
libtcl .so library to verify quarantine is correctly protecting tclsh at
runtime.
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: init: setup quarantine
before autoinit for SH shells As now a call to modulecmd.tcl defines the
module function and surrounding initial environment, this execution should
also be shield against bad environment with quarantine mechanism.
2017-11-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.other/quar,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/110-quar.exp,
testsuite/modules.70-maint/120-autoinit.exp: testsuite: add 110-quar tests
in 00-init suite Check handling of environment variables related to the
quarantine runtime feature Adapt tests in 70-maint/120-autoinit to new
module function code.
* modulecmd.tcl.in: Introduce quarantine runtime (sh shells only) Introduce
a mechanism set within module function definition to modify modulecmd.tcl
runtime environment in order to protect it from side-effect coming from the
current user environment definition. For instance, if modulecmd.tcl is
installed to work with a tclsh version 8.4 but current environment has
enabled a libtcl8.6.so in LD_LIBRARY_PATH, this environment will not be able
to run modulecmd.tcl anymore. Quarantine runtime mechanism helps to define a
sane LD_LIBRARY_PATH value which will be set for modulecmd.tcl to guaranty
correct operations. The mechanism is piloted by environment variables.
First of all MODULES_RUN_QUARANTINE, a space-separated list of environment
variable names. Every variable found in MODULES_RUN_QUARANTINE will be set
in quarantine during the modulecmd.tcl runtime. Their value will be set
empty or set to the value of the corresponding MODULES_RUNENV_<VAR>
environment variable if defined. The initial value these variables have will
be passed to modulecmd.tcl via the '<VAR>_modquar' variable. Then once
modulecmd.tcl is started it restores <VAR> to the content found in
<VAR>_modquar (its original value). This commit adds the feature for the
SH-kind shells only (sh, bash, ksh and zsh). Some complex shell code was
required to distinguish an unset variable from a variable set empty: `eval
'echo ${'$var'+x}'`. Code is also slightly different for sh shell than
other sh-kind shells due to a different supported syntax to define local
variable. No 'typeset' builtin is found on a pure sh shell, like dash. 'ksh'
on its side does not understand 'local' builtin. So code for 'sh' shell uses
'local' builtin and other sh-kind shells use 'typeset'. Zsh code has a
difference compared to the other sh shells, as word splitting need to be
explicitly enabled with a '${=var}' syntax. Space is used as variable name
separator in MODULES_RUN_QUARANTINE variable, as it is the most convenient
separator to work with in SH-kind shells (no need to adapt IFS).
* site.exp.in, testsuite/modules.70-maint/120-autoinit.exp: testsuite: add
'install_tclsh' var in site.exp
2017-11-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile: install: fix use of ifeq/wildcard in Makefile Prefer
'rmdir --ignore-fail-on-non-empty' which is evaluated at runtime. ifeq is
evaluated at Makefile read.
* doc/source/conf.py: Fix no branch name for version release on RTD builds
* Makefile, doc/source/conf.py: Correct version release tag in Makefile and
Sphinx
* INSTALL.rst, NEWS.rst: doc: describe pager support in NEWS
* .travis.yml: travis: test various pager configure setup
* modulecmd.tcl.in: A 'cat' pager value set in script means disabling
* modulecmd.tcl.in: --paginate enables paging only not disabled from script
* modulecmd.tcl.in: Detect use of less/cat pager even if set as full path
2017-10-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.rst, Makefile, Makefile.inc.in, configure,
contrib/rpm/environment-modules.spec.in, modulecmd.tcl.in, site.exp.in,
testsuite/modules.00-init/100-pager.exp: install: add --with-pager and
--with-pager-opts Add --with-pager and --with-pager-opts configure options
to choose at build time pager setup.
* modulecmd.tcl.in: Remove g_use_pager, redundant with g_pager Set g_pager
to the empty value to disable message output paging by default.
2017-10-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/010-environ.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/100-pager.exp: testsuite: add 100-pager tests in
00-init suite Check handling of options related to pager feature.
2017-10-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add '-K' option to less pager Quit less pager on
interupt (^C typed) instead of trapping it. As module is set as a shell
function, SIGINT signal is first send to this function and its underlying
children (modulecmd + less pager). If less trap this interput it will remain
alone after end of module function and modulecmd process, but not in direct
interaction with terminal. So it seems preferable to end pager at the same
time its parent process vanish. Without option '-K', less continues until
reading all its remaining stdin buffer. An alternative would be to trap
signal within modulecmd, but it implies using the TclX extension to get
access to the 'signal' procedure. Moreover, after effect will quite be the
same, as shell function is terminated and remaining processed are not in
direct interaction with terminal. For the record, trapping signal in
modulecmd makes this process able to finish right after the pager command.
Procedure designated to trap signal will be run once currently blocking IO
is processed. Then close of pipe descriptor will finished once pager finish
in turns to process it remaining stdin buffer. Instead of using TclX,
Expect extension may be used to trap signal but with exact same handling
behavior than TclX. Another lead would be to trap/untrap signal within
shell function, but signal is then completely ignored.
* modulecmd.tcl.in: Increase pager fd buffer size to 64k More aligned with
the buffer size 'less' is setting-up. Should be sufficent to handle most
kind of output content in one pass.
* modulecmd.tcl.in: Handle case when pager is ended (killed or quit) Catch
cases when pager is ended before all messages are reported to it ('q'
pressed or process killed). Error raised from 'puts' call are ignored with
'catch'. As we handle here informational messages, do not end the full
modulecmd process when message channel is dead. Also protect pager fd
operations in cleanupAndExit, in case pipe is not operational anymore.
2017-10-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Fetch tty cols only if needed via getTtyColumns proc
* modulecmd.tcl.in: Report release nb & info via reportVersion proc
* modulecmd.tcl.in: Report usage message in a single output call
* modulecmd.tcl.in: Enable pager during first report call Instead of always
setting-up pager if enabled, configure and start it only if reporting
message. This way, module commands not reporting anything will not got the
overhead of the pager setup.
2017-10-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.rst, modulecmd.tcl.in: Introduce pager support Paginate
stderr output into paging command, using 'less' by default, following the
same fashion and behavior than 'git' command. Pager is enabled by default
in modulecmd script. New global variables 'g_use_pager', 'g_pager' and
'g_pager_opts' control default behavior of module command. Pager is enabled
only if stderr stream is attached to a terminal. Pager setup can then be
superseeded by environment variables. If LESS variable is set and paging
command is set to 'less', default pager options are cleared to use those
defined in LESS variable. If MODULES_PAGER variable is defined, its value
superseeds paging activation, command and options. If this variable is
empty, paging is disabled. If PAGER variable is defined and MODULES_PAGER
is unset, PAGER value superseeds paging activation, command and options. If
this variable is empty, paging is disabled. Default behavior and
MODULES_PAGER or PAGER environment variables can be superseeded by
command-line options: --paginate to enable paging and --no-pager to disable
it. When pager is enabled, a pipe file descripted is ignited to the paging
command and option for stderr stream. Once set, this file descriptor is used
by all report procedures to output message content, rather using stderr.
modulecmd command-line parse has been revised not to output message during
argument treatment. Debug, warning and error messages are saved to then be
displayed once pager setup is achieved. An 'initPager' procedure is
introduced to configure then start paging. A 'cleanupAndExit' is added to
close pager before exiting if pager has been started.
2017-10-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS.rst: doc: describe work around autoinit command in NEWS
* .gitignore, .travis.yml, Makefile, init/Makefile,
.../example/{.modulespath => .modulespath.in}, testsuite/example/{modulerc
=> modulerc.in}, testsuite/modules.70-maint/120-autoinit.exp:
testsuite/travis: rework tests with ex. init config Use make for test
config setup rather direct commands in travis configuration.
2017-10-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: fix install/cmake/R issues
* testsuite/install.00-init/010-environ.exp: testsuite: fix bash func
cleaning in install suite
* modulecmd.tcl.in, testsuite/install.00-init/020-module.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Same kind of error raise code
for Tcl than other langs In case of error, an error exit code will be
returned (1 instead of 0).
* .travis.yml: travis: add other lang pkgs for testinstall
2017-10-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Remove
extra newline on Perl autoinit code
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Messages
should go to stderr on Tcl autoinit code
2017-10-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_cmake, testsuite/bin/install_test_perl,
testsuite/bin/install_test_python, testsuite/bin/install_test_r,
testsuite/bin/install_test_ruby, testsuite/bin/install_test_tcl,
testsuite/config/unix.exp, testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/030-options.exp: testsuite: check all langs in
install testsuite
* init/Makefile: install: skip initdir rmdir if not empty on uninstall
2017-10-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml, testsuite/example/.modulespath, testsuite/example/modulerc,
testsuite/modules.70-maint/120-autoinit.exp: testsuite: check various
autoinit setup Add example modulerc and .modulespath configuration and test
autoinit behavior when these examples are installed in init directory.
* modulecmd.tcl.in: Deprecated @prefix@/modulerc in autoinit Keep behavior
of init script where only one modulerc file is sourced if it exists (in
@initdir@).
2017-10-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/cmake.in, init/csh.in, init/fish.in, init/ksh.in,
init/perl.pm.in, init/python.py.in, init/r.R.in, init/ruby.rb.in,
init/sh.in, init/tcl.in, init/zsh.in: init: shell scripts now rely on
autoinit command Make use of autoinit module command to initialize module
command and its initial surrounding environment (default value for
MODULESHOME, MODULEPATH, LOADEDMODULES and parse of init/.modulespath).
Then if compatibility version is currently activated redefined the module
command to point to the compat binary. But the compat version will benefit
from the surrounding environment initialization made by autoinit. With this
change, activated compatibility version will also get its environment
initialized by the init/modulerc file whereas before this change only the
main version was affected by this setup file.
* modulecmd.tcl.in, site.exp.in,
testsuite/modules.70-maint/120-autoinit.exp: Use configure tags to set dir
locations in autoinit Define in autoinit command the value of MODULESHOME
based on @prefix@ configure tag and initialization directory based on
@initdir@ rather guessing them from modulecmd.tcl location. Same location
approach that initialization scripts this way.
2017-10-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, modulecmd.tcl.in: Parse init/.modulespath in autoinit Parse
init/.modulespath like done in initialization script. Call cmdModuleUse for
each path entry. This way, relative paths are solved before being registered
in MODULEPATH variable. Now reference counter for MODULESPATH is also set
when enabling the configured paths.
* modulecmd.tcl.in: Define empty MODULEPATH/LOADEDMODULES in autoinit If
not previously defined, set an empty MODULEPATH and LOADEDMODULES like done
in init script. Do not source modulerc scripts if MODULEPATH or
LOADEDMODULES are non-empty.
* modulecmd.tcl.in: Define autoinit surrounding env vars in
cmdModuleAutoinit Rather in renderSettings where only the module command is
defined depending of current shell. Enables to make use of 'setenv' to
define surrounding variables like MODULESHOME and call to 'module source'
before the rendering stage.
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Make
autoinit shell code fit init script definitions Use contribution from
Thomas Zeiser for CSH autoinit code (Thomas Zeiser).
2017-10-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/120-autoinit.exp: Produce
redirect function code on autoinit for sh/fish Integrate the generation of
the _moduleraw function on sh-kind and fish shells when calling 'autoinit'
command. As for initialization scripts, stderr output redirection is set
when a terminal is attached to stderr channel. A 'isATty' procedure is
introduced to detect terminal attachement.
2017-10-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/fish.in, init/ksh.in, init/sh.in, init/zsh.in: init:
redirect stderr msg on stdout if terminal Change from previous behavior
where redirection were set if shell was interactive. With this change, a 'sh
script' command launched from a terminal session will setup module stderr
redirection whereas previously it was not the case as script was not ran in
interactive mode. Shell interactive mode is useful to know that interaction
will occur on stdin (interesting for completion setup). Knowing session is
attached to a terminal seems to be the good pivot to adapt stdout or stderr
functioning (help to determine if PAGER mode can be enabled or not on 'git')
2017-10-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, NEWS.rst, contrib/rpm/environment-modules.spec.in: Release of
version 4.0.0
2017-10-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/index.rst: doc: add intro and refine toc of index page
* configure: travis: fix full git repo detection in configure
* .travis.yml: travis: increase git clone depth to catch last tag
* contrib/rpm/environment-modules.spec.in: rpm: add 'modules-tcl' provides
for auto-upgrade When a previous 'modules-tcl' package is installed, the
new 'environment-modules' package will automatically be found as an upgrade
candidate.
* NEWS.rst: doc: reference last additions for v4.0 to NEWS
* INSTALL.rst: doc: describe compat version requirements in INSTALL
* README.md: doc: add 'Transition from v3.2' section in README
* INSTALL.rst, README.md: doc: describe sphinx requirement at install time
2017-10-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, contrib/doc2www, www/.htaccess, www/Makefile,
www/c/INSTALL.html, www/c/NEWS.html, www/c/README.html, www/c/module.html,
www/c/modulefile.html, www/index.html, www/modules.css: www: remove website
content Website content is simplified now docs are built with sphinx and
hosted on Read The Docs. Remaining website content is moved from master
branch to gh-pages branch.
* .travis.yml: travis: fix manpath install on centos6 container
* INSTALL.rst, MIGRATING.rst, NEWS.rst: doc: fix typo and layout in
INSTALL/MIGRATING/NEWS
* .gitattributes, .gitignore, Makefile, NEWS, NEWS.rst,
contrib/rpm/environment-modules.spec.in, doc/Makefile, doc/source/NEWS.rst,
doc/source/index.rst: doc: migrate NEWS doc from TXT to RST
* .gitattributes, .gitignore, INSTALL.rst, INSTALL.txt, Makefile,
doc/Makefile, doc/source/INSTALL.rst, doc/source/index.rst: doc: migrate
INSTALL doc from TXT to RST
2017-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes, .gitignore, MIGRATING.md => MIGRATING.rst, Makefile,
contrib/rpm/environment-modules.spec.in, doc/Makefile,
doc/source/MIGRATING.rst, doc/source/index.rst: doc: migrate MIGRATING doc
from MD to RST To integrate it into sphinx process and make it available on
the Web.
* doc/source/conf.py: doc: define sphinx required minimal version in conf
2017-10-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* www/index.html: www: reshape index for new project structure Put
download, docs and community information right after introduction section.
Simplify content and link to Read The Docs for documentation material.
2017-10-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/install.00-init/030-options.exp: testsuite: fix utilities
install test on csh shells
* doc/source/module.rst, doc/source/modulefile.rst: doc: detail path
variable elt counter in man-pages
* MIGRATING.md, doc/source/diff_v3_v4.rst: doc: mention output redirection
in migrate and diff
2017-10-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* site.exp.in, testsuite/install.00-init/022-module-compat.exp,
testsuite/install.00-init/030-options.exp: testsuite: test compat version
installation
* .travis.yml: travis: add 'make srpm' test on centos
* doc/Makefile: install: use rm rather sphinx to clean built docs
2017-10-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec.in: rpm: fix diff doc location in
spec
* testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.20-locate/010-init_ts.exp,
testsuite/modules.20-locate/020-fqual.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/069-cross.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/095-cleanup.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.61-coll/999-cleanup.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/010-init_ts.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp,
testsuite/modules.91-sort/999-cleanup.exp: testsuite: re modpath string if
regexp test Transform modulepath for regexp enabled tests (escape
characters having a meaning in regexp like '+')
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.80-deep/022-switch.exp: testsuite: pass err number on
shell_err Migrate some ERR test cases to a non '_re' test if they do not
require regexp.
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/040-xgetenv.exp: testsuite: no _re tests if
regexp not needed
* .gitattributes, .gitignore, Makefile, ...nt-modules.spec =>
environment-modules.spec.in}: install: genereate RPM spec to ajust source0
and release
2017-10-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/FAQ.rst, doc/source/index.rst: doc: add FAQ imported from SF
wiki
* www/.htaccess: www: add .htaccess file to redirect some docs to RTD
* INSTALL.txt, Makefile, configure, contrib/rpm/environment-modules.spec,
doc/Makefile, init/Makefile: install: use sed rather perl for substitutions
Use sed instead of perl in configure and Makefile scripts as perl is not
required anymore to build documentation. sed is a lighter requirement to
build and install software.
* README.md: doc: mention RTD in README
* Makefile, doc/source/conf.py: install: no mention of master git branch in
vers num
* Makefile, doc/Makefile: install: broader usage of makefile
translate-in-script
* doc/Makefile: install: rm doc BUILD_DIR if exists only
2017-10-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, .travis.yml, INSTALL.txt, Makefile, Makefile.inc.in,
README.md, configure, contrib/rpm/environment-modules.spec, doc/Makefile,
doc/html/common.css, doc/source/version.py.in: install: adapt doc build
process to sphinx Change makefile to build doc with sphinx rather pod. Docs
are now pregenerated in dist-tarball, to avoid requiring documentation build
tool when installing from these dist-tarball. Adapt travis conf & RPM spec
file to the new documentation build process.
2017-10-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/conf.py, doc/source/index.rst: doc: introduce sphinx
configuration To build existing manpages and diff_v3_v4 document.
2017-10-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_v3_v4.pod, doc/source/diff_v3_v4.rst,
doc/source/module.pod.in, doc/source/module.rst, doc/source/modulefile.pod,
doc/source/modulefile.rst: doc: migrate from pod to rst Transform source
documents from POD format to reStructuredText to then benefit from Sphinx
documentation framework and Read The Docs publishing capabilities.
2017-09-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile: install: set manpage date to modules build date
* modulecmd.tcl.in: Remove license information on help/usage message
* doc/Makefile: install: make doc only install man and txt No install of
HTML files, so no need to build them at make install.
* .gitattributes, .gitignore, Makefile, doc/Makefile, init/Makefile,
modulecmd.tcl.in, version.inc.in: install: handle version number through git
tags Introduce a version.inc file sourced by Makefiles, that holds release
number and build information. Makefiles use these information to set correct
version number in manpages and modulecmd.tcl script. version.inc is present
in dist tarball. This file is generated from version.inc.in file by main
Makefile when working in git repository. Release information are retrieved
from the tags of the git repository. Release number corresponds to last git
tag set. Build number is the result of the 'git describe' command: this
information helps to know from what git branch and commit the current build
is made of.
2017-09-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec: rpm: add version to modules-tcl
Obsoletes statement Comply with: https://fedoraproject.org/wiki/Packaging:G
uidelines#Renaming.2FReplacing_Existing_Packages Thanks to Aurelien
Degremont for spotting this. Fixes #133
* doc/source/module.pod.in: doc: add EXIT STATUS section in module.1
* MIGRATING.md, doc/source/diff_v3_v4.pod: doc: describe modulefiles hiding
feature In MIGRATING guide and diff reference doc.
* testsuite/modules.50-cmds/180-unload.exp: testsuite: test unload of full
pathname modulefile Add test in 180-unload of 50-cmds suite to check a
loaded module specified as full pathname correctly unloads.
2017-09-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp: Fix 'list' when full path mod
is loaded When a modulefile has been loaded using its full file path name,
not its name relative to a modulepath, skip property search on 'list'
command. Previously the property search applied to full path module were
checking the whole current path tree to find modulefiles. Introduces a
isModuleFullPath procedure to help determine a given module name is
specified as a full pathname or not. Add tests to 70-maint suite to check
'module list' behavior with full path name loaded modules. Fixes #132
* MIGRATING.md: doc: link to v4.0 closed issues in MIGRATING
2017-09-28 ebagrenrut <ebagrenrut@gmail.com>
* contrib/rpm/environment-modules.spec:
contrib/rpm/environment-modules.spec: Now Obsoletes: modules-tcl. Results in
modules-tcl being removed by yum when environment-modules is installed.
2017-09-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/prereq/orlist,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: add OR-list test for
prereq Ensure correct error message report in case of OR-list of prereq.
Clarifies #79 and #123.
2017-09-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles.path1/fodcross/2.7.13/sub-13,
testsuite/modulefiles.path2/fodcross/2.7.13,
testsuite/modules.20-locate/069-cross.exp: testsuite: mod corresp. to file
or dir in diff modpath Add location test for modulefiles spread in
different modulepath directories where modulefile name corresponds to a file
in one modulepath and corresponds to a directory in another modulepath.
Ensure correct support for #63.
* doc/source/diff_v3_v4.pod, doc/source/module.pod.in: doc:
avail/apropos/whatis support glob patterns
* MIGRATING.md, doc/source/diff_v3_v4.pod: doc: clarify submod unload during
switch command
2017-09-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile: install: add dist-tar, dist-gzip and dist-bzip2
targets Add dist tarball variants to provide dist-bzip2 file required by
RPM spec file. Source RPM can now be built with either: $ make srpm or $
make dist-bzip2 $ rpmbuild -ts modules-*.tar.bz2 Fixes #129
* contrib/rpm/environment-modules.spec, contrib/scripts/createmodule.py,
contrib/scripts/createmodule.sh: contrib: import createmodule.{sh,py}
scripts These scripts developed by Orion E. Poplawski are referenced by the
environment-modules.spec file. Include them in repository to be able to
generate RPM from the tarball. Fixes #130
2017-09-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, contrib/rpm/environment-modules.spec, doc/Makefile,
init/Makefile, modulecmd.tcl.in, testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/025-autoinit.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp,
testsuite/modules.00-init/015-version.exp: Release of version 4.0.0-beta
Adapt testsuite to take new release name in account.
2017-09-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, NEWS, contrib/rpm/environment-modules.spec, doc/Makefile,
doc/source/{diff_with_c-version.pod => diff_v3_v4.pod}: doc: rename
diff_with_c-version to diff_v3_v4
* .gitignore, MIGRATING.md, Makefile, contrib/rpm/environment-modules.spec:
doc: add MIGRATING guide
2017-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod: doc: improve diff doc with more
changes between 3.2 & 4
2017-09-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod: doc: rephrase diff to talk about
Modules 3.2 and 4
* doc/source/module.pod.in: doc: describe MODULES_USE_COMPAT_VERSION in
module.1
* init/bash.in, init/bash_completion.in, init/cmake.in, init/csh.in,
init/ksh.in, init/perl.pm.in, init/profile-compat.csh.in,
init/profile-compat.sh.in, init/python.py.in, init/ruby.rb.in, init/sh.in,
init/zsh.in: init: rename use compat var in MODULES_USE_COMPAT_VERSION Use
a distinguishable prefix for environment variables relative to the Modules
software: 'MODULES_'.
2017-09-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS: Add release notes for 4.0.0 in NEWS
2017-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/fish_completion, init/fish_completion.in: init: fix
and normalize fish_completion * remove incorrect references to apt-get *
use space instead of tabs * normalize description messages reusing short
sentences already made for zsh completion * fix function to filter module
command output and only return modulefile list not mixed with files *
simplify install process by removing need for a '.in' file (and fix
bash_completion install on the way)
2017-09-21 BEFH <fultonh1@gmail.com>
* init/Makefile, init/fish_completion.in: fish_completion Created an
initial fish_completion script and added to Makefile.
2017-09-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/environment-modules.spec, ...cros.modules-tcl =>
macros.environment-modules},
...les-tcl-1.923-fix-uname-nodename-when-dns.patch,
.../modules-tcl-1.923-fix-uname-release-test.patch,
...ules-tcl-1.923-fix-uname-release-with-lsb.patch,
.../modules-tcl-1.923-no-etc-rc-as-rc-file.patch,
...dules-tcl-1.923-skip-access-tests-if-root.patch,
...dules-tcl-1.923-unneeded-manpath-q-option.patch,
contrib/rpm/modules-tcl.spec: rpm: adapt spec for 4.0.0-beta Base new
environment-modules.spec on Fedora specfile made by Orion Poplawski. Adapt
content to build on either Fedora and EL systems.
* contrib/scripts/add.modules.in, contrib/scripts/mkroot: contrib: add
proper header for add.modules and mkroot
* .gitignore, Makefile, contrib/scripts/add.modules.in,
contrib/scripts/{mkroot.in => mkroot}: install: add add.modules and mkroot
to bindir
* contrib/scripts/add.modules.in, contrib/scripts/mkroot.in: contrib: import
add.modules and mkroot from c branch These scripts are usually part of a
regular environment-modules installation
* init/profile.sh.in: init: use . instead of source in sh-kind profile
script
2017-09-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* www/index.html: www: update bug tracker url
2017-09-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/doc2www, www/c/INSTALL.html, www/c/NEWS.html, www/c/README.html,
www/c/module.html, www/c/modulefile.html, www/index.html: www: update
repository url And be more forge neutral in footer disclaimer of all pages.
* testsuite/install.00-init/030-options.exp: testsuite: fix test relative to
installed contrib mods
* .gitignore, contrib/modulefiles/module-info,
contrib/modulefiles/modules.in, init/Makefile: install: add 'modules'
modfile to example modfiles
* .gitignore, .travis.yml, INSTALL-win.txt, INSTALL.txt, Makefile, NEWS,
configure, contrib/modulefiles/module-git, doc/Makefile: Rename Modules-Tcl
> Modules in docs and install scripts
2017-09-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* README.md: doc: speak about Modules rather Modules-Tcl in README
2017-09-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: add ChangeLog-compat and NEWS-compat Build and install
ChangeLog and NEWS files relative to compatibility version in %docdir.
* configure: install: fetch compat git branch in configure If install is
attempted from a git repository, try to get compat branch is not already
available in local repository. Handle various cases like truncated
repository.
* .travis.yml: travis: fix build requirements for compat version
* .travis.yml: travis: exclude compat branches from ci
2017-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/.gitignore, init/Makefile, init/profile-compat.csh.in,
init/profile-compat.sh.in: init: add profile scripts enabling compat vers by
default
2017-09-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile: install: add compat src to dist tarball
2017-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, init/.gitignore: git: fix location of ignored files
* init/Makefile: install: remove any preexisting ksh-functions switchml In
case we reinstall with this time C version installation disabled.
* init/perl.pm.in: init: normalize perl.pm hash key syntax
* init/.gitignore, init/Makefile, init/bash.in, init/{bash_completion =>
bash_completion.in}, init/cmake.in, init/csh.in, init/fish.in, init/ksh.in,
init/perl.pm.in, init/python.py.in, init/ruby.rb.in, init/sh.in,
init/zsh.in: init: adapt scripts to --enable-compat-version build Introduce
MODULE_USE_COMPAT_VERSION environment variable to control the activation of
the compatibility version rather main version in case of
--enable-compat-version installation. The initialization script of the
shells supporting compatibility version are adapted to define the 'module'
command based on the modulecmd-compat binary if MODULE_USE_COMPAT_VERSION is
set to 1. Elsewhere module is based on modulecmd.tcl. 'switchml' function
of alias is reintroduced to switch between main and compatibility version
based on the state of the MODULE_USE_COMPAT_VERSION environment variable.
Acknowledgment: this development has been made and funded within the
framework of the PRACE Fifth Implementation Phase (PRACE-5IP) project
(http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's Horizon
2020 research and innovation programme (2014-2020) under grant agreement no.
730913.
2017-09-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, .travis.yml, INSTALL.txt, Makefile, Makefile.inc.in,
configure, doc/Makefile, init/Makefile, site.exp.in,
testsuite/install.00-init/030-options.exp: install: --enable-compat-version
to build compat vers Introduce '--enable-compat-version' configure argument
to configure and build compatibility (C) version in addition to main
version. This compatibility version is located in the 'compat' directory,
which is automatically populated with 'c-master' git branch if we work in
the git repository. 'configure' script is adapted to run the compatibility
version relative configure script. Unknown command-line arguments are passed
down to this script, which raise error if these arguments are not known
there either. Some compatibility version configure script argument are also
incompatible in this dual installation mode, so an error is raised
(--enable-versioning for instance). Build process will generate and install
modulecmd-compat, module-compat.1 and modulefile-compat.4 from this
compatibility version. 'compat' suffix enables clear distinction with main
version files. Acknowledgment: this development has been made and funded
within the framework of the PRACE Fifth Implementation Phase (PRACE-5IP)
project (http://www.prace-ri.eu/). PRACE-5IP receives funding from the EU's
Horizon 2020 research and innovation programme (2014-2020) under grant
agreement no. 730913.
2017-09-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.txt, Makefile.inc.in, configure, contrib/rpm/modules-tcl.spec,
init/Makefile, init/bash.in, init/csh.in, init/ksh.in, init/sh.in,
init/zsh.in: install: remove features linking to external C version Remove
the --enable-set-switchml, --enable-use-cver-dotmodulespath,
--with-cver-initdir, --with-cver-bindir and --with-cver-mandir configure
option that previously enabled to link Modules-Tcl installation to an
external Modules-C installation. This change is an initial step toward a
bundled installation of Tcl/C versions, so the external linking support will
transform into a dual flavor installation.
2017-09-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash.in, init/csh.in, init/fish.in, init/ksh.in, init/sh.in,
init/zsh.in: init: module source @initdir@/modulerc rather shell source
Like for other lang init scripts.
2017-09-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.80-deep/022-switch.exp: No swap-on if swap-off failed
During a 'switch' command, if the unloading part fails the loading part will
not be tried. Unloading part fails if module to unload does not exist or
its unload interpretation raise error. If module to unload exist and is not
loaded, unload is considered successful.
* modulecmd.tcl.in: Debug on 'nothing to do' cond of load/unload Add a
debug message when load command has nothing because module to load is
already loaded. Add a debug message when unload command has nothing to do
because module unload exists but is not loaded.
2017-09-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/module/bad,
testsuite/modulefiles/module/err, testsuite/modulefiles/module/lbad,
testsuite/modulefiles/module/lerr, testsuite/modulefiles/module/lunk,
testsuite/modulefiles/module/unk, testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.90-avail/070-full.exp: Failed load/unload if submod
load/unload fails When a modulefile loads or unloads another modulefile,
load or unload issue did not previously led to upper module load or unload
failure. As a result, the upper modulefile appeared loaded or unloaded
whereas its dependent sub-modulefile were not loaded or respectively still
loaded. This commit makes cmdModuleLoad and cmdModuleUnload procedure
return an exit code to let know if load or unload action performed
correctly. In case of a 'module load' or 'module unload' call within a
modulefile, the module procedure will raise an error with the dummy message
'SUB_FAILED'. This message is caught at the result of the modulefile
interpretation to return an error code, without raising error count or
message as it has already been handled at the root of the issue.
* modulecmd.tcl.in: Fix popSettings stack handling popSettings were
cleaning 2 levels of stack instead of 1, resulting in bad environment
restore when issue occurred in a nested modulefile interpretation.
* testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/090-source.exp: testsuite: add tests for unknown
or broken mod Add tests to check behavior for commands performing
modulefile interpretation when modulefile is unknown or has broken Tcl code
inside.
2017-09-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp: Only one sep line between
2 mods on display/help/test Print only one separator line (---) between the
interpretation of 2 modules on the display, help and test commands to
improve readability of the results displayed. To do so, cmdModuleDisplay
and cmdModuleTest procedures have been adapted to receive the full list of
modules to work on, like it was already done on cmdModuleHelp. Adapt
non-regression tests output to this change.
* modulecmd.tcl.in, testsuite/modulefiles/bad2/body,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/140-multiargs.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/070-full.exp: Do not exit if internal error
occurs in interp mod Previously an internal error occurring during the
interpretation of a modulefile (like broken Tcl code) was leading to an
immediate exit of the whole module execution. So the end of the ongoing
command was skipped (like printing separator line '---' on display command
or interpreting next modulefile passed argument on load command). With this
change, an internal error occurring during the interpretation of a
modulefile will be treated as any other error raised by modulefile Tcl
commands (like prereq, conflict, append-path, etc). Interpretation will be
considered as failed but ongoing command will get this failed status and
will continue. As a result, when this kind of error occurs now display,
help, load, unload, whatis and source commands will end treatment of the
failed modulefile and then proceed with the following modulefiles passed as
arguments. Add 140-multiargs non-regression tests in 70-maint suite to
check behavior of module commands running with multiple modulefiles passed
as argument.
2017-08-31 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/010-init_ts.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.20-locate/095-cleanup.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.80-deep/021-unload.exp,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/080-access.exp: Print more readable messages on
reportInternalBug Improve readability of error messages encountered during
modulefile execution by putting Tcl error message first after the 'Module
ERROR' prefix. To achieve this improvement, modulefile is passed to
reportInternalBug procedure as a separate argument. Procedures getting and
manipulating error information have been adapted to add modulefile as an
element of the error information to be able to transmit it to
reportInternalBug. In addition, this commit change error reporting kind
when facing access error on readModuleContent. Previously access issues were
reported with reportInternalBug whereas these issues were not relative to
modulefile content. reportError is now used to report access issue as when
this kind of error is encountered when checking file is valid modulefile.
Adapt relative non-regression tests and take opportunity to centralize
common error messages at start of the testsuite.
2017-08-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, doc/Makefile, init/Makefile: install: avoid make to rebuild
Makefile.inc
2017-08-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Add getModuleNameFromModulepath helper proc
* modulecmd.tcl.in: Add getModulepathFromModuleName helper proc
* modulecmd.tcl.in, testsuite/modules.70-maint/130-aliases.exp: Add blank
line between displayed list of elements When reporting results per category
or modulepaths like during an 'avail' or 'whatis' command, add a blank line
between categories or modulepaths to get a clearer separation between them.
With this change, behavior is align with C-version and standard tools like
'ls'.
* modulecmd.tcl.in, testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.90-avail/060-empty.exp: No table header display if no
avail result Do not print the table header line in --long mode on an
'avail' command if no result are returned. Take opportunity of this change
to introduce the displayTableHeader procedure in order to get an homogeneous
code to produce such kind of header in the various command procedures
requiring it.
2017-08-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.pod, modulecmd.tcl.in,
testsuite/modulefiles/.hidden/1.0, testsuite/modulefiles/loc_rc8/.2.0,
testsuite/modulefiles/loc_rc8/.modulerc,
testsuite/modulefiles/loc_rc8/.subdir/4.0,
testsuite/modulefiles/loc_rc8/1.0, testsuite/modulefiles/loc_rc9/.1.0,
testsuite/modules.20-locate/067-hidden.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/070-full.exp: Add support for hidden 'dot'
modulefiles Modulefiles with part of their name starting with a '.' dot
character are considered as hidden modulefiles, like dot files on Unix-kind
filesystems. After introduction of the getModules/findModules procedures
hidden modulefiles where automatically discarded. So this commit
re-introduce the support to locate these dot modulefiles. Add a
'fetch_hidden' argument to the findModules procedure to enable an extra
lookup on walked directories to gather the dot modulefiles. The getModules
procedures now looks at the passed mod and if named module correspond to a
dot modulefile findModules 'fetch_hidden' argument is turned on. Since
getPathToModule call to getModules for broad search (with just passed mod
root name), this procedure also makes the 'is hidden module' test to order
getModules to do the hidden search. A hidden modulefile does not appear in
case of wild search, it is only returned when search is about its exact
name. When a symbolic version targets a hidden modulefile, this modulefile
will also be returned in case search is about symbol exact name. A module
alias targeting a hidden modulefile is returned as any other aliases. Add
067-hidden non-regression tests in 20-locate suite.
2017-08-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Look for alias/sym tgt in all path on cmdModuleSearch
Introduce a second search round in cmdModuleSearch to solve module alias or
symbolic version that were not solved by looking at modules in the
modulepath where they have been defined. During initial search round across
modulepaths, these aliases or symbols which return an 'Unable to locate'
issue from getPathToModule are stored in an extra_search array which gathers
all elements to look at during the extra search round. Extra search round
will attempt to solve these aliases or symbol in all defined modulepaths,
except the path already looked at. Due to this second search round, results
are not processed immediately for each modulepath but once when all location
searches are finished. So user will get one full output rather progressive
results modulepath after modulepath. This behavior change in outputing
results is required as an alias or symbol solved globally may alter the
result list of a modulepath already processed. So when these kind of alias
or symbol are searched, their target modulefile will be appended to the list
of files to interpret of the modulepath they are coming from. To optimize
alias/symbol resolution process the 'full_list' array is introduced to store
all the module names added to each modulepath arrays, so before asking
getPathToModule for resoltution, look if defined target has not already been
found and saved in 'full_list'.
2017-08-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Look for alias/sym tgt in all path on cmdModulePaths
Resolve alias or symbolic version by looking in all modulepaths, rather just
current modulepath, in order to match alias or symbol targeting a module in
a different modulepath. Resolution is made first in current modulepath
directory, if not solved there the other modulepaths will be looked at
following their precedence order. Previously only alias and symbolic
version targeting module in same modulepath were found.
* doc/source/modulefile.pod, modulecmd.tcl.in: Handle alias/sym pt. to
another path in getPathToModule When searching for a module in a given
modulepath directory, if a module alias or a symbolic version matches
searched module but the target of this alias or symbol is not found in
current modulepath directory, search for this target restarting search from
the first modulepath in list to ensure modulepath priority. Previously this
kind of alias or symbol targeting a module in a different modulepath were
only found if this path was set after the modulepath where the alias or
symbol is defined. Clarify alias and symbolic version modulepath resolution
steps in modulefile man page.
2017-08-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/etc/modulerc.cross, testsuite/modulefiles.path1/cross/.modulerc,
testsuite/modulefiles.path1/cross/3.0,
testsuite/modulefiles.path1/cross/4.0,
testsuite/modulefiles.path1/dcross/.modulerc,
testsuite/modulefiles.path1/dcross/4.0,
testsuite/modulefiles.path1/dcross/dir1/1.0,
testsuite/modulefiles.path1/lcross/1, testsuite/modulefiles.path1/lcross/10,
testsuite/modulefiles.path1/lcross/6,
testsuite/modulefiles.path1/othcross/.modulerc,
testsuite/modulefiles.path1/othcross/1.0,
testsuite/modulefiles.path2/cross/.modulerc,
testsuite/modulefiles.path2/cross/1.0,
testsuite/modulefiles.path2/cross/6.0,
testsuite/modulefiles.path2/dcross/dir1/.modulerc,
testsuite/modulefiles.path2/dcross/dir1/2.0,
testsuite/modulefiles.path2/dcross/dir2/1.0,
testsuite/modulefiles.path2/lcross/11, testsuite/modulefiles.path2/lcross/2,
testsuite/modulefiles.path2/lcross/4, testsuite/modulefiles.path2/lcross/5,
testsuite/modulefiles.path2/lcross/7,
testsuite/modulefiles.path3/cross/.modulerc,
testsuite/modulefiles.path3/cross/2.0,
testsuite/modulefiles.path3/cross/5.0,
testsuite/modulefiles.path3/dcross/.modulerc,
testsuite/modulefiles.path3/dcross/5.0,
testsuite/modulefiles.path3/dcross/dir1/3.0,
testsuite/modulefiles.path3/dcross/dir3/1.0,
testsuite/modulefiles.path3/lcross/12, testsuite/modulefiles.path3/lcross/3,
testsuite/modulefiles.path3/lcross/8,
testsuite/modulefiles.path3/othcross/.modulerc,
testsuite/modulefiles.path3/othcross/2.0,
testsuite/modules.20-locate/069-cross.exp: testsuite: add tests for mods
spread across paths Add location tests for module, aliases and symbolic
versions whose definition are spread across multiple modulepaths.
* testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.80-deep/068-transitive.exp: testsuite: add unload tests
mentioning sym or alias
2017-08-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/install.00-init/030-options.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/038-defcontext.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.91-sort/020-avail.exp: Parsable modulepath header when
-l/-t enabled Do not ship modulepath header in a separator line in terse or
long output on module avail command. With this change, behavior is aligned
with C-version.
* modulecmd.tcl.in, testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp: Make -l/-t switches mutually
exclusive Last switch mentionned on command-line is honored
* modulecmd.tcl.in: Remove useless g_loadedModulesGeneric structure
Registering the loaded module name in the g_loadedModulesGeneric global
array to look for loaded module information is now useless following the
addition of the getLoadedWithClosestName and getLoadedMatchingName
mechanisms.
* modulecmd.tcl.in, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.80-deep/022-switch.exp: Enable getPathToModule to return
closest loaded mod If 'look_loaded' argument of getPathToModule procedure
is set to 'match' look at matching loaded modules to get result (unload
behavior). Enable to return the closest loaded modules (not module expressed
in mod but sharing at least the same root name) by setting look_loaded
argument to 'close'. With this change, cmdModuleUnload is adapted to call
getPathToModule in 'match' look_loaded mode most of the time, but in case of
'module switch' with a single argument, cmdModuleUnload will call
getPathToModule in 'close' look_loaded mode. As a consequence,
cmdModuleSwitch does not need anymore to work on module resolution and rely
entirely on cmdModuleLoad and cmdModuleUnload which in turn rely on
getPathToModule. Add complementary tests in 50-cmds/170-swap and
80-deep/022-switch to ensure closest loaded module is not returned in case
of 'switch old new' command (not 'switch new').
* modulecmd.tcl.in, testsuite/modules.50-cmds/180-unload.exp,
testsuite/modules.80-deep/021-unload.exp: Unload deep mod with just root
name passed as arg Enable to unload 'mod/dir/subdir/vers' when unload of
'mod' or 'mod/dir' asked. Was previously working only if deep module to
unload was also the default version for these root names. Introduce
getLoadedMatchingName procedure to check passed name is equal to or is a
subpart of a loaded module. This new procedure is then used in
getPathToModule when look_loaded is enabled (so when unloading module). Add
021-unload tests in 80-deep suite to check unload of deep modules using sub
names. Add also new tests in 180-unload of 50-cmds suite to check behavior
when multiple loaded modules match searched name.
* modulecmd.tcl.in, testsuite/modulefiles.deep/plain/dir1/1.0,
testsuite/modulefiles.deep/plain/dir1/2.0,
testsuite/modulefiles.deep/plain/dir2/1.0,
testsuite/modulefiles.deep/plain/dir2/2.0,
testsuite/modules.80-deep/022-switch.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/080-access.exp: Fix getLoadedWithClosestName
search Algorithm were matching middle or end part of module even if no
match on root element. Add 022-switch tests in 80-deep to test
getLoadedWithClosestName on deep module names.
2017-08-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modules.50-cmds/180-unload.exp: Remove dummy
code on cmdModuleUnload Clean code in cmdModuleUnload procedure that were
used as fallback treatment in case a module loaded were not found by
getPathToModule (relative modulepath unconfigured?). Nowadays
getPathToModule procedure also look at the loaded module information and
return in case of an 'unload' action registered loaded modulefile, whatever
configured modulepath. Take this opportunity to add 180-unload tests in
50-cmds suite to check unload behavior with different name condition and
when the modulepath relative to the loaded module to unload is not set
anymore.
* modulecmd.tcl.in, testsuite/modulefiles/loc_dv1/1.0,
testsuite/modulefiles/loc_dv1/2.0, testsuite/modulefiles/loc_dv2/2.0,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/038-defcontext.exp: Locate module using loaded
context only on 'unload' When searching for a modulefile corresponding to a
given name, the getPathToModule procedure was previously looking by default
at the list of loaded modulefiles to find a match. This behavior lead to
different result depending on the loaded environment context for all module
commands relying on modulefile location. For instance, if 'mod' had 2
versions '1' and '2', the latter being default version, if 'mod/1' were
loaded it was this version that were answered when asking for 'mod'. This
commit restore a predictable and idempotent behavior where the loaded
modules context is only use when working on this loaded context. Same
behavior than C-version is now encountered. As a result, only the 'unload'
command now looks at loaded modules to find location of modules passed as
argument. Load, display and help commands do not look anymore at loaded
modules to locate their module arguments. Non-regression tests
038-defcontext in 20-locate have been introduced to ensure correct behavior
will persist over time.
2017-08-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/loc_sym/version23,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.90-avail/070-full.exp: Do not alter resolution path when
spreading sym When spreading symbol along resolution path, do not update
this resolution path. Exception made when overwriting a pre-existing symbol
(used for instance in case default version set in .version file superseeds a
default an already set via .modulerc file) Protected resolution path helps
to spread symbol all along the path without missing intermediate resolution.
* testsuite/modulefiles.deep/modtr/.modulerc,
testsuite/modulefiles.deep/trmod/.modulerc,
testsuite/modulefiles/loc_sym/version22,
testsuite/modulefiles/loc_tr/.modulerc,
testsuite/modulefiles/tr2_loc/.modulerc,
testsuite/modulefiles/tr_loc/.modulerc,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: check 'default' symbol
spread Add non-regression tests in 20-locate/045-symvers,
20-locate/068-transitive and 80-deep/068-transitive to ensure that 'default'
symbol has same spreading properties than other symbols.
* modulecmd.tcl.in, testsuite/modulefiles/loc_sym/version21,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/070-full.exp: Fix symbol spread when set on alias
before their def Propagate symbols set on aliases before the definition of
these aliases. Previously, a symbol set on a not-yet-defined alias were lost
and not applied to the alias target once set. With this change setting a
symbol on an alias gives same result either this symbol is set before or
after the alias definition.
2017-08-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Remove 'default_is_special' from getModuleNameVersion
New "default" treatment in setModuleResolution procedure permits to remove
the 'default_is_special' hack from getModuleNameVersion procedure. One
exception still needed for the 'module-info symbols' command, which may be
called for 'modname/default' with no default symbol necessary registered but
symbols set on bare module name.
* modulecmd.tcl.in, testsuite/modulefiles/loc_sym/version17,
testsuite/modulefiles/loc_sym/version18,
testsuite/modulefiles/loc_sym/version19,
testsuite/modulefiles/loc_sym/version20,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.90-avail/070-full.exp: Register step-by-step resolution
path Register a step-by-step resolution path with help of g_resolvedPath
array in order to be able propagating symbols all along this resolution
path. Previously intermediate steps were skipped during symbol spread
leading to different results depending on module-version statement order.
Add tests in 045-symvers of 20-locate suite to check new behavior. Also
correct tests in 068-transitive of 20-locate and 80-deep suites.
2017-08-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in, testsuite/modulefiles/loc_dv2/1.0,
testsuite/modulefiles/loc_dv7/2.0/1.0, testsuite/modulefiles/loc_dv9/1.0,
testsuite/modulefiles/loc_sym/alias7,
testsuite/modulefiles/loc_sym/version15,
testsuite/modulefiles/loc_sym/version16,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/031-defvers2.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp: Resolve 'mod/default' when
'default' symbol set Resolve the 'default' symbolic version as any other
symbolic version when passed as module name on commands performing module
resolution like load, display, help and test. Previously 'default' symbolic
version used in module name was only found on search-like commands like
avail, whatis and paths. With this change same behavior than C-version is
achieve. setModuleResolution procedure has been reworked to register
resolution and symbols on 'modulename/default' in addition to just
'modulename'. So resolution or symbol querying now find a match on
'modulename/default'. Introduce 031-defvers2 non-regression tests in
20-locate suite to test usage of 'default' symbol in module name passed on
command-line. Also add tests in 040-alias and 045-symvers of 20-locate suite
to check module-alias and module-version behavior when targeting default
module.
2017-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl.in: Avoid empty-string on unload when running Tcl8.4
* .gitignore, Makefile, contrib/nglfar2ccov, doc/Makefile, modulecmd.tcl =>
modulecmd.tcl.in: More standard shebang for modulecmd.tcl Make use of
'./configure' information to set a precise tclsh shebang on modulecmd.tcl
script. This change requires to move modulecmd.tcl to modulecmd.tcl.in
within repository. Shebang is set to '@TCLSHDIR@/tclsh' rather just
'@TCLSH@' in modulecmd.tcl.in to help forge code determines that this file
is a Tcl script.
* testsuite/modules.20-locate/080-access.exp: testsuite: check access on
symlink module Add non-regression tests in 080-access of 20-locate suite to
control behavior of filesystem symlink module when symlink target directory
or its content has a restricted accessed.
* modulecmd.tcl: Skip module-version registration if invalid modname
2017-08-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles.deep/modtr/.modulerc,
testsuite/modulefiles.deep/modtr/dir4/.modulerc,
testsuite/modulefiles.deep/tr2mod/.modulerc,
testsuite/modulefiles.deep/tr2mod/dir3/.modulerc,
testsuite/modulefiles.deep/trmod/.modulerc,
testsuite/modulefiles.deep/trmod/dir3/.modulerc,
testsuite/modulefiles/tr2_loc/.modulerc,
testsuite/modulefiles/tr_loc/.modulerc,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.90-avail/070-full.exp: Include all kind of symvers target
in getModules res When parsing symbolic version targets in getModules
procedures, these targets were previously included in search result only if
they were found on the filesystem (file or directory). But sometimes, these
targets may be module alias and not a consistent file or directory. This
situation happens when a module-version is set on an alias which in turns
targets a modulefile in a different directory. When you query the symbolic
version in the end-point modulefile directory, you get the modulefile as a
result, but if you query the symbol in the alias directory, this alias will
be returned. Adapt non-regression tests in 060-rc of 20-locate suite and in
068-transitive of 80-deep suite. Improve especially the 068-transitive tests
with aliases and symbols set from different module.
* .gitignore: git: ignore vim swap files
2017-08-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles.deep/modtr/.modulerc,
testsuite/modulefiles.deep/modtr/3.0,
testsuite/modulefiles.deep/modtr/dir1/1.0,
testsuite/modulefiles.deep/modtr/dir2/2.0,
testsuite/modulefiles.deep/modtr/dir3/.modulerc,
testsuite/modulefiles.deep/modtr/dir4/.modulerc,
testsuite/modulefiles.deep/modtr/dir4/mod4.0,
.../modulefiles.deep/modtr/dir5/subdir/mod5.0,
testsuite/modulefiles/loc_tr/.modulerc, testsuite/modulefiles/loc_tr/1.0,
testsuite/modulefiles/loc_tr/2.0, testsuite/modulefiles/loc_tr/3.0,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/068-transitive.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/068-transitive.exp,
testsuite/modules.90-avail/070-full.exp: Let setModuleResolution handle
g_moduleVersion Register all symbolic module version in g_moduleVersion
array by letting setModuleResolution procedure handle this array. So now
module-version procedure deleguates g_moduleVersion handling to
setModuleResolution. With this change all symbols are now registered in
g_moduleVersion which enables to search on these names during an 'avail'
command. It was previously possible to match these symbols only if they were
explicitely defined on a 'module-version' statement and were not about the
'default' symbol. Symbols inherited by transitivity are now also registered
in g_moduleVersion and resolution structure by recursive call to
setModuleResolution procedure. setModuleResolution procedure has also been
adapted to withdraw its 'override_default' argument. When called,
setModuleResolution will now always override an already defined symbolic
version, but 'module-version' procedure will refrain from calling
setModuleResolution if this symbol is already set in g_moduleVersion.
Introduce non-regression tests 068-transitive in 20-locate and 80-deep
suites and add new tests in 060-rc in 20-locate suite to check transitive
definitions in various conditions.
2017-08-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/symlink, testsuite/modulefiles/symlink2,
testsuite/modulefiles/symlink3, testsuite/modules.20-locate/075-symlink.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: check behavior with fs
symlink Add 075-symlink non-regression tests in 20-locate suite to validate
behavior when module is a filesystem symlink. Adapt tests in
70-maint/130-aliases, 90-avail/040-wild and 90-avail/070-full for the
addition of the 'symlink*' modules.
* testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp: testsuite: add prepend tests
for leading colon case Add a load test in 050-prepend and an unload test in
055-prepend-undo of 50-cmds suite to validate behavior when a PATH-like
variable is initially set when a prefixing colon. Load should treat it as an
empty path element. Unload restore this prefixing colon.
2017-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile.in => Makefile, Makefile.inc.in, configure,
doc/{Makefile.in => Makefile}, init/.gitignore, init/{Makefile.in =>
Makefile}: install: fix Makefile generation flaws Generate a shared
'Makefile.inc' file rather all 'Makefile's at configure time. Avoid
init/Makefile being rebuilt by initscript '%.in' rules. Correct 'all' rule
typo in doc/Makefile. Enforce '.modulespath' symlink creation when
usecverdotmodulespath is enabled.
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in,
doc/source/modulefile.pod, init/.gitignore, init/Makefile.in, init/r.R.in,
modulecmd.tcl, testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Support for R "shell" And
adapt documentation, installation and testsuite.
2015-11-21 Roy Storey <roy.storey@plantandfood.co.nz>
* init/r.R.in: init: script for R support
2017-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/modules-tcl.spec, doc/source/diff_with_c-version.pod,
doc/source/module.pod.in, doc/source/modulefile.pod, init/.gitignore,
init/Makefile.in, init/ruby.rb.in, modulecmd.tcl,
testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Support for Ruby "shell" And
adapt documentation, installation and testsuite.
2011-10-17 Tammo Tjarks <tammo@tammo-tjarks.de>
* init/ruby.rb.in: init: script for Ruby support
2017-08-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.pod.in, init/.gitignore, init/Makefile.in, init/{perl.in
=> perl.pm.in}, init/{python.in => python.py.in}: Use file extension for
perl/python init script Rename 'perl' in 'perl.pm' and 'python' into
'python.py' to get same init script filename than C-version.
* modulecmd.tcl, testsuite/modules.00-init/006-procs.exp: Properly set
preliminary code for x-res stuff
2017-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.20-locate/030-defvers.exp: Ignore extra
'/' on module name for loc
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in,
doc/source/modulefile.pod, init/.gitignore, init/Makefile.in, init/cmake.in,
modulecmd.tcl, testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Support for CMake "shell" And
adapt documentation, installation and testsuite.
* modulecmd.tcl, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/099-uname-cleanup.exp,
testsuite/modules.50-cmds/250-x-resource.exp: Improve check and run of
external command Add 'getCommandPath' procedure to find path of command and
cache this location using 'auto_execok' Tcl command. Add 'runCommand'
procedure to get command location from getCommandPath then execute command
if found. An error is raised if not found. Plug 'uname' and 'x-resource'
procedures on these new mechanisms to handle their external command run.
Especially 'x-resource' now checks if X11 environment is editable by running
'xrdb -query'. If this command produces error, then X11 resources cannot be
edited and x-resource procedure will raise an error. Adapt non-regression
tests 09x-uname and 250-x-resource of 50-cmds suite consequently.
2017-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/modules-tcl.spec: rpm: adapt environment-modules provides to
distrib
2017-08-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: add test variants for openSUSE
* .travis.yml, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/250-x-resource.exp: testsuite: fix xres orders
production Use same mechanism than in modulecmd.tcl to get exact same
ordering of x-resource directives to test results. Enable use of a virtual
display server on CentOS test environment with Xvfb to test behavior of
x-resource on this distribution. Thanks to Gabe Turner for reporting the
issues on the x-resource test that were due to the rewrite of the
non-regression testsuite.
* ...ules-tcl-1.923-fix-uname-release-with-lsb.patch,
contrib/rpm/modules-tcl.spec: rpm: fix %license use on el6 and bad patch4
%license macro does not exist on el6 environment and cannot be set as
attempted as we need a %files-macro. So use %doc instead of %license on el6
and below. Also fix patch #4 were testsuite update was previously missing
to fix the uname/release issue when an /etc/lsb-release file exists. Thanks
to Gabe Turner for reporting this issue
2017-08-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile.in, modulecmd.tcl: Add 'testsyntax' makefile rule Adapt by the
way some code lines that were too long (>78).
* modulecmd.tcl: Always mention channelid on 'puts' statement
* modulecmd.tcl: Harmonize and optimize write of 'switch' statement
* modulecmd.tcl, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/120-autoinit.exp: Fix some typos on shell code
rendering
* modulecmd.tcl, testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp: Raise and render error once
on unload During an 'unload' action, an error occuring on a loaded module
will not affect the unload of the other modules passed on the command line.
This commit remove the additional error message that were displayed in this
situation: only the message raised from the modulefile interpretation is
useful. Also only render error once, so 'renderError' procedure will do
nothing if it has already been called.
2017-08-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/015-version.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.91-sort/030-whatis.exp: testsuite: harden tests using '.*'
regexp
* testsuite/modulefiles/dirmodalias/1.0,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/015-version.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/020-fqual.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/120-autoinit.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp: testsuite: imply ^$ for match str
on re-enabled tests Automatically prefix matching string with '^' and
suffix it with '$' in case of regexp-enabled non-regression tests. Adapt
all regexp-enabled tests requiring it for this change.
* .../modules-tcl-1.923-fix-uname-nodename-when-dns.patch,
contrib/rpm/modules-tcl.spec, modulecmd.tcl: Use 'uname -n' for 'uname
nodename' To avoid involment of DNS resolution base the result of the
'uname nodename' modulefile command on 'uname -n' system command rather on
'[info hostname]'. With this fix same behavior than C-version is achieved
for 'uname nodename'.
2017-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/010-init_ts.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/095-cleanup.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/260-getenv.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/080-access.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: testsuite: refactor tests with
code output Adapt test*out* procedures to call for 'shell_out' procedure if
passed code output is a code order list rather than an output string.
'shell_out' procedure in turn calls for specific procedure to parse shell
commands and transform them in the appropriate shell code. This way shell
code is handled in a central location and tests do not need anymore to
handle the particularity of each supported shells.
2017-07-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp: testsuite: rely more on global
definitions
* testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/070-command.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp: testsuite: refactor ALL shell
tests Adapt test* procedure to call test for each supported shell when
test_shell argument is set to 'ALL'. Transform all tests set for all shells
with a common output to use this new 'ALL' test_shell argument.
2017-07-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Rework python and perl shell code for error or nop No
output of 'import os' for Python shell when there is only an error message
to render. No double output of '1;' for Perl shell for a no-operation
situation.
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/070-command.exp,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.10-use/090-bad.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.60-initx/005-init.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/080-access.exp,
testsuite/modules.60-initx/095-cleanup.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.70-maint/090-source.exp,
testsuite/modules.70-maint/100-path.exp,
testsuite/modules.70-maint/110-paths.exp,
testsuite/modules.80-deep/080-access.exp: testsuite: refactor shell OK and
ERR code Pass 'OK' or 'ERR' string to test procedure, then these procedures
will use the new internal 'shell_ok' and 'shell_err' procedures to translate
these bare OK/ERR strings in the appropriate code for the given shell.
2017-08-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* ...dules-tcl-1.923-fix-uname-release-with-lsb.patch,
contrib/rpm/modules-tcl.spec, modulecmd.tcl,
testsuite/modules.50-cmds/090-uname-proc.exp: Always use
tcl_platform(osVersion) as 'uname release' When querying 'uname release'
always use value of the 'osVersion' field of 'tcl_platform' array to get the
real 'uname --kernel-release' value. Remove specific behavior when
/etc/lsb-release file is found as it was too specific and led to different
behavior depending of the Linux distribution.
2017-07-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modules-tcl-1.923-fix-uname-release-test.patch,
.../modules-tcl-1.923-no-etc-rc-as-rc-file.patch,
...dules-tcl-1.923-skip-access-tests-if-root.patch,
...dules-tcl-1.923-unneeded-manpath-q-option.patch,
contrib/rpm/modules-tcl.spec: rpm: fix spec and patches for 1.923-2 build
* .travis.yml: travis: add test variants for CentOS
* modulecmd.tcl: Never take /etc/rc as a module rc file
* init/csh.in: init: remove unneeded manpath '-q' option for csh
* testsuite/modules.10-use/080-access.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.20-locate/081-access-rc.exp,
testsuite/modules.60-initx/080-access.exp,
testsuite/modules.61-coll/080-access.exp,
testsuite/modules.80-deep/080-access.exp: testsuite: skip access tests if
run by root
2017-07-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, doc/source/modulefile.pod,
testsuite/modules.50-cmds/076-alias-sub.exp: doc: clarify 'set-alias'
command
* modulecmd.tcl, testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp: No alias handling for 'tcl'
shell Remove code that were handling aliases for the 'tcl' shell. Aliases
are only effective for 'real' shells not script programming language shells.
2017-07-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, modulecmd.tcl,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp: Keep 'module load' lines after
init{rm,clear} Instead of removing the whole line when no more module
specified on it during an 'initrm' command or during an 'initclear', keep
the line with 'module load' to be able to reuse this line on next 'initadd'
command. Adapt non-regression tests in 050-rm and 060-2nd of 60-initx suite
and diff doc.
* doc/source/diff_with_c-version.pod, modulecmd.tcl,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/060-apropos.exp: Warning rather error on
C-version specific switches Report an 'unsupported option' warning message
when C-version specific command-line switches are passed rather than
producing an 'invalid option' error. Adapt non-regression tests of
00-init/090-switches and 70-maint/060-apropos and diff doc.
2017-07-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, modulecmd.tcl,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/080-help.exp: Relax constraint on cmd line args
position Look the full argument list to find options or command switches,
so options may be passed after the command name and command switches may be
found before the command name. With this behavior commad-line argument
position constraint is aligned with C-version. Adapt non-regression tests
in 70-maint suite and diff doc.
2017-07-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/modules-tcl.spec, testsuite/modules.50-cmds/095-uname.exp:
testsuite: fix uname release test in 50-cmds suite Update RPM spec file by
the way to fix Koji build under 'armhfp' architecture.
2017-07-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* www/Makefile: www: fix README.html build in Makefile
* NEWS, contrib/rpm/modules-tcl.spec, doc/source/diff_with_c-version.pod,
modulecmd.tcl, www/index.html: Release of version 1.923
* testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: skip term width tests if
cannot query term
* testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp: testsuite: fix cmp string
in 50-cmds suite When converting an array to a string list, the order of
its element cannot be determined.
2017-07-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.70-maint/130-aliases.exp: Call for
getModules in any cases in cmdModuleAliases Previously getModules was only
called when g_moduleAlias and g_moduleVersion global arrays were both empty,
but in case of a global or user RC file that set an alias or a symbolic
version, no more alias and version are looked for in module paths. To fix
that, getModules is called for all defined module paths in any cases as it
is done for cmdModuleAvail. Add relative non-regression test in 130-aliases
of 70-maint suite.
* testsuite/modules.00-init/010-environ.exp: testsuite: clean MODULESHOME
env var before start
2017-07-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Rework error handling in cmdModuleSearch Take benefit of
changes made on getPathToModule to return error information through the
result list to avoid extra call to getPathToModule in cmdModuleSearch if
nothing was found. Now through the parsing of getModules results and
getPathToModule alias resolution results, all the error information are
gathered and registered if element name matches search string. At the end of
the cmdModuleSearch procedure, all the registered errors are printed. Add a
'reportIssue' procedure to help reporting error messages depending of their
kind, useful for getPathToModule and cmdModuleSearch procedures.
2017-07-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Return error info as result from getPathToModule Rework
getPathToModule procedure to return error information through the result
structure.
2017-07-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Rework registering of access/invalid file error Integrate
modulefile or directory access issue or invalidity directly in the result
array produced by findModules/getModules procedures. By doing so access to
the error information is straigthforward for getPathToModule procedure. To
achieve this integration, the checkValidModule procedure has been revised to
return any error message in addition to the check status.
2017-07-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.20-locate/060-rc.exp: Same res for
version than alias on getPath/search/paths Take symbolic version into
accounts like done for alias when attempting to find out the modulefile
targeted by a given module name. Symbolic versions were until now left away
from this resolution treatment as their modulefile target were automatically
part of the mod_list result returned by getModules procedure. But in some
cases, a symbolic version may be hold on an alias, so the target modulefile
of this symbol does not hold the same module name than this symbolic module
and thus is not part of the result list. This change is useful for
resolution procedures like getPathToModule, cmdModuleSearch and
cmdModulePaths. It also helps to localize the element in error, if any, as
the availability of the symbolic version information will help to determine
if the error concerns the search made by the user or not. Add relative
non-regression tests in 060-rc of 20-locate suite.
* modulecmd.tcl, testsuite/modules.20-locate/060-rc.exp: Include global/user
rc defs in search/whatis/paths Ask getModules procedure to include global
or user RC definitions when called in cmdModuleSearch and cmdModulePaths. By
doing so aliases or symbolic versions defined in these global or user RC
will be found and solved if specified as module to search on these commands.
To do so, make 'search' argument of getModules procedure a list rather a
string to be able to precise multiple search keywords like done by
cmdModuleSearch. Add non-regression tests in 060-rc of 20-locate suite.
* modulecmd.tcl, testsuite/modules.20-locate/050-locrc.exp: Look at loaded
mods in getPathToModule if asked only Add 'look_loaded' argument to
getPathToModule procedure in order to look at the loaded modules to get path
for specified 'mod' only if this new argument is enabled. 'look_loaded'
argument is enabled by default. Disable this behavior when getPathToModule
recursively call itself to solve aliases or when cmdModuleSearch or
cmdModulePaths also attempt to solve alias in the middle of their own
search. Add non-regression tests in 050-locrc of 20-locate suite.
* modulecmd.tcl: Constraint module resolution to specific dir if set If
'indir' argument is set for getPathToModule procedure, look to find
modulefile corresponding to 'mod' argument only in modulepath directory
specified. Rely on this feature in cmdModuleSearch and cmdModulePaths for
alias resolution, where result has to belong to the current modulepath
directory being searched.
2017-07-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Rework getPathToModule to fully rely on getModules
* modulecmd.tcl: Rework handling of global/user rc defs in getModules
Introduce a 'g_rcVersion' array to handle symbolic versions set from a
global or a user RC the same way than aliases with the 'g_rcAlias' array.
Then in getModules procedure treat these definitions from global or user RC
with a 'add_rc_defs' flag. If set and if aliases or symbolic versions match
passed mod, these aliases or versions from global or user RC are added to
the result array. If search in getModules is set to 'rc_defs_included', the
aliases and symbolic versions set from global or user RC added to the result
array in addition to the search result from the passed directory.
2017-07-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.91-sort/020-avail.exp: Register in
getModules dir default even if broken Register a default set for a given
module in the corresponding 'directory' entry in the result consolidated by
the getModules procedure, even if this default does not correspond to a
valid entry. This way it is up to the procedure treating the result provided
by getModules to handle the verification of the default correctness and
display any error. As a consequence, a bad default will lead to no result
displayed for the corresponding module in case of 'onlydefault' avail
display. Add tests in 020-avail of 91-sort suite to check behavior.
* modulecmd.tcl: Register sym versions in getModules result array Add
tracking of the source file that defined a given symbolic module version in
order to add in getModules these symbloc versions to the 'mod_list' result
array if they match searched modulepath directory and module. Symbolic
versions are added to 'mod_list' array as 'version' entries so they can be
ignored by treatment not requiring them (like display procedures that get
symbols not independently but through the relative modulefile).
2017-07-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Take benefit of new dir handling in getPathToModule Rework
code in getPathToModule procedure to use the information that is now stored
in the mod_list structure (result of the getModules procedure call). With
this information it is now easier to get directory default element. Also
empty directories are not part of mod_list result, so less tests are
required in getPathToModule.
2017-07-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, .../emptydeepdir/emptydir/.ignored,
testsuite/modulefiles.deep/modalias/dir3/.ignored,
testsuite/modulefiles/emptydir/.ignored,
testsuite/modules.91-sort/020-avail.exp: Handle empty dir in getModules dir
consolidation When consolidating directory content information in
getModules procedure, handle empty directories so they are removed from the
result array. When an empty directory is removed and its parent directory
becomes empty after child removal, remove also this directory and so on.
Moreover when an empty directory is removed and if it was the default
version of this parent directory, default is changed to last element in
parent directory. Add and adapt tests in 020-avail of 91-sort suite.
2017-07-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/dirmodalias/.modulerc,
testsuite/modulefiles/dirmodalias/1.0,
testsuite/modules.70-maint/130-aliases.exp,
testsuite/modules.90-avail/070-full.exp,
testsuite/modules.91-sort/020-avail.exp: Fix default/latest avail when alias
override dir When an alias is set and overrides name of existing directory,
take this alias in account for default and latest choice and ignore
directory content. Add and adapt tests in 020-avail of 91-sort suite.
2017-07-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.91-sort/020-avail.exp: Rework
default/latest avail version search Improve getModules procedure to
register for each directory the default element in this dir (implicitly or
explicitly set) and the list of all elements dictionarily sorted. Then base
the code in listModules procedure that look for default or latest versions
only on the information stored in getModules array result rather than
comparing every result names between each other. As a side effect, default
or latest available version printing does not confuse output anymore when at
a given level a sub-directory element is last element in directory among
modulefiles. Previously sub-directory was printed but last file among
modulefiles was also printed (2 latests version at the same level). Also to
simplify behavior, and understand a directory tagged "default" does not
appear anymore in default listing result as its content (the default version
found in that dir) will be displayed. Remove stringDictionaryCompare
procedure that is not used anymore due to the code rework. Add and adapt
tests in 020-avail of 91-suite.
* modulecmd.tcl, testsuite/modules.90-avail/030-multiple.exp: Correct
inclusion of aliases in getModules res Fix inclusion of aliases in
getModules procedure results not to include these aliases if they are not
part of the exact same path than path of the search. Previously if alias
source path and search path were similar, aliases were wrongly included in
results. Add test in 030-multiple of 90-avail to check correct behavior.
2017-07-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Rework way getCollectionFilename proc pass descr Return
collection filename and description as a list result in
getCollectionFilename procedure rather passing a variable name altered in
procedure with 'upvar' call.
* modulecmd.tcl, testsuite/modules.61-coll/080-access.exp: Distinguish
collection found from read test Previsously cmdModuleRestore and
cmdModuleSaveshow procedures were directly calling for 'file readable' so
existence and readability were tested in a single call. To be able to
distinguish an exist issue from a read issue these two procedures now only
test existence and readability is tested by the readCollectionContent
procedure. As a result, if a collection exists but is not readable a
different message will now appear.
2017-07-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.60-initx/080-access.exp: testsuite: add 080-access tests
in 60-initx suite Test behaviors when shell init script cannot be accessed
or written with 080-access tests added to 60-initx suite.
* modulecmd.tcl: Change init* cmds write behavior Previously initadd,
initprepend, initswitch, initrm and initclear commands were altering shell
initialization file by writing a new file then copying this new file to
replace the existing init file. This commit tries to simplify init file
re-write by first consolidating new file content in a list variable, then
when shell init file read is finished and new content is established, the
shell init file is opened in write mode and its content is replaced with the
new content. In addition new behavior only re-writes shell init file if its
content need to be altered. Take this opportunity to also change name of
some local variables to make them shorter.
* modulecmd.tcl, testsuite/home/.modules.savenull,
testsuite/modules.60-initx/005-init.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/095-cleanup.exp: Raise error on init* cmds when
no 'module load' found When no 'module load' line has been found in shell
init file raise an error on initadd, initprepend, initswitch, initrm and
initclear commands as action requested was not performed.
2017-06-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.20-locate/081-access-rc.exp: testsuite: add
081-access-rc tests in 20-loc suite Check behavior when global RC files
cannot be read.
* testsuite/etc/rc, testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp: testsuite: more tests for global
RC in 20-loc suite Test behaviors when global RC is not set at all, or is
set at $MODULESHOME/etc/rc or is both set at $MODULESHOME/etc/rc and
$MODULERCFILE.
2017-06-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.61-coll/040-restore.exp: testsuite: add tests restoring
bad coll in 61-coll
* modulecmd.tcl, testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/080-access.exp: Normalize collection access issue
error message Test behaviors when collection cannot be accessed with
080-access tests added to 61-coll suite. Normalize error messages for the
various collection-related commands when collection cannot be accessed.
Catch also error when trying to access the collection directory but access
rights on this directory does not allow for listing its content.
2017-06-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/setenv/0.8,
testsuite/modulefiles/unsetenv/0.8,
testsuite/modules.50-cmds/028-setenv-refcount.exp,
.../modules.50-cmds/038-unsetenv-refcount.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/070-full.exp: Clean any previous ref count array
on setenv/unsetenv When manpulating path list with
append-path/prepend-path/etc commands a _modshare variable is set to keep
track of how many times each reference has been loaded. But if after these
commands a setenv/unsetenv command is used, the _modshare variable is left
alone whereas the path list variable is entirely replaced by a new value or
destroyed. To sanitize this kind of situation, any existing _modshare
variable is cleaned-up when the associated variable is targeted by a setenv
or an unsetenv command. Non-regression tests 028-setenv-refcount and
038-unsetenv-refcount in 50-cmds suite have been added to check new
behavior.
2017-03-24 Bert Wesarg <bert.wesarg@googlemail.com>
* init/bash.in, init/fish.in, init/ksh.in, init/sh.in, init/zsh.in,
testsuite/install.00-init/010-environ.exp: init: Do not pollute
tab-completion with `moduleraw` command.
2017-06-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/spread/5.0,
testsuite/modulefiles/spread/6.0, testsuite/modulefiles/spread/7.0,
testsuite/modulefiles/spread/8.0,
testsuite/modulefiles/spreadrc/dir5/.modulerc,
testsuite/modulefiles/spreadrc/dir5/1.0,
testsuite/modulefiles/spreadrc/dir6/.modulerc,
testsuite/modulefiles/spreadrc/dir6/1.0,
testsuite/modulefiles/spreadrc/dir7/.modulerc,
testsuite/modulefiles/spreadrc/dir7/1.0,
testsuite/modulefiles/spreadrc/dir8/.modulerc,
testsuite/modulefiles/spreadrc/dir8/1.0,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/302-interp-cascaded.exp,
testsuite/modules.90-avail/070-full.exp: Dedicate an interp per
interpretation level Have a separate interpreter per level of
interpretation in case of nested interpretations. By doing so a module
loaded by another does not influence the interpretation of the module
loading it. Non-regression tests 302-interp-cascaded have been added to
50-cmds suite.
2017-06-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/spread/3.0,
testsuite/modulefiles/spread/4.0,
testsuite/modulefiles/spreadrc/dir3/.modulerc,
testsuite/modulefiles/spreadrc/dir3/1.0,
testsuite/modulefiles/spreadrc/dir4/.modulerc,
testsuite/modulefiles/spreadrc/dir4/1.0,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.50-cmds/301-interp-command.exp,
testsuite/modules.90-avail/070-full.exp: Renew interp when command list is
altered Delete/recreate the interpreter when a native Tcl command is
altered by a previous modulerc or modulefile interpretation. When a Tcl
native command is overriden it appears in the defined procedure list. This
procedure not part of the initial list is unset at the reset time which
makes also disappear the Tcl command. List of Tcl commands is dumped at
initial interpreter creation time and compared after each procedure reset.
If command lists differ, interpreter is deleted then recreated to ensure
proper functioning. Non-regression tests 301-interp-command have been added
to 50-cmds suite.
2017-06-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/spread/1.0,
testsuite/modulefiles/spread/2.0, testsuite/modulefiles/spreadrc/.modulerc,
testsuite/modulefiles/spreadrc/dir1/.modulerc,
testsuite/modulefiles/spreadrc/dir1/1.0,
testsuite/modulefiles/spreadrc/dir2/.modulerc,
testsuite/modulefiles/spreadrc/dir2/1.0,
testsuite/modules.50-cmds/300-interp.exp,
testsuite/modules.90-avail/070-full.exp: Reset interp state from one interp
to another When creating interpreter, dump its variable and procedure
content so before each usage of this interpreter for another modulerc or
modulefile the initial variable and procedure state is restored to avoid
spread of definitions from one interpretation to another. Variables are
removed if they are not part of the initial state or restored if their value
has changed. Procedures are removed if they are not part of the initial
state. Nothing is done if procedures part of the initial state have been
changed during an interpretation as there is no vital procedure in this
list. Interpreter aliases are redefined before each interpretation to clear
any potential override of these aliased procedures. dumpInterpState and
resetInterpState procedures are introduced to handle the dump/reset
mechanism of the interpreter. Non regression tests 300-interp in 50-cmds
suite have been added to test the correct behavior of interpreters when
running a list of modulerc and modulefiles.
2017-06-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Reuse interp rather creating new one each time Make use of
the same Tcl interp for each modulefile interpreation and use another one
for each modulerc (but the same for each modulerc). By doing so we proceed
like on C-version where same interpreter is used across modulefile or
modulerc interpretation. Huge performance improvement is achievied with this
change on commands making intensive use of interp like 'avail'. Change code
to use a static name for those interpreter: '__modulefile' for the interp
dedicated to modulefile interpretation and '__modulerc' for the interp
dedicated to the RC interpretation.
2017-06-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Workaround 'glob -nocomplain' for perms issue on Tcl8.4 On
Tcl 8.4, 'glob -nocomplain' also silent permission errors. So to handle
access issue to directory in findModules we workaround that by not using the
'-nocomplain' option of glob but handling case where glob raise an error
when directory is empty.
2017-06-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, modulecmd.tcl,
testsuite/modules.20-locate/047-symerrs.exp: Revise alias and symbolic
version internal registering Register alias and symbolic version deep
resolution at definition time through a new 'setModuleResolution' procedure
called by 'module-version' and 'module-alias' procedures. Make use of new
global array 'g_moduleResolved' and its reverse structure 'g_resolvedHash'
to keep registered resolution at hand. Also introduce 'g_symbolHash' global
array to register and easily get the list of all symbols for a given module.
As resolution is now computed at definition time, the 'getVersAliasList' and
'resolveModuleVersionOrAlias' procedures can be greatly simplified and just
need to return the value of the 'g_symbolHash' or 'g_moduleResolved' arrays
for the module name passed as argument. This change saves lot of time
especially on commands heavily relying on these procedures like 'avail'.
The global arrays 'g_versionHash', 'g_moduleDefault' and 'g_aliasHash'
become useless with this change so they have been removed. As a side effect
of resolving alias and symbolic version at definition time, resolution loop
are not registered anymore and produce an error message when spotted.
2017-05-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Try/catch rather test/try in findModules When reading the
content of a modulefile directory, try access then catch any issue rather
testing access before trying. By doing so we reduce the number of 'access'
system call. Getting an access error at the 'open' time is a bit more costly
than at 'stat' time but most modulefile directories should not raise access
issue, only some. If any issue occur, register it in the g_access_mod_info
global array as done in checkValidModule procedure. A unified procedure
called registerAccessIssue has been setup for both checkValidModule and
findModules procedures to share same code.
2017-06-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.00-init/071-args.exp: No error raise on
empty arg list for load To cope with initadd behavior that require at least
an empty 'module load' line in startup files. (fix SF bug#88)
* modulecmd.tcl, testsuite/home/.modules.saveempty,
testsuite/modules.60-initx/020-add.exp: Fix initadd to handle load line w/o
trailing space Was previously expecting load directive to be written
'module load ' to get a match. With fix, 'module load' line will also be
matched. Add test in 020-add of 60-initx suite to check that.
2017-06-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/break/5.0,
testsuite/modulefiles/break/6.0, testsuite/modulefiles/continue/5.0,
testsuite/modulefiles/continue/6.0, testsuite/modulefiles/exit/4.0,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.90-avail/070-full.exp: Fix use of break/exit/continue
outside of a loop Like C-version catch raised error when break or continue
are called from outside of a loop to handle them as when they are called
from modulefile main body. Add non-regression tests in 200-break, 210-exit,
220-continue and 230-loop of 50-cmds to check behavior when break, exit and
continue are called from within a procedure.
2017-05-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.10-use/090-bad.exp: testsuite: add 090-bad tests in
10-use suite
* modulecmd.tcl, testsuite/modulefiles/use/4.0,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.90-avail/070-full.exp: Add tests for use/unuse of empty
path name Adapt cmdModuleUse to handle empty path name "" as any other path
string, so an error is returned when file type is cheked. Add tests in
10-use and 50-cmds suites to check behavior of use and unuse commands with
an empty path passed as argument. Add by the way tests that were missing
for bash shell in 10-use suite.
* testsuite/modulefiles/use/3.0, testsuite/modulefiles/use/3.1,
testsuite/modulefiles/use/3.2, testsuite/modules.10-use/032-prepend.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: add test for use
--prepend Introduce new tests for 'use --prepend' command in 10-use and
50-cmds suites.
* testsuite/modulefiles/RCS/1.0: testsuite: add modulefile part of ignored
list
* modulecmd.tcl: No modpath dir checks in cmdModule{Avail,Aliases} Rely on
checks already made in findModules procedures which trap bad directories
(type, access rights, etc) by calling glob under the catch umbrella. Make
cmdModuleAliases use getModules procedure by the way rather listModules to
trigger aliases and versions search.
* testsuite/modules.00-init/006-procs.exp,
testsuite/modules.10-use/080-access.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.80-deep/080-access.exp: testsuite: add 080-access tests in
10-use suite Test behaviors when modulepath cannot be accessed. Centralize
by the way the change_file_perms and restore_file_perms procedures that are
now used in different parts of the testsuite.
2017-05-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/loc_dv9/.version, testsuite/modulefiles/loc_dv9/1.0,
testsuite/modulefiles/loc_dv9/2.0,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: test module-version use
in .version file Add test to 030-defvers in 20-locate suite to check that
default version is correctly resolved when it is declared with
module-version command in a .version rc file.
2017-05-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/remove/1.0,
testsuite/modules.50-cmds/062-remove-delim.exp,
testsuite/modules.90-avail/070-full.exp: testsuite: add 062-remove-delim
tests in 50-cmds suite
* testsuite/modules.70-maint/130-aliases.exp: testsuite: add 130-aliases
tests in 70-maint suite
2017-05-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/module/.ignored,
testsuite/modulefiles/module/ignored~: testsuite: add test modfiles that
should be hidden Ensure modulefiles starting with a dot or finishing with a
tilde are not reported in global 'module avail' results.
* testsuite/modules.61-coll/020-savelist.exp: testsuite: test all 'savelist'
display options
2017-05-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix loop in lreverse proc provided for Tcl<8.5
* modulecmd.tcl: Workaround min and max funcs not avail in Tcl<8.5
* .travis.yml: travis: use version specific-tclsh on the diff. builds
* INSTALL.txt, Makefile.in, configure, testsuite/config/unix.exp,
testsuite/modules.70-maint/120-autoinit.exp: install: add --with-tclsh
config opt package Add the ability to choose the Tcl interpreter shell to
setup in initialization scripts and to use when running the testsuite.
2017-05-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/help/2.0, testsuite/modulefiles/trace/all_on,
testsuite/modules.50-cmds/105-trace.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp: Add tests for deprecated
'module-trace' cmd
* testsuite/modulefiles/info/others,
testsuite/modules.50-cmds/284-info-others.exp,
testsuite/modules.90-avail/070-full.exp: Add tests for bad or deprecated
'module-info' cmds
* modulecmd.tcl, testsuite/modulefiles/bad2/proc,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/085-test.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/070-full.exp: Put call to
Modules{Display,Help,Test} procs under catch Put the ModulesDisplay,
ModulesHelp and ModulesTest procedures call under the same catch than used
for the evaludation of the modulefile content. Doing so an error found
within these procedures will be handled the same way than if the error is
triggered from the main body of the modulefile. As a consequence, the
ModulesDisplay, ModulesHelp and ModulesTest procedures are not anymore
called when an error has been raised during the modulefile main evaluation,
since the same catch is shared. Some existing test results have been
adapted for this change and new tests have been added to check this specific
behavior in 070-display, 080-help and 085-test in 70-maint suite.
2017-05-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp: Harmonize and test '--debug' option
2017-05-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.00-init/071-args.exp: Remove 'debug'
module command This hidden command produces output that is hard to process.
So as it does not seem to be useful and as it is not tested, I prefer to
remove it. If a need raise again on this 'debug' topic, a new command will
be introduced.
2017-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in, site.exp.in,
testsuite/bin/install_test_csh, testsuite/bin/install_test_fish,
testsuite/bin/install_test_sh, testsuite/config/unix.exp,
testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/006-procs.exp,
testsuite/install.00-init/025-autoinit.exp,
testsuite/modules.70-maint/120-autoinit.exp: Test and document 'autoinit'
module command
2017-05-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in,
modulecmd.tcl, testsuite/modules.70-maint/110-paths.exp: Fix, test and
document 'paths' module command
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in,
modulecmd.tcl, testsuite/modules.70-maint/100-path.exp, .../{095-cleanup.exp
=> 999-cleanup.exp}: Test and document 'path' module command
2017-05-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp: testsuite: cover use/unuse with no
args Add non-regression tests in 10-use suite for the 'use' and 'unuse'
commands when no arg are passed to them (print list of enabled module
paths).
* testsuite/modules.90-avail/070-full.exp: testsuite: add 070-full test to
90-avail suite Validate output of all modules from a test modulepath with a
specific terminal width setup.
* .travis.yml: travis: coverage on each Tcl rel + x-server init For a more
complete coverage, run it on each Tcl releases, also enable a x-server on a
test case to validate x-resource modulefile command. To optimize builds,
when MAKE_TESTCOVERAGE is enabled run 'testcoverage' instead of 'test'.
* modulecmd.tcl, testsuite/modules.50-cmds/250-x-resource.exp: Correct use
of xrdb tool when not in default path
2017-05-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, modulecmd.tcl,
testsuite/modules.00-init/071-args.exp,
testsuite/modules.60-initx/005-init.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/095-cleanup.exp: Fix 'init*' commands to behave
more like C-version Adapt tests from 60-initx to match results produced by
this module flavor. Clarify differences with C-version on these module
commands in diff_with_c-version documentation.
2006-01-12 R.K. Owen <rk@owen.sj.ca.us>
* testsuite/home/.modules, testsuite/modules.60-initx/005-init.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/095-cleanup.exp: testsuite: added suite for the
"module init*" cmds
2017-05-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: travis: test 'make uninstall'
* .gitattributes, .gitignore, Makefile.in, README.txt => README.md: Move to
README.md to embed build and coverage status
* .gitignore, .travis.yml, Makefile.in, contrib/nglfar2ccov: Integrate to
codecov.io code coverage service Add nglfar2ccov contrib script to
translate Nagelfar coverage result for Codecov report. Append publication of
coverage report to codecov.io service.
2017-05-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile.in, testsuite/config/unix.exp: Add makefile rules to
produce code coverage Instrument modulecmd.tcl, then run testsuite and
produce a coverage report based on code coverage analysis of Nagelfar
toolkit [1]. Include retrieval and installation of Nagelfar within
Makefile. [1] http://nagelfar.sourceforge.net/codecoverage.html
2017-05-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.txt, configure: install: clarify that 'configure' is a bash script
* init/sh.in: init: make sh init script closer to POSIX spec Provide
support for /bin/sh flavors different than bash or zsh (dash for instance).
2017-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/bin/install_test_sh, testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: testsuite: adapt 'install'
suite for dash sh-shell
2017-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .travis.yml: Introduce travis-ci configuration file
2017-05-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.50-cmds/090-uname-proc.exp: testsuite: adapt 'uname
release' test for Ubuntu
* modulecmd.tcl: Adapt sep and col display for very short width term When
terminal width is found too short to handle one a single line separator
title or one column of content, set a minimal number of '-' for separator
line and set column number to 1.
2017-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, INSTALL.txt, Makefile.in, README.txt, configure, site.exp.in,
testsuite/bin/install_test_csh, testsuite/bin/install_test_fish,
testsuite/bin/install_test_sh, testsuite/config/unix.exp,
testsuite/install.00-init/005-init_ts.exp,
testsuite/install.00-init/006-procs.exp,
testsuite/install.00-init/010-environ.exp,
testsuite/install.00-init/020-module.exp,
testsuite/install.00-init/030-options.exp,
testsuite/install.00-init/040-subshell.exp,
testsuite/install.00-init/050-crossshell.exp: Introduce 'install'
non-regression testsuite This new non-regression testsuite is triggered by
the 'make testinstall' command and checks modules-tcl installation is
operational.
2017-05-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.txt: doc: fix reference to 'make test' in INSTALL
2017-05-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/fish.in: init: fix modulerc load test on 'fish' init script
2017-05-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/sh.in: init: fix interactive shell test on 'sh' init script
2017-05-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile.in: install: add notice at end of install for next steps
* INSTALL.txt, Makefile.in, configure, contrib/rpm/modules-tcl.spec,
init/Makefile.in: install: add --enable-example-modulefiles config opt
Install by default some modulefiles provided as example in the system
modulefiles directory.
* Makefile.in, init/Makefile.in: install: skip modulefilesdir removal if not
empty
* contrib/modulefiles/dot, contrib/modulefiles/module-git,
contrib/modulefiles/module-info, contrib/modulefiles/null,
contrib/modulefiles/use.own: contrib: import and adapt example modulefiles
Get and adapt regular set of example modulefiles provided with
environment-modules.
2017-05-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile.in, init/zsh-functions/_module, init/zsh.in: Add completion
script for Zsh
2017-04-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in,
doc/source/modulefile.pod, init/bash_completion, init/tcsh_completion.in,
modulecmd.tcl, testsuite/modulefiles/info/command,
testsuite/modulefiles/info/commandexp, testsuite/modulefiles/info/mode1,
testsuite/modulefiles/info/mode2, testsuite/modulefiles/info/mode3,
testsuite/modulefiles/info/mode4, testsuite/modulefiles/info/mode5,
testsuite/modulefiles/info/mode6, testsuite/modulefiles/info/specified,
testsuite/modulefiles/inforc/1.0, testsuite/modulefiles/inforc/2.0,
testsuite/modulefiles/test/1.0, testsuite/modulefiles/test/1.2,
testsuite/modulefiles/test/2.0, testsuite/modules.00-init/071-args.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/280-info-specified.exp,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/085-test.exp: Introduce 'test' command and mode
Add 'module test' command to trigger when called execution of a ModulesTest
procedure in target modulefile following same kind of mechanism than 'module
help'. If ModulesTest procedure is missing from modulefile, a 'Unable to
find ModulesTest proc' message is displayed but no error code is set. If
ModulesTest procedure returns 1 (true), test is considered successful and
message 'Test result: PASS' is displayed. If ModulesTest returns no or any
other value, test is considered failed and message 'Test result: FAIL' is
displayed. In this case, module command exit in error. Adapt bash and tcsh
completion scripts for the new command. Describe new command and new mode in
docs. Adapt existing non-regression tests and relative test modulefiles for
new command and new mode in 00-init, 50-cmds and 70-maint suites. Add
085-test tests in 70-maint to check coherent behavior of new command.
2017-04-29 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS, contrib/rpm/modules-tcl.spec, doc/source/diff_with_c-version.pod,
modulecmd.tcl, www/index.html: Release of version 1.832
2017-04-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/getenv/1.0,
testsuite/modules.50-cmds/260-getenv.exp: Fix getenv proc to correctly
return env variable Add 260-getenv non-regression test in 50-cmds suite.
Thanks to Roberto Beccherle for reporting this issue.
* contrib/rpm/modules-tcl.spec: rpm: make use of alternatives for man pages
on Fedora
* contrib/rpm/modules-tcl.spec: rpm: use rpm macro file provided in source
tarball
2017-04-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* INSTALL.txt, Makefile.in, configure, contrib/rpm/modules-tcl.spec,
doc/Makefile.in: install: add --enable-doc-install config opt feature With
this doc install can be disabled for package manager like rpm that handles
by itself this kind of doc.
* Makefile.in: install: add a 'srpm' make target
* doc/source/diff_with_c-version.pod, doc/source/modulefile.pod: doc:
clarify mgmt of file access issue
* doc/source/diff_with_c-version.pod: doc: load in modfile unload in reserve
order
2017-04-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod, doc/source/module.pod.in,
doc/source/modulefile.pod: doc: clarify version/alias handling in avail and
loc
2017-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Reset got mod list between each dir in getPathToModule
* testsuite/modulefiles.deep/moddef/dir2/.modulerc,
testsuite/modulefiles.deep/moddef/dir2/1.0,
testsuite/modulefiles.deep/moddef/dir2/2.0,
testsuite/modules.80-deep/080-access.exp: Add access issue non-reg tests in
80-deep suite Add non-regression tests in 080-access of 80-deep suite to
guaranty correct behavior when some access issues happen on modulefile or
modulerc or directory in case of deep modulefiles.
* modulecmd.tcl: Mention not found alias target in cmdModuleSearch For a
given mod search, if an alias corresponds to this search but the associated
modulefile cannot be located, report locate error on this not found target.
* modulecmd.tcl: Stop mod dir resolution as soon as we get an issue When
looking to a directory content in order to resolve a modulefile in the
getPathToModule procedure, stop this resolution as soon as we get an issue
on a mod to return (invalid or access issue).
2017-04-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Adapt cmdModuleSearch to raise access error message If
searching for a given mod and no modulefile to interpret found, call for a
resolution of this mod after re-enabling error report. If there are some
access issues, they will be echoed via this call to getPathToModule.
* modulecmd.tcl: Add indir arg to getPathToModule proc Be able to
optionally precise in what module directory to search for mod instead of
looking for mod in every directory set in MODULEPATH. If 'indir' arg is set,
do not raise the 'cannot locate mod' error. Also build return list with
module found status when a modulefile cannot be returned. Modulefile is then
empty string and instead of module name boolean is set depending if a module
has been found for search or not.
* modulecmd.tcl, testsuite/modules.70-maint/060-apropos.exp: Display all
whatis line when search matches one Instead of displaying only the whatis
line matching the apropos search, all whatis line are now displayed to get
the full description of the module. Add non-regression test in 060-apropos
of 70-maint suite to check this specific behavior.
2017-04-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.80-deep/050-whatis.exp,
testsuite/modules.91-sort/030-whatis.exp: Match alias but report modulefile
on whatis/apropos cmds As whatis/apropos commands make interpretation of
modulefiles like load/unload, always report the module under their
modulefile name not their alias name. Of course, alias and symbolic version
may still be used to query whatis content, but displayed result will mention
the relative modulefile targetted by this alias or symbol. Adapt existing
non-regression tests in 20-locate, 80-deep and 91-sort suites.
2017-04-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Plug cmdModuleSearch on getModules rather listModules
Change cmdModuleSearch procedure to make use of getModules rather calling
for listModules then running getPathToModule on each result return. With
getModules, getPathToModule only need to be called on alias result, not on
modulefile, which saves a lot of time.
* modulecmd.tcl, testsuite/modules.50-cmds/190-load.exp: Rely more on
checkValidModule for full pathname module Rather checking existence and
readability within getPathToModule procedure, better rely on the
checkValidModule procedure then analyse global arrays for error information.
2017-04-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Register then display modulefile access issue When
checking validity of a modulefile in checkValidModule procedure, register
any access issue within a new global array g_access_mod_info. Then when
looking for a specific module, if an access issue occured during its check,
display returned error code message.
* modulecmd.tcl: Check found vers valid before using in getPathToModule
Last element in a directory may be an alias whose target modulefile may be
not be readable, so we need to check this target is available on our list of
valid modulefiles before using it.
* modulecmd.tcl: Check last elt in dir before use in getPathToModule Handle
cases where directory is empty or none of its elements can be accessed.
* testsuite/modulefiles/loc_rc6/0.9,
testsuite/modules.20-locate/080-access.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/050-long.exp: Add access issue non-reg tests in
20-locate suite Add non-regression tests in 080-access of 20-locate suite
to guaranty correct behavior when some access issues happen on modulefile or
modulerc or directory. As a loc_rc6/0.9 module is added for the purpose of
the new tests, adapt non-regression tests working with loc_rc6 in 90-avail
suite.
2017-04-15 Jason Travis <jtravis@tgen.org>
* doc/example.txt: doc: fix typo
2017-04-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/module/meta,
testsuite/modules.50-cmds/150-module.exp: Reverse load command mod list on
unload mode When mode is set to unload, 'module load' commands in
modulefile are interpreted as 'module unload' commands. To guaranty correct
behavior regarding requirements, the module list passed to the load command
is reversed to get and unload of the modulefiles in the reverse order than
load. This is the same behavior than applied on purge or restore commands,
where loaded module list is reversed to be unloaded. Add non-regression
tests in 150-module of 50-cmds suite to check load and unload of meta-module
works correctly over time.
* init/modulerc.in, modulecmd.tcl, testsuite/home/rcnomagic,
testsuite/home/rctosource, testsuite/modules.70-maint/090-source.exp: Relax
magic cookie constraint on source command As files sourced by a 'module
source' command may be managed outside of the modulefile environment, relax
the constraint of having a specific magic cookie at the start of the file to
get required clearance before evaluation. This is typicaly helpful for the
initialization modulerc file that may loose its magic cookie after some
manual edits. Add non-regression tests in 090-source of 70-maint suite.
* INSTALL-win.txt, doc/howto/using_on_windows.pdf, doc/readme.txt,
windows/module-tcl-win.chm: doc: Transform windows how-to from CHM to PDF
Change "Using modules-tcl on Windows" how-to document from a CHM format to a
PDF format, as CHM is a proprietary format that does not cope well with
open-source project. Document has been moved to 'doc' directory, a new
'howto' sub-directory has been created to host this file.
* .gitattributes, contrib/template/.gconf/apps/%gconf.xml,
contrib/template/.gconf/apps/evolution/%gconf.xml,
.../.gconf/apps/evolution/calendar/%gconf.xml,
.../apps/evolution/calendar/notify/%gconf.xml,
.../template/.gconf/apps/gconf-editor/%gconf.xml,
contrib/template/.gconf/apps/gedit-2/%gconf.xml,
.../.gconf/apps/gedit-2/plugins/%gconf.xml,
.../apps/gedit-2/plugins/filebrowser/%gconf.xml,
.../gedit-2/plugins/filebrowser/on_load/%gconf.xml,
.../.gconf/apps/gedit-2/preferences/%gconf.xml,
.../.gconf/apps/gedit-2/preferences/ui/%gconf.xml,
.../gedit-2/preferences/ui/statusbar/%gconf.xml,
.../.gconf/apps/gnome-power-manager/%gconf.xml,
.../apps/gnome-power-manager/buttons/%gconf.xml,
.../.gconf/apps/gnome-screensaver/%gconf.xml,
.../template/.gconf/apps/gnome-settings/%gconf.xml,
.../apps/gnome-settings/gnome-panel/%gconf.xml,
.../template/.gconf/apps/gnome-terminal/%gconf.xml,
.../.gconf/apps/gnome-terminal/profiles/%gconf.xml,
.../gnome-terminal/profiles/Default/%gconf.xml,
.../.gconf/apps/nautilus-open-terminal/%gconf.xml,
contrib/template/.gconf/apps/panel/%gconf.xml,
.../template/.gconf/apps/panel/applets/%gconf.xml,
.../apps/panel/applets/clock_screen0/%gconf.xml,
.../panel/applets/clock_screen0/prefs/%gconf.xml,
.../applets/indicator_applet_screen0/%gconf.xml,
.../apps/panel/applets/mixer_screen0/%gconf.xml,
.../applets/notification_area_screen0/%gconf.xml,
.../applets/show_desktop_button_screen0/%gconf.xml,
.../panel/applets/trashapplet_screen0/%gconf.xml,
.../panel/applets/window_list_screen0/%gconf.xml,
.../applets/window_list_screen0/prefs/%gconf.xml,
.../applets/workspace_switcher_screen0/%gconf.xml,
.../workspace_switcher_screen0/prefs/%gconf.xml,
.../template/.gconf/apps/panel/general/%gconf.xml,
.../template/.gconf/apps/panel/objects/%gconf.xml,
.../objects/browser_launcher_screen0/%gconf.xml,
.../objects/clock_separator_screen0/%gconf.xml,
.../apps/panel/objects/menu_bar_screen0/%gconf.xml,
.../.gconf/apps/panel/objects/object_0/%gconf.xml,
.../.gconf/apps/panel/objects/object_1/%gconf.xml,
.../.gconf/apps/panel/objects/object_2/%gconf.xml,
.../panel/objects/yelp_launcher_screen0/%gconf.xml,
.../.gconf/apps/panel/toplevels/%gconf.xml,
.../toplevels/bottom_panel_screen0/%gconf.xml,
.../bottom_panel_screen0/background/%gconf.xml,
.../panel/toplevels/top_panel_screen0/%gconf.xml,
.../top_panel_screen0/background/%gconf.xml,
contrib/template/.gconf/desktop/%gconf.xml,
contrib/template/.gconf/desktop/gnome/%gconf.xml,
.../.gconf/desktop/gnome/accessibility/%gconf.xml,
.../gnome/accessibility/keyboard/%gconf.xml,
.../.gconf/desktop/gnome/applications/%gconf.xml,
.../gnome/applications/window_manager/%gconf.xml,
.../.gconf/desktop/gnome/lockdown/%gconf.xml,
contrib/template/.vim/colors/herald.vim,
contrib/template/.vim/colors/moria.vim,
contrib/template/.vim/colors/xoria256.vim,
contrib/template/.vim/perl-support.zip,
.../template/.vim/perlsupport/README.perlsupport,
.../.vim/perlsupport/autoload/perlsupportgui.vim,
.../perlsupport/autoload/perlsupportprofiling.vim,
.../.vim/perlsupport/autoload/perlsupportregex.vim,
.../template/.vim/perlsupport/doc/perlsupport.txt,
.../template/.vim/perlsupport/ftplugin/perl.vim,
.../codesnippets/SmallProf-variables.pl,
.../perl-support/codesnippets/dot.SmallProf,
.../codesnippets/free-software-comment,
.../perl-support/codesnippets/module-interface.pl,
.../perlsupport/perl-support/codesnippets/new.pl,
.../codesnippets/pod-template-application.pl,
.../codesnippets/pod-template-module.pl,
.../print-data-structure-with-Dumper.pl,
.../perl-support/codesnippets/print-hash-sorted.pl,
.../perl-support/codesnippets/print-hash.pl,
...process-all-files-in-a-directory-recursively.pl,
.../perl-support/codesnippets/slurp-file.pl,
.../.vim/perlsupport/perl-support/doc/ChangeLog,
.../perlsupport/perl-support/doc/perl-hot-keys.pdf,
.../perlsupport/perl-support/doc/perl-hot-keys.tex,
.../.vim/perlsupport/perl-support/doc/pmdesc3.text,
.../perl-support/modules/perl-modules.list,
.../perl-support/rc/customization.ctags,
.../perl-support/rc/customization.gvimrc,
.../perl-support/rc/customization.perltidyrc,
.../perl-support/rc/customization.smallprof,
.../perl-support/rc/customization.vimrc,
.../perlsupport/perl-support/scripts/csv2err.pl,
.../perlsupport/perl-support/scripts/efm_perl.pl,
.../perlsupport/perl-support/scripts/pmdesc3.pl,
.../perlsupport/perl-support/scripts/wrapper.sh,
.../perlsupport/perl-support/templates/Templates,
.../perl-support/templates/comments.template,
.../perl-support/templates/idioms.template,
.../perl-support/templates/pod.template,
.../perl-support/templates/statements.template,
.../perlsupport/perl-support/wordlists/perl.list,
.../.vim/perlsupport/plugin/perl-support.vim,
contrib/template/.vim/plugin/matrix.vim,
contrib/template/.vim/syntax/fluxkeys.vim,
contrib/template/.vim/syntax/perl.vim: Remove .gconf/.vim dirs from profile
template example These two directories were big with very site-specific
content. With this removal profile template example can now be integrated
into distribution tarball releases.
* modulecmd.tcl, testsuite/modules.20-locate/020-fqual.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/035-defname.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.80-deep/030-display.exp: Disable modulerc command report
on display-mode Introduce a g_inhibit_dispreport global variable to be able
to inhibit the report of command set within a modulerc file when mode is set
to 'display'. This way a 'display' of a modulefile only outputs stuff from
this modulefile and not from the various .modulerc on the path toward this
modulefile. Adapt most display-related non-regression tests to correctly
check returned output from start to end.
2017-04-16 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion, init/tcsh_completion.in: Eliminates sym from avail
res in completion scripts Previously only '(default)' symbol was wiped from
avail result in bash and tcsh completion scripts. Adapt sed rules to clean
up every potential symbols.
* testsuite/modulefiles/loc_rc1/1.0, testsuite/modulefiles/loc_rc1/2.0,
testsuite/modulefiles/loc_rc2/1.0, testsuite/modulefiles/loc_rc2/2.0,
testsuite/modulefiles/loc_rc3/1.0, testsuite/modulefiles/loc_rc3/2.0,
testsuite/modulefiles/loc_rc3/3.0, testsuite/modulefiles/loc_rc4/1.0,
testsuite/modulefiles/loc_rc4/2.0, testsuite/modulefiles/loc_rc4/3.0,
testsuite/modulefiles/loc_rc5/1.0, testsuite/modulefiles/loc_rc5/2.0,
testsuite/modulefiles/loc_rc6/1.2, testsuite/modulefiles/loc_rc7/0.9,
testsuite/modulefiles/loc_rc7/1.2,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.80-deep/050-whatis.exp: Add non-reg tests for whatis cmd
on alias or sym Add bunch of tests in 050-locrc of 20-locate suite and
050-whatis of 80-deep suite to guaranty over time correct behavior of whatis
command on module aliases or symbolic module version.
* testsuite/modulefiles.deep/modsym/.modulerc,
testsuite/modulefiles.deep/modsym/dir1/1.0,
testsuite/modulefiles.deep/modsym/dir2/.modulerc,
testsuite/modulefiles.deep/modsym/dir2/2.0,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/999-cleanup.exp: Non-reg tests for symbol on deep
modules Add non-regression tests in 80-deep suite to ensure correct
behavior of module-version symbols on deep modulefiles.
* testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.91-sort/020-avail.exp: Symbols are avoided when looking
for implicit default Add non-regression tests in 050-locrc of 20-locate
suite and in 020-avail of 91-sort suite to clarify that symbolic versions do
not take part of the choice made when looking for an implicit version or a
latest version (only aliases and modulefiles can be returned).
* modulecmd.tcl, testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp: Add symbolic version target to res
list on getModules When looking for modules, after looking at paths
contents and module aliases set within the current dir, look at symbolic
versions set with module-version to see if some match searched mod. If so,
add the modulefile target of these symbolic version to the result list if
found in path previously but not yet added to the result list. With this
new behavior a 'module avail mod/sym' will display the relative 'mod/vers'.
Previously nothing was returned. Add non-regression tests in 020-single,
040-wild and 050-long of 90-avail suite to check this new behavior persist
over time.
* modulecmd.tcl, testsuite/modulefiles.deep/modalias/.modulerc,
testsuite/modulefiles.deep/modalias/3.0,
testsuite/modulefiles.deep/modalias/dir1/.modulerc,
testsuite/modulefiles.deep/modalias/dir1/1.0,
testsuite/modulefiles.deep/modalias/dir2/.modulerc,
testsuite/modulefiles.deep/modalias/dir2/2.0,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/999-cleanup.exp: Optimize getPathToModule when
solved alias is upper-mod Improve getPathToModule procedure to be able to
solve any-kind of module aliases within a single call rather than restarting
new searches when solved aliases are on the upper part (elt1/) of a current
search (elt1/elt2/) sharing same module root. Add isSameModuleRoot
procedure on the way to be able to check two modules share the same base
name. Add non-regression tests in 020-load and 030-display of 80-deep suite
to guaranty that sub or upper aliases are correctly found.
* modulecmd.tcl: Change default search value of listModules to 'wild'
Previously set default value for 'search' argument was deprecated so change
it to 'wild' which will result when passed to getModules in the addition of
a wildcard to look at modules. This way the wildcard is only added in
conjunction of listModules searches as getPathToModule searches should
search for exact things.
* modulecmd.tcl: Move deep mod lookup logic from findModules to getModules
When a deep module is asked for searched to getModules (elt1/elt2/vers) call
findModules to search on upper element (elt1) in order to return every
modulerc or modulefiles related to this module. Then getModules parses the
array returned by findModules to build its results with only the
directories, modulefiles and aliases that correspond to the asked search.
By doing so, some modulerc search logic can be eliminated from findModules,
as we will now always look at the whole deep module content.
2017-04-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.50-cmds/190-load.exp: Rework handling of
error raised by checkValidModule In checkValidModule procedure, register an
entry in a g_invalid_mod_info global array when a modulefile does not
correctly set the magic cookie. By doing so we are able to state during a
modulefile search in getPathToModule procedure that the modulefile was found
but it was not correctly defined. This mechanism may be extended to other
kind of modulefile error (like access issues). Add new non-regression tests
to 190-load in 50-cmds suite for modulefile specified as full path as new
error handling better detect issues on this use-case.
2017-04-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Optimize getPathToModule when solved alias is sub-mod In
case an alias resolution leads to a subsequent modulefile (modulefile part
of the current searched tree), go further in that searched tree rather
restarting search with a new getPathToModule call.
2017-04-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/loc_rc7/.modulerc,
testsuite/modulefiles/loc_rc7/0.9, testsuite/modulefiles/loc_rc7/1.2,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.91-sort/020-avail.exp: Add aliases to dir list of elements
in getModules When looking for an implicit default in a directory, now
aliases are part of the directory items so it can be returned as the last
element in it (highest numerically sorted version). Add tests in 050-locrc
of 20-locate suite to guaranty this behavior on load command and tests in
020-avail of 91-sort suite to guaranty this behavior on avail command.
2017-04-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.70-maint/045-listlong.exp: Consider upper
dir .version file in findModules If searched mod is found next to a
.version file (in same directory), add this rc file to the list of those to
interpret (like any modulerc files found on the path between the modulepath
dir and the dir of the search mod). With this fix 'module list' will
correctly display the 'default' tag along loaded modules when set via a
.version file. Adapt 045-listlong test in 70-maint suite to check this.
* modulecmd.tcl, testsuite/modules.70-maint/045-listlong.exp: Plug
cmdModuleList on getModules rather getPathToModule Call for getPathToModule
for each loaded modules to retrieve their tag list and modulefile
modification time in case of long output. Also fix long output to display
tag list if any. Add a non-reg test in 045-listlong of 70-maint suite to
check that.
* modulecmd.tcl, testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.90-avail/020-single.exp: Plug getPathToModule on
findModules/getModules Make getPathToModule procedure relying on
findModules and getModules procedures for module search and rc file
interpretation, as listModules now does. findModules and getModules have
been adapted to also handle getPathToModule use-cases. Code to look for
modules is now merged in a common set of procedures which will help both
search sides (getPathToModule/listModules) to get immediate benefit from
enhancement made on this code area. As a side effect a 'module avail' on a
module name which is an alias will now correctly return this alias module. A
test has been added in 020-single of 90-avail suite to check that.
* modulecmd.tcl: Introduce getLoadedModuleFileList proc Add a
getLoadedModuleFileList procedure to return a list corresponding to the
content of the _LMFILES_ environment variable (like getLoadedModuleList for
LOADEDMODULES). Take this opportunity to register modulefile path in
g_loadedModules global array, to be able to easily determine what file
correspond to what loaded module.
2017-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.91-sort/020-avail.exp: Separate file
search from display treatment in listModules Introduce findModules and
getModules procedures to handle file search for modulefiles and rc files
interpretation. findModules is in charge of searching paths for
module-related files. getModules calls findModules to get file list, then
interprets any rc files found to consolidate a list of modules to return.
listModules procedure now calls for getModules to get an array of modules
corresponding to the directory passed as argument. So focus of listModules
is now to prepare results for display. This new methodolidy also corrects
way directory where handled in case of '--default' and '--latest' listing.
On a '--default' listing, a modulefile does not appear anymore if a dir is
set default at the same level. On a '--latest' listing: a dir does not
appear anymore if set default but not the latest. Non-regression tests have
been added in 020-avail of 91-sort suite to ensure a correct behavior will
be maintained over time.
2017-03-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Protect read/close under catch in checkValidModule Improve
code of checkValidModule procedure to put read and close calls under catch
protection. Also, only read 8 characters at the beginning of file to check
header is valid.
* modulecmd.tcl: Read then eval rather source module content Replace source
of modulefile and modulerc content by a file read then an evaluation of its
content to optimize open/read/close operations of a 'module avail' command.
By doing so, a modulerc is only read once during avail rather twice (once
for validity check, then for sourcing content). Now validity check is
performed at the same time the content is read to be passed for evaluation.
In terms of Tcl C code, read+eval is equivalent to source. Only 'info
script' has to be adapted with read file name in order to get same behavior
during module code evaluation.
2017-03-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Call report only once per list to display
* modulecmd.tcl: Optimize grid size computation in displayElementList
Change algorithm strategy to compute the optimized number of column that can
be used to display in column-fashion a list of elements. Previous algorithm
was starting with a number of column equals to the number of element in
list. New algorithm starts closer to the solution with a number of column
equals to the basic solution where each column width is the same (equals to
the length of biggest element in list). This approach reduces the number of
iteration needed to reach best solution. Also when a column width is
changed currently computed row widths is adapted only for this column and
not entirely reset. All these optimizations drastically improve grid size
computation time. New algorithm is approximatelly 12 time faster than the
previous one. There is no more an overhead for this display mode.
2017-03-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles.deep/dir2/.modulerc,
testsuite/modulefiles.deep/dir2/1.0, testsuite/modulefiles.deep/dir2/3.0,
testsuite/modulefiles.deep/modload/dir2/.modulerc,
testsuite/modulefiles.deep/modload/dir2/1.0,
testsuite/modulefiles.deep/modload/dir2/3.0,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/999-cleanup.exp: Fix getModuleNameVersion to
translate mod name on demand only Translate module name to currently
interpreted module name when name correspond to the last part this
interpreted module only if translation is enabled (was previously done in
all cases). Translation is enabled when usage of symbolic modulefile names
are allowed, which means it is enabled from 'module-version', 'module-alias'
and 'module-info version' and 'module-info symbols'. Add non-reg tests in
020-load and 030-display of 80-deep suite to check that.
2017-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Add license and copyright header to modulecmd.tcl Take
also this opportunity to correct the version number which should be equal to
the number of commits but which was commit number+1
* contrib/doc2www, www/c/INSTALL.html, www/c/NEWS.html, www/c/README.html,
www/c/module.html, www/c/modulefile.html, www/index.html: Append myself to
the copyright list
2017-03-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/rpm/macros.modules-tcl, contrib/rpm/modules-tcl.spec: install: add
initial RPM specfile
* init/Makefile.in, init/bash.in, init/csh.in, init/ksh.in, init/sh.in,
init/zsh.in: install: fix reset of regular path in switchml Avoid resetting
regular path (/usr/bin) or manpath (/usr/share/man) when switching from Tcl
to C version in switchml utility.
2017-03-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.50-cmds/250-x-resource.exp: Raise error
on x-resource if DISPLAY not set X11 resource changes cannot occur if
DISPLAY environment variable is not set. So raise an error in x-resource
procedure if we detect that DISPLAY is not defined. Adapt 250-x-resource
tests in 50-cmds to change expected results in case testsuite is ran with no
DISPLAY set (like during rpm build).
2017-03-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile.in: testsuite: remove runtest verbose mode Remove testsuite
verbose mode as it is now sucessfull. No need to always get full details of
the test run. Replace it by the RUNTESTFLAGS make variable to be able to
set verbository on demand from the command-line.
* INSTALL.txt, Makefile.in, configure, doc/Makefile.in: install: do not
build html doc as not installed HTML documentation is not included in the
install process so do not build it and remove strong requirement of
pod2html.
2017-03-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/lisp.in: init: fix lisp script for env-change actions
2017-03-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* NEWS, modulecmd.tcl: Release of version 1.775
* modulecmd.tcl: Fix MODULESHOME setup in autoinit for libexec install
* contrib/doc2www, www/Makefile, www/c/INSTALL.html, www/c/NEWS.html,
www/c/README.html, www/c/module.html, www/c/modulefile.html, www/index.html:
www: add README and INSTALL files for Tcl and C
2017-03-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Remove use of untested var in runModulerc
* testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/150-module.exp: testsuite: be resilient to
_modshare fluctuation '_modshare' variables are get and set as an array so
order of elements is not guaranteed. Multiple elements set in a _modshare
variable may be ordered differently depending of the current system or the
path they represents. 150-module and 088-info-isloaded tests from 50-cmds
have been adapted to be resilient to _modshare variable fluctuation.
2017-03-03 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/LICENSE.GPL => COPYING.GPLv2, INSTALL-win.txt, INSTALL.txt,
Makefile.in, README.txt, doc/Makefile.in, doc/example.txt, doc/install.txt,
doc/installwin.txt, doc/readme.txt, init/README.txt, readme.txt: doc: Adapt
and harmonize INSTALL and README files Change documents markup to improve
readability and extend content to fit the new installation process.
INSTALL*, README and LICENSE documents have been moved/renamed in order to
be found at the root directory to conform with open-source project standards
and let people easily find these files once they retrieve either a
distribution tarball or a clone of git repository. README.txt in init dir
has been deleted as INSTALL.txt in root directory now integrates its
content. INSTALL.txt and example.txt are now installed in 'docdir' at 'make
install' time.
2017-03-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/diff_with_c-version.pod: doc: add tcl specific stuff to
diff_with_c-version Improve diff_with_c-version document to describe the
features of the Tcl-version that are not supported on the C-version. Also
state that the diff takes C version 3.2.10 against Tcl version 1.729 as a
basis. Differences appearing past these versions will be flagged with the
release number of appearance.
* configure, init/Makefile.in, init/bash.in, init/csh.in, init/fish.in,
init/ksh.in, init/perl.in, init/python.in, init/sh.in, init/tcl.in,
init/zsh.in: init: do not load modulerc config is env already set If
MODULEPATH or LOADEDMODULES is already set, do not source the modulerc
configuration file in init scripts. As a consequence, if .modulespath sets
a module path, then modulerc will be ignored which clarifies how default
configuration is loaded: if both .modulespath and modulerc are defined,
.modulespath takes precedence over modulerc. So if .modulespath sets a
module path, all loaded modules defined in the modulerc file will be
ignored.
2017-02-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Introduce release date to display next to version
2017-02-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile.in, doc/Makefile.in, init/Makefile.in: install: add 'DESTDIR'
support
* .gitignore, Makefile, Makefile.in, configure, doc/{Makefile =>
Makefile.in}, init/.gitignore, init/{Makefile => Makefile.in}: install:
introduce a 'configure' step Add a 'configure' shell script to generate
Makefiles, rather than choosing installtion directories or enabled features
a the 'make' step. By doing so, installation process is clearer and closer
to build conventions. Use a custom 'configure' shell script rather than
using autoconf and automake tool suites in order to keep good readability of
Makefiles. Moreover our build use case is relatively small since nothing is
complied so there is no real benefit of using autoconf/automake. Adapt
Makefiles to this 'configure' change and add 'distclean' target.
2017-02-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, init/Makefile: init: add make option to bind on C ver
.modulespath Add the 'usecverdotmodulespath' make argument to generate
init/.modulespath config file as a symlink on C version installed
.modulespath configuration (by doing so both C and Tcl versions installed on
the same environment can share the same MODULEPATH initialization setup).
'cverinitdir' must be known for 'usecverdotmodulespath' to be taken in
account.
* Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
init/ksh.in, init/sh.in, init/zsh.in: init: define switchml tool in shell
init scripts Introduce 'switchml' tool, a shell function (or alias for csh
or tcsh shells) that swap currently enabled Modules version (C or Tcl) by
the other version (C or Tcl). In case a swapped version was defining
specific PATH or MANPATH entries, these specific entries are removed when
switching to the other version to avoid still relying on the binaries and
man pages of the swapped-out version.
2017-02-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitattributes, .gitignore, Makefile, doc/Makefile: install: add a 'dist'
make target Build a distribution tarball from the git repository content
with the 'dist' make target. Add gitattributes to exclude git-specific and
website-specific content in distribution tarball. Also exclude user home
directory template from dist tarball as its content has a very large size
and may not apply to everybody. Adapt parts of Makefiles to behave
correctly when ran from a distribution tarball, not from the git repository.
2017-02-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, doc/Makefile, init/Makefile: install: add an 'uninstall' make
target
* Makefile, init/.modulespath.in, init/Makefile, init/modulerc.examp,
init/modulerc.in: init: generate modulerc and .modulespath configs Add
makefile rules to generate the modulerc and .modulespath configuration
files. modulerc is generated in any case. By default it hosts the MODULEPATH
and LOADEDMODULES definition passed to the Makefile with the 'modulepath'
and 'loadedmodules' argument. The 'setdotmodulespath' Makefile argument is
also introduced. When set to 'y', the .modulespath is generated and hosts
the MODULEPATH definition. In this case, modulerc config file only gets the
LOADEDMODULES definition or is set empty if no value is passed to the
'loadedmodules' argument.
2017-02-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, doc/Makefile, doc/source/module.pod.in, init/Makefile: install:
add modulefilesdir configuration option @modulefilesdir@ enables to set the
default system-wide modulefiles directory as described in module.1 man page.
* Makefile, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
init/ksh.in, init/sh.in, init/zsh.in: init: set PATH and MANPATH in shell
init scripts Add the possibility to set PATH and MANPATH in shell init
scripts (sh-like, csh-like and fish scripts) if specific option are enabled
in makefile (enabled by default). With this, bin directory and man directory
of the modules-tcl installation are prepended to the MANPATH and PATH
environment variables. Prepending is required for PATH as manpath utility
in its default Linux setup will automatically set MANPATH from PATH change,
so if we want MANPATH to be prepended, PATH has to be prepended.
2017-02-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile, doc/Makefile, doc/source/{module.pod =>
module.pod.in}: doc: adapt module doc to path used for install Use same
process than init scripts to translate module documentation from
configure-like pattern (@prefix@, @initdir@, etc) to the path name chosen
for installation.
* .gitignore, doc/Makefile: doc: make a txt version of diff_with_c-version
doc And include this txt version in the documentation directory made for
installation.
* .gitignore, Makefile, doc/Makefile, init/.gitignore, init/Makefile,
init/bash.in, init/csh.in, init/fish.in, init/ksh.in, init/lisp.in,
init/perl.in, init/profile.csh.in, init/profile.sh.in, init/python.in,
init/sh.in, init/tcl.in, init/tcsh_completion.in, init/zsh.in: Introduce an
installation process Introduce an 'install' target in makefiles to provide
an installation process for modules-tcl. Defines installation paths with
Makefile variables in order to avoid having a ./configure step. Install
paths are set during the 'make' step by passing 'prefix', 'libexecdir',
'mandir', etc arguments to the make command. If no path definitions are
passed to the 'make' command, installation will be made in
'/usr/local/modules-tcl' by default. Installation paths provided (or set
from the default value found in Makefile) are saved at the 'make' step in a
.makeinstallpath file. Then at the 'make install' step, this
.makeinstallpath file is read and make knows where to install modules-tcl.
These paths definitions are also used to translate *.in init script to their
installed version. modulecmd.tcl script is by default set to be installed
in the libexec directory to follow FHS specification (as this script is an
executable but not directly accessed by users).
* init/csh.in: init: throw module exit code on csh-like script Also takes
this opportunity to refactor code of this init script.
2017-02-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/.gitignore, init/Makefile, init/profile.csh.in, init/profile.sh.in:
init: add /etc/profile.d scripts
* init/.gitignore, init/Makefile, init/bash.in, init/csh.in, init/fish.in,
init/ksh.in, init/sh.in, init/zsh.in: init: ensure module definition in
sh-like sub-shells Adapt shell init scripts (sh-like, csh-like and fish) to
get module defined in sh-like sub-shells. The method to define the module
function in interactive or non-interactive sh-like sub-shells vary according
to the shell flavor. The below table is an attempt to summarize the method
to use to get 'module' function defined in sub-shell depending of the
SH-shell kind and if the sub-shell is in interactive mode or not.
+-----+----------+-----------+-------+ | ENV | BASH_ENV | export -f | FPATH
| +-------------+-------------------+-----+----------+-----------+-------+ |
|inter sub-shell | | | X | | |BASH
+-------------------+-----+----------+-----------+-------+ |
|non-inter sub-shell| | X | X | |
+-------------+-------------------+-----+----------+-----------+-------+ |
|inter sub-shell | X | | X | | |SH
+-------------------+-----+----------+-----------+-------+
|(BASH-compat)|non-inter sub-shell| | | X | |
+-------------+-------------------+-----+----------+-----------+-------+ |
|inter sub-shell | X | | | X(*)| |SH
+-------------------+-----+----------+-----------+-------+ |(ZSH-compat)
|non-inter sub-shell| X | | | X(*)|
+-------------+-------------------+-----+----------+-----------+-------+ |
|inter sub-shell | X | | | X | |KSH
+-------------------+-----+----------+-----------+-------+ |
|non-inter sub-shell| | | | X |
+-------------+-------------------+-----+----------+-----------+-------+ |
|inter sub-shell | X | | | X(*)| |KSH
+-------------------+-----+----------+-----------+-------+ |(ZSH-compat)
|non-inter sub-shell| X | | | X(*)|
+-------------+-------------------+-----+----------+-----------+-------+ |
|inter sub-shell | | | | X(*)| |ZSH
+-------------------+-----+----------+-----------+-------+ |
|non-inter sub-shell| | | | X(*)|
+-------------+-------------------+-----+----------+-----------+-------+ (*)
autoload required Shell init scripts have been adapted to implement these
different method to cover most of the initialization cases. Note that 'zsh'
requires to declare with autoload the functions put in FPATH directory so
there is no gain to configure FPATH for 'zsh' compare to a bare source of
the 'zsh' init script.
* init/.gitignore, init/bash.in, init/csh.in, init/fish.in, init/ksh.in,
init/perl.in, init/python.in, init/sh.in, init/tcl.in, init/zsh.in: init:
set MODULEPATH if not defined Initialize MODULEPATH variable if not
defined, with an empty string or with the content of the init/.modulespath
file if it exists and it is readable. This file contains a list of module
paths, one per line or many per line separated by colon character. This way
of initializing MODULEPATH has been retrieved from C version init scripts in
order for sysadmins to keep a familiar concept to set default MODULEPATH.
* init/bash.in, init/csh.in, init/fish.in, init/ksh.in, init/perl.in,
init/python.in, init/sh.in, init/tcl.in, init/zsh.in: init: set empty
LOADEDMODULES if not defined
2017-02-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/Makefile, init/bash.in, init/csh.in, init/tcsh.in: init: introduce
SHELLNAME var to replace in script With SHELLNAME replacement variable,
tcsh init script is derivated from csh init script.
* init/bash.in, init/csh.in, init/fish.in, init/ksh.in, init/perl.in,
init/python.in, init/sh.in, init/tcl.in, init/tcsh.in, init/zsh.in: init: do
not source init/modulerc if not readable
* doc/source/module.pod: doc: fix python init example for python3 compat
* init/.gitignore, init/Makefile, init/{tcsh_completion =>
tcsh_completion.in}: init: replace tclsh and MODULESHOME in tcsh_completion
* init/Makefile, init/bash.in, init/csh.in, init/fish.in, init/ksh.in,
init/lisp.in, init/perl.in, init/python.in, init/sh.in, init/tcl.in,
init/tcsh.in, init/zsh.in: init: get and set TCLSH in init scripts As for
MODULESHOME, get 'tclsh' location from Makefile then replace '@TCLSH@'
pattern in shell init scripts with found location rather than guessing it in
the init scripts. By doing so, same 'tclsh' location search is applied to
all init scripts. Search is performed with 'command' to look at a predefined
list of PATHs in order to be resilient to the current PATH content.
* init/Makefile, init/bash.in, init/csh.in, init/fish.in, init/ksh.in,
init/lisp.in, init/perl.in, init/python.in, init/sh.in, init/tcl.in,
init/tcsh.in, init/zsh.in: init: normalize use and replacement of
MODULESHOME Simplify guess of MODULESHOME location by more relying on
'make' capabilities than 'perl'. Adapt init scripts for the different
shells to use the MODULESHOME variable that is replaced during the 'make'
process rather than ${MODULESHOME}, $env(MODULESHOME), etc. By the way, use
a replacement pattern closer to what 'configure' is using with
'@MODULESHOME@' rather than '$MODULESHOME' which was confusing in shell
scripts.
* init/zsh.debug: init: remove unused zsh.debug
2017-02-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix MODULESHOME setup in autoinit Set modulecmd.tcl script
directory absolute then guess MODULESHOME from it. Adapt this setup if
modulecmd.tcl is located in a 'bin' directory as in this case MODULESHOME is
set to the upper directory (as 'init' directory will be located at the same
level than the 'bin' dir not inside the 'bin' dir). By the way, fix perl
autoinit code to simply use 'argv0' rather than 'MODULESHOME' in order to
set the module function as for the other languages.
2017-03-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/loc_rc6/.modulerc,
testsuite/modulefiles/loc_rc6/1.2,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp: Correct alias/version resolution on
avail command List of version symbols was erroneous on an avail command in
case a modulefile held symbols like default and was targeted by aliases.
Avail output was showing the aliases holding the symbols instead of the
modulefile. getVersAliasList procedure was fixed to perform the alias
resolution attempt in a second phase of the procedure, to let chance to
retrieve symbols for the initial module name passed to the procedure.
030-multiple, 040-wild and 050-long tests of the 90-avail suite has been
enhanced with new tests to check this behavior. loc_rc6 modulefile has been
added to the testsuite modulefiles to reproduce this use case. Thanks to
Bert Wesarg and Levi Morrison for reporting this issue.
2017-02-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/doc2www, www/Makefile, www/c/NEWS.html, www/{man =>
c}/module.html, www/{man => c}/modulefile.html, www/index.html: www: include
NEWS files on website Include the NEWS file of C and Tcl versions to the
documentation portal of Environment Modules. Move C documentation to a 'c'
directory to better distinguish from the Tcl documentation that is stored in
the 'tcl' directory. Hard links are maintained on the Website not to break
URL to man/module.html and man/modulefile.html pages.
* NEWS: Add NEWS file to desc changes in modules-tcl rel
2017-02-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/doc2www, www/index.html, www/man/module.html,
www/man/modulefile.html: www: add Mark Lakata to the copyright list
* .gitignore, Makefile, contrib/gitlog2changelog.py: Add gitlog2changelog.py
contrib script Import gitlog2changelog.py GPL script to generate a
ChangeLog file based on the commits of the git repository. Add a
'ChangeLog' rule to the Makefile.
* contrib/doc2www, www/index.html, www/man/module.html,
www/man/modulefile.html: www: update lic/copyright and version order Adapt
pages as suggested by R.K. and Kent: * update copyright for the recent years
* add reference to LGPL as C version has some parts using this lic * reword
C and Tcl version presentation * put C version first
2017-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, Makefile, contrib/doc2www, www/Makefile: www: Include Tcl
version docs and papers/talk to website Introduce 'doc2www' script to
convert Tcl version documents to the website format, with usage of the
'bootstrap' web toolkit. Makefiles have been adapted to be able to generate
these www documents from the source pod files and to copy existing txt and
pdf files in the website tree.
* www/index.html, www/man/module.html, www/man/modulefile.html,
www/modules.css: www: Change website look and feel with Bootstrap Adapt web
pages to make use of the Bootstrap toolkit in order to get a modern and easy
to maintain web style and content. Bootstrap also helps to get a responsive
design so the website will adapt to the terminal used to read it. Thanks to
Aurelien Degremont for pointing me to the right tool for this task.
* www/man/module.html, www/man/modulefile.html: www: Import and adapt last
version of C manpages
2017-02-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* www/index.html, www/maillist.html: www: Refresh content all on single page
2017-02-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/paper/MC2_whitney_paper.pdf, doc/paper/Modules-Paper.pdf,
doc/paper/absmod.pdf, doc/paper/user-setup.pdf,
doc/talk/CSE-IT_modules_talk.pdf: doc: Import papers and talk avail on www
2017-02-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* www/index.html, www/maillist.html, www/man/module.html,
www/man/modulefile.html, www/modules.css: www: Import current website
2017-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix use of pwd in renderSettings proc renderSettings was
using the 'pwd' binary instead of the 'pwd' Tcl call, which cause issue when
PATH is empty. Code has been adapted to reuse the value of the 'cwd' global
variable or set its value by calling the 'pwd' Tcl function.
* doc/source/module.pod: doc: Describe collection stuff
2017-01-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile, doc/source/diff_with_c-version.pod: doc: Introduce
diff_with_c-version.pod document
* doc/source/module.pod, doc/source/modulefile.pod: doc: use itemized-list
for ENV and FILES sections Adapt module.pod and modulefile.pod to use
itemized-list rather than head2 for the content of their ENVIRONMENT and
FILES sections. HTML rendering is clearer with a list than h2.
* .gitignore, doc/Makefile, doc/html/common.css: doc: add a minimal css file
to render html docs
2017-01-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Improve shebang to only search tclsh once if in PATH
2017-01-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.pod, modulecmd.tcl,
testsuite/modulefiles/info/mode3,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-unload2.exp: Add module-info mode check
against 'remove' and switch' value For compatibility with C-version, enable
to check current 'module-info mode' against the 'remove' and 'switch' value.
To achieve this change 'remove' is considered an alias of the 'unload'
value. 'switch' is checked against the current 'module-info command'.
084-info-mode-exp tests of 50-cmds suite have been adapted. In addition
020-unload and 022-unload2 tests of 95-version suite have also been adapted
as the modulefiles they check are using a 'module-info mode remove' test.
2017-01-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Handle sep line on avail/help/display with a proc
* doc/source/modulefile.pod, modulecmd.tcl, testsuite/home/.module/infocmd,
testsuite/home/.module/infocmdexp, testsuite/modulefiles/info/command,
testsuite/modulefiles/info/commandexp,
testsuite/modulefiles/inforc/.modulerc,
testsuite/modules.50-cmds/281-info-modulerc.exp,
testsuite/modules.50-cmds/282-info-command.exp,
testsuite/modules.50-cmds/283-info-command-exp.exp,
testsuite/modules.61-coll/020-savelist.exp: Introduce 'module-info command'
Introduce g_commandNameStack variable, currentCommandName, pushCommandName
and popCommandName procedures to implement a 'module-info command' that
returns the name of the currently running module command. This new
mechanism enables to distinguish complex 'load' or 'unload' commands that
cannot be determined with 'module-info mode' alone. For instance a
modulefile can now be aware that a 'switch', a 'restore' or a 'purge'
command is currently being run. Add description of this new command to the
modulefile documentation. Add 282-info-command and 283-info-command-exp
tests in 50-cmds and adapt 281-info-modulerc in 50-cmds and 020-savelist in
61-coll.
* doc/source/module.pod: doc: add missing 'aliases' and 'source'
sub-commands
2017-01-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/inforc/.modulerc,
testsuite/modulefiles/inforc/1.0, testsuite/modulefiles/inforc/2.0,
testsuite/modules.50-cmds/281-info-modulerc.exp: Enable use of 'module-info'
from modulerc Give access to the 'module-info' procedure in slave interp
when executing .modulerc or .version file. Adapt push/pop mode calls to
surround procedure calls that can execute a modulerc file to get there a
coherent 'module-info mode' value. Add 281-info-modulerc tests to the
50-cmds suite.
2017-01-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/info/.modulerc,
testsuite/modulefiles/info/specified,
testsuite/modules.50-cmds/280-info-specified.exp: Fix 'module-info
specified' Introduce g_specifiedNameStack variable, currentSpecifiedName,
pushSpecifiedName and popSpecifiedName procedures to implement a
'module-info specified' that returns the modulefile name as specified on the
command-line. Add 280-info-specified tests to the 50-cmds suite.
* modulecmd.tcl: Simplify code of cur/push/pop mode and modname procs
* doc/source/module.pod: doc: add missing 'search' module sub-command
2017-01-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Display system command with no extra space if no arg
* modulecmd.tcl: Display unsetenv command with 1 tab sep instead of 2 To
get result aligned with the other commands.
* modulecmd.tcl, testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.90-avail/030-multiple.exp: No exit raise on modfile error
for avail/whatis cmds Do not exit on an error raised by one modulerc or one
modulefile for global commands avail, whatis or search that parse the
content of all modulefile/modulerc found in the defined module paths. By
doing so results from these global commands will not be harmed if error
exists in a few modulefiles. The content of these modulefiles will be
ignored after the erroneous line. So in a whatis/search case if the
module-whatis definition is set before the erroneous line, the modulefile
will be taken into account. If the module-whatis definition is set after the
erroneous line, the modulefile will be ignored. To achieve this goal a
'exit_on_error' argument has been added to the 'execute-modulerc' and
'execute-modulefile' procedures. By default this argument is enabled but
calls made from 'listModules' and 'cmdModuleSearch' disable it. Add
non-regression test to 055-whatis and 060-apropos in 70-maint suite and to
030-multiple in 90-avail suite.
* modulecmd.tcl, testsuite/modulefiles/bad/.modulerc,
testsuite/modulefiles/bad/after, testsuite/modulefiles/bad/before,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp: Non-zero exit code when exiting
from execute-mod procs When a critical error is encountered when
interpreting a modulefile or a modulerc from execute-modulefile or
execute-modulerc procedures, exit as done elsewhere. Means call for error
code rendering and raise error to top level, where exit command is called.
A new procedure called 'exitOnError' is added and it is called by
execute-modulefile and execute-modulerc procedures. Top level error
management code now does not always print an error message as in this
situation error message has already been displayed when the
reportInternalBug procedure was called. Add non-regression tests to
190-load in 50-cmds suite and to 070-display and 080-help in 70-maint suite.
* modulecmd.tcl: Refactor exit and ModulesVersion set of execute-modulerc
Refactor the execute-modulerc procedure to handle exit in case of critical
error as it is done on execute-modulefile procedure with the slave interp
evaluation returning an errorVal. Then this errorVal is treated to check if
a critical error as been encountered (errorVal=2). To achieve this goal the
way the ModulesVersion variable is set need to be changed as the slave
interp now returns errorVal not ModulesVersion. A setModulesVersion
procedure is added to enable the slave interp to pass the value of the
ModulesVersion variable in the master interp context.
2017-01-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Retrieve help mode from module-info on execute-modulefile
Remove the 'help' argument on the execute-modulefile procedure that was used
to know the execution is made on a 'help' mode. Now that 'help' mode is
pushed to the 'mode' stack, 'help' mode can be retrieved from 'module-info
mode'.
2017-01-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Inhibit non-critical error report on avail/whatis
Introduce the g_inhibit_errreport variable to inhibit the stderr display of
non-critical error aka error reported through the reportWarning, reportError
or reportInternalBug procedures. inhibitErrorReport and reenableErrorReport
procedures are added to enable or disable g_inhibit_errreport. This new
mechanism has been deployed on the 'avail', 'aliases' and 'whatis/search'
commands, in order to avoid error flood when parsing all modulefiles or
modulercs. This way, results from these commands will appear clearly to the
user.
2017-01-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.50-cmds/210-exit.exp: Handle multiple
lines of module-whatis for same modfile Treat g_whatis as a list where each
module-whatis text-line is appended to the previous lines. In case of
search, these lines are displayed only if they match the search pattern (to
get same behavior as on C-version) As a side effect, if no 'module-whatis'
directive are found in a modulefile, this modulefile is never displayed on a
'module whatis' call (same behavior as on C-version). Adapt 210-exit whatis
test in 50-cmds suite.
* modulecmd.tcl: Handle multiple args passed to module-whatis cmd When
multiple arguments are provided to the module-whatis module command, join
them with " " to get a line of text.
* modulecmd.tcl: Return error on whatis if searched modfile not found If
'module whatis' command gets modulefiles as argument, if this or these
modulefiles do not match any existing modulefile in the defined module path,
then raise error as done on 'module load'.
2017-01-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/coll/a, testsuite/modulefiles/coll/b,
testsuite/modulefiles/coll/c, testsuite/modulefiles/coll/d,
testsuite/modulefiles/help/2.0, testsuite/modules.70-maint/010-init_ts.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/056-whatis-nullpath.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/095-cleanup.exp: testsuite: import and adapt
70-maint suite Also adapt 'coll' modulefiles to better cope with
whatis/search commands.
2017-01-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Set a ref count of 1 for path without ref count When a
path is used in a variable but does not own a reference count assume this
count is 1 rather than 999999999 to be able to unload it afterward which
would not be possible if this path is referred 999999999 times.
2015-06-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* contrib/envml: Introducing envml utility Add a 'envml' script tool which
act as an application launcher where module commands are instancied to setup
environment before launching the given application.
2017-01-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/010-environ.exp: testsuite: clean _modshare env
vars before start Unset any *_modshare environment variable before test
start to get independent from the current environment situation.
* Makefile: Ask for pwd physical resolution in Makefile Use physical
resolution (pwd -P) rather than logical resolution to be able to match
result returned by the 'pwd' Tcl command.
2017-01-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: Always register paths as absolute
paths Convert paths provided to be part of MODULEPATH environment variable
in order to always register the corresponding absolute path. This way these
paths become independent from the current working directory, which can be
modified afterward by the user. Use 'file join [pwd]' method rather than
'file normalize' to get aboslute paths in order to preserve potential
symlink used in the relative path hierarchy. Convertion also strips any
extra '/' character and resolive "." and ".." components.
readCollectionContent and cmdModuleUnuse procedures have also been adapted
to keep compatibility with previous behavior where relative paths were able
to be registered in MODULEPATH. Adapt 61-coll suite and improve 030-use and
070-unuse tests of 10-use suite.
2017-01-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.50-cmds/210-exit.exp: Inhibit next
modfiles interp with 'exit' only if mode is load Do not impact with 'exit'
calls the remaining modulefiles to interpret in case of global non-load
action like whatis, display or help. Some tests have been added to 210-exit
in order to check this behavior.
* doc/source/modulefile.pod, modulecmd.tcl,
testsuite/modules.50-cmds/087-info-shells-exp.exp: Add arg to test current
{shell,shelltype}' in module-info Add the possibility to pass a string to
'module-info shell' and 'module-info shelltype' to get a boolean test on
currently used shell or shelltype. This kind of behavior is already
available on 'module-info mode' to test module current mode. These features
are supported by C-version even if not documented. modulefile documentation
and 087-info-shells-exp tests in 50-cmds suite have been adapted
accordingly.
2017-01-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.pod: doc: clarify 'module-info {symbols,version}'
commands
2017-01-10 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/loc_def/default,
testsuite/modulefiles/loc_def/truedef,
testsuite/modules.20-locate/035-defname.exp: Do not always treat 'default'
version-name as a symbol Do not always treat 'default' version-name as a
symbol where 'module/default' is equal to 'module'. Sometimes
'module/default' can be a real modulefile thus it should be treated like
that. To do so a 'default_is_special' argument has been added to the
'getModuleNameVersion' procedure in order to treat 'default' as a special
version-name only when working with 'module-version', 'module-info version'
and 'module-info symbols' commands. Add 035-defname tests to 50-cmds suite
to check this behavior.
2017-01-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp: Escape ':' in modshare var
when used as path element in var Some list variable may contain element
with ':' in it, like for URL, separated by a character different than ':'.
However corresponding modshare variable always use colon character as
separator so we need to escape colon used as variable content in modshare
variable to avoid issue. To achieve that psplit and pjoin procedures are
introduced as well as a charUnescaped procedure, which is the reverse of the
already existing charEscaped procedure. With these new procedures path-like
variable escape or unescape $g_def_separator character used in element of
the variable when splitting or joining the whole variable. Adapt
042-append-delim, 047-app-del-undo, 052-prepend-delim and 057-pre-del-undo
tests in 50-cmds suite to check colon character is correctly escaped in
modshare variable.
* modulecmd.tcl: Introduce charEscaped proc to escape char passed as arg
Replace multiEscaped, doubleQuoteEscaped and singleQuoteEscaped procs by a
single procedure that can escape any set of characters passed as argument.
2017-01-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/modulefile.pod: doc: adapt descrition of 'x-resource'
* doc/source/modulefile.pod: doc: adapt calls used by 'system' and 'uname'
* doc/source/modulefile.pod: doc: adapt list of mode returned by
'module-info mode'
* doc/source/module.pod: doc: add refresh alias on reload sub-command
2017-01-05 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.pod: doc: case when MODULERCFILE points to a directory
* doc/source/module.pod, doc/source/modulefile.pod: doc: add --default and
--latest avail switches
* doc/source/module.pod: doc: add --help, --version and --debug switches
* doc/source/module.pod: doc: switch command accepts only one argument
* doc/source/module.pod: doc: reference newly supported shells (fish, tcl,
lisp)
* init/python.in: init: fix TCLSH typo in python script
2016-12-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/source/module.pod, doc/source/modulefile.pod: doc: improve docs
readability Adopt and apply writing conventions found especially in
man-manpages(7) to improve documents readability: * always refer to
'modulefile' or 'modulefiles' with I<> pod code * refer to other manpages
with B<> pod code * refer to filename or pathname with F<> pod code * refer
to environment variable with B<> pod code * no '$' before environment
variable except if its value is referred * no escaping '{}' of environment
variable * use item list to describe ordered list * use item list to
describe all command-line switches, all module sub-commands and all
modules-specific Tcl commands * refer to command-line switches, module
sub-commands, modules-specific Tcl commands, Modules variables and Modules
subroutines with B<> pod code * use normal font for arguments on item list *
refer to arguments of current command-line switch, module sub-command or
modules-specific Tcl command with I<> pod code * express 1+ arguments with a
'arg...' syntax * format pod source with 'fmt' to set maximum line witdh to
78 chars * fix double spaces ' ' or end of line extra space found in
paragraphs
* doc/source/module.pod, doc/source/modulefile.pod: doc: remove stuff
specific to C-version Changes made on module.pl: * remove text related to
the 'modulesbeginenv' feature * remove 'clear' sub-command * change 'update'
sub-command into 'reload and adapt description Changes made on
modulefile.pl: * remove 'module-info flags' modules-specific Tcl command *
remove 'module-trace' modules-specific Tcl command * remove 'module-user'
modules-specific Tcl command * remove 'module-log' modules-specific Tcl
command * remove 'module-verbosity' modules-specific Tcl command
* doc/source/module.pod, doc/source/modulefile.pod: doc: syntax fixes and
import recent changes on C doc
2017-01-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* doc/Makefile, doc/source/{module.pl => module.pod},
doc/source/{modulefile.pl => modulefile.pod}: doc: use .pod extension for
POD documents This way these files are automatically recognized as POD
files and the appropriate syntax highlight mode is automatically set.
2017-01-02 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* Makefile, doc/Makefile: Create a doc-specific Makefile Separate
documentation generation in a dedicated Makefile put in the doc directory.
Generate documentation in a more 'Makefile' fashion, with a target per
document file.
2017-01-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .gitignore, doc/html/module.html, doc/html/modulefile.html,
doc/man/man1/module.1, doc/man/man4/modulefile.4: Remove generated documents
from git repository Clear HTML and MAN pages from the repository as they
are generated content from POD files. This way git commits on documentation
are clearer as they only contain changes on POD files. Add rules to
.gitignore to stop tracking generated HTML and MAN documents in repository.
2016-12-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, notdone/modules.50-cmds/170-swap.exp,
notdone/modules.50-cmds/175-swap2.exp, testsuite/modulefiles/append/1.1,
testsuite/modulefiles/prepend/1.1, testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp: Make 'switch' command
handle a single argument On a 'module switch [mod1] mod2', If 'mod1' is not
specified, then it is assumed to be the currently loaded module with the
same root name as 'mod2'. Introduce a 'getLoadedWithClosestName' procedure
to look at currently loaded modules and return the one with the closest name
to the name passed as argument. Import and adapt 170-swap,
172-swap-app-delim, 173-swap-app-delim, 175-swap2, 177-swap-prep-delim and
178-swap-prep-delim tests to the 50-cmds suite.
2016-12-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Make 'switch' command consistent Switch command were
previsouly setting 'new' as 'old' and 'old' as 'new' when 'new' is detected
loaded. This behavior led to inconsistency especially when the same 'module
switch old new' command is called twice. First time 'old' is loaded and
'new' is unloaded. Then for the second call 'old' is unloaded and 'new' is
loaded, and so on. In this case, the result of the switch command depends on
the current situation which confuses most persons using it. This commit
makes the switch command idempotent by always ending up with 'old' unloaded
and 'new' loaded, whatever the starting situation is.
2016-12-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, notdone/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/210-exit.exp: Add support for 'exit' command in
modulefile Add support for use of 'exit' command within modulefile as
described in modulefile(4) man page. This command will cause the immediate
cessation of this module and any additional ones on the command line. This
module and the subsequent modules will not be listed as loaded. No
environment commands will be performed in the current module. To achieve
that a 'exitModfileCmd' procedure is added to superseed the 'exit' command
during modulefile interpretation. When called this procedure sets a flag
that inhibit further modulefile interpretation. Import and adapt 210-exit
tests in 50-cmds suite.
* init/bash_completion, init/tcsh_completion, modulecmd.tcl,
notdone/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/078-refresh.exp: Add 'refresh' command as alias on
'reload' command Add a 'refresh' command as available on C-version but
instead of reloading the volatile components (ie. shell aliases) only, here
we unload then reload all the currently loaded modules. This behavior is
different than on C-version but it ends with same results : shell aliases
are refreshed in sub-shells. Import and adapt 07-refresh tests in 50-cmds
suite.
2016-12-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, .../modules.50-cmds/100-loglevel.exp,
.../modules.50-cmds/101-badfac.exp, .../modules.50-cmds/110-verbose.exp,
.../modules.50-cmds/115-verbose-msg.exp: Add dummy
module-{log,trace,user,verbosity} procs Add dummy procedures for the
module-log, module-trace, module-user and module-verbosity commands
available on C-version. These commands do not seem relevant to be
implemented on Tcl-version of module, but having dummy procedure for them
enable support for modulefiles using these commands. Without dummy
procedures these modulefiles raise error as the commands are not known. The
4 dummy procedures report a warning message to let the user know that even
if the modulefile has been loaded/unloaded/etc, the module-log,
module-trace, module-user or module-verbosity calls were not interpreted.
Import and adapt 100-loglevel, 101-badfac, 110-verbose and 115-verbose-msg
tests in 50-cmds suite.
2016-12-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.50-cmds/140-system.exp: Adapt 'system' to
behave like described on manpage Previously the 'system' modulefile command
was adding the specified string to the list of things to interpret on
stdout. This commit aligns the behavior of the 'system' command on the one
implemented on Modules C-version which is documented on modulefile(4) man
page. Now 'system' passes string to the 'exec' Tcl procedure with stdout
redirected to stderr since stdout would be parsed by the evaluating shell.
The exit status of the executed command is returned. Adapt '140-system'
test in 50-cmds suite accordingly.
2016-12-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* notdone/modules.50-cmds/120-prereq-full.exp,
notdone/modules.50-cmds/130-conflict-full.exp,
notdone/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp: testsuite: import
'conflict' and 'prereq' tests in 50-cmds suite
* modulecmd.tcl, notdone/modules.50-cmds/190-load.exp,
.../modules.50-cmds/150-module.exp, testsuite/modules.50-cmds/190-load.exp:
Fix 'module list' when module loaded with full path On Tcl-version,
modulefile loaded by giving its full path has its name equal to its full
path since module name and version cannot be distinguished from the path. On
C-version, module name equals to the tail of the full path. Also import and
adapt 'module' and 'load' tests in 50-cmds suite.
2016-12-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Disable g_force to avoid loading already loaded mod In
order to get closer to C-version, disable g_force by default to avoid
loading a modulefile already loaded. This behavior also avoid path element
reference counting to get increased when the same module is asked twice for
load. Thus with cleaner path element reference count, automatic modulefile
dependency management is made possible.
2016-12-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* notdone/modules.50-cmds/080-info-name.exp,
notdone/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp: testsuite: import
module-info name/isloaded in 50-cmds suite
* modulecmd.tcl, testsuite/modulefiles/info/mode1,
testsuite/modulefiles/info/mode3, .../modules.50-cmds/083-info-mode.exp,
.../modules.50-cmds/084-info-mode-exp.exp: Clarify module-info 'mode' option
Fix mode setup during a 'help' command and import info-mode relative tests
in 50-cmds suite. module-info non-regression tests have been adapted to
match behavior of Tcl-version: * during a 'help' command, stdout output of
ModulesHelp procedure is not redirected to stderr as done on C-version * on
an 'unload' command, module-info mode is equal to 'unload' and not 'remove'
* on a 'switch' command, module-info mode is equal to 'unload' then 'load'
and not 'switch1', 'switch2' and 'switch3' * on a 'switch' command,
module-info mode never equals to 'switch'
2016-12-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/info/mode5,
.../modules.50-cmds/081-info-user.exp,
.../modules.50-cmds/082-info-user-exp.exp,
.../modules.50-cmds/085-info-flags.exp: Clarify module-info 'flags' and
'user' options 'flags' and 'user' are C-version specific options and they
are not relevant for Tcl-version. So they are present on Tcl-version to
avoid breaking modulefile using them but always return false or an empty
string to reflect the fact that these options are unmanaged here. Import
and adapt info-user and info-flags non-regression tests in 50-cmds suite.
2016-12-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, notdone/modules.50-cmds/042-append-delim.exp,
notdone/modules.50-cmds/045-append-undo.exp,
notdone/modules.50-cmds/047-app-del-undo.exp,
notdone/modules.50-cmds/050-prepend.exp,
notdone/modules.50-cmds/052-prepend-delim.exp,
notdone/modules.50-cmds/055-prepend-undo.exp,
notdone/modules.50-cmds/057-pre-del-undo.exp,
notdone/modules.50-cmds/060-remove.exp,
notdone/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp: Handle empty or separator
path on add-path/unload-path Improve add-path and unload-path to handle
empty path {}, that can be added or removed from a path list like on
C-version. Also if provided path is equal to the separator string, like
":", an error is raised as this kind of path cannot be handled in path list
variables. This behavior here is different than on C-version where path
equals to ":" can be added or removed to path list variables. Import or
adapt add-path and unload-path relative tests (04*-append, 05*-prepend and
06*-remove) in 50-cmds suite.
2016-12-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, notdone/modules.50-cmds/025-setenv-undo.exp,
notdone/modules.50-cmds/035-unsetenv-undo.exp,
notdone/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp: Improve unsetenv for unload
and display modes On unload mode, delete environment variable targeted by
an unsetenv directive if no value has been provided along. On display mode,
print environment variable value if any has been passed to unsetenv
directive. Import 025-setenv-undo, 035-unsetenv-undo and 036-unsetenv-x
tests in 50-cmds suite.
2016-12-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: Enclose tcl variable set
within double quotes When modules is used within Tcl code, value to set to
a variable were previously "double quote escaped" but not enclosed by double
quotes at set time. By enclosing values with double quotes, complex values
can be managed like for instance those including whitespaces. Fix all
Tcl-relative non-regression tests in testsuite.
* modulecmd.tcl, notdone/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp: Fix perl quoting style for
variable set Import 'setenv-eschars' test in 50-cmds suite and by the way
fix quoting style for perl when setting variable. Single quotes are used to
set variable, so single quotes should be escaped rather than double quote.
2016-12-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, notdone/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/017-use-undo.exp: Call unuse instead of use on
module unload When modulefiles define 'module use' calls, 'module unuse' is
called when current mode is 'unload'. No change made to 'module unuse'
calls, 'module unuse' is also called when mode is 'unload' (same behavior as
'module unload'). On 'display' mode, 'module use' and 'module unuse' calls
are now reported (displayed). Import 'use-undo' tests in 50-cmds suite.
* notdone/modules.50-cmds/070-alias-proc.exp,
notdone/modules.50-cmds/075-alias.exp,
notdone/modules.50-cmds/076-alias-sub.exp,
notdone/modules.50-cmds/077-alias-undo.exp,
notdone/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp: testsuite: import 'alias'
tests in 50-cmds suite
2016-12-04 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* notdone/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
.../modules.50-cmds/095-uname.exp,
.../modules.50-cmds/099-uname-cleanup.exp: testsuite: import 'uname' tests
in 50-cmds suite
2016-11-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, notdone/modules.50-cmds/220-continue.exp,
notdone/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp: Fix use of 'continue' command in
modulefile This commit also add continue-specific non-regression tests in
modules.50-cmds suite.
* modulecmd.tcl, notdone/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/240-chdir.exp: Add support for 'chdir' command in
modulefile This commit also add chdir-specific non-regression tests in
modules.50-cmds suite.
* modulecmd.tcl, notdone/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/200-break.exp: Fix use of 'break' command in
modulefile This commit also add break-specific non-regression tests in
modules.50-cmds suite.
2016-11-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/averssort/.modulerc,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.91-sort/010-init_ts.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp,
testsuite/modules.91-sort/999-cleanup.exp: testsuite: improve 90-avail and
91-sort for alias/version Add tests to 90-avail and 91-sort suites to check
correct display of aliases and versions on module avail command.
2016-11-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: No display of modulepath header if no module found in it
On module avail, search and aliases commands the header for modulepath where
no module has been found (because there is no module, alias or version in
them or nothing matches current search expression) is not displayed anymore.
2016-10-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Remove call to cmdModuleAliases when asked for avail
Module aliases are now displayed along regular modulefiles when
cmdModuleAvail is processed. Thus call to cmdModuleAliases is now useless
when avail action is asked.
2016-10-26 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Display aliases set in global/user modulerc on avail Fill
a g_rcAlias array with all aliases defined from the global or user modulerc.
Then adapt listModules procedure to be able to display only the aliases
defined from the global or user modulerc (no directory lookup) when search
argument is set to "rc_alias_only". cmdModuleAvail now starts by displaying
aliases set in the global or user-specific modulerc in a dedicated
"global/user modulerc" list. By doing so all aliases defined are now
displayed on module avail output (even those defined in the global or user
modulerc).
2016-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.90-avail/050-long.exp: Include aliases as
part of listModules results Adapt listModules procedure to include to the
results returned all the module aliases defined through the analyzed
directory. By doing so a module avail or search commands automatically
return all the aliases defined in addition to regular modulefiles to get a
complete view of what is available. In module-alias procedure the full path
name of the file that declared an alias is registered in a g_sourceAlias
array. In listModules this array is looked at to distinguish the aliases
coming from the currently analyzed directory. Aliases are displayed from
the module path where they are defined. A "@" symbol is appended to the
alias name, in the same way module-version are displayed, in order to be
able to distinguish an alias from a regular modulefile. "@" has been
retained as symbol to qualify module aliases as this symbol is used by "ls"
command to qualify symbolic links. When --long display format is asked, the
target of the alias is printed after the alias name. No last modification
time is displayed as it has no meaning for a module alias.
2016-10-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix default module test based on '(default)' tag As
default tag may not be the only one tag applying to a module (other versions
may also be part of the tag list), default version tests, that were only
comparing the '(default)' string, have been adapted to correctly handle
cases where multiple tags apply to a default module. On
resolveModuleVersionOrAlias procedure, test on '(default)' string has simply
been removed since name passed to the procedure does not contain anymore
tags in any situation. On getSimplifiedLoadedModuleList procedure, call to
listModules procedure has been revised to only ask for default versions,
this way there is no need to test a '(default)' string since all results
returned are default versions.
2016-10-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.90-avail/050-long.exp: Handle
show_modtimes directly in listModules Adapt cmdModuleAvail and listModules
procedures to handle show_modtimes treatment directly within listModules
rather than in cmdModuleAvail. This way there is no need to loop over
listModules results and call getPathToModule on each of them. File location
is already known by listModules, so file modification time query is easy to
make there. As a consequence avail long output is directly managed by
listModules. This output structure has been improved to let more space to
display module tag list. Moreover when terse mode is used, tag list is no
more separated by a space from module name (same behavior as C-version).
Align list and savelist long output the improved output structure applied to
avail long output.
2016-10-12 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Make listModules show_flags even when filter set Previous
listModules code was not complying with the show_flags directives when a
filter were set like "onlydefaults" or "onlylastest". This commit improves
this by centralizing the code handling the show_flags directives.
2016-10-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Merge listModules proc flag_default_* args Simplify
management of flag_default_dir and flag_default_mf arguments of listModules
procedure by merging both args in a show_flags argument and set local value
for reporting flags of directories or modulefiles based on the value of this
show_flags argument and global variables flag_default_dir and
flag_default_mf.
* modulecmd.tcl: Remove listModules proc full_path argument Simplify
listModules procedure by removing the full_path argument that was in all
cases disabled.
2016-10-08 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Render error on display/help command Add error rendering
directive when calling display or help commands as they can hit a magic
cookie or a not found errors when processing name passed as argument.
2016-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix module-info symbols resolution Return all symbols
defined by calling the getVersAliasList procedure. This procedure has been
enhanced to first attempt an alias resolution on the name passed to it. Then
each time a version or a default is found a recursive call is made on this
new name to get all versions or default linked to the initial name.
getVersAliasList has also been enhanced to pass and get a list of already
resolved symbols for the current resolution in order to detect infinite
resolution loop. Results returned by getVersAliasList are now sorted using
the dictionnary-style sort as already performed by listModules. All these
improvements made to the getVersAliasList will benefit to the listModules
procedure so "avail" command will return more accurate versions and default
information.
2016-09-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Improve .modulerc/.version handling in getPathToModule
Adapt getPathToModule to parse .modulerc file at each level of the specified
module in order to be able to resolve any alias that may be defined within
the module directories. Means if module name "mod/sub1/sub2" is passed to
getPathToModule, the procedure will parse any .modulerc file in "mod",
"mod/sub1" and "mod/sub1/sub2" directories (if these dirs exist) then it
will attempt to resolve module name with aliases and version found. To
behave like Modules-C, if both a .modulerc and a .version file exist for the
module name passed to getPathToModule, .modulerc is parsed then .version. In
this situation a default value set from .version will win over a default
value set in .modulerc. Same kind of change has been applied to the
listModules procedure. A new argument named "search" has been added to the
listModules procedure to be able when called by getPathToModule with a
"no_depth" value to only get the content of a directory and not its sub
elements as sub-directory resolution, .modulerc and .version are handled
within getPathToModule.
2016-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix module-info version resolution Call for
resolveModuleVersionOrAlias procedure to deeply resolve name provided by
recursively looking at alias or version structures. Also improve
module-version procedure to raise a warning message in case of duplicate
version symbol is found.
2016-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fix module-info alias resolution Call for
resolveModuleVersionOrAlias procedure to deeply resolve name provided by
recursively looking at alias structures. Improvement is made here to the
resolveModuleVersionOrAlias procedure in order to be able to only look for
alias (and not alias and version) when attempting resolution. A g_aliasHash
array is introduced here to be able to reversely look at alias definition as
Modules-C does. module-alias procedure has been adapted to fill this new
structure and resolveModuleVersionOrAlias makes use of it if alias is
searched and not found in g_moduleAlias array.
2016-09-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Register alias and version by the short module name Store
aliases and versions by the short module name rather than full module path
to get closer to the Modules-C behavior on alias and version management. As
a consequence an alias defined in a module path can apply to a module stored
in another module path. But this behavior is required to make alias defined
in global modulerc functional. A getModuleNameVersion procedure is
introduced to determine with a name provided as argument the corresponding
module name, version and name/version. Module name is guessed from current
module name when shorthand version notation is used. Both name and version
are guessed from current module if name provided is empty.
2016-09-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Improve resolveModuleVersionOrAlias proc to detect loop
Adapt resolveModuleVersionOrAlias procedure to resolve only one name at a
time and pass a list of already resolved symbols for the current resolution
in order to detect infinite resolution loop. When infinite resolution loop
is detected error message is raised and returned value is set to "*undef*"
to behave like Modules C-version.
2016-09-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Remove useless alias/version resolution in module proc
Aliases and versions are solved when getPathToModule proc is called and
getPathToModule is called by all command proc that need to resolve an alias
or a version. So alias and version resolution is not required at the
beginning of the module procedure. Resolving any argument to the module
procedure as alias or version was also potentially erroneous.
2016-09-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Source $MODULERCFILE/modulerc when $MODULERCFILE is dir In
order to behave like C-version, if the $MODULERCFILE variable is set and
points to a directory, source the "modulerc" file in it instead of trying to
source the directory (which led to error).
2016-09-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* .../modules.20-locate/010-init_ts.exp,
.../modules.20-locate/020-fqual.exp, .../modules.20-locate/030-defvers.exp,
.../modules.20-locate/040-alias.exp, .../modules.20-locate/045-symvers.exp,
.../modules.20-locate/046-getsym.exp, .../modules.20-locate/047-symerrs.exp,
.../modules.20-locate/048-symexec.exp, .../modules.20-locate/050-locrc.exp,
.../modules.20-locate/055-locrcerrs.exp, .../modules.20-locate/060-rc.exp,
.../modules.20-locate/065-rcerrs.exp, .../modules.20-locate/070-homerc.exp,
.../modules.20-locate/095-cleanup.exp: testsuite: import and adapt 20-locate
tests Import the 20-locate test directory in use in Modules-C testsuite,
that was previously put aside for Modules-TCL. Adapt syntax of tests and
results to fit the output of Modules-TCL which sometimes slightly differ
from the C version. At this stage, most of the tests from this 20-locate
directory are failling as aliases and versions support in Modules-TCL is not
as complete as it is in C version. Next commits will close the gap between
the two Modules flavors.
2016-09-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.80-deep/020-load.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp: testsuite: fixing deep/020,
avail/030 and avail/040 * Fix typo error on 80-deep/020-load test
(incorrect result were expected) * Adapt 90-avail/030-multiple result syntax
not to conflict with regular expression special character like '(' * Adapt
90-avail/040-wild to use terse mode to not be dependent of local terminal
size
2016-11-11 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl, testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp: Make it so you can do module avail
un Also fixed a couple of test cases.
2016-11-03 Kent Mein <mein@cs.umn.edu>
* init/.gitignore, init/Makefile, modulecmd.tcl, testsuite/not_installed:
Added missing fish shell to init Makefile In the process saw a typo in
not_installed fixed that as well. Also updated the .gitignore file. This
bug was found by Michael Gooch.
2016-08-27 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Compare strings with 'eq' instead of '==' in
execute-modulefile '==' operator is meant for numerical comparison so it is
more correct and faster to use 'eq' operator when comparing strings.
* modulecmd.tcl, testsuite/modules.00-init/071-args.exp: Check each command
receives the correct number of arg Improve module procedure to check for
each module command that the correct number of argument are provided. If an
unexpected number of argument is provided an error is raised as when an
invalid command name is specified. This way module exit with an error code
and an error is rendered in order to be checked from the shell.
2016-08-21 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.90-avail/020-single.exp: Improve
column-mode in displayElementList Change way to compute rows*cols display
grid in order to maximize the number of column to display per line. To do so
a width is computed for each column instead of having each column width
based on the largest one. The new code takes a bit more time to proceed (as
there is more stuff to compute) but the additionnal time taken is not really
discernable from the user perspective: on a 'module avail' containing ~10
paths and ~400 modulefiles, there is less than 0.1 second extra time. As
display is now denser, two spaces are now used instead of one to separate
elements. Thanks to Aurelien Degremont for crafting the right algorithm for
this.
* modulecmd.tcl, testsuite/modules.91-sort/030-whatis.exp: Merge list
printing codes under displayElementList Set a common procedure to manage
the display of list of elements: displayElementList. Lists can be displayed
in a column fashion or with only one element per line. Elements displayed
may be prefixed by their number. Also a header can be printed on top of the
list. Adapt cmdModuleList, cmdModuleSavelist, cmdModuleSearch,
cmdModuleAvail and cmdModuleAliases to use this new procedure. With a
single set of code to manage this aspect it will be easier to improve it and
all commands calling it will automatically benefit from these improvements.
2016-08-20 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.00-init/015-version.exp,
testsuite/modules.00-init/090-switches.exp: Put all command-line parsing
under catch protection Make command-line option parsing benefit from the
catch (+reportError +exit 1) applied to command parsing and running. This
way it produces same kind of error behavior when an invalid option is typed
as when an invalid command is typed. Also put shell name parsing first in
order to be able to renderError appropriately when an invalid option is
typed. Elsewhere the puts of /bin/false on stdout was not made as no shell
were set. An invalid option containing only one '-' as first character will
now also produces an error. Before that only invalid options starting with
'--' were treated as error. Improve testsuite on option treatment. Test
long and short versions of these options and test the returned output.
2016-08-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.00-init/070-command.exp,
testsuite/modules.00-init/090-switches.exp: Merge main command handling in
module proc Make module command handling appear in a single location, the
module procedure, rather than having a duplication of code in the main
section. This modification simplifies the addition of new commands or the
adaptation of existing commands as everything has to be done only once. Now
calling module from a modulefile or a modulerc benefits from the same
command shortcuts than when it is called from the command line. Moreover do
not print anymore the module usage message when an invalid command is typed,
as this large message often hide the error printed on the first line. An
advice to type "module --help" is printed instead.
* modulecmd.tcl: Simplify parsing of command switch arguments
* modulecmd.tcl: Harmonize usage of exit when error occurs When error
occurs and exit is called, always quit with the same error code: 1. Add a
call to "exit 1" when error is caught in main section when processing module
command. Remove use of exit in cmdModuleInit procedure, replaced by call to
reportErrorAndExit, which will be caught at top level and go through the
"exit 1" added above. End main section with an "exit 0" to explicit
everything went well.
* modulecmd.tcl: Harmonize reportErrorAndExit messages As done for the
other report* procedures, here we harmonize some reportErrorAndExit messages
to something simpler and clearer. There is no need to make
reportErrorAndExit call to reportError instead of using "error" build-in
proc since error proc raise a message which is caught and output by
reportError in the end.
2016-08-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Standardize reportInternalBug procedure Adapt
reportInternalBug procedure to make it call "report" rather than
re-implementing a "puts stderr" procedure. This way all messages printed to
stderr pass through the "report" procedure. Take also this opportunity to
standardize some messages to something simpler and clearer.
* modulecmd.tcl, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp: Standardize reportError procedure
Add an "ERROR: " prefix to all messages put through reportError to make
these error messages look similar. Take also this opportunity to
standardize all error messages to this new single prefix, moving away from
the inherited "+(0):ERROR:0: " prefix to something simpler and clearer.
* modulecmd.tcl: Standardize reportWarning procedure Adapt reportWarning
procedure to make it call "report" rather than re-implementing a "puts
stderr" procedure. Also add a "WARNING: " prefix to all messages put through
reportWarning to make this procedure different from the report procedure.
Take also this opportunity to standardize some warning messages and to
change some 'reportError "WARNING' calls into reportWarning calls where it
was not necessary to raise the error counter (as it is warnings not errors).
* modulecmd.tcl: Remove setup of global variables not accessed in procs
* modulecmd.tcl: Add short option -d for --delim on prepend-path
2016-08-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.00-init/030-shells.exp: Introduce
getModulePathList proc Defines a getModulePathList procedure that returns a
list of the module paths by parsing the MODULEPATH environment variable.
This new procedure enables to gather in a single location the code to parse
MODULEPATH, thus it removes the need for many procedures to know about "env"
and "g_def_separator" global variables. getModulePathList procedure also
enables with its "behavior" parameter to directly exit on error when
MODULEPATH is not set. By default, it returns an empty list. The
"exiterronundef" behavior allows to closely match previous behavior, when
$env(MODULEPATH) were accessed without being defined.
* modulecmd.tcl: Introduce getLoadedModuleList proc Defines a
getLoadedModuleList procedure that returns a list of the loaded modules by
parsing the LOADEDMODULES environment variable. This new procedure enables
to gather in a single location the code to parse LOADEDMODULES, thus it
removes the need for many procedures to know about "env" and
"g_def_separator" global variables.
* modulecmd.tcl: Remove separator optional parameter where useless An
optional parameter named "separator" was specified on many procedures but
calls to these procedures never set this parameter. This commit removes
these unused "separator" parameters to improve code clarity and it will help
to provide in further commits generic procedures to access environment
state.
2016-08-16 Romain Fihue <romain.fihue@cea.fr>
* modulecmd.tcl, testsuite/home/.module/{coll4 => coll4.target},
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: Introduce collection target
concept Collection directory may sometimes be shared on multiple machines
which may use different modules setup. For instance modules users may access
with the same HOME directory multiple systems using different OS versions.
When it happens a collection made on machine 1 may be erroneous on machine
2. To handle this use case, we introduce here the concept of target for
module collections. By setting the MODULES_COLLECTION_TARGET environment
variable to something that can make a distinction between machines that are
incompatible with each other, only collections matching this target will be
valid on it. When a target is set, only the collections made for that
target will be available to restore, list, show, rm, and saving will
register the target footprint (collection filename will be suffixed with
".$env(MODULES_COLLECTION_TARGET)". Collection target is not involved when
collection is specified as file path on show, restore and save commands.
For example, the MODULES_COLLECTION_TARGET variable may be set with results
from commands like lsb_release, hostname, dnsdomainname, etc.
2016-08-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion, init/tcsh_completion, modulecmd.tcl,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/060-saveshow.exp,
testsuite/modules.61-coll/999-cleanup.exp: Introduce saveshow command Gives
the ability to display the content of a given collection. 61-coll testsuite
is adapted to test this new command.
2016-08-10 Romain Fihue <romain.fihue@cea.fr>
* modulecmd.tcl, testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/050-saverm.exp,
testsuite/modules.61-coll/999-cleanup.exp: Save and restore collection
specified as file path Until now, it was only possible to save and restore
a collection located in default collection directory (under $HOME/.module).
With this commit, a file path can be specified to the save and restore
commands. On the contrary, saverm command has been enforced to use a name
to target the collection to remove in order to avoid this command to be able
to delete any file. 61-coll testsuite is adapted to test this new use case.
2016-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion, init/tcsh_completion, modulecmd.tcl,
testsuite/modules.61-coll/050-saverm.exp: Introduce saverm command Gives
the ability to remove a given collection (it deletes corresponding file)
61-coll testsuite is adapted to test this new command.
2016-08-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Refactor collection code a little bit Introduce a
getCollectionFilename procedure to query collection filename and simplify
error management code in cmdModuleSave and cmdModuleRestore to improve code
readability. Also set separate procedures to generate the content of a
collection (formatCollectionContent procedure) and to read a collection file
(readCollectionContent procedure) in order to prepare further enhancements
on module collections.
2016-08-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Make use of lassign build-in proc lassign build-in
procedure has been introduced in Tcl8.5 and provides an easier way to manage
list results like those returned by getPathToModule and
getMovementBetweenList. For compatibility with Tcl8.4 and earlier, a
lassign procedure is provided here (set if not defined). See [1] for an
overview of lassign implementations and performances. [1]
http://wiki.tcl.tk/1530
2016-08-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/home/.module/coll2: Restore collection with
multiple mods specified on single line Sometimes people manually edit their
collection and may be tempted to specify multiple modules to load or
multiple paths to use on a single line, for instance: module use --append
path1 path2 module load mod1 mod2 mod3 This commit makes this use case
possible by splitting content read from collection file. 61-coll testsuite
has been adapted to test this use case (collection "coll2" has been changed
to use this kind of syntax).
2016-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/home/.module/coll4,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: Fix restore when there is no
module to load in collection Some uninitialized variable was causing issue
when trying to restore a collection not defining any module to load.
modules.61-coll testsuite has been adapted accordingly by introducing a
"coll4" collection that only set paths to use, no module to load. Thanks to
Nicolas Wiart for pointing this out.
2016-08-07 Aurelien Cedeyn <aurelien.cedeyn@cea.fr>
* modulecmd.tcl, testsuite/home/.module/coll3,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: Fix restore when collection fully
rewind module paths When restoring a collection which requires to unuse all
currently set module paths before adding new ones, it previously raised
error trying to access the empty env(MODULEPATH) variable. Fix that and
work-around getSimplifiedLoadedModuleList procedure with helper list
provided as argument to be able to compute simplified version of loaded
modules even if there is no MODULEPATH set to look at all existing versions
for a module. modules.61-coll testsuite has been adapted accordingly by
introducing a "coll3" collection that requires to unuse all previously
loaded paths when restoring.
2016-08-07 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/home/.module/coll1, testsuite/home/.module/coll2,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: Correctly restore multiple paths
with order preservation cmdModuleUse prepends paths by default so
cmdModuleRestore command was previously prepending new paths instead of
appending them. To guaranty path order cmdModuleRestore now calls
cmdModuleUse with --append flag by default. To keep the ability to directly
source a collection file from a shell, now cmdModuleSave adds --append flag
to the 'module use' lines it records. cmdModuleRestore treats this flag if
present, but adds --append if no flag found to keep compatibility with
previously generated collections. modules.61-coll testsuite is adapted
accordingly to test collections containing more than one module path and to
test previous and new style of 'module use' recorded lines.
2016-08-06 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modules.61-coll/030-save.exp: Raise error if try
to save an empty environment
* testsuite/home/.module/coll1, testsuite/home/.module/coll2,
testsuite/home/.module/default, testsuite/modulefiles/coll/a,
testsuite/modulefiles/coll/b, testsuite/modulefiles/coll/c,
testsuite/modulefiles/coll/d, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.61-coll/010-init_ts.exp,
testsuite/modules.61-coll/020-savelist.exp,
testsuite/modules.61-coll/030-save.exp,
testsuite/modules.61-coll/040-restore.exp,
testsuite/modules.61-coll/999-cleanup.exp: testsuite: add tests for
collection management Introduce modules.61-coll testsuite to guaranty that
savelist, save and restore commands behave appropriately. Add
testoutfile_cmd procedure to 00-init/006-procs to get the ability to check
module command output and specified file content. This new procedure enables
to check content of collection generated by a 'save' command.
2016-07-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp,
testsuite/modules.50-cmds/250-x-resource.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: testsuite: add tests for fish
shell
* init/fish.in, modulecmd.tcl: Support for fish shell
2016-07-28 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: testsuite: add tests for
tcl/python/lisp where perl is tested
2016-07-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* notdone/modules.50-cmds/086-info-shells.exp,
notdone/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modulefiles/info/shellsexp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
.../modules.50-cmds/121-prereq-module.exp: testsuite: adapt
50-cmds/info-shells and 50-cmds/121-prereq tests
* testsuite/modulefiles/info/type, testsuite/modulefiles/load/.version,
testsuite/modulefiles/load/00, testsuite/modulefiles/load/10,
testsuite/modulefiles/load/11, testsuite/modulefiles/load/12,
testsuite/modulefiles/load/13, testsuite/modulefiles/load/14,
testsuite/modulefiles/load/15, testsuite/modulefiles/load/16,
testsuite/modulefiles/load/17, testsuite/modulefiles/load/18,
testsuite/modulefiles/load/19, testsuite/modulefiles/load/20,
testsuite/modulefiles/load/21, testsuite/modulefiles/load/22,
testsuite/modulefiles/load/23, testsuite/modulefiles/load/24,
testsuite/modulefiles/load/25, testsuite/modulefiles/load/26,
testsuite/modulefiles/load/27, testsuite/modulefiles/load/28,
testsuite/modulefiles/load/29, testsuite/modulefiles/load/30,
testsuite/modulefiles/load/all, testsuite/modulefiles/recurs/modA,
testsuite/modulefiles/recurs/modB, testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.50-cmds/089-info-type.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/197-load-lots.exp: testsuite: import tests
recently added to C-version
* modulecmd.tcl: Add short option -d for --delim on append-path/remove-path
2016-07-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/home/.Xresources, testsuite/modulefiles/x-resource/1,
testsuite/modules.50-cmds/250-x-resource.exp: testsuite: add tests and
relative configs for x-resource Add 250-x-resource tests in 50-cmds serie
to check x-resource commands in modulefile are correctly interpreted at load
and unload times for the various shells. A x-resource/1 modulefile and a
.Xresources config files are added to test various setting conditions
(single resource string, complex string content, resource file to load).
* modulecmd.tcl: Implement unload of x-resources and fix load Implement
unload action of x-resources defined for all shells. Unload of x-resources
is done by clearing string resource values with "xrdb -merge" since there is
no xrdb command that can clear one property (xrdb -remove clears
everything). For resources loaded from file, file content is parsed with
"xrdb -load" and each property it defines is also cleared. This commit also
corrects the way x-resource value is parsed. Sometimes x-resource value may
be provided within resource name as the "x-resource {Ileaf.popup.saveUnder:
True}" example provided in manpage. So if no value is provided, resource
name is looked at to check if a value is provided within string (space or
colon are looked at). Load of x-resources is also fixed by this commit for
sh, csh and tcl to handle resource name and value containing wildcard
characters and fixed for sh and csh to output well-behaving code to execute
("echo | xrdb -merge" instead of "xrdb -merge <<EOF")
2016-07-22 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/python.in, modulecmd.tcl: Fix Python autoinit, error and x-resource
rendering Python code used to define the module command (autoinit action)
was broken (syntax errors) and not Python3-compatible. Error rendering is
also fixed here for Python3 compliance. Code used to process x-resource is
adapted to comply with Python recommendation [1] (subprocess.Popen should be
used instead of os.popen). Python init script is also modified by this
commit to use same code as the one generated by autoinit action with call to
subprocess.Popen rather than os.popen. [1]
https://docs.python.org/2/library/os.html#os.popen
2016-07-18 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Replace reverseList proc by lreverse build-in proc
lreverse build-in procedure has been introduced in Tcl8.5 and provides best
performances. For compatibility with Tcl8.4 and earlier, a lreverse
procedure is provided here (set if not defined). See [1] for an overview of
lreverse implementations and performances. [1] http://wiki.tcl.tk/17188
* modulecmd.tcl: Fix dollar sign usage on XRDBPIPE variable
* .gitignore: Ignore runtest result files in git repository
2016-07-17 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Use 'eq'/'ne' in place of '=='/'!=' to compare strings
'==' and '!=' operators are meant for numerical comparison so it is more
correct and faster to use 'eq' or 'ne' operators when comparing strings.
This was found using the 'ttclcheck' utility [1] over the modulecmd.tcl
complete code. [1] http://www.xdobry.de/ttclcheck
2016-07-15 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Remove code regarding undefined g_aliasHash array Some
code where present in module-alias proc regarding a g_aliasHash global
array. But this array variable is not defined nor used anywhere else in
script.
* modulecmd.tcl: Remove unused spaceEscaped proc
2016-07-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Introduce reportDebug proc Add a reportDebug procedure to
simplify and harmonize debug report management. With this new procedure, the
way to test if debug is enabled or not is found only in one place (and
g_debug variable does not have to be known in every procedures).
* testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.95-version/040-xgetenv.exp: testsuite: comment
cmds/140-system and version/040-xgetenv Skip both cmds/140-system and
version/040-xgetenv tests since pure-Tcl version of module does not behave
like C version for "system" procedure and "live" resolution of variables set
within paths.
2016-07-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Add hints for vim to correctly set tabs when developping
* Makefile, testsuite/config/unix.exp: testsuite: fix MODULECMD
initialization Update way MODULECMD is defined to let a chance for
modulecmd.tcl to be found before looking at PATH for modulecmd binary. This
way on systems where modulecmd is installed in default paths, tests can
still be run on modulecmd.tcl. Remove MODULECMD env variable setup in
Makefile for "make test" since environment variables are not looked at to
initialize MODULECMD tcl variable when tests are configured.
2016-01-30 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl, testsuite/modulefiles/verssort/1,
testsuite/modulefiles/verssort/1.10, testsuite/modulefiles/verssort/1.2.1,
testsuite/modulefiles/verssort/1.2.4,
testsuite/modulefiles/verssort/1.8-2015-12-01,
testsuite/modulefiles/verssort/1.8-2016-02-01,
testsuite/modules.91-sort/010-init_ts.exp,
testsuite/modules.91-sort/020-avail.exp,
testsuite/modules.91-sort/030-whatis.exp,
testsuite/modules.91-sort/040-load.exp,
testsuite/modules.91-sort/999-cleanup.exp: Always dictionary-sort list of
modules or collections Dictionary sort of Tcl enables to determine that a
version 1.10 is greater that a version 1.8, for instance. This useful kind
of sort was in use in modules-tcl previously but not for every sort. For
instance load command was correctly able to find the greatest version of a
module whereas avail and whatis commands did not sort existing versions
accordingly. This patch applies the dictionary sort everywhere to ensure
the exact same sort is applied everywhere. Dictionary sort appears to be the
most appropriate kind of sort to work with software versions. So the
sort_order argument of listModules procedure is removed to always get the
same sort applied. Also a stringDictionaryCompare procedure is added in
order to compare two strings with dictionary-sort (useful to know what
string is greater than the other). In addition, modules.91-sort testsuite
is introduced to guaranty that avail, whatis and load commands behave
appropriately regarding sort.
2016-02-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* testsuite/modules.00-init/030-shells.exp,
testsuite/modules.50-cmds/040-append.exp: testsuite: fixing init/030-shells
and cmds/040-append * Adapt error message when MODULEPATH is empty (message
differ on this module implementation) on 00-init/030-shells testsuite *
Adapt 50-cmds/040-append testsuite since adding a bare colon to a path does
not produce a path change on this module implementation
2015-04-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion: Fixing bash completion to be posix compliant Bash
Process Substitution is not known by posix sh so _module_not_yet_loaded
function has been adapted to behave correctly when bash is launched in
--posix mode.
2016-03-25 Kent Mein <mein@cs.umn.edu>
* init/python.in: Make things work with python3.
2016-02-05 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Remove unneeded code that was causing an issue. Thanks to
Andy Barber for pointing this out.
2014-12-24 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Small tweak for OSX. Uname is in a different location.
* Makefile, doc/html/module.html, doc/html/modulefile.html,
doc/man/man1/module.1, doc/man/man4/modulefile.4, doc/source/module.pl,
doc/source/modulefile.pl: More doc work.
2014-11-12 Kent Mein <mein@cs.umn.edu>
* doc/html/module.html, doc/html/modulefile.html, doc/man/man1/module.1,
doc/man/man4/modulefile.4, doc/source/module.pl, doc/source/modulefile.pl:
Fix some warnings in the documentation from podchecker.
2014-07-16 Kent Mein <mein@cs.umn.edu>
* doc/html/module.html, doc/man/man1/module.1, doc/source/module.pl: Some
work on documentation.
* init/sh.in: Fix the check for interactive vs non interactive mode for some
shells.
2014-06-05 Kent Mein <mein@cs.umn.edu>
* doc/LICENSE.LGPL, doc/readme.txt: I talked to R.K. Owen and he cleared up
why we had the LGPL there. It turns out specific files in the C version of
modules are under the LGPL, since those files are not in the tcl only
version of modules I'm removing the LGPL just to clean things up. Kent
2014-06-03 Kent Mein <mein@cs.umn.edu>
* Makefile, doc/html/module.html, doc/html/modulefile.html,
doc/man/man1/module.1, doc/man/man4/modulefile.4, doc/readme.txt,
doc/source/module.pl, doc/source/modulefile.pl, man/man1/module.1,
man/man4/modulefile.4: Create source docs for man pages. This is still a
work in progress, but I've converted the current man pages over to pod (perl
documentation format) The idea being that it's easier to edit and can be
converted to various formats. The manpages are very out of date, but this
at least will encourage me to keep them upto date and make it much easier to
work with.
2014-05-21 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Rename some vars used for a named pipe This affects both
tcl and perl, and picks a more standard name between the two.
* testsuite/modules.00-init/090-switches.exp: Update the test for the --help
option since things have changed.
2014-05-20 Kent Mein <mein@cs.umn.edu>
* init/.gitignore, init/Makefile, init/tcl.in, modulecmd.tcl: Patch from
Yao-Ting Chiu This adds the tcl shell as an option.
2014-05-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Clarify prereq error message when multiple modules are
specified
2014-04-25 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Managing settings to save as a stack with push/pop
procedures Manage settings to save as a stack to have a separate set of
settings for each module loaded or unloaded in order to be able to restore
the correct set in case of failure.
2014-04-24 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fixing restoreSettings to clear current arrays Clear
current arrays before restoring saved values to remove potential new
variables set before the issue occurs which lead to restoreSettings
procedure call.
2014-03-14 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Improving save/restore command when saving module default
version Save the modulename minus the module version if loaded version to
save is module default version.
2014-03-13 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Fixing saveSettings to clear pre-existing saved arrays
Clear pre-existing saved arrays in saveSettings to guaranty that multiple
load/unload sequence will restore correct settings when a failure occurs.
2014-03-11 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: Improving restore command behavior Move from a
Purge+Unuse+Source approach to a smoother way with Unload+Unuse+Use+Load of
just the modules and modulepaths needed to migrate from currently loaded
environment to collection with preservation of the load order.
* modulecmd.tcl: Reorganizing help page with groups of command and short
descriptions
2014-03-07 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Updating the version # wasn't done in the last commit.
2014-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* init/bash_completion, init/tcsh_completion, modulecmd.tcl: Introduction of
save/restore/savelist commands for collection management Add module
collection management to enable dump and reload of multiple module
environment states.
2014-02-14 Kent Mein <mein@cs.umn.edu>
* contrib/pre-commit, modulecmd.tcl: Added a hook script to automatically
bump the version # Of modules to the next commit # so that next time we
commit changes it will be updated. This is a little bit tricky because of
the way pre-commit's work. (It's making the change for the next commit not
the current one).
2014-02-12 Kent Mein <mein@cs.umn.edu>
* contrib/modulefiles/HOME, contrib/modulefiles/dot,
contrib/modulefiles/module-info, contrib/modulefiles/null,
init/modulerc.examp: Added in a couple of the default modules I removed
before. Also modified the comments in the example modulerc file a little.
* doc/install.txt, doc/installwin.txt, init/Makefile, init/modulerc.examp,
modulefiles/.gitignore, modulefiles/HOME, modulefiles/dot,
modulefiles/module-cvs, modulefiles/module-info, modulefiles/modules,
modulefiles/notavail, modulefiles/null, modulefiles/use.own,
modulefiles/version: Change make so it does not create a default modulerc
And update the documentation so things flow a little better.
2014-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: modify list command show_modtimes behavior to match
behavior of avail command same specific header and module reporting format.
gives show_modtimes more priority over show_oneperline.
2014-01-23 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: fix help usage message to correctly align switches
2014-02-09 Xavier Delaruelle <xavier.delaruelle@cea.fr>
* modulecmd.tcl: fix show_modtimes to correctly display day number
2014-01-16 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Small patch by Trey Greer Fixes it so LOADEDMODULES env
var is initalized correctly when it's set to "".
* modulecmd.tcl: Fixed a typo. I introduced a typo in the last commit this
fixes it.
* modulecmd.tcl: Fix up the formating a little.
* init/bash_completion: Another patch from Xavier Delaruelle, Tweak to the
bash completion so it works around some extra spacing.
* init/csh.in, init/tcsh.in, init/tcsh_completion: Another patch by Xavier
Delaruelle, This one reworks the patch from Joshua Randall to define tcsh
completion for the c version so it works with this one.
* init/bash_completion, modulecmd.tcl: More patches from Xavier Delaruelle,
Added -D option (short form of --debug) Added -d or --default to only show
default modules when doing module avail Added -L or --latest to only show
latest version of modules when doing avail
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: Patch from Xavier
Delaruelle, Now only redirect module from stderr to stdout in interactive
mode to avoid breaking non interactive sessions (scp, sftp, etc).
* init/bash_completion, modulecmd.tcl: 3 patches from Xavier Delaruelle Add
--long and --terse options to help. Fix ModulesDisplay so it works. Fix
ModulesAlias function so it works as well.
2013-11-06 Kent Mein <mein@cs.umn.edu>
* contrib/readme.txt, doc/{install => install.txt}, doc/installwin.txt,
readme.txt: Updated the documentation a bit.
2013-11-04 Kent Mein <mein@cs.umn.edu>
* init/bash.in, init/ksh.in, init/sh.in, init/zsh.in: Added redirect stderr
to stdout for shells that support it.
* init/tcsh.in: Fix a site specific bit that snuck in awhile back. This
shouldn't have been here, now it is fixed though.
* init/bash.in: source the bash_completion script by default. This is for
the tcl native version of modules and it just starts using the
bash_completion script that has been supplied so that it's actually used.
2013-10-19 Kent Mein <mein@cs.umn.edu>
* doc/example.txt: Some small tweaks to example setup documentation.
2013-08-01 Kent Mein <mein@cs.umn.edu>
* testsuite/modules.50-cmds/040-append.exp: Fix one of the tests.
* modulecmd.tcl: Simplify the csh autoinit code. If this is a problem we
can add it back in but I'm guessing no one will even notice.
2013-06-06 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: A few patches from Xavier Delaruel to adjust exit codes
when an error appears.
2013-03-25 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Introduce MODULECONTACT var, Patch from Xavier Delaruelle
So you can set the contact info with an environement variable instead of
altering the modulecmd.tcl file directly.
2013-03-21 Kent Mein <mein@cs.umn.edu>
* modulecmd.tcl: Clean up some dead code and a little reformating.
* init/bash_completion: Patch by Xavier Delaruelle to add bash completion.
You need to source the file in addition to the init/bash file to get it to
work.
* modulecmd.tcl: Fixing module help. Thanks to Xavier Delaruelle for the
fix.
2013-03-13 Kent Mein <mein@cs.umn.edu>
* notdone/modules.20-locate/010-init_ts.exp,
notdone/modules.20-locate/020-fqual.exp,
notdone/modules.20-locate/030-defvers.exp,
notdone/modules.20-locate/040-alias.exp,
notdone/modules.20-locate/045-symvers.exp,
notdone/modules.20-locate/046-getsym.exp,
notdone/modules.20-locate/047-symerrs.exp,
notdone/modules.20-locate/048-symexec.exp,
notdone/modules.20-locate/050-locrc.exp,
notdone/modules.20-locate/055-locrcerrs.exp,
notdone/modules.20-locate/060-rc.exp,
notdone/modules.20-locate/065-rcerrs.exp,
notdone/modules.20-locate/070-homerc.exp,
notdone/modules.20-locate/095-cleanup.exp,
notdone/modules.50-cmds/017-use-undo.exp,
notdone/modules.50-cmds/022-setenv-eschars.exp,
notdone/modules.50-cmds/025-setenv-undo.exp,
notdone/modules.50-cmds/035-unsetenv-undo.exp,
notdone/modules.50-cmds/036-unsetenv-x.exp,
notdone/modules.50-cmds/042-append-delim.exp,
notdone/modules.50-cmds/045-append-undo.exp,
notdone/modules.50-cmds/047-app-del-undo.exp,
notdone/modules.50-cmds/050-prepend.exp,
notdone/modules.50-cmds/052-prepend-delim.exp,
notdone/modules.50-cmds/055-prepend-undo.exp,
notdone/modules.50-cmds/057-pre-del-undo.exp,
notdone/modules.50-cmds/060-remove.exp,
notdone/modules.50-cmds/065-remove-undo.exp,
notdone/modules.50-cmds/070-alias-proc.exp,
notdone/modules.50-cmds/075-alias.exp,
notdone/modules.50-cmds/076-alias-sub.exp,
notdone/modules.50-cmds/077-alias-undo.exp,
notdone/modules.50-cmds/078-refresh.exp,
notdone/modules.50-cmds/080-info-name.exp,
notdone/modules.50-cmds/081-info-user.exp,
notdone/modules.50-cmds/082-info-user-exp.exp,
notdone/modules.50-cmds/083-info-mode.exp,
notdone/modules.50-cmds/084-info-mode-exp.exp,
notdone/modules.50-cmds/085-info-flags.exp,
notdone/modules.50-cmds/086-info-shells.exp,
notdone/modules.50-cmds/087-info-shells-exp.exp,
notdone/modules.50-cmds/088-info-isloaded.exp,
notdone/modules.50-cmds/090-uname-proc.exp,
notdone/modules.50-cmds/095-uname.exp,
notdone/modules.50-cmds/099-uname-cleanup.exp,
notdone/modules.50-cmds/100-loglevel.exp,
notdone/modules.50-cmds/101-badfac.exp,
notdone/modules.50-cmds/110-verbose.exp,
notdone/modules.50-cmds/115-verbose-msg.exp,
notdone/modules.50-cmds/120-prereq-full.exp,
notdone/modules.50-cmds/121-prereq-module.exp,
notdone/modules.50-cmds/130-conflict-full.exp,
notdone/modules.50-cmds/131-conflict-module.exp,
notdone/modules.50-cmds/140-system.exp,
notdone/modules.50-cmds/150-module.exp,
notdone/modules.50-cmds/170-swap.exp, notdone/modules.50-cmds/175-swap2.exp,
notdone/modules.50-cmds/190-load.exp, notdone/modules.50-cmds/200-break.exp,
notdone/modules.50-cmds/210-exit.exp,
notdone/modules.50-cmds/220-continue.exp,
notdone/modules.50-cmds/230-loop.exp, notdone/modules.50-cmds/240-chdir.exp:
Added a bunch of test cases that are not put in yet that probably should be.
* contrib/scripts/createmodule.sh: Add a contributed script to help creating
inital modules.
2013-03-04 Kent Mein <mein@cs.umn.edu>
* init/.gitignore: Add modulerc to .gitignore.
* init/modulerc: Remove the modulerc file because it's built by make and its
location dependant.
* doc/example.txt: More work on the example document.
* modulecmd.tcl: Added module-info type so it returns "Tcl"
* modulecmd.tcl: Fix a small problem pointed out by Sergiy Khan Bug #49 in
the tracker.
* doc/example.txt, readme.txt: Small tweaks to the readme and added the
example document.
* contrib/modulefiles/compilers/.version,
contrib/modulefiles/compilers/compilers, contrib/modulefiles/dot,
contrib/modulefiles/gnu, contrib/modulefiles/java/.version,
contrib/modulefiles/java/6/.version, contrib/modulefiles/java/6/35,
contrib/modulefiles/java/6/38, contrib/modulefiles/java/7/.version,
contrib/modulefiles/java/7/07, contrib/modulefiles/java/7/11,
contrib/modulefiles/local, contrib/modulefiles/math/mathematica/.version,
contrib/modulefiles/math/mathematica/7.0.1,
contrib/modulefiles/math/mathematica/8.0.1, contrib/modulefiles/null,
contrib/modulefiles/openwin, contrib/modulefiles/perl/.version,
contrib/modulefiles/perl/5.14.1, contrib/modulefiles/perl/5.8.7,
contrib/modulefiles/scheme/.version,
contrib/modulefiles/scheme/drscheme/.version,
contrib/modulefiles/scheme/drscheme/410,
contrib/modulefiles/scheme/drscheme/425, contrib/modulefiles/scheme/mit,
contrib/modulefiles/scheme/racket/.version,
contrib/modulefiles/scheme/racket/5.0.2,
contrib/modulefiles/scheme/racket/5.1.1,
contrib/modulefiles/soft/gcc/.version, contrib/modulefiles/soft/gcc/4.5.2,
contrib/modulefiles/soft/gcc/4.7.2, contrib/modulefiles/system,
contrib/modulefiles/user, contrib/scripts/resetenv,
contrib/scripts/resetgnome, contrib/template/.aliases,
contrib/template/.bash_profile, contrib/template/.bashrc,
contrib/template/.cshrc, contrib/template/.fvwm2rc,
contrib/template/.gconf/apps/%gconf.xml,
contrib/template/.gconf/apps/evolution/%gconf.xml,
.../.gconf/apps/evolution/calendar/%gconf.xml,
.../apps/evolution/calendar/notify/%gconf.xml,
.../template/.gconf/apps/gconf-editor/%gconf.xml,
contrib/template/.gconf/apps/gedit-2/%gconf.xml,
.../.gconf/apps/gedit-2/plugins/%gconf.xml,
.../apps/gedit-2/plugins/filebrowser/%gconf.xml,
.../gedit-2/plugins/filebrowser/on_load/%gconf.xml,
.../.gconf/apps/gedit-2/preferences/%gconf.xml,
.../.gconf/apps/gedit-2/preferences/ui/%gconf.xml,
.../gedit-2/preferences/ui/statusbar/%gconf.xml,
.../.gconf/apps/gnome-power-manager/%gconf.xml,
.../apps/gnome-power-manager/buttons/%gconf.xml,
.../.gconf/apps/gnome-screensaver/%gconf.xml,
.../template/.gconf/apps/gnome-settings/%gconf.xml,
.../apps/gnome-settings/gnome-panel/%gconf.xml,
.../template/.gconf/apps/gnome-terminal/%gconf.xml,
.../.gconf/apps/gnome-terminal/profiles/%gconf.xml,
.../gnome-terminal/profiles/Default/%gconf.xml,
.../.gconf/apps/nautilus-open-terminal/%gconf.xml,
contrib/template/.gconf/apps/panel/%gconf.xml,
.../template/.gconf/apps/panel/applets/%gconf.xml,
.../apps/panel/applets/clock_screen0/%gconf.xml,
.../panel/applets/clock_screen0/prefs/%gconf.xml,
.../applets/indicator_applet_screen0/%gconf.xml,
.../apps/panel/applets/mixer_screen0/%gconf.xml,
.../applets/notification_area_screen0/%gconf.xml,
.../applets/show_desktop_button_screen0/%gconf.xml,
.../panel/applets/trashapplet_screen0/%gconf.xml,
.../panel/applets/window_list_screen0/%gconf.xml,
.../applets/window_list_screen0/prefs/%gconf.xml,
.../applets/workspace_switcher_screen0/%gconf.xml,
.../workspace_switcher_screen0/prefs/%gconf.xml,
.../template/.gconf/apps/panel/general/%gconf.xml,
.../template/.gconf/apps/panel/objects/%gconf.xml,
.../objects/browser_launcher_screen0/%gconf.xml,
.../objects/clock_separator_screen0/%gconf.xml,
.../apps/panel/objects/menu_bar_screen0/%gconf.xml,
.../.gconf/apps/panel/objects/object_0/%gconf.xml,
.../.gconf/apps/panel/objects/object_1/%gconf.xml,
.../.gconf/apps/panel/objects/object_2/%gconf.xml,
.../panel/objects/yelp_launcher_screen0/%gconf.xml,
.../.gconf/apps/panel/toplevels/%gconf.xml,
.../toplevels/bottom_panel_screen0/%gconf.xml,
.../bottom_panel_screen0/background/%gconf.xml,
.../panel/toplevels/top_panel_screen0/%gconf.xml,
.../top_panel_screen0/background/%gconf.xml,
contrib/template/.gconf/desktop/%gconf.xml,
contrib/template/.gconf/desktop/gnome/%gconf.xml,
.../.gconf/desktop/gnome/accessibility/%gconf.xml,
.../gnome/accessibility/keyboard/%gconf.xml,
.../.gconf/desktop/gnome/applications/%gconf.xml,
.../gnome/applications/window_manager/%gconf.xml,
.../.gconf/desktop/gnome/lockdown/%gconf.xml, contrib/template/.login,
contrib/template/.logout, contrib/template/.mailcap,
contrib/template/.mime.types, contrib/template/.vim/colors/herald.vim,
contrib/template/.vim/colors/moria.vim,
contrib/template/.vim/colors/xoria256.vim,
contrib/template/.vim/perl-support.zip,
.../template/.vim/perlsupport/README.perlsupport,
.../.vim/perlsupport/autoload/perlsupportgui.vim,
.../perlsupport/autoload/perlsupportprofiling.vim,
.../.vim/perlsupport/autoload/perlsupportregex.vim,
.../template/.vim/perlsupport/doc/perlsupport.txt,
.../template/.vim/perlsupport/ftplugin/perl.vim,
.../codesnippets/SmallProf-variables.pl,
.../perl-support/codesnippets/dot.SmallProf,
.../codesnippets/free-software-comment,
.../perl-support/codesnippets/module-interface.pl,
.../perlsupport/perl-support/codesnippets/new.pl,
.../codesnippets/pod-template-application.pl,
.../codesnippets/pod-template-module.pl,
.../print-data-structure-with-Dumper.pl,
.../perl-support/codesnippets/print-hash-sorted.pl,
.../perl-support/codesnippets/print-hash.pl,
...process-all-files-in-a-directory-recursively.pl,
.../perl-support/codesnippets/slurp-file.pl,
.../.vim/perlsupport/perl-support/doc/ChangeLog,
.../perlsupport/perl-support/doc/perl-hot-keys.pdf,
.../perlsupport/perl-support/doc/perl-hot-keys.tex,
.../.vim/perlsupport/perl-support/doc/pmdesc3.text,
.../perl-support/modules/perl-modules.list,
.../perl-support/rc/customization.ctags,
.../perl-support/rc/customization.gvimrc,
.../perl-support/rc/customization.perltidyrc,
.../perl-support/rc/customization.smallprof,
.../perl-support/rc/customization.vimrc,
.../perlsupport/perl-support/scripts/csv2err.pl,
.../perlsupport/perl-support/scripts/efm_perl.pl,
.../perlsupport/perl-support/scripts/pmdesc3.pl,
.../perlsupport/perl-support/scripts/wrapper.sh,
.../perlsupport/perl-support/templates/Templates,
.../perl-support/templates/comments.template,
.../perl-support/templates/idioms.template,
.../perl-support/templates/pod.template,
.../perl-support/templates/statements.template,
.../perlsupport/perl-support/wordlists/perl.list,
.../.vim/perlsupport/plugin/perl-support.vim,
contrib/template/.vim/plugin/matrix.vim,
contrib/template/.vim/syntax/fluxkeys.vim,
contrib/template/.vim/syntax/perl.vim, contrib/template/README.dotfiles,
contrib/template/resetenv.conf, man/man1/module.1, man/man4/modulefile.4:
Added really old man pages, and a bunch of example things. Still need to
write some documentation for the contrib stuff and update the man pages.
* LICENSE.GPL => doc/LICENSE.GPL, LICENSE.LGPL => doc/LICENSE.LGPL,
README-EMACS.txt => doc/emacs.txt, README.txt => doc/install,
doc/installwin.txt, readme.txt: Setup some more complicated documentation
and move existing docs to new dir.
2013-01-22 Kent Mein <mein@cs.umn.edu>
* modulefiles/{HOME.in => HOME}, modulefiles/Makefile.am,
modulefiles/{dot.in => dot}, modulefiles/lang/.gitignore,
modulefiles/lang/.mklang, modulefiles/{module-cvs.in => module-cvs},
modulefiles/{module-info.in => module-info}, modulefiles/{modules.in =>
modules}, modulefiles/{notavail.in => notavail}, modulefiles/{null.in =>
null}, modulefiles/{use.own.in => use.own}, modulefiles/{version.in =>
version}: Clean up the default modulefiles a bit. Kent
* .gitattributes, doc/.gitignore, doc/Makefile.am, doc/Modules-Paper.doc,
doc/Modules-Paper.pdf, doc/module.1.in, doc/modulefile.4.in: Removed the
documentation, no need to have it twice. Maybe will work on a way to add it
back in later... Kent
* xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Avail.c.src.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Clear.c.src.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Display.c.src.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Help.c.src.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_Init.c.src.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_List.c.src.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Load.c.src.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Purge.c.src.html,
xref/ModuleCmd_Refresh.c.html, xref/ModuleCmd_Refresh.c.src.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Switch.c.src.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Update.c.src.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Use.c.src.html,
xref/ModuleCmd_Whatis.c.html, xref/ModuleCmd_Whatis.c.src.html,
xref/cmdAlias.c.html, xref/cmdAlias.c.src.html, xref/cmdChdir.c.html,
xref/cmdChdir.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdUlvl.c.html, xref/cmdUlvl.c.src.html, xref/cmdUname.c.html,
xref/cmdUname.c.src.html, xref/cmdVerbose.c.html,
xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/config.h.html, xref/config.h.src.html,
xref/cxref.apdx.html, xref/cxref.css, xref/cxref.function, xref/cxref.html,
xref/cxref.include, xref/cxref.typedef, xref/cxref.variable,
xref/error.c.html, xref/error.c.src.html, xref/getopt.c.html,
xref/getopt.c.src.html, xref/getopt.h.html, xref/getopt.h.src.html,
xref/index.html, xref/init.c.html, xref/init.c.src.html,
xref/locate_module.c.html, xref/locate_module.c.src.html, xref/main.c.html,
xref/main.c.src.html, xref/modules_def.h.html, xref/modules_def.h.src.html,
xref/utility.c.html, xref/utility.c.src.html, xref/utilmem.c.html,
xref/utilmem.c.src.html, xref/utilobj.c.html, xref/utilobj.c.src.html,
xref/uvec.c.html, xref/uvec.c.src.html, xref/version.c.html,
xref/version.c.src.html: Removing more stuff that was c version specific.
Kent
2013-01-10 Kent Mein <mein@cs.umn.edu>
* tcl/Makefile => Makefile, tcl/README-EMACS.txt => README-EMACS.txt,
tcl/README.txt => README.txt, {tcl/init => init}/.gitignore, {tcl/init =>
init}/Makefile, {tcl/init => init}/README.txt, {tcl/init => init}/bash.in,
{tcl/init => init}/csh.in, {tcl/init => init}/ksh.in, {tcl/init =>
init}/lisp.in, {tcl/init => init}/modulerc, {tcl/init => init}/perl.in,
{tcl/init => init}/python.in, {tcl/init => init}/sh.in, {tcl/init =>
init}/tcsh.in, {tcl/init => init}/zsh.debug, {tcl/init => init}/zsh.in,
tcl/modulecmd.tcl => modulecmd.tcl, {tcl/testsuite =>
testsuite}/config/unix.exp, {tcl/testsuite => testsuite}/etc/bad,
{tcl/testsuite => testsuite}/etc/empty, {tcl/testsuite =>
testsuite}/etc/modulerc, {tcl/testsuite => testsuite}/home/.modulerc,
{tcl/testsuite => testsuite}/home/.modules, {tcl/testsuite =>
testsuite}/home/.modules.save, .../modulefiles.deep/modulerc/.modulerc,
.../modulefiles.deep/modulerc/dir1/.modulerc,
.../modulefiles.deep/modulerc/dir1/1.0,
.../modulefiles.deep/modulerc/dir1/2.0,
.../modulefiles.deep/modulerc/dir2/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/rc1,
.../modulefiles.deep/modulerc/dir2/1.0/rc2,
.../modulefiles.deep/modulerc/dir2/2.0,
.../modulefiles.deep/modulerc/dir2/3.0, .../testsuite =>
testsuite}/modulefiles.deep/plain/dir1/1.0, .../testsuite =>
testsuite}/modulefiles.deep/plain/dir1/2.0, .../testsuite =>
testsuite}/modulefiles.deep/plain/dir2/1.0, .../testsuite =>
testsuite}/modulefiles.deep/plain/dir2/2.0,
.../modulefiles.deep/version/.version,
.../modulefiles.deep/version/dir1/.version,
.../modulefiles.deep/version/dir1/1.0,
.../modulefiles.deep/version/dir1/2.0,
.../modulefiles.deep/version/dir2/.version,
.../modulefiles.deep/version/dir2/1.0,
.../modulefiles.deep/version/dir2/2.0/.version,
.../modulefiles.deep/version/dir2/2.0/rc1,
.../modulefiles.deep/version/dir2/2.0/rc2,
.../modulefiles.deep/version/dir2/3.0, {tcl/testsuite =>
testsuite}/modulefiles.other/1.1/version, {tcl/testsuite =>
testsuite}/modulefiles.other/1.2/version, {tcl/testsuite =>
testsuite}/modulefiles.other/1.3/version, {tcl/testsuite =>
testsuite}/modulefiles.other/README, {tcl/testsuite =>
testsuite}/modulefiles/README, {tcl/testsuite =>
testsuite}/modulefiles/alias/1.0, {tcl/testsuite =>
testsuite}/modulefiles/alias/2.0, {tcl/testsuite =>
testsuite}/modulefiles/append/0.1, {tcl/testsuite =>
testsuite}/modulefiles/append/0.2, {tcl/testsuite =>
testsuite}/modulefiles/append/1.0, {tcl/testsuite =>
testsuite}/modulefiles/append/2.0, {tcl/testsuite =>
testsuite}/modulefiles/append/2.1, {tcl/testsuite =>
testsuite}/modulefiles/append/2.2, {tcl/testsuite =>
testsuite}/modulefiles/break/1.0, {tcl/testsuite =>
testsuite}/modulefiles/break/2.0, {tcl/testsuite =>
testsuite}/modulefiles/break/3.0, {tcl/testsuite =>
testsuite}/modulefiles/break/4.0, {tcl/testsuite =>
testsuite}/modulefiles/chdir/1.0, {tcl/testsuite =>
testsuite}/modulefiles/chdir/2.0, {tcl/testsuite =>
testsuite}/modulefiles/chdir/3.0, {tcl/testsuite =>
testsuite}/modulefiles/chdir/4.0, {tcl/testsuite =>
testsuite}/modulefiles/conflict/full, {tcl/testsuite =>
testsuite}/modulefiles/conflict/module, {tcl/testsuite =>
testsuite}/modulefiles/continue/1.0, {tcl/testsuite =>
testsuite}/modulefiles/continue/2.0, {tcl/testsuite =>
testsuite}/modulefiles/continue/3.0, {tcl/testsuite =>
testsuite}/modulefiles/continue/4.0, {tcl/testsuite =>
testsuite}/modulefiles/empty/1.0, {tcl/testsuite =>
testsuite}/modulefiles/eschars/1.0, {tcl/testsuite =>
testsuite}/modulefiles/exit/1.0, {tcl/testsuite =>
testsuite}/modulefiles/exit/2.0, {tcl/testsuite =>
testsuite}/modulefiles/exit/3.0, {tcl/testsuite =>
testsuite}/modulefiles/help/2.0, {tcl/testsuite =>
testsuite}/modulefiles/info/isloaded, {tcl/testsuite =>
testsuite}/modulefiles/info/mode1, {tcl/testsuite =>
testsuite}/modulefiles/info/mode2, {tcl/testsuite =>
testsuite}/modulefiles/info/mode3, {tcl/testsuite =>
testsuite}/modulefiles/info/mode4, {tcl/testsuite =>
testsuite}/modulefiles/info/mode5, {tcl/testsuite =>
testsuite}/modulefiles/info/mode6, {tcl/testsuite =>
testsuite}/modulefiles/info/name, {tcl/testsuite =>
testsuite}/modulefiles/info/shells, {tcl/testsuite =>
testsuite}/modulefiles/info/shellsexp, {tcl/testsuite =>
testsuite}/modulefiles/info/user, {tcl/testsuite =>
testsuite}/modulefiles/info/userexp, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv1/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv1/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv1/3.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv2/.version, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv2/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv2/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv3/.version, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv3/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv3/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv4/.version, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv4/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv4/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv6/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv6/2.0/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv7/.version, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv7/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv7/2.0/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv7/3.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv8/.version, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv8/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_dv8/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_fq/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_fq/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc1/.modulerc, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc1/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc1/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc2/.modulerc, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc2/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc2/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc3/.modulerc, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc3/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc3/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc3/3.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc4/.modulerc, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc4/.version, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc4/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc4/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc4/3.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc5/.modulerc, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc5/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_rc5/2.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/1.0, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/alias1, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/alias2, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/alias3, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/alias4, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/alias5, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/alias6, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/exec1, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/exec2, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers1, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers2, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers3, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers4, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers5, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers6, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers7, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/getvers8, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf1, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf2, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf3, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf4, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf5, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf6, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/versinf7, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version1, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version10, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version11, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version12, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version13, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version14, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version2, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version3, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version4, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version5, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version6, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version7, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version8, {tcl/testsuite =>
testsuite}/modulefiles/loc_sym/version9, {tcl/testsuite =>
testsuite}/modulefiles/log/badfac, {tcl/testsuite =>
testsuite}/modulefiles/log/err_both_1, {tcl/testsuite =>
testsuite}/modulefiles/log/err_both_2, {tcl/testsuite =>
testsuite}/modulefiles/log/err_file, {tcl/testsuite =>
testsuite}/modulefiles/log/err_syslog, {tcl/testsuite =>
testsuite}/modulefiles/module/2.0, {tcl/testsuite =>
testsuite}/modulefiles/prepend/0.1, {tcl/testsuite =>
testsuite}/modulefiles/prepend/0.2, {tcl/testsuite =>
testsuite}/modulefiles/prepend/1.0, {tcl/testsuite =>
testsuite}/modulefiles/prepend/2.0, {tcl/testsuite =>
testsuite}/modulefiles/prepend/2.1, {tcl/testsuite =>
testsuite}/modulefiles/prepend/2.2, {tcl/testsuite =>
testsuite}/modulefiles/prereq/full, {tcl/testsuite =>
testsuite}/modulefiles/prereq/module, {tcl/testsuite =>
testsuite}/modulefiles/remove/2.0, {tcl/testsuite =>
testsuite}/modulefiles/setenv/1.0, {tcl/testsuite =>
testsuite}/modulefiles/system/2.0, {tcl/testsuite =>
testsuite}/modulefiles/trace/all_off, {tcl/testsuite =>
testsuite}/modulefiles/trace/all_on, {tcl/testsuite =>
testsuite}/modulefiles/uname/domain, {tcl/testsuite =>
testsuite}/modulefiles/uname/machine, {tcl/testsuite =>
testsuite}/modulefiles/uname/nodename, {tcl/testsuite =>
testsuite}/modulefiles/uname/release, {tcl/testsuite =>
testsuite}/modulefiles/uname/sysname, {tcl/testsuite =>
testsuite}/modulefiles/uname/version, {tcl/testsuite =>
testsuite}/modulefiles/unsetenv/0.9, {tcl/testsuite =>
testsuite}/modulefiles/unsetenv/1.0, {tcl/testsuite =>
testsuite}/modulefiles/use/.version, {tcl/testsuite =>
testsuite}/modulefiles/use/1.0, {tcl/testsuite =>
testsuite}/modulefiles/use/2.0, {tcl/testsuite =>
testsuite}/modulefiles/use/2.1, {tcl/testsuite =>
testsuite}/modulefiles/use/2.2, {tcl/testsuite =>
testsuite}/modulefiles/user/adv, {tcl/testsuite =>
testsuite}/modulefiles/user/advanced, {tcl/testsuite =>
testsuite}/modulefiles/user/exp, {tcl/testsuite =>
testsuite}/modulefiles/user/expert, {tcl/testsuite =>
testsuite}/modulefiles/user/nov, {tcl/testsuite =>
testsuite}/modulefiles/user/novice, {tcl/testsuite =>
testsuite}/modulefiles/user/undef, {tcl/testsuite =>
testsuite}/modulefiles/verbose/msg, {tcl/testsuite =>
testsuite}/modulefiles/verbose/off, {tcl/testsuite =>
testsuite}/modulefiles/verbose/on, {tcl/testsuite =>
testsuite}/modulefiles/verbose/undef, {tcl/testsuite =>
testsuite}/modulefiles/versions/1.1, {tcl/testsuite =>
testsuite}/modulefiles/versions/1.2, {tcl/testsuite =>
testsuite}/modulefiles/versions/1.3, {tcl/testsuite =>
testsuite}/modulefiles/whatis/lines, {tcl/testsuite =>
testsuite}/modulefiles/whatis/multiple, {tcl/testsuite =>
testsuite}/modulefiles/whatis/none, {tcl/testsuite =>
testsuite}/modulefiles/whatis/single, {tcl/testsuite =>
testsuite}/modulefiles/whatis/string, .../testsuite =>
testsuite}/modules.00-init/005-init_ts.exp, {tcl/testsuite =>
testsuite}/modules.00-init/006-procs.exp, .../testsuite =>
testsuite}/modules.00-init/010-environ.exp, .../testsuite =>
testsuite}/modules.00-init/015-version.exp, {tcl/testsuite =>
testsuite}/modules.00-init/030-shells.exp, .../testsuite =>
testsuite}/modules.00-init/050-modpath.exp, {tcl/testsuite =>
testsuite}/modules.00-init/080-begenv.exp,
.../modules.00-init/090-switches.exp, {tcl/testsuite =>
testsuite}/modules.10-use/010-init_ts.exp, {tcl/testsuite =>
testsuite}/modules.10-use/030-use.exp, {tcl/testsuite =>
testsuite}/modules.10-use/031-append.exp, {tcl/testsuite =>
testsuite}/modules.10-use/040-load.exp, {tcl/testsuite =>
testsuite}/modules.10-use/070-unuse.exp, .../testsuite =>
testsuite}/modules.50-cmds/010-init_ts.exp, {tcl/testsuite =>
testsuite}/modules.50-cmds/015-use.exp, {tcl/testsuite =>
testsuite}/modules.50-cmds/020-setenv.exp,
.../modules.50-cmds/030-unsetenv.exp, {tcl/testsuite =>
testsuite}/modules.50-cmds/040-append.exp, {tcl/testsuite =>
testsuite}/modules.50-cmds/140-system.exp, .../testsuite =>
testsuite}/modules.50-cmds/999-cleanup.exp, .../testsuite =>
testsuite}/modules.80-deep/010-init_ts.exp, {tcl/testsuite =>
testsuite}/modules.80-deep/020-load.exp, .../testsuite =>
testsuite}/modules.80-deep/030-display.exp, {tcl/testsuite =>
testsuite}/modules.80-deep/040-list.exp, .../testsuite =>
testsuite}/modules.80-deep/999-cleanup.exp,
.../modules.90-avail/010-init_ts.exp, .../testsuite =>
testsuite}/modules.90-avail/020-single.exp,
.../modules.90-avail/030-multiple.exp, {tcl/testsuite =>
testsuite}/modules.90-avail/040-wild.exp, {tcl/testsuite =>
testsuite}/modules.90-avail/050-long.exp, {tcl/testsuite =>
testsuite}/modules.90-avail/060-empty.exp,
.../modules.95-version/010-init_ts.exp, .../testsuite =>
testsuite}/modules.95-version/020-load.exp,
.../modules.95-version/020-unload.exp, .../modules.95-version/022-load2.exp,
.../modules.95-version/022-unload2.exp,
.../modules.95-version/040-xgetenv.exp,
.../modules.95-version/999-cleanup.exp, {tcl/testsuite =>
testsuite}/not_installed, {tcl/testsuite => testsuite}/systest, {tcl/windows
=> windows}/module-tcl-win.chm, {tcl/windows => windows}/module.cmd,
{tcl/windows => windows}/moduleinit.cmd: Moved things out of the tcl
directory. Kent
* .cxref, .ftp, .gitignore, .indent.pro, .spec.in, ChangeLog, INSTALL,
INSTALL.RH7x, MACHINES, Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Clear.c,
ModuleCmd_Display.c, ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c,
ModuleCmd_Load.c, ModuleCmd_Purge.c, ModuleCmd_Refresh.c,
ModuleCmd_Switch.c, ModuleCmd_Update.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c,
NEWS, PROBLEMS, README, README.perl, TODO, acinclude.m4, cmdAlias.c,
cmdChdir.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdLog.c, cmdMisc.c,
cmdModule.c, cmdPath.c, cmdSetenv.c, cmdUlvl.c, cmdUname.c, cmdVerbose.c,
cmdVersion.c, cmdWhatis.c, cmdXResource.c, config/.gitignore,
config/emtcl.m4, config/tcl.m4, configure.ac, contrib/modules.ebuild,
cvs2cl.pl, error.c, etc/.gitignore, etc/Makefile.am, etc/README,
etc/add.modules.in, etc/global/.gitignore, etc/global/bashrc.in,
etc/global/csh.cshrc.in, etc/global/csh.login.in, etc/global/csh.modules.in,
etc/global/profile.in, etc/global/profile.modules.in, etc/mkroot.in,
etc/skel/.cshrc.in, etc/skel/.gitignore, etc/skel/.kshenv.in,
etc/skel/.login.in, etc/skel/.profile.in, ext/.gitignore, ext/Makefile.am,
ext/README, ext/add.ext.in, ext/common/.cshrc.in, ext/common/.gitignore,
ext/common/.kshenv.in, ext/common/.login.in, ext/common/.profile.in,
ext/mkroot.in, ext/skel/.cshrc.ext, ext/skel/.kshenv.ext,
ext/skel/.login.ext, ext/skel/.modules, ext/skel/.profile.ext, getopt.c,
getopt.h, init.c, init/.gitignore, init/.modulespath.in, init/Makefile.am,
init/bash.in, init/bash_completion.in, init/cmake.in, init/csh.in,
init/ksh.in, init/perl.pm.in, init/python.py.in, init/ruby.rb.in,
init/sh.in, init/zsh.in, locate_module.c, main.c, modules.lsm.in,
modules_def.h, ovec.c, ovec.h, po/.cvsignore, po/ChangeLog, po/LINGUAS,
po/Makevars, po/POTFILES.in, testsuite/.gitignore,
testsuite/config/unix.exp, testsuite/etc/.gitignore, testsuite/etc/bad,
testsuite/etc/empty, testsuite/etc/modulerc, testsuite/home/.gitignore,
testsuite/home/.modulerc, testsuite/home/.modules.save,
testsuite/modulefiles.deep/modulerc/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/1.0,
testsuite/modulefiles.deep/modulerc/dir1/2.0,
testsuite/modulefiles.deep/modulerc/dir2/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/.modulerc,
testsuite/modulefiles.deep/modulerc/dir2/1.0/rc1,
testsuite/modulefiles.deep/modulerc/dir2/1.0/rc2,
testsuite/modulefiles.deep/modulerc/dir2/2.0,
testsuite/modulefiles.deep/modulerc/dir2/3.0,
testsuite/modulefiles.deep/plain/dir1/1.0,
testsuite/modulefiles.deep/plain/dir1/2.0,
testsuite/modulefiles.deep/plain/dir2/1.0,
testsuite/modulefiles.deep/plain/dir2/2.0,
testsuite/modulefiles.deep/version/.version,
testsuite/modulefiles.deep/version/dir1/.version,
testsuite/modulefiles.deep/version/dir1/1.0,
testsuite/modulefiles.deep/version/dir1/2.0,
testsuite/modulefiles.deep/version/dir2/.version,
testsuite/modulefiles.deep/version/dir2/1.0,
.../modulefiles.deep/version/dir2/2.0/.version,
testsuite/modulefiles.deep/version/dir2/2.0/rc1,
testsuite/modulefiles.deep/version/dir2/2.0/rc2,
testsuite/modulefiles.deep/version/dir2/3.0,
testsuite/modulefiles.other/1.1/version,
testsuite/modulefiles.other/1.2/version,
testsuite/modulefiles.other/1.3/version, testsuite/modulefiles.other/README,
testsuite/modulefiles/README, testsuite/modulefiles/alias/1.0,
testsuite/modulefiles/alias/2.0, testsuite/modulefiles/append/0.1,
testsuite/modulefiles/append/0.2, testsuite/modulefiles/append/1.0,
testsuite/modulefiles/append/1.1, testsuite/modulefiles/append/2.0,
testsuite/modulefiles/append/2.1, testsuite/modulefiles/append/2.2,
testsuite/modulefiles/break/1.0, testsuite/modulefiles/break/2.0,
testsuite/modulefiles/break/3.0, testsuite/modulefiles/break/4.0,
testsuite/modulefiles/chdir/1.0, testsuite/modulefiles/chdir/2.0,
testsuite/modulefiles/chdir/3.0, testsuite/modulefiles/chdir/4.0,
testsuite/modulefiles/conflict/full, testsuite/modulefiles/conflict/module,
testsuite/modulefiles/continue/1.0, testsuite/modulefiles/continue/2.0,
testsuite/modulefiles/continue/3.0, testsuite/modulefiles/continue/4.0,
testsuite/modulefiles/empty/1.0, testsuite/modulefiles/eschars/1.0,
testsuite/modulefiles/exit/1.0, testsuite/modulefiles/exit/2.0,
testsuite/modulefiles/exit/3.0, testsuite/modulefiles/help/2.0,
testsuite/modulefiles/info/isloaded, testsuite/modulefiles/info/mode1,
testsuite/modulefiles/info/mode2, testsuite/modulefiles/info/mode3,
testsuite/modulefiles/info/mode4, testsuite/modulefiles/info/mode5,
testsuite/modulefiles/info/mode6, testsuite/modulefiles/info/name,
testsuite/modulefiles/info/shells, testsuite/modulefiles/info/shellsexp,
testsuite/modulefiles/info/user, testsuite/modulefiles/info/userexp,
testsuite/modulefiles/loc_dv1/1.0, testsuite/modulefiles/loc_dv1/2.0,
testsuite/modulefiles/loc_dv1/3.0, testsuite/modulefiles/loc_dv2/.version,
testsuite/modulefiles/loc_dv2/1.0, testsuite/modulefiles/loc_dv2/2.0,
testsuite/modulefiles/loc_dv3/.version, testsuite/modulefiles/loc_dv3/1.0,
testsuite/modulefiles/loc_dv3/2.0, testsuite/modulefiles/loc_dv4/.version,
testsuite/modulefiles/loc_dv4/1.0, testsuite/modulefiles/loc_dv4/2.0,
testsuite/modulefiles/loc_dv6/1.0, testsuite/modulefiles/loc_dv6/2.0/1.0,
testsuite/modulefiles/loc_dv7/.version, testsuite/modulefiles/loc_dv7/1.0,
testsuite/modulefiles/loc_dv7/2.0/1.0, testsuite/modulefiles/loc_dv7/3.0,
testsuite/modulefiles/loc_dv8/.version, testsuite/modulefiles/loc_dv8/1.0,
testsuite/modulefiles/loc_dv8/2.0, testsuite/modulefiles/loc_fq/1.0,
testsuite/modulefiles/loc_fq/2.0, testsuite/modulefiles/loc_rc1/.modulerc,
testsuite/modulefiles/loc_rc1/1.0, testsuite/modulefiles/loc_rc1/2.0,
testsuite/modulefiles/loc_rc2/.modulerc, testsuite/modulefiles/loc_rc2/1.0,
testsuite/modulefiles/loc_rc2/2.0, testsuite/modulefiles/loc_rc3/.modulerc,
testsuite/modulefiles/loc_rc3/1.0, testsuite/modulefiles/loc_rc3/2.0,
testsuite/modulefiles/loc_rc3/3.0, testsuite/modulefiles/loc_rc4/.modulerc,
testsuite/modulefiles/loc_rc4/.version, testsuite/modulefiles/loc_rc4/1.0,
testsuite/modulefiles/loc_rc4/2.0, testsuite/modulefiles/loc_rc4/3.0,
testsuite/modulefiles/loc_rc5/.modulerc, testsuite/modulefiles/loc_rc5/1.0,
testsuite/modulefiles/loc_rc5/2.0, testsuite/modulefiles/loc_sym/1.0,
testsuite/modulefiles/loc_sym/alias1, testsuite/modulefiles/loc_sym/alias2,
testsuite/modulefiles/loc_sym/alias3, testsuite/modulefiles/loc_sym/alias4,
testsuite/modulefiles/loc_sym/alias5, testsuite/modulefiles/loc_sym/alias6,
testsuite/modulefiles/loc_sym/exec1, testsuite/modulefiles/loc_sym/exec2,
testsuite/modulefiles/loc_sym/getvers1,
testsuite/modulefiles/loc_sym/getvers2,
testsuite/modulefiles/loc_sym/getvers3,
testsuite/modulefiles/loc_sym/getvers4,
testsuite/modulefiles/loc_sym/getvers5,
testsuite/modulefiles/loc_sym/getvers6,
testsuite/modulefiles/loc_sym/getvers7,
testsuite/modulefiles/loc_sym/getvers8,
testsuite/modulefiles/loc_sym/versinf1,
testsuite/modulefiles/loc_sym/versinf2,
testsuite/modulefiles/loc_sym/versinf3,
testsuite/modulefiles/loc_sym/versinf4,
testsuite/modulefiles/loc_sym/versinf5,
testsuite/modulefiles/loc_sym/versinf6,
testsuite/modulefiles/loc_sym/versinf7,
testsuite/modulefiles/loc_sym/version1,
testsuite/modulefiles/loc_sym/version10,
testsuite/modulefiles/loc_sym/version11,
testsuite/modulefiles/loc_sym/version12,
testsuite/modulefiles/loc_sym/version13,
testsuite/modulefiles/loc_sym/version14,
testsuite/modulefiles/loc_sym/version2,
testsuite/modulefiles/loc_sym/version3,
testsuite/modulefiles/loc_sym/version4,
testsuite/modulefiles/loc_sym/version5,
testsuite/modulefiles/loc_sym/version6,
testsuite/modulefiles/loc_sym/version7,
testsuite/modulefiles/loc_sym/version8,
testsuite/modulefiles/loc_sym/version9, testsuite/modulefiles/log/badfac,
testsuite/modulefiles/log/err_both_1, testsuite/modulefiles/log/err_both_2,
testsuite/modulefiles/log/err_file, testsuite/modulefiles/log/err_syslog,
testsuite/modulefiles/module/2.0, testsuite/modulefiles/prepend/0.1,
testsuite/modulefiles/prepend/0.2, testsuite/modulefiles/prepend/1.0,
testsuite/modulefiles/prepend/1.1, testsuite/modulefiles/prepend/2.0,
testsuite/modulefiles/prepend/2.1, testsuite/modulefiles/prepend/2.2,
testsuite/modulefiles/prereq/full, testsuite/modulefiles/prereq/module,
testsuite/modulefiles/recurs/modA, testsuite/modulefiles/recurs/modB,
testsuite/modulefiles/remove/2.0, testsuite/modulefiles/setenv/1.0,
testsuite/modulefiles/system/2.0, testsuite/modulefiles/trace/all_off,
testsuite/modulefiles/trace/all_on, testsuite/modulefiles/uname/domain,
testsuite/modulefiles/uname/machine, testsuite/modulefiles/uname/nodename,
testsuite/modulefiles/uname/release, testsuite/modulefiles/uname/sysname,
testsuite/modulefiles/uname/version, testsuite/modulefiles/unsetenv/0.9,
testsuite/modulefiles/unsetenv/1.0, testsuite/modulefiles/use/.version,
testsuite/modulefiles/use/1.0, testsuite/modulefiles/use/2.0,
testsuite/modulefiles/use/2.1, testsuite/modulefiles/use/2.2,
testsuite/modulefiles/user/adv, testsuite/modulefiles/user/advanced,
testsuite/modulefiles/user/exp, testsuite/modulefiles/user/expert,
testsuite/modulefiles/user/nov, testsuite/modulefiles/user/novice,
testsuite/modulefiles/user/undef, testsuite/modulefiles/verbose/msg,
testsuite/modulefiles/verbose/off, testsuite/modulefiles/verbose/on,
testsuite/modulefiles/verbose/undef, testsuite/modulefiles/versions/1.1,
testsuite/modulefiles/versions/1.2, testsuite/modulefiles/versions/1.3,
testsuite/modulefiles/whatis/lines, testsuite/modulefiles/whatis/multiple,
testsuite/modulefiles/whatis/none, testsuite/modulefiles/whatis/single,
testsuite/modulefiles/whatis/string,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/015-version.exp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/010-init_ts.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/010-init_ts.exp,
testsuite/modules.20-locate/020-fqual.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/095-cleanup.exp,
testsuite/modules.30-userlvl/010-init_ts.exp,
testsuite/modules.30-userlvl/030-novice.exp,
testsuite/modules.30-userlvl/035-nov.exp,
testsuite/modules.30-userlvl/040-advanced.exp,
testsuite/modules.30-userlvl/045-adv.exp,
testsuite/modules.30-userlvl/050-expert.exp,
testsuite/modules.30-userlvl/055-exp.exp,
testsuite/modules.30-userlvl/090-undef.exp,
testsuite/modules.50-cmds/010-init_ts.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/070-alias-proc.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/099-uname-cleanup.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/195-load-recurs.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.50-cmds/999-cleanup.exp,
testsuite/modules.60-initx/005-init.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/095-cleanup.exp,
testsuite/modules.70-maint/010-init_ts.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/095-cleanup.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/040-list.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.90-avail/010-init_ts.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp,
testsuite/modules.95-version/010-init_ts.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/999-cleanup.exp, testsuite/not_installed,
testsuite/systest, utility.c, utilmem.c, utilobj.c, uvec.c, uvec.h,
version.c: Removed all of the non tcl version stuff. Or most of it anyway.
Kent
2012-11-30 Kent Mein <mein@cs.umn.edu>
* tcl/init/Makefile: Remove some unneeded complication to the Makefile since
were not using cvs anymore. Kent
2012-11-19 R.K. Owen <rk@owen.sj.ca.us>
* LICENSE.GPL, LICENSE.LGPL, NEWS: Rolled in the recent LICENSE.GPL address
change, and the same to the the LICENSE.LGPL.
2012-11-12 R.K. Owen <rk@owen.sj.ca.us>
* ModuleCmd_Init.c, NEWS, cmdXResource.c, utility.c: Rolled in the following
patch * Fixed the segfault problem with Tcl_RegExpCompile() (Kenneth Hoste,
Tyson Whitehead)
2012-11-08 R.K. Owen <rk@owen.sj.ca.us>
* ModuleCmd_Avail.c, NEWS, configure.ac, doc/module.1.in,
doc/modulefile.4.in: Rolled in the increased Update buffer and using the
locale for Avail.
2012-11-05 R.K. Owen <rk@owen.sj.ca.us>
* ModuleCmd_Update.c, NEWS: * Increased the "update" buffer (Leon Kos)
rolled into main branch.
2012-11-01 R.K. Owen <rk@owen.sj.ca.us>
* ovec.h, uvec.h: Remove the $Id$ lines from the header files.
* .gitattributes, Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Clear.c,
ModuleCmd_Display.c, ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c,
ModuleCmd_Load.c, ModuleCmd_Purge.c, ModuleCmd_Refresh.c,
ModuleCmd_Switch.c, ModuleCmd_Update.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c,
cmdAlias.c, cmdChdir.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdLog.c,
cmdMisc.c, cmdModule.c, cmdPath.c, cmdSetenv.c, cmdUlvl.c, cmdUname.c,
cmdVerbose.c, cmdVersion.c, cmdWhatis.c, cmdXResource.c, configure.ac,
error.c, etc/Makefile.am, etc/add.modules.in, ext/Makefile.am,
ext/add.ext.in, getopt.c, init.c, init/.modulespath.in, init/Makefile.am,
locate_module.c, main.c, modulefiles/Makefile.am, ovec.c, utility.c,
utilmem.c, utilobj.c, uvec.c: Changing to the git $Id$
2012-10-30 R.K. Owen <rk@owen.sj.ca.us>
* .cvsignore => .gitignore, NEWS, TODO, cmdPath.c, config/{.cvsignore =>
.gitignore}, doc/{.cvsignore => .gitignore}, etc/{.cvsignore => .gitignore},
etc/global/{.cvsignore => .gitignore}, etc/skel/{.cvsignore => .gitignore},
ext/{.cvsignore => .gitignore}, ext/common/{.cvsignore => .gitignore},
init/{.cvsignore => .gitignore}, modulefiles/{.cvsignore => .gitignore},
modulefiles/lang/{.cvsignore => .gitignore}, tcl/init/{.cvsignore =>
.gitignore}, testsuite/{.cvsignore => .gitignore}, testsuite/etc/{.cvsignore
=> .gitignore}, testsuite/home/{.cvsignore => .gitignore},
testsuite/modulefiles/append/1.1, testsuite/modulefiles/prepend/1.1,
testsuite/modulefiles/recurs/modA, testsuite/modulefiles/recurs/modB,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp,
testsuite/modules.50-cmds/195-load-recurs.exp: Rolled in the fix by Tyson
Whitehead for the "module swap" with the --delim option
2012-10-29 R.K. Owen <rk@owen.sj.ca.us>
* testsuite/modules.50-cmds/172-seap-app-delim.exp: Bad file name.
* .gitignore, NEWS, cmdPath.c, testsuite/modulefiles/append/1.1,
testsuite/modulefiles/prepend/1.1,
testsuite/modules.50-cmds/172-seap-app-delim.exp,
testsuite/modules.50-cmds/172-swap-app-delim.exp,
testsuite/modules.50-cmds/173-swap-app-delim.exp,
testsuite/modules.50-cmds/177-swap-prep-delim.exp,
testsuite/modules.50-cmds/178-swap-prep-delim.exp: * Fix the module swap
with the --delim option (Tyson Whitehead)
2012-10-25 R.K. Owen <rk@owen.sj.ca.us>
* .cvsignore => .gitignore, config/{.cvsignore => .gitignore},
doc/{.cvsignore => .gitignore}, etc/{.cvsignore => .gitignore},
etc/global/{.cvsignore => .gitignore}, etc/skel/{.cvsignore => .gitignore},
ext/{.cvsignore => .gitignore}, ext/common/{.cvsignore => .gitignore},
init/{.cvsignore => .gitignore}, modulefiles/{.cvsignore => .gitignore},
tcl/init/{.cvsignore => .gitignore}, testsuite/{.cvsignore => .gitignore},
testsuite/etc/{.cvsignore => .gitignore}, testsuite/home/{.cvsignore =>
.gitignore}: Moved the .cvsignore files to .gitignore
* version.c: Check whether the bash shell is interactive or not Fixed a typo
in the perl init script Trivial change to the version variable.
* version.c: Trivial change to the version variable.
2012-09-10 sirdude <sirdude>
* tcl/modulecmd.tcl: A couple of small patches by Thomas Zeiser
thomas.zeiser@rrze.uni-erlangen.de The first one adds some checks to make
sure a directory is readable before trying to read it. The second reverses
the order of perging modules so that they are removed last to first, which
maybe seems more intuitive? Kent
2012-05-17 rkowen <rkowen>
* ModuleCmd_Load.c, NEWS, modules_def.h, testsuite/modulefiles/recurs/modA,
testsuite/modulefiles/recurs/modB,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/195-load-recurs.exp: * Fix the flags with regards
to recursive load/unload
2012-04-11 rkowen <rkowen>
* configure.ac: Fixed syntax error.
2012-03-20 sirdude <sirdude>
* tcl/modulecmd.tcl: Modify getenv so it returns _UNDEFINED_ instead of
erroring if the environment variable is not defined. Also changed the
display option so it returns $varname instead of [getenv $varname] Kent
2012-03-19 sirdude <sirdude>
* tcl/init/.cvsignore, tcl/modulecmd.tcl: Added a getenv function on the
suggestion of a few people on the mailing list. Thanks go to: Mark Lakata,
Paul FM and Roberto Beccer Let me know if there are any problems with it. I
also snuck in a ignore line for .gitignore so I can use git locally, and
fixed some minor whitespace issues. Kent Mein
2011-12-13 rkowen <rkowen>
* ModuleCmd_Update.c, testsuite/modules.70-maint/020-update.exp: Fixed the
update test, and cleaned up the update code a bit.
2011-12-01 rkowen <rkowen>
* main.c, utility.c: Fixed some memory issues.
* ModuleCmd_Purge.c, ModuleCmd_Update.c, ModuleCmd_Use.c, cmdPath.c,
cmdSetenv.c, configure.ac, testsuite/modules.00-init/080-begenv.exp,
utility.c: Rolled in the recent 3-2-9 changes with regard to checks of the
EMGetEnv resulting pointers.
2011-11-29 rkowen <rkowen>
* ModuleCmd_Whatis.c: Fixed a memory error in the whatis part.
2011-11-28 rkowen <rkowen>
* utility.c: Make sure a char *ptr is initialized to NULL.
* ModuleCmd_Purge.c, ModuleCmd_Update.c, ModuleCmd_Use.c, NEWS, cmdPath.c,
cmdSetenv.c, testsuite/modules.00-init/080-begenv.exp, utility.c, version.c:
Test ptrs yielded by EMGetEnv.
2011-11-22 rkowen <rkowen>
* testsuite/modules.00-init/010-environ.exp, utility.c: Found why the
--with-split-size option was producing extra "unsetenv _LMFILES_000".
2011-11-21 rkowen <rkowen>
* testsuite/modules.00-init/010-environ.exp,
testsuite/modules.10-use/040-load.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.30-userlvl/040-advanced.exp,
testsuite/modules.30-userlvl/045-adv.exp,
testsuite/modules.30-userlvl/050-expert.exp,
testsuite/modules.30-userlvl/055-exp.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/240-chdir.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/999-cleanup.exp: Have the testsuite handle when
configured with --with-split-size, but it's assumed large enough to not
split _LMFILES_ in the tests.
* utility.c: Further checks for empty environment variables from EMGetEnv()
for _LMFILES_%d
2011-11-15 rkowen <rkowen>
* utility.c: Fixed --with-split-size problem with _LMFILES_NNN.
2011-11-11 rkowen <rkowen>
* ChangeLog: Updated
* ModuleCmd_List.c, ModuleCmd_Purge.c, ModuleCmd_Refresh.c,
ModuleCmd_Update.c, ModuleCmd_Use.c, NEWS, cmdPath.c, cmdSetenv.c, init.c,
modules_def.h, utility.c: Merged in the TclGetEnv/TclSetEnv fix from 3.2.9.
* version.c: Reset version to 3.2.9 not 3.2.9a.
* ChangeLog: Updated.
* ModuleCmd_Purge.c, ModuleCmd_Update.c, ModuleCmd_Use.c, NEWS, cmdPath.c,
cmdSetenv.c, init.c, modules_def.h, utility.c, version.c: Crucial bug fix
... TclGetEnv/TclSetEnv are Tcl routines, so renamed these to
EMGetEnv/EMSetEnv. Fix due to Orion Poplawski.
2011-11-10 rkowen <rkowen>
* ChangeLog, NEWS: Updated with current 3.2.9 info.
* ChangeLog: Update for distribution.
* ChangeLog, NEWS, version.c: Preparation for distribution.
2011-10-24 rkowen <rkowen>
* NEWS, cmdPath.c: * Removed the RegExp code from cmdPath.c (Poor Yorick)
2011-10-17 rkowen <rkowen>
* Makefile.am, NEWS, init.c, init/Makefile.am, init/ruby.rb.in, utility.c:
Rolled in the ruby addition from Tammo Tjarks.
* Makefile.am, NEWS, init.c, init/Makefile.am, init/ruby.rb.in, utility.c: *
Added support for Ruby (Tammo Tjarks)
2011-10-13 rkowen <rkowen>
* ModuleCmd_List.c, ModuleCmd_Load.c, ModuleCmd_Refresh.c,
ModuleCmd_Switch.c, NEWS, cmdConflict.c, cmdIsLoaded.c, cmdSetenv.c, init.c,
modulefiles/module-info.in, modules_def.h, utility.c: * Fixed unload & load
of same module problem (Bug 3211669).
2011-10-13 sirdude <sirdude>
* tcl/testsuite/modules.10-use/030-use.exp,
tcl/testsuite/modules.10-use/031-append.exp,
tcl/testsuite/modules.10-use/040-load.exp,
tcl/testsuite/modules.10-use/070-unuse.exp,
tcl/testsuite/modules.50-cmds/015-use.exp,
tcl/testsuite/modules.50-cmds/020-setenv.exp,
tcl/testsuite/modules.50-cmds/030-unsetenv.exp,
tcl/testsuite/modules.50-cmds/040-append.exp,
tcl/testsuite/modules.50-cmds/140-system.exp,
tcl/testsuite/modules.80-deep/020-load.exp,
tcl/testsuite/modules.80-deep/030-display.exp,
tcl/testsuite/modules.90-avail/020-single.exp,
tcl/testsuite/modules.90-avail/030-multiple.exp,
tcl/testsuite/modules.90-avail/040-wild.exp,
tcl/testsuite/modules.90-avail/050-long.exp,
tcl/testsuite/modules.90-avail/060-empty.exp,
tcl/testsuite/modules.95-version/020-load.exp,
tcl/testsuite/modules.95-version/020-unload.exp,
tcl/testsuite/modules.95-version/022-load2.exp,
tcl/testsuite/modules.95-version/022-unload2.exp,
tcl/testsuite/modules.95-version/040-xgetenv.exp: Added a couple of other
tests Also added terminators to the end of the regex tests... Kent
2011-10-11 sirdude <sirdude>
* tcl/modulecmd.tcl: Remove outer loop for aliases in csh/sh type shells and
fix it so sh shells us unalias Kent
2011-10-10 rkowen <rkowen>
* cmdInfo.c: Even though "trace" is no longer used ... should still have
module-info still respond with "*undef*", so older modulefiles can still be
processed without a Tcl error.
2011-10-07 sirdude <sirdude>
* tcl/testsuite/modules.50-cmds/020-setenv.exp,
tcl/testsuite/modules.50-cmds/030-unsetenv.exp: Added some additional tests
that I have converted. Still a lot of tests to add... Kent
* tcl/testsuite/modules.90-avail/050-long.exp: Fix this test for the tcl
version. Kent
* tcl/modulecmd.tcl: This is a patch provided by Wilson Snyder to fix up the
regsub statements I also silenced a few warnings produced by nagelfar(a
syntax checker for tcl) Basically it simplified a couple of the if
statements by using a temp variable. Kent
2011-10-06 rkowen <rkowen>
* cmdConflict.c: Fixed bug-3300132 prereq error format problem.
* cmdConflict.c: Fixed bug-3300132 prereq error format problem.
* ModuleCmd_Display.c, ModuleCmd_Help.c, ModuleCmd_Load.c,
ModuleCmd_Purge.c, ModuleCmd_Refresh.c, ModuleCmd_Update.c, ModuleCmd_Use.c,
ModuleCmd_Whatis.c, NEWS, cmdPath.c, cmdSetenv.c, init.c, modules_def.h,
utility.c, utilmem.c: * Fixed the "module purge" memory corruption (Poor
Yorick). * Isolated calls to the new interpreter and get & set env.vars.
* NEWS, cmdPath.c, utility.c: * Fixed the module purge corruption (Poor
Yorick)
* NEWS: Updated with module purge fix
2011-10-03 rkowen <rkowen>
* cmdPath.c, utility.c: Rolled in Poor Yorick's changes to Remove_Path()
which fixes the memory corruption of "module purge".
* ModuleCmd_Avail.c, ModuleCmd_Update.c, NEWS, cmdLog.c, cmdVersion.c,
cmdWhatis.c, error.c, locate_module.c, modules_def.h, utility.c: *
Optionally use Tcl memory check routines for malloc/realloc.
* ModuleCmd_Display.c, ModuleCmd_Help.c, ModuleCmd_Load.c,
ModuleCmd_Purge.c, ModuleCmd_Refresh.c, ModuleCmd_Update.c, ModuleCmd_Use.c,
ModuleCmd_Whatis.c, NEWS, cmdPath.c, cmdSetenv.c, init.c, modules_def.h,
utility.c: * Isolated calls to the new interpreter and get & set env.vars.
2011-09-29 rkowen <rkowen>
* testsuite/config/unix.exp: Simplified the comp_output procedure ... due to
Poor Yorick.
* cmdPath.c: Change the strcpy to memmove because of possible memory
overlap.
2011-09-19 rkowen <rkowen>
* configure.ac: Removed the explicit call to AM_PO_SUBDIRS, which is already
invoked by the AM_GNU_GETTEXT. Patch thanks to "Poor Yorick".
2011-09-13 sirdude <sirdude>
* tcl/modulecmd.tcl: Patch from Andy Wettstein so that aliases work again
with bash and other sh like shells. Kent
2011-08-12 sirdude <sirdude>
* tcl/modulecmd.tcl: Fix provided by Thomas Zeiser. ( A missing ; ) Kent
2011-06-17 sirdude <sirdude>
* tcl/modulecmd.tcl: Patch by Larry Baker to bring the tcl version more
inline with the c version. Kent
2011-05-13 sirdude <sirdude>
* tcl/modulecmd.tcl: Patch by Larry Baker to add a 'module aliases'
command. Kent
2011-05-10 sirdude <sirdude>
* tcl/Makefile, tcl/README.txt, tcl/init/Makefile,
tcl/windows/module-tcl-win.chm, tcl/windows/module.cmd,
tcl/windows/moduleinit.cmd: This commit is for the tcl version of modules,
it does some additional work on windows It updates the README file which was
pretty sparse It also redoes the Makefiles so that it will build a default
modulerc file if it doesn't exist. Kent
* tcl/modulecmd.tcl: This should fix bug# 3097451 I haven't tested it to
make sure and the code needs more work but it's a start. Kent
2011-04-27 sirdude <sirdude>
* tcl/modulecmd.tcl: Patch from Kwee Heong Tan This provides better support
under windows. There is still more work to do here. Kent
2011-04-06 sirdude <sirdude>
* tcl/testsuite/modules.10-use/040-load.exp,
tcl/testsuite/modules.50-cmds/010-init_ts.exp,
tcl/testsuite/modules.50-cmds/015-use.exp,
tcl/testsuite/modules.50-cmds/999-cleanup.exp,
tcl/testsuite/modules.95-version/010-init_ts.exp,
tcl/testsuite/modules.95-version/020-load.exp,
tcl/testsuite/modules.95-version/020-unload.exp,
tcl/testsuite/modules.95-version/022-load2.exp,
tcl/testsuite/modules.95-version/022-unload2.exp,
tcl/testsuite/modules.95-version/040-xgetenv.exp,
tcl/testsuite/modules.95-version/999-cleanup.exp: More test files for tcl
version of modules. Kent
2011-03-22 sirdude <sirdude>
* tcl/modulecmd.tcl: Small patch from Wilson Snyder to improve python
support. Kent
2011-03-15 sirdude <sirdude>
* tcl/init/csh.in, tcl/init/tcsh.in: Fix up the calls to the command so its
not doing variable substitution all of the time. Kent
* tcl/Makefile, tcl/testsuite/config/unix.exp, tcl/testsuite/etc/bad,
tcl/testsuite/etc/empty, tcl/testsuite/etc/modulerc,
tcl/testsuite/home/.modulerc, tcl/testsuite/home/.modules,
tcl/testsuite/home/.modules.save,
tcl/testsuite/modulefiles.deep/modulerc/.modulerc,
.../modulefiles.deep/modulerc/dir1/.modulerc,
tcl/testsuite/modulefiles.deep/modulerc/dir1/1.0,
tcl/testsuite/modulefiles.deep/modulerc/dir1/2.0,
.../modulefiles.deep/modulerc/dir2/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/rc1,
.../modulefiles.deep/modulerc/dir2/1.0/rc2,
tcl/testsuite/modulefiles.deep/modulerc/dir2/2.0,
tcl/testsuite/modulefiles.deep/modulerc/dir2/3.0,
tcl/testsuite/modulefiles.deep/plain/dir1/1.0,
tcl/testsuite/modulefiles.deep/plain/dir1/2.0,
tcl/testsuite/modulefiles.deep/plain/dir2/1.0,
tcl/testsuite/modulefiles.deep/plain/dir2/2.0,
tcl/testsuite/modulefiles.deep/version/.version,
.../modulefiles.deep/version/dir1/.version,
tcl/testsuite/modulefiles.deep/version/dir1/1.0,
tcl/testsuite/modulefiles.deep/version/dir1/2.0,
.../modulefiles.deep/version/dir2/.version,
tcl/testsuite/modulefiles.deep/version/dir2/1.0,
.../modulefiles.deep/version/dir2/2.0/.version,
.../modulefiles.deep/version/dir2/2.0/rc1,
.../modulefiles.deep/version/dir2/2.0/rc2,
tcl/testsuite/modulefiles.deep/version/dir2/3.0,
tcl/testsuite/modulefiles.other/1.1/version,
tcl/testsuite/modulefiles.other/1.2/version,
tcl/testsuite/modulefiles.other/1.3/version,
tcl/testsuite/modulefiles.other/README, tcl/testsuite/modulefiles/README,
tcl/testsuite/modulefiles/alias/1.0, tcl/testsuite/modulefiles/alias/2.0,
tcl/testsuite/modulefiles/append/0.1, tcl/testsuite/modulefiles/append/0.2,
tcl/testsuite/modulefiles/append/1.0, tcl/testsuite/modulefiles/append/2.0,
tcl/testsuite/modulefiles/append/2.1, tcl/testsuite/modulefiles/append/2.2,
tcl/testsuite/modulefiles/break/1.0, tcl/testsuite/modulefiles/break/2.0,
tcl/testsuite/modulefiles/break/3.0, tcl/testsuite/modulefiles/break/4.0,
tcl/testsuite/modulefiles/chdir/1.0, tcl/testsuite/modulefiles/chdir/2.0,
tcl/testsuite/modulefiles/chdir/3.0, tcl/testsuite/modulefiles/chdir/4.0,
tcl/testsuite/modulefiles/conflict/full,
tcl/testsuite/modulefiles/conflict/module,
tcl/testsuite/modulefiles/continue/1.0,
tcl/testsuite/modulefiles/continue/2.0,
tcl/testsuite/modulefiles/continue/3.0,
tcl/testsuite/modulefiles/continue/4.0, tcl/testsuite/modulefiles/empty/1.0,
tcl/testsuite/modulefiles/eschars/1.0, tcl/testsuite/modulefiles/exit/1.0,
tcl/testsuite/modulefiles/exit/2.0, tcl/testsuite/modulefiles/exit/3.0,
tcl/testsuite/modulefiles/help/2.0, tcl/testsuite/modulefiles/info/isloaded,
tcl/testsuite/modulefiles/info/mode1, tcl/testsuite/modulefiles/info/mode2,
tcl/testsuite/modulefiles/info/mode3, tcl/testsuite/modulefiles/info/mode4,
tcl/testsuite/modulefiles/info/mode5, tcl/testsuite/modulefiles/info/mode6,
tcl/testsuite/modulefiles/info/name, tcl/testsuite/modulefiles/info/shells,
tcl/testsuite/modulefiles/info/shellsexp,
tcl/testsuite/modulefiles/info/user, tcl/testsuite/modulefiles/info/userexp,
tcl/testsuite/modulefiles/loc_dv1/1.0,
tcl/testsuite/modulefiles/loc_dv1/2.0,
tcl/testsuite/modulefiles/loc_dv1/3.0,
tcl/testsuite/modulefiles/loc_dv2/.version,
tcl/testsuite/modulefiles/loc_dv2/1.0,
tcl/testsuite/modulefiles/loc_dv2/2.0,
tcl/testsuite/modulefiles/loc_dv3/.version,
tcl/testsuite/modulefiles/loc_dv3/1.0,
tcl/testsuite/modulefiles/loc_dv3/2.0,
tcl/testsuite/modulefiles/loc_dv4/.version,
tcl/testsuite/modulefiles/loc_dv4/1.0,
tcl/testsuite/modulefiles/loc_dv4/2.0,
tcl/testsuite/modulefiles/loc_dv6/1.0,
tcl/testsuite/modulefiles/loc_dv6/2.0/1.0,
tcl/testsuite/modulefiles/loc_dv7/.version,
tcl/testsuite/modulefiles/loc_dv7/1.0,
tcl/testsuite/modulefiles/loc_dv7/2.0/1.0,
tcl/testsuite/modulefiles/loc_dv7/3.0,
tcl/testsuite/modulefiles/loc_dv8/.version,
tcl/testsuite/modulefiles/loc_dv8/1.0,
tcl/testsuite/modulefiles/loc_dv8/2.0, tcl/testsuite/modulefiles/loc_fq/1.0,
tcl/testsuite/modulefiles/loc_fq/2.0,
tcl/testsuite/modulefiles/loc_rc1/.modulerc,
tcl/testsuite/modulefiles/loc_rc1/1.0,
tcl/testsuite/modulefiles/loc_rc1/2.0,
tcl/testsuite/modulefiles/loc_rc2/.modulerc,
tcl/testsuite/modulefiles/loc_rc2/1.0,
tcl/testsuite/modulefiles/loc_rc2/2.0,
tcl/testsuite/modulefiles/loc_rc3/.modulerc,
tcl/testsuite/modulefiles/loc_rc3/1.0,
tcl/testsuite/modulefiles/loc_rc3/2.0,
tcl/testsuite/modulefiles/loc_rc3/3.0,
tcl/testsuite/modulefiles/loc_rc4/.modulerc,
tcl/testsuite/modulefiles/loc_rc4/.version,
tcl/testsuite/modulefiles/loc_rc4/1.0,
tcl/testsuite/modulefiles/loc_rc4/2.0,
tcl/testsuite/modulefiles/loc_rc4/3.0,
tcl/testsuite/modulefiles/loc_rc5/.modulerc,
tcl/testsuite/modulefiles/loc_rc5/1.0,
tcl/testsuite/modulefiles/loc_rc5/2.0,
tcl/testsuite/modulefiles/loc_sym/1.0,
tcl/testsuite/modulefiles/loc_sym/alias1,
tcl/testsuite/modulefiles/loc_sym/alias2,
tcl/testsuite/modulefiles/loc_sym/alias3,
tcl/testsuite/modulefiles/loc_sym/alias4,
tcl/testsuite/modulefiles/loc_sym/alias5,
tcl/testsuite/modulefiles/loc_sym/alias6,
tcl/testsuite/modulefiles/loc_sym/exec1,
tcl/testsuite/modulefiles/loc_sym/exec2,
tcl/testsuite/modulefiles/loc_sym/getvers1,
tcl/testsuite/modulefiles/loc_sym/getvers2,
tcl/testsuite/modulefiles/loc_sym/getvers3,
tcl/testsuite/modulefiles/loc_sym/getvers4,
tcl/testsuite/modulefiles/loc_sym/getvers5,
tcl/testsuite/modulefiles/loc_sym/getvers6,
tcl/testsuite/modulefiles/loc_sym/getvers7,
tcl/testsuite/modulefiles/loc_sym/getvers8,
tcl/testsuite/modulefiles/loc_sym/versinf1,
tcl/testsuite/modulefiles/loc_sym/versinf2,
tcl/testsuite/modulefiles/loc_sym/versinf3,
tcl/testsuite/modulefiles/loc_sym/versinf4,
tcl/testsuite/modulefiles/loc_sym/versinf5,
tcl/testsuite/modulefiles/loc_sym/versinf6,
tcl/testsuite/modulefiles/loc_sym/versinf7,
tcl/testsuite/modulefiles/loc_sym/version1,
tcl/testsuite/modulefiles/loc_sym/version10,
tcl/testsuite/modulefiles/loc_sym/version11,
tcl/testsuite/modulefiles/loc_sym/version12,
tcl/testsuite/modulefiles/loc_sym/version13,
tcl/testsuite/modulefiles/loc_sym/version14,
tcl/testsuite/modulefiles/loc_sym/version2,
tcl/testsuite/modulefiles/loc_sym/version3,
tcl/testsuite/modulefiles/loc_sym/version4,
tcl/testsuite/modulefiles/loc_sym/version5,
tcl/testsuite/modulefiles/loc_sym/version6,
tcl/testsuite/modulefiles/loc_sym/version7,
tcl/testsuite/modulefiles/loc_sym/version8,
tcl/testsuite/modulefiles/loc_sym/version9,
tcl/testsuite/modulefiles/log/badfac,
tcl/testsuite/modulefiles/log/err_both_1,
tcl/testsuite/modulefiles/log/err_both_2,
tcl/testsuite/modulefiles/log/err_file,
tcl/testsuite/modulefiles/log/err_syslog,
tcl/testsuite/modulefiles/module/2.0, tcl/testsuite/modulefiles/prepend/0.1,
tcl/testsuite/modulefiles/prepend/0.2,
tcl/testsuite/modulefiles/prepend/1.0,
tcl/testsuite/modulefiles/prepend/2.0,
tcl/testsuite/modulefiles/prepend/2.1,
tcl/testsuite/modulefiles/prepend/2.2,
tcl/testsuite/modulefiles/prereq/full,
tcl/testsuite/modulefiles/prereq/module,
tcl/testsuite/modulefiles/remove/2.0, tcl/testsuite/modulefiles/setenv/1.0,
tcl/testsuite/modulefiles/system/2.0,
tcl/testsuite/modulefiles/trace/all_off,
tcl/testsuite/modulefiles/trace/all_on,
tcl/testsuite/modulefiles/uname/domain,
tcl/testsuite/modulefiles/uname/machine,
tcl/testsuite/modulefiles/uname/nodename,
tcl/testsuite/modulefiles/uname/release,
tcl/testsuite/modulefiles/uname/sysname,
tcl/testsuite/modulefiles/uname/version,
tcl/testsuite/modulefiles/unsetenv/0.9,
tcl/testsuite/modulefiles/unsetenv/1.0,
tcl/testsuite/modulefiles/use/.version, tcl/testsuite/modulefiles/use/1.0,
tcl/testsuite/modulefiles/use/2.0, tcl/testsuite/modulefiles/use/2.1,
tcl/testsuite/modulefiles/use/2.2, tcl/testsuite/modulefiles/user/adv,
tcl/testsuite/modulefiles/user/advanced, tcl/testsuite/modulefiles/user/exp,
tcl/testsuite/modulefiles/user/expert, tcl/testsuite/modulefiles/user/nov,
tcl/testsuite/modulefiles/user/novice, tcl/testsuite/modulefiles/user/undef,
tcl/testsuite/modulefiles/verbose/msg,
tcl/testsuite/modulefiles/verbose/off, tcl/testsuite/modulefiles/verbose/on,
tcl/testsuite/modulefiles/verbose/undef,
tcl/testsuite/modulefiles/versions/1.1,
tcl/testsuite/modulefiles/versions/1.2,
tcl/testsuite/modulefiles/versions/1.3,
tcl/testsuite/modulefiles/whatis/lines,
tcl/testsuite/modulefiles/whatis/multiple,
tcl/testsuite/modulefiles/whatis/none,
tcl/testsuite/modulefiles/whatis/single,
tcl/testsuite/modulefiles/whatis/string,
tcl/testsuite/modules.00-init/005-init_ts.exp,
tcl/testsuite/modules.00-init/006-procs.exp,
tcl/testsuite/modules.00-init/010-environ.exp,
tcl/testsuite/modules.00-init/015-version.exp,
tcl/testsuite/modules.00-init/030-shells.exp,
tcl/testsuite/modules.00-init/050-modpath.exp,
tcl/testsuite/modules.00-init/080-begenv.exp,
tcl/testsuite/modules.00-init/090-switches.exp,
tcl/testsuite/modules.10-use/010-init_ts.exp,
tcl/testsuite/modules.10-use/030-use.exp,
tcl/testsuite/modules.10-use/031-append.exp,
tcl/testsuite/modules.10-use/040-load.exp,
tcl/testsuite/modules.10-use/070-unuse.exp,
tcl/testsuite/modules.80-deep/010-init_ts.exp,
tcl/testsuite/modules.80-deep/020-load.exp,
tcl/testsuite/modules.80-deep/030-display.exp,
tcl/testsuite/modules.80-deep/040-list.exp,
tcl/testsuite/modules.80-deep/999-cleanup.exp,
tcl/testsuite/modules.90-avail/010-init_ts.exp,
tcl/testsuite/modules.90-avail/020-single.exp,
tcl/testsuite/modules.90-avail/030-multiple.exp,
tcl/testsuite/modules.90-avail/040-wild.exp,
tcl/testsuite/modules.90-avail/050-long.exp,
tcl/testsuite/modules.90-avail/060-empty.exp, tcl/testsuite/not_installed,
tcl/testsuite/systest: Finally got testfiles working with the tcl version of
modules. There is still lots of work to be done but there are a good number
of tests that are working. Currently 80 of 90 are passing. At this point I
want to commit before fixing issues which involve modifying the main
application. Kent
* tcl/modulecmd.tcl: This commit does a couple of things. Bring back the
auto determine shell to call(needed for the next commit testsuite) It also
removes the need for using a temp file This commit also has a couple of
small fixes to make it more like the standard version of modules as far as
output to the screen goes. Kent
2011-02-28 sirdude <sirdude>
* tcl/modulecmd.tcl: This commit does a few things to modulecmd.tcl It
cleans up some unused global vars Fixes some spacing in some report
statements as well as fixes some debugging statements adds a ubuntu specific
bit of code to uname so uname release returns the codename of an ubuntu
install Finally in getPathToModule I commented out the Check for aliases
bit of code This is already done at the top level so no need to do it again.
(If someone finds a case where this is needed let me know and I'll add it
back in) Kent
2010-11-12 rkowen <rkowen>
* doc/module.1.in: Updated the man page with regards to the package
modulefile directories.
* NEWS, doc/module.1.in, doc/modulefile.4.in, init/bash.in, init/cmake.in,
init/csh.in, init/ksh.in, init/perl.pm.in, init/python.py.in, init/sh.in,
init/zsh.in, main.c, modulefiles/modules.in, modules_def.h: * Removed the
$MODULESHOME env.var. which is not used at all.
* ChangeLog, Makefile.am, NEWS, configure.ac, doc/module.1.in,
init/.modulespath.in, init/Makefile.am, init/bash.in,
init/bash_completion.in, init/cmake.in, init/csh.in, init/ksh.in,
init/perl.pm.in, init/python.py.in, init/sh.in, init/zsh.in, main.c,
modulefiles/Makefile.am: * Reworked configuration and Makefile for
fine-grain control of certain paths and config files.
2010-11-11 rkowen <rkowen>
* ModuleCmd_Load.c, NEWS: Rolled in the Modules 3.2.9 version. * Fix the
coexistence of load/remove flags (Martin Siegert)
* ModuleCmd_Load.c, NEWS: * Fix the coexistence of load/remove flags (due to
Martin Siegert)
* ChangeLog, Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Clear.c,
ModuleCmd_Display.c, ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c,
ModuleCmd_Load.c, ModuleCmd_Purge.c, ModuleCmd_Refresh.c,
ModuleCmd_Switch.c, ModuleCmd_Update.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c,
NEWS, TODO, cmdAlias.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdLog.c,
cmdMisc.c, cmdModule.c, cmdPath.c, cmdSetenv.c, cmdTrace.c, cmdUlvl.c,
cmdUname.c, cmdVerbose.c, cmdVersion.c, cmdWhatis.c, cmdXResource.c,
config/emtcl.m4, config/tcl.m4, configure.ac, doc/.cvsignore,
doc/module.1.in, doc/modulefile.4.in, error.c, etc/add.modules.in,
etc/global/bashrc.in, etc/global/csh.modules.in,
etc/global/profile.modules.in, etc/mkroot.in, ext/add.ext.in, ext/mkroot.in,
init.c, init/.modulespath.in, init/Makefile.am, init/bash.in, init/cmake.in,
init/csh.in, init/ksh.in, init/perl.pm.in, init/python.py.in, init/sh.in,
init/zsh.in, locate_module.c, main.c, modulefiles/Makefile.am,
modulefiles/dot.in, modulefiles/module-cvs.in, modulefiles/module-info.in,
modulefiles/modules.in, modulefiles/null.in, modulefiles/use.own.in,
modulefiles/version.in, modules.lsm.in, modules_def.h,
testsuite/config/unix.exp, testsuite/modulefiles.deep/modulerc/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/1.0,
testsuite/modulefiles.deep/modulerc/dir1/2.0,
testsuite/modulefiles.deep/modulerc/dir2/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/.modulerc,
testsuite/modulefiles.deep/modulerc/dir2/1.0/rc1,
testsuite/modulefiles.deep/modulerc/dir2/1.0/rc2,
testsuite/modulefiles.deep/modulerc/dir2/2.0,
testsuite/modulefiles.deep/modulerc/dir2/3.0,
testsuite/modulefiles.deep/plain/dir1/1.0,
testsuite/modulefiles.deep/plain/dir1/2.0,
testsuite/modulefiles.deep/plain/dir2/1.0,
testsuite/modulefiles.deep/plain/dir2/2.0,
testsuite/modulefiles.deep/version/.version,
testsuite/modulefiles.deep/version/dir1/.version,
testsuite/modulefiles.deep/version/dir1/1.0,
testsuite/modulefiles.deep/version/dir1/2.0,
testsuite/modulefiles.deep/version/dir2/.version,
testsuite/modulefiles.deep/version/dir2/1.0,
.../modulefiles.deep/version/dir2/2.0/.version,
testsuite/modulefiles.deep/version/dir2/2.0/rc1,
testsuite/modulefiles.deep/version/dir2/2.0/rc2,
testsuite/modulefiles.deep/version/dir2/3.0,
testsuite/modulefiles/break/2.0, testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/100-loglevel.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/040-list.exp,
testsuite/modules.80-deep/999-cleanup.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp, utility.c, version.c,
xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Avail.c.src.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Clear.c.src.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Display.c.src.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Help.c.src.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_Init.c.src.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_List.c.src.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Load.c.src.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Purge.c.src.html,
xref/ModuleCmd_Refresh.c.html, xref/ModuleCmd_Refresh.c.src.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Switch.c.src.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Update.c.src.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Use.c.src.html,
xref/ModuleCmd_Whatis.c.html, xref/ModuleCmd_Whatis.c.src.html,
xref/cmdAlias.c.html, xref/cmdAlias.c.src.html, xref/cmdChdir.c.html,
xref/cmdChdir.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdTrace.c.html, xref/cmdTrace.c.src.html, xref/cmdUlvl.c.html,
xref/cmdUlvl.c.src.html, xref/cmdUname.c.html, xref/cmdUname.c.src.html,
xref/cmdVerbose.c.html, xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/cxref.apdx.html, xref/cxref.function,
xref/cxref.html, xref/cxref.include, xref/cxref.typedef,
xref/cxref.variable, xref/error.c.html, xref/error.c.src.html,
xref/getopt.c.html, xref/getopt.c.src.html, xref/init.c.html,
xref/init.c.src.html, xref/locate_module.c.html,
xref/locate_module.c.src.html, xref/main.c.html, xref/main.c.src.html,
xref/utility.c.html, xref/utility.c.src.html, xref/version.c.html,
xref/version.c.src.html: Setting up the modules-3-2-9 branch.
2010-11-04 rkowen <rkowen>
* locate_module.c: Using a const char * to remove a compiler warning
message.
2010-10-18 rkowen <rkowen>
* NEWS, cmdVersion.c, doc/modulefile.4.in,
testsuite/modulefiles.deep/modulerc/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/.modulerc,
testsuite/modulefiles/loc_rc3/.modulerc,
testsuite/modulefiles/loc_rc4/.modulerc: * Let the "module-version" command
use a "name" of '.' for "this" module directory ... useful for deep
modulefile directories.
2010-10-18 sirdude <sirdude>
* tcl/modulecmd.tcl: small fixes to module-info Kent
2010-10-14 rkowen <rkowen>
* ModuleCmd_Avail.c, configure.ac, init.c, locate_module.c, main.c,
modules_def.h: Added in a skipdirs object with the name of source code
management directories to skip, unless the directory has a module dot file
(.version or .modulerc). Fixed problem with the po/Makefile.*
2010-10-11 rkowen <rkowen>
* cmdVersion.c, locate_module.c, modules_def.h: Rolled in some changes from
the mfiles branch.
2010-10-08 rkowen <rkowen>
* ModuleCmd_Avail.c, ModuleCmd_Init.c, ModuleCmd_Load.c, ModuleCmd_Purge.c,
ModuleCmd_Switch.c, ModuleCmd_Update.c, ModuleCmd_Whatis.c, cmdConflict.c,
cmdInfo.c, cmdIsLoaded.c, cmdModule.c, cmdPath.c, cmdUname.c, cmdVersion.c,
cmdWhatis.c, cmdXResource.c, init.c, locate_module.c, main.c, utility.c,
utilmem.c: Simplified the conditional tests for NULL.
* ModuleCmd_Use.c, ModuleCmd_Whatis.c, cmdChdir.c, cmdConflict.c,
locate_module.c, modules_def.h, utility.c: Hid most of the stat() calls
behind is_(), an internal function.
2010-10-07 rkowen <rkowen>
* cmdVersion.c, doc/modulefile.4.in, locate_module.c,
testsuite/modulefiles.deep/modulerc/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/.modulerc,
testsuite/modulefiles.deep/modulerc/dir1/1.0,
testsuite/modulefiles.deep/modulerc/dir1/2.0,
testsuite/modulefiles.deep/modulerc/dir2/.modulerc,
.../modulefiles.deep/modulerc/dir2/1.0/.modulerc,
testsuite/modulefiles.deep/modulerc/dir2/1.0/rc1,
testsuite/modulefiles.deep/modulerc/dir2/1.0/rc2,
testsuite/modulefiles.deep/modulerc/dir2/2.0,
testsuite/modulefiles.deep/modulerc/dir2/3.0,
testsuite/modulefiles.deep/plain/dir1/1.0,
testsuite/modulefiles.deep/plain/dir1/2.0,
testsuite/modulefiles.deep/plain/dir2/1.0,
testsuite/modulefiles.deep/plain/dir2/2.0,
testsuite/modulefiles.deep/version/.version,
testsuite/modulefiles.deep/version/dir1/.version,
testsuite/modulefiles.deep/version/dir1/1.0,
testsuite/modulefiles.deep/version/dir1/2.0,
testsuite/modulefiles.deep/version/dir2/.version,
testsuite/modulefiles.deep/version/dir2/1.0,
.../modulefiles.deep/version/dir2/2.0/.version,
testsuite/modulefiles.deep/version/dir2/2.0/rc1,
testsuite/modulefiles.deep/version/dir2/2.0/rc2,
testsuite/modulefiles.deep/version/dir2/3.0,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.80-deep/010-init_ts.exp,
testsuite/modules.80-deep/020-load.exp,
testsuite/modules.80-deep/030-display.exp,
testsuite/modules.80-deep/040-list.exp,
testsuite/modules.80-deep/999-cleanup.exp: Rolled in the deep modulefile
changes from version 3.2.8.
* modulefiles/module-cvs.in, modulefiles/modules.in: Rolled in the
modulefile changes from version 3.2.8.
* ChangeLog, Makefile.am: Rolled in the Makefile.am / library order fix from
version 3.2.8.
2010-10-05 rkowen <rkowen>
* doc/module.1.in: Updated with sections on initializing modules for perl
and python from version 3.2.8.
* ModuleCmd_Purge.c: Merged the fix for multiple module purge from version
3.2.8.
* ChangeLog, NEWS, config/emtcl.m4, config/tcl.m4, configure.ac,
testsuite/modules.70-maint/070-display.exp: Rolled in from version 3.2.8 the
configure --with-man-path option and the fixed emtcl.m4 which corrects the
--with-tcl and related options, and the --without-x test variance.
2010-10-04 rkowen <rkowen>
* cmdConflict.c, doc/module.1.in, init.c, init/Makefile.am, init/cmake.in,
init/{perl.in => perl.pm.in}, init/python.in, init/python.py.in,
testsuite/modulefiles/info/shellsexp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp, utility.c: Rolled in the cmake
addition from version 3.2.8, and the new perl.pm & python.py init files.
2010-10-01 sirdude <sirdude>
* tcl/modulecmd.tcl: Patches from John Tseng, Fixes an issue with perl
autoinit by adding tclsh to the call Updates to module-version. Kent
2010-07-27 rkowen <rkowen>
* cmdChdir.c, init/bash_completion.in, testsuite/modulefiles/alias/1.0,
testsuite/modulefiles/append/0.1, testsuite/modulefiles/append/0.2,
testsuite/modulefiles/append/1.0, testsuite/modulefiles/append/2.1,
testsuite/modulefiles/append/2.2, testsuite/modulefiles/break/4.0,
testsuite/modulefiles/continue/1.0, testsuite/modulefiles/continue/2.0,
testsuite/modulefiles/continue/3.0, testsuite/modulefiles/continue/4.0,
testsuite/modulefiles/exit/1.0, testsuite/modulefiles/exit/2.0,
testsuite/modulefiles/exit/3.0, testsuite/modulefiles/prepend/0.1,
testsuite/modulefiles/prepend/0.2, testsuite/modulefiles/prepend/1.0,
testsuite/modulefiles/prepend/2.1, testsuite/modulefiles/prepend/2.2,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/175-swap2.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/999-cleanup.exp: Base version is 3-2-0, then
merged to 3-2-7.
2010-05-28 sirdude <sirdude>
* tcl/modulecmd.tcl: Last patch from Gerrit Renker This one makes it so
module switch tries to swap the order if the user messed it up. If you type:
module switch new old instead of: module switch old new it will attempt to
correct it. Kent
* tcl/modulecmd.tcl: Another patch by Gerrit Renker This one makes module
display/show more similar to the c version of modules. Kent
* tcl/modulecmd.tcl: Two more patches by Gerrit Renker These two clean up
the "version" info and makes the startup files more compatable with the c
version of modules. Kent
* tcl/modulecmd.tcl: This is patch #6 from Gerrit Renker This patch
increased the CSH_LIMIT to the same as linux's default. (This seams
reasonable, if people have older machines that have issues they can always
drop it back down to a lower value) Kent
* tcl/modulecmd.tcl: This is patch #5 from Gerrit Renker This one improves
escaping of special symbols Kent
* tcl/modulecmd.tcl: Patch #4 from Gerrit Renker This one cleans up dynamic
columns and makes it autodetect Kent
2010-05-27 sirdude <sirdude>
* tcl/modulecmd.tcl: small typo in last patch was missing a $ Kent
* tcl/modulecmd.tcl: Patch #3 submitted by Gerrit Renker This one fixes a
heck of a lot of typo's. (Spelling isn't my strong suit) :) Kent
* tcl/modulecmd.tcl: Two patches by Gerrit Renker The first one fixes an
issue with sourcing a .versin/.modulerc over and over the second one fixes
up listModules so that it behaves better. (Gerrit has submitted a number of
patches, this is just two of them) Kent
2010-05-24 sirdude <sirdude>
* tcl/modulecmd.tcl: This is a patch by Gerrit Renker to fix an issue with
_LMFILES_ not having correct data when nesting module load/unload commands
inside of other modules. Kent
2009-10-15 rkowen <rkowen>
* modulefiles/.cvsignore: Ignore the generated notavail modulefile
* NEWS, configure.ac, modulefiles/Makefile.am, modulefiles/notavail.in: *
Added the "notavail" modulefile (as shown in man page)
* init.c, locate_module.c, main.c: Resolved some minor warnings.
* Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Init.c, ModuleCmd_List.c,
ModuleCmd_Load.c, ModuleCmd_Refresh.c, ModuleCmd_Switch.c,
ModuleCmd_Whatis.c, NEWS, PROBLEMS, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c,
cmdLog.c, cmdVersion.c, configure.ac, error.c, init.c, locate_module.c,
main.c, modules_def.h, ovec.c, ovec.h, testsuite/etc/{rc => modulerc},
testsuite/modules.20-locate/060-rc.exp, utility.c, utilobj.c, uvec.c: Allow
loading and unloading the .modulerc & .version files Removed the Tcl
intrepretor from many of the locate_modulefile utility routines. Simplified
the error code with uvec. Added "tag" to MHash object for existence testing.
Passes all tests but 2 generate "duplicate version symbol ... found". Merged
in from the mfiles branch.
2009-10-12 rkowen <rkowen>
* ChangeLog: Updated with 'mpath' merge.
* ModuleCmd_Avail.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c, NEWS,
cmdConflict.c, cmdIsLoaded.c, locate_module.c, main.c, modules_def.h,
testsuite/modules.10-use/040-load.exp, utility.c: Merged in the 'mpath'
branch changes.
2009-09-22 rkowen <rkowen>
* init/.modulespath.in, init/Makefile.am, init/bash.in, init/csh.in,
init/ksh.in, init/python.in, init/sh.in, init/zsh.in: Merged in the final of
the 3.2.7b changes to the init/ files.
* Makefile.am: Added init/bash_completion.in into the distribution list.
* init/bash.in, init/csh.in, init/ksh.in, init/python.in, init/sh.in,
init/zsh.in: Changed the sed '\t' to a tab char so it would work on Solaris.
2009-09-02 rkowen <rkowen>
* ChangeLog, cmdConflict.c, cmdLog.c, error.c,
testsuite/modules.50-cmds/100-loglevel.exp, utility.c,
xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Avail.c.src.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Clear.c.src.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Display.c.src.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Help.c.src.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_Init.c.src.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_List.c.src.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Load.c.src.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Purge.c.src.html,
xref/ModuleCmd_Refresh.c.html, xref/ModuleCmd_Refresh.c.src.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Switch.c.src.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Update.c.src.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Use.c.src.html,
xref/ModuleCmd_Whatis.c.html, xref/ModuleCmd_Whatis.c.src.html,
xref/cmdAlias.c.html, xref/cmdAlias.c.src.html, xref/cmdChdir.c.html,
xref/cmdChdir.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdUlvl.c.html, xref/cmdUlvl.c.src.html, xref/cmdUname.c.html,
xref/cmdUname.c.src.html, xref/cmdVerbose.c.html,
xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/config.h.html, xref/config.h.src.html,
xref/cxref.apdx.html, xref/cxref.function, xref/cxref.html,
xref/cxref.include, xref/cxref.typedef, xref/cxref.variable,
xref/error.c.html, xref/error.c.src.html, xref/getopt.c.html,
xref/getopt.c.src.html, xref/init.c.html, xref/init.c.src.html,
xref/locate_module.c.html, xref/locate_module.c.src.html, xref/main.c.html,
xref/main.c.src.html, xref/modules_def.h.html, xref/modules_def.h.src.html,
xref/utility.c.html, xref/utility.c.src.html, xref/version.c.html: Merged in
the mlist code clean up changes.
2009-09-01 rkowen <rkowen>
* ChangeLog, xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Avail.c.src.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Clear.c.src.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Display.c.src.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Help.c.src.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_Init.c.src.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_List.c.src.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Load.c.src.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Purge.c.src.html,
xref/ModuleCmd_Refresh.c.html, xref/ModuleCmd_Refresh.c.src.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Switch.c.src.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Update.c.src.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Use.c.src.html,
xref/ModuleCmd_Whatis.c.html, xref/ModuleCmd_Whatis.c.src.html,
xref/cmdAlias.c.html, xref/cmdAlias.c.src.html, xref/cmdChdir.c.html,
xref/cmdChdir.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdTrace.c.html, xref/cmdTrace.c.src.html, xref/cmdUlvl.c.html,
xref/cmdUlvl.c.src.html, xref/cmdUname.c.html, xref/cmdUname.c.src.html,
xref/cmdVerbose.c.html, xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/config.h.html, xref/config.h.src.html,
xref/cxref.apdx.html, xref/cxref.function, xref/cxref.html,
xref/cxref.include, xref/cxref.typedef, xref/cxref.variable,
xref/error.c.html, xref/error.c.src.html, xref/getopt.c.html,
xref/getopt.c.src.html, xref/init.c.html, xref/init.c.src.html,
xref/locate_module.c.html, xref/locate_module.c.src.html, xref/main.c.html,
xref/main.c.src.html, xref/modules_def.h.html, xref/modules_def.h.src.html,
xref/utility.c.html, xref/utility.c.src.html, xref/utilmem.c.html,
xref/utilmem.c.src.html, xref/utilobj.c.html, xref/utilobj.c.src.html,
xref/uvec.c.html, xref/uvec.c.src.html, xref/version.c.html: Updated the
cxref pages.
* LICENSE.LGPL, Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Clear.c,
ModuleCmd_Init.c, ModuleCmd_List.c, ModuleCmd_Load.c, ModuleCmd_Use.c,
ModuleCmd_Whatis.c, NEWS, cmdAlias.c, cmdChdir.c, cmdConflict.c, cmdInfo.c,
cmdIsLoaded.c, cmdLog.c, cmdModule.c, cmdPath.c, cmdSetenv.c, cmdUlvl.c,
cmdUname.c, cmdVerbose.c, cmdVersion.c, cmdWhatis.c, cmdXResource.c,
configure.ac, error.c, init.c, locate_module.c, main.c,
modulefiles/.cvsignore, modulefiles/HOME.in, modulefiles/Makefile.am,
modules_def.h, utility.c, utilmem.c, utilobj.c, uvec.c, uvec.h: Merging in
the changes from the mlist branch.
2009-08-24 rkowen <rkowen>
* cmdConflict.c: Lost value of notloaded_flag in conversion to objv.
2009-08-23 rkowen <rkowen>
* ChangeLog: Updated.
* ModuleCmd_Avail.c, ModuleCmd_Clear.c, ModuleCmd_Display.c,
ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c, ModuleCmd_Load.c,
ModuleCmd_Purge.c, ModuleCmd_Refresh.c, ModuleCmd_Switch.c,
ModuleCmd_Update.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c, NEWS, cmdAlias.c,
cmdChdir.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdLog.c, cmdMisc.c,
cmdModule.c, cmdPath.c, cmdSetenv.c, cmdUlvl.c, cmdUname.c, cmdVerbose.c,
cmdVersion.c, cmdWhatis.c, cmdXResource.c, configure.ac, error.c, getopt.c,
init.c, locate_module.c, main.c, modules_def.h, utility.c, utilobj.c: Merged
the nodeb branch into the main trunk.
* ChangeLog: Updated.
* .indent.pro, ChangeLog, Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Clear.c,
ModuleCmd_Display.c, ModuleCmd_Help.c, ModuleCmd_Load.c,
ModuleCmd_Refresh.c, ModuleCmd_Update.c, ModuleCmd_Use.c,
ModuleCmd_Whatis.c, NEWS, cmdAlias.c, cmdChdir.c, cmdConflict.c, cmdInfo.c,
cmdIsLoaded.c, cmdLog.c, cmdMisc.c, cmdModule.c, cmdPath.c, cmdSetenv.c,
cmdUlvl.c, cmdUname.c, cmdVerbose.c, cmdVersion.c, cmdWhatis.c,
cmdXResource.c, error.c, init.c, locate_module.c, main.c, modules_def.h,
testsuite/modulefiles/chdir/1.0, testsuite/modulefiles/chdir/2.0,
testsuite/modulefiles/chdir/3.0, testsuite/modulefiles/chdir/4.0,
testsuite/modules.50-cmds/240-chdir.exp, utility.c, utilobj.c: Merged in the
btclobj1 branch changes to the main trunk - converted the module commands to
Tcl dual-ported objects.
2009-08-18 rkowen <rkowen>
* xref/cmdChdir.c.html, xref/cmdChdir.c.src.html: cmdChdir is now part of
the xref mix.
2009-08-14 rkowen <rkowen>
* Makefile.am, xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Avail.c.src.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Clear.c.src.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Display.c.src.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Help.c.src.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_Init.c.src.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_List.c.src.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Load.c.src.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Purge.c.src.html,
xref/ModuleCmd_Refresh.c.html, xref/ModuleCmd_Refresh.c.src.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Switch.c.src.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Update.c.src.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Use.c.src.html,
xref/ModuleCmd_Whatis.c.html, xref/ModuleCmd_Whatis.c.src.html,
xref/cmdAlias.c.html, xref/cmdAlias.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdUlvl.c.html, xref/cmdUlvl.c.src.html, xref/cmdUname.c.html,
xref/cmdUname.c.src.html, xref/cmdVerbose.c.html,
xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/config.h.html, xref/config.h.src.html,
xref/cxref.apdx.html, xref/cxref.function, xref/cxref.html,
xref/cxref.include, xref/cxref.typedef, xref/cxref.variable,
xref/error.c.html, xref/error.c.src.html, xref/getopt.c.html,
xref/getopt.c.src.html, xref/getopt.h.html, xref/getopt.h.src.html,
xref/init.c.html, xref/init.c.src.html, xref/locate_module.c.html,
xref/locate_module.c.src.html, xref/main.c.html, xref/main.c.src.html,
xref/modules_def.h.html, xref/modules_def.h.src.html, xref/utility.c.html,
xref/utility.c.src.html, xref/version.c.html, xref/version.c.src.html: Got
cxref running and regenerated the cross references.
* locate_module.c: Cleaned up a memory error and redundant code.
2009-08-13 rkowen <rkowen>
* ChangeLog, ModuleCmd_Avail.c, ModuleCmd_Init.c, ModuleCmd_Purge.c,
ModuleCmd_Refresh.c, ModuleCmd_Update.c, NEWS, cmdChdir.c, cmdModule.c,
cmdVersion.c, cmdWhatis.c, cmdXResource.c, configure.ac, locate_module.c,
main.c, modules_def.h, utility.c: * All string allocation is performed by a
common internal routine * --disable-beginenv is now the configuration
default
2009-08-11 rkowen <rkowen>
* ModuleCmd_Avail.c, ModuleCmd_Clear.c, ModuleCmd_Display.c,
ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c, ModuleCmd_Load.c,
ModuleCmd_Purge.c, ModuleCmd_Refresh.c, ModuleCmd_Switch.c,
ModuleCmd_Update.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c, NEWS, README, TODO,
cmdAlias.c, cmdChdir.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdLog.c,
cmdMisc.c, cmdModule.c, cmdPath.c, cmdSetenv.c, cmdUlvl.c, cmdUname.c,
cmdVerbose.c, cmdVersion.c, cmdWhatis.c, cmdXResource.c, configure.ac,
doc/module.1.in, error.c, getopt.c, init.c, locate_module.c, main.c,
modules_def.h, testsuite/modulefiles/.moduleavailcache,
testsuite/modulefiles/.moduleavailcache.202,
testsuite/modulefiles/.moduleavailcachedir,
testsuite/modulefiles/.moduleavailcachedir.202,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.70-maint/060-apropos.exp, utility.c: Merged in the
bnocache branch to the main source tree.
2009-08-10 rkowen <rkowen>
* ChangeLog: Updated.
* ModuleCmd_Display.c, NEWS, cmdLog.c, configure.ac, error.c, modules_def.h:
Merged the syslogging changes from the bsyslog branch.
2009-08-03 rkowen <rkowen>
* ChangeLog: Updated.
* Makefile.am, NEWS, cmdInfo.c, cmdLog.c, cmdModule.c, cmdTrace.c,
configure.ac, doc/modulefile.4.in, init.c, modulefiles/module-info.in,
modules_def.h, testsuite/modulefiles/help/2.0,
testsuite/modulefiles/trace/all_off, testsuite/modulefiles/trace/all_on,
testsuite/modulefiles/trace/colon, testsuite/modulefiles/trace/dilo_onoff,
testsuite/modulefiles/trace/disp_onoff,
testsuite/modulefiles/trace/disptrac, testsuite/modulefiles/trace/load_all1,
testsuite/modulefiles/trace/load_all2, testsuite/modulefiles/trace/load_on,
testsuite/modulefiles/trace/load_onoff,
testsuite/modulefiles/trace/load_ovr,
testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.35-trace/020-default.exp,
testsuite/modules.35-trace/030-all-on.exp,
testsuite/modules.35-trace/031-all-off.exp,
testsuite/modules.35-trace/040-load-all.exp,
testsuite/modules.35-trace/041-load-all.exp,
testsuite/modules.35-trace/042-load-on.exp,
testsuite/modules.35-trace/043-load-onoff.exp,
testsuite/modules.35-trace/044-load-ovr.exp,
testsuite/modules.35-trace/050-disp-onoff.exp,
testsuite/modules.35-trace/060-dilo-onoff.exp,
testsuite/modules.35-trace/070-colon.exp,
testsuite/modules.35-trace/095-cleanup.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.70-maint/070-display.exp: Merged in the bnotrace branch
changes ... essentially removing the module-trace command.
* init/bash_completion.in: Added bash_completion init
* ChangeLog: Updated.
* Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Clear.c, ModuleCmd_Display.c,
ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c, ModuleCmd_Purge.c,
ModuleCmd_Refresh.c, ModuleCmd_Switch.c, ModuleCmd_Update.c,
ModuleCmd_Use.c, ModuleCmd_Whatis.c, cmdAlias.c, cmdChdir.c, cmdConflict.c,
cmdInfo.c, cmdIsLoaded.c, cmdLog.c, cmdMisc.c, cmdModule.c, cmdPath.c,
cmdSetenv.c, cmdTrace.c, cmdUlvl.c, cmdUname.c, cmdVerbose.c, cmdVersion.c,
cmdWhatis.c, cmdXResource.c, configure.ac, doc/module.1.in,
doc/modulefile.4.in, error.c, etc/global/bashrc.in,
etc/global/csh.modules.in, etc/global/profile.modules.in, init.c,
init/.modulespath.in, init/Makefile.am, init/bash.in, init/csh.in,
init/filter, init/ksh.in, init/perl.in, init/python.in, init/sh.in,
init/zsh.in, locate_module.c, modulefiles/Makefile.am, modules_def.h,
utility.c, version.c: Rolled in the remaining 3.2.7 changes to the main
branch.
2009-07-31 rkowen <rkowen>
* ChangeLog: Updated main branch with 3.2.7 changes.
* NEWS: Updated 3.2.7 changes.
2009-04-09 sirdude <sirdude>
* tcl/modulecmd.tcl: This is a patch by John Tseng, It adds the ability to
support Dynamic columns using stty you just setenv DYNAMIC_COLUMNS 1 and it
will start using them. Kent
* tcl/modulecmd.tcl: Fleshed out the debugging statements so most functions
have them now. Kent
2009-02-24 sirdude <sirdude>
* tcl/modulecmd.tcl: Some more cruft removal. Kent
* tcl/Makefile, tcl/init/modulerc, tcl/modulecmd.tcl: added synonym of
search for apropos/keyword Partialy contributed by Hunter Matthews. There
is still an issue with it though. If you have a malformed module it will
die. Probably there are other commands that die as well. Need to look at
it more. Kent
* tcl/modulecmd.tcl: Cleaned up some stuff that wasn't used and also fixed
some minor formating issues. Kent
* tcl/modulecmd.tcl: Updated the help dialog so its a bit more organized an
easier to read. Kent
* tcl/modulecmd.tcl: Patch by Hunter Matthews to clean up the output of
module avail a little bit. Kent
* tcl/modulecmd.tcl: Some patches submitted by Hunter Matthews adds --help
as a commandline option. fixes issues with modulerc file getting sourced
twice in sh and tcsh shells. Kent
2008-09-17 sirdude <sirdude>
* tcl/modulecmd.tcl: Small patch for differences in glob on various
platforms. Contributed by Thomas Zeiser Kent
2008-02-20 rkowen <rkowen>
* NEWS, cmdPath.c, configure.ac, init/bash.in,
testsuite/modulefiles/append/2.1, testsuite/modulefiles/append/2.2,
testsuite/modulefiles/prepend/2.1, testsuite/modulefiles/prepend/2.2,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/175-swap2.exp: Rolled in the 3.2.7 changes so far.
2007-10-29 rkowen <rkowen>
* ModuleCmd_Avail.c, NEWS: Rolled in the skip .git version control dirs in
modulefile dirs.
2007-10-23 sirdude <sirdude>
* tcl/modulecmd.tcl: updated ignored directories to include .svn and .git
Thanks to John Tseng. Kent
2007-09-05 sirdude <sirdude>
* tcl/modulecmd.tcl: Made it so that module use and module unuse work the
same way, I also added a little debugging info for both of them. Kent
2007-05-16 sirdude <sirdude>
* tcl/modulecmd.tcl: update to replaceFromList patch from Olly. adds a fix
for when item2 is empty. Kent
* tcl/modulecmd.tcl: Another great little patch by Olly Stephens, This one
makes it so that if a module has an error message in it module help
(modulefile) will still attempt to call the help function for that module.
Kent
* tcl/modulecmd.tcl: Another patch by Olly, This one extends some of the
shortcuts accepted. example module lo blah now works just like module load
blah Its not perfect but again better than what is there currently. Kent
* tcl/modulecmd.tcl: Another patch by Olly, This one makes it so that help
is displayed if a user types an invalid module command (Example: module
blah) or if a user just types module with no args. Kent
* tcl/modulecmd.tcl: Patch by Olly, Forces 0600 mode on the tmpfile when
opening it. Really we need to figure out how to remove the need for a
tmpfile, until then though this is still better than it was. Kent
2007-02-22 rkowen <rkowen>
* NEWS, locate_module.c: Rolled in 3.2.6 realloc() fix.
2007-02-14 rkowen <rkowen>
* NEWS, testsuite/modules.50-cmds/095-uname.exp: Rolled in 3.2.5 changes to
the uname test
* ModuleCmd_Avail.c, ModuleCmd_Update.c, ModuleCmd_Whatis.c, cmdConflict.c,
cmdLog.c, cmdModule.c, cmdTrace.c, cmdVersion.c, cmdWhatis.c,
cmdXResource.c, error.c, init.c, locate_module.c, modules_def.h, utility.c:
Rolled in the 3.2.5 module_malloc() wrapper.
2007-02-09 rkowen <rkowen>
* contrib/modules.ebuild: Gentoo ebuild script for modules, contributed by
Peter Fischer <peter.fischer@terrasel.de>
2006-12-19 sirdude <sirdude>
* tcl/modulecmd.tcl: updated module list so it skips modules with no name
for -l and -t (it now handles them like module list without options) Kent
2006-12-13 sirdude <sirdude>
* tcl/modulecmd.tcl: Fix provied by Eric Mastromarc reference counting was
not working for unload-path now it is again. Kent
2006-12-12 sirdude <sirdude>
* tcl/modulecmd.tcl: Modified prereq so its a logical OR for multiple
modulefies on one command line. example: prereq foo bar If you want it foo
AND bar do: prereq foo prereq bar Patch done by Chris Pruett Kent
2006-12-07 sirdude <sirdude>
* tcl/modulecmd.tcl: Patch provided by Thomas Zeiser, better fix for
reverting header to find dynamically what version of tclsh to use. It also
now sorts output of module avail. Kent
* tcl/modulecmd.tcl: reverting commit 1.75 where I removed the header
section that finds tclsh. Kent
2006-09-13 sirdude <sirdude>
* tcl/modulecmd.tcl: Changed (VAR)_modshare back to use g_def_seperator
instead of user defined variable. Currently there is an issue with doing
something like append-path -delem " " PATH /usr/bin append-path -delem " "
PATH /usr/local/bin append-path -delem ":" PATH /usr/sbin then loading that
module and unloading it... Because of the mixed delimiters the unload does
not work properly. It at least works for the basic case now though. Kent
2006-09-07 sirdude <sirdude>
* tcl/modulecmd.tcl: changed syntax of specifying a delimitor to match c
version of modules and also made sure you can use " " and { } as a
delimitor. Thanks go to Dr Reinhold Bader for this fix.... Kent
2006-08-23 sirdude <sirdude>
* tcl/modulecmd.tcl: "module use" (without args) was broken, now its fixed
again. Kent
* tcl/modulecmd.tcl: fixed revision variable stuff. Kent
* tcl/modulecmd.tcl: Added in cvs revision variables so that module help
prints out what version of cvs file was checked out. Kent
2006-08-16 sirdude <sirdude>
* tcl/modulecmd.tcl: this is a pathetic commit ;) Modified the comment for
g_user so that it says the right thing. Kent
2006-08-15 sirdude <sirdude>
* tcl/modulecmd.tcl: This commit removes the remaining warnings generated by
nagelfar redid a couple of calls to interp eval recoded the replaceFromList
function so it uses lreplace removed the removeFromList function and made it
call replaceFromList instead... I also added _LMFILES_ environment variable
haven't done anything with it yet though. (intent is to use it in unloading
a module) Kent
* tcl/modulecmd.tcl: removed all of the hardcoded default path seperators
":" and replaced with a variable. Kent
2006-08-14 sirdude <sirdude>
* tcl/init/.cvsignore: added scripts that get created so that they don't
show up in cvs update... Kent
* tcl/modulecmd.tcl: fixed a few calls to catch and made sure they called it
in a similar manor... (there are two more left that are slightly different
but I didn't take the time to figure them out) one of the fixes was posted
by Chris Pruett, and I just applied it where it needed it... :) Kent
* tcl/modulecmd.tcl: added an else statement that I dropped by accident when
merging module command and module command help slave functions... Also
reran frink so it looks pretty again... Kent
2006-08-13 sirdude <sirdude>
* tcl/modulecmd.tcl: more work on seperator specification. (removing
hardcoded ":"'s Kent
* tcl/modulecmd.tcl: combined a couple of duplicate statements in a switch.
Kent
* tcl/modulecmd.tcl: Start of allowing a spwcified seperator for commands.
Still needs a lot of work... Kent
* tcl/modulecmd.tcl: made module switch behave like it use to... (Sorry it
took so long to switch it back) now it does not recursively unload and
reload modules... This way seems more flexable and more intunitive to users.
Kent
2006-08-12 sirdude <sirdude>
* tcl/modulecmd.tcl: by accident shut off showing default module files....
Turning it back on. Kent
* tcl/modulecmd.tcl: module avail with flag_default_dir was broken This
fixes it. Kent
* tcl/modulecmd.tcl: Null module was causing problems with module avail -l
There were some odd settings for null which I just changed to "" everything
seems to work better this way so going to commit it. Kent
* tcl/modulecmd.tcl: Updated the help section so its more like the binary
module command... Kent
* tcl/init/bash.in, tcl/init/ksh.in, tcl/init/zsh.in: fix up bash's friends
so they work properly... Kent
* tcl/modulecmd.tcl: updated module-info so that it works with the
module-info module for the most part. There is still some work here. Patch
submitted by Mark Moraes Kent
2006-08-11 sirdude <sirdude>
* tcl/Makefile, tcl/modulecmd.tcl, testsuite/config/unix.exp: updated Make
test so it "works" again... combined functions for looking at .version and
modulerc files... Kent
* tcl/modulecmd.tcl: This one has been on my todo list for awhile now.
Reduced redundant code and made the slave for module help and executing a
module one function. Kent
* tcl/modulecmd.tcl: removed the following functions: module-log
module-verbosity module-user module-trace they were empty, if anyone ever
decides to do them they can add them back in. just trying to make this thing
a little leaner ;) Kent
* tcl/modulecmd.tcl: ran frink -e to make things look pretty again ;) Kent
* tcl/modulecmd.tcl: I used nagelfar.tcl (http://nagelfar.berlios.de/) a tcl
syntax checker and cleaned up most warnings from it. found a couple of typos
as well because of it.... Kent
* tcl/modulecmd.tcl: another typo. (was missing a $ for a variable) Kent
* tcl/modulecmd.tcl: Removed the code to find tclsh since its in the init
scripts no reason to duplicate it and probably will speed things up a bit
keeping it in the init files. Kent
* tcl/modulecmd.tcl: On irix with an older version of tclsh I was getting
errors with reportWarning and reportInternalBug not being defined when
there was a malformed module... made it so they were copied over to the
slave where needed. Kent
* tcl/modulecmd.tcl: missed some prints to stderr and I also fixed some
typos... Kent
* tcl/modulecmd.tcl: made $contact = emailaddress and modified
reportInternalError so it prints out the contact email address. Kent
* tcl/modulecmd.tcl: moved all puts stderr's to one of the report functions.
This could still use some cleaning up. (not really sure we need 3 report
functions) but its at least a little nicer. (Was thinking about changing it
to echo "$msg" instead of sending it to stderr... that way you could do
things like module avail | more and it would work... Need to do some more
testing on it though :) Kent
* tcl/init/csh.in, tcl/init/tcsh.in: removed extra quotes that didn't need
to be there. Kent
2006-06-15 rkowen <rkowen>
* locate_module.c: Rolled in 3.2.4 graceful handling of empty MODULEPATH
dirs.
2006-06-02 rkowen <rkowen>
* ChangeLog: update main.
2006-06-01 rkowen <rkowen>
* NEWS, doc/module.1.in, doc/modulefile.4.in, etc/add.modules.in,
etc/mkroot.in, ext/add.ext.in, ext/mkroot.in, init/.modulespath.in,
init/Makefile.am, init/bash.in, init/ksh.in, init/sh.in, init/zsh.in,
modulefiles/dot.in, modulefiles/module-cvs.in, modulefiles/module-info.in,
modulefiles/modules.in, modulefiles/null.in, modulefiles/use.own.in,
modulefiles/version.in: Rolled in the 3.2.3 top_builddir and
@configure_input\@ changes.
* NEWS, cmdPath.c, doc/modulefile.4.in, locate_module.c, modules_def.h,
testsuite/modulefiles/append/1.0, testsuite/modulefiles/prepend/1.0,
testsuite/modules.50-cmds/042-append-delim.exp,
testsuite/modules.50-cmds/047-app-del-undo.exp,
testsuite/modules.50-cmds/052-prepend-delim.exp,
testsuite/modules.50-cmds/057-pre-del-undo.exp: Rolled in the 3.2.3
prepend-path/append-path --delim changes.
* ModuleCmd_Init.c, cmdConflict.c, cmdIsLoaded.c, cmdPath.c,
locate_module.c, main.c, modules_def.h: Rolled in the pre-changes for
handling arbitrary delimiters for lists (instead of ':').
2006-05-31 sirdude <sirdude>
* tcl/modulecmd.tcl: * minor typos in error output fixed * support for
modules which are known to have no dependencies. Presently a module switch
foo/4 foo/5 will reload all modules which have been loaded after foo. But
sometimes this may be a nuisance, especially if module files implement their
own reloading mechanism. Hence the modules entered as a ":" separated list
into the environment variable MODULE_NORELOAD will not be reloaded during a
module switch. The "module reload" command however still reloads the complet
e module set. This is upward compatible since the original functionality is
re tained if MODULE_RELOAD is left empty. patch provided by Dr. Reinhold
Bader Kent
2006-05-25 rkowen <rkowen>
* ChangeLog, modules.lsm.in: Merged in the working LSM from 3.2.2
* ChangeLog, NEWS, testsuite/modulefiles/alias/1.0,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/076-alias-sub.exp,
testsuite/modules.50-cmds/078-refresh.exp, utility.c: Rolled in the 3.2.3
changes * the set-alias command will for Bourne shell derivatives substitute
the safe ${1+"$@"} for $*.
2006-05-19 rkowen <rkowen>
* Makefile.am, NEWS, init.c: Rolled in the TclX changes from 3-2-2.
2006-05-15 rkowen <rkowen>
* NEWS, error.c, main.c, testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.50-cmds/100-loglevel.exp: Rolled in the syslog related
changes from 3.2.3
2006-05-12 rkowen <rkowen>
* NEWS: Added a section for 3.3.x
* NEWS, cmdVersion.c: Folded in dgoldendias patch.
* ChangeLog, modules.lsm.in: Added the Title line, which must have gotten
lost in previous edits.
2006-05-04 rkowen <rkowen>
* ChangeLog, NEWS, config/emtcl.m4, config/tcl.m4, configure.ac, main.c:
Rolled in the 3.2.2 configure changes to the main development trunk.
2006-05-01 rkowen <rkowen>
* ModuleCmd_List.c, ModuleCmd_Refresh.c, ModuleCmd_Update.c,
ModuleCmd_Whatis.c, cmdLog.c, configure.ac, error.c, locate_module.c,
modules_def.h, testsuite/modulefiles/append/0.1,
testsuite/modulefiles/append/0.2, testsuite/modulefiles/prepend/0.1,
testsuite/modulefiles/prepend/0.2, testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp, utility.c: Rolled in the
xstrtok changes and tests from modules-3-2-2.
2006-04-10 rkowen <rkowen>
* ChangeLog, init/Makefile.am: Change from using . & .. to $(srcdir) and
$(top_srcdir) respectively. (Thanks to suggestion from Boris Boesler
<boesler.AT.ifn.et.tu-dresden.de>)
2006-03-23 rkowen <rkowen>
* init/csh.in: Rolled in init csh fix from 3.2.1
* ChangeLog: update.
* init/csh.in, testsuite/modules.00-init/006-procs.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.90-avail/050-long.exp, version.c: Merged in the 3.2.1
changes.
2006-03-07 rkowen <rkowen>
* ModuleCmd_Load.c, NEWS, cmdModule.c, doc/modulefile.4.in, main.c,
modules_def.h, testsuite/config/unix.exp, testsuite/modulefiles/break/2.0,
testsuite/modulefiles/break/4.0, testsuite/modulefiles/continue/1.0,
testsuite/modulefiles/continue/2.0, testsuite/modulefiles/continue/3.0,
testsuite/modulefiles/continue/4.0, testsuite/modulefiles/exit/1.0,
testsuite/modulefiles/exit/2.0, testsuite/modulefiles/exit/3.0,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/210-exit.exp,
testsuite/modules.50-cmds/220-continue.exp,
testsuite/modules.50-cmds/230-loop.exp,
testsuite/modules.50-cmds/999-cleanup.exp, utility.c: Rolled in the 3.2.0
exit changes.
2006-02-09 rkowen <rkowen>
* init/Makefile.am: Fixed the tcsh target.
2006-02-06 rkowen <rkowen>
* cmdModule.c, cmdPath.c, init.c, modules_def.h: Rolled in the
Tcl_GetStringResult() changes from 3.2.0
* modulefiles/lang/.mklang: Fine-tuned the logic of dealing with $LANG and
$LANG_STACK. Added some target language verbage.
* .cvsignore, ChangeLog, Makefile.am, modulefiles/Makefile.am,
modulefiles/lang/.cvsignore, modulefiles/lang/.mklang, po/.cvsignore,
po/ChangeLog, po/LINGUAS, po/Makevars, po/POTFILES.in: Added the lang
modulefiles and upgraded the Makefile.am-s to create a working distribution
tar ball.
2006-02-05 rkowen <rkowen>
* Makefile.am: After 'gettextize'.
* configure.ac: The changes of 'gettextize', note that autopoint is not too
smart with AC_CONFIG_AUX_DIR ... it appends on any text after macro to the
directory name. So do not add 'dnl' for comments or to escape the \n.
2006-02-04 rkowen <rkowen>
* ChangeLog: Updated.
* version.c: The current version for the i18n mods is 3.3 alpha
* main.c: Alert translators to the "common" strings.
* error.c: Fixed grammar error.
* utility.c: [ 730293 ] remove-path won't remove paths with a $ in it. Made
the change and the tests ran fine. I'm not sure what cleanse_path() is
supposed to do.
* init.c: [ 672612 ] Tcl command execution failed and modules use pointed
out the use of the deprecated Tcl fn Tcl_VarEval(). Replaced this with
Tcl_Eval() and added some Tcl logic to handle when $auto_path is not set.
* init/perl.in: Fixed where it needs to reference $ENV{...} [ 705033 ] Bug
in init/perl
* init/perl.in: Added 1 at end so perl/init can be used by the perl require.
* cmdConflict.c: Removed i18n from the debugging statements ... not
necessary.
* Makefile.am, utility.c: Rolled in the changes from 3-2-0 patch1
2006-01-31 rkowen <rkowen>
* ModuleCmd_Avail.c, ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c,
ModuleCmd_Update.c, ModuleCmd_Use.c, ModuleCmd_Whatis.c, cmdConflict.c,
cmdModule.c, cmdUname.c, cmdVersion.c, cmdXResource.c, configure.ac,
error.c, getopt.c, init.c, locate_module.c, main.c, modules_def.h,
utility.c: First pass through tagging all the translateable text with
_(...), etc. for easy extraction by xgettext. Passes all tests.
2006-01-26 rkowen <rkowen>
* Makefile.am, configure.ac, main.c, modules_def.h: Setting up autoconf for
handling i18n & l10n.
* configure.ac: The AC_AIX check needs to be before any compiler tests.
Added the AM_GNU_GETTEXT macro for i18n & l10n.
2006-01-23 rkowen <rkowen>
* Makefile.am, modules.lsm.in: Updated for LSM version 4
2006-01-19 rkowen <rkowen>
* ChangeLog, Makefile.am, modules.lsm.in: Changed from sunsite to ibiblio
(same thing though).
* modules.lsm.in: Can't ftp into the SourceForge.net site.
2006-01-18 rkowen <rkowen>
* version.c: Ready for the 3.2.0 release
* ChangeLog, xref/config.h.html, xref/config.h.src.html: Updated.
* xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdXResource.c.html, xref/cmdXResource.c.src.html,
xref/cxref.apdx.html, xref/cxref.function, xref/modules_def.h.src.html,
xref/utility.c.html, xref/utility.c.src.html: Updated.
* MACHINES, NEWS: News about eliminating --with-force-path.
2006-01-17 rkowen <rkowen>
* ChangeLog, README, cmdModule.c, configure.ac, modules_def.h, utility.c:
Removed the --with-force-path option ... which basically makes sure that
PATH and LD_LIBRARY_PATH have some minimum values, given by a couple of
MODULE_*_SACRED env.vars. If you need something like this, then you've
probably written your modulefiles wrong!
* cmdXResource.c: Eliminated the C++ style commented lines.
* config/emtcl.m4: Shortened option to --with-tcl-ver and fixed some minor
problems with it.
* configure.ac: Fixed what happens when no /bin/csh and the split_size is
not set.
* utility.c: Add some casts to eliminate warning messages.
2006-01-12 rkowen <rkowen>
* ChangeLog: Updated
* cvs2cl.pl: Don't need to track xref/ changes.
* ChangeLog: Updated.
* xref/cxref.variable, xref/main.c.html, xref/main.c.src.html,
xref/modules_def.h.html, xref/modules_def.h.src.html, xref/version.c.html,
xref/version.c.src.html: Updated the cxref docs
* ChangeLog: Updated.
* ChangeLog, version.c: Updated version date.
* main.c, modules_def.h: Have --version list out the version date also.
* testsuite/home/.cvsignore: Ignore the test generated file.
* testsuite/home/.modules: This gets made when a test is performed.
* xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Avail.c.src.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Clear.c.src.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Display.c.src.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Help.c.src.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_Init.c.src.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_List.c.src.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Load.c.src.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Purge.c.src.html,
xref/ModuleCmd_Refresh.c.src.html, xref/ModuleCmd_Switch.c.html,
xref/ModuleCmd_Switch.c.src.html, xref/ModuleCmd_Update.c.src.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Use.c.src.html,
xref/ModuleCmd_Whatis.c.html, xref/ModuleCmd_Whatis.c.src.html,
xref/cmdAlias.c.html, xref/cmdAlias.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdTrace.c.html, xref/cmdTrace.c.src.html, xref/cmdUlvl.c.html,
xref/cmdUlvl.c.src.html, xref/cmdUname.c.html, xref/cmdUname.c.src.html,
xref/cmdVerbose.c.html, xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/config.h.html, xref/config.h.src.html,
xref/error.c.html, xref/error.c.src.html, xref/getopt.c.html,
xref/getopt.c.src.html, xref/init.c.html, xref/init.c.src.html,
xref/locate_module.c.html, xref/locate_module.c.src.html, xref/main.c.html,
xref/main.c.src.html, xref/modules_def.h.html, xref/modules_def.h.src.html,
xref/utility.c.html, xref/utility.c.src.html, xref/version.c.src.html:
Updated the cxref docs to 3.2.0rc4
* .cvsignore, doc/.cvsignore, etc/.cvsignore, init/.cvsignore: More things
to ignore.
* ModuleCmd_Init.c, NEWS, version.c: Reworked the "module init*" subcommand
to handle dot files with multiple "module load" lines.
* INSTALL: Added the documentation related to --with-tcl-*.
* config/emtcl.m4, config/tcl.m4, configure.ac: Reintroduced (or added) the
configure options --with-tcl-{versions|lib|include} to allow the user to
specify any values which may be missing from the tclConfig.sh script.
* testsuite/home/.modules, testsuite/home/.modules.save,
testsuite/modules.60-initx/005-init.exp,
testsuite/modules.60-initx/010-list.exp,
testsuite/modules.60-initx/020-add.exp,
testsuite/modules.60-initx/030-switch.exp,
testsuite/modules.60-initx/040-prepend.exp,
testsuite/modules.60-initx/050-rm.exp,
testsuite/modules.60-initx/060-2nd.exp,
testsuite/modules.60-initx/095-cleanup.exp: Added a test suite for the
"module init*" subcommands.
* testsuite/modules.50-cmds/070-alias-proc.exp: Use the "native" Tcl file
remove command.
* utility.c: Minor formatting changes.
* modules_def.h: Minor reformatting.
* Makefile.am: Added INSTALL.RH7x to the distribution pkg.
2005-12-15 rkowen <rkowen>
* ChangeLog: Update ChangeLog
* ChangeLog, INSTALL: Updating the INSTALL doc for 3.2.0
* version.c: Time for the 3.2.0 release
2005-12-14 sirdude <sirdude>
* tcl/modulecmd.tcl: Added the system command. Kent
2005-12-13 sirdude <sirdude>
* tcl/modulecmd.tcl: Fix by Marcus Wagner. Makes it so module unload works
the same way module load does. Specifically for the break command. Kent
2005-12-12 sirdude <sirdude>
* tcl/modulecmd.tcl: Fix provided by Mark Moraes. Prevents modulefilename
collisions by prepending slaves with __ before commit if you had a module
file named: module-info and tried to do a module show module-info you would
get: bad option "mode": must be alias, aliases, eval, expose, hide, hidden,
issafe, invokehidden, or marktrusted invoked from within "module-info mode
whatis " Now it works. Kent
* tcl/modulecmd.tcl: removed unused variable junk from 3 places in the code.
(was just setting it to "" in all 3 places) Kent
2005-12-06 rkowen <rkowen>
* ChangeLog: Updated.
2005-12-05 rkowen <rkowen>
* ChangeLog, cvs2cl.pl: Changed the ChangeLog script to not record changes
about itself to itself.
* testsuite/modules.50-cmds/170-swap.exp: Added more single argument "swap"
tests.
* ChangeLog, Makefile.am, NEWS, cvs2cl.pl, stripmkf, version.c: Added the
cvs2cl.pl perl script for generating the ChangeLog semi-automatically.
Removed stripmkf - an artifact from older releases.
* ChangeLog, etc/Makefile.am, ext/Makefile.am: Put the add.modules/add.ext &
mkroot scripts under the --prefix bin directory since those scripts are
platform independent, and the modules modulefile will point to these
scripts.
2005-12-02 rkowen <rkowen>
* ChangeLog, configure.ac, init/Makefile.am, modulefiles/Makefile.am: Put
the init/ scripts under the --exec-prefix directory, because they point to
the platform specific modulecmd.
2005-11-30 rkowen <rkowen>
* ChangeLog, cmdSetenv.c, configure.ac, init/.modulespath.in,
modulefiles/Makefile.am, modules_def.h, utility.c, version.c: * Eliminated
any warnings caused by using Tcl 8.4 * Fixed any mixed size differences when
using ints and pointers. (Only an issue with 64 bit machines.)
2005-11-29 rkowen <rkowen>
* ModuleCmd_Avail.c, ModuleCmd_Clear.c, ModuleCmd_Display.c,
ModuleCmd_Help.c, ModuleCmd_List.c, ModuleCmd_Load.c, ModuleCmd_Switch.c,
ModuleCmd_Whatis.c, cmdAlias.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c,
cmdLog.c, cmdMisc.c, cmdTrace.c, cmdUlvl.c, cmdUname.c, cmdVerbose.c,
cmdVersion.c, cmdWhatis.c, error.c, getopt.c, init.c, locate_module.c,
main.c, utility.c: Made all the 'First Edition' years to be 4 digits.
* ModuleCmd_Clear.c, ModuleCmd_Init.c, ModuleCmd_Purge.c,
ModuleCmd_Refresh.c, ModuleCmd_Update.c, ModuleCmd_Use.c, cmdAlias.c,
cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdLog.c, cmdMisc.c, cmdModule.c,
cmdPath.c, cmdSetenv.c, cmdTrace.c, cmdUlvl.c, cmdUname.c, cmdVerbose.c,
cmdVersion.c, cmdWhatis.c, cmdXResource.c, init.c, locate_module.c, main.c,
modules_def.h, utility.c, version.c: Added the CONST84 qualifier to
eliminate compiler warnings, and the side effects.
2005-11-27 rkowen <rkowen>
* config/tcl.m4: It's not an error (exit) if it can't find tclxConfig.sh!
2005-11-26 rkowen <rkowen>
* Makefile.am: Should read the sf.net file-release-system notes before
changing the ftp-sourceforge target.
* Makefile.am, configure.ac, modules.lsm.in: Updated the LSM and the
creation and handling of distribution tarballs.
* Makefile.am, modulefiles/Makefile.am: Rolled in the Make versioning
install fragment from the predeep branch.
2005-11-25 rkowen <rkowen>
* xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Display.c.html,
xref/ModuleCmd_Refresh.c.html, xref/ModuleCmd_Refresh.c.src.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Update.c.src.html,
xref/cmdConflict.c.html, xref/cmdConflict.c.src.html,
xref/cmdInfo.c.src.html, xref/cmdModule.c.html, xref/cmdModule.c.src.html,
xref/cmdPath.c.html, xref/cmdPath.c.src.html, xref/cmdSetenv.c.html,
xref/cmdSetenv.c.src.html, xref/cmdTrace.c.html, xref/cmdTrace.c.src.html,
xref/cmdUlvl.c.html, xref/cmdUlvl.c.src.html, xref/cmdWhatis.c.html,
xref/config.h.html, xref/config.h.src.html, xref/cxref.apdx.html,
xref/cxref.css, xref/cxref.function, xref/cxref.html, xref/cxref.include,
xref/cxref.variable, xref/error.c.html, xref/init.c.html, xref/main.c.html,
xref/main.c.src.html, xref/modules_def.h.html, xref/modules_def.h.src.html,
xref/utility.c.html, xref/version.c.html, xref/version.c.src.html: Updated
the cxref docs with the "refresh" changes.
* Makefile.am: Need to include ./docs in SUBDIRS
* configure.ac, testsuite/modules.50-cmds/070-alias-proc.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/078-refresh.exp: Finished the alias/refresh tests
for sourcing a tmpfile, and also the special case for the Bourne shell where
funcs and no aliases.
2005-11-22 rkowen <rkowen>
* ModuleCmd_Refresh.c, ModuleCmd_Update.c, main.c,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.50-cmds/070-alias-proc.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/078-refresh.exp: Cleaned up the test proc code,
and normalized the "refresh" code to the existing standard.
2005-11-21 rkowen <rkowen>
* ChangeLog, Makefile.am, ModuleCmd_Refresh.c, cmdConflict.c, cmdInfo.c,
cmdModule.c, cmdPath.c, cmdSetenv.c, cmdTrace.c, cmdUlvl.c, doc/module.1.in,
main.c, modules_def.h: * ModuleCmd_Refresh.c: Like "update" but refreshes
only the non-persistent attributes of the currently loaded modules,
regardless of the state of the loaded modules (i.e. refresh aliases). (still
needs some test code)
* ChangeLog, cmdConflict.c, version.c: * cmdConflict.c: Fixed memory
allocation bug in cmdPrereq(). When there is more than 1 argument to the
prereq command, both savedlens and savedlists were indexed past what the
initial malloc allowed.
2005-11-15 sirdude <sirdude>
* tcl/modulecmd.tcl: Updated alias function so that it also works on ksh. I
tested it on a couple of different sh shells and everything seems to work
this way, and it wasn't working on some of them before. Kent
2005-11-15 rkowen <rkowen>
* .cxref, Makefile.am, xref/ModuleCmd_Avail.c.html,
xref/ModuleCmd_Avail.c.src.html, xref/ModuleCmd_Clear.c.html,
xref/ModuleCmd_Clear.c.src.html, xref/ModuleCmd_Display.c.html,
xref/ModuleCmd_Display.c.src.html, xref/ModuleCmd_Help.c.html,
xref/ModuleCmd_Help.c.src.html, xref/ModuleCmd_Init.c.html,
xref/ModuleCmd_Init.c.src.html, xref/ModuleCmd_List.c.html,
xref/ModuleCmd_List.c.src.html, xref/ModuleCmd_Load.c.html,
xref/ModuleCmd_Load.c.src.html, xref/ModuleCmd_Purge.c.html,
xref/ModuleCmd_Purge.c.src.html, xref/ModuleCmd_Switch.c.html,
xref/ModuleCmd_Switch.c.src.html, xref/ModuleCmd_Update.c.html,
xref/ModuleCmd_Update.c.src.html, xref/ModuleCmd_Use.c.html,
xref/ModuleCmd_Use.c.src.html, xref/ModuleCmd_Whatis.c.html,
xref/ModuleCmd_Whatis.c.src.html, xref/cmdAlias.c.html,
xref/cmdAlias.c.src.html, xref/cmdConflict.c.html,
xref/cmdConflict.c.src.html, xref/cmdInfo.c.html, xref/cmdInfo.c.src.html,
xref/cmdIsLoaded.c.html, xref/cmdIsLoaded.c.src.html, xref/cmdLog.c.html,
xref/cmdLog.c.src.html, xref/cmdMisc.c.html, xref/cmdMisc.c.src.html,
xref/cmdModule.c.html, xref/cmdModule.c.src.html, xref/cmdPath.c.html,
xref/cmdPath.c.src.html, xref/cmdSetenv.c.html, xref/cmdSetenv.c.src.html,
xref/cmdTrace.c.html, xref/cmdTrace.c.src.html, xref/cmdUlvl.c.html,
xref/cmdUlvl.c.src.html, xref/cmdUname.c.html, xref/cmdUname.c.src.html,
xref/cmdVerbose.c.html, xref/cmdVerbose.c.src.html, xref/cmdVersion.c.html,
xref/cmdVersion.c.src.html, xref/cmdWhatis.c.html,
xref/cmdWhatis.c.src.html, xref/cmdXResource.c.html,
xref/cmdXResource.c.src.html, xref/config.h.html, xref/config.h.src.html,
xref/cxref.apdx.html, xref/cxref.function, xref/cxref.html,
xref/cxref.include, xref/cxref.typedef, xref/cxref.variable,
xref/error.c.html, xref/error.c.src.html, xref/getopt.c.html,
xref/getopt.c.src.html, xref/getopt.h.html, xref/getopt.h.src.html,
xref/index.html, xref/init.c.html, xref/init.c.src.html,
xref/locate_module.c.html, xref/locate_module.c.src.html, xref/main.c.html,
xref/main.c.src.html, xref/modules_def.h.html, xref/modules_def.h.src.html,
xref/utility.c.html, xref/utility.c.src.html, xref/version.c.html,
xref/version.c.src.html: Updated the cxref docs
2005-11-14 rkowen <rkowen>
* ChangeLog, Makefile.am, ModuleCmd_Avail.c, ModuleCmd_Bootstrap.c,
ModuleCmd_Init.c, ModuleCmd_List.c, ModuleCmd_Update.c, ModuleCmd_Use.c,
README, acinclude.m4, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdModule.c,
cmdPath.c, cmdTrace.c, cmdUlvl.c, cmdVersion.c, config/tcl.m4, configure.ac,
doc/module.1.in, error.c, init.c, lib/.cvsignore, lib/Makefile.am,
lib/avec.h, lib/avec.man, lib/avec/.cvsignore, lib/avec/avec_.c,
lib/avec/avec_.h, lib/avec/avec_accessor.c, lib/avec/avec_alloc.c,
lib/avec/avec_close.c, lib/avec/avec_ctor.c, lib/avec/avec_dealloc.c,
lib/avec/avec_decrease.c, lib/avec/avec_delete.c, lib/avec/avec_dtor.c,
lib/avec/avec_increase.c, lib/avec/avec_init.c, lib/avec/avec_insert.c,
lib/avec/avec_keys.c, lib/avec/avec_lookup.c, lib/avec/avec_remove.c,
lib/avec/avec_resize.c, lib/avec/avec_resize_percentage.c,
lib/avec/avec_set_fns.c, lib/avec/avec_values.c, lib/avec/avec_walk.c,
lib/avec/avec_walk_r.c, lib/configure.ac, lib/iprime.h, lib/iprime.man,
lib/iprime/.cvsignore, lib/iprime/chprime.c, lib/iprime/hprime.c,
lib/iprime/iprime.c, lib/iprime/iprime_.h, lib/iprime/iprime_lut.c,
lib/iprime/lprime.c, lib/iprime/scprime.c, lib/iprime/ucprime.c,
lib/iprime/uhprime.c, lib/iprime/uiprime.c, lib/iprime/ulprime.c,
lib/isqrt.h, lib/isqrt.man, lib/isqrt/.cvsignore, lib/isqrt/chsqrt.c,
lib/isqrt/hsqrt.c, lib/isqrt/isqrt.c, lib/isqrt/isqrt_.h,
lib/isqrt/isqrt_lut.c, lib/isqrt/lsqrt.c, lib/isqrt/scsqrt.c,
lib/isqrt/ucsrt.c, lib/isqrt/uhsqrt.c, lib/isqrt/uisqrt.c,
lib/isqrt/ulsqrt.c, lib/list.h, lib/list.man, lib/list/.cvsignore,
lib/list/list_.c, lib/list/list_.h, lib/list/list_append.c,
lib/list/list_ctor.c, lib/list/list_delete.c, lib/list/list_dtor.c,
lib/list/list_exists.c, lib/list/list_first.c, lib/list/list_insert.c,
lib/list/list_last.c, lib/list/list_number.c, lib/list/list_pop.c,
lib/list/list_push.c, lib/list/list_qsort.c, lib/list/list_shift.c,
lib/list/list_sizeof.c, lib/list/list_swap.c, lib/list/list_unshift.c,
lib/memdebug.c, lib/memdebug.h, lib/memdebug.man, lib/strmalloc.c,
lib/strmalloc.h, lib/strmalloc.man, lib/tests/.cvsignore,
lib/tests/Makefile.am, lib/tests/tavec.c, lib/tests/tiprime.c,
lib/tests/tisqrt.c, lib/tests/tstrmalloc.c, lib/tests/tuvec.c, lib/uvec.h,
lib/uvec.man, lib/uvec/.cvsignore, lib/uvec/str2uvec.c, lib/uvec/uvec2str.c,
lib/uvec/uvec2uvec.c, lib/uvec/uvec_accessor.c, lib/uvec/uvec_add.c,
lib/uvec/uvec_alloc.c, lib/uvec/uvec_close.c, lib/uvec/uvec_copy.c,
lib/uvec/uvec_copy_str.c, lib/uvec/uvec_copy_vec.c,
lib/uvec/uvec_count_tok.c, lib/uvec/uvec_ctor.c, lib/uvec/uvec_dealloc.c,
lib/uvec/uvec_dtor.c, lib/uvec/uvec_init.c, lib/uvec/uvec_insert.c,
lib/uvec/uvec_push.c, lib/uvec/uvec_randomize.c, lib/uvec/uvec_reverse.c,
lib/uvec/uvec_shift.c, lib/uvec/uvec_sort.c, lib/uvec/uvec_strfns.c,
lib/uvec/uvec_strfree.c, lib/uvec/vec2uvec.c, locate_module.c, main.c,
modulefiles/module-cvs.in, modules_def.h, testsuite/.cvsignore,
testsuite/config/unix.exp, testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/015-version.exp,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.30-userlvl/040-advanced.exp,
testsuite/modules.30-userlvl/045-adv.exp,
testsuite/modules.30-userlvl/050-expert.exp,
testsuite/modules.30-userlvl/055-exp.exp,
testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.35-trace/020-default.exp,
testsuite/modules.35-trace/030-all-on.exp,
testsuite/modules.35-trace/031-all-off.exp,
testsuite/modules.35-trace/040-load-all.exp,
testsuite/modules.35-trace/041-load-all.exp,
testsuite/modules.35-trace/042-load-on.exp,
testsuite/modules.35-trace/043-load-onoff.exp,
testsuite/modules.35-trace/044-load-ovr.exp,
testsuite/modules.35-trace/050-disp-onoff.exp,
testsuite/modules.35-trace/060-dilo-onoff.exp,
testsuite/modules.35-trace/070-colon.exp,
testsuite/modules.35-trace/095-cleanup.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/070-alias-proc.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/095-cleanup.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/999-cleanup.exp, utility.c, version.c: Merged
in the modules_3_2_predeep_branch branch to the main trunk. Removed the hash
library.
2005-07-21 sirdude <sirdude>
* tcl/modulecmd.tcl: Made it so g_debug is passed to the module files.
2005-05-09 sirdude <sirdude>
* tcl/modulecmd.tcl: Removed error message that shouldn't be print there. It
was printing an error complaining it couldn't find a module even though it
could.
2005-05-05 sirdude <sirdude>
* tcl/modulecmd.tcl: Added a space between columns in module list command.
Kent
2005-04-27 sirdude <sirdude>
* tcl/modulecmd.tcl: Fix so module swap perl perl works the same as module
swap perl (before was different if you had a different version than the
default loaded) Kent
* tcl/modulecmd.tcl: Ran modulecmd.tcl through frink since no one complained
about doing it. Kent
* tcl/modulecmd.tcl: added lazy find for module switch Example: Say you
have the following modules perl/5.6 perl/5.8(default) and you have
perl/5.6 loaded currently. Now you can do module switch perl perl and it
will unload perl/5.6 and load perl/5.8 before it would error saying the perl
module is not loaded. Kent
2005-04-19 sirdude <sirdude>
* tcl/modulecmd.tcl: I added -l and -t options for module list and module
avail also fixed resolveModuleVersionOrAlias up a bit so it deals with
module(default) Kent
2005-04-15 sirdude <sirdude>
* tcl/modulecmd.tcl: fix (default) display on modules that are "deep"
soft/xemacs/21.4 etc.... Kent
* tcl/modulecmd.tcl: made reload unload all modules then load them all in
the proper order. Similar to module swap. Kent
2005-04-14 sirdude <sirdude>
* tcl/modulecmd.tcl: Modified module switch so it unloaded last module first
down to the module its swapping out and then reloaded everything in order.
Before it was unloading them starting at the module to be swapped out to the
end and then loading them in the same order. Probably not a big deal but
code is actually shorter now and is probably more correct. I also added -a
and -append as alternatives to --append and --prepend for module use.
(There were comments saying it would be nice to have that) Kent
* tcl/modulecmd.tcl: fixes module whatis problem with (default) before it
wasn't able to find modules that had a .version file. Kent
* tcl/modulecmd.tcl: Added two more globals DEF_COLUMNS and
MODULES_CURRENT_VERSION and removed hardcoded bits relating to them. Also
removed some misc code that was commented out and no longer used. Kent
2005-04-08 sirdude <sirdude>
* tcl/modulecmd.tcl: Fix module swap so that it unloads old module and
everything after it then loads new and everything that was after old. Kent
* tcl/modulecmd.tcl: Fix up module init(cmds) I made them behave like the c
versions example before the initadd added a module to every module load line
now it just does the first. I have a ~/.modules directory and before this
caused the init(cmds) to fail. Also made it so it only changes one file not
all . files it goes through. Kent
2005-04-07 sirdude <sirdude>
* tcl/modulecmd.tcl: Moved some global variables up to the top of the file.
Kent
2005-04-06 sirdude <sirdude>
* tcl/modulecmd.tcl: Modified patch for prereq's I also fixed a small
problem in the module show for prereq's Kent
* tcl/modulecmd.tcl: Rodney Mach's unalias fix Kent
2004-11-18 lakata <lakata>
* tcl/README-EMACS.txt, tcl/init/.cvsignore, tcl/init/lisp.in: submitted by
tbennett@nvidia.com
* tcl/init/Makefile, tcl/modulecmd.tcl: patch for Emacs from
tbennett@nvidia.com
2004-11-05 lakata <lakata>
* tcl/modulecmd.tcl: added more error checking to init/modulerc. probably
should change this yet again to standardize the naming convention
* tcl/modulecmd.tcl: changed hardcoded path to /home/Mark etc to
$MODULESHOME
2004-10-22 lakata <lakata>
* tcl/init/README.txt: added instructions on using the new autoinit feature
* tcl/modulecmd.tcl: added autoinit feature. not documented until we get
some feedback
2004-10-22 harlan <harlan>
* locate_module.c: cleanup/refactor
* configure.ac: cleanup
* ModuleCmd_Avail.c: USE_COLCOMP -> DEF_COLLATE_BY_NUMBER
* Makefile.am: Alphabetize...
2004-10-15 lakata <lakata>
* tcl/modulecmd.tcl: * made compatibility changes with tcl < 8.1. string
equal changed to string match and changes to regular expressions. There is
now a caveat: module init* commands won't work if there are tabs in your
startup file around the module commands if tcl < 8.1. * Fixed display so
that setenv values don't give an error if used later in the module during
display * Fixed bug with Perl. rendersetting output now ends with "1;" for
perl so that the require command works correctly * Changed noexistent path
error to warning in cmdModuleUse. Otherwise, if you gave more than one path,
some of the other legal paths may not get added. This is a revert back to
how modulecmd was originally and probably breaks compatability with the C
version in this regard
2004-10-13 lakata <lakata>
* tcl/modulecmd.tcl: * Fixed ModulesHelp so that it doesn't error out when
not present * Added module-verision,module-alias, module-trace, module-user,
module-verbosity, and module-log to module file execution. All but
module-version and module-alias give a warning that it is not implemented *
Added module-trace, module-user, module-verbosity, and module-log to
modulerc execution. All give warnings that the funcionatlity is not
implemented * Added #%Module checking on .version and .modulerc files *
execute-version will now add version defaults to the global defaults array
like .modulerc files do * .version files are no longer executed if a
.modulerc is executed in the same directory * module-info symbols command
implemented (could use more testing) * module-info version command
implemented (could use more testing) * moduule-info alias command
implemented * module-version - fixed problem of adding duplicate version
aliases to global hash * module-alias updated to keep track of aliases by
module name in global hash * Fix unload-path so that setenv-path followed by
prepend-path works during unload * fixed bug in is-loaded. It took a list
of modules as an argument but would return true if only one of the arguments
was loaded. Now all arguments have to be loaded to return true. * Added
getVersAliasList function. Returns list of default and version aliases
given a modulename/version * Added default and version alias information to
avail and list output * Added a few more "----" to the module list output
* tcl/modulecmd.tcl: modulecmd.tcl
2004-10-07 lakata <lakata>
* tcl/modulecmd.tcl: (1) Andrew Barbers changes to fix some bugs. (2) Mark
Lakatas change to sym links under cygwin. removed check for MODULEPATH,
since you can use "module use ..." to set it
2004-10-05 lakata <lakata>
* tcl/modulecmd.tcl: from Andrew Barber: Here is another update. This one
has some tricky changes. Most of it was done to try and get the testsuite
to pass. I added a few more features too. The biggest changes were in:
getPathToModule - now it can resolve aliases found in .modulerc and .version
files , runModulerc - now this is responsible for finding and executing the
global .modulerc files (new feature for tcl version)
* tcl/modulecmd.tcl: patch from Tony Bennett. need for gentoo system
2004-10-01 lakata <lakata>
* tcl/modulecmd.tcl: Andrew Barbers changes: * added module-verision and
module-alias commands, * added automatic of execution .modulerc files found
in module directories, * added switch processing and -debug switch for debug
messages
2004-09-30 lakata <lakata>
* tcl/modulecmd.tcl: (1) added more commands to the internal "module"
command (2) added all of the init* commands, like initadd (3) changed the
help message slightly
2004-09-23 sirdude <sirdude>
* tcl/modulecmd.tcl: David Mores patch so that first module in module list
is shown again. Sorry about that I should have caught that before... Kent
* tcl/modulecmd.tcl: Mark Moe's patch to prevent infinate loop when you have
module a loading module b where module b has a .version that points to
unavailable version of module b Kent
2004-09-21 sirdude <sirdude>
* tcl/modulecmd.tcl: David Mores, patches to the COLUMNS stuff. Kent
* tcl/modulecmd.tcl: Mark Moe's patch for skipping 0 length modules in
module list and adding the printing of: "Currently Loaded Modulesfiles:"
Kent
2004-09-16 sirdude <sirdude>
* tcl/modulecmd.tcl: Harlan Stenn's Patch from Phong Nguyen, It basically
wraps the openning of a tmpfile in a catch command I also updated the error
message after it to use the tmpfile var instead of hardcoding it... Kent
2004-05-25 sirdude <sirdude>
* tcl/init/bash.in, tcl/init/csh.in, tcl/init/ksh.in, tcl/init/perl.in,
tcl/init/python.in, tcl/init/sh.in, tcl/init/tcsh.in, tcl/init/zsh.in: tcl
version of modules now looks at environment var TCLSH if it exits and uses
that first. Suggested by David Astrom. Kent
* tcl/modulecmd.tcl: Use env(COLUMNS) if its defined instead of a hard
coded number. submitted by David Astrom through Mark Lakata. Kent
2004-04-21 sirdude <sirdude>
* tcl/modulecmd.tcl: David Mores patch to prevent tcl version from hanging
with a .version file that does not set the ModulesVersion correctly. Kent
2004-01-16 sirdude <sirdude>
* tcl/Makefile: removed clean and test from the default make. Kent
* tcl/Makefile, testsuite/config/unix.exp: Made it so that the testsuite
works with the tcl version of modules. Current stats for the tcl version
are: # of expected passes 146 # of unexpected failures 376
Not too shabby, I'm guessing it will be fairly straight forward to increase
this by quite a bit. Kent
2004-01-15 sirdude <sirdude>
* tcl/init/bash.in, tcl/init/csh.in, tcl/init/ksh.in, tcl/init/perl.in,
tcl/init/python.in, tcl/init/sh.in, tcl/init/tcsh.in, tcl/init/zsh.in:
Modified the tcl init files so that they try to find tclsh, this should make
them quite a bit faster assuming they find it. (This way it locates the
shell just once instead of for every single command.) Kent
* tcl/modulecmd.tcl: Improved module help functionatlity for the tcl version
of modules. now you can type module help (module) also commiting the patch
someone submitted to the board that allows for .version files in directorys
other than the top level. (for tcl version only) Kent Mein
2003-10-30 harlan <harlan>
* tcl/modulecmd.tcl: bash requires a space after the { on function
definitions.
* tcl/modulecmd.tcl: Remove the /tmp file early. Use the "function" keyword
when creating sh functions; otherwise if the function already exists the
name gets expanded on some shells.
2003-10-28 lakata <lakata>
* tcl/modulecmd.tcl: prevent "break" from generating an error message
2003-10-27 lakata <lakata>
* tcl/modulecmd.tcl: 1) module-info shell and shelltype would generate an
TCL error when used (FIXED) 2) remove-path had two typos in it (FIXED) 3)
Added detection of full path in getPathToModule procedure
2003-10-20 lakata <lakata>
* tcl/modulecmd.tcl: 1) Add support for the other shells that the C version
includes 2) Add support for prereq command 3) Replace the "/bin/uname" calls
to use the tcl_platform variable and "info hostname" command Enclosed are
my latest modulecmd.tcl updates. I have added most of the features that I
thought it needed and implemented the slave interpreter to execute
modulefile in. I have tested it to some degree but not very seriously.
Richard.M.Born@seagate.com
2003-10-15 lakata <lakata>
* tcl/modulecmd.tcl: fixed two bugs in the display command
2003-10-07 lakata <lakata>
* tcl/modulecmd.tcl: cleaned up the mode and modulename settings that used
to be access via the upvar. also changed the calling convention for
getPathToModule, which now does not throw an exception for minor warnings
* tcl/modulecmd.tcl: fixed a bug where the result of the catch is either an
error or the last command
2003-10-06 lakata <lakata>
* tcl/modulecmd.tcl: fixed a bug in the popMode command and made it backward
compatible with tcl 8.0
* tcl/modulecmd.tcl: 1. pulled all references to puts stderr to
report/reportWarnings/reportInternalBug. 2. changed the way the g_mode
variable is handled. Instead of relying on the call stack, it now uses an
explicit stack, which should solve any problems with using other namespaces
3. removed a bunch of debugging statements. 4. fixed the way errors are
handled, giving more meaningful responses. 5. if an error is caught in load,
the env/alias settings are NOT updated and restored to a previous state. for
instance, in a conflict this is important.
* tcl/modulecmd.tcl: fixed bug in listModules that was failing on cygwin
2003-10-03 lakata <lakata>
* tcl/modulecmd.tcl: Proxy check in for Richard.M.Born@seagate.com. He
wrote: 1) It didn't handle modulefiles in the main directory for commands
like module avail 2) It didn't define the ModulesCurrentModulefile variable
3) It didn't ignore certain temp files (*~, #*#) 4) It didn't look for the
Modulefile MagicCookie to filter out non-modulefiles I have updated
modulecmd.tcl to address these issues. I have removed lsHack and replaced it
with listModules procedure. I am not familiar with the glob issue that you
noted for Cygwin so you may want to run a few test cases to see if the new
function still works for you. I also updated the module paths command to
what I think you were intending.
2003-08-08 harlan <harlan>
* tcl/modulecmd.tcl: Changes to lsHack for cmdModulePath and friends.
2003-08-07 harlan <harlan>
* tcl/modulecmd.tcl: Typo
* tcl/modulecmd.tcl: Add $Revision$ to the version
* tcl/modulecmd.tcl: Initial support for "module path".
2003-08-02 harlan <harlan>
* tcl/modulecmd.tcl: /bin/sh has no shell functions. Avoid an extra call to
getPathToModule
2003-08-01 harlan <harlan>
* tcl/modulecmd.tcl: whitespace cleanup, lose cruft.
2003-07-30 lakata <lakata>
* tcl/README.txt, tcl/modulecmd.tcl: version 0.98: fixed a bug in the
error_count (missing closing brace). also implemented check to abort the
tempfile sourcing if the tempfile is empty. this is to be more blackboxish,
avoiding relying on the shell to do a clean up. one of our users is not
using the module command correctly, and it is created a whole bunch of empty
/tmp/modulescript files in the /tmp dir.
2003-07-15 harlan <harlan>
* tcl/modulecmd.tcl: Begin to handle errors.
2003-07-10 harlan <harlan>
* ChangeLog, tcl/modulecmd.tcl: * tcl/modulecmd.tcl: If g_force is set,
ignore *_modshare. When we produce a shell function, preface the definition
with "function" in case it's already defined. Default g_force to 1 now.
2003-06-26 harlan <harlan>
* tcl/modulecmd.tcl: ModuleTcl: 0.97 Aliases: add/load, rm/inload,
nodename/node We need to eval more "cmdModule{Unl,L}oad $arg" lines to:
Implement --append (and --prepend) for cmdModuleUse Use -dictionary lsorts
to provide an easy substitute for colcomp(). Added SCCS and RCS to the
ignoreDir list. Moved ignoreDir processing to lsHack to fix a problem. Make
sure an empty modulefile direcoty doesn't cause an error.
2003-06-02 harlan <harlan>
* tcl/init/README.txt: Reformat some long lines.
2003-05-30 lakata <lakata>
* tcl/init/README.txt, tcl/init/bash.in, tcl/init/csh.in, tcl/init/ksh.in,
tcl/init/modulerc, tcl/init/perl.in, tcl/init/sh.in, tcl/init/tcsh.in,
tcl/init/zsh.in: changed the way MODULEPATH is set up. since this is another
environment variable like all the others, it is now set using the module
command itself. pretty sneaky, huh?
* tcl/modulecmd.tcl: 1. added the "source" command (experimental) 2. added
sanity checking to verify that something external did not muck with path and
path_modshare variables. 3. fixed a bug if you use tcsh and your paths get
longer than 1024 characters. Previously, it was truncating the path, but
this can get you into trouble if important things like /usr/bin or
/usr/local/bin are truncated. The real solution is to STOP USING TCSH... use
zsh instead.
2003-03-28 lakata <lakata>
* tcl/README.txt, tcl/modulecmd.tcl: changes for cygwin. files should not
have cr/lf (DOS) endings.
* tcl/init/Makefile, tcl/init/README.txt, tcl/init/bash, tcl/init/bash.in,
tcl/init/{csh => csh.in}, tcl/init/ksh, tcl/init/ksh.in, tcl/init/{perl =>
perl.in}, tcl/init/{python => python.in}, tcl/init/sh, tcl/init/sh.in,
tcl/init/{tcsh => tcsh.in}, tcl/init/zsh, tcl/init/zsh.in: made init files
more general
2003-01-22 lakata <lakata>
* tcl/init/perl: error checking if something goes wrong in perl
* tcl/modulecmd.tcl: fixed bugs with corrupted env vars, improved the
reliability of _modshare variables
2002-11-29 lakata <lakata>
* tcl/modulecmd.tcl: changed help message
* tcl/README.txt, tcl/init/bash, tcl/init/csh, tcl/init/ksh, tcl/init/perl,
tcl/init/python, tcl/init/sh, tcl/init/tcsh, tcl/init/zsh,
tcl/init/zsh.debug, tcl/modulecmd.tcl: first check in
2002-09-18 harlan <harlan>
* ChangeLog, Makefile.am, lib/.cvsignore, lib/Makefile.am,
lib/tests/Makefile.am: * Makefile.am (modulecmd_CFLAGS): Use X_CFLAGS and
TCL_INCLUDES. * lib/tests/Makefile.am (EXTRA_PROGRAMS): Renamed from
noinst_PROGRAMS. Lose the .x suffixes. * lib/Makefile.am
(ACLOCAL_AMFLAGS): Look in ../config/ .
2002-09-16 rkowen <rkowen>
* ChangeLog, Makefile.am, ModuleCmd_List.c, TODO, colcomp.c, configure.ac,
lib/uvec.man, locate_module.c, main.c, modules_def.h, utility.c: 2002-09-16
R.K. Owen <rk@owen.sj.ca.us> * colcomp.c: removed * utility.c: added
colcomp.c contents * Makefile.am: removed colcomp.c * main.c: Added
DEF_COLLATE_BY_NUMBER output for --version * configure.ac: changed
USE_COLCOMP to DEF_COLLATE_BY_NUMBER, and added memdebug * locate_module.c:
changed USE_COLCOMP and GetModuleName for deep dirs. * modules_def.h: check
for HAVE_CONFIG_H, and added memdebug * ModuleCmd_List.c: Simplified using
uvec objects
2002-09-13 rkowen <rkowen>
* ChangeLog, config/.cvsignore, init/.cvsignore: 2002-09-12 R.K. Owen
<rk@owen.sj.ca.us> * config/.cvsignore: New File: Ignore autogenerated
files. * init/.cvsignore: Ignore autogenerated files.
* .cvsignore, ChangeLog, doc/.cvsignore, etc/.cvsignore, ext/.cvsignore,
lib/.cvsignore, lib/tests/.cvsignore, lib/tests/Makefile.am,
modulefiles/.cvsignore: 2002-09-12 R.K. Owen <rk@owen.sj.ca.us> *
.cvsignore: Ignore autogenerated files. * doc/.cvsignore: Ignore
autogenerated files. * etc/.cvsignore: Ignore autogenerated files. *
ext/.cvsignore: Ignore autogenerated files. * lib/.cvsignore: Ignore
autogenerated files. * lib/tests/.cvsignore: Ignore autogenerated files. *
modulefiles/.cvsignore: Ignore autogenerated files. * lib/tests/Makefile.am:
Tweeked for autoreconf
* ChangeLog, README, lib/Makefile.am, lib/aclocal.m4, lib/configure.ac,
lib/tests/tuvec.c, lib/uvec.h, lib/uvec/uvec_copy_str.c,
lib/uvec/uvec_strfree.c: 2002-09-12 R.K. Owen <rk@owen.sj.ca.us> *
README: Updated the anonymous CVS invocation. * lib/aclocal.m4: Deleted
auto* generated file. * lib/configure.ac: Tweeked to autoreconf *
lib/Makefile.am: Tweeked to autoreconf * lib/uvec.h: Added uvec_strfree *
lib/uvec/uvec_copy_str.c: Uses uvec string fns * lib/uvec/uvec_copy_vec.c:
Uses uvec string fns * lib/uvec/uvec_strfree.c: New file: to dealloc
uvec2str() generated strings * lib/tests/tuvec.c: Updated for uvec changes
2002-09-12 harlan <harlan>
* doc/Makefile.am, lib/config.h.in, lib/configure: * doc/Makefile.am: Added
file. * lib/configure: Remove auto*-generated file. * lib/config.h.in:
Ditto.
* ChangeLog, Makefile.in, README, aclocal.m4, config.h.in, config/compile,
config/depcomp, config/install-sh, config/missing, config/mkinstalldirs,
configure, doc/Makefile.in, etc/Makefile.in, ext/Makefile.in,
init/Makefile.in, lib/Makefile.in, lib/tests/Makefile.in,
modulefiles/Makefile.in: * README: Update the instructions for using the CVS
version of modules. * modulefiles/Makefile.in: Deleted auto* generated
file. * lib/tests/Makefile.in: Ditto. * lib/Makefile.in: Ditto. *
init/Makefile.in: Ditto. * ext/Makefile.in: Ditto. * etc/Makefile.in: Ditto.
* doc/Makefile.in: Ditto. * config/mkinstalldirs: Ditto. * config/missing:
Ditto. * config/install-sh: Ditto. * config/depcomp: Ditto. *
config/compile: Ditto. * configure: Ditto. * config.h.in: Ditto. *
aclocal.m4: Ditto. * Makefile.in: Ditto.
* ChangeLog: Renamed ChangeLog to NEWS, started a new ChangeLog.
* Makefile.am, ModuleCmd_Avail.c, NEWS, colcomp.c, configure.ac,
lib/Makefile, locate_module.c: * colcomp.c: New file. Alternative collating
algorithm that sorts numeric substrings numerically (mostly). *
lib/Makefile: Remove auto*-generated file. * locate_module.c
(SortedDirList): Ignore SCCS/ subdirs, too. * configure.ac: Disable our
"look" for RUNTEST; it drives auto* crazy. Added the
--with-file-collate={string,number} test, which provides a way to enable
USE_COLCOMP. * ModuleCmd_Avail.c (fi_ent_cmp): USE_COLCOMP when told to do
so. * locate_module.c (filename_compare): Ditto. * Makefile.am
(modulecmd_LDFLAGS): lib is in the builddir, not the srcdir.
(modulecmd_SOURCES): Added colcomp.c .
* ChangeLog => NEWS: Rename ChangeLog to NEWS.
2002-08-27 rkowen <rkowen>
* lib/Makefile, lib/Makefile.am, lib/Makefile.in, lib/memdebug.c,
lib/memdebug.h, lib/memdebug.man, lib/tests/Makefile.in: Added the memdebug
headerfile and sources.
2002-08-22 rkowen <rkowen>
* cmdVersion.c, locate_module.c, modules_def.h: Fixed up GetDefault to
handle .modulerc and .version files, where the latter will read the env.var.
defined in .version and do a module-version so that the modlist data can be
updated. These mods handle deep dirs on "module load" ... now need to fix up
the rest! There's also now an amazing amount of cruft to weed out.
2002-08-14 lakata <lakata>
* README: updated docs to reflect new configure (TCL paths)
* locate_module.c, modules_def.h: removed compiler warnings about const
char*
* configure, configure.ac: added hack for linux that cant do -lX11 with
-L/usr/X11R6/lib
* cmdInfo.c, cmdVersion.c: removed compiler warnings
* Makefile.in: fixed LDFLAGS build problem when not building in orig dist.
directory
2002-08-02 rkowen <rkowen>
* Makefile.am, Makefile.in, ModuleCmd_Avail.c, ModuleCmd_Display.c,
ModuleCmd_Init.c, ModuleCmd_Load.c, ModuleCmd_Switch.c, aclocal.m4,
cmdConflict.c, cmdInfo.c, cmdIsLoaded.c, cmdPath.c, cmdVersion.c, configure,
configure.ac, error.c, etc/Makefile.in, ext/Makefile.in, init/Makefile.in,
locate_module.c, main.c, modulefiles/Makefile.in, modules_def.h,
testsuite/modules.00-init/080-begenv.exp, utility.c: A whole slew of changes
progressing to deap modulefile directories. The current is not usuable, but
will eventually be. These changes are checked in for safe keeping while
R.K.Owen is on vacation.
* xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Clear.c.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Help.c.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_List.c.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Purge.c.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Update.c.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Whatis.c.html,
xref/cmdAlias.c.html, xref/cmdConflict.c.html, xref/cmdInfo.c.html,
xref/cmdIsLoaded.c.html, xref/cmdLog.c.html, xref/cmdMisc.c.html,
xref/cmdModule.c.html, xref/cmdPath.c.html, xref/cmdSetenv.c.html,
xref/cmdTrace.c.html, xref/cmdUlvl.c.html, xref/cmdUname.c.html,
xref/cmdVerbose.c.html, xref/cmdVersion.c.html, xref/cmdWhatis.c.html,
xref/cxref.apdx.html, xref/cxref.function, xref/cxref.html,
xref/cxref.include, xref/cxref.typedef, xref/cxref.variable,
xref/error.c.html, xref/getopt.c.html, xref/init.c.html,
xref/locate_module.c.html, xref/main.c.html, xref/utility.c.html,
xref/version.c.html: Updated the xref html, but not current.
* lib/Makefile, lib/Makefile.in, lib/uvec.h, lib/uvec.man,
lib/uvec/uvec_copy_str.c, lib/uvec/uvec_copy_vec.c, lib/uvec/uvec_strfns.c:
Changed how uvec sets/gets the uvec_strfns.
2002-07-29 rkowen <rkowen>
* lib/Makefile.am, lib/list.h, lib/list.man, lib/list/.cvsignore,
lib/list/list_.c, lib/list/list_.h, lib/list/list_append.c,
lib/list/list_ctor.c, lib/list/list_delete.c, lib/list/list_dtor.c,
lib/list/list_exists.c, lib/list/list_first.c, lib/list/list_insert.c,
lib/list/list_last.c, lib/list/list_number.c, lib/list/list_pop.c,
lib/list/list_push.c, lib/list/list_qsort.c, lib/list/list_shift.c,
lib/list/list_sizeof.c, lib/list/list_swap.c, lib/list/list_unshift.c: Added
the list object for doubly linked lists.
2002-07-18 rkowen <rkowen>
* lib/config.h.in: Need this also.
* lib/Makefile.in: Forgot this one.
* lib/Makefile, lib/Makefile.am, lib/aclocal.m4, lib/configure,
lib/configure.ac, lib/tests/.cvsignore, lib/tests/Makefile.am,
lib/tests/Makefile.in: Adding in the automake/autoconf files for the modules
library.
* lib/strmalloc.c, lib/strmalloc.h, lib/strmalloc.man,
lib/tests/tstrmalloc.c: Added the strmalloc code to the modules library,
this will be useful for creating new strings with aliases expanded.
* lib/.cvsignore, lib/tests/tuvec.c, lib/uvec.h, lib/uvec.man,
lib/uvec/.cvsignore, lib/uvec/str2uvec.c, lib/uvec/uvec2str.c,
lib/uvec/uvec2uvec.c, lib/uvec/uvec_accessor.c, lib/uvec/uvec_add.c,
lib/uvec/uvec_alloc.c, lib/uvec/uvec_close.c, lib/uvec/uvec_copy.c,
lib/uvec/uvec_copy_str.c, lib/uvec/uvec_copy_vec.c,
lib/uvec/uvec_count_tok.c, lib/uvec/uvec_ctor.c, lib/uvec/uvec_dealloc.c,
lib/uvec/uvec_dtor.c, lib/uvec/uvec_init.c, lib/uvec/uvec_insert.c,
lib/uvec/uvec_push.c, lib/uvec/uvec_randomize.c, lib/uvec/uvec_reverse.c,
lib/uvec/uvec_shift.c, lib/uvec/uvec_sort.c, lib/uvec/uvec_strfns.c,
lib/uvec/vec2uvec.c: Added the uvec code, which provides basic unix vector
capabilities. A unix vector is a NULL terminated array of char * strings. An
example of this is *argv[] or *environ[].
* lib/isqrt.h, lib/isqrt.man, lib/isqrt/.cvsignore, lib/isqrt/chsqrt.c,
lib/isqrt/hsqrt.c, lib/isqrt/isqrt.c, lib/isqrt/isqrt_.h,
lib/isqrt/isqrt_lut.c, lib/isqrt/lsqrt.c, lib/isqrt/scsqrt.c,
lib/isqrt/ucsrt.c, lib/isqrt/uhsqrt.c, lib/isqrt/uisqrt.c,
lib/isqrt/ulsqrt.c, lib/tests/tisqrt.c: Adding in the isqrt code to the
modules library, this is needed by iprime (which is needed by avec).
* lib/iprime.h, lib/iprime.man, lib/iprime/.cvsignore, lib/iprime/chprime.c,
lib/iprime/hprime.c, lib/iprime/iprime.c, lib/iprime/iprime_.h,
lib/iprime/iprime_lut.c, lib/iprime/lprime.c, lib/iprime/scprime.c,
lib/iprime/ucprime.c, lib/iprime/uhprime.c, lib/iprime/uiprime.c,
lib/iprime/ulprime.c, lib/tests/tiprime.c: Added the iprime code to the
modules library. This is needed by avec to compute the optimal hash size.
* lib/avec.h, lib/avec.man, lib/avec/.cvsignore, lib/avec/avec_.c,
lib/avec/avec_.h, lib/avec/avec_accessor.c, lib/avec/avec_alloc.c,
lib/avec/avec_close.c, lib/avec/avec_ctor.c, lib/avec/avec_dealloc.c,
lib/avec/avec_decrease.c, lib/avec/avec_delete.c, lib/avec/avec_dtor.c,
lib/avec/avec_increase.c, lib/avec/avec_init.c, lib/avec/avec_insert.c,
lib/avec/avec_keys.c, lib/avec/avec_lookup.c, lib/avec/avec_remove.c,
lib/avec/avec_resize.c, lib/avec/avec_resize_percentage.c,
lib/avec/avec_set_fns.c, lib/avec/avec_values.c, lib/avec/avec_walk.c,
lib/avec/avec_walk_r.c, lib/tests/tavec.c: Added an associative vector
object to the modules library.
2002-06-17 rkowen <rkowen>
* RKOConfigure, locate_module.c: Minor changes in preparation for big ones.
* ChangeLog, ModuleCmd_Avail.c, ModuleCmd_Update.c, ModuleCmd_Use.c,
config.h.in, configure, configure.ac, doc/module.1.in, error.c, init.c,
main.c, modules_def.h, testsuite/config/unix.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.70-maint/020-update.exp: * Made the .modulesbeginenv
facility optional (default is not to have it) * default for cache is now
"no" * Added version_test() to testsuite to make some of the tests
conditional on the values generated by --version. - the configure options
help is formatted with AC_HELP_STRING
2002-06-14 rkowen <rkowen>
* .cvsignore, ChangeLog, Makefile.am, Makefile.in, config.h.in,
config/compile, configure, configure.ac, doc/Makefile.in, etc/.cvsignore,
etc/Makefile.am, etc/Makefile.in, ext/.cvsignore, ext/Makefile.am,
ext/Makefile.in, init/Makefile.am, init/Makefile.in, init/filter,
init/zsh.in, modulefiles/Makefile.am, modulefiles/Makefile.in,
testsuite/etc/.cvsignore: * Reworked every configure-based file - uses
automake to generate most of the Makefile.in - renamed configure.in to
configure.ac per autoconf - Versioning is optional now with a configure
option - reworked the init scripts for versioning or not - eliminated
acconfig.h and put templates in configure.ac - make install now honors the
DESTDIR variable for package builds - honors bindir for modulecmd location
(but the init scripts are only correct if no versioning) * Collected the
usage info and now it can be displayed with the --help or -H option (same as
help) * --version now gives most of the optional configure parameters for
easy debugging of problems * Fixed bootstrap to just source the appropriate
init script
* Makefile.am, Makefile.in, acconfig.h, config.h.in, configure,
configure.ac, etc/Makefile.am, etc/Makefile.in, etc/add.modules.in,
etc/global/bashrc.in, etc/global/csh.cshrc.in, etc/skel/.cshrc.in,
etc/skel/.kshenv.in, ext/Makefile.am, ext/Makefile.in, ext/add.ext.in,
ext/common/.cshrc.in, ext/common/.kshenv.in, init/.modulespath.in,
init/bash.in, init/csh.in, init/ksh.in, init/perl.in, init/python.in,
init/sh.in, init/zsh.in: Removed the acconfig.h file since it's essentially
in the configure.ac now. Reworked all the init,skel,add.* files to handle
versioning or no. Added Makefile.am to ./etc/ and ./ext/ for cleaner
installs.
2002-06-13 rkowen <rkowen>
* Makefile.am, Makefile.in, ModuleCmd_Help.c, acconfig.h, config.h.in,
doc/module.1.in, main.c, modules_def.h,
testsuite/modules.00-init/015-version.exp: The version info displays some of
the configuration options. Moved the usage info into module_usage() that can
be displayed with the --help or -H switch.
* Makefile.am, Makefile.in, ModuleCmd_Whatis.c, acconfig.h, config.h.in,
configure, configure.ac, main.c: Renamed INSTPATH to PREFIX and is no longer
passed as a compiler -D argument, but is now entered directly into the
config.h header.
2002-06-12 rkowen <rkowen>
* Makefile.am, Makefile.in, ModuleCmd_Bootstrap.c, init.c, main.c,
modules_def.h, utility.c: Converted the configure scripts over to
automake,autoconf generation. Modified "module bootstrap" to source the init
files. Put the shell properties and moved set_derelict and renamed it
set_shell_properties into init.c . Created a matrix of shell properties {
name, derelict, init, cmd separator }.
* testsuite/etc/apropos.cache, testsuite/modules.50-cmds/095-uname.exp:
Fixed test syntax - it didn't like "dangling" ('s and )'s in regexp string.
Just escaped them. Removed apropos.cache - it gets regenerated with each
test.
* ModuleCmd_Switch.c, testsuite/modules.50-cmds/170-swap.exp: Fixed up
"module switch" one argument form (use stringer alloc) and added more tests
(one for each of the major shells).
2002-06-11 rkowen <rkowen>
* acconfig.h, config.h.in, configure, configure.ac: Added MODULES_INIT_DIR
to the configure files.
2002-06-10 rkowen <rkowen>
* Makefile.am, Makefile.in, ModuleCmd_Bootstrap.c, acconfig.h, acinclude.m4,
aclocal.m4, config.h.in, configure, configure.ac: Upgraded the
auto-configuration to use automake/1.6 and autoconf/2.53 to auto-generate
some of the files.
* init/bash.in, init/csh.in, init/ksh.in, init/perl.in, init/sh.in,
init/zsh.in: Re-introduced the init files with versioning.
* config/depcomp, config/install-sh, config/install.sh, config/missing,
config/mkinstalldirs: Upgraded install scripts to automake/1.6 autoconf/2.53
standards.
2002-06-06 rkowen <rkowen>
* configure.in => configure.ac: configure.ac is actually the continuation of
configure.in. do "cvs log configure.in" for a history.
---------------------------- revision 1.11 (of configure.in) date:
2002/04/29 21:16:48; author: rkowen; state: Exp; lines: +145 -116 *
Upgraded configure.in to autoconf 2.52. * Changed the configure to search
for libTcl.sh to acquire all it's necessary Tcl env.vars from it.
2002-05-06 rkowen <rkowen>
* .cvsignore, doc/.cvsignore, etc/.cvsignore, etc/global/.cvsignore,
etc/skel/.cvsignore, ext/.cvsignore, ext/common/.cvsignore, init/.cvsignore,
modulefiles/.cvsignore, testsuite/.cvsignore: Added a bunch of .cvsignore
files to avoid CVS in listing the known (but made) files.
2002-05-03 rkowen <rkowen>
* testsuite/modulefiles/eschars/1.0,
testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.35-trace/030-all-on.exp,
testsuite/modules.35-trace/031-all-off.exp,
testsuite/modules.35-trace/040-load-all.exp,
testsuite/modules.35-trace/041-load-all.exp,
testsuite/modules.35-trace/042-load-on.exp,
testsuite/modules.35-trace/043-load-onoff.exp,
testsuite/modules.35-trace/044-load-ovr.exp,
testsuite/modules.35-trace/050-disp-onoff.exp,
testsuite/modules.35-trace/060-dilo-onoff.exp,
testsuite/modules.35-trace/070-colon.exp,
testsuite/modules.50-cmds/022-setenv-eschars.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp, utility.c: Added
EscapePerlString to utility.c, added '*' to list of csh special chars. Fixed
up tests to reflect these changes. Added
testsuite/modules.50-cmds/022-setenv-eschars.exp to test out escaping
special chars.
2002-04-30 rkowen <rkowen>
* install.sh, version.c: Moved install.sh to config/ and updated the version
to 3.2.0a .
2002-04-30 lakata <lakata>
* ModuleCmd_Bootstrap.c: fixed getexecname() problem.
2002-04-29 rkowen <rkowen>
* RKOConfigure: Eliminated a lot of the extraneous options now that
configure/tclConfig.sh .
* ChangeLog, Makefile.in, ModuleCmd_Avail.c, ModuleCmd_Init.c,
ModuleCmd_Load.c, ModuleCmd_Purge.c, ModuleCmd_Switch.c, ModuleCmd_Update.c,
ModuleCmd_Whatis.c, aclocal.m4, cmdConflict.c, cmdLog.c, cmdModule.c,
cmdPath.c, cmdTrace.c, cmdVersion.c, cmdXResource.c, config/install.sh,
config/tcl.m4, configure, configure.in, error.c, init.c, locate_module.c,
main.c, modules_def.h, utility.c: * Upgraded configure.in to autoconf 2.52.
* Changed the configure to search for libTcl.sh to acquire all it's
necessary Tcl env.vars from it. * created a utility function stringer() to
handle most of the strcpy/strcat operations and to automatically allocate
string memory. * Mostly changed the memory malloc/free to use
stringer/null_free. * rewrote some of the code logic to have a single point
of exit with unwinding of memory allocations.
2002-04-29 lakata <lakata>
* ModuleCmd_Bootstrap.c: fixed bug with binary_name without an absolute path
* ModuleCmd_Help.c: fixed help for swap|switch, to reflect optional first
modulefile1
* ModuleCmd_Bootstrap.c, config.h.in, configure, configure.in: added PREFIX
to config.h and propagated to bootstrap code as MODULESHOME
* doc/module.1.in: updated docs regarding "switch" and MODULESHOME
* ChangeLog: "module switch foo/1.3" change log
* ModuleCmd_Bootstrap.c, ModuleCmd_Switch.c, error.c, modules_def.h: added
support for 1-arg form of "swap/switch" command
* ModuleCmd_List.c: sanity check added in case _LMFILES_ and LOADEDMODULES
env vars get corrupted externally
* testsuite/modules.50-cmds/170-swap.exp: added test for one-argument form
of swap/switch command
2002-04-27 lakata <lakata>
* ChangeLog, Makefile.in, ModuleCmd_Bootstrap.c, cmdModule.c, cmdTrace.c,
config.h.in, doc/module.1.in, init/bash.in, init/csh.in, init/ksh.in,
init/perl.in, init/sh.in, init/zsh.in, main.c, modules_def.h, utility.c:
added the bootstrap command
2002-04-24 lakata <lakata>
* ChangeLog: more stuff
* init/tcsh.in: tcsh is now generated from csh, not tcsh.in
* init/Makefile.in: tcsh script is copy of csh script
* init/csh.in: fixed csh init script to deal with funny shell chars like *
and {}
* utility.c: (1) removed unset -f for zsh unaliasing (2) removed single
quotes for quoting env vars. This breaks if the env var itself has single
quotes. The more robust method is to individually escape all the dangerous
characters. Old method: setenv foo 'bar bar' New method: setenv foo bar\
bar (3) removed tmpnam and tempname stuff, replacing with safer
tmpfile_mod()
* config.h.in, configure, configure.in: added TMP_DIR define
* cmdXResource.c: suppress warning if DISPLAY is not set
* cmdModule.c: fixed help message
* aclocal.m4: fixed problem with finding tcl lib using glob
* testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.30-userlvl/040-advanced.exp,
testsuite/modules.30-userlvl/045-adv.exp,
testsuite/modules.30-userlvl/050-expert.exp,
testsuite/modules.30-userlvl/055-exp.exp,
testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.35-trace/020-default.exp,
testsuite/modules.35-trace/030-all-on.exp,
testsuite/modules.35-trace/031-all-off.exp,
testsuite/modules.35-trace/040-load-all.exp,
testsuite/modules.35-trace/041-load-all.exp,
testsuite/modules.35-trace/042-load-on.exp,
testsuite/modules.35-trace/043-load-onoff.exp,
testsuite/modules.35-trace/044-load-ovr.exp,
testsuite/modules.35-trace/050-disp-onoff.exp,
testsuite/modules.35-trace/060-dilo-onoff.exp,
testsuite/modules.35-trace/070-colon.exp,
testsuite/modules.35-trace/095-cleanup.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.50-cmds/170-swap.exp,
testsuite/modules.50-cmds/190-load.exp,
testsuite/modules.50-cmds/200-break.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp: changed tests to match new
syntax for setting env vars. rather than quoting, special characters are
escaped
2002-04-09 lakata <lakata>
* Makefile.in: simplified installation of deep directories
2002-03-18 rkowen <rkowen>
* Makefile.in: Un-escaped the --srcdir $$TESTSUITEDIR, because it caused
problems on Linux dejagnu 1.4.1 . The variable is being interpolated before
the runtest command is executed.
2002-03-11 lakata <lakata>
* aclocal.m4, configure, configure.in: more TCL smarts, if tclsh does not
exist on path
* INSTALL: added hints on how to recognize a bad TCL install
* ChangeLog: updates for release 3.1.6++
* testsuite/modules.00-init/015-version.exp.in,
testsuite/modules.50-cmds/100-loglevel.exp.in: removed *.in versions
(configure processed)
* testsuite/modules.00-init/015-version.exp,
testsuite/modules.50-cmds/100-loglevel.exp: renamed from *.in versions
(configure processed)
* testsuite/config/unix.exp, testsuite/modulefiles/system/2.0,
testsuite/modulefiles/use/{1.0.in => 1.0}, testsuite/modulefiles/use/{2.0.in
=> 2.0}, testsuite/modulefiles/use/{2.1.in => 2.1},
testsuite/modulefiles/use/{2.2.in => 2.2},
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/015-version.exp.in,
testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/017-use-undo.exp,
testsuite/modules.70-maint/010-init_ts.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.95-version/010-init_ts.exp: (a) updated testsuite by
centering source on TESTSUITEDIR, rather than rely on "pwd" or relative
paths, which prohibit running the testsuite from a different dir (b) removed
autoconf/configure processing of testsuite
* INSTALL: Added more information about configuring TCL and a few other
prerequisites.
* configure: reran autoconf. see configure.in log
* probetcl: probetcl functionality is now in aclocal.m4
* configure.in: (a) reordered configuration, so that critical things are
done first (aids in debugging to get the hardstuff done first). (b) removed
some of the testsuite configuration (c) added -with-tcl-library
configuration (d) changed the help messages
* config.h.in: removed redundant lines
* cmdXResource.c: (a) fixed regular expression for XRDB parsing (b) fixed
spelling of "resource" (i think it was using the French spelling before)
* Makefile.in: (a) change the way testsuite is configured, so "clean" was
updated (b) changed -I include path to point to cwd instead ..
* aclocal.m4: fixed the way TCL was configured
2002-03-10 rkowen <rkowen>
* init/csh.in: Fixed bug in init/csh script, which only affected those that
changed their history character. Found by Barb Mauzy of Cray Inc.
* Makefile.in: Updated the dist tarball upload targets.
* modulefiles/module-cvs.in: Fixed up module-ftp alias to reflect the
current SourceForge.Net ftp situation.
* version.c: Preparing the version move to 3.1.7
* .ftp: Made the tarball ftp uploading script more generic.
* modules.lsm.in: Changed the primary & alternate ftp site to the current
SourceForge.Net set up.
2002-03-09 lakata <lakata>
* ModuleCmd_Avail.c: Fixed bug in mkdirnm. There was a check to see if the
dir eq ".", but was done using a char comparison, not string comparison.
Caused severe problems if dir was "..", since only first character was used.
2002-03-08 lakata <lakata>
* INSTALL: Simplified docs by removing details of RKOConfigure and
describing a typical install on a standard unix box
2002-01-04 rkowen <rkowen>
* version.c: Minor change to date.
* ChangeLog, ModuleCmd_Load.c, PROBLEMS, RKOConfigure, doc/modulefile.4.in,
init.c, testsuite/modulefiles/break/1.0, testsuite/modulefiles/break/2.0,
testsuite/modulefiles/break/3.0, testsuite/modules.50-cmds/200-break.exp: *
A 'break' in a modulefile will cause the modulefile to not be added to
$LOADEDMODULES, but will be considered a successful execution to not affect
other modulefiles being loaded concurrently (Patch due to Scott Gaskins). *
Tests and docs added for the above.
2001-12-20 rkowen <rkowen>
* TODO: Added Harlan Stenn's suggestions, and cleaned it up a bit.
2001-11-05 rkowen <rkowen>
* ChangeLog, Makefile.in, PROBLEMS, RKOConfigure, configure, configure.in,
doc/Modules-Paper.pdf, locate_module.c, probetcl,
testsuite/modules.50-cmds/190-load.exp, version.c: * Fixed problem with
module load when the full path is given (patch due to Scott Gaskins). *
Added tests for the above problem. * Added the Modules-Paper in PDF format
(thanks to Philip Kearns and Leo Butler for raising the issue). * Modified
probetcl to avoid using the -c option (patch due to Philip Kearns). *
Modified probetcl to use tclsh first then tcl * Added TCL_VERSION to
configure and use it in the Makefile to use the -ltcl@TCL_VERSION@ library.
2001-08-18 rkowen <rkowen>
* ChangeLog, version.c: Release 3.1.5
2001-08-17 rkowen <rkowen>
* ChangeLog, ModuleCmd_Load.c, cmdPath.c, version.c: * Fixed up cmdPath to
remove individual items from a path (patch due to Eric Stanley).
2001-08-03 rkowen <rkowen>
* .ftp, Makefile.in, version.c: Minor fixes for distribution uploading.
* Makefile.in: Fixed the ftp-local bz2 patch target.
* .spec.in, ChangeLog, Makefile.in, version.c: * Added bz2 files to
distribution mix.
2001-07-26 rkowen <rkowen>
* ChangeLog, cmdPath.c, testsuite/modulefiles/info/isloaded,
testsuite/modulefiles/loc_dv1/1.0, testsuite/modulefiles/loc_dv1/2.0,
testsuite/modules.50-cmds/088-info-isloaded.exp,
testsuite/modules.50-cmds/170-swap.exp, version.c: * Fixed "module swap" to
put the substituted module in the same path location as the old. Also added
a number of tests for this feature. (Bug was pointed out by Leo Butler
<lbutler@brocade.com>) * Added tests for the "is-loaded" modulefile command
introduced back in 3.0.8-rko.
2001-07-16 rkowen <rkowen>
* version.c: Testing to see if a really minor update could be done.
* INSTALL.RH7x, etc/global/bashrc.in, etc/global/profile.in: Fixed some
embarrassing typos and editting mistakes.
2001-07-11 rkowen <rkowen>
* testsuite/modulefiles/versions/1.1, testsuite/modulefiles/versions/1.2,
testsuite/modulefiles/versions/1.3: More test stragglers for 3.1.3
* testsuite/modulefiles.other/1.1/version,
testsuite/modulefiles.other/1.2/version,
testsuite/modulefiles.other/1.3/version, testsuite/modulefiles/unsetenv/0.9:
Forgot some straggler test files for 3.1.3
* ChangeLog, README.perl, configure, configure.in, modulefiles/Makefile.in,
modulefiles/module-cvs.in, modulefiles/modules.in, modulefiles/use.own.in,
testsuite/modules.50-cmds/017-use-undo.exp, version.c,
xref/ModuleCmd_Use.c.html, xref/cxref.function: * Added module-cvs
modulefile for easy CVS/ftp access to the modules CVS repository. * Added
README.perl describing Ron Isaacson's Env::Modulecmd perl module
(Ron.Isaacson@morganstanley.com). * Added further tests for modulefile
"module use dir_path" * Fixed bug of unloading a modulefile with a "module
use dir_path"
* cmdModule.c: Was forcing a "use" even when the "use" was embedded in
modulefile, which was being unloaded.
* version.c: Changed the version to 3.1.3a to note that this is not a
release.
2001-07-09 rkowen <rkowen>
* ChangeLog, INSTALL, INSTALL.RH7x, ModuleCmd_Use.c, cmdPath.c, cmdSetenv.c,
configure, configure.in, doc/modulefile.4.in, etc/Makefile.in,
etc/global/bashrc.in, etc/global/csh.cshrc.in, etc/global/csh.login.in,
etc/global/csh.modules.in, etc/global/profile.in,
etc/global/profile.modules.in, etc/skel/.kshenv.in, etc/skel/.profile.in,
modulefiles/use.own.in, modulefiles/version.in,
testsuite/modulefiles/use/.version, testsuite/modulefiles/use/1.0.in,
testsuite/modulefiles/use/2.0.in, testsuite/modulefiles/use/2.1.in,
testsuite/modulefiles/use/2.2.in, testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.30-userlvl/030-novice.exp,
testsuite/modules.30-userlvl/035-nov.exp,
testsuite/modules.30-userlvl/040-advanced.exp,
testsuite/modules.30-userlvl/045-adv.exp,
testsuite/modules.30-userlvl/050-expert.exp,
testsuite/modules.30-userlvl/055-exp.exp,
testsuite/modules.30-userlvl/090-undef.exp,
testsuite/modules.35-trace/020-default.exp,
testsuite/modules.35-trace/030-all-on.exp,
testsuite/modules.35-trace/031-all-off.exp,
testsuite/modules.35-trace/040-load-all.exp,
testsuite/modules.35-trace/041-load-all.exp,
testsuite/modules.35-trace/042-load-on.exp,
testsuite/modules.35-trace/043-load-onoff.exp,
testsuite/modules.35-trace/044-load-ovr.exp,
testsuite/modules.35-trace/050-disp-onoff.exp,
testsuite/modules.35-trace/060-dilo-onoff.exp,
testsuite/modules.35-trace/070-colon.exp,
testsuite/modules.50-cmds/010-init_ts.exp,
testsuite/modules.50-cmds/015-use.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/036-unsetenv-x.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.95-version/010-init_ts.exp,
testsuite/modules.95-version/020-load.exp,
testsuite/modules.95-version/020-unload.exp,
testsuite/modules.95-version/022-load2.exp,
testsuite/modules.95-version/022-unload2.exp,
testsuite/modules.95-version/040-xgetenv.exp,
testsuite/modules.95-version/999-cleanup.exp, utility.c, version.c: * Added
document file INSTALL.RH7x which explains how to set up an modules
environment for all users through the system shell files. Is specific to
Linux/RedHat 7.x, but is of general applicability. * Added further tests for
modulefile "module use dir_path" (found an unload bug that will be fixed
before release) * Environment variable contents are now quoted to preserve
any embedded environment variables. (Needed for versioning) * Added over 50
tests specific to module versioning, and testing xgetenv. * Fixed the
unsetenv on unload function, the feature added in 3.0.6-rko was supposed to
set the env.var. to the optional third argument. This was to allow old
env.var. values to be recovered by unraveling a stack set in an other
env.var. Added tests for this feature. This is used by the version
modulefile. * Fixed and updated the version modulefile to allow stacked
versions to be removed the stack. * Removed an annoying spurious stderr
newline.
2001-06-22 rkowen <rkowen>
* ModuleCmd_Help.c: Spurious fprintf(stderr,...) was adding anomalous blank
lines to the tests.
2001-06-10 rkowen <rkowen>
* Makefile.in, testsuite/modulefiles.other/README: Fixed the way a
distribution tar ball is made. It makes only one CVS connection instead of
one per file.
2001-06-09 rkowen <rkowen>
* Makefile.in: Added targets to aid sending the tarball to the ftp sites.
* ChangeLog, Makefile.in, ModuleCmd_Avail.c, ModuleCmd_Display.c,
ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_Load.c, ModuleCmd_Switch.c,
ModuleCmd_Use.c, ModuleCmd_Whatis.c, cmdAlias.c, cmdConflict.c, cmdInfo.c,
cmdIsLoaded.c, cmdLog.c, cmdMisc.c, cmdModule.c, cmdPath.c, cmdSetenv.c,
cmdTrace.c, cmdUlvl.c, cmdVerbose.c, cmdVersion.c, cmdWhatis.c,
cmdXResource.c, doc/module.1.in, error.c, getopt.c, locate_module.c, main.c,
modules.lsm.in, modules_def.h, testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp, utility.c, version.c,
xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Display.c.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Init.c.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Switch.c.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Whatis.c.html,
xref/cmdAlias.c.html, xref/cmdConflict.c.html, xref/cmdInfo.c.html,
xref/cmdIsLoaded.c.html, xref/cmdLog.c.html, xref/cmdMisc.c.html,
xref/cmdModule.c.html, xref/cmdPath.c.html, xref/cmdSetenv.c.html,
xref/cmdTrace.c.html, xref/cmdUlvl.c.html, xref/cmdVerbose.c.html,
xref/cmdVersion.c.html, xref/cmdWhatis.c.html, xref/cmdXResource.c.html,
xref/cxref.apdx.html, xref/cxref.function, xref/cxref.variable,
xref/error.c.html, xref/init.c.html, xref/locate_module.c.html,
xref/main.c.html, xref/utility.c.html: * Fixed the "module use --append"
feature, and fixed the tests for "module use", "module use --append", and
"module unuse". * Changed the global variable names (flags,current_module)
to (g_flags, g_current_module) to identify their ubiquity in the module
source.
2001-03-22 rminsk <rminsk>
* init/python.in: Was not setting the environment variable MODULESHOME
* ChangeLog: Comment added about mel support
* configure: Added python
2001-02-15 rminsk <rminsk>
* version.c: Retracted new version
* version.c: Bumped version for mel addition
* utility.c: Added mel (Maya Extension Language) support
2001-02-01 rminsk <rminsk>
* Makefile.in: Removed other references to "-rko" in version numbers.
* Makefile.in: Fixed tag rule to use the cvs module "module" instead of
"module-3.1rko"
* ChangeLog: Updated for 3.1.1 release.
* configure.in: Added init/python
* Makefile.in: Updated version number of 3.0 to 3.1.
* version.c: Bumped up version number for new release
2001-01-16 rminsk <rminsk>
* init/python.in: Removing blank lines
* init/Makefile.in, init/python.in: Fixing typeo's
* init/Makefile.in, init/python.in: Adding python init files.
* utility.c: Fixing bug the the _LMFILES_ environment variable. As the
_LMFILES_ shrink in size the extra _LMFILES%03d_ were not being unset. Made
sure extra _LMFILES%03d_ are removed each time _LMFILES_ is set. Added
initial support for scheme (scm, guile). Made output of ksh (bash, zsh)
aliases recognize the escape charater ("\"). This was important to be able
to escape "$". Anytime an alias had a "$" in it a function was always
output. Fixed a bug in search of the LOADEDMODULES environment variable.
Would not correctly find a module if only a partial module name was given.
For example "maya/3.0" would be found but "maya" would not. In the process
of fixing this bug a possible memory corruption was also fixed.
* init/csh.in: Removed variable histchar. It was not being used. Modified
to store the current prompt and unset prompt while modules is running. A
bug in csh will cause and eval of an eval (eval `eval ...`) to output a
prompt. This cause the first eval to try to execute the prompt.
* init.c: Fixing bug the the _LMFILES_ environment variable. If the user is
using csh and _LMFILES_ is large than LMSPLIT_SIZE it gets split into
_LMFILES.%03d_. For modules to work correctly the split _LMFILES.%03d_ must
be joined to make _LMFILES_.
2000-11-03 rk <rk>
* xref/cmdModule.c.html: * Fixed the changed *interpter->result return value
with Tcl8.3+ (patch due to Jens Hamisch). And some document changes.
* ChangeLog, INSTALL, cmdModule.c: * Fixed the changed *interpter->result
return value with Tcl8.3+ (patch due to Jens Hamisch). And some document
changes.
2000-06-28 rk <rk>
* ChangeLog, Makefile.in, ModuleCmd_Load.c, README, ccc.h.in,
xref/ModuleCmd_Avail.c.html, xref/ModuleCmd_Clear.c.html,
xref/ModuleCmd_Display.c.html, xref/ModuleCmd_Help.c.html,
xref/ModuleCmd_Init.c.html, xref/ModuleCmd_List.c.html,
xref/ModuleCmd_Load.c.html, xref/ModuleCmd_Purge.c.html,
xref/ModuleCmd_Switch.c.html, xref/ModuleCmd_Update.c.html,
xref/ModuleCmd_Use.c.html, xref/ModuleCmd_Whatis.c.html,
xref/cmdAlias.c.html, xref/cmdConflict.c.html, xref/cmdInfo.c.html,
xref/cmdIsLoaded.c.html, xref/cmdLog.c.html, xref/cmdMisc.c.html,
xref/cmdModule.c.html, xref/cmdPath.c.html, xref/cmdSetenv.c.html,
xref/cmdTrace.c.html, xref/cmdUlvl.c.html, xref/cmdUname.c.html,
xref/cmdVerbose.c.html, xref/cmdVersion.c.html, xref/cmdWhatis.c.html,
xref/cmdXResource.c.html, xref/error.c.html, xref/init.c.html,
xref/locate_module.c.html, xref/main.c.html, xref/utility.c.html: * Removed
warning message for unloading a module that's not loaded. * Added source
code cross-referencing via cxref-1.5b(patched)
* .cxref, Makefile.in, xref/ModuleCmd_Avail.c.html,
xref/ModuleCmd_Clear.c.html, xref/ModuleCmd_Display.c.html,
xref/ModuleCmd_Help.c.html, xref/ModuleCmd_Init.c.html,
xref/ModuleCmd_List.c.html, xref/ModuleCmd_Load.c.html,
xref/ModuleCmd_Purge.c.html, xref/ModuleCmd_Switch.c.html,
xref/ModuleCmd_Update.c.html, xref/ModuleCmd_Use.c.html,
xref/ModuleCmd_Whatis.c.html, xref/cmdAlias.c.html, xref/cmdConflict.c.html,
xref/cmdInfo.c.html, xref/cmdIsLoaded.c.html, xref/cmdLog.c.html,
xref/cmdMisc.c.html, xref/cmdModule.c.html, xref/cmdPath.c.html,
xref/cmdSetenv.c.html, xref/cmdTrace.c.html, xref/cmdUlvl.c.html,
xref/cmdUname.c.html, xref/cmdVerbose.c.html, xref/cmdVersion.c.html,
xref/cmdWhatis.c.html, xref/cmdXResource.c.html, xref/cxref.apdx.html,
xref/cxref.function, xref/cxref.html, xref/cxref.include,
xref/cxref.typedef, xref/cxref.variable, xref/error.c.html,
xref/getopt.c.html, xref/index.html, xref/init.c.html,
xref/locate_module.c.html, xref/main.c.html, xref/utility.c.html,
xref/version.c.html: Added cxref-1.5b(patched) generated HTML files showing
the source code cross-referencing relations.
* Makefile.in, configure, configure.in, version.c: Minor updates.
* .cxref, .ftp, .spec.in, ChangeLog, INSTALL, LICENSE.GPL, MACHINES,
Makefile.in, ModuleCmd_Avail.c, ModuleCmd_Clear.c, ModuleCmd_Display.c,
ModuleCmd_Help.c, ModuleCmd_Init.c, ModuleCmd_List.c, ModuleCmd_Load.c,
ModuleCmd_Purge.c, ModuleCmd_Switch.c, ModuleCmd_Update.c, ModuleCmd_Use.c,
ModuleCmd_Whatis.c, PROBLEMS, README, RKOConfigure, TODO, acconfig.h,
aclocal.m4, ccc.h.in, cmdAlias.c, cmdConflict.c, cmdInfo.c, cmdIsLoaded.c,
cmdLog.c, cmdMisc.c, cmdModule.c, cmdPath.c, cmdSetenv.c, cmdTrace.c,
cmdUlvl.c, cmdUname.c, cmdVerbose.c, cmdVersion.c, cmdWhatis.c,
cmdXResource.c, config.h.in, configure, configure.in, doc/Makefile.in,
doc/Modules-Paper.doc, doc/module.1.in, doc/modulefile.4.in, error.c,
etc/Makefile.in, etc/README, etc/add.modules.in, etc/global/csh.login.in,
etc/global/csh.modules.in, etc/global/profile.in,
etc/global/profile.modules.in, etc/mkroot.in, etc/skel/.cshrc.in,
etc/skel/.kshenv.in, etc/skel/.login.in, etc/skel/.profile.in,
ext/Makefile.in, ext/README, ext/add.ext.in, ext/common/.cshrc.in,
ext/common/.kshenv.in, ext/common/.login.in, ext/common/.profile.in,
ext/mkroot.in, ext/skel/.cshrc.ext, ext/skel/.kshenv.ext,
ext/skel/.login.ext, ext/skel/.modules, ext/skel/.profile.ext, getopt.c,
getopt.h, init.c, init/.modulespath.in, init/Makefile.in, init/bash.in,
init/csh.in, init/ksh.in, init/perl.in, init/sh.in, init/tcsh.in,
init/zsh.in, install.sh, locate_module.c, main.c, modulefiles/Makefile.in,
modulefiles/dot.in, modulefiles/module-info.in, modulefiles/modules.in,
modulefiles/null.in, modulefiles/use.own.in, modulefiles/version.in,
modules.lsm.in, modules_def.h, probetcl, stripmkf,
testsuite/config/unix.exp, testsuite/etc/apropos.cache, testsuite/etc/bad,
testsuite/etc/empty, testsuite/etc/rc, testsuite/home/.modulerc,
testsuite/modulefiles/.moduleavailcache,
testsuite/modulefiles/.moduleavailcache.202,
testsuite/modulefiles/.moduleavailcachedir,
testsuite/modulefiles/.moduleavailcachedir.202,
testsuite/modulefiles/README, testsuite/modulefiles/alias/2.0,
testsuite/modulefiles/append/2.0, testsuite/modulefiles/conflict/full,
testsuite/modulefiles/conflict/module, testsuite/modulefiles/empty/1.0,
testsuite/modulefiles/help/2.0, testsuite/modulefiles/info/mode1,
testsuite/modulefiles/info/mode2, testsuite/modulefiles/info/mode3,
testsuite/modulefiles/info/mode4, testsuite/modulefiles/info/mode5,
testsuite/modulefiles/info/mode6, testsuite/modulefiles/info/name,
testsuite/modulefiles/info/shells, testsuite/modulefiles/info/shellsexp,
testsuite/modulefiles/info/user, testsuite/modulefiles/info/userexp,
testsuite/modulefiles/loc_dv1/1.0, testsuite/modulefiles/loc_dv1/2.0,
testsuite/modulefiles/loc_dv1/3.0, testsuite/modulefiles/loc_dv2/.version,
testsuite/modulefiles/loc_dv2/1.0, testsuite/modulefiles/loc_dv2/2.0,
testsuite/modulefiles/loc_dv3/.version, testsuite/modulefiles/loc_dv3/1.0,
testsuite/modulefiles/loc_dv3/2.0, testsuite/modulefiles/loc_dv4/.version,
testsuite/modulefiles/loc_dv4/1.0, testsuite/modulefiles/loc_dv4/2.0,
testsuite/modulefiles/loc_dv6/1.0, testsuite/modulefiles/loc_dv6/2.0/1.0,
testsuite/modulefiles/loc_dv7/.version, testsuite/modulefiles/loc_dv7/1.0,
testsuite/modulefiles/loc_dv7/2.0/1.0, testsuite/modulefiles/loc_dv7/3.0,
testsuite/modulefiles/loc_dv8/.version, testsuite/modulefiles/loc_dv8/1.0,
testsuite/modulefiles/loc_dv8/2.0, testsuite/modulefiles/loc_fq/1.0,
testsuite/modulefiles/loc_fq/2.0, testsuite/modulefiles/loc_rc1/.modulerc,
testsuite/modulefiles/loc_rc1/1.0, testsuite/modulefiles/loc_rc1/2.0,
testsuite/modulefiles/loc_rc2/.modulerc, testsuite/modulefiles/loc_rc2/1.0,
testsuite/modulefiles/loc_rc2/2.0, testsuite/modulefiles/loc_rc3/.modulerc,
testsuite/modulefiles/loc_rc3/1.0, testsuite/modulefiles/loc_rc3/2.0,
testsuite/modulefiles/loc_rc3/3.0, testsuite/modulefiles/loc_rc4/.modulerc,
testsuite/modulefiles/loc_rc4/.version, testsuite/modulefiles/loc_rc4/1.0,
testsuite/modulefiles/loc_rc4/2.0, testsuite/modulefiles/loc_rc4/3.0,
testsuite/modulefiles/loc_rc5/.modulerc, testsuite/modulefiles/loc_rc5/1.0,
testsuite/modulefiles/loc_rc5/2.0, testsuite/modulefiles/loc_sym/1.0,
testsuite/modulefiles/loc_sym/alias1, testsuite/modulefiles/loc_sym/alias2,
testsuite/modulefiles/loc_sym/alias3, testsuite/modulefiles/loc_sym/alias4,
testsuite/modulefiles/loc_sym/alias5, testsuite/modulefiles/loc_sym/alias6,
testsuite/modulefiles/loc_sym/exec1, testsuite/modulefiles/loc_sym/exec2,
testsuite/modulefiles/loc_sym/getvers1,
testsuite/modulefiles/loc_sym/getvers2,
testsuite/modulefiles/loc_sym/getvers3,
testsuite/modulefiles/loc_sym/getvers4,
testsuite/modulefiles/loc_sym/getvers5,
testsuite/modulefiles/loc_sym/getvers6,
testsuite/modulefiles/loc_sym/getvers7,
testsuite/modulefiles/loc_sym/getvers8,
testsuite/modulefiles/loc_sym/versinf1,
testsuite/modulefiles/loc_sym/versinf2,
testsuite/modulefiles/loc_sym/versinf3,
testsuite/modulefiles/loc_sym/versinf4,
testsuite/modulefiles/loc_sym/versinf5,
testsuite/modulefiles/loc_sym/versinf6,
testsuite/modulefiles/loc_sym/versinf7,
testsuite/modulefiles/loc_sym/version1,
testsuite/modulefiles/loc_sym/version10,
testsuite/modulefiles/loc_sym/version11,
testsuite/modulefiles/loc_sym/version12,
testsuite/modulefiles/loc_sym/version13,
testsuite/modulefiles/loc_sym/version14,
testsuite/modulefiles/loc_sym/version2,
testsuite/modulefiles/loc_sym/version3,
testsuite/modulefiles/loc_sym/version4,
testsuite/modulefiles/loc_sym/version5,
testsuite/modulefiles/loc_sym/version6,
testsuite/modulefiles/loc_sym/version7,
testsuite/modulefiles/loc_sym/version8,
testsuite/modulefiles/loc_sym/version9, testsuite/modulefiles/log/badfac,
testsuite/modulefiles/log/err_both_1, testsuite/modulefiles/log/err_both_2,
testsuite/modulefiles/log/err_file, testsuite/modulefiles/log/err_syslog,
testsuite/modulefiles/module/2.0, testsuite/modulefiles/prepend/2.0,
testsuite/modulefiles/prereq/full, testsuite/modulefiles/prereq/module,
testsuite/modulefiles/remove/2.0, testsuite/modulefiles/system/2.0,
testsuite/modulefiles/trace/all_off, testsuite/modulefiles/trace/all_on,
testsuite/modulefiles/trace/colon, testsuite/modulefiles/trace/dilo_onoff,
testsuite/modulefiles/trace/disp_onoff,
testsuite/modulefiles/trace/disptrac, testsuite/modulefiles/trace/load_all1,
testsuite/modulefiles/trace/load_all2, testsuite/modulefiles/trace/load_on,
testsuite/modulefiles/trace/load_onoff,
testsuite/modulefiles/trace/load_ovr, testsuite/modulefiles/uname/domain,
testsuite/modulefiles/uname/machine, testsuite/modulefiles/uname/nodename,
testsuite/modulefiles/uname/release, testsuite/modulefiles/uname/sysname,
testsuite/modulefiles/uname/version, testsuite/modulefiles/unsetenv/1.0,
testsuite/modulefiles/user/adv, testsuite/modulefiles/user/advanced,
testsuite/modulefiles/user/exp, testsuite/modulefiles/user/expert,
testsuite/modulefiles/user/nov, testsuite/modulefiles/user/novice,
testsuite/modulefiles/user/undef, testsuite/modulefiles/verbose/msg,
testsuite/modulefiles/verbose/off, testsuite/modulefiles/verbose/on,
testsuite/modulefiles/verbose/undef, testsuite/modulefiles/whatis/lines,
testsuite/modulefiles/whatis/multiple, testsuite/modulefiles/whatis/none,
testsuite/modulefiles/whatis/single, testsuite/modulefiles/whatis/string,
testsuite/modules.00-init/005-init_ts.exp,
testsuite/modules.00-init/006-procs.exp,
testsuite/modules.00-init/010-environ.exp,
testsuite/modules.00-init/015-version.exp.in,
testsuite/modules.00-init/030-shells.exp,
testsuite/modules.00-init/050-modpath.exp,
testsuite/modules.00-init/080-begenv.exp,
testsuite/modules.00-init/090-switches.exp,
testsuite/modules.10-use/010-init_ts.exp,
testsuite/modules.10-use/030-use.exp,
testsuite/modules.10-use/031-append.exp,
testsuite/modules.10-use/070-unuse.exp,
testsuite/modules.20-locate/010-init_ts.exp,
testsuite/modules.20-locate/020-fqual.exp,
testsuite/modules.20-locate/030-defvers.exp,
testsuite/modules.20-locate/040-alias.exp,
testsuite/modules.20-locate/045-symvers.exp,
testsuite/modules.20-locate/046-getsym.exp,
testsuite/modules.20-locate/047-symerrs.exp,
testsuite/modules.20-locate/048-symexec.exp,
testsuite/modules.20-locate/050-locrc.exp,
testsuite/modules.20-locate/055-locrcerrs.exp,
testsuite/modules.20-locate/060-rc.exp,
testsuite/modules.20-locate/065-rcerrs.exp,
testsuite/modules.20-locate/070-homerc.exp,
testsuite/modules.20-locate/095-cleanup.exp,
testsuite/modules.30-userlvl/010-init_ts.exp,
testsuite/modules.30-userlvl/030-novice.exp,
testsuite/modules.30-userlvl/035-nov.exp,
testsuite/modules.30-userlvl/040-advanced.exp,
testsuite/modules.30-userlvl/045-adv.exp,
testsuite/modules.30-userlvl/050-expert.exp,
testsuite/modules.30-userlvl/055-exp.exp,
testsuite/modules.30-userlvl/090-undef.exp,
testsuite/modules.35-trace/010-init_ts.exp,
testsuite/modules.35-trace/020-default.exp,
testsuite/modules.35-trace/030-all-on.exp,
testsuite/modules.35-trace/031-all-off.exp,
testsuite/modules.35-trace/040-load-all.exp,
testsuite/modules.35-trace/041-load-all.exp,
testsuite/modules.35-trace/042-load-on.exp,
testsuite/modules.35-trace/043-load-onoff.exp,
testsuite/modules.35-trace/044-load-ovr.exp,
testsuite/modules.35-trace/050-disp-onoff.exp,
testsuite/modules.35-trace/060-dilo-onoff.exp,
testsuite/modules.35-trace/070-colon.exp,
testsuite/modules.35-trace/095-cleanup.exp,
testsuite/modules.50-cmds/010-init_ts.exp,
testsuite/modules.50-cmds/020-setenv.exp,
testsuite/modules.50-cmds/025-setenv-undo.exp,
testsuite/modules.50-cmds/030-unsetenv.exp,
testsuite/modules.50-cmds/035-unsetenv-undo.exp,
testsuite/modules.50-cmds/040-append.exp,
testsuite/modules.50-cmds/045-append-undo.exp,
testsuite/modules.50-cmds/050-prepend.exp,
testsuite/modules.50-cmds/055-prepend-undo.exp,
testsuite/modules.50-cmds/060-remove.exp,
testsuite/modules.50-cmds/065-remove-undo.exp,
testsuite/modules.50-cmds/070-alias-proc.exp,
testsuite/modules.50-cmds/075-alias.exp,
testsuite/modules.50-cmds/077-alias-undo.exp,
testsuite/modules.50-cmds/080-info-name.exp,
testsuite/modules.50-cmds/081-info-user.exp,
testsuite/modules.50-cmds/082-info-user-exp.exp,
testsuite/modules.50-cmds/083-info-mode.exp,
testsuite/modules.50-cmds/084-info-mode-exp.exp,
testsuite/modules.50-cmds/085-info-flags.exp,
testsuite/modules.50-cmds/086-info-shells.exp,
testsuite/modules.50-cmds/087-info-shells-exp.exp,
testsuite/modules.50-cmds/090-uname-proc.exp,
testsuite/modules.50-cmds/095-uname.exp,
testsuite/modules.50-cmds/099-uname-cleanup.exp,
testsuite/modules.50-cmds/100-loglevel.exp.in,
testsuite/modules.50-cmds/101-badfac.exp,
testsuite/modules.50-cmds/110-verbose.exp,
testsuite/modules.50-cmds/115-verbose-msg.exp,
testsuite/modules.50-cmds/120-prereq-full.exp,
testsuite/modules.50-cmds/121-prereq-module.exp,
testsuite/modules.50-cmds/130-conflict-full.exp,
testsuite/modules.50-cmds/131-conflict-module.exp,
testsuite/modules.50-cmds/140-system.exp,
testsuite/modules.50-cmds/150-module.exp,
testsuite/modules.70-maint/010-init_ts.exp,
testsuite/modules.70-maint/020-update.exp,
testsuite/modules.70-maint/030-purge.exp,
testsuite/modules.70-maint/040-list.exp,
testsuite/modules.70-maint/043-listno.exp,
testsuite/modules.70-maint/045-listlong.exp,
testsuite/modules.70-maint/048-listlongno.exp,
testsuite/modules.70-maint/050-whatis-load.exp,
testsuite/modules.70-maint/055-whatis.exp,
testsuite/modules.70-maint/060-apropos.exp,
testsuite/modules.70-maint/070-display.exp,
testsuite/modules.70-maint/080-help.exp,
testsuite/modules.70-maint/095-cleanup.exp,
testsuite/modules.90-avail/010-init_ts.exp,
testsuite/modules.90-avail/020-single.exp,
testsuite/modules.90-avail/030-multiple.exp,
testsuite/modules.90-avail/040-wild.exp,
testsuite/modules.90-avail/050-long.exp,
testsuite/modules.90-avail/060-empty.exp, testsuite/not_installed,
testsuite/systest, utility.c, version.c: modules is a shell tool for
setting-up the user environment on the fly, as it were. It's a powerful
mechanism for dynamically changing environment variables, aliases, X11
resources, etc. It uses an embedded Tcl intrepretor, with a few extensions.
Therefore, it has a well defined language syntax. Version 3.1 is GPL, and
includes many improvements over the 3.0beta.
1998-12-11 rk <rk>
* testsuite/modulefiles/setenv/1.0: modules is a shell tool for setting-up
the user environment on the fly, as it were. It's a powerful mechanism for
dynamically changing environment variables, aliases, X11 resources, etc. It
uses an embedded Tcl intrepretor, with a few extensions. Therefore, it has
a well defined language syntax. Version 3.1 is GPL, and includes many
improvements over the 3.0beta.
Mr. DellatioNx196 GaLers xh3LL Backd00r 1.0, Coded By Mr. DellatioNx196 - Bogor BlackHat