-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NotImplementedError
on --fetch
with external_module
used in easyconfig
#4298
Comments
The modules tool is required when resolving (at least) external dependencies. Fixes easybuilders#4298
Question is then how this problem can be fixed in another way. Maybe |
I have no idea how this would be possible: How could you Maybe we can rather not call But it all boils down to: |
We can get the contents of a module file without running
See https://docs.easybuild.io/using-external-modules/#using_external_modules_metadata w.r.t. metadata for external modules. It definitely not required for just fetching sources.
Resolving dependencies doesn't require a modules tool, that's purely done based on |
But how do you find the module file? Especially finding the correct module file would required duplicating logic
Ah ok, so installed modules are ignored and sources for all ECs in the dependency chain are collected even if they are installed, aren't they? If so I'd say that |
… active E.g. for `--fetch` the modules tool is explicitly set to `None`/`NoModulesTool` to allow running on e.g. laptops to fetch sources. This however fails for external module dependencies in which it tries to resolve them using the modules tool which fails with `NotImplementedError`. Simply ignore the request in that case as-if the module metadata wasn't found. Fixes easybuilders#4298
NotImplementedError
on --fetch
with external_module
used in ECsNotImplementedError
on --fetch
with external_module
used in easyconfig
After a lengthy discussion in Slack and a longer search for the issue I think this is a bug:
What I found:
NoModulesTool
class is used which doesn't implementget_setenv_value_from_modulefile
easybuild-framework/easybuild/framework/easyconfig/easyconfig.py
Line 1562 in fca8b93
probe_*
function ateasybuild-framework/easybuild/framework/easyconfig/easyconfig.py
Line 1418 in fca8b93
easybuild-framework/easybuild/framework/easyconfig/easyconfig.py
Lines 1354 to 1355 in fca8b93
--fetch
is even documented as ignoring the modules tool ateasybuild-framework/easybuild/tools/options.py
Line 410 in fca8b93
easybuild-framework/easybuild/tools/options.py
Line 1190 in fca8b93
modules_tool==None
the classNoModulesTool
is used ateasybuild-framework/easybuild/tools/modules.py
Line 1680 in fca8b93
So in summary:
--fetch
must not ignore the modules tool as resolving EC dependencies may not be possible without it.The text was updated successfully, but these errors were encountered: