diff --git a/easybuild/easyconfigs/r/ReFrame/ReFrame-4.10.2-GCCcore-15.2.0.eb b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.10.2-GCCcore-15.2.0.eb new file mode 100644 index 000000000000..c19dca08e474 --- /dev/null +++ b/easybuild/easyconfigs/r/ReFrame/ReFrame-4.10.2-GCCcore-15.2.0.eb @@ -0,0 +1,82 @@ +easyblock = 'PythonBundle' + +name = 'ReFrame' +version = '4.10.2' + +homepage = 'https://github.com/reframe-hpc/reframe' +description = "ReFrame is a framework for writing regression tests for HPC systems." + +toolchain = {'name': 'GCCcore', 'version': '15.2.0'} + +builddependencies = [ + ('binutils', '2.45'), + ('cURL', '8.17.0'), + ('hatchling', '1.29.0'), +] +# Note that for ReFrame's CPU autodetect to work +# the system also needs to provide (new enough versions of) these dependencies +dependencies = [ + ('Python', '3.14.2'), + ('Python-bundle-PyPI', '2026.04'), + ('PyYAML', '6.0.3'), + ('archspec', '0.2.6'), + ('lxml', '6.1.1'), + # ('polars', '1.41.2'), # Optional, requires bumping the toolchain to gfbf + ('libxslt', '1.1.45'), + ('libxml2', '2.15.1'), +] + +postinstallcmds = [ + "cp --archive tools examples %(installdir)s", + "mkdir --parents %(installdir)s/share && cp --archive share/completions %(installdir)s/share/completions", + "sed --in-place 's@/\\(python[0-9.]*\\)$@/\\1 -S@g' %(installdir)s/bin/%(namelower)s", +] + +exts_list = [ + ('argcomplete', '3.7.2', { + 'source_urls': ['https://pypi.io/packages/source/a/argcomplete/'], + 'source_tmpl': 'argcomplete-%(version)s.tar.gz', + 'checksums': ['aad8b69a0b9969edb62db0d1752354c0d50717b10e0cbb00e2a958381b9fc6b9'], + }), + ('ClusterShell', '1.9.3', { + 'source_urls': ['https://pypi.io/packages/source/C/ClusterShell/'], + 'source_tmpl': 'ClusterShell-%(version)s.tar.gz', + 'checksums': ['e284c0e6b3fe0a0cd6be67df71dfbf6aa321188973db683a057f5637552fbc8c'], + 'modulename': 'ClusterShell', + }), + ('fasteners', '0.20', { + 'source_urls': ['https://pypi.io/packages/source/f/fasteners/'], + 'source_tmpl': 'fasteners-%(version)s.tar.gz', + 'checksums': ['55dce8792a41b56f727ba6e123fcaee77fd87e638a6863cec00007bfea84c8d8'], + }), + ('semver', '3.0.4', { + 'source_urls': ['https://pypi.io/packages/source/s/semver/'], + 'source_tmpl': 'semver-%(version)s.tar.gz', + 'checksums': ['afc7d8c584a5ed0a11033af086e8af226a9c0b206f313e0301f8dd7b6b589602'], + }), + ('reframe', version, { + 'download_dep_fail': False, + 'modulename': False, + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/reframe-hpc/reframe/archive/'], + 'checksums': ['878836391021884d13599d0e0976a3071a9374ac2a78ef3cfaed6d976ffb3e67'], + }), +] + +sanity_check_paths = { + 'files': [ + 'bin/%(namelower)s', + 'share/completions/%(namelower)s.bash', + 'share/completions/%(namelower)s.fish', + 'share/completions/%(namelower)s.tcsh' + ], + 'dirs': ['lib', 'tools', 'examples'], +} + +sanity_check_commands = ['%(namelower)s --version'] + +# 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'