Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
73d4252
Add gomkl toolchain, combining Intel Compilers + MKL + Open MPI.
bartoldeman Feb 21, 2017
3078f9d
Add support for gmkl toolchain (GCC + MKL, no MPI)
bartoldeman Feb 21, 2017
0a4b789
modified filetools to gunzip patches if they are gziped
mboisson Feb 22, 2017
39ad948
gzip the patch back if it was gunzipped for patching
mboisson Feb 22, 2017
7af7f57
keep the original gz file
mboisson Feb 22, 2017
0953bc6
fixed typo in --keep
mboisson Feb 22, 2017
33a5648
Make sure self.FFT_LIB does not contain interface libs if they are no…
bartoldeman Feb 22, 2017
67090fe
modified the extraction to use the built-in extract_file
mboisson Feb 22, 2017
faab9e4
Set permissions of tempdir to 0755.
bartoldeman Feb 23, 2017
7aea180
Change permissions of two temp files to 0644.
bartoldeman Feb 23, 2017
986c30d
use modaltsoftname instead of name for the install path
mboisson Feb 23, 2017
b4b03bc
simplified the previous commit
mboisson Feb 23, 2017
196bbe3
Merge branch 'computecanada-master' of github.com:ComputeCanada/easyb…
mboisson Feb 23, 2017
ecb4c5c
HACK: disable sanity check for obtained module name if modaltsoftname…
bartoldeman Mar 1, 2017
b38e93a
Use Core directory for gcc-system toolchain.
bartoldeman Mar 1, 2017
b370e43
Set COMPILER_FAMILY to GCCcore to avoid using the optarch from GCC.
bartoldeman Mar 2, 2017
205491a
Replace sanity check hack (ecb4c5cadde) by a proper fix.
bartoldeman Mar 3, 2017
b3e64bd
Make sure the gcc toolchain uses GCC as compiler family, not GCCcore.
bartoldeman Mar 4, 2017
b9ec927
Use "Core" for GCCcore-generated modules.
bartoldeman Mar 6, 2017
d53077e
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Mar 7, 2017
0e760d6
Sync hierarchical_mns.py with upstream.
bartoldeman Mar 7, 2017
ca288e3
Re-add excluding dependencies of excluded deps.
bartoldeman Mar 7, 2017
0d799fe
merge develop_develop_gunzip_patches
mboisson Mar 15, 2017
3b21d0c
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Mar 21, 2017
0d989a8
Rever 9d6a73c28770. The framework does the correct thing now by itself.
bartoldeman Mar 22, 2017
fc11fd8
added iimklc toolchain
mboisson Mar 29, 2017
d5bd3ea
fixing iimklc
mboisson Mar 29, 2017
ff0d9bf
Added toolchain options to specify extra compiler arguments
mboisson Apr 18, 2017
38b5194
Merge branch 'extra_compiler_flags' into computecanada-master
mboisson Apr 18, 2017
73bd76f
cosmetic changes
mboisson Apr 19, 2017
fed83f5
Merge branch 'extra_compiler_flags' into computecanada-master
mboisson Apr 19, 2017
1ee75d9
Add PGI+MKL toolchain.
bartoldeman Apr 25, 2017
37a4920
Merge branch 'master' of github.com:hpcugent/easybuild-framework into…
bartoldeman May 6, 2017
f06e1f8
Create get_subtoolchain_in_deps function to find a subtoolchain in deps.
bartoldeman May 25, 2017
9c79356
Allow multiple subtoolchains. Secondary subtoolchains are not recursed.
bartoldeman May 25, 2017
db6072c
Define multiple subtoolchains (iompi, iimkl) for iomkl.
bartoldeman May 25, 2017
9aeb017
Define multiple subtoolchains (gompi, gmkl) for gomkl.
bartoldeman May 25, 2017
94d365e
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman May 25, 2017
dfa643d
added gmklc toolchain
mboisson May 30, 2017
89cfa4a
fixed non-UTF character
mboisson May 30, 2017
56cd5f0
Merge branch 'computecanada-master' of github.com:ComputeCanada/easyb…
bartoldeman May 30, 2017
4b5816c
Fix bug introduced in f06e1f8e5bf7
bartoldeman May 30, 2017
0ce4699
changed description of gmklc
mboisson May 30, 2017
e68ae7a
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jun 30, 2017
e50b70a
Merge branch 'computecanada-master' of github.com:ComputeCanada/easyb…
bartoldeman Jun 30, 2017
2ae5e35
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Aug 9, 2017
3115e1e
Compute Canada specific: sanitize EBPYTHONPATH instead of PYTHONPATH.
bartoldeman Aug 24, 2017
0e3611e
Revert "Compute Canada specific: sanitize EBPYTHONPATH instead of PYT…
bartoldeman Aug 24, 2017
f4ed6f0
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Sep 13, 2017
fe486ef
Disable conditional group membership check in lua generator for CC
bartoldeman Sep 26, 2017
5908cec
created a gomklc toolchain
mboisson Oct 4, 2017
56679e9
forgot to import gompic
mboisson Oct 4, 2017
1cfcd9f
Replace 2013_sp1 with 2014 for Intel compiler in toolchain version.
bartoldeman Oct 18, 2017
38a470f
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Oct 19, 2017
23ea111
Allow the fftw-mpi module to provided the FFTW toolchain component.
bartoldeman Nov 16, 2017
9c88db6
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jan 3, 2018
c1513f4
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Feb 1, 2018
6224e7d
Support Lmod 7.6+ depends_on via recursive-module-unload-depends-on.
bartoldeman Jan 31, 2018
71759be
Bump Lmod version used for Travis testing from 7.4 to 7.6.
bartoldeman Feb 1, 2018
89fde2e
Use depends_on (syntax: "depends-on modname") TCL modulefiles too.
bartoldeman Feb 1, 2018
ae5111e
Centralize Lmod version checks to modules_tool().has_depends_on/bump.
bartoldeman Feb 1, 2018
10af820
Revert "Set COMPILER_FAMILY to GCCcore to avoid using the optarch fro…
bartoldeman Feb 8, 2018
cf55fc5
Merge remote-tracking branch 'origin/optarch_module_name' into comput…
bartoldeman Feb 8, 2018
e8c21c4
Merge remote-tracking branch 'origin/gcc_tree_vectorize' into compute…
bartoldeman Feb 8, 2018
b302d58
Merge remote-tracking branch 'origin/module_depends_on' into computec…
bartoldeman Feb 8, 2018
a63b1f3
Fix regular expression for module dependencies to match depends_on.
bartoldeman Feb 28, 2018
14580cf
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Mar 9, 2018
0f6ef25
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Apr 26, 2018
7cc8e8f
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jun 11, 2018
1ed7dac
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jul 12, 2018
f8222f5
Add goolfc-2.6.10 toolchain for test_get_toolchain_hierarchy robot test.
bartoldeman Apr 4, 2018
3362750
Fix additional tests, to adjust for added test easyconfigs.
bartoldeman Apr 4, 2018
19c71c0
Add a space (houndci-bot)
bartoldeman Apr 4, 2018
90f9e09
Fix test.framework.filetools test_search_file with new hwloc eb.
bartoldeman Apr 5, 2018
71d25a5
Use GCC instead of gompi for OpenBLAS in goolf-1.4.10 test toolchain.
bartoldeman Apr 4, 2018
5adfc8d
Adjust options test to OpenBLAS gompi to GCC change.
bartoldeman Apr 5, 2018
30a823e
Adjust OpenBLAS in v2.0 and yeb test goolf toolchain easyconfigs.
bartoldeman Apr 5, 2018
76694ec
Fix test.framework.easyconfigparser test_v20_deps for OpenBLAS/gcc
bartoldeman Apr 5, 2018
75e0b0a
Remove all mention of mpi in FFTW-serial test (@akesandgren)
bartoldeman Aug 28, 2018
8930f5b
Revert "Allow multiple subtoolchains. Secondary subtoolchains are not…
bartoldeman Aug 29, 2018
06ef4f2
Revert "Create get_subtoolchain_in_deps function to find a subtoolcha…
bartoldeman Aug 29, 2018
c9cc447
Allow multiple subtoolchains and optional toolchains.
bartoldeman Apr 4, 2018
0ca68c7
Add blank line to make houndci-bot happy.
bartoldeman Apr 4, 2018
7ac0961
Merge branch 'sources_from_git' into computecanada-master
mboisson Aug 30, 2018
b92b64b
Merge branch 'sources_from_git' into computecanada-master
mboisson Aug 31, 2018
88664b5
fixed run_cmd => run.run_cmd when within filetools
mboisson Aug 31, 2018
ebf5404
fixed missing return
mboisson Aug 31, 2018
d92726c
Merge branch 'sources_from_git' into computecanada-master
mboisson Aug 31, 2018
b2e9df0
Merge branch 'sources_from_git' into computecanada-master
mboisson Sep 5, 2018
430f399
Switched back to rm -rf instead of remove_file. Changed parametrize to
mboisson Sep 5, 2018
4b15d72
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Sep 25, 2018
d87eb09
Merge branch 'computecanada-master' of github.com:ComputeCanada/easyb…
bartoldeman Sep 25, 2018
c7b39e4
Merge branch 'fix_cuda_capability_detection' into computecanada-master
mboisson Oct 16, 2018
6212865
Merge branch 'update_without_dup' into computecanada-master
mboisson Nov 14, 2018
37dd3b9
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Nov 15, 2018
365b7b9
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Dec 20, 2018
9644f3a
Add gcccoremkl toolchain, adapted Julich's
bartoldeman Jan 29, 2019
2f58107
Allow Intel FFT to work with gcccore.
bartoldeman Jan 29, 2019
12dd010
Move det_toolchain_cuda to SoftCCHierarchicalMNS, to localize.
bartoldeman Apr 1, 2019
8cffa75
Sync comment with upstream.
bartoldeman Apr 1, 2019
2e564a2
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Apr 2, 2019
f90d440
Revert "eliminate all dependencies that are hidden toolchain modules …
bartoldeman Apr 3, 2019
cce5434
Need to import det_toolchain_element_details for now-local cuda func.
bartoldeman Apr 3, 2019
32b3aca
Sync toolchains with upstream.
bartoldeman Apr 4, 2019
443333a
Move SoftCCHierarchicalMNS.py to configuration.
bartoldeman Apr 4, 2019
c5f26b5
Move gcccoremkl toolchain to configuration.
bartoldeman Apr 4, 2019
e09d883
added toolchain pgicuda.py
mboisson May 21, 2019
e4cbb78
Revert "added toolchain pgicuda.py"
bartoldeman May 22, 2019
bd39f1d
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman May 23, 2019
7cac6e5
Revert lists for LDFLAGS and CPPFLAGS.
bartoldeman Jun 14, 2019
5167691
MKL: add -L$EBROOTIMKL/lib/intel64 to LDFLAGS
bartoldeman Jun 14, 2019
1ad8735
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Aug 6, 2019
ac4ebe5
Merge branch 'filter_deps_fix' into computecanada-master
mboisson Aug 26, 2019
e3ee48e
Use CUDAcore if available to figure out LDFLAGS
bartoldeman Oct 29, 2019
add8eb7
Use get_software_root instead of self.get_software_root for CUDAcore.
bartoldeman Nov 14, 2019
f5ec351
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Nov 18, 2019
66252f7
Use 0o for octal numbers (compulsory in Python 3)
bartoldeman Dec 3, 2019
4ec5379
0755 -> 0o755 for Python 3
bartoldeman Dec 3, 2019
10e16c5
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jan 14, 2020
dbb4baf
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jan 23, 2020
816931a
Disable conditional group membership check in lua generator for CC
bartoldeman Jan 23, 2020
f312b75
Disable unconditional XDG_DATA_DIRS for now.
bartoldeman Feb 4, 2020
bf6d1ce
Merge pull request #19 from ComputeCanada/build_lock
bartoldeman Mar 13, 2020
ece6054
added function find_glob_pattern to filetools.py
mboisson Apr 22, 2020
3db112a
appeasing hound
mboisson Apr 22, 2020
9cdb2a4
removed extra self/
mboisson Apr 22, 2020
b691a46
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Apr 23, 2020
d3ccf78
added code to support multi_deps for extensions only
mboisson Apr 28, 2020
5e92686
reworded the description
mboisson Apr 28, 2020
40cd21f
do not recreate the build directory for each iteration if multi_deps_…
mboisson Apr 28, 2020
a2af55d
Merge branch 'computecanada-master' of github.com:ComputeCanada/easyb…
mboisson Apr 28, 2020
04b0635
Merge branch 'fix_tweak' into computecanada-master
mboisson May 6, 2020
6fd0c9b
Merge branch 'fix_tweak_versionsuffixes' into computecanada-master
mboisson May 7, 2020
9e28485
merged upstream commit 2d3155bd0... make pypi_source_urls more robus…
boegel May 7, 2020
70f44ee
Revert " merged upstream commit 2d3155bd0... make pypi_source_urls mo…
mboisson May 13, 2020
bba5be8
merged upstream commit 2d3155bd0... make pypi_source_urls more robust…
boegel May 7, 2020
eccde42
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jun 8, 2020
bafe75b
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Jul 10, 2020
bf64d5b
Skip filename verification for now in robot.
bartoldeman Jul 17, 2020
97b7a7b
Revert "Skip filename verification for now in robot."
bartoldeman Jul 17, 2020
64415f5
Skip filename verification for now in robot.
bartoldeman Jul 17, 2020
c09d6ca
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Oct 5, 2020
05c1b8f
Add nvhpc toolchain from upstream.
bartoldeman Oct 29, 2020
da6f1d3
Merge remote-tracking branch 'github_hpcugent/master' into computecan…
bartoldeman Nov 30, 2020
5e44ff7
Fix issue with CUDA_CFLAGS, not getting CUDAcore software root
bartoldeman Jan 22, 2021
d4a4b00
Merge remote-tracking branch 'github_hpcugent/main' into computecanad…
bartoldeman Mar 2, 2021
3ff498d
Remove now obsolete extra_cflags/extra_fflags in lists.
bartoldeman Mar 2, 2021
15719a0
Merge branch 'configurable_env_for_shebang' into computecanada-main
mboisson Mar 16, 2021
6291785
fix BLAS_LIB_MT for OpenBLAS
Feb 20, 2021
a8e3482
fix test
Feb 20, 2021
81f69ef
Specifying False for a version removes the dep
edmondac Nov 27, 2020
5dc3ab3
handle different types of dependecy (tuple, dict, ...)
edmondac Nov 27, 2020
7b52c02
tame hound
edmondac Nov 27, 2020
d6218e6
Update easybuild/framework/easyconfig/easyconfig.py
edmondac Jan 4, 2021
2abbbb5
bump version to 4.3.4dev
boegel Feb 23, 2021
80d3361
fix typo in release notes
boegel Feb 23, 2021
af8a804
add pick_default_branch function to clean up duplicate code in tools/…
boegel Feb 24, 2021
63c2aee
use '--opt=val' for passing settings from config file to option parse…
boegel Feb 25, 2021
22a6c73
avoid raised exception when getting output from interactive command i…
boegel Feb 25, 2021
86711ec
Add "Citing" section to module files
Feb 25, 2021
561594a
Clean up formatting
Feb 25, 2021
b6c8613
Update module fulltxt test
Feb 25, 2021
9987048
Fix too much underlining
Feb 25, 2021
0405091
add test to check behaviour for dependencies with False version
boegel Mar 1, 2021
d33cc4a
add support for using fallback 'arch=*' key in dependency version spe…
boegel Mar 1, 2021
03118c3
extend test for dependencies with False version to cover use of 'arch=*'
boegel Mar 1, 2021
ff00b75
improve error message for pick_dep_version + check error handling in …
boegel Mar 1, 2021
c1442c1
actually control arch we check with in test_false_dep_version
boegel Mar 1, 2021
d01785e
ensure sorted keys in error message produced by pick_dep_version
boegel Mar 3, 2021
6478e24
fix order of builddependencies vs dependencies in test easyconfig in …
boegel Mar 3, 2021
07caf04
also check for pending change requests in check_pr_eligible_to_merge
migueldiascosta Mar 9, 2021
1bd027f
also check mergeable_state in check_pr_eligible_to_merge
migueldiascosta Mar 9, 2021
f37affb
ignore undismissed 'changes requested' review if there is an 'approve…
migueldiascosta Mar 11, 2021
7b8df20
filter duplicates in changes_requested_by
migueldiascosta Mar 12, 2021
f7874ce
add tests for 'eb' command
boegel Mar 9, 2021
863c252
enhance 'eb' command to ensure that easybuild.main can be imported be…
boegel Mar 14, 2021
f93bca0
Sort output of eb --search in natural order (respecting numbers)
Flamefire Mar 12, 2021
4c18f4a
Add utilities_test.py
Flamefire Mar 12, 2021
62ee48e
Add test for natural_keys
Flamefire Mar 12, 2021
2c1e4d9
Don't load index when it is ignored
Flamefire Mar 12, 2021
ee34d2d
Avoid additional work handling the common prefix of paths
Flamefire Mar 12, 2021
07f9ffe
include utilities_test subsuite in overall test suite (+ trivial code…
boegel Mar 16, 2021
1b0b6f3
pass custom env command in test_fix_shebang via --env-for-shebang com…
boegel Mar 16, 2021
cfb3225
Add option to write file from file-like object and use in download_file
Flamefire Mar 17, 2021
359447f
make sure we copy the entire file when a file-like object is passed t…
boegel Mar 17, 2021
146e718
let caller decide whether or not to copy whole file + determine wheth…
boegel Mar 17, 2021
b5d128c
Make sure that path to eb is always found by tests
Mar 19, 2021
06d08d8
Tweak test that actually checks EB_SCRIPT_PATH
Mar 19, 2021
06cbda8
Improve comment
Mar 19, 2021
9dd5efd
Refactor the CI script to use inclusion instead of exclusion
Flamefire Mar 18, 2021
054525b
bump to latest Lmod in test suite configurations
boegel Mar 18, 2021
846cdb4
Avoid repetition of module tool versions
Flamefire Mar 19, 2021
d1c6081
Add/Improve comments
Flamefire Mar 22, 2021
1f11bdc
fix typo in docstring of goblf toolchain definition
boegel Apr 5, 2021
101526c
deprecate --accept-eula, rename to --accept-eula-for
boegel Apr 5, 2021
7a9ba8a
add support for using regular expression pattern to speicfy software …
boegel Apr 5, 2021
e85aa30
Add templates for architecture independent Python wheels
Flamefire Mar 24, 2021
a1e0ebb
Show the easyblocks repo and PR number when uploading a test report a…
Flamefire Mar 29, 2021
ffeb85a
Handle errors on delete and reduce default verbosity
Flamefire Mar 29, 2021
82fa71f
Don't overwrite default log level
Flamefire Mar 29, 2021
62941c6
rename eb_pr_nrs to easyblock_pr_nrs
boegel Apr 5, 2021
f8e3f9a
Create CUDA cache (for JIT compiled PTX code) in build dir instead of…
Flamefire Feb 8, 2021
712b0e8
Fix test_prefix_option not being run
Flamefire Feb 9, 2021
39b0b7c
Change unit of cuda-cache-size to MiB and add cuda_cache_dir
Flamefire Feb 15, 2021
ed4a6df
rename setup_cuda_cache method to set_up_cuda_cache + minor tweaks to…
boegel Apr 5, 2021
e694024
Add create_unused_dir to create a directory which does not yet exist
Flamefire Jan 22, 2021
54ae8d4
Limit amount of attempts and test error conditions
Flamefire Feb 15, 2021
cd4b642
flesh out duplicate code from mkdir and create_unused_dir functions i…
boegel Apr 5, 2021
5ee0b02
Avoid module use in LMod if possible to allow faster execution
Flamefire Feb 2, 2021
b1b48b7
extend test for 'module use', also test 'module unuse'
boegel Apr 5, 2021
a08870e
also load module when testing use/unuse
boegel Apr 5, 2021
006ac55
use develop branch when testing push access in --check-github (fixes …
boegel Apr 5, 2021
b57fd34
update validate_github_token function to accept GitHub token in new f…
boegel Apr 6, 2021
b40e519
Avoid module call for unuse() for LMod and set $MODULEPATH directly
Flamefire Apr 6, 2021
037993e
Add test for adding to non-existing MODULEPATH and removing it
Flamefire Apr 6, 2021
a5dee3d
Test special cases for LMod only
Flamefire Apr 6, 2021
f49c8f5
prepare release notes for EasyBuild v4.3.4 + bump version to 4.3.4
migueldiascosta Apr 7, 2021
b538cf0
tweak framework release notes for EasyBuild v4.3.4
boegel Apr 7, 2021
683080a
Merge remote-tracking branch 'github_hpcugent/main' into computecanad…
bartoldeman Jun 16, 2021
a986b3c
Merge branch 'checksums_external' into computecanada-main
mboisson Jul 8, 2021
5824ede
Merge branch 'checksums_external' into computecanada-main
mboisson Jul 9, 2021
10c7650
added support for source filenames specified as dict
mboisson Jul 20, 2021
c0c9231
update iompi toolchain to intel-compiler subtoolchain for oneAPI vers…
bartoldeman Jul 26, 2021
3e9e226
Merge remote-tracking branch 'github_hpcugent/main' into computecanad…
bartoldeman Jul 28, 2021
dab827b
added back line that should have been kept
mboisson Aug 3, 2021
f099882
Merge branch 'fix_bash_shebang_for' into computecanada-main
mboisson Aug 23, 2021
590f856
Merge branch 'fix_bash_shebang_for' into computecanada-main
mboisson Aug 23, 2021
651ee1e
Merge branch 'fix_bash_shebang_for' into computecanada-main
mboisson Aug 23, 2021
73a3264
added an option no_download to obtain_file, and use it for checksums
mboisson Aug 27, 2021
70243fd
Merge remote-tracking branch 'github_hpcugent/main' into computecanad…
bartoldeman Sep 8, 2021
0012bb4
Allow self.BLACS_LIB to be None.
bartoldeman Oct 22, 2021
7d00148
Test for self.SCALAPACK_LIB to see need for BLACS/SCALAPACK vars.
bartoldeman Oct 22, 2021
2c99480
Fix the FlexiBLAS lib for Intel
bartoldeman Oct 22, 2021
ebe1c83
Import TC_CONSTANT_INTELCOMP
bartoldeman Oct 22, 2021
215b4f8
Make sure correct include directory is used for FlexiBLAS
Oct 27, 2021
2b230fd
Only warn if ldd fails, don't cause exceptions.
bartoldeman Oct 28, 2021
be97b65
Merge tag 'easybuild-framework-v4.5.0' into computecanada-main
bartoldeman Nov 11, 2021
f7a37d2
Merge tag 'easybuild-framework-v4.5.1' into computecanada-main
bartoldeman Feb 18, 2022
8895f6e
Merge tag 'easybuild-framework-v4.5.2' into computecanada-main
bartoldeman Feb 18, 2022
7ef8e49
Merge tag 'easybuild-framework-v4.5.3' into computecanada-main
bartoldeman Feb 18, 2022
cedab47
Simply import easybuild to check if it's working.
bartoldeman Apr 8, 2022
910b1ac
Merge tag 'easybuild-framework-v4.5.4' into computecanada-main
bartoldeman Jun 3, 2022
42d51f5
Merge remote-tracking branch 'github_hpcugent/main' into computecanad…
bartoldeman Jun 20, 2022
721a39a
Prevent depends_on('gcccore/...') via toolchain deps.
bartoldeman Jul 7, 2022
a6dbb4b
Merge tag 'easybuild-framework-v4.6.0' into computecanada-main
bartoldeman Jul 18, 2022
65a52a3
Merge remote-tracking branch 'github_hpcugent/main' into computecanad…
bartoldeman Nov 21, 2022
906ea57
Merge tag 'easybuild-framework-v4.7.0' into computecanada-main
bartoldeman Jan 20, 2023
0967379
Merge tag 'easybuild-framework-v4.7.2' into computecanada-main
bartoldeman May 29, 2023
59d2f54
hot fix for https://github.com/easybuilders/easybuild-framework/issue…
mboisson Jun 16, 2023
13850b2
add set_shell_function to module_generator
mboisson Aug 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 40 additions & 16 deletions easybuild/framework/easyblock.py
Original file line number Diff line number Diff line change
Expand Up @@ -1294,6 +1294,9 @@ def make_module_dep(self, unload_info=None):
if tc_mod in excluded_deps and tc_dep_mods:
excluded_deps.extend(tc_dep_mods)

# Compute Canada specific: exclude gcccore from toolchain deps, we treat it as build dependency
excluded_deps.extend([d for d in tc_dep_mods if d.startswith('gcccore/')])

self.log.debug("List of excluded deps: %s", excluded_deps)

# expand toolchain into toolchain components if desired
Expand Down Expand Up @@ -1619,7 +1622,7 @@ def make_module_req_guess(self):
'PKG_CONFIG_PATH': [os.path.join(x, 'pkgconfig') for x in lib_paths + ['share']],
'ACLOCAL_PATH': [os.path.join('share', 'aclocal')],
'CLASSPATH': ['*.jar'],
'XDG_DATA_DIRS': ['share'],
#'XDG_DATA_DIRS': ['share'], #disable for now
'GI_TYPELIB_PATH': [os.path.join(x, 'girepository-*') for x in lib_paths],
'CMAKE_PREFIX_PATH': [''],
'CMAKE_LIBRARY_PATH': ['lib64'], # lib and lib32 are searched through the above
Expand Down Expand Up @@ -3961,7 +3964,7 @@ def run_step(self, step, step_methods):
raise StopException(step)

@staticmethod
def get_steps(run_test_cases=True, iteration_count=1):
def get_steps(run_test_cases=True, iteration_count=1, multi_deps_extensions_only=False):
"""Return a list of all steps to be performed."""

def get_step(tag, descr, substeps, skippable, initial=True):
Expand All @@ -3976,11 +3979,24 @@ def get_step(tag, descr, substeps, skippable, initial=True):
(True, lambda x: x.reset_env),
(True, lambda x: x.handle_iterate_opts),
]
# if multi_deps is used only for extensions, don't make the build directory each iteration
if multi_deps_extensions_only:
ready_substeps_iterates = [
(False, lambda x: x.check_readiness_step),
(True, lambda x: x.reset_env),
(True, lambda x: x.handle_iterate_opts),
]
else:
ready_substeps_iterates = ready_substeps

def ready_step_spec(initial):
"""Return ready step specified."""
return get_step(READY_STEP, "creating build dir, resetting environment", ready_substeps, False,
initial=initial)
if initial:
return get_step(READY_STEP, "creating build dir, resetting environment", ready_substeps, False,
initial=initial)
else:
return get_step(READY_STEP, "creating build dir, resetting environment",
ready_substeps_iterates, False, initial=initial)

source_substeps = [
(False, lambda x: x.checksum_step),
Expand Down Expand Up @@ -4027,17 +4043,24 @@ def install_step_spec(initial):
# part 2: iterated part, from 2nd iteration onwards
# repeat core procedure again depending on specified iteration count
# not all parts of all steps need to be rerun (see e.g., ready, prepare)
steps_part2 = [
ready_step_spec(False),
source_step_spec(False),
patch_step_spec,
prepare_step_spec,
configure_step_spec,
build_step_spec,
test_step_spec,
install_step_spec(False),
extensions_step_spec,
] * (iteration_count - 1)
if multi_deps_extensions_only:
steps_part2 = [
ready_step_spec(False),
prepare_step_spec,
extensions_step_spec,
] * (iteration_count - 1)
else:
steps_part2 = [
ready_step_spec(False),
source_step_spec(False),
patch_step_spec,
prepare_step_spec,
configure_step_spec,
build_step_spec,
test_step_spec,
install_step_spec(False),
extensions_step_spec,
] * (iteration_count - 1)
# part 3: post-iteration part
steps_part3 = [
(POSTITER_STEP, 'restore after iterating', [lambda x: x.post_iter_step], False),
Expand Down Expand Up @@ -4068,7 +4091,8 @@ def run_all_steps(self, run_test_cases):
if self.cfg['stop'] and self.cfg['stop'] == 'cfg':
return True

steps = self.get_steps(run_test_cases=run_test_cases, iteration_count=self.det_iter_cnt())
steps = self.get_steps(run_test_cases=run_test_cases, iteration_count=self.det_iter_cnt(),
multi_deps_extensions_only=self.cfg["multi_deps_extensions_only"])

# figure out how many steps will actually be run (not be skipped)
step_cnt = 0
Expand Down
1 change: 1 addition & 0 deletions easybuild/framework/easyconfig/default.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,7 @@
'hiddendependencies': [[], "List of dependencies available as hidden modules", DEPENDENCIES],
'multi_deps': [{}, "Dict of lists of dependency versions over which to iterate", DEPENDENCIES],
'multi_deps_load_default': [True, "Load module for first version listed in multi_deps by default", DEPENDENCIES],
'multi_deps_extensions_only': [False, "Use multi_deps dependencies only to install extensions", DEPENDENCIES],
'osdependencies': [[], "OS dependencies that should be present on the system", DEPENDENCIES],
'moddependpaths': [None, "Absolute path(s) to prepend to MODULEPATH before loading dependencies", DEPENDENCIES],

Expand Down
1 change: 1 addition & 0 deletions easybuild/framework/easyconfig/tweak.py
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,7 @@ def __repr__(self):
try:
# obtain temporary filename
fd, tmpfn = tempfile.mkstemp()
os.chmod(tmpfn, 0o644)
os.close(fd)

# write easyconfig to temporary file
Expand Down
5 changes: 4 additions & 1 deletion easybuild/toolchains/compiler/cuda.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"""

from easybuild.tools.toolchain.compiler import Compiler
from easybuild.tools.modules import get_software_root


TC_CONSTANT_CUDA = "CUDA"
Expand Down Expand Up @@ -77,7 +78,9 @@ def __init__(self, *args, **kwargs):
def _set_compiler_vars(self):
"""Set the compiler variables"""
# append lib dir paths to LDFLAGS (only if the paths are actually there)
root = self.get_software_root('CUDA')[0]
root = get_software_root('CUDAcore')
if not root:
root = self.get_software_root('CUDA')[0]
self.variables.append_subdirs("LDFLAGS", root, subdirs=["lib64", "lib"])
super(Cuda, self)._set_compiler_vars()

Expand Down
7 changes: 7 additions & 0 deletions easybuild/toolchains/linalg/flexiblas.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@

from easybuild.tools.run import run_cmd
from easybuild.tools.systemtools import get_shared_lib_ext
from easybuild.toolchains.compiler.inteliccifort import TC_CONSTANT_INTELCOMP


TC_CONSTANT_FLEXIBLAS = 'FlexiBLAS'
Expand Down Expand Up @@ -78,6 +79,12 @@ class FlexiBLAS(LinAlg):
LAPACK_INCLUDE_DIR = [os.path.join('include', 'flexiblas')]
LAPACK_FAMILY = TC_CONSTANT_FLEXIBLAS

def _set_blas_variables(self):
"""Fix the BLAS_LIB for Intel"""
if self.COMPILER_FAMILY == TC_CONSTANT_INTELCOMP:
self.BLAS_LIB = ['flexiblas_intel']
super(FlexiBLAS, self)._set_blas_variables()

def banned_linked_shared_libs(self):
"""
List of shared libraries (names, file names, paths) which are
Expand Down
1 change: 1 addition & 0 deletions easybuild/tools/build_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ def init_logging(logfile, logtostdout=False, silent=False, colorize=fancylogger.

# mkstemp returns (fd,filename), fd is from os.open, not regular open!
fd, logfile = tempfile.mkstemp(suffix='.log', prefix='easybuild-', dir=tmp_logdir)
os.chmod(logfile, 0o644)
os.close(fd)

fancylogger.logToFile(logfile, max_bytes=0)
Expand Down
21 changes: 21 additions & 0 deletions easybuild/tools/module_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,12 @@ def set_alias(self, key, value):
"""
raise NotImplementedError

def set_shell_function(self, key, bashStr, cshStr):
"""
Generate set_shell_function statement in modulefile for the given key/value pair.
"""
raise NotImplementedError

def set_as_default(self, module_dir_path, module_version, mod_symlink_paths=None):
"""
Set generated module as default module
Expand Down Expand Up @@ -1005,6 +1011,12 @@ def set_alias(self, key, value):
# quotes are needed, to ensure smooth working of EBDEVEL* modulefiles
return 'set-alias\t%s\t\t%s\n' % (key, quote_str(value, tcl=True))

def set_shell_function(self, key, bashStr, cshStr):
"""
Generate set_shell_function statement in modulefile for the given key/value pair.
"""
raise NotImplementedError

def set_as_default(self, module_dir_path, module_version, mod_symlink_paths=None):
"""
Create a .version file inside the package module folder in order to set the default version for TMod
Expand Down Expand Up @@ -1190,6 +1202,8 @@ def check_group(self, group, error_msg=None):

error_msg = 'LmodError("' + error_msg + '")'
res = self.conditional_statement('userInGroup("%s")' % group, error_msg, negative=True)
if 'EASYBUILD_CONFIGFILES' in os.environ:
res = '' # disable for Compute Canada:
else:
warn_msg = "Can't generate robust check in Lua modules for users belonging to group %s. "
warn_msg += "Lmod version not recent enough (%s), should be >= %s"
Expand Down Expand Up @@ -1478,6 +1492,13 @@ def set_alias(self, key, value):
# quotes are needed, to ensure smooth working of EBDEVEL* modulefiles
return 'set_alias("%s", %s)\n' % (key, quote_str(value))

def set_shell_function(self, key, bashStr, cshStr):
"""
Generate set_shell_function statement in modulefile for the given key/value pair.
"""
# quotes are needed, to ensure smooth working of EBDEVEL* modulefiles
return 'set_shell_function("%s", %s, %s)\n' % (key, quote_str(bashStr), quote_str(cshStr))

def set_as_default(self, module_dir_path, module_version, mod_symlink_paths=None):
"""
Create a symlink named 'default' inside the package's module folder in order to set the default module version
Expand Down
4 changes: 2 additions & 2 deletions easybuild/tools/module_naming_scheme/utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ def det_full_ec_version(ec):
type(versionprefix).__name__, versionprefix, ec)

versionsuffix = ec.get('versionsuffix', '')
if not isinstance(versionsuffix, string_type):
raise EasyBuildError("versionsuffix value should be a string, found '%s': %s (full spec: %s)",
if not isinstance(versionsuffix, string_type) and versionsuffix is not None:
raise EasyBuildError("versionsuffix value should be a string or None, found '%s': %s (full spec: %s)",
type(versionsuffix).__name__, versionsuffix, ec)

ecver = ''.join([x for x in [versionprefix, ecver, versionsuffix] if x])
Expand Down
1 change: 1 addition & 0 deletions easybuild/tools/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -1874,6 +1874,7 @@ def set_tmpdir(tmpdir=None, raise_error=False):
raise EasyBuildError("Failed to create path to temporary directory %s: %s", current_tmpdir, err)

_log.info("Temporary directory used in this EasyBuild run: %s" % current_tmpdir)
os.chmod(current_tmpdir, 0o755)

for var in ['TMPDIR', 'TEMP', 'TMP']:
env.setvar(var, current_tmpdir, verbose=False)
Expand Down
2 changes: 1 addition & 1 deletion easybuild/tools/robot.py
Original file line number Diff line number Diff line change
Expand Up @@ -439,7 +439,7 @@ def resolve_dependencies(easyconfigs, modtool, retain_all_deps=False, raise_erro
processed_ecs = process_easyconfig(path, validate=not retain_all_deps, hidden=hidden)

# ensure that selected easyconfig provides required dependency
verify_easyconfig_filename(path, cand_dep, parsed_ec=processed_ecs)
#verify_easyconfig_filename(path, cand_dep, parsed_ec=processed_ecs)

for ec in processed_ecs:
if ec not in easyconfigs + additional:
Expand Down
2 changes: 1 addition & 1 deletion easybuild/tools/toolchain/linalg.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ def set_variables(self):
# TODO is link order fully preserved with this order ?
self._set_blas_variables()
self._set_lapack_variables()
if getattr(self, 'MPI_MODULE_NAME', None):
if getattr(self, 'MPI_MODULE_NAME', None) and self.SCALAPACK_LIB is not None:
self._set_blacs_variables()
self._set_scalapack_variables()

Expand Down