github cea-hpc/modules v4.7.0
4.7.0

latest releases: v5.5.0, v5.4.0, v5.3.1...
3 years ago
  • Doc: simplify TOC of MIGRATING document
  • Add the ModuleTool and ModuleToolVersion Modules variables to determine during modulefile or modulerc evaluation the name and version of the module implementation currently in use.
  • Introduce the versioncmp modulefile command to compare two version strings passed as argument.
  • Enable the use of wildcard character to designate multiple directories at once in modulespath configuration file. (fix issue #125)
  • Distinguish aliases from symbolic versions in MODULES_LMALTNAME environment variable. Prefix these alias entries with the al| string.
  • Fetch modulefile modification time only if required by list sub-command display format.
  • Use symbolic versions recorded in environment, with MODULES_LMALTNAME variable, to report the symbols applying to loaded modules on list sub-command. Modulerc files are not evaluated anymore when performing a module list.
  • Move the definition of the FPATH environment variable for Modules initialization on ksh shell from the initialization script of this shell to the resulting output of the autoinit sub-command.
  • Introduce the shells_with_ksh_fpath configuration option to define a list of shell where to ensure that any ksh sub-shell will get the module function defined by use of the FPATH environment variable. When the shells_with_ksh_fpath option is set through the config sub-command, the MODULES_SHELLS_WITH_KSH_FPATH environment variable is set. Accepted values are a list of shell among sh, bash, csh, tcsh and fish separated by colon character (:).
  • Add the implicit_requirement configuration option to control whether a prereq or a conflict requirement should be implicitly set onto modules respectively specified on module load<module> or module unload<module> commands in modulefile. Default value for this option could be set at configure time with the --enable-implicit-requirement option (enabled by default). This value could be superseded by setting up the implicit_requirement option with config sub-command. Which sets the MODULES_IMPLICIT_REQUIREMENT environment variable. (fix issue #260)
  • Add the --not-req option to the module modulefile command to inhibit for its load and unload sub-commands the definition of a prereq or conflict requirement onto specified modules.
  • Add the lpopState and currentState procedures to respectively remove or return the last entry from the list of values of a given state.
  • Add the topState and depthState procedures to respectively return the first element from or the number of elements in the list of values of a given state.
  • Remove the pre-definition of runtime states with no specific property. These basic states are defined on-the-fly which implied they are not reported on a module config --dump-state<config> command unless if instanciated.
  • Introduce the loaded symbolic version among advanced version specifiers (e.g. foo@loaded) to designate the currently loaded version of specified module. (fix issue #366)
  • Doc: add Module tags design notes.
  • Report tags applying to the modules returned by the avail sub-command. Adapt the regular, terse and JSON output styles to report these tags along the module they are attached to (enclosed in <>). Reported tags currently are states that apply to modules: auto-loaded, forbidden, hidden, loaded, nearly-forbidden, sticky and super-sticky.
  • Record tags applying to each loaded module in the MODULES_LMTAG environment variable to make this information persist after module being loaded.
  • Report tags applying to the loaded modules returned by the list sub-command. Adapt the regular and JSON output styles to report these tags along the module they are attached to (enclosed in <>). Reported tags currently are states applying to loaded modules: auto-loaded, hidden-loaded, nearly-forbidden, sticky and super-sticky.
  • Introduce the module-info tags<module-info> modulefile command to query the tags that apply to the currently evaluated modulefile.
  • Add the module-tag modulefile command to associate tag to designated modulefile. Those tags are reported on avail and list sub-commands along the module they are attached to. module-tag supports the advanced module version specifier syntax.
  • Add the tag_abbrev configuration option to define abbreviated strings for module tags and use these abbreviations instead of tag names when reporting tags on avail and list command results. Default value for this option could be set at configure time with the --with-tag-abbrev option. By default the following abbreviations are set: aL for auto-loaded, F for forbidden, H for hidden, H for hidden-loaded, L for loaded, nF for nearly-forbidden, S for sticky, sS for super-sticky. This value could be superseded by setting up the tag_abbrev option with config sub-command. Which sets the MODULES_TAG_ABBREV environment variable.
  • A Select Graphic Rendition (SGR) code can be associated to module tag names or abbreviation strings in the color palette to graphically render these tags over the module name they are associated to. The default light and dark color palettes have been updated to set a color code for all basic module tags. When a color code is set for a tag, it is then graphically rendered over the module names and not reported along module name by its tag name or abbreviation. When multiple colored tags apply to a given module, each tag is graphically rendered over a sub-part of the module name.
  • Add the tag_color_name configuration option to designate module tags whose graphical rendering should be applied to their own name or abbreviation rather than over the module name they are attached to. Default value for this option could be set at configure time with the --with-tag-color-name option (empty by default). This value could be superseded by setting up the tag_color_name option with config sub-command. Which sets the MODULES_TAG_COLOR_NAME environment variable.
  • 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.
  • Do not report on list sub-command results the loaded modules associated with the hidden-loaded tag, unless if the --all option is set.
  • Doc: add an hidden-loaded example in the Hide and forbid modules cookbook recipe.
  • Introduce the verbose2 verbosity level between verbose and trace levels. Verbose2 mode can be enabled by setting the verbosity config to the verbose2 value or by using the -v command-line switch twice.
  • Do not report the load, unload or switch of modules set hidden-loaded if these modules have been loaded, unloaded or switched automatically. Unless the verbosity mode is set to verbose2 or any higher level or if any specific messages have to be reported for these module evaluations.
  • 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 mode is set to verbose2 or any higher level. (fix issue #187)
  • Doc: improve readability of version 4 improvements in diff_v3_v4 document.
  • Introduce stickyness: module tagged sticky with module-tag command cannot be unloaded unless if the unload is forced or if the module is reloaded. (fix issue #269)
  • Introduce super-stickyness: module tagged super-sticky with module-tag command cannot be unloaded even if the unload is forced unless if the module is reloaded. (fix issue #269)
  • Allow swap of sticky or super-sticky modules by another modulefile version if stickyness definition applies to module parent name. E.g., foo/1.0 can be swapped by foo/2.0 if sticky tag applies to foo.
  • When forcing purge with a purge --force<purge> sub-command, also unload the modules that are depended by unloadable modules.
  • Doc: improve readability of Modules installation configuration in INSTALL document and enable hypertext reference to these elements.
  • Doc: improve readability of module command configuration option in module(1) document and enable hypertext reference to these elements.
  • Doc: describe in HTML documentation when installation options, module command configuration options and options of modulefile command or module sub-command were introduced.
  • Doc: update HTML documentation Table Of Content.
  • Doc: improve markup of module sub-commands, modulefile commands, installation option, module configuration option across documentation.
  • Doc: colorize terminal output examples in MIGRATING document.
  • Abort modulefile read if first file content chunk does not start with the #%Module magic cookie. (fix issue #375)
  • Install: add installation option --enable-new-features that enables all at once the installation options that are disabled by default due to the substantial behavior changes they imply.
  • Add a Key section at the end of avail and list sub-commands to explain the meaning of graphical renditions or of elements set in parentheses or chevrons along module name.
  • Fix output of avail and list sub-commands on very small termminal width. (fix issue #378)
  • Add mcookie_version_check configuration to define if version set in modulefile magic cookie should be checked against module current version to determine if modulefile can be evaluated. The new configuration, which is enabled by default, can be set at installation time with configure option --enable-mcookie-version-check or can be superseded later on with the MODULES_MCOOKIE_VERSION_CHECK environment variable. (fix issue #377)
  • Fix output of modulefile evaluation error stack trace on very small terminal width. (fix issues #379 and #381)
  • Correct config sub-command to set nearly_forbidden_days configuration. (fix issue #380)
  • Init: reduce usage of helper variables in bash_completion and tcsh_completion that are showing up in the output of the shell's set command. (fix issue #382 with contribution from Colin Marquardt)
  • Consider modulepath starting with a reference to an environment variable as absolute. (fix issue #376)
  • Consider the module load<load> performed in the user or the global RC file like load commands issued from initialization RC file. (fix issue #372)
  • Install: have configure script assume the . dot directory when invoked without the prepended ./. (contribution from R.K. Owen)
  • Install: disable the Makefile rules to build the HTML documentation in case if the documentation is found pre-built in the dist archive.
  • Install: do not flag documentation as pre-built if configure script is ran another time after building docs.
  • Restrict the value accepted by nearly_forbidden_days configuration and --with-nearly-forbidden-days installation option to integers comprised between 0 and 365.
  • Install: color ERROR and WARNING message headers produced by configure script if output is sent to a terminal.
  • Install: split error messages produced by configure script over an additional line when too long.
  • Doc: add Output configuration design notes.
  • Introduce the avail_output and avail_terse_output configuration options to define the content to report in addition to the available module names respectively for avail sub-command regular and terse output modes. Excepted value for these configuration options is a colon separated list of elements to report. Default value is modulepath:alias:dirwsym:sym:tag:key for avail_output and modulepath:alias:dirwsym:sym:tag for avail_terse_output. These values can be changed at installation time respectively with the --with-avail-output and --with-avail-terse-output options. These values can then be superseded by using the config sub-command which sets the MODULES_AVAIL_OUTPUT and MODULES_AVAIL_TERSE_OUTPUT environment variables.
  • Introduce the list_output and list_terse_output configuration options to define the content to report in addition to the available module names respectively for list sub-command regular and terse output modes. Excepted value for these configuration options is a colon separated list of elements to report. Default value is header:idx:sym:tag:key for list_output and header for list_terse_output. These values can be changed at installation time respectively with the --with-list-output and --with-list-terse-output options. These values can then be superseded by using the config sub-command which sets the MODULES_LIST_OUTPUT and MODULES_LIST_TERSE_OUTPUT environment variables.
  • Add the --output/-o command-line switches to supersede the output configuration of avail or list sub-commands on their regular or terse output modes.
  • Remove the avail_report_dir_sym and avail_report_mfile_sym locked configuration options whose behaviors can now be obtained by respectively adding the dirwsym and sym elements to the avail_output or avail_terse_output configuration options.
  • When modulepath is omitted from the content to report on avail sub-command, available modules collected from global/user rc and enabled modulepaths are aggregated and reported all together.
  • Install: print generated file names rather commands executed to generate these files on Makefile build targets. Output obtained when building Modules is this way simplified. When option V=1 is passed to make, the verbose mode is enabled and run commands are shown. The simplified make output does not apply to the install, test and clean targets or any target similar to them.
  • Install: fix configure and build files of Modules Tcl extension library to make them compatible with autoconf >=2.69.
  • Script: correctly detect previous Modules version number released from a side git branch on mpub command.
  • Install: align RPM spec file syntax with spec file used on Fedora. Add missing build dependency on make package. Also remove obsolete Group RPM tag.
  • Add the term_width configuration option to set the width of the output. This configuration option is set to 0 by default, which means that the output width is the full terminal width. The --width/-w command line switches are added to supersede the value of the configuration option. (fix issue #359 with contribution from Anaïs Gaertner)
  • Doc: add a Get Modules section in INSTALL document to provide download links for Modules' sources. (fix issue #387)

Don't miss a new modules release

NewReleases is sending notifications on new releases.