Skip to content

Commit 5c3a069

Browse files
committed
Merge branch 'develop' into review_pr_labels
2 parents 83662ac + e9e2262 commit 5c3a069

File tree

282 files changed

+1619
-612
lines changed

Some content is hidden

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

282 files changed

+1619
-612
lines changed

.github/workflows/unit_tests.yml

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ jobs:
99
python: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
1010
modules_tool: [Lmod-7.8.22, Lmod-8.2.9, modules-tcl-1.147, modules-3.2.10, modules-4.1.4]
1111
module_syntax: [Lua, Tcl]
12+
lc_all: [""]
1213
# exclude some configuration for non-Lmod modules tool:
1314
# - don't test with Lua module syntax (only supported in Lmod)
1415
# - exclude Python 3.x versions other than 3.6, to limit test configurations
@@ -51,6 +52,13 @@ jobs:
5152
python: 3.8
5253
- modules_tool: Lmod-7.8.22
5354
python: 3.9
55+
# There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
56+
# Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7)
57+
include:
58+
- python: 3.6
59+
modules_tool: Lmod-8.2.9
60+
module_syntax: Lua
61+
lc_all: C
5462
fail-fast: false
5563
steps:
5664
- uses: actions/checkout@v2
@@ -69,7 +77,10 @@ jobs:
6977
# for modules tool
7078
sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev
7179
# fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
72-
sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
80+
# needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
81+
if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
82+
sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
83+
fi
7384
# for GitPython, python-hglib
7485
sudo apt-get install git mercurial
7586
# dep for GC3Pie
@@ -129,7 +140,11 @@ jobs:
129140
EB_VERBOSE: 1
130141
EASYBUILD_MODULE_SYNTAX: ${{matrix.module_syntax}}
131142
TEST_EASYBUILD_MODULE_SYNTAX: ${{matrix.module_syntax}}
143+
LC_ALL: ${{matrix.lc_all}}
132144
run: |
145+
# run tests *outside* of checked out easybuild-framework directory,
146+
# to ensure we're testing installed version (see previous step)
147+
cd $HOME
133148
# initialize environment for modules tool
134149
if [ -f $HOME/moduleshome ]; then export MODULESHOME=$(cat $HOME/moduleshome); fi
135150
source $(cat $HOME/mod_init); type module
@@ -161,15 +176,12 @@ jobs:
161176
# run test suite
162177
python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
163178
# try and make sure output of running tests is clean (no printed messages/warnings)
164-
IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.5|from cryptography.*default_backend"
179+
IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.5|from cryptography.*default_backend|CryptographyDeprecationWarning: Python 2"
165180
# '|| true' is needed to avoid that Travis stops the job on non-zero exit of grep (i.e. when there are no matches)
166181
PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
167182
test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite\n${PRINTED_MSG}" && exit 1)
168183
169184
- name: test bootstrap script
170-
# skip testing of bootstrap script with Python 3.9,
171-
# until an EasyBuild release that is compatible with Python 3.9 is available
172-
if: ${{ matrix.python != 3.9 }}
173185
run: |
174186
# (re)initialize environment for modules tool
175187
if [ -f $HOME/moduleshome ]; then export MODULESHOME=$(cat $HOME/moduleshome); fi
@@ -189,7 +201,7 @@ jobs:
189201
EB_BOOTSTRAP_VERSION=$(grep '^EB_BOOTSTRAP_VERSION' easybuild/scripts/bootstrap_eb.py | sed 's/[^0-9.]//g')
190202
EB_BOOTSTRAP_SHA256SUM=$(sha256sum easybuild/scripts/bootstrap_eb.py | cut -f1 -d' ')
191203
EB_BOOTSTRAP_FOUND="$EB_BOOTSTRAP_VERSION $EB_BOOTSTRAP_SHA256SUM"
192-
EB_BOOTSTRAP_EXPECTED="20200820.01 d490d229a18bd5eaa717bb8d5684d754729143d5e995e35a40c84d03ffb1de50"
204+
EB_BOOTSTRAP_EXPECTED="20210106.01 c2d93de0dd91123eb4f51cfc16d1f5efb80f1d238b3d6cd100994086887a1ae0"
193205
test "$EB_BOOTSTRAP_FOUND" = "$EB_BOOTSTRAP_EXPECTED" || (echo "Version check on bootstrap script failed $EB_BOOTSTRAP_FOUND" && exit 1)
194206
195207
# test bootstrap script

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ script:
8989
- EB_BOOTSTRAP_VERSION=$(grep '^EB_BOOTSTRAP_VERSION' $TRAVIS_BUILD_DIR/easybuild/scripts/bootstrap_eb.py | sed 's/[^0-9.]//g')
9090
- EB_BOOTSTRAP_SHA256SUM=$(sha256sum $TRAVIS_BUILD_DIR/easybuild/scripts/bootstrap_eb.py | cut -f1 -d' ')
9191
- EB_BOOTSTRAP_FOUND="$EB_BOOTSTRAP_VERSION $EB_BOOTSTRAP_SHA256SUM"
92-
- EB_BOOTSTRAP_EXPECTED="20200820.01 d490d229a18bd5eaa717bb8d5684d754729143d5e995e35a40c84d03ffb1de50"
92+
- EB_BOOTSTRAP_EXPECTED="20210106.01 c2d93de0dd91123eb4f51cfc16d1f5efb80f1d238b3d6cd100994086887a1ae0"
9393
- test "$EB_BOOTSTRAP_FOUND" = "$EB_BOOTSTRAP_EXPECTED" || (echo "Version check on bootstrap script failed $EB_BOOTSTRAP_FOUND" && exit 1)
9494
# test bootstrap script
9595
- python $TRAVIS_BUILD_DIR/easybuild/scripts/bootstrap_eb.py /tmp/$TRAVIS_JOB_ID/eb_bootstrap

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ include optcomplete.bash
44
recursive-include etc *
55
recursive-include easybuild *py
66
recursive-include easybuild/scripts *
7-
recursive-include test *py *eb
7+
recursive-include test *py *eb *yaml
88
recursive-include test/framework/modules *
99
recursive-include test/framework/sandbox/sources *
1010
include CONTRIBUTING.md

RELEASE_NOTES

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,41 @@ For more detailed information, please see the git log.
33

44
These release notes can also be consulted at https://easybuild.readthedocs.io/en/latest/Release_notes.html.
55

6+
v4.3.2 (December 10th 2020)
7+
---------------------------
8+
9+
update/bugfix release
10+
11+
- add (experimental) support for specifying easyconfig files via an "easystack" file (#3479, #3511, #3515, #3517, #3520, #3521)
12+
- see also https://easybuild.readthedocs.io/en/latest/Easystack-files.html
13+
- add definition for new 'gobff' toolchain using BLIS and LibFLAME (#3505)
14+
- various enhancements, including:
15+
- add support for toolchain options like 'extra_cxxflags' to specify extra compiler options (#2193)
16+
- fix combination of --copy-ec and --from-pr (#3482)
17+
- enhance copy_files function: support single file target, error on empty input list, support verbose mode (#3483)
18+
- cache result of fetch_files_from_pr function (mainly to speed up framework test suite) (#3484)
19+
- add locate_files function to filetools module (#3485)
20+
- add support for %(module_name)s template value (#3497)
21+
- clarify input format for --cuda-compute-capabilities in 'eb --help' output (#3509)
22+
- add support for skiping unit tests (test step) via --skip-test-step (#3524)
23+
- various bug fixes, including:
24+
- also ignore vsc.* imports coming from from pkg_resources/__init__.py (setuptools) in fake vsc namespace (#3491)
25+
- don't pass username in github_api_get_request when no GitHub token is available (#3494)
26+
- also inject -rpath options for all entries in $LIBRARY_PATH in RPATH wrappers (#3495)
27+
- avoid TypeError being raised by list_toolchains (#3499)
28+
- check if PR is already merged in --merge-pr (#3502)
29+
- graciously handle wrong PR id in fetch_pr_data (#3503)
30+
- fix regression in apply_regex_substitutions: also accept list of paths to patch (#3507)
31+
- update installation procedure for EasyBuild in generated Singularity container recipes (#3510)
32+
- fix GitHub Actions workflow for test suite: run outside of repo checkout + also test bootstrap script with Python 3.9 (#3518)
33+
- bump cryptography from 2.9.2 to 3.2 for Python 2 in requirements.txt (#3519)
34+
- fix 'eb --help=rst' when running with Python 3 (#3525)
35+
- other changes:
36+
- exclude test configurations with Lmod 7 and Python 3, except for Python 3.6 (#3496)
37+
- significantly speed up parsing of easyconfig files by only extracting comments from an easyconfig file when they're actually needed (#3498)
38+
- don't include file/ldd/readelf commands run during RPATH sanity check in --trace output (#3508)
39+
40+
641
v4.3.1 (October 29th 2020)
742
--------------------------
843

easybuild/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
##
2-
# Copyright 2011-2020 Ghent University
2+
# Copyright 2011-2021 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),

easybuild/base/exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2015-2020 Ghent University
2+
# Copyright 2015-2021 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),

easybuild/base/fancylogger.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2011-2020 Ghent University
2+
# Copyright 2011-2021 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),
@@ -580,6 +580,8 @@ def logToFile(filename, enable=True, filehandler=None, name=None, max_bytes=MAX_
580580
'maxBytes': max_bytes,
581581
'backupCount': backup_count,
582582
}
583+
if sys.version_info[0] >= 3:
584+
handleropts['encoding'] = 'utf-8'
583585
# logging to a file is going to create the file later on, so let's try to be helpful and create the path if needed
584586
directory = os.path.dirname(filename)
585587
if not os.path.exists(directory):

easybuild/base/generaloption.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2011-2020 Ghent University
2+
# Copyright 2011-2021 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),

easybuild/base/optcomplete.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -594,9 +594,8 @@ def autocomplete(parser, arg_completer=None, opt_completer=None, subcmd_complete
594594
if isinstance(debugfn, logging.Logger):
595595
debugfn.debug(txt)
596596
else:
597-
f = open(debugfn, 'a')
598-
f.write(txt)
599-
f.close()
597+
with open(debugfn, 'a') as fh:
598+
fh.write(txt)
600599

601600
# Exit with error code (we do not let the caller continue on purpose, this
602601
# is a run for completions only.)

easybuild/base/testing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# Copyright 2014-2020 Ghent University
2+
# Copyright 2014-2021 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),

0 commit comments

Comments
 (0)