-
Notifications
You must be signed in to change notification settings - Fork 219
Make generic EasyBlock usable to install software #4531
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
Open
lexming
wants to merge
30
commits into
easybuilders:develop
Choose a base branch
from
lexming:pre-step-cmds
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 13 commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
5bf48e4
standarize description of pre-step-opts and step-opts easyconfig para…
lexming 9781455
add test and postinstall easyconfig parameters to group format rules
lexming 6be1579
add new easyconfig parameters to prepend commands to main step commands
lexming 95fed87
add pre-step-cmds easyconfig parameters to group format rules
lexming b51c586
update test_dump_order with more parameters for each main step
lexming 6233cb4
split easyblock.run_post_intall_commands into a new generic private m…
lexming 32ca373
add new private method to run step action by executing all pre-comman…
lexming 5f370cd
simplify structure of easyconfig.get_easyblock_class method
lexming 7eafeb7
use generic EasyBlock as fallback easyblock for easyconfigs without a…
lexming 37d0edc
add easyconfigs parameters to define the main commands used in each b…
lexming 39be30a
implement default configure, build and install steps in base EasyBlock
lexming ac2fa7a
refactor test step in base EasyBlock to leverage run_step_main_action…
lexming 9655dfb
fix code style errors
lexming 74bf3a9
Merge branch '5.0.x' into pre-step-cmds
lexming 3834170
use new parameter name for pre_step commands options
lexming b6d9b3b
fix test_iter_builddeps_templates in test.framework.easyconfig with u…
lexming cea4bcd
fix test_easyblock in test.framework.easyblock with usable EasyBlock …
lexming 2b39e93
fix codestyle in easybuild.framework.easyblock
lexming 0b73ef5
fix test_gen_easyblocks_overview in test.framework.docs with usable E…
lexming 6add7bc
fix test_xxx_include_generic_easyblocks in test.framework.options wit…
lexming 2564be9
remove unused error_on_failed_import from get_easyblock_class method
lexming 69aa521
fix test_get_easyblock_class in test.framework.easyconfig with usable…
lexming 164e3c6
fix test_skip_test_step in test.framework.options with usable EasyBlo…
lexming 041a397
update tests replacing deprecated runtest with test_cmd
lexming a1a58c1
update reference error messages in test_xxx_include_generic_easyblocks
lexming 31f9a93
rename method EasyBlock._run_command_stack to EasyBlock._run_cmds
lexming b879130
update call to renamed EasyBlock._run_cmds
lexming 22d9648
prefer test_cmd over runtest whenever both are defined
lexming e05a985
replace EasyBlock.run_step_main_action with EasyBlock.run_core_step_c…
lexming eacd6e3
disable error_on_failed_import argument in Easyconfig.get_easyblock_c…
lexming File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -88,9 +88,11 @@ | |
| "to be linked in any installed binary/library", BUILD], | ||
| 'bitbucket_account': ['%(namelower)s', "Bitbucket account name to be used to resolve template values in source" | ||
| " URLs", BUILD], | ||
| 'buildopts': ['', 'Extra options passed to make step (default already has -j X)', BUILD], | ||
| 'buildopts': ['', 'Extra options appended to build command', BUILD], | ||
| 'build_cmd': [None, "Main shell command used in the build step", BUILD], | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should also mention something like " |
||
| 'checksums': [[], "Checksums for sources and patches", BUILD], | ||
| 'configopts': ['', 'Extra options passed to configure (default already has --prefix)', BUILD], | ||
| 'configopts': ['', 'Extra options appended to configure command', BUILD], | ||
| 'configure_cmd': [None, "Main shell command used in the configure step", BUILD], | ||
| 'cuda_compute_capabilities': [[], "List of CUDA compute capabilities to build with (if supported)", BUILD], | ||
| 'download_instructions': ['', "Specify steps to acquire necessary file, if obtaining it is difficult", BUILD], | ||
| 'easyblock': [None, "EasyBlock to use for building; if set to None, an easyblock is selected " | ||
|
|
@@ -107,18 +109,23 @@ | |
| 'github_account': ['%(namelower)s', "GitHub account name to be used to resolve template values in source URLs", | ||
| BUILD], | ||
| 'hidden': [False, "Install module file as 'hidden' by prefixing its version with '.'", BUILD], | ||
| 'installopts': ['', 'Extra options for installation', BUILD], | ||
| 'installopts': ['', 'Extra options appended to installation command', BUILD], | ||
| 'install_cmd': [None, "Main shell command used in the install step", BUILD], | ||
| 'maxparallel': [None, 'Max degree of parallelism', BUILD], | ||
| 'parallel': [None, ('Degree of parallelism for e.g. make (default: based on the number of ' | ||
| 'cores, active cpuset and restrictions in ulimit)'), BUILD], | ||
| 'patches': [[], "List of patches to apply", BUILD], | ||
| 'prebuildopts': ['', 'Extra options pre-passed to build command.', BUILD], | ||
| 'preconfigopts': ['', 'Extra options pre-passed to configure.', BUILD], | ||
| 'preinstallopts': ['', 'Extra prefix options for installation.', BUILD], | ||
| 'pretestopts': ['', 'Extra prefix options for test.', BUILD], | ||
| 'postinstallcmds': [[], 'Commands to run after the install step.', BUILD], | ||
| 'postinstallpatches': [[], 'Patch files to apply after running the install step.', BUILD], | ||
| 'postinstallmsgs': [[], 'Messages to print after running the install step.', BUILD], | ||
| 'prebuildcmds': ['', 'Extra commands executed before main build command', BUILD], | ||
| 'prebuildopts': ['', 'Extra options prepended to build command', BUILD], | ||
| 'preconfigcmds': ['', 'Extra commands executed before main configure command', BUILD], | ||
| 'preconfigopts': ['', 'Extra options prepended to configure command', BUILD], | ||
| 'preinstallcmds': ['', 'Extra commands executed before main install command', BUILD], | ||
| 'preinstallopts': ['', 'Extra options prepended to installation command', BUILD], | ||
| 'pretestcmds': ['', 'Extra commands executed before main test command', BUILD], | ||
| 'pretestopts': ['', 'Extra options prepended to test command', BUILD], | ||
| 'postinstallcmds': [[], 'Commands to run after the install step', BUILD], | ||
| 'postinstallpatches': [[], 'Patch files to apply after running the install step', BUILD], | ||
| 'postinstallmsgs': [[], 'Messages to print after running the install step', BUILD], | ||
| 'required_linked_shared_libs': [[], "List of shared libraries (names, file names, or paths) which must be " | ||
| "linked in all installed binaries/libraries", BUILD], | ||
| 'runtest': [None, ('Indicates if a test should be run after make; should specify argument ' | ||
|
|
@@ -134,8 +141,9 @@ | |
| 'skipsteps': [[], "Skip these steps", BUILD], | ||
| 'source_urls': [[], "List of URLs for source files", BUILD], | ||
| 'sources': [[], "List of source files", BUILD], | ||
| 'stop': [None, 'Keyword to halt the build process after a certain step.', BUILD], | ||
| 'testopts': ['', 'Extra options for test.', BUILD], | ||
| 'stop': [None, 'Keyword to halt the build process after a certain step', BUILD], | ||
| 'testopts': ['', 'Extra options appended to test command', BUILD], | ||
| 'test_cmd': [None, "Main shell command used in the test step", BUILD], | ||
| 'tests': [[], ("List of test-scripts to run after install. A test script should return a " | ||
| "non-zero exit status to fail"), BUILD], | ||
| 'unpack_options': ['', "Extra options for unpacking source", BUILD], | ||
|
|
@@ -148,9 +156,9 @@ | |
| 'buildininstalldir': [False, ('Boolean to build (True) or not build (False) in the installation directory'), | ||
| FILEMANAGEMENT], | ||
| 'cleanupoldbuild': [True, ('Boolean to remove (True) or backup (False) the previous build ' | ||
| 'directory with identical name or not.'), FILEMANAGEMENT], | ||
| 'directory with identical name or not'), FILEMANAGEMENT], | ||
| 'cleanupoldinstall': [True, ('Boolean to remove (True) or backup (False) the previous install ' | ||
| 'directory with identical name or not.'), FILEMANAGEMENT], | ||
| 'directory with identical name or not'), FILEMANAGEMENT], | ||
| 'dontcreateinstalldir': [False, ('Boolean to create (False) or not create (True) the install directory'), | ||
| FILEMANAGEMENT], | ||
| 'keeppreviousinstall': [False, ('Boolean to keep the previous installation with identical ' | ||
|
|
@@ -159,7 +167,7 @@ | |
| 'or if the content of the files pointed to should be copied'), | ||
| FILEMANAGEMENT], | ||
| 'start_dir': [None, ('Path to start the make in. If the path is absolute, use that path. ' | ||
| 'If not, this is added to the guessed path.'), FILEMANAGEMENT], | ||
| 'If not, this is added to the guessed path'), FILEMANAGEMENT], | ||
|
|
||
| # DEPENDENCIES easyconfig parameters | ||
| 'allow_system_deps': [[], "Allow listed system dependencies (format: (<name>, <version>))", DEPENDENCIES], | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lexming This implies updating all easyblocks/easyconfigs to use
test_cmdinstead ofruntestbefore we release EasyBuild 5.0, so please open an issue on that in both repos and tag it for EasyBuild 5.0There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, what if both
test_cmdandruntestare set?Either we error out, or we let one overrule the other (with logging).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good point, I suggest to not error out and just ignore
runtestif both are defined (with a warning ofc). Fixed in 22d9648