Skip to content

Commit 8b79eb8

Browse files
authored
Merge pull request #4900 from easybuilders/5.1.x
release EasyBuild v5.1.0
2 parents a42e25b + efab41e commit 8b79eb8

File tree

127 files changed

+2904
-841
lines changed

Some content is hidden

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

127 files changed

+2904
-841
lines changed

.coveragerc

Lines changed: 0 additions & 26 deletions
This file was deleted.

.github/workflows/container_tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ jobs:
7474
ls dist
7575
export PREFIX=/tmp/$USER/$GITHUB_SHA
7676
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
77-
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz
77+
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
7878
7979
- name: run test
8080
run: |
@@ -95,7 +95,7 @@ jobs:
9595
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
9696
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
9797
# see https://docs.easybuild.io/en/latest/Containers.html
98-
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/5.0.x/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
98+
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
9999
export EASYBUILD_CONTAINERPATH=$PWD
100100
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
101101
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image

.github/workflows/container_tests_apptainer.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
ls dist
6969
export PREFIX=/tmp/$USER/$GITHUB_SHA
7070
pip install --prefix $PREFIX dist/easybuild[-_]framework*tar.gz
71-
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/5.0.x.tar.gz
71+
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
7272
7373
- name: run test
7474
run: |
@@ -89,7 +89,7 @@ jobs:
8989
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
9090
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
9191
# see https://docs.easybuild.io/en/latest/Containers.html
92-
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/5.0.x/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
92+
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
9393
export EASYBUILD_CONTAINERPATH=$PWD
9494
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
9595
export EASYBUILD_CONTAINER_TYPE='apptainer'

.github/workflows/end2end.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,17 @@ jobs:
2626
run: |
2727
cd $HOME
2828
for pkg in easyblocks easyconfigs; do
29-
curl -OL https://github.com/easybuilders/easybuild-${pkg}/archive/5.0.x.tar.gz
30-
tar xfz 5.0.x.tar.gz
31-
rm -f 5.0.x.tar.gz
29+
curl -OL https://github.com/easybuilders/easybuild-${pkg}/archive/develop.tar.gz
30+
tar xfz develop.tar.gz
31+
rm -f develop.tar.gz
3232
done
3333
3434
- name: Set up environment
3535
shell: bash
3636
run: |
3737
# collect environment variables to be set in subsequent steps in script that can be sourced
3838
echo "export PATH=$PWD:$PATH" > /tmp/eb_env
39-
echo "export PYTHONPATH=$PWD:$HOME/easybuild-easyblocks-5.0.x:$HOME/easybuild-easyconfigs-5.0.x" >> /tmp/eb_env
39+
echo "export PYTHONPATH=$PWD:$HOME/easybuild-easyblocks-develop:$HOME/easybuild-easyconfigs-develop" >> /tmp/eb_env
4040
4141
- name: Run commands to check test environment
4242
shell: bash

.github/workflows/linting.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- name: set up Python
2525
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0
2626
with:
27-
python-version: ${{ matrix.python-version }}
27+
python-version: ${{ matrix.python }}
2828

2929
- name: install Python packages
3030
run: |

README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
:align: center
33
:height: 400px
44

5-
.. image:: https://github.com/easybuilders/easybuild-framework/workflows/EasyBuild%20framework%20unit%20tests/badge.svg?branch=develop
5+
.. image:: https://github.com/easybuilders/easybuild-framework/actions/workflows/unit_tests.yml/badge.svg?branch=develop
66

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

RELEASE_NOTES

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,62 @@ For more detailed information, please see the git log.
44
These release notes can also be consulted at https://docs.easybuild.io/release-notes .
55

66

7+
v5.1.0 (26 May 2025)
8+
--------------------
9+
10+
feature release
11+
12+
- various enhancements, including:
13+
- add support for data installations (#4474, #4873, #4874)
14+
- allow specifying location for RPATH wrapper scripts via `rpath_wrappers_dir` (#4596)
15+
- add a CUDA device code sanity check (#4692)
16+
- add support for check_readelf_rpath easyconfig parameter to optionally skip RPATH checks (#4768)
17+
- add support for using environment variables in value used in modextravars (#4855)
18+
- print summary after the build in trace output (#4861, #4875)
19+
- avoid leaking keys by mistake with `--upload-test-report` (#4877)
20+
- obtain PR/commit diff via GitHub API rather than downloading `*.diff` file via github.com (#4878)
21+
- support options for patch command (#4886)
22+
- replace full trace message for extension check command with simple pass/fail message (#4892)
23+
- various bug fixes, including:
24+
- also pass `rpath_include_dirs` when preparing build environment for extensions (#4596)
25+
- fix `check_checksums` when `nosource: True` is used (#4806)
26+
- fix help string of findPythonDeps.py script (#4821)
27+
- take into account `job-output-dir` option in Slurm job backend (#4842)
28+
- fix unbound variable in error case in `build_and_install_software` (#4843)
29+
- avoid failure when only some passed easyconfigs exist (#4847)
30+
- restore original value for non-list easyconfig parameter values that are considered for iterating over (#4848)
31+
- add '-' before 'DMKL_ILP64' in $CFLAGS (#4850)
32+
- enhance RPATH sanity check to skip anything whose absolute path resolves to outside the install dir (#4854)
33+
- use new `ModEnvVarType.STRICT_PATH_WITH_FILES` with `CMAKE_LIBRARY_PATH` environment variable (#4858)
34+
- fix `is_patch_for` for patch dicts (#4865)
35+
- update fake module for each extension installed (#4868, #4888, #4895)
36+
- implement exponential backoff in `download_file` (#4870, #4880)
37+
- use `develop` branch for PRs that target removed `5.0.x` branch in `fetch_files_from_pr` (#4879)
38+
- also ignore errors raised during test step when `--ignore-test-failure` is used (#4881)
39+
- fix download progress bar (#4885)
40+
- fix `--dep-graph` by using `graphviz` Python package (#4891)
41+
- fixes for test suite:
42+
- fix `test_github_preview_pr` which got broken because there's no more easyconfigs for bzip2 1.0.6 in easyconfigs repo (#4827)
43+
- fix tests after removal of 5.0.x branch (#4830)
44+
- fix missed message in trivial equal-asserts (#4831)
45+
- fix wrong variable name used for Python version in linting CI (#4839)
46+
- fix failing GitHub integration CI tests (#4841)
47+
- fix testsuite badge in README (#4845)
48+
- other changes:
49+
- go back to using `develop` branch rather than `5.0.x` branch in GitHub Actions workflows (#4820)
50+
- remove source tarball for Python 3.7.2 from test sources (#4828)
51+
- delete .coveragerc (#4833)
52+
- remove Python 2 constructs (#4834)
53+
- remove superflous assignment in `_sanity_check_step` (#4851)
54+
- replace deprecation warning about reproducible tarballs on Python older than 3.9 with a regular warning (#4852)
55+
- move `EasyBlock.expand_module_search_path` into `ModuleEnvironmentVariable.expand_paths` (#4859)
56+
57+
758
v5.0.0 (18 March 2025)
859
----------------------
960

61+
major release (includes breaking changes)
62+
1063
- remove support for Python 2.7 and 3.5 (#4229, #4270, #4306, #4473, #4477, #4476, #4478, #4524, #4607, #4756, #4810, #4811)
1164
- also run unit test suite with Python 3.12 + 3.13 (#4484, #4674)
1265
- changed defaults in EasyBuild configuration:

easybuild/base/exceptions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,4 +125,4 @@ def __init__(self, msg, *args, **kwargs):
125125

126126
getattr(logger, self.LOGGING_METHOD_NAME)(msg)
127127

128-
super(LoggedException, self).__init__(msg)
128+
super().__init__(msg)

easybuild/base/frozendict.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,13 @@ def __init__(self, *args, **kwargs):
8787
msg = "Encountered unknown keys %s (known keys: %s)" % (unknown_keys, self.KNOWN_KEYS)
8888
self.log.raiseException(msg, exception=KeyError)
8989

90-
super(FrozenDictKnownKeys, self).__init__(tmpdict)
90+
super().__init__(tmpdict)
9191

9292
# pylint: disable=arguments-differ
9393
def __getitem__(self, key, *args, **kwargs):
9494
"""Redefine __getitem__ to provide a better KeyError message."""
9595
try:
96-
return super(FrozenDictKnownKeys, self).__getitem__(key, *args, **kwargs)
96+
return super().__getitem__(key, *args, **kwargs)
9797
except KeyError as err:
9898
if key in self.KNOWN_KEYS:
9999
raise KeyError(err)

easybuild/base/generaloption.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,7 @@ def get_option_by_long_name(self, name):
864864
return None
865865

866866

867-
class GeneralOption(object):
867+
class GeneralOption:
868868
"""
869869
'Used-to-be simple' wrapper class for option parsing
870870
@@ -1745,7 +1745,7 @@ def __init__(self, go_dict=None, short_groupdescr=None, long_groupdescr=None, co
17451745
if config_files is not None:
17461746
kwargs['go_configfiles'] = config_files
17471747

1748-
super(SimpleOption, self).__init__(**kwargs)
1748+
super().__init__(**kwargs)
17491749

17501750
def main_options(self):
17511751
if self.go_dict is not None:

0 commit comments

Comments
 (0)