Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
252b1c6
adding easyconfigs: Boost.Python-NumPy-1.83.0-gfbf-2023b.eb, LoSoTo-2…
Jun 19, 2025
d401df5
Added LINC, which was the whole point of this PR
Jun 23, 2025
a915a3d
Added missing patches
Jun 24, 2025
887a05b
Added missing RDFlib
Jun 24, 2025
5708a17
Added missing pydot
Jun 24, 2025
9da45b8
Disable failing script from sanity check for now
Jun 25, 2025
770465d
Fix checksum
Jun 25, 2025
49b8436
Remove checksum for linc, since it is not reproducible
Jun 26, 2025
0ac0d51
Added a test step that runs the run_hba_target test from LINCs own CI…
Oct 15, 2025
b20555c
Fix typo
Oct 15, 2025
53b1c49
Merge branch 'develop' into 20250619162753_new_pr_Boost.Python-NumPy1830
casparvl Oct 15, 2025
42779b8
Fix LINC code style errors
Oct 15, 2025
7cdda1d
Fix too long line in PyVO
Oct 15, 2025
c4a64d0
Add missing checksums for dysco, LofarStMan and SAGECal
Oct 15, 2025
dd661fa
Merge branch '20250619162753_new_pr_Boost.Python-NumPy1830' of github…
Oct 15, 2025
b0e0ca3
Add wget as a build dep since it's needed for the test step
Oct 16, 2025
3574043
Add nodejs as dependency, it is required according to https://github.…
Oct 16, 2025
10d207a
Add exceptions for multi-variant deps within 2023b
Oct 16, 2025
af96f12
Try to fix flake8 issue
Oct 16, 2025
486f04b
Fix flake8
Oct 16, 2025
4dd4172
Properly add the toolchain in the exception
Oct 16, 2025
dbc1150
Update easybuild/easyconfigs/r/RMextract/RMextract-0.5.1-foss-2023b.eb
casparvl Oct 17, 2025
5f39cf7
Update easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb
bedroge Oct 17, 2025
40f7b77
Use tagged tarball, as setuptools_scm was only introduced in master, …
Oct 20, 2025
de09744
Merge branch '20250619162753_new_pr_Boost.Python-NumPy1830' of github…
Oct 20, 2025
cee8866
fix small typo
bedroge Oct 21, 2025
7d7afcf
add and remove blank line
bedroge Oct 21, 2025
7cb198e
fix typo
bedroge Oct 21, 2025
0c9f4a5
Update easybuild/easyconfigs/s/SAGECal/SAGECal-0.8.4-foss-2023b.eb
casparvl Oct 21, 2025
27ad81d
Add modloadmsg with instructions for setting OMP_NUM_THREADS, OPENBLA…
Oct 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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'
Original file line number Diff line number Diff line change
@@ -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 <class 'dict'>, not <class 'str'>
# 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",
Original file line number Diff line number Diff line change
@@ -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"]
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/d/dysco/dysco-1.3-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -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'
116 changes: 116 additions & 0 deletions easybuild/easyconfigs/l/LINC/LINC-5.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -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 '
Comment thread
casparvl marked this conversation as resolved.
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'],
Comment thread
bedroge marked this conversation as resolved.
'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'
35 changes: 35 additions & 0 deletions easybuild/easyconfigs/l/LSMTool/LSMTool-1.7.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -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'
44 changes: 44 additions & 0 deletions easybuild/easyconfigs/l/LoSoTo/LoSoTo-2.5.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -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'
32 changes: 32 additions & 0 deletions easybuild/easyconfigs/l/LofarStMan/LofarStMan-1.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -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'
Loading