urn:noticeable:projects:cbzeG7wTvAIqj21zbUmxEnvironment Modules Updatescea-hpc.github.io/modules2020-08-31T18:48:51.805ZCopyright © Environment ModulesNoticeablehttps://storage.noticeable.io/projects/cbzeG7wTvAIqj21zbUmx/newspages/UPOFxJbXsysxyt1L7iHB/01h55ta3gsp13j52cdnky8js2v-header-logo.pnghttps://storage.noticeable.io/projects/cbzeG7wTvAIqj21zbUmx/newspages/UPOFxJbXsysxyt1L7iHB/01h55ta3gsp13j52cdnky8js2v-header-logo.png#b70e0burn:noticeable:publications:WtsNkXQXOsnTs0mZKEnh2020-01-03T20:57:00.001Z2020-08-31T18:48:51.805ZModules 4.4.1 releasedModules version 4.4.1 is out and provides substantial performance improvements as well as fixes for the few issues spotted in the 4.4 serie. The changes introduced in this bugfix release are: Fix error and warning messages relative to...<p>Modules version 4.4.1 is out and provides substantial performance improvements as well as fixes for the few issues spotted in the 4.4 serie.</p> <p>The changes introduced in this bugfix release are:</p> <ul> <li>Fix error and warning messages relative to dependency management to enclose dependency specification in single quotes to clearly distinguish specification from each other.</li> <li>Skip output of module loading message if module is already loaded.</li> <li>Doc: add demonstration material played at SC19 to promote the new features of Modules.</li> <li>Contrib: add <code>playdemo</code> script to play recorded demonstration cast.</li> <li>Doc: add a web anchor to each modulefile Tcl command, module sub-command and module environment variable documentation.</li> <li>Install: update RPM spec file to enable build on <code>el8</code>.</li> <li>Doc: fix RST syntax for bullet lists in design docs. (fix issue #306)</li> <li>In case <code>module avail</code> query does not match a directory but only its contained elements (for instance <code>module av mod/7</code> matches <code>mod/7.1</code> and <code>mod/7.2</code> but not <code>mod/</code>), fix query processing to correctly return latest or default element in case <code>--latest</code> or <code>--default</code> flags are set.</li> <li>In case a <code>module avail</code> query performed in a no-indepth mode with <code>--latest</code> or <code>--default</code> flags either enabled or disabled, fix query processing to return directory elements if they are part of result.</li> <li>When a <code>module avail</code> query performed in no-indepth mode targets a virtual module, fix result to filter-out the directory holding the virtual module from result.</li> <li>Fix <code>module avail --default</code> queries when modulefile default version does not match query: select latest version from modulefiles matching query unless <code>implicit_default</code> configuration is disabled in which case no default version is returned.</li> <li>Improve highlighting of module <code>avail</code> and <code>whatis</code> search result by coloring module names matching search query expressed with the advanced version specifiers. <code>name@1,3</code> or <code>name@1:3</code> queries now highlight <code>name/1</code> and <code>name/3</code> strings found in search result.</li> <li>Contrib: add the <code>mlprof</code> script which wraps <code>modulecmd.tcl</code> to collect profiling information on its execution.</li> <li>Contrib: adapt <code>mb</code> script to profile <code>modulecmd.tcl</code> run tests rather bench them when <code>profile</code> argument is passed to the script.</li> <li>Improve overall performances of module names and versions comparison by introducing optimized procedures and caching in memory module search results.</li> </ul> <p>The list of all changes made in this new version are described in the NEWS document. Details on the new features introduced in the 4.4 series are provided in the MIGRATING document.</p> <p><a href="http://modules.readthedocs.io/en/stable/NEWS.html?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-1-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.WtsNkXQXOsnTs0mZKEnh&amp;utm_medium=newspage" target="_blank" rel="noopener">http://modules.readthedocs.io/en/stable/NEWS.html</a><br> <a href="http://modules.readthedocs.io/en/stable/MIGRATING.html?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-1-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.WtsNkXQXOsnTs0mZKEnh&amp;utm_medium=newspage" target="_blank" rel="noopener">http://modules.readthedocs.io/en/stable/MIGRATING.html</a></p> <p>The tarball of this new version can be downloaded at:</p> <p><a href="http://downloads.sourceforge.net/modules/modules-4.4.1.tar.gz?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-1-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.WtsNkXQXOsnTs0mZKEnh&amp;utm_medium=newspage" target="_blank" rel="noopener">http://downloads.sourceforge.net/modules/modules-4.4.1.tar.gz</a></p> <p>If you encounter any issue, please let us know by creating a ticket on the project bug tracker at:</p> <p><a href="https://github.com/cea-hpc/modules/issues?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-1-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.WtsNkXQXOsnTs0mZKEnh&amp;utm_medium=newspage" target="_blank" rel="noopener">https://github.com/cea-hpc/modules/issues</a></p> Xavier Delaruelle[email protected]urn:noticeable:publications:IpI4QHpEB18taerH3OuA2019-11-18T15:53:00.001Z2019-11-18T16:00:35.799ZModules@4.4.0 releasedThis is my great pleasure to announce the availability of the version 4.4.0 of Modules. The main target of this new version is to propose enhanced ways to specify modulefiles over the module sub-commands and the modulefile-specific Tcl...<p>This is my great pleasure to announce the availability of the version 4.4.0 of Modules. The main target of this new version is to propose enhanced ways to specify modulefiles over the <code>module</code> sub-commands and the modulefile-specific Tcl commands. It is backward-compatible with previous version 4 releases and primarily adds features and fixes bugs. Major new features introduced in v4.4.0 since v4.3 are:</p> <ul> <li><a href="https://timeline.noticeable.io/cbzeG7wTvAIqj21zbUmx/posts/specify-modules-in-a-case-insensitive-manner?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">Specify modules in a case insensitive manner</a></li> <li><a href="https://timeline.noticeable.io/cbzeG7wTvAIqj21zbUmx/posts/extended-default?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">Extended default</a></li> <li><a href="https://timeline.noticeable.io/cbzeG7wTvAIqj21zbUmx/posts/advanced-module-version-specifiers?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">Advanced module version specifiers</a></li> </ul> <p>Details on these features and all the others included in this new release are provided in the MIGRATING document. The list of all changes made in this new version are described in the NEWS document.</p> <p><a href="http://modules.readthedocs.io/en/stable/MIGRATING.html?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">http://modules.readthedocs.io/en/stable/MIGRATING.html</a><br> <a href="http://modules.readthedocs.io/en/stable/NEWS.html?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">http://modules.readthedocs.io/en/stable/NEWS.html</a></p> <p>The tarball of this new version can be downloaded at:</p> <p><a href="http://downloads.sourceforge.net/modules/modules-4.4.0.tar.gz?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">http://downloads.sourceforge.net/modules/modules-4.4.0.tar.gz</a></p> <p>If you encounter any issue, please let us know by creating a ticket on the project bug tracker at:</p> <p><a href="https://github.com/cea-hpc/modules/issues?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.modules-4-4-0-released&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.IpI4QHpEB18taerH3OuA&amp;utm_medium=newspage" target="_blank" rel="noopener">https://github.com/cea-hpc/modules/issues</a></p> <p>Special thanks to Eric Deveaud for his code contribution on this release.</p> Xavier Delaruelle[email protected]urn:noticeable:publications:y3Q7RZYLzdyd0NWpk3NJ2019-11-14T07:10:00.001Z2019-11-14T07:15:45.179ZExtended defaultThe extended default mechanism has been introduced to help selecting a module when only the first numbers in its version are specified. Starting portion of the version, part separated from the rest of the version string by a . character...<p>The extended default mechanism has been introduced to help selecting a module when only the first numbers in its version are specified. Starting portion of the version, part separated from the rest of the version string by a <code>.</code> character, could be used to refer to a more precise version number.</p> <p>This mechanism is activated through the new configuration option <code>extended_default</code>. It enables to refer to a module named <code>foo/1.2.3</code> as <code>foo/1.2</code> or <code>foo/1</code>:</p> <pre><code>$ module config extended_default 1 $ module load -v foo/1 Loading foo/1.2.3 </code></pre> <p>When multiple versions match partial version specified and only one module should be selected, the default version (whether implicitly or explicitly defined) among matches is returned. The following example shows that <code>foo/1.1.1</code>, the <em>foo</em> module default version, is selected when it matches query. Elsewhere the highest version (also called the latest version or the implicit default) among matching modules is returned:</p> <pre><code>$ module av foo --------------- /path/to/modulefiles --------------- foo/1.1.1(default) foo/1.2.1 foo/1.10 foo/1.1.10 foo/1.2.3 $ module load -v foo/1.1 Loading foo/1.1.1 $ module purge $ module load -v foo/1.2 Loading foo/1.2.3 $ module purge $ module load -v foo/1 Loading foo/1.1.1 </code></pre> <p>In case <code>implicit_default</code> option is disabled and no explicit default is found among matches, an error is returned:</p> <pre><code>$ module config implicit_default 0 $ module load -v foo/1.2 ERROR: No default version defined for 'foo/1.2' </code></pre> <p>When it is enabled, extended default applies everywhere a module could be specified, which means it could be used with any module sub-command or any modulefile Tcl command receiving a module specification as argument. It may help for instance to declare dependencies between modules:</p> <pre><code>$ module show bar/3 ---------------------------------------------------------- /path/to/modulefiles/bar/3.4: prereq foo/1.2 ---------------------------------------------------------- $ module load --auto bar/3 Loading bar/3.4 Loading requirement: foo/1.2.3 </code></pre> <p>Extended default activation can be controlled at configure time with the <code>--enable-extended-default</code> option. This option could be superseded with the <code>MODULES_EXTENDED_DEFAULT</code> environment variable, which could be set through the <em>config</em> sub-command with the <code>extended_default</code> option.</p> <p>This new feature is available in git repository and will be included into the upcoming v4.4 release.</p> <p>Please note that the extended default feature has been introduced first in <a href="https://github.com/TACC/Lmod?utm_source=noticeable&amp;utm_campaign=cbzeg7wtvaiqj21zbumx.extended-default&amp;utm_content=publication+link&amp;utm_id=cbzeG7wTvAIqj21zbUmx.UPOFxJbXsysxyt1L7iHB.y3Q7RZYLzdyd0NWpk3NJ&amp;utm_medium=newspage" target="_blank" rel="noopener">Lmod</a>, The other environment module system, some months ago. Having this very nice interface improvement also supported here will help people to get a similar <em>module</em> experience whether the module implementation installed. This feature is also for Modules a stepstone toward the <em>advanced module version specifier</em> feature that I will detail soon.</p> Xavier Delaruelle[email protected]urn:noticeable:publications:UXlNyDMjqoTBMEAsi2nW2019-11-11T08:57:00.001Z2019-11-11T09:00:46ZSpecify modules in a case insensitive mannerThe ability to match module name in a case insensitive manner has been added. This feature can be enabled at different level with the following values set to the icase configuration option: never: a case sensitive match is applied in...<p>The ability to match module name in a case insensitive manner has been added. This feature can be enabled at different level with the following values set to the <code>icase</code> configuration option:</p> <ul> <li><code>never</code>: a case sensitive match is applied in any cases</li> <li><code>search</code>: a case insensitive match is applied to the <code>avail</code>, <code>whatis</code> and <code>paths</code> sub-commands</li> <li><code>always</code>: a case insensitive match is applied to search contexts and also to the other module sub-commands and modulefile Tcl commands for the module specification they receive as argument.</li> </ul> <p>It can help for instance to load a module without knowing the case used to name its relative modulefile:</p> <pre><code>$ module config icase always $ module load -v mysoftware Loading MySoftware/1.0 </code></pre> <p>Insensitive case match activation can be controlled at configure time with the <code>--with-icase</code> option, which could be passed any of the above activation levels. This option could be superseded with the <code>MODULES_ICASE</code> environment variable, which could be set through the <code>config</code> sub-command with the <code>icase</code> option. Command-line switch <code>--icase</code> supersedes in turns any other icase configurations. When this command-line switch is passed, <code>icase</code> mode equals <code>always</code>.</p> <p>This new feature is available in git repository and will be included into the upcoming v4.4 release.</p> Xavier Delaruelle[email protected]