Skip to content

Commit 96371bd

Browse files
committed
fix conflict
2 parents ea4598b + 8569344 commit 96371bd

File tree

332 files changed

+6658
-3025
lines changed

Some content is hidden

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

332 files changed

+6658
-3025
lines changed

.github/workflows/container_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373
python setup.py sdist
7474
ls dist
7575
export PREFIX=/tmp/$USER/$GITHUB_SHA
76-
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
76+
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
7777
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz
7878
7979
- name: run test

.github/workflows/container_tests_apptainer.yml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,18 @@ jobs:
2929
- name: install OS & Python packages
3030
run: |
3131
# for building CentOS 7 container images
32-
sudo apt-get install rpm
33-
sudo apt-get install dnf
32+
APT_PKGS="rpm dnf"
3433
# for modules tool
35-
sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev
34+
APT_PKGS+=" lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev"
35+
36+
# Avoid apt-get update, as we don't really need it,
37+
# and it does more harm than good (it's fairly expensive, and it results in flaky test runs)
38+
if ! sudo apt-get install $APT_PKGS; then
39+
# Try to update cache, then try again to resolve 404s of old packages
40+
sudo apt-get update -yqq || true
41+
sudo apt-get install $APT_PKGS
42+
fi
43+
3644
# fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
3745
# needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
3846
if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
@@ -65,7 +73,7 @@ jobs:
6573
python setup.py sdist
6674
ls dist
6775
export PREFIX=/tmp/$USER/$GITHUB_SHA
68-
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
76+
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
6977
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz
7078
7179
- name: run test

.github/workflows/eb_command.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
runs-on: ubuntu-20.04
1515
strategy:
1616
matrix:
17-
python: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11']
17+
python: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12']
1818
fail-fast: false
1919
steps:
2020
- uses: actions/checkout@v3
@@ -32,6 +32,10 @@ jobs:
3232
# update to latest pip, check version
3333
pip install --upgrade pip
3434
pip --version
35+
if ! python -c "import distutils" 2> /dev/null; then
36+
# we need setuptools for distutils in Python 3.12+, needed for python setup.py sdist
37+
pip install --upgrade setuptools
38+
fi
3539
3640
# for modules tool
3741
APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev"
@@ -68,7 +72,7 @@ jobs:
6872
python setup.py sdist
6973
ls dist
7074
export PREFIX=/tmp/$USER/$GITHUB_SHA
71-
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
75+
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
7276
7377
- name: run tests for 'eb' command
7478
env:

.github/workflows/end2end.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ jobs:
1717
fail-fast: false
1818
container:
1919
image: ghcr.io/easybuilders/${{ matrix.container }}-amd64
20+
env: {ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true} # Allow using Node16 actions
2021
steps:
2122
- name: Check out the repo
2223
uses: actions/checkout@v3

.github/workflows/linting.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@ jobs:
1313
runs-on: ubuntu-20.04
1414
strategy:
1515
matrix:
16-
python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11']
17-
16+
python-version: [3.6, 3.7, 3.8, 3.9, '3.10', '3.11', '3.12']
1817
steps:
1918
- uses: actions/checkout@v3
2019

.github/workflows/unit_tests.yml

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ jobs:
1313
setup:
1414
runs-on: ubuntu-20.04
1515
outputs:
16-
lmod7: Lmod-7.8.22
1716
lmod8: Lmod-8.7.6
18-
modulesTcl: modules-tcl-1.147
19-
modules3: modules-3.2.10
20-
modules4: modules-4.1.4
17+
modules4: modules-4.5.3
18+
modules5: modules-5.3.1
2119
steps:
2220
- run: "true"
2321
build:
@@ -29,11 +27,9 @@ jobs:
2927
modules_tool:
3028
# use variables defined by 'setup' job above, see also
3129
# https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context
32-
- ${{needs.setup.outputs.lmod7}}
3330
- ${{needs.setup.outputs.lmod8}}
34-
- ${{needs.setup.outputs.modulesTcl}}
35-
- ${{needs.setup.outputs.modules3}}
3631
- ${{needs.setup.outputs.modules4}}
32+
- ${{needs.setup.outputs.modules5}}
3733
lc_all: [""]
3834
include:
3935
# Test different Python 3 versions with Lmod 8.x (with both Lua and Tcl module syntax)
@@ -47,6 +43,8 @@ jobs:
4743
modules_tool: ${{needs.setup.outputs.lmod8}}
4844
- python: '3.11'
4945
modules_tool: ${{needs.setup.outputs.lmod8}}
46+
- python: '3.12'
47+
modules_tool: ${{needs.setup.outputs.lmod8}}
5048
# There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
5149
# Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7)
5250
- python: 3.6
@@ -89,6 +87,10 @@ jobs:
8987
pip install --upgrade pip
9088
pip --version
9189
pip install -r requirements.txt
90+
if ! python -c "import distutils" 2> /dev/null; then
91+
# we need setuptools for distutils in Python 3.12+, needed for python setup.py sdist
92+
pip install --upgrade setuptools
93+
fi
9294
# git config is required to make actual git commits (cfr. tests for GitRepository)
9395
git config --global user.name "Travis CI"
9496
git config --global user.email "[email protected]"
@@ -101,12 +103,12 @@ jobs:
101103
# and are only run after the PR gets merged
102104
GITHUB_TOKEN: ${{secrets.CI_UNIT_TESTS_GITHUB_TOKEN}}
103105
run: |
104-
# only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9, to avoid hitting GitHub rate limit;
106+
# only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9, to avoid hitting GitHub rate limit
105107
# tests that require a GitHub token are skipped automatically when no GitHub token is available
106108
if [[ "${{matrix.modules_tool}}" =~ 'Lmod-8' ]] && [[ "${{matrix.python}}" =~ 3.[69] ]]; then
107109
if [ ! -z $GITHUB_TOKEN ]; then
108-
SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())";
109-
python -c "import keyring; $SET_KEYRING; keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')";
110+
SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())"
111+
python -c "import keyring; $SET_KEYRING; keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')"
110112
fi
111113
echo "GitHub token installed!"
112114
else
@@ -138,7 +140,7 @@ jobs:
138140
python setup.py sdist
139141
ls dist
140142
export PREFIX=/tmp/$USER/$GITHUB_SHA
141-
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
143+
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
142144
143145
- name: run test suite
144146
env:
@@ -158,11 +160,7 @@ jobs:
158160
export PYTHONPATH=$PREFIX/lib/python${{matrix.python}}/site-packages:$PYTHONPATH
159161
eb --version
160162
# tell EasyBuild which modules tool is available
161-
if [[ ${{matrix.modules_tool}} =~ ^modules-tcl- ]]; then
162-
export EASYBUILD_MODULES_TOOL=EnvironmentModulesTcl
163-
elif [[ ${{matrix.modules_tool}} =~ ^modules-3 ]]; then
164-
export EASYBUILD_MODULES_TOOL=EnvironmentModulesC
165-
elif [[ ${{matrix.modules_tool}} =~ ^modules-4 ]]; then
163+
if [[ ${{matrix.modules_tool}} =~ ^modules- ]]; then
166164
export EASYBUILD_MODULES_TOOL=EnvironmentModules
167165
else
168166
export EASYBUILD_MODULES_TOOL=Lmod
@@ -176,7 +174,7 @@ jobs:
176174
echo "Not testing with '${module_syntax}' as module syntax with '${EASYBUILD_MODULES_TOOL}' as modules tool"
177175
continue
178176
fi
179-
printf '\n\n=====================> Using $module_syntax module syntax <=====================\n\n'
177+
printf "\n\n=====================> Using $module_syntax module syntax <=====================\n\n"
180178
export EASYBUILD_MODULE_SYNTAX="${module_syntax}"
181179
export TEST_EASYBUILD_MODULE_SYNTAX="${EASYBUILD_MODULE_SYNTAX}"
182180
@@ -191,7 +189,17 @@ jobs:
191189
# run test suite
192190
python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
193191
# try and make sure output of running tests is clean (no printed messages/warnings)
194-
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"
192+
IGNORE_PATTERNS="no GitHub token available"
193+
IGNORE_PATTERNS+="|skipping SvnRepository test"
194+
IGNORE_PATTERNS+="|requires Lmod as modules tool"
195+
IGNORE_PATTERNS+="|stty: 'standard input': Inappropriate ioctl for device"
196+
IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 3.[56]"
197+
IGNORE_PATTERNS+="|from cryptography.* import "
198+
IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 2"
199+
IGNORE_PATTERNS+="|Blowfish"
200+
IGNORE_PATTERNS+="|GC3Pie not available, skipping test"
201+
IGNORE_PATTERNS+="|CryptographyDeprecationWarning: TripleDES has been moved"
202+
IGNORE_PATTERNS+="|algorithms.TripleDES"
195203
# '|| true' is needed to avoid that GitHub Actions stops the job on non-zero exit of grep (i.e. when there are no matches)
196204
PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
197205
test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite" && echo "${PRINTED_MSG}" && exit 1)

RELEASE_NOTES

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,63 @@ 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.9.2 (12 June 2024)
8+
---------------------
9+
10+
update/bugfix release
11+
12+
- various enhancements, including:
13+
- improve behavior when using extension which has 'nosource' enabled (#4506)
14+
- enhance 'get_software_libdir' to return 'lib' or 'lib64' if only one of them contains library files (#4513)
15+
- implement versions checks to avoid mixing major versions across the EasyBuild components (#4520, #4553)
16+
- add support for easyconfig parameter 'module_only' (#4537)
17+
- various bug fixes, including:
18+
- fix typo in patch_step logging (#4505)
19+
- consider both 'easybuild-framework*.tar.gz' and 'easybuild_framework*.tar.gz' in CI workflows (#4507)
20+
- don't delete existing environment module files when using '--dump-env-script' with '--force' or '--rebuild' (#4512)
21+
- fix resolved (template) values in case of failure (#4532)
22+
- also consider '$CRAY_PE_LIBSCI_PREFIX_DIR' to determine installation prefix for cray-libsci (#4551)
23+
- symlink downloaded repo at specified commit when using '--from-commit' so easyconfigs for dependencies are found (#4552)
24+
- other changes:
25+
- code cleanup in 'easyblock.py' (#4519)
26+
- stop running unit tests on Python 3.5 (#4530)
27+
28+
29+
v4.9.1 (5 April 2024)
30+
---------------------
31+
32+
update/bugfix release
33+
34+
- various enhancements, including:
35+
- make `is_rpath_wrapper` faster by only checking file contents if file is not located in subdirectory of RPATH wrapper subdirectory (#4406)
36+
- add terse support to `--missing-modules` (#4407)
37+
- adapt version pattern for EnvironmentModules to allow using development version (#4416)
38+
- use `--all` option with EnvironmentModules v4.6+ to get available hidden modules (#4417)
39+
- add support for appending to path environment variables via `modextrapaths_append` + add corresponding `allow_append_abs_path` (#4436)
40+
- improve output produced by `--check-github` (#4437)
41+
- add script for updating local git repos with `develop` branch (#4438)
42+
- show error when multiple PR options are passed (#4440)
43+
- improve `findPythonDeps` script to recognize non-canonical package names (#4445)
44+
- add support for `--from-commit` and `--include-easyblocks-from-commit` (#4468)
45+
- improve logging & handling of (empty) `--optarch` values (#4481)
46+
- add `--short` option to `findUpdatedEcs` script (#4488)
47+
- add generic GCC and Clang compiler flags for RISC-V (#4489)
48+
- various bug fixes, including:
49+
- clean up log file of `EasyBlock` instance in `check_sha256_checksums` (#4452)
50+
- fix description of `backup-modules` configuration option (#4456)
51+
- replace `'` with `"` for `printf` in CI workflow for running test suite to have bash replace a variable (#4461)
52+
- use `cp -dR` instead of `cp -a` for shell script "extraction" (#4465)
53+
- fix link to documentation in `close_pr` message (#4466)
54+
- fix `test_github_merge_pr` by using more recent easyconfigs PR (#4470)
55+
- add workaround for 404 error when installing packages in CI workflow for testing Apptainer integration (#4472)
56+
- other changes:
57+
- clean up & speed up environment checks (#4409)
58+
- use more performant and concise dict construction by using dict comprehensions (#4410)
59+
- remove superflous string formatting (#4411)
60+
- clean up uses of `getattr` and `hasattr` (#4412)
61+
- update copyright lines to 2024 (#4494)
62+
63+
764
v4.9.0 (30 December 2023)
865
-------------------------
966

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-2023 Ghent University
2+
# Copyright 2011-2024 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)