Skip to content
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

take into account custom configuration options specified in easystack file + drop support for easystack files using 'software' top-level key #4057

Merged
merged 57 commits into from
Nov 23, 2022

Conversation

casparvl
Copy link
Contributor

@casparvl casparvl commented Aug 10, 2022

Replaces #4052

After discussion with @boegel we've decided that the the approach in #4052 is not maintainable. By pushing the loop over the entries in an EasyStack file to main.py, and by basically re-executing part of main.py for each item in the EasyStack file, we can properly reinitialize the configuration options for each item (if there are EasyConfig-specific options defined). This has the advantage that we can reuse the existing machinery of things like set_up_configuration.

It also means that EasyBuild builds a dependency tree per item in the EasyStack file. On the one hand, that is desirable since two items might have different --from-pr arguments, and thus the same dependency A.eb might in theory resolve to two different PRs depending on the options passed for that item in the EasyStack file. The downside is that since we don't have a single dependency graph, we cannot e.g. submit a single set of jobs with --job: we'll need to make sure EasyBuild becomes aware of the order in the EasyStack file, and make sure that jobs for later items wait for all jobs of earlier items. That's something we'll implement later though...

Note that this is really a work in progress, a lot more functions need to be put in place before this properly works...

…file, each time reconfiguring EasyBuild with EasyConfig-specific options that might be listed in the EasyStack file
…fic arguments from the EasyStack file. This commit should contain a functional implementation of the option support for EasyStack files. Now, we only need to clean it up...
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
…at way we can limit to only one 'if options.easystack'
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
casparvl and others added 3 commits October 12, 2022 14:46
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/tools/options.py Outdated Show resolved Hide resolved
easybuild/tools/options.py Outdated Show resolved Hide resolved
easybuild/tools/options.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/tools/options.py Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
easybuild/main.py Outdated Show resolved Hide resolved
@boegel boegel added the change label Oct 21, 2022
run_hook(START, hooks)

if modtool is None:
# TODO: insert fast loop that validates if all command line options are valid. If there are errors in options,
Copy link
Member

Choose a reason for hiding this comment

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

I opened an issue to follow up on this aspect: #4103

@casparvl
Copy link
Contributor Author

casparvl commented Oct 21, 2022

Todo, update documentation: https://github.com/easybuilders/easybuild/blob/develop/docs/Easystack-files.rst
After that is done, we can merge this PR

edit (by @boegel): see easybuilders/easybuild#832

casparvl added a commit to casparvl/easybuild that referenced this pull request Oct 21, 2022
… + remove duplicate blank line in easystack test suite
@boegel boegel added the easystack Issues and PRs related to easystack files label Nov 2, 2022
@boegel
Copy link
Member

boegel commented Nov 23, 2022

Merging #3749 caused a merge conflict here, which I've fixed just now.

I'll propose some tweaks to the docs update in easybuilders/easybuild#832, so we can get this merged...

…omly changing order of keys in older Python versions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
change easystack Issues and PRs related to easystack files enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants