Skip to content

Commit dd6474a

Browse files
committed
replace explicit fake module creation in make_devel_module with fake_module_environment context
1 parent f3ce86e commit dd6474a

File tree

1 file changed

+23
-28
lines changed

1 file changed

+23
-28
lines changed

easybuild/framework/easyblock.py

Lines changed: 23 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,9 +1259,6 @@ def make_devel_module(self, create_in_builddir=False):
12591259

12601260
self.log.info("Making devel module...")
12611261

1262-
# load fake module
1263-
fake_mod_data = self.load_fake_module(purge=True)
1264-
12651262
header = self.module_generator.MODULE_SHEBANG
12661263
if header:
12671264
header += '\n'
@@ -1305,9 +1302,6 @@ def make_devel_module(self, create_in_builddir=False):
13051302
txt = ''.join([header] + load_lines + env_lines)
13061303
write_file(filename, txt)
13071304

1308-
# cleanup: unload fake module, remove fake module dir
1309-
self.clean_up_fake_module(fake_mod_data)
1310-
13111305
def make_module_deppaths(self):
13121306
"""
13131307
Add specific 'module use' actions to module file, in order to find
@@ -2106,8 +2100,8 @@ def install_extensions_sequential(self, install=True):
21062100
rpath_filter_dirs=self.rpath_filter_dirs)
21072101

21082102
# actual installation of the extension
2109-
if install:
2110-
with self.fake_module_environment():
2103+
if install and not self.dry_run:
2104+
with self.fake_module_environment(with_build_deps=True):
21112105
try:
21122106
ext.install_extension_substep("pre_install_extension")
21132107
with self.module_generator.start_module_creation():
@@ -2116,12 +2110,11 @@ def install_extensions_sequential(self, install=True):
21162110
self.module_extra_extensions += txt
21172111
ext.install_extension_substep("post_install_extension")
21182112
finally:
2119-
if not self.dry_run:
2120-
ext_duration = datetime.now() - start_time
2121-
if ext_duration.total_seconds() >= 1:
2122-
print_msg("\t... (took %s)", time2str(ext_duration), log=self.log, silent=self.silent)
2123-
elif self.logdebug or build_option('trace'):
2124-
print_msg("\t... (took < 1 sec)", log=self.log, silent=self.silent)
2113+
ext_duration = datetime.now() - start_time
2114+
if ext_duration.total_seconds() >= 1:
2115+
print_msg("\t... (took %s)", time2str(ext_duration), log=self.log, silent=self.silent)
2116+
elif self.logdebug or build_option('trace'):
2117+
print_msg("\t... (took < 1 sec)", log=self.log, silent=self.silent)
21252118

21262119
self.update_exts_progress_bar(progress_info, progress_size=1)
21272120

@@ -2267,8 +2260,8 @@ def update_exts_progress_bar_helper(running_exts, progress_size):
22672260
# the (fake) module for the parent software gets loaded before installing extensions
22682261
ext.toolchain.prepare(onlymod=self.cfg['onlytcmod'], silent=True, loadmod=False,
22692262
rpath_filter_dirs=self.rpath_filter_dirs)
2270-
if install:
2271-
with self.fake_module_environment():
2263+
if install and not self.dry_run:
2264+
with self.fake_module_environment(with_build_deps=True):
22722265
ext.install_extension_substep("pre_install_extension")
22732266
ext.async_cmd_task = ext.install_extension_substep("install_extension_async", thread_pool)
22742267
running_exts.append(ext)
@@ -2297,16 +2290,17 @@ def start_dir(self):
22972290
return self.cfg['start_dir']
22982291

22992292
@contextmanager
2300-
def fake_module_environment(self):
2293+
def fake_module_environment(self, extra_modules=None, with_build_deps=False):
23012294
"""
23022295
Load/Unload fake module
23032296
"""
2304-
# load fake module
23052297
fake_mod_data = None
2306-
if not self.dry_run:
2298+
2299+
if with_build_deps:
23072300
# load modules for build dependencies as extra modules
2308-
build_dep_mods = [dep['short_mod_name'] for dep in self.cfg.dependencies(build_only=True)]
2309-
fake_mod_data = self.load_fake_module(purge=True, extra_modules=build_dep_mods)
2301+
extra_modules = [dep['short_mod_name'] for dep in self.cfg.dependencies(build_only=True)]
2302+
2303+
fake_mod_data = self.load_fake_module(purge=True, extra_modules=extra_modules)
23102304

23112305
yield
23122306

@@ -4080,13 +4074,14 @@ def make_module_step(self, fake=False):
40804074
self.module_generator.create_symlinks(mod_symlink_paths, fake=fake)
40814075

40824076
if ActiveMNS().mns.det_make_devel_module() and not fake and build_option('generate_devel_module'):
4083-
try:
4084-
self.make_devel_module()
4085-
except EasyBuildError as error:
4086-
if build_option('module_only') or self.cfg['module_only']:
4087-
self.log.info("Using --module-only so can recover from error: %s", error)
4088-
else:
4089-
raise error
4077+
with self.fake_module_environment():
4078+
try:
4079+
self.make_devel_module()
4080+
except EasyBuildError as error:
4081+
if build_option('module_only') or self.cfg['module_only']:
4082+
self.log.info("Using --module-only so can recover from error: %s", error)
4083+
else:
4084+
raise error
40904085
else:
40914086
self.log.info("Skipping devel module...")
40924087

0 commit comments

Comments
 (0)