diff --git a/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb b/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb new file mode 100644 index 000000000000..6cc69f7f4b6e --- /dev/null +++ b/easybuild/easyconfigs/c/cwltool/cwltool-3.1.20250110105449-foss-2023b.eb @@ -0,0 +1,88 @@ +easyblock = 'PythonBundle' + +name = 'cwltool' +version = '3.1.20250110105449' + +homepage = "https://cwltool.readthedocs.io/" + +description = """ +This is the reference implementation of the Common Workflow Language open +standards. It is intended to be feature complete and provide comprehensive +validation of CWL files as well as provide other tools related to working with +CWL. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('hatchling', '1.18.0') +] + +# Based on https://github.com/common-workflow-language/cwltool/blob/3.1.20250110105449/pyproject.toml +dependencies = [ + ('nodejs', '20.9.0'), + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('ruamel.yaml', '0.18.6'), + ('RDFlib', '7.1.4'), + ('lxml', '4.9.3'), + ('networkx', '3.2.1'), + ('pydot', '2.0.0'), +] + +exts_list = [ + ('mistune', '3.0.2', { + 'checksums': ['fc7f93ded930c92394ef2cb6f04a8aabab4117a91449e72dcc8dfa646a508be8'], + }), + ('mypy-extensions', '1.1.0', { + 'patches': ['mypy-extensions-1.1.0_license.patch'], + 'source_tmpl': 'mypy_extensions-%(version)s.tar.gz', + 'checksums': [ + {'mypy_extensions-1.1.0.tar.gz': '52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558'}, + {'mypy-extensions-1.1.0_license.patch': 'ad6f0666755104f94fc33f5da56dbf218517312d2be5bdc2877e3bfd879d20af'}, + ], + }), + ('schema-salad', '8.9.20250408123006', { + 'modulename': 'schema_salad', + 'source_tmpl': 'schema_salad-%(version)s.tar.gz', + 'checksums': ['7b95bf6ab6960b4b60605e4a908cd56f1a30ec7c16901af6e46a98e152b9f069'], + }), + ('prov', '1.5.1', { + 'checksums': ['7a2d72b0df43cd9c6e374d815c8ce3cd5ca371d54f98f837853ac9fcc98aee4c'], + }), + ('humanfriendly', '10.0', { + 'checksums': ['6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc'], + }), + ('coloredlogs', '15.0.1', { + 'checksums': ['7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0'], + }), + ('argcomplete', '3.6.2', { + 'checksums': ['d0519b1bc867f5f4f4713c41ad0aba73a4a5f007449716b16f385f2166dc6adf'], + }), + ('cwl-upgrader', '1.2.12', { + 'source_tmpl': 'cwl_upgrader-%(version)s.tar.gz', + 'modulename': 'cwlupgrader', + 'checksums': ['0d4e514d32d96b60c5300de9baa30a583b09066c9aa78dd6aa7744164d72dc5c'], + }), + ('spython', '0.3.14', { + 'checksums': ['8ad53ef034395cfa2d8a710cc1c3638e4475e5bbc6a2842d317db8013c2e4188'], + }), + ('rich-argparse', '1.7.1', { + 'patches': ['rich-argparse-1.7.1_unkown_classifier.patch'], + 'source_tmpl': 'rich_argparse-%(version)s.tar.gz', + 'checksums': [ + {'rich_argparse-1.7.1.tar.gz': 'd7a493cde94043e41ea68fb43a74405fa178de981bf7b800f7a3bd02ac5c27be'}, + {'rich-argparse-1.7.1_unkown_classifier.patch': + '63e62dba328b2b857425798986af180b1baf228be5f8fd63e5b3cc43e546f972'}, + ], + }), + ('cwl-utils', '0.38', { + 'source_tmpl': 'cwl_utils-%(version)s.tar.gz', + 'checksums': ['1122e1f4cc8f48f9f51ddcb8114fa9e3862d717fd4aacb00f4428008f19e9fec'], + }), + (name, version, { + 'checksums': ['91d3a5946a2afd3e8c4d7e38a53690ad06e3dd88c1d1e1afa368caa41ec3038f'], + }), +] + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch b/easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch new file mode 100644 index 000000000000..144371f3a947 --- /dev/null +++ b/easybuild/easyconfigs/c/cwltool/mypy-extensions-1.1.0_license.patch @@ -0,0 +1,19 @@ +# Author: Caspar van Leeuwen +# Company: SURF +# Without this patch, we get an error +# flit_core.config.ConfigError: license field should be , not +# because PEP 621 says the license must be a dict, if it is not just a file +# Probably, this happens only with sufficiently new versions of e.g. flit_core, which is +# probably why it wasn't an issue for upstream +diff -Nru mypy_extensions-1.1.0.orig/pyproject.toml mypy_extensions-1.1.0/pyproject.toml +--- mypy_extensions-1.1.0.orig/pyproject.toml 2025-06-16 16:16:04.395222990 +0200 ++++ mypy_extensions-1.1.0/pyproject.toml 2025-06-16 16:24:51.865105381 +0200 +@@ -10,7 +10,7 @@ + authors = [ + {name = "The mypy developers", email = "jukka.lehtosalo@iki.fi"} + ] +-license = "MIT" ++license = {text = "MIT"} + classifiers = [ + "Development Status :: 5 - Production/Stable", + "Environment :: Console", diff --git a/easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch b/easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch new file mode 100644 index 000000000000..c41cf26ce105 --- /dev/null +++ b/easybuild/easyconfigs/c/cwltool/rich-argparse-1.7.1_unkown_classifier.patch @@ -0,0 +1,16 @@ +# Author: Caspar van Leeuwen +# Company: SURF +# Python 3.14 is not an officially recognized classifier yet, even if the rich-argparse +# already claims to support it. As a result, hatchling refuses to build it +# Can be fixed by removing the classifier from the pyproject.toml +diff -Nru rich_argparse-1.7.1.orig/pyproject.toml rich_argparse-1.7.1/pyproject.toml +--- rich_argparse-1.7.1.orig/pyproject.toml 2025-06-16 16:56:11.057910803 +0200 ++++ rich_argparse-1.7.1/pyproject.toml 2025-06-16 16:56:19.326904158 +0200 +@@ -23,7 +23,6 @@ + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +- "Programming Language :: Python :: 3.14", + "Topic :: Software Development :: User Interfaces", + ] + keywords = ["argparse", "rich", "help-formatter", "optparse"] diff --git a/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb b/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb new file mode 100644 index 000000000000..ba07b58be4db --- /dev/null +++ b/easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb @@ -0,0 +1,36 @@ +easyblock = 'CMakeMake' + +name = 'dysco' +version = '1.3' + +homepage = 'https://github.com/aroffringa/dysco' +description = """ +The Dysco compression technique is explained in the article "Compression of +interferometric radio-astronomical data", A. R. Offringa (2016; +http://arxiv.org/abs/1609.02019). If you use this software, please cite the +paper. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['02cb53cc0a95a17a04fbaa6063b39641725b81f279b08e85761b01e8f186609f'] +github_account = 'aroffringa' + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +dependencies = [ + ('HDF5', '1.14.3'), + ('casacore', '3.5.0'), +] + +sanity_check_paths = { + 'files': [f'lib/libdyscostman.{SHLIB_EXT}', 'bin/dscompress'], + 'dirs': ['lib'], +} + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb new file mode 100644 index 000000000000..7dcf44ff1b8b --- /dev/null +++ b/easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb @@ -0,0 +1,116 @@ +easyblock = 'PythonBundle' + +name = 'LINC' +version = '5.0' + +homepage = "https://linc.readthedocs.io/en/latest/" + +description = """ +LINC is a pipeline to correct for various instrumental and ionospheric effects in both LOFAR HBA and LOFAR LBA +observations. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('CMake', '3.27.6'), + ('scikit-build', '0.17.6'), + ('wget', '1.21.4'), # Needed for the test step +] + +# Based on https://git.astron.nl/RD/LINC/-/tree/releases/v5.0?ref_type=heads#software-requirements +dependencies = [ + ('Boost', '1.83.0'), + ('Boost.Python-NumPy', '1.83.0'), # Boost_numpy is required for bdsf + ('DP3', '6.2'), + ('LoSoTo', '2.5.0'), + ('LSMTool', '1.7.0'), + ('EveryBeam', '0.6.1'), # Should be 0.6.2 or newer according to the docs? + ('SAGECal', '0.8.4'), + ('RMextract', '0.5.1'), + ('AOFlagger', '3.4.0'), + ('WSClean', '3.5'), + ('IDG', '1.2.0',), + ('LofarStMan', '1.0'), + ('dysco', '1.3'), + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('SciPy-bundle', '2023.11'), + ('matplotlib', '3.8.2'), + ('python-casacore', '3.5.2'), + ('astropy', '7.0.0'), + ('h5py', '3.11.0'), + ('cwltool', '3.1.20250110105449'), + ('toil-cwl', '8.2.0'), +] + +# Get data needed to run the test +local_pretestopts = 'mkdir -p data && ' +local_pretestopts += 'wget -nv https://support.astron.nl/software/ci_data/linc/test_data.tar.gz ' +local_pretestopts += '-O test_data.tar.gz && ' +local_pretestopts += 'wget -nv https://support.astron.nl/software/ci_data/linc/results_calibrator.tar.gz ' +local_pretestopts += '-O results_calibrator.tar.gz && tar xfz test_data.tar.gz -C data && ' +local_pretestopts += 'tar xfz results_calibrator.tar.gz -C data && ' + +# Patch the workflow file so that it looks for the skymodels within the LINC (temporary) install dir +local_pretestopts += 'sed -i -e "s|\"/usr/local/share/linc/skymodels/A-Team_Midres.skymodel\"|' +local_pretestopts += '\"${EB_PYTHONPACKAGE_TEST_INSTALLDIR}/share/linc/skymodels/A-Team_Midres.skymodel\"|" ' +local_pretestopts += '-e "s|\"/usr/local/share/linc/skymodels\"|' +local_pretestopts += '\"${EB_PYTHONPACKAGE_TEST_INSTALLDIR}/share/linc/skymodels\"|" test_jobs/HBA_target.json && ' + +# Ensure SLURM env vars are emptied, otherwise OpenMPI may complain that OMPI wasn't build with SLURMs PMI support +local_pretestopts += 'for i in $(env | grep SLURM); do unset "${i%=*}"; done && ' + +# Disable OpenMP parallelism, to avoid BLAS error with DP3 and hang in clocktek +# LINC uses its own threading, which seems to clash with a multithreaded BLAS +local_pretestopts += 'export OMP_NUM_THREADS=1 && export OPENBLAS_NUM_THREADS=1 && ' + +# Set the LINC_DATA_ROOT and make sure to include the python scripts (which are in /bin for some reason) +# to the PYTHONPATH +local_pretestopts += 'export LINC_DATA_ROOT=$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc && ' +local_pretestopts += 'export PYTHONPATH=$PYTHONPATH:$EB_PYTHONPACKAGE_TEST_INSTALLDIR/bin && ' +local_testopts = '--no-container --preserve-entire-environment --outdir results --leave-tmpdir ' +local_testopts += '--tmpdir-prefix run_hba_calibrator ' +local_testopts += '$EB_PYTHONPACKAGE_TEST_INSTALLDIR/share/linc/workflows/HBA_target.cwl ' +local_testopts += 'test_jobs/HBA_target.json' + +exts_list = [ + ('pyregion', '2.3.0', { + 'checksums': ['e8498711421173239689de523bb465245f5551a18a181cb4956d87f9c7464925'], + }), + ('backports.shutil_get_terminal_size', '1.0.0', { + 'checksums': ['713e7a8228ae80341c70586d1cc0a8caa5207346927e23d09dcbcaf18eadec80'], + }), + ('bdsf', '1.13.0.post2', { + 'checksums': ['2a91647fcdb1f6574958312d85decd4529a10e710926f11300a2388f4c9e25cd'], + 'preinstallopts': 'export CMAKE_ARGS="-DF2PY_EXECUTABLE=$EBROOTSCIPYMINBUNDLE/bin/f2py" && ', + }), + (name, version, { + 'modulename': False, + 'sources': [{ + 'filename': '%(name)s-v%(version)s.tar.xz', + 'git_config': { + 'url': 'https://git.astron.nl/RD/', + 'repo_name': 'LINC', + 'commit': 'v%(version)s', + 'recursive': True, + 'keep_git_dir': True + }, + }], + # We cannot get a reproducible checksum, because we need to do keep_git_dir for + # setuptools_scm to determine the version + 'checksums': [None], + 'testinstall': True, + 'pretestopts': local_pretestopts, + 'runtest': 'cwltool', + 'testopts': local_testopts, + }), +] + +modloadmsg = """ +Certain components of LINC (e.g. DP3) do not support a multithreaded BLAS. You may need to set OMP_NUM_THREADS=1 and +OPENBLAS_NUM_THREADS=1. If you're running the pipeline within a SLURM environment, you may need to clear all SLURM +environment variables from your environment (e.g. using 'for i in $(env | grep SLURM); do unset "${i%=*}"; done'). +""" + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb b/easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb new file mode 100644 index 000000000000..46bf34f77610 --- /dev/null +++ b/easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb @@ -0,0 +1,35 @@ +easyblock = 'PythonBundle' + +name = 'LSMTool' +version = '1.7.0' + +homepage = "https://lsmtool.readthedocs.io/en/latest/" + +description = """ +LSMTool is a Python package which allows for the manipulation of LOFAR sky models in the makesourcedb format. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('scikit-build-core', '0.9.3'), +] + +# Based on https://git.astron.nl/RD/LSMTool/-/tree/v1.7.0?ref_type=tags#dependencies +dependencies = [ + ('EveryBeam', '0.6.1'), + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), + ('matplotlib', '3.8.2'), + ('astropy', '7.0.0'), + ('python-casacore', '3.5.2'), + ('PyVO', '1.7'), # optional +] + +exts_list = [ + ('lsmtool', version, { + 'checksums': ['88cacd79020f60d8dda0e16fe570aede6cee7a93099ae8a86f9d5e7c2e831448'], + }), +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb b/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb new file mode 100644 index 000000000000..45f21b91f980 --- /dev/null +++ b/easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb @@ -0,0 +1,44 @@ +easyblock = 'PythonBundle' + +name = 'LoSoTo' +version = '2.5.0' + +homepage = "https://revoltek.github.io/losoto/" + +description = """ +LoSoTo: LOFAR solutions tool +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('Cython', '3.0.10'), +] + +dependencies = [ + ('HDF5', '1.14.3'), + ('Python', '3.11.5'), + ('PyTables', '3.9.2'), + ('SciPy-bundle', '2023.11'), + ('matplotlib', '3.8.2'), + ('python-casacore', '3.5.2'), +] + +github_account = 'revoltek' + +exts_list = [ + ('configparser', '7.2.0', { + 'checksums': ['b629cc8ae916e3afbd36d1b3d093f34193d851e11998920fdcfc4552218b7b70'], + }), + (name, version, { + # Note that this still works for 2.5.0, but current master uses setuptools_scm + # So in the future this will have to be replaced by a 'git_config' with 'keep_git_dir': 'True' + # The checksum will then also need to be removed + # See LINC-5.0-foss-2023b.eb as an example + 'source_urls': [GITHUB_LOWER_SOURCE], + 'sources': [{'download_filename': '%(version)s.tar.gz', 'filename': SOURCE_TAR_GZ}], + 'checksums': ['e475e04af9561e5581ac11e9359bd08b1b71b28c59b62cf73976addb93ce3c81'], + }), +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb b/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb new file mode 100644 index 000000000000..d0d7b1b93dce --- /dev/null +++ b/easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeMake' + +name = 'LofarStMan' +version = '1.0' + +homepage = 'https://github.com/lofar-astron/LofarStMan' +description = """ +This package provides a casacore storage manager to read raw correlator output of the LOFAR telescope. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['25d33c51f8ce9059c2c95424526c1eae8838f0163a9a0e05cf9db0715ebd022a'] +github_account = 'lofar-astron' + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), +] + +dependencies = [ + ('casacore', '3.5.0'), +] + +sanity_check_paths = { + 'files': [f'lib/liblofarstman.{SHLIB_EXT}'], + 'dirs': ['lib'], +} + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb b/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb new file mode 100644 index 000000000000..4fe3310382e0 --- /dev/null +++ b/easybuild/easyconfigs/p/PyVO/PyVO-1.7-foss-2023b.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonBundle' + +name = 'PyVO' +version = '1.7' + +homepage = "https://pyvo.readthedocs.io/" + +description = """ +PyVO lets you find and retrieve astronomical data available from archives that support standard IVOA virtual +observatory service protocols. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +# Based on https://pyvo.readthedocs.io/en/latest/#requirements +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('SciPy-bundle', '2023.11'), + ('astropy', '7.0.0'), +] + +exts_list = [ + ('pyvo', version, { + 'checksums': ['a6fad9efd410732d113e55df43b0201c9acb2e29f27532c71bda56f38ce62320'], + }), +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb b/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb new file mode 100644 index 000000000000..95fd542804e7 --- /dev/null +++ b/easybuild/easyconfigs/p/pydot/pydot-2.0.0-GCCcore-13.2.0.eb @@ -0,0 +1,25 @@ +# updated: Denis Kristak, Pavel Tománek (INUITS) +easyblock = 'PythonBundle' + +name = 'pydot' +version = '2.0.0' + +homepage = 'https://github.com/pydot/pydot' +description = "Python interface to Graphviz's Dot language." + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [ + ('binutils', '2.40'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), +] + +exts_list = [ + ('pydot', '2.0.0', {'checksums': ['60246af215123fa062f21cd791be67dda23a6f280df09f68919e637a1e4f3235']}), +] + +moduleclass = 'vis' diff --git a/easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb b/easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb new file mode 100644 index 000000000000..7ad7db1fcb13 --- /dev/null +++ b/easybuild/easyconfigs/r/RDFlib/RDFlib-7.1.4-GCCcore-13.2.0.eb @@ -0,0 +1,28 @@ +easyblock = 'PythonBundle' + +name = 'RDFlib' +version = '7.1.4' + +homepage = 'https://github.com/RDFLib/rdflib' +description = """RDFLib is a Python library for working with RDF, a simple yet powerful language + for representing information.""" + +toolchain = {'name': 'GCCcore', 'version': '13.2.0'} + +builddependencies = [ + ('binutils', '2.40'), + ('poetry', '1.6.1'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), +] + +exts_list = [ + ('rdflib', version, { + 'checksums': ['fed46e24f26a788e2ab8e445f7077f00edcf95abb73bcef4b86cefa8b62dd174'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb new file mode 100644 index 000000000000..ab6de9a6aeb9 --- /dev/null +++ b/easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb @@ -0,0 +1,51 @@ +easyblock = 'PythonBundle' + +name = 'RMextract' +version = '0.5.1' + +homepage = "https://github.com/lofar-astron/RMextract" + +description = """ +Extract TEC, vTEC, Earthmagnetic field and Rotation Measures from GPS and WMM data for radio interferometry observations +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +# Based on https://github.com/lofar-astron/RMextract/blob/6191e8d17688a440f239745ecb0a203d74708c8b/pyproject.toml#L6 +builddependencies = [ + ('CMake', '3.27.6'), + ('Meson', '1.2.3'), + ('Ninja', '1.11.1'), + ('scikit-build', '0.17.6'), +] + +# Based on https://github.com/lofar-astron/RMextract/blob/6191e8d17688a440f239745ecb0a203d74708c8b/pyproject.toml#L47 +dependencies = [ + ('Python', '3.11.5'), + ('SciPy-bundle', '2023.11'), + ('astropy', '7.0.0'), + ('LoSoTo', '2.5.0'), + ('python-casacore', '3.5.2'), +] + +exts_list = [ + ('PySocks', '1.7.1', { + 'checksums': ['3f8804571ebe159c380ac6de37643bb4685970655d3bba243530d6558b799aa0'], + 'modulename': 'socks', + }), + ('rmextract', version, { + 'checksums': ['3d9196ecfd57bab92dd6427591cc6e1b42a7cb66845b6b12f273a8b8df827e77'], + 'modulename': 'RMextract', + 'preinstallopts': 'export CMAKE_ARGS="-DF2PY_EXECUTABLE=$EBROOTSCIPYMINBUNDLE/bin/f2py" && ', + }), +] + +sanity_check_commands = [ + 'createRMh5parm --help', + 'download_IONEX --help', + # This actually doesn't work with the current easyconfig + # 'createRMParamdb --help', +] + + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb new file mode 100644 index 000000000000..034c31fe4a5a --- /dev/null +++ b/easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb @@ -0,0 +1,44 @@ +easyblock = 'CMakeMake' + +name = 'SAGECal' +version = '0.8.4' + +homepage = 'https://sagecal.sourceforge.net/' +description = """ +SAGECal is a fast, distributed and GPU accelerated radio astronomial +calibration package. The many optimization algorithms in SAGECal are +implemented in a computationally efficient way and can be used in many +other applications. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%(version)s.tar.gz'] +checksums = ['73a71e1c1a090aa0e61746066846bfb41b28c92c520f513b5456a8e629365c14'] +github_account = 'nlesc-dirac' + +builddependencies = [ + ('binutils', '2.40'), + ('CMake', '3.27.6'), + ('pkgconf', '2.0.3'), +] + +dependencies = [ + ('CFITSIO', '4.3.1'), + ('WCSLIB', '7.11'), + ('GLib', '2.78.1'), + # needed are libcasa-casa4, casacore-dev, casacore-data, casacore-tools, which should be provided by casacore + ('casacore', '3.5.0'), +] + +sanity_check_paths = { + 'files': ['bin/sagecal', 'bin/sagecal-mpi', f'lib/libdirac.{SHLIB_EXT}', f'lib/libdirac-radio.{SHLIB_EXT}'], + 'dirs': ['include'], +} + +sanity_check_commands = [ + 'sagecal', # Will print the help (if no argument is passed) +] + +moduleclass = 'astro' diff --git a/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb b/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb new file mode 100644 index 000000000000..9f7c8067a636 --- /dev/null +++ b/easybuild/easyconfigs/t/toil-cwl/toil-cwl-8.2.0-foss-2023b.eb @@ -0,0 +1,109 @@ +easyblock = 'PythonBundle' + +name = 'toil-cwl' +version = '8.2.0' + +homepage = 'https://github.com/DataBiosphere/toil' +description = """ +A scalable, efficient, cross-platform (Linux/macOS) and easy-to-use workflow engine in pure Python. +This installation contains toil, with the cwl extras. +""" + +toolchain = {'name': 'foss', 'version': '2023b'} + +builddependencies = [ + ('hatchling', '1.18.0'), +] + +dependencies = [ + ('Python', '3.11.5'), + ('Python-bundle-PyPI', '2023.10'), + ('dill', '0.3.8'), + ('cwltool', '3.1.20250110105449'), + ('PyYAML', '6.0.1'), + ('typing-extensions', '4.10.0'), + ('ruamel.yaml', '0.18.6'), + ('psutil', '6.1.0'), # Requires >=6.1.0m so the one from Python-Bunlde-PyPI isn't new enough + # CWL requirements + ('pydantic', '2.7.4'), +] + +exts_list = [ + ('addict', '2.4.0', { + 'checksums': ['b3b2210e0e067a281f5646c8c5db92e99b7231ea8b0eb5f74dbdf9e259d4e494'], + }), + ('blessed', '1.21.0', { + 'checksums': ['ece8bbc4758ab9176452f4e3a719d70088eb5739798cd5582c9e05f2a28337ec'], + }), + ('prefixed', '0.9.0', { + 'checksums': ['164403fa9ebc83280bbc4705f4b243a28837e164310b4e65c38ccab1ebafeeb3'], + }), + ('enlighten', '1.14.1', { + 'checksums': ['85c35412a9a4f3886b3337d41f813441fab9a30d9f5b5f0c015bd078a4411473'], + }), + ('docker', '7.1.0', { + 'checksums': ['ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c'], + }), + ('PyPubSub', '4.0.3', { + 'modulename': 'pubsub', + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/schollii/pypubsub/archive/'], + 'checksums': ['0df83daa1cb0021bab858ff6812d836c9712dea59a5172be1888bb554c3a89a2'], + }), + ('configargparse', '1.7.1', { + 'checksums': ['79c2ddae836a1e5914b71d58e4b9adbd9f7779d4e6351a637b7d2d9b6c46d3d9'], + }), + ('prompt_toolkit', '3.0.51', { + 'checksums': ['931a162e3b27fc90c86f1b48bb1fb2c528c2761475e57c9c06de13311c7b54ed'], + }), + ('bleach', '6.2.0', { + 'checksums': ['123e894118b8a599fd80d3ec1a6d4cc7ce4e5882b1317a7e1ba69b56e95f991f'], + }), + ('boltons', '25.0.0', { + 'checksums': ['e110fbdc30b7b9868cb604e3f71d4722dd8f4dcb4a5ddd06028ba8f1ab0b5ace'], + }), + ('repoze.lru', '0.7', { + 'checksums': ['0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77'], + }), + ('Routes', '2.5.1', { + 'modulename': 'routes', + 'checksums': ['b6346459a15f0cbab01a45a90c3d25caf980d4733d628b4cc1952b865125d053'], + }), + ('zipstream-new', '1.1.8', { + 'modulename': 'zipstream', + 'checksums': ['b031fe181b94e51678389d26b174bc76382605a078d7d5d8f5beae083f111c76'], + }), + ('galaxy-util', '24.2.3', { + 'modulename': 'galaxy.util', + 'source_tmpl': 'galaxy_util-%(version)s.tar.gz', + 'checksums': ['c1204ff484d37fedc9f0c52234405d466d064f0bafef76d1eadd19f503f8415b'], + }), + ('zstandard', '0.23.0', { + 'checksums': ['b2d8c62d08e7255f68f7a740bae85b3c9b8e5466baa9cbf7f57f1cde0ac6bc09'], + }), + ('conda-package-streaming', '0.11.0', { + 'modulename': 'conda_package_streaming', + 'source_tmpl': 'conda_package_streaming-%(version)s.tar.gz', + 'checksums': ['1cc36731ae2831bced952f23b24a0bc8168b126a830a552cf4312d2f0ee68eea'], + }), + ('galaxy-tool-util', '24.2.3', { + 'modulename': 'galaxy.tool_util', + 'source_tmpl': 'galaxy_tool_util-%(version)s.tar.gz', + 'checksums': ['6b72451d54a2f94f16f58cd2f38d61e3bdacf41c068a03b35ebf631221615246'], + }), + ('toil', version, { + 'modulename': 'toil', + 'source_tmpl': '%(name)s-%(version)s-py3-none-any.whl', + 'use_pip_extras': 'cwl', + 'checksums': ['551ad59591116fbc124b1bbbd24f9bec6027f5520b801070fbb2d4737bf8d22f'], + }), +] + +sanity_check_paths = { + 'files': ['bin/toil', 'bin/toil-cwl-runner'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["toil --help"] + +moduleclass = 'tools' diff --git a/test/easyconfigs/easyconfigs.py b/test/easyconfigs/easyconfigs.py index 438bf4c0496b..8a589b1dc456 100644 --- a/test/easyconfigs/easyconfigs.py +++ b/test/easyconfigs/easyconfigs.py @@ -566,7 +566,10 @@ def check_dep_vars(self, gen, dep, dep_vars): 'e3nn': [(r'0\.4\.4; versionsuffix: -CUDA-12\.1\.1', [r'MACE-0\.3\.8-foss-2023a-CUDA-12\.1\.1'])], # Current rapthor requires WSclean 3.5 or newer, which in turn requires EveryBeam 0.6.X or newer # Requires us to also bump DP3 version (to 6.2) and its dependency on EveryBeam - 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', r'WSClean-3\.[5-9]'])], + 'EveryBeam': [(r'0\.6\.1', [r'DP3-6\.2', + r'WSClean-3\.[5-9]', + r'LSMTool-1.7.0-foss-2023b', + r'LINC-5.0-foss-2023b'])], # egl variant of glew is required by libwpe, wpebackend-fdo + WebKitGTK+ depend on libwpe 'glew': [ ('2.2.0; versionsuffix: -egl', [r'libwpe-1\.13\.3-GCCcore-11\.2\.0', @@ -616,6 +619,10 @@ def check_dep_vars(self, gen, dep, dep_vars): # GTDB-Tk v2.3.2 requires pydantic 1.x (see https://github.com/Ecogenomics/GTDBTk/pull/530) ('1.10.13;', ['GTDB-Tk-2.3.2-', 'GTDB-Tk-2.4.0-']), ], + # Pydot <3 is explicitely required by cwltool + 'pydot': [(r'2\.0\.0', [r'LINC-5.0-foss-2023b', + r'toil-cwl-8.2.0-foss-2023b', + r'cwltool-3.1.20250110105449-foss-2023b'])], # bakta requires PyHMMER 0.10.15 'PyHMMER': [(r'0\.10\.15', [r'bakta-1\.10\.1'])], # WhatsHap 1.4 + medaka 1.6.0 require Pysam >= 0.18.0 (NGSpeciesID depends on medaka)