From 65f1a2586dadb4b7e40e34ca6689838ca22c7ddc Mon Sep 17 00:00:00 2001 From: tanmoy1989 Date: Mon, 29 Jul 2024 11:16:02 +0100 Subject: [PATCH 01/76] adding easyconfigs: ASE-3.23.0-gfbf-2023b.eb --- .../a/ASE/ASE-3.23.0-gfbf-2023b.eb | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb diff --git a/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb new file mode 100644 index 00000000000..07ad1ecc555 --- /dev/null +++ b/easybuild/easyconfigs/a/ASE/ASE-3.23.0-gfbf-2023b.eb @@ -0,0 +1,48 @@ +easyblock = 'PythonBundle' + +name = 'ASE' +version = '3.23.0' + +homepage = 'https://wiki.fysik.dtu.dk/ase' +description = """ASE is a python package providing an open source Atomic Simulation Environment + in the Python scripting language. + +From version 3.20.1 we also include the ase-ext package, it contains optional reimplementations +in C of functions in ASE. ASE uses it automatically when installed.""" + +toolchain = {'name': 'gfbf', 'version': '2023b'} + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('SciPy-bundle', '2023.11'), + ('Flask', '3.0.0'), + ('matplotlib', '3.8.2'), + ('Tkinter', '%(pyver)s'), # Needed by GUI of ASE + ('spglib-python', '2.5.0'), # optional +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('pytest-mock', '3.14.0', { + 'checksums': ['2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0'], + }), + ('ase', version, { + 'checksums': ['91a2aa31d89bd90b0efdfe4a7e84264f32828b2abfc9f38e65e041ad76fec8ae'], + }), + ('ase-ext', '20.9.0', { + 'checksums': ['a348b0e42cf9fdd11f04b3df002b0bf150002c8df2698ff08d3c8fc7a1223aed'], + }), +] + +sanity_check_paths = { + 'files': ['bin/ase'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +# make sure Tkinter is available, otherwise 'ase gui' will not work +sanity_check_commands = ["python -c 'import tkinter' "] + +moduleclass = 'chem' From a9a54ba6c29c6194bc2787c09bb0950a0c148d7c Mon Sep 17 00:00:00 2001 From: Stefan Wolfsheimer Date: Thu, 12 Sep 2024 16:30:22 +0200 Subject: [PATCH 02/76] Added binaries to Wannier90 module --- .../easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb index 9807690b35c..f8fe7f68bbf 100644 --- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb @@ -25,10 +25,11 @@ buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismat buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' buildopts += 'COMMS=mpi' -files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] +local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x'] +files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')] sanity_check_paths = { - 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'], 'dirs': [] } From 175e9afacf7679916d2306bd6c25f2a3ab21bedd Mon Sep 17 00:00:00 2001 From: Sebastian Achilles Date: Sat, 5 Oct 2024 10:45:03 +0200 Subject: [PATCH 03/76] add patch to SciPy-bundle 2024.05 that fixes test failure on aarch64 --- .../SciPy-bundle-2024.05-gfbf-2024a.eb | 3 ++ .../scipy-1.13.1_TestLinprogIPSparse.patch | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb index 2abab977add..5584d888f30 100644 --- a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2024.05-gfbf-2024a.eb @@ -64,12 +64,15 @@ exts_list = [ 'patches': [ 'scipy-1.11.1_disable-tests.patch', 'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch', + 'scipy-1.13.1_TestLinprogIPSparse.patch', ], 'checksums': [ {'scipy-1.13.1.tar.gz': '095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c'}, {'scipy-1.11.1_disable-tests.patch': '906bfb03397d94882ccdc1b93bc2c8e854e0e060c2d107c83042992394e6a4af'}, {'scipy-1.11.1_xfail-aarch64_test_maxiter_worsening.patch': '918c8e6fa8215d459126f267764c961bde729ea4a116c7f6287cddfdc58ffcea'}, + {'scipy-1.13.1_TestLinprogIPSparse.patch': + '7213c2690b76c69f7e7103529cea3fa2098c05fbea556f04325fab9ca8c065f5'}, ], }), ('numexpr', '2.10.0', { diff --git a/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch new file mode 100644 index 00000000000..1b057319086 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.13.1_TestLinprogIPSparse.patch @@ -0,0 +1,30 @@ +disable problematic tests +TestLinprogIPSparse::test_bug_6139 + TestLinprogIPSparsePresolve::test_bug_6139 fail on Grace Hopper aarch64 +author: Sebastian Achilles (Juelich Supercomputing Centre) + +diff --git a/scipy/optimize/tests/test_linprog.py b/scipy/optimize/tests/test_linprog.py +index 49a0f8de5..8ffbb0b47 100644 +--- a/scipy/optimize/tests/test_linprog.py ++++ b/scipy/optimize/tests/test_linprog.py +@@ -1977,6 +1977,10 @@ if has_umfpack: + class TestLinprogIPSparse(LinprogIPTests): + options = {"sparse": True, "cholesky": False, "sym_pos": False} + ++ @pytest.mark.skipif( ++ platform.machine() == 'aarch64', ++ reason="Fails on aarch64" ++ ) + @pytest.mark.xfail_on_32bit("This test is sensitive to machine epsilon level " + "perturbations in linear system solution in " + "_linprog_ip._sym_solve.") +@@ -2027,6 +2031,10 @@ class TestLinprogIPSparse(LinprogIPTests): + class TestLinprogIPSparsePresolve(LinprogIPTests): + options = {"sparse": True, "_sparse_presolve": True} + ++ @pytest.mark.skipif( ++ platform.machine() == 'aarch64', ++ reason="Fails on aarch64" ++ ) + @pytest.mark.xfail_on_32bit("This test is sensitive to machine epsilon level " + "perturbations in linear system solution in " + "_linprog_ip._sym_solve.") From 7b7bf5cafc50d26ccfc91590ee1d5d2fb26f367d Mon Sep 17 00:00:00 2001 From: maximm Date: Tue, 15 Oct 2024 11:21:48 +0200 Subject: [PATCH 04/76] adding easyconfigs: MCR-R2024b.eb --- easybuild/easyconfigs/m/MCR/MCR-R2024b.eb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 easybuild/easyconfigs/m/MCR/MCR-R2024b.eb diff --git a/easybuild/easyconfigs/m/MCR/MCR-R2024b.eb b/easybuild/easyconfigs/m/MCR/MCR-R2024b.eb new file mode 100644 index 00000000000..17ad8df12f6 --- /dev/null +++ b/easybuild/easyconfigs/m/MCR/MCR-R2024b.eb @@ -0,0 +1,17 @@ +name = 'MCR' +version = 'R2024b' # runtime version 24.2 +local_update = '0' + +homepage = 'https://www.mathworks.com/products/compiler/mcr/' +description = """The MATLAB Runtime is a standalone set of shared libraries + that enables the execution of compiled MATLAB applications + or components on computers that do not have MATLAB installed.""" + +toolchain = SYSTEM + +source_urls = ['https://ssd.mathworks.com/supportfiles/downloads/%%(version)s/Release/%s/deployment_files/' + 'installer/complete/glnxa64/' % local_update] +sources = ['MATLAB_Runtime_%(version)s_glnxa64.zip'] +checksums = ['c46f4b55747aa4a8c03c1ece5bd5360c4dbb2ca402608fbd44688ba55f9b7a54'] + +moduleclass = 'math' From 96675c98ef08d9444cfeece3117078147ea76fd5 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Tue, 15 Oct 2024 19:26:36 +0000 Subject: [PATCH 05/76] adding easyconfigs: modin-0.32.0-foss-2024a.eb --- .../m/modin/modin-0.32.0-foss-2024a.eb | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb new file mode 100644 index 00000000000..3a8709cbcfb --- /dev/null +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -0,0 +1,45 @@ +easyblock = 'PythonBundle' + +name = 'modin' +version = '0.32.0' + +homepage = 'https://github.com/libvips/pyvips' +description = """This module wraps the libvips image processing library. +libvips is a demand-driven, horizontally threaded image processing library.""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +builddependencies = [ + ('Cython', '3.0.10'), +] + +dependencies = [ + ('Python', '3.12.3'), + ('Python-bundle-PyPI', '2024.06'), + ('SciPy-bundle', '2024.05'), + ('dask', '2024.9.1'), + ('OpenMPI', '5.0.3'), + ('Ray-project', '2.37.0'), + ('Arrow', '17.0.0'), + ('mpi4py', '4.0.1') +] + +download_dep_fail = True +use_pip = True + +exts_list = [ + (name, version, { + 'checksums': ['9f68557add5e92617d006eb98bfd93d298e7d4d9932a0cd48a5e38ee4f30a134'], + }), + ('unidist', '0.7.1', { + 'source_tmpl': '%(namelower)s-%(version)s-cp312-cp312-manylinux_2_17_%(arch)s.manylinux2014_%(arch)s.whl', + 'use_pip_extras': 'mpi', + 'checksums': ['1433753726d8be0e484ca53f75d501afa8c4d94acf9c45a0970949411b4b41e0'], + }), +] + +sanity_check_commands = ['python -c "import modin"'] + +sanity_pip_check = True + +moduleclass = 'tools' From 5b122322f014bc2a659b261c1f1f63781579b068 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Tue, 15 Oct 2024 19:32:20 +0000 Subject: [PATCH 06/76] updated description and link --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 3a8709cbcfb..02ac1a15235 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -3,9 +3,8 @@ easyblock = 'PythonBundle' name = 'modin' version = '0.32.0' -homepage = 'https://github.com/libvips/pyvips' -description = """This module wraps the libvips image processing library. -libvips is a demand-driven, horizontally threaded image processing library.""" +homepage = 'https://github.com/modin-project/modin' +description = """Modin uses Ray, Dask or Unidist to provide an effortless way to speed up your pandas notebooks, scripts, and libraries. """ toolchain = {'name': 'foss', 'version': '2024a'} From df0f3a4b0756716d072bfed484466a00218eb514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Thu, 17 Oct 2024 11:17:40 +0200 Subject: [PATCH 07/76] Update easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 02ac1a15235..268f59942f6 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -4,7 +4,8 @@ name = 'modin' version = '0.32.0' homepage = 'https://github.com/modin-project/modin' -description = """Modin uses Ray, Dask or Unidist to provide an effortless way to speed up your pandas notebooks, scripts, and libraries. """ +description = """Modin uses Ray, Dask or Unidist to provide an effortless way to speed up your pandas notebooks, +scripts, and libraries. """ toolchain = {'name': 'foss', 'version': '2024a'} From 37217fb461038262f9146e47cfae5eda56d7fe1b Mon Sep 17 00:00:00 2001 From: Leonard Nielsen <55690238+lcniel@users.noreply.github.com> Date: Thu, 17 Oct 2024 13:09:00 +0200 Subject: [PATCH 08/76] Update modin-0.32.0-foss-2024a.eb --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 268f59942f6..ce7cb19ce0d 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -38,8 +38,6 @@ exts_list = [ }), ] -sanity_check_commands = ['python -c "import modin"'] - sanity_pip_check = True moduleclass = 'tools' From 0840096cc02a7f811d260229a74166539172381f Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 14:38:25 +0000 Subject: [PATCH 09/76] enable some tests --- .../m/modin/modin-0.32.0-foss-2024a.eb | 27 ++++++++++++++----- .../modin-0.32.0_fix-pytest-config.patch | 20 ++++++++++++++ 2 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index ce7cb19ce0d..63667948103 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -11,6 +11,9 @@ toolchain = {'name': 'foss', 'version': '2024a'} builddependencies = [ ('Cython', '3.0.10'), + # Needed for tests + ('boto3', '1.35.36'), + ('s3fs', '2024.9.0'), ] dependencies = [ @@ -24,17 +27,27 @@ dependencies = [ ('mpi4py', '4.0.1') ] -download_dep_fail = True use_pip = True +local_pytest_cmd = 'pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py' + exts_list = [ - (name, version, { - 'checksums': ['9f68557add5e92617d006eb98bfd93d298e7d4d9932a0cd48a5e38ee4f30a134'], - }), ('unidist', '0.7.1', { - 'source_tmpl': '%(namelower)s-%(version)s-cp312-cp312-manylinux_2_17_%(arch)s.manylinux2014_%(arch)s.whl', - 'use_pip_extras': 'mpi', - 'checksums': ['1433753726d8be0e484ca53f75d501afa8c4d94acf9c45a0970949411b4b41e0'], + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags/'], + 'checksums': ['9bae91f0bbc33af3b55948990f69400ee819dfda9c635286e6917aebd7f24791'], + }), + (name, version, { + 'patches': ['modin-0.32.0_fix-pytest-config.patch'], + 'runtest': 'MODIN_BACKEND=unidist UNIDIST_BACKEND=mpi %(local_pytest_cmd)s && MODIN_BACKEND=ray %(local_pytest_cmd)s && MODIN_BACKEND=dask %(local_pytest_cmd)s' % {'local_pytest_cmd': local_pytest_cmd}, + 'source_tmpl': '%(version)s.tar.gz', + 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], + 'testinstall': True, + 'checksums': [ + {'0.32.0.tar.gz': 'f2ef11f384a7d47eb6680a2f6f4bbc3404fa6290163d36384032daff3837b063'}, + {'modin-0.32.0_fix-pytest-config.patch': + 'c49bd5c072a87321760c7c5eebc957f4f6962763a3526a500fe6330cf3f2b765'}, + ], }), ] diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch b/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch new file mode 100644 index 00000000000..990e053d328 --- /dev/null +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0_fix-pytest-config.patch @@ -0,0 +1,20 @@ +Removes unnecessary options for pytest that induce additional dependencies. + +--- 0.32.0/foss-2024a/modin/modin-0.32.0/setup.cfg.orig 2024-10-17 15:56:55.245266649 +0200 ++++ 0.32.0/foss-2024a/modin/modin-0.32.0/setup.cfg 2024-10-17 15:57:34.748841878 +0200 +@@ -11,15 +11,6 @@ + tag_prefix = + parentdir_prefix = modin- + +-[tool:pytest] +-addopts = --cov-config=setup.cfg --cov=modin --cov-append --cov-report= -m "not exclude_by_default" +-xfail_strict=true +-markers = +- exclude_in_sanity +- exclude_by_default +-filterwarnings = +- error:.*defaulting to pandas.*:UserWarning +- + [isort] + profile = black + From 646ab3444003de3d36b3039e25f930f5c05a245d Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 15:17:29 +0000 Subject: [PATCH 10/76] checksums --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 63667948103..209a1027257 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -39,7 +39,7 @@ exts_list = [ }), (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], - 'runtest': 'MODIN_BACKEND=unidist UNIDIST_BACKEND=mpi %(local_pytest_cmd)s && MODIN_BACKEND=ray %(local_pytest_cmd)s && MODIN_BACKEND=dask %(local_pytest_cmd)s' % {'local_pytest_cmd': local_pytest_cmd}, + 'runtest': "MODIN_BACKEND=unidist UNIDIST_BACKEND=mpi pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py && MODIN_BACKEND=ray pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py && MODIN_BACKEND=dask pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py", 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], 'testinstall': True, From fc5c77d1b2fbe4a2357f2bfed5d53860c8b040fe Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 17:09:41 +0000 Subject: [PATCH 11/76] test suite --- .../easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 209a1027257..098027eecd6 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -29,17 +29,22 @@ dependencies = [ use_pip = True -local_pytest_cmd = 'pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py' - exts_list = [ ('unidist', '0.7.1', { 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags/'], 'checksums': ['9bae91f0bbc33af3b55948990f69400ee819dfda9c635286e6917aebd7f24791'], }), + # Cannot test for Ray due to unix socket issue (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], - 'runtest': "MODIN_BACKEND=unidist UNIDIST_BACKEND=mpi pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py && MODIN_BACKEND=ray pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py && MODIN_BACKEND=dask pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py --ignore=modin/tests/pandas/integrations/test_lazy_import.py", + 'runtest': ( + "MODIN_BACKEND=unidist UNIDIST_BACKEND=mpi pytest modin/tests/pandas " + " --ignore=modin/tests/pandas/test_io.py " + "--ignore=modin/tests/pandas/integrations/test_lazy_import.py &&" + " MODIN_BACKEND=dask pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py" + " --ignore=modin/tests/pandas/integrations/test_lazy_import.py" + ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], 'testinstall': True, From da0530e5da3054612f0378e6cbdfd545b92c489d Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 17:37:29 +0000 Subject: [PATCH 12/76] test suite --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 098027eecd6..57ceac35c95 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -39,10 +39,10 @@ exts_list = [ (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_BACKEND=unidist UNIDIST_BACKEND=mpi pytest modin/tests/pandas " + "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas " " --ignore=modin/tests/pandas/test_io.py " "--ignore=modin/tests/pandas/integrations/test_lazy_import.py &&" - " MODIN_BACKEND=dask pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py" + " MODIN_ENGINE=dask pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py" " --ignore=modin/tests/pandas/integrations/test_lazy_import.py" ), 'source_tmpl': '%(version)s.tar.gz', From e6198a162675109a4532b01707645fdd52f19958 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 20:09:03 +0000 Subject: [PATCH 13/76] cut down on test suite --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 57ceac35c95..b08f03c0975 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -39,11 +39,8 @@ exts_list = [ (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas " - " --ignore=modin/tests/pandas/test_io.py " - "--ignore=modin/tests/pandas/integrations/test_lazy_import.py &&" - " MODIN_ENGINE=dask pytest modin/tests/pandas --ignore=modin/tests/pandas/test_io.py" - " --ignore=modin/tests/pandas/integrations/test_lazy_import.py" + "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_general.py &&" + " MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], From d31ae4f9f1d0d6b3be1eddab4a9120bc43db2510 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 20:26:47 +0000 Subject: [PATCH 14/76] cut down on test suite --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index b08f03c0975..5d6a7971f53 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -39,8 +39,8 @@ exts_list = [ (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_general.py &&" - " MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" + "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_reshape.py &&" + " MODIN_ENGINE=dask pytest modin/tests/pandas/test_reshape.py" ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], From 88ec16cd3e4fa8f0631d13d17ac684022461d24b Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 20:36:33 +0000 Subject: [PATCH 15/76] cut down on test suite --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 5d6a7971f53..5bc7ac030db 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -39,8 +39,7 @@ exts_list = [ (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_reshape.py &&" - " MODIN_ENGINE=dask pytest modin/tests/pandas/test_reshape.py" + "MODIN_ENGINE=dask pytest modin/tests/pandas/test_reshape.py" ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], From 3296c1bf546577e954fb69734a4241ff2499981d Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 20:48:45 +0000 Subject: [PATCH 16/76] removed unidist due to non-functionality --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 5bc7ac030db..69879efa8ab 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -30,15 +30,12 @@ dependencies = [ use_pip = True exts_list = [ - ('unidist', '0.7.1', { - 'source_tmpl': '%(version)s.tar.gz', - 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags/'], - 'checksums': ['9bae91f0bbc33af3b55948990f69400ee819dfda9c635286e6917aebd7f24791'], - }), + # modin has another backend, "unidist", for MPI, but it seems broken currently. # Cannot test for Ray due to unix socket issue (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( + "MODIN_ENGINE=ray pytest modin/tests/pandas/test_reshape.py &&" "MODIN_ENGINE=dask pytest modin/tests/pandas/test_reshape.py" ), 'source_tmpl': '%(version)s.tar.gz', From 54574e3a6c8174df50ae12d4d54c03ddbf10bb5f Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 20:56:59 +0000 Subject: [PATCH 17/76] confirmed ray non-functional tests --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 69879efa8ab..128dd0aae8c 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -31,12 +31,11 @@ use_pip = True exts_list = [ # modin has another backend, "unidist", for MPI, but it seems broken currently. - # Cannot test for Ray due to unix socket issue + # Also cannot test for Ray in general due to unix socket issue, need to specify short tmpdir path (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=ray pytest modin/tests/pandas/test_reshape.py &&" - "MODIN_ENGINE=dask pytest modin/tests/pandas/test_reshape.py" + "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], From 9eef90ae526237506465911e6a099c83ecb52663 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Thu, 17 Oct 2024 21:14:01 +0000 Subject: [PATCH 18/76] removed mpi4py dep --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 1 - 1 file changed, 1 deletion(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 128dd0aae8c..388c781b8b5 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -24,7 +24,6 @@ dependencies = [ ('OpenMPI', '5.0.3'), ('Ray-project', '2.37.0'), ('Arrow', '17.0.0'), - ('mpi4py', '4.0.1') ] use_pip = True From 0918cffb46ca1737e35fd0aef08c41a072aef306 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Fri, 18 Oct 2024 12:20:22 +0000 Subject: [PATCH 19/76] added unidist problem info --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 388c781b8b5..5ed0e424dfd 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -30,6 +30,7 @@ use_pip = True exts_list = [ # modin has another backend, "unidist", for MPI, but it seems broken currently. + # The unidist backend will just fire up all cores as if initializing but not actually advance. # Also cannot test for Ray in general due to unix socket issue, need to specify short tmpdir path (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], From c52d81dc6bf47759f6c89de9b8b5c71608ea2286 Mon Sep 17 00:00:00 2001 From: WilleBell Date: Mon, 21 Oct 2024 15:20:03 +0200 Subject: [PATCH 20/76] adding easyconfigs: SciANN-0.7.0.1-foss-2022a.eb --- .../s/SciANN/SciANN-0.7.0.1-foss-2022a.eb | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb diff --git a/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb b/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb new file mode 100644 index 00000000000..0717fc8e997 --- /dev/null +++ b/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb @@ -0,0 +1,39 @@ +easyblock = 'PythonBundle' + +name = 'SciANN' +version = '0.7.0.1' + +homepage = 'https://github.com/ehsanhaghighat/sciann' +description = """ +A Keras/Tensorflow wrapper for scientific computations and physics-informed deep learning +using artificial neural networks. +""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +dependencies = [ + ('Python', '3.10.4'), + ('SciPy-bundle', '2022.05'), + ('PyYAML', '6.0'), + ('h5py', '3.7.0'), + ('scikit-learn', '1.1.2'), + ('TensorFlow', '2.11.0'), + ('pymatgen', '2023.3.10'), # for pybtex and latexcodec + ('matplotlib', '3.5.2'), + ('pygraphviz', '1.10'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('pydot', '2.0.0', { + 'checksums': ['60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235'], + }), + (name, version, { + 'modulename': 'sciann', + 'checksums': ['7d7acf61346b4201628c5656e2c904e9a9c7cda78086e76d075b5c7bb90adf3c'], + }), +] + +moduleclass = 'ai' From 091cfe5dade66635aea58a3c4e9090c4600bedec Mon Sep 17 00:00:00 2001 From: Stefan Wolfsheimer Date: Mon, 21 Oct 2024 17:59:40 +0200 Subject: [PATCH 21/76] fix mpi include issue, see https://github.com/wannier-developers/wannier90/issues/521 --- .../w/Wannier90/Wannier90-3.1.0-foss-2023a.eb | 4 ++- .../w/Wannier90/Wannier90-3.1.0-foss-2024a.eb | 4 ++- .../Wannier90/Wannier90-3.1.0-gomkl-2023a.eb | 9 ++++--- .../Wannier90/Wannier90-3.1.0-intel-2023a.eb | 9 ++++--- .../Wannier90/Wannier90-3.1.0-intel-2024a.eb | 9 ++++--- .../Wannier90_3.1.0_fix_mpi_include.patch | 27 +++++++++++++++++++ 6 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb index f8fe7f68bbf..57105d3bdb6 100644 --- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2023a.eb @@ -12,10 +12,12 @@ toolchainopts = {'usempi': True} github_account = 'wannier-developers' source_urls = [GITHUB_LOWER_SOURCE] sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] -patches = ['Wannier90_3x_ignore_makeinc.patch'] +patches = ['Wannier90_3x_ignore_makeinc.patch', + 'Wannier90_3.1.0_fix_mpi_include.patch'] checksums = [ '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch + 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch ] # The -fallow-argument-mismatch allows MPI communication calls to be diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb index 3228ba164b9..26e4b587a1f 100644 --- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-foss-2024a.eb @@ -12,10 +12,12 @@ toolchainopts = {'usempi': True} github_account = 'wannier-developers' source_urls = [GITHUB_LOWER_SOURCE] sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] -patches = ['Wannier90_3x_ignore_makeinc.patch'] +patches = ['Wannier90_3x_ignore_makeinc.patch', + 'Wannier90_3.1.0_fix_mpi_include.patch'] checksums = [ '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch + 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch ] buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismatch" LDOPTS="$FFLAGS" ' diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb index 336ac8a3895..a3e59ef46a9 100644 --- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-gomkl-2023a.eb @@ -12,10 +12,12 @@ toolchainopts = {'usempi': True} github_account = 'wannier-developers' source_urls = [GITHUB_LOWER_SOURCE] sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] -patches = ['Wannier90_3x_ignore_makeinc.patch'] +patches = ['Wannier90_3x_ignore_makeinc.patch', + 'Wannier90_3.1.0_fix_mpi_include.patch'] checksums = [ '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch + 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch ] # The -fallow-argument-mismatch allows MPI communication calls to be @@ -25,10 +27,11 @@ buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS -fallow-argument-mismat buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' buildopts += 'COMMS=mpi' -files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] +local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x'] +files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')] sanity_check_paths = { - 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'], 'dirs': [] } diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb index cf258368771..eb71d75290d 100644 --- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2023a.eb @@ -12,20 +12,23 @@ toolchainopts = {'usempi': True} github_account = 'wannier-developers' source_urls = [GITHUB_LOWER_SOURCE] sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] -patches = ['Wannier90_3x_ignore_makeinc.patch'] +patches = ['Wannier90_3x_ignore_makeinc.patch', + 'Wannier90_3.1.0_fix_mpi_include.patch'] checksums = [ '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch + 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch ] buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" ' buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' buildopts += 'COMMS=mpi' -files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] +local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x'] +files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')] sanity_check_paths = { - 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'], 'dirs': [] } diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb index dd30db79af6..34d3457ccc4 100644 --- a/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90-3.1.0-intel-2024a.eb @@ -12,20 +12,23 @@ toolchainopts = {'usempi': True} github_account = 'wannier-developers' source_urls = [GITHUB_LOWER_SOURCE] sources = [{'download_filename': 'v%(version)s.tar.gz', 'filename': SOURCELOWER_TAR_GZ}] -patches = ['Wannier90_3x_ignore_makeinc.patch'] +patches = ['Wannier90_3x_ignore_makeinc.patch', + 'Wannier90_3.1.0_fix_mpi_include.patch'] checksums = [ '40651a9832eb93dec20a8360dd535262c261c34e13c41b6755fa6915c936b254', # wannier90-3.1.0.tar.gz '561c0d296e0e30b8bb303702cd6e41ded54c153d9b9e6cd9cab73858e5e2945e', # Wannier90_3x_ignore_makeinc.patch + 'dd7217d8bf12ac4161fd0b6504f7c085ebcc69b23ab2ac4abcf9251f34b8bc30', # Wannier90_3.1.0_fix_mpi_include.patch ] buildopts = 'all F90=$F90 MPIF90=$MPIF90 FCOPTS="$FFLAGS" LDOPTS="$FFLAGS" ' buildopts += 'LIBDIR="$LAPACK_LIB_DIR" LIBS="$LIBLAPACK" ' buildopts += 'COMMS=mpi' -files_to_copy = [(['wannier90.x', 'postw90.x'], 'bin'), (['libwannier.a'], 'lib')] +local_executables = ['wannier90.x', 'postw90.x', 'w90chk2chk.x', 'w90spn2spn.x'] +files_to_copy = [(local_executables, 'bin'), (['libwannier.a'], 'lib')] sanity_check_paths = { - 'files': ['bin/wannier90.x', 'bin/postw90.x', 'lib/libwannier.a'], + 'files': ['bin/%s' % x for x in local_executables] + ['lib/libwannier.a'], 'dirs': [] } diff --git a/easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch b/easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch new file mode 100644 index 00000000000..fdc859c8a7f --- /dev/null +++ b/easybuild/easyconfigs/w/Wannier90/Wannier90_3.1.0_fix_mpi_include.patch @@ -0,0 +1,27 @@ +Use "use mpi" to load all required interfaces. +See https://github.com/wannier-developers/wannier90/issues/521 +Author: Stefan Wolfsheimer (SURF) + + +diff -ruN wannier90-3.1.0.orig/src/comms.F90 wannier90-3.1.0/src/comms.F90 +--- wannier90-3.1.0.orig/src/comms.F90 2020-03-05 19:41:10.000000000 +0100 ++++ wannier90-3.1.0/src/comms.F90 2024-10-21 17:01:00.542755184 +0200 +@@ -23,15 +23,13 @@ + + use w90_constants, only: dp + use w90_io, only: io_error +- ++#ifdef MPI ++ use mpi ++#endif + implicit none + + private + +-#ifdef MPI +- include 'mpif.h' +-#endif +- + logical, public, save :: on_root + !! Are we the root node + integer, public, save :: num_nodes From e2784cac2a4cb2d92bbe9de57181e958c2550065 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Mon, 21 Oct 2024 20:54:23 +0000 Subject: [PATCH 22/76] try adding unidist again --- .../easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 5ed0e424dfd..68d20abb137 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -29,14 +29,15 @@ dependencies = [ use_pip = True exts_list = [ - # modin has another backend, "unidist", for MPI, but it seems broken currently. - # The unidist backend will just fire up all cores as if initializing but not actually advance. - # Also cannot test for Ray in general due to unix socket issue, need to specify short tmpdir path + ('unidist', '0.7.2', { + 'checksums': ['6386e1ad5143fe132b9f96e232fe85fc39830ed2886515440e4ba1473255e4a0'], + }), (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" - ), + "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_general.py " + "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" + ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], 'testinstall': True, From e26dbceba35823e7d8a1382802575f8f52a8c59e Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Mon, 21 Oct 2024 20:59:07 +0000 Subject: [PATCH 23/76] fix a typo --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index 68d20abb137..d9239113e25 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -35,7 +35,7 @@ exts_list = [ (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_general.py " + "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_general.py && " "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" ), 'source_tmpl': '%(version)s.tar.gz', From 065333017730480123859eda539cf51741639d92 Mon Sep 17 00:00:00 2001 From: Leonard Nielsen Date: Tue, 22 Oct 2024 10:20:07 +0000 Subject: [PATCH 24/76] fix unidist test? --- easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb index d9239113e25..3d6ce8d2958 100644 --- a/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb +++ b/easybuild/easyconfigs/m/modin/modin-0.32.0-foss-2024a.eb @@ -32,12 +32,15 @@ exts_list = [ ('unidist', '0.7.2', { 'checksums': ['6386e1ad5143fe132b9f96e232fe85fc39830ed2886515440e4ba1473255e4a0'], }), + # The oversubscription is done in their own CI as well. + # Ray has limitations on unix socket path length, so it is not tested here. (name, version, { 'patches': ['modin-0.32.0_fix-pytest-config.patch'], 'runtest': ( - "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi pytest modin/tests/pandas/test_general.py && " - "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" - ), + "MODIN_ENGINE=unidist UNIDIST_ENGINE=mpi " + "mpiexec -n=1 --map-by :OVERSUBSCRIBE pytest modin/tests/pandas/test_general.py &&" + "MODIN_ENGINE=dask pytest modin/tests/pandas/test_general.py" + ), 'source_tmpl': '%(version)s.tar.gz', 'source_urls': ['https://github.com/modin-project/%(name)s/archive/refs/tags'], 'testinstall': True, From dc8710c4bd7512f1a5cfca39d2be596181db23bd Mon Sep 17 00:00:00 2001 From: Stefan Wolfsheimer Date: Tue, 22 Oct 2024 17:23:11 +0200 Subject: [PATCH 25/76] adding easyconfigs: GSL-2.8-GCC-13.3.0.eb --- .../easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb diff --git a/easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb b/easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb new file mode 100644 index 00000000000..251304ed936 --- /dev/null +++ b/easybuild/easyconfigs/g/GSL/GSL-2.8-GCC-13.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'ConfigureMake' + +name = 'GSL' +version = '2.8' + +homepage = 'https://www.gnu.org/software/gsl/' +description = """The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. + The library provides a wide range of mathematical routines such as random number generators, special functions + and least-squares fitting.""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} +toolchainopts = {'unroll': True, 'pic': True} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['6a99eeed15632c6354895b1dd542ed5a855c0f15d9ad1326c6fe2b2c9e423190'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['gsl-config', 'gsl-histogram', 'gsl-randist']] + + ['include/gsl/gsl_types.h'] + + ['lib/lib%s.%s' % (x, SHLIB_EXT) for x in ['gsl', 'gslcblas']], + 'dirs': [], +} + +moduleclass = 'numlib' From 5890289f3584a0618432f93dd30da777bc23363b Mon Sep 17 00:00:00 2001 From: WilleBell Date: Wed, 23 Oct 2024 15:47:05 +0200 Subject: [PATCH 26/76] adding easyconfigs: Dask-ML-2024.4.4-foss-2023a.eb --- .../d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb diff --git a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb new file mode 100644 index 00000000000..9ff4d7c1b9c --- /dev/null +++ b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb @@ -0,0 +1,54 @@ +easyblock = 'PythonBundle' + +name = 'Dask-ML' +version = '2024.4.4' + +homepage = 'http://ml.dask.org/' +description = """ +Dask-ML provides scalable machine learning in Python using Dask alongside popular machine +learning libraries like Scikit-Learn, XGBoost, and others. +""" + +toolchain = {'name': 'foss', 'version': '2023a'} + +builddependencies = [('hatchling', '1.18.0')] + +dependencies = [ + ('Python', '3.11.3'), + ('scikit-learn', '1.3.1'), + ('dask', '2023.9.2'), + ('numba', '0.58.1'), + ('SciPy-bundle', '2023.07'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + ('setuptools-scm', '8.1.0', { + 'sources': ['setuptools_scm-%(version)s.tar.gz'], + 'checksums': ['42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7'], + }), # sparse needs setuptools-scm>=8 + ('sparse', '0.15.4', { + 'checksums': ['d4b1c57d24ff0f64f2fd5b5a95b49b7fb84ed207a26d7d58ce2764dcc5c72b84'], + }), + ('dask-glm', '0.3.2', { + 'checksums': ['c947a566866698a01d79978ae73233cb5e838ad5ead6085143582c5e930b9a4a'], + }), + ('distributed', '2023.9.2', { + 'checksums': ['b76b43be6a297c6cc6dc4eac7f5a05a8c6834aaf025ed37395d1d830448d540e'], + }), + ('multipledispatch', '1.0.0', { + 'checksums': ['5c839915465c68206c3e9c473357908216c28383b425361e5d144594bf85a7e0'], + }), + ('packaging', '24.1', { + 'checksums': ['026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002'], + }), + (name, version, { + 'modulename': 'dask_ml', + 'sources': ['dask_ml-%(version)s.tar.gz'], + 'checksums': ['7956910a49e1e31944280fdb311adf245da11ef410d67deb7a05c67c7d0c4498'], + }), +] + +moduleclass = 'ai' From 45aadd9b6883717fc743de39792960fa99b80f73 Mon Sep 17 00:00:00 2001 From: maximm Date: Thu, 24 Oct 2024 11:41:40 +0200 Subject: [PATCH 27/76] adding easyconfigs: ReFrame-4.6.3-GCCcore-13.3.0.eb --- .../r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb diff --git a/easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb new file mode 100644 index 00000000000..6541b14b799 --- /dev/null +++ b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.6.3-GCCcore-13.3.0.eb @@ -0,0 +1,76 @@ +easyblock = 'PythonBundle' + +name = 'ReFrame' +version = '4.6.3' + +homepage = 'https://github.com/reframe-hpc/reframe' +description = '''ReFrame is a framework for writing regression tests for HPC systems.''' + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +builddependencies = [ + ('binutils', '2.42'), + ('cURL', '8.7.1'), # Used by ReFrame to download pip in the bootstrap +] + +# Note that for ReFrame's CPU autodetect to work +# the system also needs to provide (new enough versions of) these dependencies +dependencies = [ + ('Python', '3.12.3'), + ('libxslt', '1.1.42'), # Required by lxml, which is installed by ReFrame's bootstrap installer + ('libxml2', '2.12.7'), # Required by lxml, which is installed by ReFrame's bootstrap installer +] + +use_pip = True + +exts_list = [ + # ReFrame's bootstrap script is intended to run with zero dependencies. It downloads all python deps for ReFrame + # into a %(installdir)/external directory. ReFrame's main executable (reframe) adds this dir to python's sys.path + # so that ReFrame (and only ReFrame) will find & use all of these dependencies. + # In EasyBuild, we should adhere to this installation method because a) it is how ReFrame is meant to be used and + # b) it isolates all of ReFrame dependencies from any other python code you run. Thus, there is no chance that + # a test will pick up on any python deps from ReFrame itself. + # For this to work, we need to disable download_dep_fail and sanity_pip_check, as both are _expected_ to fail + # for this setup. + ('reframe', version, { + # Deps are downloaded to %(installdir)/external, which won't polute the PYTHONPATH, so is ok + 'download_dep_fail': False, + # ReFrame uses its custom sys.path to find necessary packages, they are not on PYTYHONPATH + # Thus, the regular pip sanity check is expected to fail, even if ReFrame would run just fine + 'sanity_pip_check': False, + # Set modulename to False, as to skip the sanity_check-step from extension.py (python -c "import reframe") + # This step would fail, since the regular python interpreter wouldn't find the additional packages in + # %(installdir)/external. That's fine, as ReFrame should never be imported directly, only through the + # reframe command. + 'modulename': False, + 'preinstallopts': "export PATH=%(installdir)s/bin:$PATH && " + "./bootstrap.sh +docs +pygelf && cp -r external %(installdir)s && ", + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/reframe-hpc/reframe/archive/'], + 'checksums': ['0f335e588d21a26d76beb011bc86baf80ba633d875512ecd564d0aeb320fcf2c'], + }), +] + +postinstallcmds = [ + "cp -a tools examples %(installdir)s", + "mkdir -p %(installdir)s/share && cp -a share/completions %(installdir)s/share/completions", + r"sed -i 's@/\(python[0-9.]*\)$@/\1 -S@g' %(installdir)s/bin/reframe", +] + +sanity_check_paths = { + 'files': ['bin/reframe', + 'share/completions/reframe.bash', + 'share/completions/reframe.fish', + 'share/completions/reframe.tcsh'], + 'dirs': ['external', 'lib', 'tools', 'examples'] +} + +sanity_check_commands = ['reframe -V'] + +# Since this is at the GCCcore toolchain level, make sure ReFrame is configured to purge modules before running +# any tests by default +modextravars = { + 'RFM_PURGE_ENVIRONMENT': '1', +} + +moduleclass = 'devel' From 563bfd8bdd1b3aa21d20665688e9bec5ad946cec Mon Sep 17 00:00:00 2001 From: maximm Date: Thu, 24 Oct 2024 13:34:55 +0200 Subject: [PATCH 28/76] adding easyconfigs: ncdu-1.20-GCC-13.3.0.eb --- .../n/ncdu/ncdu-1.20-GCC-13.3.0.eb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb diff --git a/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb b/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb new file mode 100644 index 00000000000..e8f91407acf --- /dev/null +++ b/easybuild/easyconfigs/n/ncdu/ncdu-1.20-GCC-13.3.0.eb @@ -0,0 +1,27 @@ +easyblock = 'ConfigureMake' + +name = 'ncdu' +version = '1.20' + +homepage = 'https://dev.yorhel.nl/ncdu' +description = """Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a + remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular + desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like + environment with ncurses installed.""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} + +source_urls = ['https://dev.yorhel.nl/download/'] +sources = [SOURCE_TAR_GZ] +checksums = ['5fe2bb841abe72374bb242dbb93293c4ae053078432d896a7481b2ff10be9572'] + +dependencies = [ + ('ncurses', '6.5'), +] + +sanity_check_paths = { + 'files': ['bin/%(name)s'], + 'dirs': [], +} + +moduleclass = 'tools' From 2ec7b67caed14a20b247029184824b77a2024a11 Mon Sep 17 00:00:00 2001 From: maxim-masterov Date: Thu, 24 Oct 2024 14:19:50 +0200 Subject: [PATCH 29/76] Add BEDTools and deps --- .../b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb | 53 +++++++++++++++++++ .../b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb | 22 ++++++++ 2 files changed, 75 insertions(+) create mode 100644 easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb create mode 100644 easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb diff --git a/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb new file mode 100644 index 00000000000..6bcbf918ae0 --- /dev/null +++ b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb @@ -0,0 +1,53 @@ +# Author: Maxime Schmitt, University of Luxembourg +# Author: Adam Huffman, The Francis Crick Institute +# +# Based on the work of: Pablo Escobar Lopez +# Swiss Institute of Bioinformatics (SIB) +# Biozentrum - University of Basel + +easyblock = 'MakeCp' + +name = 'BEDTools' +version = '2.31.1' + +homepage = 'https://bedtools.readthedocs.io/' +description = """BEDTools: a powerful toolset for genome arithmetic. +The BEDTools utilities allow one to address common genomics tasks such as finding feature overlaps and +computing coverage. +The utilities are largely based on four widely-used file formats: BED, GFF/GTF, VCF, and SAM/BAM.""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} + +source_urls = ['https://github.com/arq5x/bedtools2/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['79a1ba318d309f4e74bfa74258b73ef578dccb1045e270998d7fe9da9f43a50e'] + +builddependencies = [ + ('Python', '3.12.3'), +] +dependencies = [ + ('XZ', '5.4.5'), + ('zlib', '1.3.1'), + ('bzip2', '1.0.8'), + ('BamTools', '2.5.2'), +] + +buildopts = 'CXX="$CXX"' + +files_to_copy = [ + 'bin', + 'docs', + 'data', + 'genomes', + 'scripts', + 'test', +] + +sanity_check_paths = { + 'files': ['bin/%(namelower)s', 'bin/pairToBed', 'bin/mergeBed', 'bin/bedToBam', 'bin/fastaFromBed'], + 'dirs': ['bin', 'docs', 'data', 'genomes', 'scripts', 'test'], +} + +sanity_check_commands = ['%(namelower)s --help'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb new file mode 100644 index 00000000000..23e1ad0e743 --- /dev/null +++ b/easybuild/easyconfigs/b/BamTools/BamTools-2.5.2-GCC-13.3.0.eb @@ -0,0 +1,22 @@ +# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild +name = 'BamTools' +version = '2.5.2' + +homepage = 'https://github.com/pezmaster31/bamtools' +description = "BamTools provides both a programmer's API and an end-user's toolkit for handling BAM files." + +toolchain = {'name': 'GCC', 'version': '13.3.0'} +toolchainopts = {'pic': True} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['4d8b84bd07b673d0ed41031348f10ca98dd6fa6a4460f9b9668d6f1d4084dfc8'] + +builddependencies = [ + ('CMake', '3.29.3'), +] + +# https://github.com/pezmaster31/bamtools +github_account = 'pezmaster31' + +moduleclass = 'bio' From c2c9d2aec78966c55b91776334d5f76915093502 Mon Sep 17 00:00:00 2001 From: WilleBell Date: Mon, 28 Oct 2024 10:34:57 +0100 Subject: [PATCH 30/76] pydot as dependency instead of extension --- easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb b/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb index 0717fc8e997..9b14f9ce1be 100644 --- a/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb +++ b/easybuild/easyconfigs/s/SciANN/SciANN-0.7.0.1-foss-2022a.eb @@ -21,15 +21,13 @@ dependencies = [ ('pymatgen', '2023.3.10'), # for pybtex and latexcodec ('matplotlib', '3.5.2'), ('pygraphviz', '1.10'), + ('pydot', '1.4.2'), ] use_pip = True sanity_pip_check = True exts_list = [ - ('pydot', '2.0.0', { - 'checksums': ['60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235'], - }), (name, version, { 'modulename': 'sciann', 'checksums': ['7d7acf61346b4201628c5656e2c904e9a9c7cda78086e76d075b5c7bb90adf3c'], From c796315c43a2a30ee2a06af4059d3553a044a342 Mon Sep 17 00:00:00 2001 From: vsc46128 Date: Mon, 28 Oct 2024 17:46:57 +0100 Subject: [PATCH 31/76] adding easyconfigs: tbl2asn-20230713-GCCcore-12.3.0.eb --- .../tbl2asn-20230713-GCCcore-12.3.0.eb | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb diff --git a/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..1e03c1f4e24 --- /dev/null +++ b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb @@ -0,0 +1,88 @@ +# This file is an EasyBuild reciPY as per https://easybuilders.github.io/easybuild/ +# Author: Pablo Escobar Lopez +# sciCORE - University of Basel +# SIB Swiss Institute of Bioinformatics +# revised by Ariel Lozano + +easyblock = 'Bundle' + +name = 'tbl2asn' +version = '20230713' + +homepage = 'https://www.ncbi.nlm.nih.gov/genbank/tbl2asn2/' +description = """Tbl2asn is a command-line program that automates the creation of + sequence records for submission to GenBank""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} +builddependencies = [ + ('binutils', '2.40'), + ('patchelf', '0.18.0'), +] + +# libraries that are copied to installdir need to be patched to have an RPATH section +# when EasyBuild is configured to use RPATH linking (required to pass RPATH sanity check); + +default_easyblock = 'CmdCp' + +# It is not entirely clean how long NCBI keeps "older" versions. At April 29, 2022, we had six timestamps/versions, +# reporiting the same verion (tbl2asn --help -> 25.8) but 5 out of 6 (gunzipped) executables have different sha256 +# checksums. + +components = [ + ('libidn', '1.34', { + 'easyblock': 'ConfigureMake', + 'source_urls': [GNU_SOURCE], + 'sources': [SOURCELOWER_TAR_GZ], + 'start_dir': '%(namelower)s-%(version)s', + 'checksums': ['3719e2975f2fb28605df3479c380af2cf4ab4e919e1506527e4c7670afff6e3c'], + }), + (name, version, { + 'source_urls': ['https://ftp.ncbi.nih.gov/toolbox/ncbi_tools/converters/versions/%s/all/' % + (version[:4] + '-' + version[4:6] + '-' + version[6:])], + 'sources': [{'download_filename': 'tbl2asn.linux64.gz', + 'filename': '%(name)s-%(version)s%(versionsuffix)s.gz'}], + 'checksums': ['544c4a2a53f2121fd21c44778fc61980a701ce852ea0142979241c0465c38a0c'], + 'cmds_map': [('.*', "cp %(name)s-%(version)s%(versionsuffix)s tbl2asn")], + 'files_to_copy': [(['tbl2asn'], 'bin')], + }), +] + +postinstallcmds = [ + "if %(rpath_enabled)s; then " + " patchelf --force-rpath --set-rpath %(installdir)s/lib %(installdir)s/bin/tbl2asn;" + "fi", + "chmod +x %(installdir)s/bin/tbl2asn", +] + +sanity_check_paths = { + 'files': ['bin/tbl2asn', 'bin/idn', 'lib/libidn.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +sanity_check_commands = ['tbl2asn --help'] + +moduleclass = 'bio' + +# " for lib in $(ls %(installdir)s/lib/libidn.so*); do " +# " echo setting RPATH in $lib;" +# " patchelf --force-rpath --set-rpath %(installdir)s/lib/libidn.so.11 %(installdir)s/bin/tbl2asn" +# " done;" +# +# + +""" + " for lib in $(ls %(installdir)s/lib/libidn.so*); do " + " patchelf --force-rpath --set-rpath '$ORIGIN' $lib;" + " done;" + "fi", + + "if %(rpath_enabled)s; then " + " for lib in $(ls %(installdir)s/lib/libidn.so*); do " + " patchelf --force-rpath --set-rpath %(installdir)s/bin/tbl2asn $lib;" + " done;" + "fi", + + "if %(rpath_enabled)s; then " + " patchelf --force-rpath --set-rpath '$ORIGIN' %(installdir)s/lib/libidn.so.11;" + "fi", +""" \ No newline at end of file From 206e1526e91256577afbf6a661b8e2e9dfee3f69 Mon Sep 17 00:00:00 2001 From: vsc46128 Date: Mon, 28 Oct 2024 17:50:53 +0100 Subject: [PATCH 32/76] clean up config --- .../tbl2asn-20230713-GCCcore-12.3.0.eb | 26 +------------------ 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb index 1e03c1f4e24..68563984e25 100644 --- a/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb @@ -61,28 +61,4 @@ sanity_check_paths = { sanity_check_commands = ['tbl2asn --help'] -moduleclass = 'bio' - -# " for lib in $(ls %(installdir)s/lib/libidn.so*); do " -# " echo setting RPATH in $lib;" -# " patchelf --force-rpath --set-rpath %(installdir)s/lib/libidn.so.11 %(installdir)s/bin/tbl2asn" -# " done;" -# -# - -""" - " for lib in $(ls %(installdir)s/lib/libidn.so*); do " - " patchelf --force-rpath --set-rpath '$ORIGIN' $lib;" - " done;" - "fi", - - "if %(rpath_enabled)s; then " - " for lib in $(ls %(installdir)s/lib/libidn.so*); do " - " patchelf --force-rpath --set-rpath %(installdir)s/bin/tbl2asn $lib;" - " done;" - "fi", - - "if %(rpath_enabled)s; then " - " patchelf --force-rpath --set-rpath '$ORIGIN' %(installdir)s/lib/libidn.so.11;" - "fi", -""" \ No newline at end of file +moduleclass = 'bio' \ No newline at end of file From 5af534809483cf5d2b0d70beb583375d0ca4bc3c Mon Sep 17 00:00:00 2001 From: WilleBell Date: Mon, 28 Oct 2024 18:12:14 +0100 Subject: [PATCH 33/76] adding easyconfigs: PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb --- .../PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb diff --git a/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb new file mode 100644 index 00000000000..274fd6d6c42 --- /dev/null +++ b/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb @@ -0,0 +1,60 @@ +easyblock = 'JAR' + +name = 'PoPoolation-TE2' +version = '1.10.03' + +homepage = 'https://sourceforge.net/p/popoolation-te2/wiki/Home/' +description = """ +PoPoolationTE2: enables comparative population genomics of transposable elements (TE). As a +major innovation PoPoolation TE2 introduces the physical pileup file which allows to +homogenize the power to identify TEs and thus enables an unbiased comparison of TE abundance +between samples, where samples could be pooled populations, tissues or sequenced individuals. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.3.0'} + +builddependencies = [('binutils', '2.40')] + +dependencies = [ + ('BWA', '0.7.17'), + ('Java', '17', '', SYSTEM), +] + +source_urls = ['https://sourceforge.net/projects/popoolation-te2/files/'] +sources = [ + { + 'filename': 'popte2.jar', + 'download_filename': 'popte2-v%(version)s.jar', + }, + 'walkthrough-refgenome.zip', + 'walkthrough-reads.zip', + +] +checksums = [ + {'popte2.jar': '95eca422a6d295277d20ec1cbbcb9000bad1f380ae7cba9005f20ff211907e32'}, + {'walkthrough-refgenome.zip': 'ce3cb0b952a99fcae6b348cd888ee6f4c3a45d7e0b208e211ecb290cacde618c'}, + {'walkthrough-reads.zip': '909a8f1d507bb20518f6ef1ac313a59b8e8b02b70fc911e2d6d6efdce2e258f3'}, +] + +postinstallcmds = [ + "cd %(installdir)s && unzip walkthrough-refgenome.zip", + "cd %(installdir)s && unzip walkthrough-reads.zip", + "cd %(installdir)s && rm walkthrough-refgenome.zip walkthrough-reads.zip", +] + +sanity_check_commands = [ + 'java -jar $EBROOTPOPOOLATIONMINTE2/popte2.jar --help 2>&1 | grep "Usage: java"', +] + +sanity_check_paths = { + 'files': ['popte2.jar'], + 'dirs': ['walkthrough-refgenome', 'walkthrough-reads'], +} + +modloadmsg = """ +To execute PoPoolation-TE2 run: java -jar $EBROOTPOPOOLATIONMINTE2/popte2.jar +The reference genome and the Te-hierachy can be found in $EBROOTPOPOOLATIONMINTE2/walkthrough-refgenome +Reads provided by the developer can be found under $EBROOTPOPOOLATIONMINTE2/walkthrough-reads +""" + +moduleclass = 'bio' From 8bf310cc1a2901cebd5ddfd308dfc3626c375929 Mon Sep 17 00:00:00 2001 From: vsc46128 Date: Mon, 28 Oct 2024 18:19:49 +0100 Subject: [PATCH 34/76] add blank line to end of file --- .../easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb index 68563984e25..dcf4c39e8d0 100644 --- a/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/t/tbl2asn/tbl2asn-20230713-GCCcore-12.3.0.eb @@ -61,4 +61,4 @@ sanity_check_paths = { sanity_check_commands = ['tbl2asn --help'] -moduleclass = 'bio' \ No newline at end of file +moduleclass = 'bio' From cb49d8c1f417ff6e4c5f736916a76751f72ce290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Mon, 28 Oct 2024 23:57:53 +0100 Subject: [PATCH 35/76] Add bot for tagging new and updated ECs --- .github/workflows/tagbot.py | 169 +++++++++++++++++++++++++++++++++++ .github/workflows/tagbot.yml | 25 ++++++ 2 files changed, 194 insertions(+) create mode 100644 .github/workflows/tagbot.py create mode 100644 .github/workflows/tagbot.yml diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py new file mode 100644 index 00000000000..0583e9ee0e7 --- /dev/null +++ b/.github/workflows/tagbot.py @@ -0,0 +1,169 @@ +import os +import git +import requests +import json +import difflib +from datetime import datetime +from pathlib import Path + + +def get_first_commit_date(repo, file_path): + print(f"Checking commit dates for {file_path}") + commits = list(repo.iter_commits(paths=file_path)) + if commits: + return commits[-1].committed_date + else: + print(f"{file_path} has no commit info, putting it last") + return datetime.datetime.min + + +def sort_by_added_date(repo, file_paths): + print("Compute first commit dates") + files_with_dates = [(get_first_commit_date(repo, file_path), file_path) for file_path in file_paths] + sorted_files = sorted(files_with_dates, reverse=True) + return [file for date, file in sorted_files] + + +def similar_easyconfigs(repo, new_file): + possible_neighbours = [x for x in new_file.parent.glob('*.eb') if x != new_file] + return sort_by_added_date(repo, possible_neighbours)[:3] # top 3 choices + + +def diff(old, new): + print(f"Diffing {old} vs {new}") + with open(old, 'r') as old_file, open(new, 'r') as new_file: + old_lines = list(old_file) + new_lines = list(new_file) + return ''.join(difflib.unified_diff( + old_lines, + new_lines, + fromfile=str(old), + tofile=str(new))) + + +def pr_ecs(pr_diff): + news_ecs = [] + changed_ecs = [] + for item in pr_diff: + if item.a_path.endswith('.eb'): + if item.change_type == 'A': + new_ecs.append(Path(item.a_path)) + else: + changed_ecs.append(Path(item.a_path)) + return new_ecs, changed_ecs + + +GITHUB_API_URL = 'https://api.github.com' +event_path = os.getenv("GITHUB_EVENT_PATH") +token = os.getenv("GH_TOKEN") +repo = os.getenv("GITHUB_REPOSITORY") +base_branch_name = os.getenv("GITHUB_BASE_REF") +pr_branch_name = os.getenv("GITHUB_HEAD_REF") + +with open(event_path) as f: + data = json.load(f) + +pr_number = data['pull_request']['number'] + +print("PR number:", pr_number) +print("Repo:", repo) +print("Base branch name:", base_branch_name) +print("PR branch name:", pr_branch_name) + +gitrepo = git.Repo(".") +branches = {x.name: x for x in gitrepo.remote().refs} +base_branch = branches['origin/' + base_branch_name] +pr_branch = branches['origin/' + pr_branch_name] + +pr_diff = base_branch.commit.diff(pr_branch.commit) +new_ecs, changed_ecs = pr_ecs(pr_diff) + +print("Changed ECs:", changed_ecs) +print("Newly added ECs:", new_ecs) + +new_software = False +updated_software = False +comment = '' +for new_file in new_ecs: + neighbours = similar_easyconfigs(gitrepo, new_file) + print(f"Found {len(neighbours)} neighbours for {new_file}") + if neighbours: + updated_software = True + print(f"Diffs for {new_file}") + comment += f'#### Updated software `{new_file.name}`\n\n' + + for neighbour in neighbours: + print(f"against {neighbour}") + comment += '
\n' + comment += f'Diff against {neighbour.name}\n\n' + comment += f'[{neighbour}](https://github.com/{repo}/blob/{base_branch_name}/{neighbour})\n\n' + comment += '```diff\n' + comment += diff(neighbour, new_file) + comment += '```\n
\n' + else: + new_software = True + + +print("Adjusting labels") +current_labels = [label['name'] for label in data['pull_request']['labels']] + +labels_add = [] +labels_del = [] +for condition, label in [(changed_ecs, 'change'), (new_software, 'new'), (updated_software, 'update')]: + if condition and label not in current_labels: + labels_add.append(label) + elif not condition and label in current_labels: + labels_del.append(label) + +url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/labels" + +headers = { + "Accept": "application/vnd.github+json", + "Authorization": f"Bearer {token}", + "X-GitHub-Api-Version": f"2022-11-28", +} + +if labels_add: + print(f"Setting labels: {labels_add} at {url}") + response = requests.post(url, headers=headers, json={"labels": labels_add}) + if response.status_code == 200: + print(f"Labels {labels_add} added successfully.") + else: + print(f"Failed to add labels: {response.status_code}, {response.text}") + +for label in labels_del: + print(f"Removing label: {label} at {url}") + response = requests.delete(f'{url}/{label}', headers=headers) + if response.status_code == 200: + print(f"Label {label} removed successfully.") + else: + print(f"Failed to delete label: {response.status_code}, {response.text}") + +# Write comment with diff +if updated_software: + # Search for comment by bot to potentially replace + url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/comments" + response = requests.get(url, headers=headers) + comment_id = None + for existing_comment in response.json(): + if existing_comment["user"]["login"] == "github-actions[bot]": # Bot username in GitHub Actions + comment_id = existing_comment["id"] + + if comment_id: + # Update existing comment + url = f"{GITHUB_API_URL}/repos/{repo}/issues/comments/{comment_id}" + response = requests.patch(url, headers=headers, json={"body": comment}) + if response.status_code == 200: + print("Comment updated successfully.") + else: + print(f"Failed to update comment: {response.status_code}, {response.text}") + else: + # Post a new comment + url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/comments" + response = requests.post(url, headers=headers, json={"body": comment}) + if response.status_code == 201: + print("Comment posted successfully.") + else: + print(f"Failed to post comment: {response.status_code}, {response.text}") + + diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml new file mode 100644 index 00000000000..1c45d57cd76 --- /dev/null +++ b/.github/workflows/tagbot.yml @@ -0,0 +1,25 @@ +name: Tagbot +on: [pull_request] + +permissions: + pull-requests: write + +jobs: + tagbot: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + + - name: set up Python + uses: actions/setup-python@v5 + with: + python-version: 3.12 + + - name: Get packages + run: pip install gitpython requests + + - name: Tag and comment + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: python .github/workflows/tagbot.py + From 7eb56cc5b50779e02c66039991d9a165b8cdb4af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Tue, 29 Oct 2024 00:20:52 +0100 Subject: [PATCH 36/76] Add a new easyconfig as an example. --- .../n/networkx/networkx-3.4.2-gfbf-2024a.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb new file mode 100644 index 00000000000..9adfd4d5246 --- /dev/null +++ b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'networkx' +version = '3.4.2' + +homepage = 'https://pypi.python.org/pypi/networkx' +description = """NetworkX is a Python package for the creation, manipulation, +and study of the structure, dynamics, and functions of complex networks.""" + +toolchain = {'name': 'gfbf', 'version': '2024a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1'] + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), # required for numpy, scipy, ... +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' From a5b95e8875fcae4022771fd4aebd48c9d0f777ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Tue, 29 Oct 2024 00:28:57 +0100 Subject: [PATCH 37/76] Fix style errors in tagbot --- .github/workflows/tagbot.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 0583e9ee0e7..5134dbae6ef 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -26,7 +26,7 @@ def sort_by_added_date(repo, file_paths): def similar_easyconfigs(repo, new_file): possible_neighbours = [x for x in new_file.parent.glob('*.eb') if x != new_file] - return sort_by_added_date(repo, possible_neighbours)[:3] # top 3 choices + return sort_by_added_date(repo, possible_neighbours)[:3] # top 3 choices def diff(old, new): @@ -39,10 +39,10 @@ def diff(old, new): new_lines, fromfile=str(old), tofile=str(new))) - + def pr_ecs(pr_diff): - news_ecs = [] + new_ecs = [] changed_ecs = [] for item in pr_diff: if item.a_path.endswith('.eb'): @@ -111,16 +111,16 @@ def pr_ecs(pr_diff): labels_del = [] for condition, label in [(changed_ecs, 'change'), (new_software, 'new'), (updated_software, 'update')]: if condition and label not in current_labels: - labels_add.append(label) + labels_add.append(label) elif not condition and label in current_labels: - labels_del.append(label) + labels_del.append(label) url = f"{GITHUB_API_URL}/repos/{repo}/issues/{pr_number}/labels" headers = { "Accept": "application/vnd.github+json", "Authorization": f"Bearer {token}", - "X-GitHub-Api-Version": f"2022-11-28", + "X-GitHub-Api-Version": "2022-11-28", } if labels_add: @@ -165,5 +165,3 @@ def pr_ecs(pr_diff): print("Comment posted successfully.") else: print(f"Failed to post comment: {response.status_code}, {response.text}") - - From bbaf8bdeda34c154da332b67e8791d755892c4a8 Mon Sep 17 00:00:00 2001 From: Cintia Willemyns <115622907+WilleBell@users.noreply.github.com> Date: Tue, 29 Oct 2024 09:40:36 +0100 Subject: [PATCH 38/76] Set JAVA version to variant of toolchain --- .../p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb index 274fd6d6c42..e93f4a079c6 100644 --- a/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/p/PoPoolation-TE2/PoPoolation-TE2-1.10.03-GCCcore-12.3.0.eb @@ -17,7 +17,7 @@ builddependencies = [('binutils', '2.40')] dependencies = [ ('BWA', '0.7.17'), - ('Java', '17', '', SYSTEM), + ('Java', '11', '', SYSTEM), ] source_urls = ['https://sourceforge.net/projects/popoolation-te2/files/'] From 12736996e8350448bd368e6e8de0f7c5d21eb238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Tue, 29 Oct 2024 22:58:34 +0100 Subject: [PATCH 39/76] Rework git refs --- .github/workflows/tagbot.py | 13 +++++++------ .github/workflows/tagbot.yml | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 5134dbae6ef..3598b6bc0a9 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -58,7 +58,7 @@ def pr_ecs(pr_diff): token = os.getenv("GH_TOKEN") repo = os.getenv("GITHUB_REPOSITORY") base_branch_name = os.getenv("GITHUB_BASE_REF") -pr_branch_name = os.getenv("GITHUB_HEAD_REF") +pr_ref_name = os.getenv("GITHUB_REF_NAME") with open(event_path) as f: data = json.load(f) @@ -68,14 +68,15 @@ def pr_ecs(pr_diff): print("PR number:", pr_number) print("Repo:", repo) print("Base branch name:", base_branch_name) -print("PR branch name:", pr_branch_name) +print("PR ref:", pr_ref_name) gitrepo = git.Repo(".") -branches = {x.name: x for x in gitrepo.remote().refs} -base_branch = branches['origin/' + base_branch_name] -pr_branch = branches['origin/' + pr_branch_name] -pr_diff = base_branch.commit.diff(pr_branch.commit) + +target_commit = gitrepo.commit('origin/' + base_branch_name) +pr_commit = gitrepo.commit('pull/' + pr_ref_name) +pr_diff = target_commit.diff(pr_commit) + new_ecs, changed_ecs = pr_ecs(pr_diff) print("Changed ECs:", changed_ecs) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 1c45d57cd76..68c8247c687 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -9,6 +9,8 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 - name: set up Python uses: actions/setup-python@v5 From 878828c69367f0a7274765553b9645ff228f3780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Tue, 29 Oct 2024 23:19:17 +0100 Subject: [PATCH 40/76] Tone down debug verboseness --- .github/workflows/tagbot.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 3598b6bc0a9..79c698306ab 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -8,7 +8,6 @@ def get_first_commit_date(repo, file_path): - print(f"Checking commit dates for {file_path}") commits = list(repo.iter_commits(paths=file_path)) if commits: return commits[-1].committed_date @@ -18,7 +17,6 @@ def get_first_commit_date(repo, file_path): def sort_by_added_date(repo, file_paths): - print("Compute first commit dates") files_with_dates = [(get_first_commit_date(repo, file_path), file_path) for file_path in file_paths] sorted_files = sorted(files_with_dates, reverse=True) return [file for date, file in sorted_files] @@ -30,7 +28,6 @@ def similar_easyconfigs(repo, new_file): def diff(old, new): - print(f"Diffing {old} vs {new}") with open(old, 'r') as old_file, open(new, 'r') as new_file: old_lines = list(old_file) new_lines = list(new_file) From de85cbb84e1f70c3cde0a627f217f74392935e26 Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Wed, 30 Oct 2024 10:50:00 +0100 Subject: [PATCH 41/76] OpenBLAS sequential with 64 bit interface --- .../OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb new file mode 100644 index 00000000000..8b0c54b4248 --- /dev/null +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb @@ -0,0 +1,55 @@ +name = 'OpenBLAS' +version = '0.3.27' +versionsuffix = '-seq-iface64' + +homepage = 'https://www.openblas.net/' +description = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." + +toolchain = {'name': 'GCC', 'version': '13.2.0'} + +source_urls = [ + # order matters, trying to download the large.tgz/timing.tgz LAPACK tarballs from GitHub causes trouble + 'https://www.netlib.org/lapack/timing/', + 'https://github.com/xianyi/OpenBLAS/archive/', +] +sources = ['v%(version)s.tar.gz'] +patches = [ + ('large.tgz', '.'), + ('timing.tgz', '.'), + 'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch', + 'OpenBLAS-0.3.21_fix-order-vectorization.patch', + 'OpenBLAS-0.3.26_lapack_qr_noninittest.patch', + 'OpenBLAS-0.3.27_fix_zscal.patch', + 'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch', +] +checksums = [ + {'v0.3.27.tar.gz': 'aa2d68b1564fe2b13bc292672608e9cdeeeb6dc34995512e65c3b10f4599e897'}, + {'large.tgz': 'f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1'}, + {'timing.tgz': '999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af'}, + {'OpenBLAS-0.3.15_workaround-gcc-miscompilation.patch': + 'e6b326fb8c4a8a6fd07741d9983c37a72c55c9ff9a4f74a80e1352ce5f975971'}, + {'OpenBLAS-0.3.21_fix-order-vectorization.patch': + '08af834e5d60441fd35c128758ed9c092ba6887c829e0471ecd489079539047d'}, + {'OpenBLAS-0.3.26_lapack_qr_noninittest.patch': '4781bf1d7b239374fd8069e15b4e2c0ef0e8efaa1a7d4c33557bd5b27e5de77c'}, + {'OpenBLAS-0.3.27_fix_zscal.patch': '9210d7b66538dabaddbe1bfceb16f8225708856f60876ca5561b19d3599f9fd1'}, + {'OpenBLAS-0.3.27_riscv-drop-static-fortran-flag.patch': + 'f374e41efffd592ab1c9034df9e7abf1045ed151f4fc0fd0da618ce9826f2d4b'}, +] + +builddependencies = [ + ('make', '4.4.1'), + # required by LAPACK test suite + ('Python', '3.11.5'), +] + +buildopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 " +testopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 " +installopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 " + +run_lapack_tests = True +max_failing_lapack_tests_num_errors = 150 + +# extensive testing can be enabled by uncommenting the line below +# runtest = 'PATH=.:$PATH lapack-timing' + +moduleclass = 'numlib' From 85cb7520689f4da69fd77dc5149f6bd178bf69d6 Mon Sep 17 00:00:00 2001 From: WilleBell Date: Wed, 30 Oct 2024 11:52:03 +0100 Subject: [PATCH 42/76] remove setuptools-scm extension --- .../easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb index 9ff4d7c1b9c..fd593a4bb09 100644 --- a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb +++ b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb @@ -25,11 +25,9 @@ use_pip = True sanity_pip_check = True exts_list = [ - ('setuptools-scm', '8.1.0', { - 'sources': ['setuptools_scm-%(version)s.tar.gz'], - 'checksums': ['42dea1b65771cba93b7a515d65a65d8246e560768a66b9106a592c8e7f26c8a7'], - }), # sparse needs setuptools-scm>=8 ('sparse', '0.15.4', { + # replace use of 'version_file' (which requires setuptools-scm >= 8.0) with 'write_to' + 'preinstallopts': "sed -i 's/^version_file/write_to/' pyproject.toml && ", 'checksums': ['d4b1c57d24ff0f64f2fd5b5a95b49b7fb84ed207a26d7d58ce2764dcc5c72b84'], }), ('dask-glm', '0.3.2', { From 126524215669128d5168d53a6d050d5eccbe29e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Wed, 30 Oct 2024 18:31:13 +0100 Subject: [PATCH 43/76] Protect workflow against modifications. Missing newline before headers --- .github/workflows/tagbot.py | 4 ++-- .github/workflows/tagbot.yml | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 79c698306ab..8a44c8ad38b 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -83,7 +83,7 @@ def pr_ecs(pr_diff): updated_software = False comment = '' for new_file in new_ecs: - neighbours = similar_easyconfigs(gitrepo, new_file) + neighbours = similar_easyconfigs(gitrepo, new_file, new_ecs) print(f"Found {len(neighbours)} neighbours for {new_file}") if neighbours: updated_software = True @@ -97,7 +97,7 @@ def pr_ecs(pr_diff): comment += f'[{neighbour}](https://github.com/{repo}/blob/{base_branch_name}/{neighbour})\n\n' comment += '```diff\n' comment += diff(neighbour, new_file) - comment += '```\n\n' + comment += '```\n\n\n' else: new_software = True diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 68c8247c687..cea22e430e9 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -1,17 +1,20 @@ name: Tagbot on: [pull_request] -permissions: - pull-requests: write - jobs: tagbot: runs-on: ubuntu-20.04 + permissions: + pull-requests: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 + - run: | + # Make sure the script is unmodified + echo "01ddabda0825925dea0f8aa9b84b58b3d2973bb4837651d0ecf0ebe62904f67b .github/workflows/tagbot.py"|sha256sum --check --status + - name: set up Python uses: actions/setup-python@v5 with: From b74b980f07f7b01e6549b68220bd2b4d4c933c1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Wed, 30 Oct 2024 18:35:30 +0100 Subject: [PATCH 44/76] Fix typo --- .github/workflows/tagbot.py | 2 +- .github/workflows/tagbot.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 8a44c8ad38b..b361ba3641c 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -83,7 +83,7 @@ def pr_ecs(pr_diff): updated_software = False comment = '' for new_file in new_ecs: - neighbours = similar_easyconfigs(gitrepo, new_file, new_ecs) + neighbours = similar_easyconfigs(gitrepo, new_file) print(f"Found {len(neighbours)} neighbours for {new_file}") if neighbours: updated_software = True diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index cea22e430e9..f9ec29a0f08 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -13,7 +13,7 @@ jobs: - run: | # Make sure the script is unmodified - echo "01ddabda0825925dea0f8aa9b84b58b3d2973bb4837651d0ecf0ebe62904f67b .github/workflows/tagbot.py"|sha256sum --check --status + echo "9763efd8ceb7b8fb85573e8180e8b0dcac1a4d53d5b7a69fbbf0ac8d4584ccd9 .github/workflows/tagbot.py"|sha256sum --check --status - name: set up Python uses: actions/setup-python@v5 From e0feb27e56f169513967e47a692e5de22b38b409 Mon Sep 17 00:00:00 2001 From: Maxim Date: Thu, 31 Oct 2024 11:40:29 +0100 Subject: [PATCH 45/76] Update BEDTools-2.31.1-GCC-13.3.0.eb --- .../easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb index 6bcbf918ae0..8503277b570 100644 --- a/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb +++ b/easybuild/easyconfigs/b/BEDTools/BEDTools-2.31.1-GCC-13.3.0.eb @@ -44,8 +44,8 @@ files_to_copy = [ ] sanity_check_paths = { - 'files': ['bin/%(namelower)s', 'bin/pairToBed', 'bin/mergeBed', 'bin/bedToBam', 'bin/fastaFromBed'], - 'dirs': ['bin', 'docs', 'data', 'genomes', 'scripts', 'test'], + 'files': ['bin/%s' % x for x in ['bedtools', 'pairToBed', 'mergeBed', 'bedToBam', 'fastaFromBed']], + 'dirs': files_to_copy, } sanity_check_commands = ['%(namelower)s --help'] From 15c7a2db6bc7000727b532342478ea044f713403 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Thu, 31 Oct 2024 13:50:35 +0100 Subject: [PATCH 46/76] Drop example update easyconfig from PR --- .../n/networkx/networkx-3.4.2-gfbf-2024a.eb | 24 ------------------- 1 file changed, 24 deletions(-) delete mode 100644 easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb deleted file mode 100644 index 9adfd4d5246..00000000000 --- a/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb +++ /dev/null @@ -1,24 +0,0 @@ -easyblock = 'PythonPackage' - -name = 'networkx' -version = '3.4.2' - -homepage = 'https://pypi.python.org/pypi/networkx' -description = """NetworkX is a Python package for the creation, manipulation, -and study of the structure, dynamics, and functions of complex networks.""" - -toolchain = {'name': 'gfbf', 'version': '2024a'} - -sources = [SOURCE_TAR_GZ] -checksums = ['307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1'] - -dependencies = [ - ('Python', '3.12.3'), - ('SciPy-bundle', '2024.05'), # required for numpy, scipy, ... -] - -use_pip = True -download_dep_fail = True -sanity_pip_check = True - -moduleclass = 'tools' From 6a4e1fe808ac0989454d2bc48fbb710a4edd9dd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Thu, 31 Oct 2024 13:51:32 +0100 Subject: [PATCH 47/76] Update workflow OS to ubuntu 24.04 --- .github/workflows/tagbot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index f9ec29a0f08..f7cd539226f 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -3,7 +3,7 @@ on: [pull_request] jobs: tagbot: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 permissions: pull-requests: write steps: From f469159872324254494c581b6e61544b4c39e811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Thu, 31 Oct 2024 16:23:50 +0100 Subject: [PATCH 48/76] Limit number of diffs for large PRs --- .github/workflows/tagbot.py | 39 ++++++++++++++++++++++++++---------- .github/workflows/tagbot.yml | 2 +- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index b361ba3641c..9c9710e9a46 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -24,7 +24,7 @@ def sort_by_added_date(repo, file_paths): def similar_easyconfigs(repo, new_file): possible_neighbours = [x for x in new_file.parent.glob('*.eb') if x != new_file] - return sort_by_added_date(repo, possible_neighbours)[:3] # top 3 choices + return sort_by_added_date(repo, possible_neighbours) def diff(old, new): @@ -79,18 +79,38 @@ def pr_ecs(pr_diff): print("Changed ECs:", changed_ecs) print("Newly added ECs:", new_ecs) -new_software = False -updated_software = False -comment = '' +new_software = 0 +updated_software = 0 +to_diff = dict() for new_file in new_ecs: neighbours = similar_easyconfigs(gitrepo, new_file) print(f"Found {len(neighbours)} neighbours for {new_file}") if neighbours: - updated_software = True - print(f"Diffs for {new_file}") - comment += f'#### Updated software `{new_file.name}`\n\n' + updated_software += 1 + to_diff[new_file] = neighbours + else: + new_software += 1 + +print(f"Generating comment for {len(to_diff)} updates softwares") +# Limit comment size for large PRs: +if len(to_diff) > 20: # Too much, either bad PR or some broad change. Not diffing. + max_diffs_per_software = 0 +elif len(to_diff) > 10: + max_diffs_per_software = 1 +elif len(to_diff) > 5: + max_diffs_per_software = 2 +else: + max_diffs_per_software = 3 - for neighbour in neighbours: +comment = '' +if max_diffs_per_software > 0: + for new_file, neighbours in to_diff.items(): + compare_neighbours = neighbours[:max_diffs_per_software] + if compare_neighbours: + print(f"Diffs for {new_file}") + comment += f'#### Updated software `{new_file.name}`\n\n' + + for neighbour in compare_neighbours: print(f"against {neighbour}") comment += '
\n' comment += f'Diff against {neighbour.name}\n\n' @@ -98,9 +118,6 @@ def pr_ecs(pr_diff): comment += '```diff\n' comment += diff(neighbour, new_file) comment += '```\n
\n\n' - else: - new_software = True - print("Adjusting labels") current_labels = [label['name'] for label in data['pull_request']['labels']] diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index f7cd539226f..1d382dae51d 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -13,7 +13,7 @@ jobs: - run: | # Make sure the script is unmodified - echo "9763efd8ceb7b8fb85573e8180e8b0dcac1a4d53d5b7a69fbbf0ac8d4584ccd9 .github/workflows/tagbot.py"|sha256sum --check --status + echo "8be2d295e8436ce557acc8a4d3b82a639913ae65de0d1a76871f21359b4e8d9f .github/workflows/tagbot.py"|sha256sum --check --status - name: set up Python uses: actions/setup-python@v5 From ef7b6125cb558856f8905c85309451acc0415846 Mon Sep 17 00:00:00 2001 From: Samuel Moors Date: Thu, 31 Oct 2024 18:30:19 +0100 Subject: [PATCH 49/76] add missing perl-bundle-cpan to recent parallel versions --- .../p/parallel/parallel-20230722-GCCcore-12.3.0.eb | 10 ++++++++-- .../p/parallel/parallel-20240322-GCCcore-13.2.0.eb | 10 ++++++++-- .../p/parallel/parallel-20240722-GCCcore-13.3.0.eb | 10 ++++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/easybuild/easyconfigs/p/parallel/parallel-20230722-GCCcore-12.3.0.eb b/easybuild/easyconfigs/p/parallel/parallel-20230722-GCCcore-12.3.0.eb index 7725cf4990a..32a4662d685 100644 --- a/easybuild/easyconfigs/p/parallel/parallel-20230722-GCCcore-12.3.0.eb +++ b/easybuild/easyconfigs/p/parallel/parallel-20230722-GCCcore-12.3.0.eb @@ -14,13 +14,19 @@ checksums = ['55f991ad195a72f0abfaf1ede8fc1d03dd255cac91bc5eb900f9aa2873d1ff87'] builddependencies = [('binutils', '2.40')] -dependencies = [('Perl', '5.36.1')] +dependencies = [ + ('Perl', '5.36.1'), + ('Perl-bundle-CPAN', '5.36.1'), +] sanity_check_paths = { 'files': ['bin/parallel'], 'dirs': [] } -sanity_check_commands = ["parallel --help"] +sanity_check_commands = [ + 'parallel --help', + 'time parallel --csv echo < <(echo -e "task1\ntask2\ntask3")', +] moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/parallel/parallel-20240322-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/parallel/parallel-20240322-GCCcore-13.2.0.eb index 53acb414c76..4673651a654 100644 --- a/easybuild/easyconfigs/p/parallel/parallel-20240322-GCCcore-13.2.0.eb +++ b/easybuild/easyconfigs/p/parallel/parallel-20240322-GCCcore-13.2.0.eb @@ -14,13 +14,19 @@ checksums = ['0b17029a203dabf7ba6ca7e52c2d3910fff46b2979476e12a9110920b79e6a95'] builddependencies = [('binutils', '2.40')] -dependencies = [('Perl', '5.38.0')] +dependencies = [ + ('Perl', '5.38.0'), + ('Perl-bundle-CPAN', '5.38.0'), +] sanity_check_paths = { 'files': ['bin/parallel'], 'dirs': [] } -sanity_check_commands = ["parallel --help"] +sanity_check_commands = [ + 'parallel --help', + 'time parallel --csv echo < <(echo -e "task1\ntask2\ntask3")', +] moduleclass = 'tools' diff --git a/easybuild/easyconfigs/p/parallel/parallel-20240722-GCCcore-13.3.0.eb b/easybuild/easyconfigs/p/parallel/parallel-20240722-GCCcore-13.3.0.eb index 92658cc24b7..e3f60b06f2c 100644 --- a/easybuild/easyconfigs/p/parallel/parallel-20240722-GCCcore-13.3.0.eb +++ b/easybuild/easyconfigs/p/parallel/parallel-20240722-GCCcore-13.3.0.eb @@ -14,13 +14,19 @@ checksums = ['c7335471f776af28bea9464ad85a50f2ed120f78fbf75ead6647aeea8e0e53f0'] builddependencies = [('binutils', '2.42')] -dependencies = [('Perl', '5.38.2')] +dependencies = [ + ('Perl', '5.38.2'), + ('Perl-bundle-CPAN', '5.38.2'), +] sanity_check_paths = { 'files': ['bin/parallel'], 'dirs': [] } -sanity_check_commands = ["parallel --help"] +sanity_check_commands = [ + 'parallel --help', + 'time parallel --csv echo < <(echo -e "task1\ntask2\ntask3")', +] moduleclass = 'tools' From 9bcf061ae395e47018b751a8cc16bf8a7c0bd0a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 09:48:59 +0000 Subject: [PATCH 50/76] adding easyconfigs: networkx-3.4.2-gfbf-2024a.eb --- .../n/networkx/networkx-3.4.2-gfbf-2024a.eb | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb diff --git a/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb new file mode 100644 index 00000000000..9adfd4d5246 --- /dev/null +++ b/easybuild/easyconfigs/n/networkx/networkx-3.4.2-gfbf-2024a.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'networkx' +version = '3.4.2' + +homepage = 'https://pypi.python.org/pypi/networkx' +description = """NetworkX is a Python package for the creation, manipulation, +and study of the structure, dynamics, and functions of complex networks.""" + +toolchain = {'name': 'gfbf', 'version': '2024a'} + +sources = [SOURCE_TAR_GZ] +checksums = ['307c3669428c5362aab27c8a1260aa8f47c4e91d3891f48be0141738d8d053e1'] + +dependencies = [ + ('Python', '3.12.3'), + ('SciPy-bundle', '2024.05'), # required for numpy, scipy, ... +] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' From 2865dbcf398ea2f0e8cda181f7048bfa84696d52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 11:21:20 +0100 Subject: [PATCH 51/76] Change tagbot workflow to run on pull_request_target --- .github/workflows/tagbot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 1d382dae51d..2b8c4e3ce1c 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -1,5 +1,5 @@ name: Tagbot -on: [pull_request] +on: [pull_request_target] jobs: tagbot: From d2f33da9d7ddbdf1bb6396c906bd4a50a5a1a945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 11:28:50 +0100 Subject: [PATCH 52/76] Add comments describing permissions on tagbot --- .github/workflows/tagbot.py | 4 ++++ .github/workflows/tagbot.yml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 9c9710e9a46..649dd1dd828 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -1,3 +1,7 @@ +# NOTE: In order to write comment and edit labels, this script requires workflows with write permissions. +# It should not use any untrusted third party code, or any code checked into the repository itself +# as that could indirectly grant PRs the ability to edit labels and comments on PRs. + import os import git import requests diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 2b8c4e3ce1c..74434f0d2c4 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -12,8 +12,8 @@ jobs: fetch-depth: 0 - run: | - # Make sure the script is unmodified - echo "8be2d295e8436ce557acc8a4d3b82a639913ae65de0d1a76871f21359b4e8d9f .github/workflows/tagbot.py"|sha256sum --check --status + # Make sure the script is unmodified as it runs with write permissions + echo "f525f362a99f13764791185da4d45959a632ef54e3b6b865461dabddb1b1df34 .github/workflows/tagbot.py"|sha256sum --check --status - name: set up Python uses: actions/setup-python@v5 From 2ac4ad42ab03137535f805e62cf886aee5216219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 13:53:48 +0100 Subject: [PATCH 53/76] Try using conditional workflow based on if tagbot is modified. --- .github/workflows/tagbot.yml | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 74434f0d2c4..a1b7f673e1c 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -11,9 +11,25 @@ jobs: with: fetch-depth: 0 - - run: | - # Make sure the script is unmodified as it runs with write permissions - echo "f525f362a99f13764791185da4d45959a632ef54e3b6b865461dabddb1b1df34 .github/workflows/tagbot.py"|sha256sum --check --status + - name: Check if file has changed + run: | + if git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD | grep -q .github/workflows/tagbot.py; then + echo "tagbot_modified=true" >> $GITHUB_ENV + else + echo "tagbot_modified=false" >> $GITHUB_ENV + fi + + - name: Post warning comment + if: env.file_modified == 'true' + uses: actions/github-script@v7 + with: + script: | + github.rest.issues.createComment({ + issue_number: ${{ github.event.pull_request.number }}, + owner: context.repo.owner, + repo: context.repo.repo, + body: "⚠️ Warning: The tagbot.py file has been modified. Please review changes carefully." + }) - name: set up Python uses: actions/setup-python@v5 @@ -24,6 +40,7 @@ jobs: run: pip install gitpython requests - name: Tag and comment + if: env.tagbot_modified == 'false' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: python .github/workflows/tagbot.py From 3aed346a76bf91727ac1db30358eb4a4ef2b5973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 20:26:34 +0100 Subject: [PATCH 54/76] Add debug printout temporarily --- .github/workflows/tagbot.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 649dd1dd828..3c02574468c 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -64,6 +64,9 @@ def pr_ecs(pr_diff): with open(event_path) as f: data = json.load(f) +print('env:', os.environ) +print('data:', data) + pr_number = data['pull_request']['number'] print("PR number:", pr_number) From 910b530d0d9039dddeb3f407f41694fd597c8e14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 20:51:02 +0100 Subject: [PATCH 55/76] Add checkout of PR commit --- .github/workflows/tagbot.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index a1b7f673e1c..dd0197456f5 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -9,6 +9,7 @@ jobs: steps: - uses: actions/checkout@v4 with: + ref: "${{ github.event.pull_request.merge_commit_sha }}" fetch-depth: 0 - name: Check if file has changed From 29232d7dd63da65f3bd56de7dc9b631821194daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 21:17:38 +0100 Subject: [PATCH 56/76] Fix tagbot.py to use merge commit sha when diffing --- .github/workflows/tagbot.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 3c02574468c..e5348382bf7 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -59,26 +59,22 @@ def pr_ecs(pr_diff): token = os.getenv("GH_TOKEN") repo = os.getenv("GITHUB_REPOSITORY") base_branch_name = os.getenv("GITHUB_BASE_REF") -pr_ref_name = os.getenv("GITHUB_REF_NAME") with open(event_path) as f: data = json.load(f) -print('env:', os.environ) -print('data:', data) - pr_number = data['pull_request']['number'] +merge_commit_sha = data['pull_request']['merge_commit_sha'] print("PR number:", pr_number) print("Repo:", repo) print("Base branch name:", base_branch_name) -print("PR ref:", pr_ref_name) +print("Merge commit ref:", ) gitrepo = git.Repo(".") - target_commit = gitrepo.commit('origin/' + base_branch_name) -pr_commit = gitrepo.commit('pull/' + pr_ref_name) +pr_commit = gitrepo.commit(merge_commit_sha) pr_diff = target_commit.diff(pr_commit) new_ecs, changed_ecs = pr_ecs(pr_diff) From 3572045db84852caef4e2a1ea007b3c3f9052cdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 21:44:26 +0100 Subject: [PATCH 57/76] Fix typo --- .github/workflows/tagbot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index dd0197456f5..e15a06ba608 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -21,7 +21,7 @@ jobs: fi - name: Post warning comment - if: env.file_modified == 'true' + if: env.tagbot_modified == 'true' uses: actions/github-script@v7 with: script: | From 61d3f6e56bd9749b5942a33f6dc80868d0e27ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 22:41:19 +0100 Subject: [PATCH 58/76] Fix missing printout in tagbot --- .github/workflows/tagbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index e5348382bf7..5ab67361e92 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -69,7 +69,7 @@ def pr_ecs(pr_diff): print("PR number:", pr_number) print("Repo:", repo) print("Base branch name:", base_branch_name) -print("Merge commit ref:", ) +print("Merge commit ref:", merge_commit_sha) gitrepo = git.Repo(".") From 229223c423fec9750f7b32853fbe53980830eede Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Fri, 1 Nov 2024 23:05:46 +0100 Subject: [PATCH 59/76] Add additional label for workflow changes, to highlight for reviewers --- .github/workflows/tagbot.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 5ab67361e92..944571d8e45 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -78,9 +78,11 @@ def pr_ecs(pr_diff): pr_diff = target_commit.diff(pr_commit) new_ecs, changed_ecs = pr_ecs(pr_diff) +modified_workflow = any(item.a_path.startswith('.github/workflows/') for item in pr_diff) print("Changed ECs:", changed_ecs) print("Newly added ECs:", new_ecs) +print("Modified workflow:", modified_workflow) new_software = 0 updated_software = 0 @@ -125,9 +127,14 @@ def pr_ecs(pr_diff): print("Adjusting labels") current_labels = [label['name'] for label in data['pull_request']['labels']] +label_checks = [(changed_ecs, 'change'), + (new_software, 'new'), + (updated_software, 'update'), + (modified_workflow, 'workflow')] + labels_add = [] labels_del = [] -for condition, label in [(changed_ecs, 'change'), (new_software, 'new'), (updated_software, 'update')]: +for condition, label in label_checks: if condition and label not in current_labels: labels_add.append(label) elif not condition and label in current_labels: From 02bfe0a45564d81344b68e903d91831c1905e4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sat, 2 Nov 2024 01:13:17 +0100 Subject: [PATCH 60/76] Rework yml, only run when no merge conflict, fix possible security hole --- .github/workflows/tagbot.py | 17 ++--------------- .github/workflows/tagbot.yml | 29 +++++++---------------------- 2 files changed, 9 insertions(+), 37 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 944571d8e45..51c18184387 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -6,7 +6,6 @@ import git import requests import json -import difflib from datetime import datetime from pathlib import Path @@ -31,17 +30,6 @@ def similar_easyconfigs(repo, new_file): return sort_by_added_date(repo, possible_neighbours) -def diff(old, new): - with open(old, 'r') as old_file, open(new, 'r') as new_file: - old_lines = list(old_file) - new_lines = list(new_file) - return ''.join(difflib.unified_diff( - old_lines, - new_lines, - fromfile=str(old), - tofile=str(new))) - - def pr_ecs(pr_diff): new_ecs = [] changed_ecs = [] @@ -67,11 +55,10 @@ def pr_ecs(pr_diff): merge_commit_sha = data['pull_request']['merge_commit_sha'] print("PR number:", pr_number) -print("Repo:", repo) print("Base branch name:", base_branch_name) print("Merge commit ref:", merge_commit_sha) -gitrepo = git.Repo(".") +gitrepo = git.Repo("pr") target_commit = gitrepo.commit('origin/' + base_branch_name) pr_commit = gitrepo.commit(merge_commit_sha) @@ -121,7 +108,7 @@ def pr_ecs(pr_diff): comment += f'Diff against {neighbour.name}\n\n' comment += f'[{neighbour}](https://github.com/{repo}/blob/{base_branch_name}/{neighbour})\n\n' comment += '```diff\n' - comment += diff(neighbour, new_file) + comment += gitrepo.git.diff(f'HEAD:{neighbour}', f'HEAD:{new_file}') comment += '```\n\n\n' print("Adjusting labels") diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index e15a06ba608..9aaa8084e6a 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -3,35 +3,21 @@ on: [pull_request_target] jobs: tagbot: + if: github.event.pull_request.merge_commit_sha runs-on: ubuntu-24.04 permissions: pull-requests: write steps: - - uses: actions/checkout@v4 + - name: Checkout base branch for workflow scripts + uses: actions/checkout@v4 + + - name: Checkout PR for computing diff + uses: actions/checkout@v4 with: ref: "${{ github.event.pull_request.merge_commit_sha }}" + path: 'pr' fetch-depth: 0 - - name: Check if file has changed - run: | - if git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD | grep -q .github/workflows/tagbot.py; then - echo "tagbot_modified=true" >> $GITHUB_ENV - else - echo "tagbot_modified=false" >> $GITHUB_ENV - fi - - - name: Post warning comment - if: env.tagbot_modified == 'true' - uses: actions/github-script@v7 - with: - script: | - github.rest.issues.createComment({ - issue_number: ${{ github.event.pull_request.number }}, - owner: context.repo.owner, - repo: context.repo.repo, - body: "⚠️ Warning: The tagbot.py file has been modified. Please review changes carefully." - }) - - name: set up Python uses: actions/setup-python@v5 with: @@ -41,7 +27,6 @@ jobs: run: pip install gitpython requests - name: Tag and comment - if: env.tagbot_modified == 'false' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: python .github/workflows/tagbot.py From f8180eacaef082a134383ca5856fe094b7fdf8ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sat, 2 Nov 2024 01:45:07 +0100 Subject: [PATCH 61/76] Add target commit sha for debuggin --- .github/workflows/tagbot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 51c18184387..4d4defbaaf2 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -61,6 +61,7 @@ def pr_ecs(pr_diff): gitrepo = git.Repo("pr") target_commit = gitrepo.commit('origin/' + base_branch_name) +print("Target commit ref:", target_commit) pr_commit = gitrepo.commit(merge_commit_sha) pr_diff = target_commit.diff(pr_commit) From 8668891865975619ba074e290564a6f1fb078ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sat, 2 Nov 2024 01:50:48 +0100 Subject: [PATCH 62/76] Print out github event data for debugging --- .github/workflows/tagbot.py | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 4d4defbaaf2..ff77576bd09 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -51,6 +51,7 @@ def pr_ecs(pr_diff): with open(event_path) as f: data = json.load(f) +print(data) pr_number = data['pull_request']['number'] merge_commit_sha = data['pull_request']['merge_commit_sha'] From b2fb3c9417c6cad5e1628b57c8870935d5d32e40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 21:11:05 +0100 Subject: [PATCH 63/76] Switch to manually attempting merge due to github race condition with pull_request_target --- .github/workflows/tagbot.py | 23 ++++++++++++----------- .github/workflows/tagbot.yml | 17 +++++++++++++++-- 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index ff77576bd09..937b5b86313 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -15,8 +15,7 @@ def get_first_commit_date(repo, file_path): if commits: return commits[-1].committed_date else: - print(f"{file_path} has no commit info, putting it last") - return datetime.datetime.min + raise ValueError(f'{file_path} has no commit info, this should not happen') def sort_by_added_date(repo, file_paths): @@ -43,28 +42,30 @@ def pr_ecs(pr_diff): GITHUB_API_URL = 'https://api.github.com' -event_path = os.getenv("GITHUB_EVENT_PATH") -token = os.getenv("GH_TOKEN") -repo = os.getenv("GITHUB_REPOSITORY") -base_branch_name = os.getenv("GITHUB_BASE_REF") +event_path = os.getenv('GITHUB_EVENT_PATH') +token = os.getenv('GH_TOKEN') +repo = os.getenv('GITHUB_REPOSITORY') +base_branch_name = os.getenv('GITHUB_BASE_REF') with open(event_path) as f: data = json.load(f) print(data) pr_number = data['pull_request']['number'] -merge_commit_sha = data['pull_request']['merge_commit_sha'] +# Can't rely on merge_commit_sha for pull_request_target as it might be outdated +# merge_commit_sha = data['pull_request']['merge_commit_sha'] print("PR number:", pr_number) print("Base branch name:", base_branch_name) -print("Merge commit ref:", merge_commit_sha) -gitrepo = git.Repo("pr") +# Change into "pr" checkout directory to allow diffs and glob to work on the same content +os.chdir('pr') +gitrepo = git.Repo('.') target_commit = gitrepo.commit('origin/' + base_branch_name) print("Target commit ref:", target_commit) -pr_commit = gitrepo.commit(merge_commit_sha) -pr_diff = target_commit.diff(pr_commit) +merge_commit = gitrepo.head.commit +pr_diff = target_commit.diff(merge_commit) new_ecs, changed_ecs = pr_ecs(pr_diff) modified_workflow = any(item.a_path.startswith('.github/workflows/') for item in pr_diff) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 9aaa8084e6a..9001819d04f 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -3,7 +3,8 @@ on: [pull_request_target] jobs: tagbot: - if: github.event.pull_request.merge_commit_sha + # Note: can't rely on github.event.pull_request.merge_commit_sha because pull_request_target + # does not wait github mergability check, and the value is outdated. runs-on: ubuntu-24.04 permissions: pull-requests: write @@ -14,9 +15,21 @@ jobs: - name: Checkout PR for computing diff uses: actions/checkout@v4 with: - ref: "${{ github.event.pull_request.merge_commit_sha }}" + ref: "${{ github.event.pull_request.head.sha }}" path: 'pr' fetch-depth: 0 + + - name: Attempt Merge + id: merge + run: | + git merge --no-commit --no-ff origin/${{ github.event.pull_request.base.ref }} + continue-on-error: true + + - name: Check merge result + if: steps.merge.outcome == 'failure' + run: | + echo "Merge conflict detected, failing job." + exit 1 - name: set up Python uses: actions/setup-python@v5 From 9772d1416c959c1a5ed2071791a50ffc04ec0689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 21:31:18 +0100 Subject: [PATCH 64/76] Add concurrency to prevent conflicting tags/comments --- .github/workflows/tagbot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 9001819d04f..d47eb812c22 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -1,6 +1,10 @@ name: Tagbot on: [pull_request_target] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: tagbot: # Note: can't rely on github.event.pull_request.merge_commit_sha because pull_request_target From baaa8ba5b5e6b44556909e46f4123961074380be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 21:35:17 +0100 Subject: [PATCH 65/76] Remove unsused import --- .github/workflows/tagbot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 937b5b86313..e16f10c2411 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -6,7 +6,6 @@ import git import requests import json -from datetime import datetime from pathlib import Path From 58debaac6d668361d92296301a30425473a7c3b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 21:46:01 +0100 Subject: [PATCH 66/76] Add quotes around concurrency group --- .github/workflows/tagbot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index d47eb812c22..7b7184e3415 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -2,7 +2,7 @@ name: Tagbot on: [pull_request_target] concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: true jobs: From 16ac316aafebef4b6da77c366b7a1f317dc046b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 21:50:56 +0100 Subject: [PATCH 67/76] Fix indentation --- .github/workflows/tagbot.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 7b7184e3415..c7b929a10da 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -23,17 +23,17 @@ jobs: path: 'pr' fetch-depth: 0 - - name: Attempt Merge - id: merge - run: | - git merge --no-commit --no-ff origin/${{ github.event.pull_request.base.ref }} - continue-on-error: true - - - name: Check merge result - if: steps.merge.outcome == 'failure' - run: | - echo "Merge conflict detected, failing job." - exit 1 + - name: Attempt Merge + id: merge + run: | + git merge --no-commit --no-ff origin/${{ github.event.pull_request.base.ref }} + continue-on-error: true + + - name: Check merge result + if: steps.merge.outcome == 'failure' + run: | + echo "Merge conflict detected, failing job." + exit 1 - name: set up Python uses: actions/setup-python@v5 From b0f49b92cd5a0e306ef5f9924340a89d9e4c7c45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 22:33:44 +0100 Subject: [PATCH 68/76] Make steps more explicit, perform merge in pr subdir --- .github/workflows/tagbot.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index c7b929a10da..9aacbf0df08 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -16,7 +16,7 @@ jobs: - name: Checkout base branch for workflow scripts uses: actions/checkout@v4 - - name: Checkout PR for computing diff + - name: Checkout PR for computing diff into "pr" subdirectory uses: actions/checkout@v4 with: ref: "${{ github.event.pull_request.head.sha }}" @@ -26,10 +26,11 @@ jobs: - name: Attempt Merge id: merge run: | + cd pr git merge --no-commit --no-ff origin/${{ github.event.pull_request.base.ref }} continue-on-error: true - - name: Check merge result + - name: Abort if merge failed if: steps.merge.outcome == 'failure' run: | echo "Merge conflict detected, failing job." From 51dd49e48c290a937e9ce72b7042a74c6c472e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 23:52:14 +0100 Subject: [PATCH 69/76] Add missing linebreak on code blocks --- .github/workflows/tagbot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index e16f10c2411..a46ae810cfe 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -111,7 +111,7 @@ def pr_ecs(pr_diff): comment += f'[{neighbour}](https://github.com/{repo}/blob/{base_branch_name}/{neighbour})\n\n' comment += '```diff\n' comment += gitrepo.git.diff(f'HEAD:{neighbour}', f'HEAD:{new_file}') - comment += '```\n\n\n' + comment += '\n```\n\n\n' print("Adjusting labels") current_labels = [label['name'] for label in data['pull_request']['labels']] From e9f42feb6da37054cbf16645f7f33337d51c7dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Sun, 3 Nov 2024 23:55:40 +0100 Subject: [PATCH 70/76] Make stdoutput nicer, display merge commit sha --- .github/workflows/tagbot.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index a46ae810cfe..792f457c197 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -64,13 +64,15 @@ def pr_ecs(pr_diff): target_commit = gitrepo.commit('origin/' + base_branch_name) print("Target commit ref:", target_commit) merge_commit = gitrepo.head.commit +print("Merge commit:", merge_commit) pr_diff = target_commit.diff(merge_commit) new_ecs, changed_ecs = pr_ecs(pr_diff) modified_workflow = any(item.a_path.startswith('.github/workflows/') for item in pr_diff) -print("Changed ECs:", changed_ecs) -print("Newly added ECs:", new_ecs) + +print("Changed ECs:", ', '.join(changed_ecs)) +print("Newly added ECs:", ', '.join(new_ecs)) print("Modified workflow:", modified_workflow) new_software = 0 From 40ca1dd72732a0257d3d9d3692f571dbd186a284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Mon, 4 Nov 2024 00:04:01 +0100 Subject: [PATCH 71/76] Add git name/email for temporary merge test --- .github/workflows/tagbot.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index 9aacbf0df08..e14752f1f86 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -9,6 +9,7 @@ jobs: tagbot: # Note: can't rely on github.event.pull_request.merge_commit_sha because pull_request_target # does not wait github mergability check, and the value is outdated. + # Instead we merge manually in a temporary subdir "pr" runs-on: ubuntu-24.04 permissions: pull-requests: write @@ -23,12 +24,14 @@ jobs: path: 'pr' fetch-depth: 0 - - name: Attempt Merge + - name: Attempt test merge id: merge run: | - cd pr + git config user.name "github-workflow" + git config user.email "github-workflow@github.com" git merge --no-commit --no-ff origin/${{ github.event.pull_request.base.ref }} continue-on-error: true + working-directory: pr - name: Abort if merge failed if: steps.merge.outcome == 'failure' From 4c021b4a719ae9fc961bc347f962c8243d17e4f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Mon, 4 Nov 2024 00:14:30 +0100 Subject: [PATCH 72/76] Fix string conversion for printout --- .github/workflows/tagbot.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index 792f457c197..d9a16320aa5 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -71,8 +71,8 @@ def pr_ecs(pr_diff): modified_workflow = any(item.a_path.startswith('.github/workflows/') for item in pr_diff) -print("Changed ECs:", ', '.join(changed_ecs)) -print("Newly added ECs:", ', '.join(new_ecs)) +print("Changed ECs:", ', '.join(str(p) for p in changed_ecs)) +print("Newly added ECs:", ', '.join(str(p) for p in new_ecs)) print("Modified workflow:", modified_workflow) new_software = 0 From 0318112770a7c65e9c085869936f8b9a3140886e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikael=20=C3=96hman?= Date: Mon, 4 Nov 2024 02:01:05 +0100 Subject: [PATCH 73/76] Drop very verbose debug output of event data --- .github/workflows/tagbot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/tagbot.py b/.github/workflows/tagbot.py index d9a16320aa5..26472f8bcbd 100644 --- a/.github/workflows/tagbot.py +++ b/.github/workflows/tagbot.py @@ -49,7 +49,6 @@ def pr_ecs(pr_diff): with open(event_path) as f: data = json.load(f) -print(data) pr_number = data['pull_request']['number'] # Can't rely on merge_commit_sha for pull_request_target as it might be outdated # merge_commit_sha = data['pull_request']['merge_commit_sha'] From cbb32e4b28f652c86f636f62f110e60b35ab6864 Mon Sep 17 00:00:00 2001 From: Alex Domingo Date: Mon, 4 Nov 2024 14:05:43 +0100 Subject: [PATCH 74/76] use upstream name for dask_ml extension in Dask-ML-2024.4.4-foss-2023a.eb --- .../easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb index fd593a4bb09..f4bdf4425ae 100644 --- a/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb +++ b/easybuild/easyconfigs/d/Dask-ML/Dask-ML-2024.4.4-foss-2023a.eb @@ -42,9 +42,7 @@ exts_list = [ ('packaging', '24.1', { 'checksums': ['026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002'], }), - (name, version, { - 'modulename': 'dask_ml', - 'sources': ['dask_ml-%(version)s.tar.gz'], + ('dask_ml', version, { 'checksums': ['7956910a49e1e31944280fdb311adf245da11ef410d67deb7a05c67c7d0c4498'], }), ] From d44547734a443238653d586db01553b1edf0f38c Mon Sep 17 00:00:00 2001 From: Balazs Hajgato Date: Tue, 5 Nov 2024 15:36:01 +0100 Subject: [PATCH 75/76] simplifying and add description --- .../o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb index 8b0c54b4248..f205e063da9 100644 --- a/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb +++ b/easybuild/easyconfigs/o/OpenBLAS/OpenBLAS-0.3.27-GCC-13.2.0-seq-iface64.eb @@ -42,9 +42,14 @@ builddependencies = [ ('Python', '3.11.5'), ] +# INTERFACE64=1 needs if you link OpenBLAS for fortran code compied with 64 bit integers (-i8) +# This would be in intel library naming convention ilp64 +# The USE_OPENMP=0 and USE_THREAD=0 needs for the single threaded version +# The USE_LOCKING=1 needs for thread safe version (if threaded software calls OpenBLAS, without it +# OpenBLAS is not thread safe (so only single threaded software would be able to use it) buildopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 " -testopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 " -installopts = "INTERFACE64=1 USE_OPENMP=0 USE_THREAD=0 USE_LOCKING=1 " +testopts = buildopts +installopts = buildopts run_lapack_tests = True max_failing_lapack_tests_num_errors = 150 From ca81bd89d82cb032dc3723f64313360e063f96fd Mon Sep 17 00:00:00 2001 From: ocaisa Date: Tue, 5 Nov 2024 19:51:18 +0100 Subject: [PATCH 76/76] Update .github/workflows/tagbot.yml --- .github/workflows/tagbot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tagbot.yml b/.github/workflows/tagbot.yml index e14752f1f86..6a518cbe03d 100644 --- a/.github/workflows/tagbot.yml +++ b/.github/workflows/tagbot.yml @@ -8,7 +8,7 @@ concurrency: jobs: tagbot: # Note: can't rely on github.event.pull_request.merge_commit_sha because pull_request_target - # does not wait github mergability check, and the value is outdated. + # does not wait for github mergability check, and the value is outdated. # Instead we merge manually in a temporary subdir "pr" runs-on: ubuntu-24.04 permissions: