Skip to content

Update for PR 4248 #1

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

Merged
merged 448 commits into from
Mar 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
448 commits
Select commit Hold shift + click to select a range
eb768a1
fix broken tests due to changes in error handling
boegel Oct 7, 2023
37d7a0e
remove CI workflow for running framework tests with Python 2
boegel Oct 7, 2023
219be7c
fix faulty imports in toy_build test module
boegel Oct 7, 2023
9ab36ed
don't use f-strings without a placeholder
boegel Oct 7, 2023
23778be
fix parallellisation typo
branfosj Oct 12, 2023
13370c1
parallelism
branfosj Oct 12, 2023
c2a8c55
parallelism
branfosj Oct 12, 2023
5370a66
parallelism
branfosj Oct 12, 2023
dcf9bb3
parallelism
branfosj Oct 12, 2023
ece71c2
collapse print_run_shell_cmd_error into RunShellCmdError as print method
boegel Oct 16, 2023
f3eafe6
minor help fix
smoors Oct 17, 2023
7acec7f
Merge pull request #4352 from branfosj/parallellisation
casparvl Oct 18, 2023
3daac77
always store command output to temporary file in run_shell_cmd
boegel Oct 18, 2023
7ee39c5
take into account that VERBOSE_VERSION imported from easybuild.easybl…
boegel Oct 22, 2023
5ae74c9
Merge pull request #4351 from boegel/run_shell_cmd_error
lexming Oct 23, 2023
05374ad
Merge branch '5.0.x' into run_shell_cmd_out_files
boegel Oct 23, 2023
2dc4707
Merge pull request #4355 from smoors/20231017085708_new_pr_ZKoiyqjEvr
casparvl Oct 23, 2023
62b4c16
use 5.0.x branch for easyblocks + easyconfigs in CI workflows (for now)
boegel Oct 23, 2023
31f5367
Merge pull request #4358 from boegel/ci_5.0.x
Micket Oct 23, 2023
9d43ede
add sysroot template value
Oct 24, 2023
dfe0c8e
Added unit tests: one for empty sysroot, one for non-empty sysroot
Oct 24, 2023
6d6571a
Update templates.py for the style check
xinan1911 Oct 24, 2023
8bcb5dd
Merge branch '5.0.x' into easyblocks_looseversion
boegel Oct 25, 2023
6cde0db
Merge pull request #4357 from boegel/easyblocks_looseversion
Micket Oct 25, 2023
2e6bd7a
Update easybuild/framework/easyconfig/templates.py
casparvl Oct 25, 2023
d52c779
Removed stray 'value' in code
Oct 25, 2023
510cb33
add `EasyConfig.dependency_names`
Flamefire Oct 25, 2023
097f394
Updated tests for syroot template
Oct 25, 2023
0076677
Make hound happy
Oct 25, 2023
0915a99
Deduplicate warnings&errors found in logs and add initial newline in …
Flamefire Oct 25, 2023
8c9b09a
Explicitely use `set()` instead of `{}`
Flamefire Oct 25, 2023
96c7a04
Adapt test to new output
Flamefire Oct 25, 2023
ea000b2
Restore original sysroot at the end of test
Oct 25, 2023
e6bc403
Environment reset is not needed at the end of the test, each one star…
Oct 25, 2023
f2bae7f
One more change in expected output. Probably need one more after this…
Oct 25, 2023
a410526
Fix hopefully last reference in test_template_constant_dict to accoun…
Oct 25, 2023
bbfd3a7
Merge pull request #4359 from xinan1911/sysroottem
boegel Oct 26, 2023
9c4c794
fix findPythonDeps when called with an absolute path to an EC
Flamefire Oct 26, 2023
dfe0102
Show stderr output on failing command even when not requested to be c…
Flamefire Oct 27, 2023
cf0bd4f
fix findPythonDeps when using a relative path as the `--ec` argument
Flamefire Oct 27, 2023
a842a38
fix broken test for reasons_for_closing, which fails because commit s…
boegel Oct 27, 2023
b3bcb19
Merge pull request #4360 from Flamefire/dependency_names
boegel Oct 27, 2023
87c1453
Merge pull request #4365 from Flamefire/fix-findPythonDeps
boegel Oct 27, 2023
6fccffe
Merge pull request #4366 from boegel/fix_test_github_reasons_for_closing
branfosj Oct 27, 2023
642fe35
prepare release notes for EasyBuild v4.8.2 + bump version to 4.8.2
migueldiascosta Oct 28, 2023
49deccd
tweak release notes for EasyBuild v4.8.2
boegel Oct 28, 2023
f4dda1e
Fix test_load test for EnvironmentModules 4.2+
xdelaruelle Oct 29, 2023
94ff50f
Ensure correct configuration for EnvironmentModules
xdelaruelle Oct 29, 2023
f297d32
Setenv value may be enclosed in curly braces on EnvironmentModules
xdelaruelle Oct 29, 2023
c93633c
Merge pull request #4367 from migueldiascosta/eb482
boegel Oct 29, 2023
e149177
Merge pull request #4370 from easybuilders/4.8.x
boegel Oct 29, 2023
e9f190c
only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9
boegel Nov 4, 2023
13da643
bump version to 4.9.0dev
boegel Nov 4, 2023
76c3c55
Merge pull request #4374 from boegel/develop
migueldiascosta Nov 4, 2023
685467c
Merge pull request #4375 from boegel/github_tests_ci_token
migueldiascosta Nov 5, 2023
c073716
Merge branch 'develop' into 5.0.x
boegel Nov 6, 2023
efbfd20
Merge branch '5.0.x' into run_shell_cmd_out_files
boegel Nov 6, 2023
316a89b
fix mocked RunShellCmdResult in systemtools tests
boegel Nov 6, 2023
ca9186e
only log shell command output when output_file option is enabled in r…
boegel Nov 6, 2023
95bd45e
disable storing output of shell commands to temporary file in tools/m…
boegel Nov 6, 2023
121e199
don't use f-string for path to output files since there are no placeh…
boegel Nov 6, 2023
98a5720
take into account that path to file with command output may be None i…
boegel Nov 6, 2023
f46dd91
unpack RunShellCmdResult instance in RunShellCmdError constructor int…
boegel Nov 6, 2023
731649d
Merge pull request #4361 from Flamefire/improve-error-check
boegel Nov 8, 2023
8620e64
simplify logic for printing path to stdout/stderr output files in Run…
boegel Nov 8, 2023
6b09872
Merge pull request #4356 from boegel/run_shell_cmd_out_files
lexming Nov 8, 2023
ee99d87
Use -qopenmp instead of -fiopenmp for OpenMP in OneAPI
bartoldeman Nov 8, 2023
534b029
rename 'shell' option in run_shell_cmd to 'use_bash'
boegel Nov 8, 2023
ea8433d
Merge pull request #4377 from bartoldeman/intelcompilers-openmp
boegel Nov 8, 2023
757b8ee
Adapt module function check for EnvironmentModules
xdelaruelle Oct 28, 2023
0288ca3
fix LIBBLAS_MT for flexiblas, ensure -lpthread is included
Nov 10, 2023
047b837
print error message when EasyBuildError was raised in main_with_hooks…
boegel Nov 13, 2023
86ed634
Merge pull request #4378 from boegel/run_shell_cmd_use_bash
smoors Nov 13, 2023
95e752c
Merge pull request #4380 from boegel/fix_error_reporting
smoors Nov 13, 2023
a3f3873
start adopting `run_shell_cmd` in easyblock.py (+ use f-strings)
boegel Nov 16, 2023
122f208
Merge pull request #4383 from boegel/run_easyblock
verdurin Nov 20, 2023
2ce5868
relax major version match regex in find_related_easyconfigs
migueldiascosta Nov 21, 2023
95e8c48
When combining multi_deps with iterative builds, it generates a list …
mboisson Nov 21, 2023
3714b8c
Use nub instead of set to preserve order
mboisson Nov 22, 2023
a3a427b
detect Fortran .mod files in GCCcore installations
branfosj Nov 25, 2023
f148ffb
easyconfig param to skip check
branfosj Nov 25, 2023
ec6ece6
skip check when not needed
branfosj Nov 25, 2023
d887426
correctly check for if the parameter is set
branfosj Nov 25, 2023
809b694
add testing
branfosj Nov 25, 2023
0b3daf2
address review comments
branfosj Nov 25, 2023
1644c93
appease the hound
branfosj Nov 25, 2023
871f955
Add formating as json
APN-Pucky Nov 26, 2023
c3bde44
Add json list software test
APN-Pucky Nov 26, 2023
1cc58f9
Fix format...
APN-Pucky Nov 26, 2023
9104b85
Fix verbosity
APN-Pucky Nov 26, 2023
3538e93
Add not implemented exceptions for other json cases
APN-Pucky Nov 26, 2023
5967a66
Fix format again
APN-Pucky Nov 26, 2023
e97eb9b
extend test to recent toolchain
smoors Nov 27, 2023
e11b9bd
fix
smoors Nov 27, 2023
7e6993f
add foss/2023a module for testing
smoors Nov 27, 2023
737d778
resolve templated values in name in _make_extension_list
branfosj Nov 28, 2023
873a001
add deps
smoors Dec 2, 2023
edde779
use source toolchain version when passing only `--try-toolchain`
Flamefire Dec 5, 2023
9613d9f
Avoid interferring with other tests
Flamefire Dec 5, 2023
badc27c
Merge pull request #4395 from Flamefire/fix-try-toolchain
ocaisa Dec 5, 2023
7195525
Merge pull request #4386 from ComputeCanada/drop_duplicate_multideps_…
boegel Dec 6, 2023
aaeaa62
Add trailing spaces
APN-Pucky Dec 6, 2023
d2ccb1a
Enforce no space after comma from json.dumps (for older pythons)
APN-Pucky Dec 6, 2023
5423a6f
Sort JSON keys for older python versions
APN-Pucky Dec 6, 2023
6281032
more deps
smoors Dec 6, 2023
cfe669d
Merge branch 'develop' 20231127173721_new_pr_TfRTmmMaPJ and add more …
smoors Dec 6, 2023
0b702ee
add magic cookies
smoors Dec 6, 2023
ce64b01
fix test_avail
smoors Dec 6, 2023
21c15f5
more fixes
smoors Dec 6, 2023
3f05f7e
add another dep
smoors Dec 6, 2023
646f7a6
more test fixes
smoors Dec 6, 2023
046fe23
Merge branch '20231127173721_new_pr_TfRTmmMaPJ' into 20231110135614_n…
smoors Dec 7, 2023
850b7fd
Merge pull request #4379 from smoors/20231110135614_new_pr_bwklaNNTzT
boegel Dec 8, 2023
16a755b
Merge branch 'easybuilders:develop' into allow_try_for_multi_tc
Flamefire Dec 14, 2023
9ba76dd
Merge pull request #3669 from Flamefire/allow_try_for_multi_tc
ocaisa Dec 14, 2023
06461ea
Introduce `--module-cache-suffix` to allow multiple caches
Flamefire Dec 14, 2023
b4488e0
Fix writing spider cache for LMod >= 8.7.12
Flamefire Dec 14, 2023
7f73abf
Fix `--inject-checksums` when extension has tuple-format patch
Flamefire Dec 14, 2023
2816bf8
fix LooseVersion on Python2
Flamefire Dec 20, 2023
03d02e6
Enhance tests for LooseVersion
Flamefire Dec 20, 2023
5ee24a7
Merge pull request #4408 from Flamefire/20231220133211_new_pr_ttolZmNdMU
boegel Dec 20, 2023
87b9659
Merge pull request #4405 from Flamefire/fix_inject-checksum-for-ext-t…
boegel Dec 20, 2023
89ac755
Merge pull request #4403 from Flamefire/module_cache_suffix
boegel Dec 20, 2023
b1c5d08
Remove superflous string formatting
Flamefire Dec 21, 2023
a748eaf
Show empty description for license instead of "None"
Flamefire Dec 21, 2023
1319196
Remove typo
Flamefire Dec 21, 2023
3830181
Cleanup uses of `getattr` and `hasattr`
Flamefire Dec 21, 2023
a2eaf23
Merge pull request #4402 from Flamefire/20231214104020_new_pr_GrKzLLVElk
boegel Dec 22, 2023
05d6af2
Merge pull request #4385 from migueldiascosta/major_version_match
boegel Dec 26, 2023
5af05dc
Merge pull request #4392 from branfosj/resolve
boegel Dec 26, 2023
3fb386c
Merge pull request #4371 from xdelaruelle/_module_raw_function_check
boegel Dec 26, 2023
a3dbe00
Merge branch 'develop' into modules_unit_tests
boegel Dec 26, 2023
5aec5e2
use more recent easyblocks PR in test_github_merge_pr
boegel Dec 26, 2023
24d7862
Merge pull request #4414 from boegel/fix_test_github_merge_pr
zao Dec 26, 2023
d977648
Merge pull request #4369 from xdelaruelle/modules_unit_tests
boegel Dec 27, 2023
f486168
Merge branch 'develop' into 5.0.x
boegel Dec 27, 2023
1fad79e
Adapt VERSION_REGEXP for EnvironmentModules
xdelaruelle Oct 30, 2023
a3cb2cc
Get available hidden modules on EnvironmentModules
xdelaruelle Oct 29, 2023
8697178
prepare release notes for EasyBuild v4.9.0 + bump version to 4.9.0
SebastianAchilles Dec 29, 2023
4288f5b
minor code style fixes in list_software_json
boegel Dec 29, 2023
860e600
Merge pull request #4152 from APN-Pucky/develop
boegel Dec 29, 2023
81383e2
minor tweaks to 4.9.0 release notes
boegel Dec 29, 2023
61a2791
Merge pull request #4419 from SebastianAchilles/eb490
boegel Dec 30, 2023
434151c
Merge pull request #4420 from easybuilders/4.9.x
boegel Dec 30, 2023
7bebf0a
bump version to 4.9.1dev
boegel Dec 30, 2023
51159bf
Merge branch 'develop' into 5.0.x
boegel Dec 31, 2023
fc27fe2
use run_shell_cmd in scripts
boegel Dec 31, 2023
93d5a0f
Merge pull request #4421 from boegel/develop
branfosj Dec 31, 2023
df371cb
replace use of run_cmd with run_shell_cmd in modules.py
boegel Jan 1, 2024
bc76fb3
fix code style in findPythonDeps.py script
boegel Jan 1, 2024
38f32bd
implement support for 'stream_output' option in run_shell_cmd
boegel Jan 2, 2024
c98825d
disable stream_output when running shell commands in systemtools
boegel Jan 2, 2024
faf8086
Merge pull request #4416 from xdelaruelle/modules_check_version
boegel Jan 2, 2024
00a3f52
Merge pull request #4412 from Flamefire/cleanup-attr
boegel Jan 3, 2024
2d5db91
add comment to explain why hidden bzip2 module is not included in "av…
boegel Jan 3, 2024
d7cd5e3
Merge pull request #4411 from Flamefire/to_str
boegel Jan 3, 2024
415cbcd
Merge pull request #4417 from xdelaruelle/modules_hidden
boegel Jan 3, 2024
7f1f7ea
switch to run_shell_cmd in easybuild/tools/container
boegel Jan 3, 2024
b05b07d
bump minimum required Lmod to 8.0.0
branfosj Jan 3, 2024
5cdea46
remove Lmod 7 testing
branfosj Jan 3, 2024
d7f2faf
tweak warning/error message when .mod files are found
boegel Jan 3, 2024
8c28dfa
Merge pull request #4389 from branfosj/mod_files
boegel Jan 3, 2024
bd6f3d4
Merge pull request #4422 from boegel/scripts_run_shell_cmd
branfosj Jan 3, 2024
9cbd60f
Merge pull request #4423 from boegel/run_shell_cmd_stream_output
branfosj Jan 3, 2024
8b4a889
switch to run_shell_cmd in toy_build test module
boegel Jan 3, 2024
84b8e5d
switch to run_shell_cmd in toolchain test module
boegel Jan 3, 2024
000779e
Merge pull request #4427 from boegel/run_shell_cmd_test_toy_build
branfosj Jan 4, 2024
14eb64f
Merge pull request #4428 from boegel/run_shell_cmd_test_toolchain
branfosj Jan 4, 2024
47f7a20
switch to run_shell_cmd where possible in easybuild.* modules
boegel Jan 4, 2024
a6cc6ef
update test_index_functions to only build index for subdirectory with…
boegel Jan 4, 2024
488d92e
switch to run_shell_cmd in options test module
boegel Jan 4, 2024
060b9c3
switch to run_shell_cmd in remaining test modules
boegel Jan 4, 2024
142a03e
Merge pull request #4430 from boegel/run_shell_cmd
branfosj Jan 4, 2024
db08495
Merge pull request #4432 from boegel/run_shell_cmd_test
branfosj Jan 4, 2024
7b082cb
Merge pull request #4431 from boegel/run_shell_cmd_test_options
branfosj Jan 4, 2024
ed8ac7a
add params modextrapaths_append and allow_append_abs_path
smoors Jan 10, 2024
5b0d6a3
Improve --check-github output
Flamefire Jan 11, 2024
8127a99
add tests
smoors Jan 12, 2024
4e0a068
fix tests
smoors Jan 12, 2024
2eef785
try to fix tests
smoors Jan 12, 2024
58d67db
fix
smoors Jan 12, 2024
7dbba36
Merge branch 'develop' into 5.0.x
boegel Jan 15, 2024
571b94d
Move post install commands after lib64 symlinking
ocaisa Jan 15, 2024
b03f26e
Add script for updating local git repos with develop branch
Flamefire Jan 15, 2024
edeb30a
Deprecate EnvironmentModulesC and EnvironmentModulesTcl
branfosj Jan 15, 2024
289ff54
update deprecation message
branfosj Jan 15, 2024
bd99f65
Error when multiple PR options are passed
Flamefire Jan 16, 2024
1da0e55
Remove pr_options variable
Flamefire Jan 16, 2024
a796156
don't hardcode /bin/bash in eb script, RPATH wrapper script, and run_…
boegel Jan 16, 2024
0b68c30
fix broken test_extensions_sanity_check which was hardcoding /bin/bas…
boegel Jan 17, 2024
4995e2d
Merge pull request #4424 from branfosj/lmod_min
boegel Jan 17, 2024
1bc6316
Merge pull request #4438 from Flamefire/add-update-EB-develop-script
boegel Jan 17, 2024
a468ef9
Enhance error message
Flamefire Jan 17, 2024
17bac31
Add more test cases
Flamefire Jan 17, 2024
04a029f
Merge pull request #4437 from Flamefire/improve-check-github
boegel Jan 18, 2024
19decf0
Merge pull request #4436 from smoors/modextrapaths_append
boegel Jan 18, 2024
2139d3e
Merge pull request #4441 from boegel/bin_bash
ocaisa Jan 18, 2024
769d5e2
Merge pull request #4440 from Flamefire/error-on-multip-pr-opts
branfosj Jan 18, 2024
3012af6
Merge branch 'develop' into 5.0.x
boegel Jan 19, 2024
f2a60b4
Merge branch '5.0.x' of github.com:easybuilders/easybuild-framework i…
boegel Jan 19, 2024
8aaaec2
replace string_type with str in easyblock.py
boegel Jan 19, 2024
7cba1dc
implement initial support for running shell commands asynchronously u…
boegel Jan 19, 2024
1c7c8b4
use ThreadPoolExecutor to asynchronously run shell commands in EasyBl…
boegel Jan 19, 2024
e91dbfa
use concurrent.futures.wait in EasyBlock.skip_extensions_parallel
boegel Jan 19, 2024
77e077e
fix error reporting when test step fails
boegel Jan 19, 2024
ea562b8
fix broken tests
boegel Jan 19, 2024
a19776a
use threading.get_ident as fallback for threading.get_native_id for P…
boegel Jan 19, 2024
80c9718
Merge pull request #4443 from boegel/fix_error_reporting_test_step
branfosj Jan 20, 2024
430c11e
Merge branch '5.0.x' of github.com:branfosj/easybuild-framework into …
branfosj Jan 22, 2024
75fa3ee
do not test deprecated module tools
branfosj Jan 22, 2024
fffba96
test with non-deprecated module tool
branfosj Jan 22, 2024
7fffcba
version with a .
branfosj Jan 22, 2024
fd18449
set a DEPR_VERSION for EnvironmentModules
branfosj Jan 23, 2024
8d8029d
uses old module tool, so allow deprecated
branfosj Jan 23, 2024
cc2a478
and capture the dep. warning
branfosj Jan 23, 2024
7315b9f
improve findPythonDeps to recognize non-canonical package names
Flamefire Jan 24, 2024
36febd8
use run_shell_cmd to install extensions in parallel
boegel Jan 29, 2024
211803d
Merge pull request #4439 from branfosj/modules
boegel Jan 30, 2024
64e61de
Merge pull request #4445 from Flamefire/findpythondeps-non-canonical-pkg
boegel Jan 30, 2024
cedd5ab
enable rpath by default
branfosj Feb 3, 2024
54b3633
disable rpath in two tests
branfosj Feb 4, 2024
e887991
Merge branch 'develop' into 5.0.x
boegel Feb 7, 2024
92e9fe1
fix broken tests after symlinking lib -> lib64 before postinstallcmds
boegel Feb 7, 2024
612b1c0
rpath off on mac
branfosj Feb 7, 2024
0c0332a
Merge pull request #4435 from easybuilders/ocaisa-patch-1
boegel Feb 8, 2024
0960bc4
clean up log file of EasyBlock instance in check_sha256_checksums
boegel Feb 8, 2024
6ac1bb0
Merge pull request #4452 from boegel/check_sha256_checksums_fix_leak
branfosj Feb 8, 2024
a98abf7
Merge branch 'develop' into 5.0.x
boegel Feb 8, 2024
ceb2916
Merge branch '5.0.x' of github.com:easybuilders/easybuild-framework i…
boegel Feb 8, 2024
360b053
Merge pull request #4448 from branfosj/enable_rpath
boegel Feb 14, 2024
22e12b4
allow only alphanumeric characters in the output filename
branfosj Feb 14, 2024
faf8f14
functionalise the simplification and add tests
branfosj Feb 15, 2024
6c000d4
enhance download instructions
branfosj Feb 17, 2024
3e8632f
update test
branfosj Feb 17, 2024
ca3828b
refactor EasyBlock.skip_extensions_parallel
boegel Feb 21, 2024
f7c0ff2
clean up unused imports from concurrent.futures
boegel Feb 21, 2024
c14a130
Merge pull request #4444 from boegel/run_shell_cmd_async
lexming Feb 21, 2024
cb84bd2
extra cases
branfosj Feb 22, 2024
a309aae
typo
branfosj Feb 22, 2024
560d395
re-order test_cuda_compute_capabilities {pre,}{config,build,install}opts
jfgrimm Feb 22, 2024
aff7482
add support for cuda compute capabilities templates in the form of:
jfgrimm Feb 22, 2024
f2d53d1
fix missing end quote
jfgrimm Feb 22, 2024
b65771f
fix missing space
jfgrimm Feb 22, 2024
eadfdc7
Merge pull request #4454 from branfosj/cmd_filename
boegel Feb 27, 2024
af15883
Merge pull request #4459 from branfosj/enhance_download_instructions
boegel Feb 27, 2024
ae320db
Merge pull request #4463 from jfgrimm/cuda-integer-templates
boegel Feb 27, 2024
88de22e
Merge branch '5.0.x' into PR4248
lexming Feb 29, 2024
8d9e14e
make reproducible archives only of git repos without .git dir and res…
lexming Feb 29, 2024
46e61c8
update FileToolsTest.test_github_get_source_tarball_from_git tests wi…
lexming Feb 29, 2024
8c76561
remove TODO about sort option in tar as it is not supported across im…
lexming Feb 29, 2024
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
4 changes: 2 additions & 2 deletions .github/workflows/container_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
ls dist
export PREFIX=/tmp/$USER/$GITHUB_SHA
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz

- name: run test
run: |
Expand All @@ -95,7 +95,7 @@ jobs:
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
# see https://docs.easybuild.io/en/latest/Containers.html
curl -OL https://github.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
curl -OL https://github.com/easybuilders/easybuild-easyconfigs/5.0.x/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
export EASYBUILD_CONTAINERPATH=$PWD
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/container_tests_apptainer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
ls dist
export PREFIX=/tmp/$USER/$GITHUB_SHA
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz

- name: run test
run: |
Expand All @@ -87,7 +87,7 @@ jobs:
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
# see https://docs.easybuild.io/en/latest/Containers.html
curl -OL https://github.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
curl -OL https://github.com/easybuilders/easybuild-easyconfigs/5.0.x/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
export EASYBUILD_CONTAINERPATH=$PWD
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
export EASYBUILD_CONTAINER_TYPE='apptainer'
Expand Down
60 changes: 60 additions & 0 deletions .github/workflows/end2end.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: End-to-end test of EasyBuild in different distros
on: [push, pull_request]
jobs:
build_publish:
name: End-to-end test
runs-on: ubuntu-latest
strategy:
matrix:
container:
- centos-8.5
- fedora-36
- opensuse-15.4
- rockylinux-8.8
- rockylinux-9.2
- ubuntu-20.04
- ubuntu-22.04
fail-fast: false
container:
image: ghcr.io/easybuilders/${{ matrix.container }}-amd64
steps:
- name: Check out the repo
uses: actions/checkout@v3

- name: download and unpack easyblocks and easyconfigs repositories
run: |
cd $HOME
for pkg in easyblocks easyconfigs; do
curl -OL https://github.com/easybuilders/easybuild-${pkg}/archive/5.0.x.tar.gz
tar xfz 5.0.x.tar.gz
rm -f 5.0.x.tar.gz
done

- name: Set up environment
shell: bash
run: |
# collect environment variables to be set in subsequent steps in script that can be sourced
echo "export PATH=$PWD:$PATH" > /tmp/eb_env
echo "export PYTHONPATH=$PWD:$HOME/easybuild-easyblocks-5.0.x:$HOME/easybuild-easyconfigs-5.0.x" >> /tmp/eb_env

- name: Run commands to check test environment
shell: bash
run: |
cmds=(
"whoami"
"pwd"
"env | sort"
"eb --version"
"eb --show-system-info"
"eb --check-eb-deps"
"eb --show-config"
)
for cmd in "${cmds[@]}"; do
echo ">>> $cmd"
sudo -u easybuild bash -l -c "source /tmp/eb_env; $cmd"
done

- name: End-to-end test of installing bzip2 with EasyBuild
shell: bash
run: |
sudo -u easybuild bash -l -c "source /tmp/eb_env; eb bzip2-1.0.8.eb --trace --robot"
91 changes: 33 additions & 58 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,7 @@ jobs:
setup:
runs-on: ubuntu-20.04
outputs:
lmod7: Lmod-7.8.22
lmod8: Lmod-8.7.6
modulesTcl: modules-tcl-1.147
modules3: modules-3.2.10
modules4: modules-4.1.4
steps:
- run: "true"
Expand All @@ -29,49 +26,25 @@ jobs:
modules_tool:
# use variables defined by 'setup' job above, see also
# https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context
- ${{needs.setup.outputs.lmod7}}
- ${{needs.setup.outputs.lmod8}}
- ${{needs.setup.outputs.modulesTcl}}
- ${{needs.setup.outputs.modules3}}
- ${{needs.setup.outputs.modules4}}
module_syntax: [Lua, Tcl]
lc_all: [""]
# don't test with Lua module syntax (only supported in Lmod)
exclude:
- modules_tool: ${{needs.setup.outputs.modulesTcl}}
module_syntax: Lua
- modules_tool: ${{needs.setup.outputs.modules3}}
module_syntax: Lua
- modules_tool: ${{needs.setup.outputs.modules4}}
module_syntax: Lua
include:
# Test different Python 3 versions with Lmod 8.x (with both Lua and Tcl module syntax)
- python: 3.7
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Lua
- python: 3.8
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Lua
- python: 3.8
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Tcl
- python: 3.9
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Lua
- python: '3.10'
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Lua
- python: '3.11'
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Lua
- python: '3.11'
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Tcl
# There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
# Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7)
- python: 3.6
modules_tool: ${{needs.setup.outputs.lmod8}}
module_syntax: Lua
lc_all: C
fail-fast: false
steps:
Expand Down Expand Up @@ -122,16 +95,11 @@ jobs:
# and are only run after the PR gets merged
GITHUB_TOKEN: ${{secrets.CI_UNIT_TESTS_GITHUB_TOKEN}}
run: |
# don't install GitHub token when testing with Lmod 7.x or non-Lmod module tools,
# and only when testing with Lua as module syntax,
# to avoid hitting GitHub rate limit;
# only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9, to avoid hitting GitHub rate limit;
# tests that require a GitHub token are skipped automatically when no GitHub token is available
if [[ ! "${{matrix.modules_tool}}" =~ 'Lmod-7' ]] && [[ ! "${{matrix.modules_tool}}" =~ 'modules-' ]] && [[ "${{matrix.module_syntax}}" == 'Lua' ]]; then
if [[ "${{matrix.modules_tool}}" =~ 'Lmod-8' ]] && [[ "${{matrix.python}}" =~ 3.[69] ]]; then
if [ ! -z $GITHUB_TOKEN ]; then
if [ "x${{matrix.python}}" == 'x2.6' ];
then SET_KEYRING="keyring.set_keyring(keyring.backends.file.PlaintextKeyring())";
else SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())";
fi;
SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())";
python -c "import keyring; $SET_KEYRING; keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')";
fi
echo "GitHub token installed!"
Expand Down Expand Up @@ -169,8 +137,6 @@ jobs:
- name: run test suite
env:
EB_VERBOSE: 1
EASYBUILD_MODULE_SYNTAX: ${{matrix.module_syntax}}
TEST_EASYBUILD_MODULE_SYNTAX: ${{matrix.module_syntax}}
LC_ALL: ${{matrix.lc_all}}
run: |
# run tests *outside* of checked out easybuild-framework directory,
Expand All @@ -186,28 +152,37 @@ jobs:
export PYTHONPATH=$PREFIX/lib/python${{matrix.python}}/site-packages:$PYTHONPATH
eb --version
# tell EasyBuild which modules tool is available
if [[ ${{matrix.modules_tool}} =~ ^modules-tcl- ]]; then
export EASYBUILD_MODULES_TOOL=EnvironmentModulesTcl
elif [[ ${{matrix.modules_tool}} =~ ^modules-3 ]]; then
export EASYBUILD_MODULES_TOOL=EnvironmentModulesC
elif [[ ${{matrix.modules_tool}} =~ ^modules-4 ]]; then
if [[ ${{matrix.modules_tool}} =~ ^modules-4 ]]; then
export EASYBUILD_MODULES_TOOL=EnvironmentModules
else
export EASYBUILD_MODULES_TOOL=Lmod
fi
export TEST_EASYBUILD_MODULES_TOOL=$EASYBUILD_MODULES_TOOL
eb --show-config
# gather some useful info on test system
eb --show-system-info
# check GitHub configuration
eb --check-github --github-user=easybuild_test
# create file owned by root but writable by anyone (used by test_copy_file)
sudo touch /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt
sudo chmod o+w /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt
# run test suite
python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
# try and make sure output of running tests is clean (no printed messages/warnings)
IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.[56]|from cryptography.* import |CryptographyDeprecationWarning: Python 2|Blowfish|GC3Pie not available, skipping test"
# '|| true' is needed to avoid that Travis stops the job on non-zero exit of grep (i.e. when there are no matches)
PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite" && echo "${PRINTED_MSG}" && exit 1)
export TEST_EASYBUILD_MODULES_TOOL=${EASYBUILD_MODULES_TOOL}

# Run tests with LUA and Tcl module syntax (where supported)
for module_syntax in Lua Tcl; do
# Only Lmod supports Lua
if [[ "${module_syntax}" == "Lua" ]] && [[ "${EASYBUILD_MODULES_TOOL}" != "Lmod" ]]; then
echo "Not testing with '${module_syntax}' as module syntax with '${EASYBUILD_MODULES_TOOL}' as modules tool"
continue
fi
printf '\n\n=====================> Using $module_syntax module syntax <=====================\n\n'
export EASYBUILD_MODULE_SYNTAX="${module_syntax}"
export TEST_EASYBUILD_MODULE_SYNTAX="${EASYBUILD_MODULE_SYNTAX}"

eb --show-config
# gather some useful info on test system
eb --show-system-info
# check GitHub configuration
eb --check-github --github-user=easybuild_test
# create file owned by root but writable by anyone (used by test_copy_file)
sudo touch /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt
sudo chmod o+w /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt
# run test suite
python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
# try and make sure output of running tests is clean (no printed messages/warnings)
IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.[56]|from cryptography.* import |CryptographyDeprecationWarning: Python 2|Blowfish|GC3Pie not available, skipping test"
# '|| true' is needed to avoid that GitHub Actions stops the job on non-zero exit of grep (i.e. when there are no matches)
PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite" && echo "${PRINTED_MSG}" && exit 1)
done
75 changes: 75 additions & 0 deletions RELEASE_NOTES
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,81 @@ For more detailed information, please see the git log.
These release notes can also be consulted at https://easybuild.readthedocs.io/en/latest/Release_notes.html.


v4.9.0 (30 December 2023)
-------------------------

feature release

- various enhancements, including:
- allow tweaking of easyconfigs from different toolchains (#3669)
- add support for `--list-software --output-format=json` (#4152)
- add `--module-cache-suffix` configuration setting to allow multiple (Lmod) caches (#4403)
- various bug fixes, including:
- deduplicate warnings & errors found in logs and add initial newline + tab in output (#4361)
- fix support for Environment Modules as modules tool to pass unit tests with v4.2+ (#4369)
- adapt module function check for Environment Modules v4+ (#4371)
- only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9 (#4375)
- use `-qopenmp` instead of `-fiopenmp` for OpenMP in Intel compilers (#4377)
- fix `LIBBLAS_MT` for FlexiBLAS, ensure `-lpthread` is included (#4379)
- relax major version match regex in `find_related_easyconfigs` using for `--review-pr` (#4385)
- eliminate duplicate multideps from generated module files (#4386)
- resolve templated values in extension names in `_make_extension_list` (#4392)
- use source toolchain version when passing only `--try-toolchain` (#4395)
- fix writing spider cache for Lmod >= 8.7.12 (#4402)
- fix `--inject-checksums` when extension specifies patch file in tuple format (#4405)
- fix `LooseVersion` when running with Python 2.7 (#4408)
- use more recent easyblocks PR in `test_github_merge_pr` (#4414)
- other changes:
- extend test that checks build environment to recent `foss/2023a` toolchain (#4391)


v4.8.2 (29 October 2023)
------------------------

update/bugfix release

- various enhancements, including:
- add support for `%(sysroot)s` template value (#4359)
- add `dependency_names` method to `EasyConfig` class to get set of names of (direct) dependencies (#4360)
- various bug fixes, including:
- add CI workflow to run unit tests with Python 2 (again) (#4333)
- fix typo in help message for `--silence-hook-trigger` (#4343)
- include major version (`*majver`) templates in auto-generated documentation (#4347)
- reset `tempfile.tempdir` to `None` to avoid that tmpdir path gets progressively deeper with each easystack item (#4350)
- fix `findPythonDeps.py` script when called with an (absolute or relative) path to an easyconfig instead of a filename (#4365)
- fix broken test for `reasons_for_closing`, which fails because commit status of easyconfigs PR is no longer available (#4366)
- other changes:
- reduce number of CI jobs by testing for Lua and Tcl module syntax in a single CI job (#4192)


v4.8.1 (11 September 2023)
--------------------------

update/bugfix release

- various enhancements, including:
- add end-to-end test for running EasyBuild in different Linux distros using containers (#3968)
- suggest default title in `--review-pr` (#4287)
- add `build_and_install_loop` hooks to run before and after the install loop for individual easyconfigs (#4304)
- implement support for `cancel_hook` and `fail_hook` (#4315, #4325)
- add postiter hook to the list of steps so the corresponding hook can be used (#4316)
- add `run_shell_cmd` hook (#4323)
- add `build_info_msg` easyconfig parameter to print message during installation of an easyconfig (#4324)
- add `--silence-hook-trigger` configuration option to supress printing of debug message every time a hook is triggered (#4329)
- add support for using fine grained Github tokens (#4332)
- add definitions for ifbf and iofbf toolchain (#4337)
- add support for submodule filtering and specifying extra Git configuration in `git_config` (#4338, #4339)
- various bug fixes, including:
- improve error when checksum dict has no entry for a file (#4150)
- avoid error being logged when `checksums.json` is not found (#4261)
- don't fail in `mkdir` if path gets created while processing it (#4300, #4328)
- ignore request for external module (meta)data when no modules tool is active (#4308)
- use sys.executable to obtain path to `python` command in tests, rather than assuming that `python` command is available in `$PATH` (#4309)
- fix `test_add_and_remove_module_path` by replacing string comparison of paths by checking whether they point to the same path (since symlinks may cause trouble) (#4312)
- enhance `Toolchain.get_flag` to handle lists (#4319)
- only add extensions in module file if there are extensions (#4331)


v4.8.0 (7 July 2023)
--------------------

Expand Down
2 changes: 1 addition & 1 deletion easybuild/base/fancylogger.py
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ def makeRecord(self, name, level, pathname, lineno, msg, args, excinfo, func=Non
overwrite make record to use a fancy record (with more options)
"""
logrecordcls = logging.LogRecord
if hasattr(self, 'fancyrecord') and self.fancyrecord:
if getattr(self, 'fancyrecord', None):
logrecordcls = FancyLogRecord
try:
new_msg = str(msg)
Expand Down
Loading