Skip to content

Commit 527c9f0

Browse files
Merge pull request #4169 from easybuilders/4.7.x
release EasyBuild v4.7.0
2 parents 0bb5724 + 088c7e3 commit 527c9f0

File tree

339 files changed

+4996
-1875
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

339 files changed

+4996
-1875
lines changed

.github/workflows/bootstrap_script.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
22
name: test EasyBuild bootstrap script
33
on: [push, pull_request]
4+
5+
concurrency:
6+
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}}
7+
cancel-in-progress: true
8+
49
jobs:
510
setup:
611
runs-on: ubuntu-20.04
@@ -107,7 +112,7 @@ jobs:
107112
EB_BOOTSTRAP_VERSION=$(grep '^EB_BOOTSTRAP_VERSION' easybuild/scripts/bootstrap_eb.py | sed 's/[^0-9.]//g')
108113
EB_BOOTSTRAP_SHA256SUM=$(sha256sum easybuild/scripts/bootstrap_eb.py | cut -f1 -d' ')
109114
EB_BOOTSTRAP_FOUND="$EB_BOOTSTRAP_VERSION $EB_BOOTSTRAP_SHA256SUM"
110-
EB_BOOTSTRAP_EXPECTED="20210715.01 0ffdc17ed7eacf78369c9cd6743728f36e61bb8bf5c1bdc1e23cf2040b1ce301"
115+
EB_BOOTSTRAP_EXPECTED="20210715.01 935979de3a4c30b24c3617ff7cd7c40cbd4d815cee5be0c99810cc21f21182f1"
111116
test "$EB_BOOTSTRAP_FOUND" = "$EB_BOOTSTRAP_EXPECTED" || (echo "Version check on bootstrap script failed $EB_BOOTSTRAP_FOUND" && exit 1)
112117
113118
# test bootstrap script

.github/workflows/container_tests.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
22
name: Tests for container support
33
on: [push, pull_request]
4+
5+
concurrency:
6+
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}}
7+
cancel-in-progress: true
8+
49
jobs:
510
build:
611
# stick to Ubuntu 18.04, where we can still easily install yum via 'apt install'
@@ -52,8 +57,8 @@ jobs:
5257
sudo apt install alien
5358
alien --version
5459
# determine latest version of Singularity available in EPEL, and download RPM
55-
singularity_rpm=$(curl -sL https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/s/ | grep singularity | sed 's/.*singularity/singularity/g' | sed 's/rpm.*/rpm/g')
56-
curl -OL https://dl.fedoraproject.org/pub/epel/8/Everything/x86_64/Packages/s/${singularity_rpm}
60+
singularity_rpm=$(curl -sL https://dl.fedoraproject.org/pub/archive/epel/8.5/Everything/x86_64/Packages/s/ | grep singularity | sed 's/.*singularity/singularity/g' | sed 's/rpm.*/rpm/g')
61+
curl -OL https://dl.fedoraproject.org/pub/archive/epel/8.5/Everything/x86_64/Packages/s/${singularity_rpm}
5762
# convert Singularity RPM to Debian package, and install it
5863
sudo alien -d ${singularity_rpm}
5964
sudo apt install ./singularity*.deb

.github/workflows/eb_command.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
22
name: Tests for the 'eb' command
33
on: [push, pull_request]
4+
5+
concurrency:
6+
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}}
7+
cancel-in-progress: true
8+
49
jobs:
510
test-eb:
611
runs-on: ubuntu-20.04
712
strategy:
813
matrix:
9-
python: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, '3.10']
14+
python: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, '3.10', '3.11']
1015
fail-fast: false
1116
steps:
1217
- uses: actions/checkout@v3

.github/workflows/linting.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
name: Static Analysis
22
on: [push, pull_request]
3+
4+
concurrency:
5+
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}}
6+
cancel-in-progress: true
7+
38
jobs:
49
python-linting:
510
runs-on: ubuntu-20.04
611
strategy:
712
matrix:
8-
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, '3.10']
13+
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, '3.10', '3.11']
914

1015
steps:
1116
- uses: actions/checkout@v3

.github/workflows/unit_tests.yml

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
22
name: EasyBuild framework unit tests
33
on: [push, pull_request]
4+
5+
concurrency:
6+
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}}
7+
cancel-in-progress: true
8+
49
jobs:
510
setup:
611
runs-on: ubuntu-20.04
@@ -41,15 +46,9 @@ jobs:
4146
- python: 3.5
4247
modules_tool: ${{needs.setup.outputs.lmod8}}
4348
module_syntax: Lua
44-
- python: 3.5
45-
modules_tool: ${{needs.setup.outputs.lmod8}}
46-
module_syntax: Tcl
4749
- python: 3.7
4850
modules_tool: ${{needs.setup.outputs.lmod8}}
4951
module_syntax: Lua
50-
- python: 3.7
51-
modules_tool: ${{needs.setup.outputs.lmod8}}
52-
module_syntax: Tcl
5352
- python: 3.8
5453
modules_tool: ${{needs.setup.outputs.lmod8}}
5554
module_syntax: Lua
@@ -59,13 +58,13 @@ jobs:
5958
- python: 3.9
6059
modules_tool: ${{needs.setup.outputs.lmod8}}
6160
module_syntax: Lua
62-
- python: 3.9
63-
modules_tool: ${{needs.setup.outputs.lmod8}}
64-
module_syntax: Tcl
6561
- python: '3.10'
6662
modules_tool: ${{needs.setup.outputs.lmod8}}
6763
module_syntax: Lua
68-
- python: '3.10'
64+
- python: '3.11'
65+
modules_tool: ${{needs.setup.outputs.lmod8}}
66+
module_syntax: Lua
67+
- python: '3.11'
6968
modules_tool: ${{needs.setup.outputs.lmod8}}
7069
module_syntax: Tcl
7170
# There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
@@ -197,10 +196,14 @@ jobs:
197196
# create file owned by root but writable by anyone (used by test_copy_file)
198197
sudo touch /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt
199198
sudo chmod o+w /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt
199+
# silence deprecation warning when using Python 2, since it breaks a bunch of tests
200+
if [ "${{matrix.python}}" == '2.7' ]; then
201+
export TEST_EASYBUILD_SILENCE_DEPRECATION_WARNINGS=python2
202+
fi
200203
# run test suite
201204
python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
202205
# try and make sure output of running tests is clean (no printed messages/warnings)
203-
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.*default_backend|CryptographyDeprecationWarning: Python 2|from cryptography.utils import int_from_bytes|Blowfish"
206+
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.*default_backend|CryptographyDeprecationWarning: Python 2|from cryptography.utils import int_from_bytes|Blowfish|GC3Pie not available, skipping test"
204207
# '|| true' is needed to avoid that Travis stops the job on non-zero exit of grep (i.e. when there are no matches)
205208
PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
206209
test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite\n${PRINTED_MSG}" && exit 1)

README.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
.. image:: https://github.com/easybuilders/easybuild-framework/workflows/EasyBuild%20framework%20unit%20tests/badge.svg?branch=develop
2-
3-
.. image:: https://easybuilders.github.io/easybuild/images/easybuild_logo_small.png
1+
.. image:: https://github.com/easybuilders/easybuild/raw/develop/logo/png/easybuild_logo_2022_horizontal_dark_bg_transparent.png
42
:align: center
3+
:height: 400px
4+
5+
.. image:: https://github.com/easybuilders/easybuild-framework/workflows/EasyBuild%20framework%20unit%20tests/badge.svg?branch=develop
56

67
`EasyBuild <https://easybuilders.github.io/easybuild>`_ is a software build
78
and installation framework that allows you to manage (scientific) software

RELEASE_NOTES

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,47 @@ For more detailed information, please see the git log.
44
These release notes can also be consulted at https://easybuild.readthedocs.io/en/latest/Release_notes.html.
55

66

7+
v4.7.0 (January 9th 2023)
8+
-------------------------
9+
10+
feature release
11+
12+
- print deprecation warning with running EasyBuild with Python 2 (#4136)
13+
- various enhancements, including:
14+
- add support for checksums specified in external `checksums.json` file (#3749)
15+
- vendor distutils.version.LooseVersion as easybuild.tools.LooseVersion (since distutils is deprecated in Python 3.10) (#3794, #4156)
16+
- take into account custom configuration options specified in easystack file (#4057)
17+
- add support for using --output-format=md (MarkDown) (#4117, #4155)
18+
- add support for --filter-rpath-sanity-libs to skip RPATH sanity check for designated libraries (#4119)
19+
- add sanity_check_load_module method to EasyBlock to provide control over when module is loaded during sanity check step (#4125)
20+
- add eb_bash_completion_local.bash script to setup.py (#4127)
21+
- check whether nvidia-smi/rocm-smi command is available before trying to run it in `get_gpu_info` (#4131)
22+
- add gfbf as subtoolchain of foss (#4143)
23+
- add support for postinstallmsgs (#4145)
24+
- make iimkl toolchain aware of intel-compilers (#4146)
25+
- add definition for nvofbf toolchain (#4157, #4163)
26+
- various bug fixes, including:
27+
- also use EasyConfig instances cache in process_easyconfig when build_specs is empty dict (#4107)
28+
- fix build options that should have empty list as default value (#4108)
29+
- catch easyconfig parsing failure so we can generate and post a test report (#4109)
30+
- add explicit return when no checksums match those specified in a tuple (#4112)
31+
- tweak findPythonDeps.py script to use canonical package names (#4118)
32+
- add `-fdefault-double-8` to `r8` toolchain compiler option for GCC (to be consistent with Intel) (#4121)
33+
- always start with empty list for banned/requires libraries to avoid that corresponding build option is updated in-place (#4137)
34+
- fix container tests by using EPEL archive URL for downloading Singularity RPM (#4138)
35+
- use -march=x86-64 -mtune=generic instead of -xSSE2 when using Intel oneAPI compilers (#4147)
36+
- partially skip test_det_copy_ec_specs if no GitHub token is available (#4149)
37+
- other changes:
38+
- drop support for easystack files using 'software' top-level key (#4057)
39+
- also run unit tests with Python 3.11 + add Python 3.11 to classifiers in setup.py (#4092, #4141)
40+
- use new EasyBuild logo in README (#4123)
41+
- automatically cancel Github Action workflow runs for outdated commits (#4132)
42+
- auto-enable use of oneAPI C/C++ compilers for intel-compilers >= 2022.2.0 (#4135)
43+
- trim CI test configurations to avoid hitting GitHub rate limits (#4148)
44+
- various tweaks to docstrings and help messages to fix problems with auto-generated documentation in MarkDown format (#4129, #4130, #4154, #4160, #4162, #4168)
45+
- update copyright lines for 2023 (#4161)
46+
47+
748
v4.6.2 (October 21st 2022)
849
--------------------------
950

contrib/hooks/add_delete_configopt.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# Author: Åke Sandgren, HPC2N
44

55
# We need to be able to distinguish between versions of OpenMPI
6-
from distutils.version import LooseVersion
6+
from easybuild.tools import LooseVersion
77

88

99
def pre_configure_hook(self, *args, **kwargs):

contrib/hooks/hpc2n_hooks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
import os
66

7-
from distutils.version import LooseVersion
87
from easybuild.framework.easyconfig.format.format import DEPENDENCY_PARAMETERS
8+
from easybuild.tools import LooseVersion
99
from easybuild.tools.filetools import apply_regex_substitutions
1010
from easybuild.tools.build_log import EasyBuildError
1111
from easybuild.tools.modules import get_software_root

easybuild/__init__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##
2-
# Copyright 2011-2022 Ghent University
2+
# Copyright 2011-2023 Ghent University
33
#
44
# This file is part of EasyBuild,
55
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
@@ -25,7 +25,9 @@
2525
"""
2626
Declares EasyBuild namespace, in an extendable way.
2727
28-
:author: Jens Timmerman (Ghent University)
29-
:author: Kenneth Hoste (Ghent University)
28+
Authors:
29+
30+
* Jens Timmerman (Ghent University)
31+
* Kenneth Hoste (Ghent University)
3032
"""
3133
__path__ = __import__('pkgutil').extend_path(__path__, __name__)

0 commit comments

Comments
 (0)