Skip to content

Commit 0caac31

Browse files
authored
Merge pull request easybuilders#4955 from boegel/develop
sync with main + bump version to 5.1.2dev
2 parents 003895b + b672c30 commit 0caac31

File tree

6 files changed

+93
-12
lines changed

6 files changed

+93
-12
lines changed

RELEASE_NOTES

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,42 @@ 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+
743
v5.1.0 (26 May 2025)
844
--------------------
945

easybuild/tools/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
# recent setuptools versions will *TRANSFORM* something like 'X.Y.Zdev' into 'X.Y.Z.dev0', with a warning like
4646
# UserWarning: Normalizing '2.4.0dev' to '2.4.0.dev0'
4747
# This causes problems further up the dependency chain...
48-
VERSION = LooseVersion('5.1.1.dev0')
48+
VERSION = LooseVersion('5.1.2.dev0')
4949
UNKNOWN = 'UNKNOWN'
5050
UNKNOWN_EASYBLOCKS_VERSION = '0.0.UNKNOWN.EASYBLOCKS'
5151

test/framework/docs.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
|-- ConfigureMake
5050
| |-- MakeCp
5151
|-- EB_binutils
52+
|-- EB_BLIS
5253
|-- EB_bzip2
5354
|-- EB_CMake
5455
|-- EB_EasyBuildMeta
@@ -111,6 +112,7 @@
111112
|-- ConfigureMake (easybuild.easyblocks.generic.configuremake @ %(topdir)s/generic/configuremake.py)
112113
| |-- MakeCp (easybuild.easyblocks.generic.makecp @ %(topdir)s/generic/makecp.py)
113114
|-- EB_binutils (easybuild.easyblocks.binutils @ %(topdir)s/b/binutils.py)
115+
|-- EB_BLIS (easybuild.easyblocks.blis @ %(topdir)s/b/blis.py)
114116
|-- EB_bzip2 (easybuild.easyblocks.bzip2 @ %(topdir)s/b/bzip2.py)
115117
|-- EB_CMake (easybuild.easyblocks.cmake @ %(topdir)s/c/cmake.py)
116118
|-- EB_EasyBuildMeta (easybuild.easyblocks.easybuildmeta @ %(topdir)s/e/easybuildmeta.py)
@@ -176,6 +178,7 @@
176178
* MakeCp
177179
178180
* EB_binutils
181+
* EB_BLIS
179182
* EB_bzip2
180183
* EB_CMake
181184
* EB_EasyBuildMeta
@@ -266,6 +269,7 @@
266269
* MakeCp (easybuild.easyblocks.generic.makecp @ %(topdir)s/generic/makecp.py)
267270
268271
* EB_binutils (easybuild.easyblocks.binutils @ %(topdir)s/b/binutils.py)
272+
* EB_BLIS (easybuild.easyblocks.blis @ %(topdir)s/b/blis.py)
269273
* EB_bzip2 (easybuild.easyblocks.bzip2 @ %(topdir)s/b/bzip2.py)
270274
* EB_CMake (easybuild.easyblocks.cmake @ %(topdir)s/c/cmake.py)
271275
* EB_EasyBuildMeta (easybuild.easyblocks.easybuildmeta @ %(topdir)s/e/easybuildmeta.py)
@@ -353,6 +357,7 @@
353357
- ConfigureMake
354358
- MakeCp
355359
- EB_binutils
360+
- EB_BLIS
356361
- EB_bzip2
357362
- EB_CMake
358363
- EB_EasyBuildMeta
@@ -415,6 +420,7 @@
415420
- ConfigureMake (easybuild.easyblocks.generic.configuremake @ %(topdir)s/generic/configuremake.py)
416421
- MakeCp (easybuild.easyblocks.generic.makecp @ %(topdir)s/generic/makecp.py)
417422
- EB_binutils (easybuild.easyblocks.binutils @ %(topdir)s/b/binutils.py)
423+
- EB_BLIS (easybuild.easyblocks.blis @ %(topdir)s/b/blis.py)
418424
- EB_bzip2 (easybuild.easyblocks.bzip2 @ %(topdir)s/b/bzip2.py)
419425
- EB_CMake (easybuild.easyblocks.cmake @ %(topdir)s/c/cmake.py)
420426
- EB_EasyBuildMeta (easybuild.easyblocks.easybuildmeta @ %(topdir)s/e/easybuildmeta.py)

test/framework/github.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,11 @@ def test_github_add_pr_labels(self):
254254

255255
self.mock_stdout(True)
256256
self.mock_stderr(True)
257-
gh.add_pr_labels(22380)
257+
gh.add_pr_labels(21465)
258258
stdout = self.get_stdout()
259259
self.mock_stdout(False)
260260
self.mock_stderr(False)
261-
self.assertIn("Could not determine any missing labels for PR #22380", stdout)
261+
self.assertIn("Could not determine any missing labels for PR #21465", stdout)
262262

263263
self.mock_stdout(True)
264264
self.mock_stderr(True)

test/framework/options.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1542,13 +1542,13 @@ def test_github_copy_ec_from_pr(self):
15421542

15431543
# test with only one ec in the PR (final argument is taken as a filename)
15441544
test_ec = os.path.join(self.test_prefix, 'test.eb')
1545-
args = ['--copy-ec', '--from-pr', '22380', test_ec]
1546-
ec_pr22380 = "PySide2-5.14.2.3-GCCcore-10.2.0.eb"
1545+
args = ['--copy-ec', '--from-pr', '21465', test_ec]
1546+
ec_pr21465 = "EasyBuild-4.9.4.eb"
15471547
stdout = self.mocked_main(args)
1548-
regex = re.compile(r'.*/%s copied to %s' % (ec_pr22380, test_ec))
1548+
regex = re.compile(r'.*/%s copied to %s' % (ec_pr21465, test_ec))
15491549
self.assertTrue(regex.search(stdout), "Pattern '%s' found in: %s" % (regex.pattern, stdout))
15501550
self.assertExists(test_ec)
1551-
self.assertIn("name = 'PySide2'", read_file(test_ec))
1551+
self.assertIn("name = 'EasyBuild'", read_file(test_ec))
15521552
remove_file(test_ec)
15531553

15541554
def test_copy_ec_from_commit(self):
@@ -4726,6 +4726,7 @@ def test_update_branch_github(self):
47264726
'--github-user=boegel', # used to determine account to grab branch from (no GitHub token needed)
47274727
toy_ec,
47284728
'--pr-commit-msg="this is just a test"',
4729+
'--force', # force required because we're using --pr-commit-msg when only adding new easyconfigs
47294730
'-D',
47304731
]
47314732
txt, _ = self._run_mock_eb(args, do_build=True, raise_error=True, testing=False)
@@ -4877,19 +4878,22 @@ def test_github_new_update_pr(self):
48774878
regex = re.compile(regex, re.M)
48784879
self.assertTrue(regex.search(txt), "Pattern '%s' found in: %s" % (regex.pattern, txt))
48794880

4880-
# modifying an existing easyconfig requires a custom PR title
4881+
# modifying an existing easyconfig requires a custom PR title;
4882+
# we need to use a sufficiently recent GCC version, since easyconfigs for old versions have been archived
48814883
gcc_ec = os.path.join(test_ecs, 'g', 'GCC', 'GCC-10.2.0.eb')
4882-
self.assertExists(gcc_ec)
4884+
gcc_new_ec = os.path.join(self.test_prefix, 'GCC-14.3.0.eb')
4885+
gcc_new_txt = read_file(gcc_ec).replace('10.2.0', '14.3.0')
4886+
write_file(gcc_new_ec, gcc_new_txt)
48834887

48844888
args = [
48854889
'--new-pr',
48864890
'--github-user=%s' % GITHUB_TEST_ACCOUNT,
48874891
toy_ec,
4888-
gcc_ec,
4892+
gcc_new_ec,
48894893
'-D',
48904894
]
48914895
error_msg = "A meaningful commit message must be specified via --pr-commit-msg.*\n"
4892-
error_msg += "Modified: " + os.path.basename(gcc_ec)
4896+
error_msg += "Modified: " + os.path.basename(gcc_new_ec)
48934897
self.mock_stdout(True)
48944898
self.assertErrorRegex(EasyBuildError, error_msg, self.eb_main, args, raise_error=True)
48954899
self.mock_stdout(False)
@@ -4917,7 +4921,8 @@ def test_github_new_update_pr(self):
49174921
self.assertErrorRegex(EasyBuildError, error_msg, self.eb_main, args, raise_error=True)
49184922
self.mock_stdout(False)
49194923

4920-
args.append('--pr-commit-msg="just a test"')
4924+
# force required because we're using --pr-commit-msg when only adding new easyconfigs
4925+
args.extend(['--pr-commit-msg="just a test"', '--force'])
49214926
txt, _ = self._run_mock_eb(args, do_build=True, raise_error=True, testing=False)
49224927

49234928
regexs = [
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
##
2+
# Copyright 2009-2025 Ghent University
3+
#
4+
# This file is part of EasyBuild,
5+
# originally created by the HPC team of Ghent University (http://ugent.be/hpc/en),
6+
# with support of Ghent University (http://ugent.be/hpc),
7+
# the Flemish Supercomputer Centre (VSC) (https://www.vscentrum.be),
8+
# Flemish Research Foundation (FWO) (http://www.fwo.be/en)
9+
# and the Department of Economy, Science and Innovation (EWI) (http://www.ewi-vlaanderen.be/en).
10+
#
11+
# https://github.com/easybuilders/easybuild
12+
#
13+
# EasyBuild is free software: you can redistribute it and/or modify
14+
# it under the terms of the GNU General Public License as published by
15+
# the Free Software Foundation v2.
16+
#
17+
# EasyBuild is distributed in the hope that it will be useful,
18+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
19+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+
# GNU General Public License for more details.
21+
#
22+
# You should have received a copy of the GNU General Public License
23+
# along with EasyBuild. If not, see <http://www.gnu.org/licenses/>.
24+
##
25+
"""
26+
Dummy easyblock for BLIS
27+
28+
@author: Kenneth Hoste (Ghent University)
29+
"""
30+
from easybuild.framework.easyblock import EasyBlock
31+
32+
33+
class EB_BLIS(EasyBlock):
34+
pass

0 commit comments

Comments
 (0)