Skip to content

add support for loading first version listed in multi_deps by default in generated module file#2828

Merged
vanzod merged 11 commits intoeasybuilders:developfrom
boegel:multi_deps_load_default
Apr 4, 2019
Merged

add support for loading first version listed in multi_deps by default in generated module file#2828
vanzod merged 11 commits intoeasybuilders:developfrom
boegel:multi_deps_load_default

Conversation

@boegel
Copy link
Copy Markdown
Member

@boegel boegel commented Apr 3, 2019

No description provided.

@boegel boegel added this to the 3.9.0 milestone Apr 3, 2019
boegel added 2 commits April 3, 2019 20:06
…e test_toy_multi_deps check for it by making Lmod fail on same-name auto-swap)
Comment thread test/framework/toy_build.py Outdated
vanzod
vanzod previously approved these changes Apr 3, 2019
Copy link
Copy Markdown
Member

@vanzod vanzod left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment thread test/framework/toy_build.py Outdated
Copy link
Copy Markdown
Contributor

@bartoldeman bartoldeman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mboisson
Copy link
Copy Markdown
Contributor

mboisson commented Aug 7, 2019

I ran into an issue from this PR. I found multi_deps_load_default to disable that feature, but I think that feature still raises the question of why EasyBuild is loading a specific version, hence overriding whatever might have been set as default version in the module system ? Why does it choose to mark a version of python as "default" when the module system could say something entirely different ?

For the example of a python build, my expectation would be that
multi_deps_load_default = True

yields
depends_on("python")

not
depends_on("python/<whatever version is listed first>")

The latter is just asking for trouble and inconsistent results over time in my opinion, as you will end up having different modules loading different "default" versions of python.

@mboisson
Copy link
Copy Markdown
Contributor

mboisson commented Aug 7, 2019

If one wants to limit to the known versions, it could be
depends_on(between("python",<min version>,<max version>))

@boegel
Copy link
Copy Markdown
Member Author

boegel commented Aug 7, 2019

@mboisson Leaving it up to the actual default is equally problematic, since that tends to change over time (and it's outside of the control of EasyBuild)...

The naming may be a bit unfortunate, but the help message is pretty clear:

$ eb -a | grep multi_deps_load_default
multi_deps_load_default   Load module for first version listed in multi_deps by default [default: True]

@mboisson
Copy link
Copy Markdown
Contributor

mboisson commented Aug 7, 2019 via email

@mboisson
Copy link
Copy Markdown
Contributor

mboisson commented Aug 7, 2019 via email

@boegel
Copy link
Copy Markdown
Member Author

boegel commented Aug 8, 2019

There's no global flag to turn this off, but we can certainly consider adding that.

The fact that the mention in module help stays there even if this is disabled sounds like a bug...

Please open separate issues on both to follow up (comments in a merged PR make good follow-up difficult...).

@mboisson
Copy link
Copy Markdown
Contributor

mboisson commented Aug 8, 2019

Done, #2961
#2962

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants