Skip to content

Commit 3f66489

Browse files
committed
make including 'extensions' statement in generated Lua module files opt-in for now, since Lmod chokes on long list of extensions
1 parent 8dee633 commit 3f66489

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

easybuild/tools/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ def mk_full_default_path(name, prefix=DEFAULT_PREFIX):
228228
'lib64_fallback_sanity_check',
229229
'logtostdout',
230230
'minimal_toolchains',
231+
'module_extensions',
231232
'module_only',
232233
'package',
233234
'read_only_installdir',

easybuild/tools/module_generator.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,13 +1159,14 @@ def get_description(self, conflict=True):
11591159
for line in self._generate_whatis_lines():
11601160
whatis_lines.append("whatis(%s%s%s)" % (self.START_STR, self.check_str(line), self.END_STR))
11611161

1162-
extensions_list = self._generate_extensions_list()
1163-
1164-
if extensions_list:
1165-
extensions_stmt = 'extensions(%s)' % ', '.join(['"%s"' % x for x in extensions_list])
1166-
# put this behind a Lmod version check as 'extensions' is only supported since Lmod 8.2.0,
1167-
# see https://lmod.readthedocs.io/en/latest/330_extensions.html#module-extensions
1168-
lines.extend(['', self.conditional_statement(self.check_version("8", "2"), extensions_stmt)])
1162+
if build_option('module_extensions'):
1163+
extensions_list = self._generate_extensions_list()
1164+
1165+
if extensions_list:
1166+
extensions_stmt = 'extensions(%s)' % ', '.join(['"%s"' % x for x in extensions_list])
1167+
# put this behind a Lmod version check as 'extensions' is only supported since Lmod 8.2.0,
1168+
# see https://lmod.readthedocs.io/en/latest/330_extensions.html#module-extensions
1169+
lines.extend(['', self.conditional_statement(self.check_version("8", "2"), extensions_stmt)])
11691170

11701171
txt += '\n'.join([''] + lines + ['']) % {
11711172
'name': self.app.name,

easybuild/tools/options.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,8 @@ def config_options(self):
475475
'module-depends-on': ("Use depends_on (Lmod 7.6.1+) for dependencies in all generated modules "
476476
"(implies recursive unloading of modules).",
477477
None, 'store_true', False),
478+
'module-extensions': ("Include 'extensions' statement in generated module file (Lua syntax only)",
479+
None, 'store_true', False),
478480
'module-naming-scheme': ("Module naming scheme to use", None, 'store', DEFAULT_MNS),
479481
'module-syntax': ("Syntax to be used for module files", 'choice', 'store', DEFAULT_MODULE_SYNTAX,
480482
sorted(avail_module_generators().keys())),

test/framework/module_generator.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,9 @@ def test_module_extensions(self):
701701
if self.MODULE_GENERATOR_CLASS == ModuleGeneratorTcl:
702702
return
703703

704+
# currently requires opt-in via --module-extensions
705+
init_config(build_options={'module_extensions': True})
706+
704707
test_dir = os.path.abspath(os.path.dirname(__file__))
705708
os.environ['MODULEPATH'] = os.path.join(test_dir, 'modules')
706709
test_ec = os.path.join(test_dir, 'easyconfigs', 'test_ecs', 't', 'toy', 'toy-0.0-gompi-2018a-test.eb')

0 commit comments

Comments
 (0)