Skip to content

Commit ee555a8

Browse files
committed
Merge branch 'develop' into ext_sources
2 parents 8538223 + c5019c1 commit ee555a8

File tree

151 files changed

+3701
-1062
lines changed

Some content is hidden

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

151 files changed

+3701
-1062
lines changed

.coveragerc

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

.github/workflows/container_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ jobs:
9797
# see https://docs.easybuild.io/en/latest/Containers.html
9898
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
9999
export EASYBUILD_CONTAINERPATH=$PWD
100-
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
100+
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/rockylinux-8.10-amd64'
101101
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image
102102
singularity exec bzip2-1.0.8.sif command -v bzip2 | grep '/app/software/bzip2/1.0.8/bin/bzip2' || (echo "Path to bzip2 '$which_bzip2' is not correct" && exit 1)
103103
singularity exec bzip2-1.0.8.sif bzip2 --help

.github/workflows/container_tests_apptainer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ jobs:
9191
# see https://docs.easybuild.io/en/latest/Containers.html
9292
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
9393
export EASYBUILD_CONTAINERPATH=$PWD
94-
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
94+
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/rockylinux-8.10-amd64'
9595
export EASYBUILD_CONTAINER_TYPE='apptainer'
9696
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image
9797
apptainer exec bzip2-1.0.8.sif command -v bzip2 | grep '/app/software/bzip2/1.0.8/bin/bzip2' || (echo "Path to bzip2 '$which_bzip2' is not correct" && exit 1)

.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: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,98 @@ 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.1 (6 July 2025)
8+
--------------------
9+
10+
update/bugfix release
11+
12+
- enhancements:
13+
- don't allow using `--pr-commit-msg` when only adding new files with `--new-pr` (unless `--force` is used) (#4498)
14+
- update `install-EasyBuild-develop.sh` script to allow installation without forking (#4899)
15+
- add blue, cyan, purple as known colors that can be used in colorize function (#4907)
16+
- trigger `post_run_shell_cmd_hook` before raising error if shell command failed + pass down full `RunShellCmdResult` instance (#4908)
17+
- also pass value of `fail_on_error` and `hidden` options of `run_shell_cmd` call down to pre/post `run_shell_cmd` hook (#4911)
18+
- add configuration option to ignore unversioned (0.0.0) Python packages (#4912)
19+
- add `required` option to `EasyConfig.get_cuda_cc_template_value` method (#4913)
20+
- add total iteration count to trace output (#4919, #4952)
21+
- add support for pre/post `easyblock` hook (#4923, #4938)
22+
- catch `HTTPException` when doing GitHub API request (#4926)
23+
- bug fixes:
24+
- fix reporting of method name in `EasyBlock.run_step` (#4920)
25+
- fix handling of broken symlinks in `filetools.remove` (#4921)
26+
- keep symlinks when copying build dirs of failed installations (#4933)
27+
- also copy patches of extensions to easybuild subdirectory of installation directory (#4939, #4946)
28+
- also copy easyblocks of bundle components to reprod dir (#4944)
29+
- take into account that forked repository may not have same name as origin `--sync-pr-with-develop` (#4947)
30+
- enhancements and fixes for test suite:
31+
- add support for passing valid unittest options to test suite (#3790)
32+
- enhance `LooseVersion` test to add cases with leading alphabetical characters (#4901)
33+
- prefer using `importlib.metadata` over the deprecated `pkg_resources` in `det_pypkg_version` + switch container tests to Rocky Linux 8.10 (#4904)
34+
- fix `TypeError` for Python version comparison in `test_fetch_sources_git` (#4934)
35+
- fix broken tests for GitHub integration features (#4954)
36+
- other changes:
37+
- change value of architectures constants RISCV32 and RISCV64 (#4915)
38+
- remove some superflous Python 2 checks (#4917)
39+
- remove use of unsupported `source` key in patch spec (#4924)
40+
- remove super() arguments from mk_tmpl_easyblock_for (#4936)
41+
42+
43+
v5.1.0 (26 May 2025)
44+
--------------------
45+
46+
feature release
47+
48+
- various enhancements, including:
49+
- add support for data installations (#4474, #4873, #4874)
50+
- allow specifying location for RPATH wrapper scripts via `rpath_wrappers_dir` (#4596)
51+
- add a CUDA device code sanity check (#4692)
52+
- add support for check_readelf_rpath easyconfig parameter to optionally skip RPATH checks (#4768)
53+
- add support for using environment variables in value used in modextravars (#4855)
54+
- print summary after the build in trace output (#4861, #4875)
55+
- avoid leaking keys by mistake with `--upload-test-report` (#4877)
56+
- obtain PR/commit diff via GitHub API rather than downloading `*.diff` file via github.com (#4878)
57+
- support options for patch command (#4886)
58+
- replace full trace message for extension check command with simple pass/fail message (#4892)
59+
- various bug fixes, including:
60+
- also pass `rpath_include_dirs` when preparing build environment for extensions (#4596)
61+
- fix `check_checksums` when `nosource: True` is used (#4806)
62+
- fix help string of findPythonDeps.py script (#4821)
63+
- take into account `job-output-dir` option in Slurm job backend (#4842)
64+
- fix unbound variable in error case in `build_and_install_software` (#4843)
65+
- avoid failure when only some passed easyconfigs exist (#4847)
66+
- restore original value for non-list easyconfig parameter values that are considered for iterating over (#4848)
67+
- add '-' before 'DMKL_ILP64' in $CFLAGS (#4850)
68+
- enhance RPATH sanity check to skip anything whose absolute path resolves to outside the install dir (#4854)
69+
- use new `ModEnvVarType.STRICT_PATH_WITH_FILES` with `CMAKE_LIBRARY_PATH` environment variable (#4858)
70+
- fix `is_patch_for` for patch dicts (#4865)
71+
- update fake module for each extension installed (#4868, #4888, #4895)
72+
- implement exponential backoff in `download_file` (#4870, #4880)
73+
- use `develop` branch for PRs that target removed `5.0.x` branch in `fetch_files_from_pr` (#4879)
74+
- also ignore errors raised during test step when `--ignore-test-failure` is used (#4881)
75+
- fix download progress bar (#4885)
76+
- fix `--dep-graph` by using `graphviz` Python package (#4891)
77+
- fixes for test suite:
78+
- fix `test_github_preview_pr` which got broken because there's no more easyconfigs for bzip2 1.0.6 in easyconfigs repo (#4827)
79+
- fix tests after removal of 5.0.x branch (#4830)
80+
- fix missed message in trivial equal-asserts (#4831)
81+
- fix wrong variable name used for Python version in linting CI (#4839)
82+
- fix failing GitHub integration CI tests (#4841)
83+
- fix testsuite badge in README (#4845)
84+
- other changes:
85+
- go back to using `develop` branch rather than `5.0.x` branch in GitHub Actions workflows (#4820)
86+
- remove source tarball for Python 3.7.2 from test sources (#4828)
87+
- delete .coveragerc (#4833)
88+
- remove Python 2 constructs (#4834)
89+
- remove superflous assignment in `_sanity_check_step` (#4851)
90+
- replace deprecation warning about reproducible tarballs on Python older than 3.9 with a regular warning (#4852)
91+
- move `EasyBlock.expand_module_search_path` into `ModuleEnvironmentVariable.expand_paths` (#4859)
92+
93+
794
v5.0.0 (18 March 2025)
895
----------------------
996

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

easybuild/_deprecated.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"""
3232
import contextlib
3333
import functools
34+
import json
3435
import os
3536
import re
3637
import signal
@@ -96,6 +97,12 @@ def cache_aware_func(cmd, *args, **kwargs):
9697
return cache_aware_func
9798

9899

100+
def json_loads(body):
101+
"""Deprecated wrapper for json.loads"""
102+
_log.deprecated("json_loads is deprecated, use json.loads", '6.0')
103+
return json.loads(body)
104+
105+
99106
def get_output_from_process(proc, read_size=None, asynchronous=False, print_deprecation_warning=True):
100107
"""
101108
Get output from running process (that was opened with subprocess.Popen).

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/fancylogger.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -578,8 +578,7 @@ def logToFile(filename, enable=True, filehandler=None, name=None, max_bytes=MAX_
578578
'maxBytes': max_bytes,
579579
'backupCount': backup_count,
580580
}
581-
if sys.version_info[0] >= 3:
582-
handleropts['encoding'] = 'utf-8'
581+
handleropts['encoding'] = 'utf-8'
583582
# 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
584583
directory = os.path.dirname(filename)
585584
if not os.path.exists(directory):

easybuild/base/frozendict.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def __repr__(self):
5252

5353
def __hash__(self):
5454
if self.__hash is None:
55-
self.__hash = reduce(operator.xor, map(hash, self.iteritems()), 0)
55+
self.__hash = reduce(operator.xor, map(hash, self.items()), 0)
5656

5757
return self.__hash
5858

@@ -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)

0 commit comments

Comments
 (0)