- Rename
contrib
directory asshare
in sources to use clearer name for architecture and configuration independent files. - Set a Security policy for the project.
- Add red, white and black SVG logo files of Modules project.
- Doc: improve Links, Community sections in documentation index and README
- Doc: improve Authors and Acknowledgments sections in README
- Doc: add
create-new-release
guide - Update repository URL to https://github.com/envmodules/modules.
- Install: update
configure
script to allow running it from a current working directory different than where this file is stored. (fix issue #558) - Doc: create Developer HowTos section on documentation website to group development how-to guides.
- Doc: add
acknowledgments
page in the documentation. - Doc: describe
GOVERNANCE
. - Doc: add
CHARTER
. - Escape square brackets (
[]
) used in values within produced shell code as these characters may have special meaning on some shells (like csh). (fix issue #565) - Doc: advertise the Modules chat room (
#modules:matrix.org
) to discuss with the community. - Doc: describe the
developer-certificate-of-origin
process now applied on contributions. - Doc: add
add-new-maintainer
guide - Fix interpreter variable reset between multiple modulefile or modulerc evaluations when variable initial value is an invalid list. (fix issue #570)
- Fix
source-sh
andsh-to-mod
shell translation when used with new fish shell version (4.0). - Doc: add
mode-select
design notes. - Introduce
use
extra specifier to search forMODULEPATH
changes performed withmodule use
,append-path
orprepend-path
modulefile commands onavail
,whatis
andpaths
sub-commands. - Add
--dumpname
option to report name of current Environment Modules implementation. Here it returnsModules
. This option is also available on Lmod starting version 8.7.50. - Add the
depends-on-any
modulefile command, alias over theprereq
command for compatibility with Lmod Tcl modulefiles. - Add
depends-on-any
extra specifier to query modulefile requirement definitions. The extra specifier aliasesprereq
,prereq-any
orrequire
may also be used to query this modulefile command. - Introduce the
spider
sub-command that lists available modules found in enabled modulepaths and recursively found in modulepaths enabled by available modules. After a first step aimed at collecting all modulepaths,spider
proceeds and reports likeavail
sub-command. The same set of options are supported. - Introduce the
spider_output
andspider_terse_output
configuration options to define the content to report in addition to the available module names respectively forspider
sub-command regular and terse output modes. Excepted value for these configuration options is a colon separated list of elements to report. Default value ismodulepath:alias:dirwsym:sym:tag:variantifspec:key
forspider_output
andmodulepath:alias:dirwsym:sym:tag:variantifspec
forspider_terse_output
. These values can be changed at installation time respectively with the--with-spider-output
and--with-spider-terse-output
options. These values can then be superseded by using theconfig
sub-command which sets theMODULES_SPIDER_OUTPUT
andMODULES_SPIDER_TERSE_OUTPUT
environment variables. - Introduce the ability to control whether
spider
command search results should recursively include or not modulefiles from directories matching search query by use of the--indepth
and--no-indepth
command-line switches orspider_indepth
configuration option (that setsMODULES_SPIDER_INDEPTH
environment variable throughconfig
command). Default value (enabled) may also be changed at installation time with--disable-spider-indepth
option. - Doc: add
spider-sub-command
design notes. - The
lint
sub-command now also lint any readable modulecache files when no modulefile specification is passed as argument or if.modulecache
file location is specifically passed as argument. - Add the
hidden
element in the allowed value list of theavail_output
,avail_terse_output
,list_output
,list_terse_output
,spider_output
andspider_terse_output
configuration options. When set, it is equivalent to use--all
option: hidden modules are shown. - Produce a single output for multi pattern
avail
search rather than a separate output for each submitted pattern. - Produce a single output for multi pattern
whatis
search rather than a separate output for each submitted pattern. - Doc: clarify that character used in version specification like , and : cannot be used as variant shortcut.
- Introduce
__MODULES_LMUSE
environment variable to keep track of the loaded modules that enable modulepaths. - Apply modulepath label defined with
modulepath-label
also on output ofwhatis
andsearch
sub-commands. - Report via information for each module entry on JSON output of
avail
andspider
sub-commands. Via information is the name of the loaded or interpreted module that enables the modulepath in which reported modules are stored. - Add the
via
element in the allowed value list of theavail_output
andspider_output
configuration options. When set, if a modulepath is enabled by a module, this module name is reported next to the modulepath name.via
element is not available for terse output mode.via
is set by default inspider_output
configuration option. - Add
modules_release
internal state. It will help to know the current version of Modules withinsiteconfig.tcl
script. - Introduce
module-help
modulefile command which defines help text to print when modulefile is evaluated inhelp
mode. - Update
add-property
modulefile command to use its value argument to define tag on currently loading module. - Doc: add
module-warn
design notes. - Add
module-warn
modulerc and modulefile command which prints a warning message when designated modulefile is evaluated. This command accepts options to emit the warning only for specific users, groups or times. - Introduce the
warning
informational module tag on modulefiles targeted bymodule-warn
command. Update defaulttag_abbrev
configuration option to add an abbreviation for the new tag (W
) and default light and dark color palettes. - Change light and dark color palettes for
nearly-forbidden
tag (red text with yellow background), to make it look closer toforbidden
tag (red background) and distinguish it from newwarning
tag (black text and yellow background). - No raise of nearly-forbidden warning when affected modulefile is evaluated in
refresh
mode. - Issue the nearly-forbidden warning at the end of the affected modulefile evaluation, ensuring it is always reported at the same stage regardless of where it is defined.
- Change underlying shell code to set environment variable on sh, bash, ksh, zsh and fish shells: enclose value within single quotes rather escaping each special characters.
setenv
modulefile command now supports environment variable value containing newline character. Exception is made for csh and tcsh shells where newline characters are chopped from value. (fix issue #557)- Sort modules in JSON output as done on regular output.
cachebuild
command now sets the minimal Modules version specified in the cache file magic cookie header to the oldest Modules version compatible with this cache file, rather than the version that generated the cache file. Freshly generated cache files are compatible with Modules 5.3 and above.- Doc: improve
enable-modules-in-shells
guidelines. - Doc: add
man-path
cookbook recipe. - Doc: add
other-implementations
document. - Add
update
sub-command, an alias ofreload
- Add
disable
sub-command, an alias ofsaverm
- Add
describe
sub-command, an alias ofsaveshow
- Add
--show_hidden
option, an alias of--all
- Add
haveDynamicMPATH
modulefile command - Fix
use.own
example modulefile to report when creating local modulefiles directory. (fix issue #576) - Doc: add manual page for
envml(1)
command. (fix issue #190) - Introduce Emacs addon files to highlight the modulefile syntax. Installation of these files, which is enabled by default, is controlled by the
--enable-emacs-addons
and--emacsdatadir
configure options. (contribution from Laurent Besson) - Add
require_via
configuration option that controls whether or not a requirement is considered between a module stored in a modulepath and the loaded module that enables this modulepath. With Automated module handling mechanisms enabled, modules stored in a modulepath are unloaded or reloaded when the module enabling this modulepath is changed.require_via
is disabled by default but everyone willing to hierarchically organize their modulefiles is encouraged to enable this new option. This option can be changed at installation time with--enable-require-via
. Whenrequire_via
is changed withconfig
sub-command, it sets theMODULES_REQUIRE_VIA
environment variable. - Install: installation option
--enable-new-features
is updated to include--enable-require-via
. - Doc: add
require-via
design notes. - Skip reload of a Dependent Reload module if it is not found after a change in enabled modulepaths. Reload of a not found module is attempted only if it is tagged super-sticky or sticky and force mode is disabled. Skipped module is considered Dependent Unload module.
- Script: update
mb
tool to skip test for Modules version below 5.5 if Tcl 9 is selected. - Introduce the
provide
modulefile command that defines module alias over currently evaluating module. This helps convey that the module offers additional functionality or components. (fix issue #539) - Change
extensions
modulefile command to be an alias over theprovide
command. - Add the
provided-alias
element in the allowed value list of theavail_output
,avail_terse_output
,spider_output
andspider_terse_output
configuration options. When set, module aliases are included into the output and the extra match search mechanism is activated to scan modulefiles to get the module aliases they define. - Doc: add
provide
design notes. - Introduce
provide
andprovided-alias
extra specifiers to search modules onavail
,spider
,whatis
andpaths
sub-commands.provided-alias
extra specifier is an alias ontoprovide
andfamily
extra specifiers.