From 2bc1c9c2689e6690e231537e75ae8ee4bcc68134 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 12 Mar 2026 12:35:49 +0100 Subject: [PATCH 1/2] Explain how to add locally supported toolchains in EasyBuild hooks error message --- eb_hooks.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 1b517fdf..8fa81648 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -311,9 +311,17 @@ def verify_toolchains_supported_by_eessi_version(easyconfigs): # It uses <= as there may be other dict entries in the values returned from get_toolchain_hierarchy() # but we only care that the toolchain dict (which has 'name' and 'version') appear. elif not any(toolchain.items() <= supported.items() for supported in supported_eessi_toolchains): + expected_site_top_level_toolchains = [toolchain] + site_top_level_toolchains raise EasyBuildError( - f"Toolchain {toolchain} (required by {ec['full_mod_name']}) is not supported in EESSI/{eessi_version}\n" - f"Supported toolchains are:\n" + "\n".join(sorted(" " + str(tc) for tc in supported_eessi_toolchains)) + f"Toolchain {toolchain} (required by {ec['full_mod_name']}) is not supported in" + f"EESSI/{eessi_version}\n" + f"Supported toolchains are:\n" + + "\n".join(sorted(" " + str(tc) for tc in supported_eessi_toolchains)) + + "\nIf you are using EESSI as a base for a local software stack, you can add locally supported " + " toolchains by setting the environment variable:\n" + f"\texport {site_top_level_toolchains_envvar}='{json.dumps(expected_site_top_level_toolchains)}'\n" + "(you only need to add the highest level toolchains you use, the toolchain hierarchy is automatically " + "supported)" ) From d051c02fccab934055df26e5a05a45ef20dba84f Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Thu, 12 Mar 2026 12:38:13 +0100 Subject: [PATCH 2/2] Missing space --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 8fa81648..d7d61402 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -313,7 +313,7 @@ def verify_toolchains_supported_by_eessi_version(easyconfigs): elif not any(toolchain.items() <= supported.items() for supported in supported_eessi_toolchains): expected_site_top_level_toolchains = [toolchain] + site_top_level_toolchains raise EasyBuildError( - f"Toolchain {toolchain} (required by {ec['full_mod_name']}) is not supported in" + f"Toolchain {toolchain} (required by {ec['full_mod_name']}) is not supported in " f"EESSI/{eessi_version}\n" f"Supported toolchains are:\n" + "\n".join(sorted(" " + str(tc) for tc in supported_eessi_toolchains))