From 95e8c480b23f8e653957d0d8dc646fb877ebb1b7 Mon Sep 17 00:00:00 2001 From: Maxime Boissonneault Date: Tue, 21 Nov 2023 19:52:49 +0000 Subject: [PATCH 1/2] When combining multi_deps with iterative builds, it generates a list with duplicates. This commit fixes that --- easybuild/tools/module_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/tools/module_generator.py b/easybuild/tools/module_generator.py index aaf97d3194..0da350c1bd 100644 --- a/easybuild/tools/module_generator.py +++ b/easybuild/tools/module_generator.py @@ -666,7 +666,7 @@ def _generate_help_text(self): if multi_deps: compatible_modules_txt = '\n'.join([ "This module is compatible with the following modules, one of each line is required:", - ] + ['* %s' % d for d in multi_deps]) + ] + ['* %s' % d for d in set(multi_deps)]) lines.extend(self._generate_section("Compatible modules", compatible_modules_txt)) # Extensions (if any) From 3714b8cf30f2cb86af9e0d1b292cac97997a3769 Mon Sep 17 00:00:00 2001 From: Maxime Boissonneault Date: Wed, 22 Nov 2023 15:15:17 +0000 Subject: [PATCH 2/2] Use nub instead of set to preserve order --- easybuild/tools/module_generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/tools/module_generator.py b/easybuild/tools/module_generator.py index 0da350c1bd..c65879009e 100644 --- a/easybuild/tools/module_generator.py +++ b/easybuild/tools/module_generator.py @@ -49,7 +49,7 @@ from easybuild.tools.filetools import convert_name, mkdir, read_file, remove_file, resolve_path, symlink, write_file from easybuild.tools.modules import ROOT_ENV_VAR_NAME_PREFIX, EnvironmentModulesC, Lmod, modules_tool from easybuild.tools.py2vs3 import string_type -from easybuild.tools.utilities import get_subclasses, quote_str +from easybuild.tools.utilities import get_subclasses, nub, quote_str _log = fancylogger.getLogger('module_generator', fname=False) @@ -666,7 +666,7 @@ def _generate_help_text(self): if multi_deps: compatible_modules_txt = '\n'.join([ "This module is compatible with the following modules, one of each line is required:", - ] + ['* %s' % d for d in set(multi_deps)]) + ] + ['* %s' % d for d in nub(multi_deps)]) lines.extend(self._generate_section("Compatible modules", compatible_modules_txt)) # Extensions (if any)