reframe-hpc 4.10.0.dev5__tar.gz → 4.10.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/PKG-INFO +52 -28
  2. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/README.md +49 -26
  3. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/docs/man/man1/reframe.1 +32 -2
  4. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/docs/man/man8/reframe.settings.8 +64 -2
  5. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/cluster_perflogs_httpjson.py +1 -1
  6. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/singlenode.Dockerfile +11 -20
  7. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/docker-compose.yml +2 -4
  8. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile +8 -10
  9. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/pyproject.toml +3 -1
  10. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/__init__.py +1 -1
  11. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/exceptions.py +4 -0
  12. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/logging.py +8 -2
  13. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/slurm.py +18 -12
  14. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/ssh.py +4 -0
  15. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/cli.py +25 -8
  16. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/reporting/__init__.py +4 -1
  17. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/reporting/utility.py +3 -2
  18. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/schemas/config.json +7 -2
  19. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/.gitignore +0 -0
  20. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/CONTRIBUTING.md +0 -0
  21. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/LICENSE +0 -0
  22. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/config/mysettings.py +0 -0
  23. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/cscs-webinar-2022.cast +0 -0
  24. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/src/stream.c +0 -0
  25. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream1.py +0 -0
  26. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream2.py +0 -0
  27. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream3.py +0 -0
  28. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream4.py +0 -0
  29. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream5.py +0 -0
  30. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream6.py +0 -0
  31. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream7.py +0 -0
  32. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream8.py +0 -0
  33. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/cscs-webinar-2022/tests/stream9.py +0 -0
  34. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/flux/README.md +0 -0
  35. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/flux/example1.py +0 -0
  36. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/flux/settings.py +0 -0
  37. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/reference_index.py +0 -0
  38. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/testlib/__init__.py +0 -0
  39. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/testlib/simple.py +0 -0
  40. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/testlib/utility/__init__.py +0 -0
  41. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/howto/testlib_example.py +0 -0
  42. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/baseline.py +0 -0
  43. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/baseline.yaml +0 -0
  44. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/baseline_contplatf.py +0 -0
  45. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/baseline_environs.py +0 -0
  46. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/baseline_modules.py +0 -0
  47. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/cluster.py +0 -0
  48. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/cluster_logging.py +0 -0
  49. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/cluster_mpi.py +0 -0
  50. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/cluster_perflogs.py +0 -0
  51. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/cluster_resources.py +0 -0
  52. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/multifile/common/settings.py +0 -0
  53. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/multifile/environments/settings.py +0 -0
  54. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/config/multifile/pseudo-cluster/settings.py +0 -0
  55. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/containers/container_test.py +0 -0
  56. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/deps/deps_complex.py +0 -0
  57. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/deps/parameterized.py +0 -0
  58. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/eb-spack.dockerfile +0 -0
  59. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/flux.dockerfile +0 -0
  60. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/README.txt +0 -0
  61. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/dbd/Dockerfile +0 -0
  62. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/dbd/cgroup.conf +0 -0
  63. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/dbd/docker-entrypoint.sh +0 -0
  64. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/dbd/slurm.conf +0 -0
  65. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/dbd/slurmdbd.conf +0 -0
  66. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/master/Dockerfile +0 -0
  67. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/master/docker-entrypoint.sh +0 -0
  68. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/munge/Dockerfile +0 -0
  69. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/munge/entrypoint.sh +0 -0
  70. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/node/Dockerfile +0 -0
  71. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/node/docker-entrypoint.sh +0 -0
  72. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dockerfiles/slurm-cluster/reframe/docker-entrypoint.sh +0 -0
  73. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/dummy/params.py +0 -0
  74. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/easybuild/eb_test.py +0 -0
  75. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/mpi/osu.py +0 -0
  76. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/mpi/osu_deps.py +0 -0
  77. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/generic/default/builtin/stream_test/rfm_job.err +0 -0
  78. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/generic/default/builtin/stream_test/rfm_job.out +0 -0
  79. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/generic/default/builtin/stream_test/rfm_job.sh +0 -0
  80. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/baseline/stream_test/rfm_job.err +0 -0
  81. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/baseline/stream_test/rfm_job.out +0 -0
  82. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/baseline/stream_test/rfm_job.sh +0 -0
  83. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/builtin/ZlibEBCheck/rfm_build.err +0 -0
  84. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/builtin/ZlibEBCheck/rfm_build.out +0 -0
  85. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/builtin/ZlibEBCheck/rfm_build.sh +0 -0
  86. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/builtin/ZlibEBCheck/rfm_job.err +0 -0
  87. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/builtin/ZlibEBCheck/rfm_job.out +0 -0
  88. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/builtin/ZlibEBCheck/rfm_job.sh +0 -0
  89. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/clang/stream_build_test/rfm_build.err +0 -0
  90. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/clang/stream_build_test/rfm_build.out +0 -0
  91. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/clang/stream_build_test/rfm_build.sh +0 -0
  92. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/clang/stream_build_test/rfm_job.err +0 -0
  93. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/clang/stream_build_test/rfm_job.out +0 -0
  94. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/clang/stream_build_test/rfm_job.sh +0 -0
  95. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/gnu/stream_build_test/rfm_build.err +0 -0
  96. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/gnu/stream_build_test/rfm_build.out +0 -0
  97. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/gnu/stream_build_test/rfm_build.sh +0 -0
  98. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/gnu/stream_build_test/rfm_job.err +0 -0
  99. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/gnu/stream_build_test/rfm_job.out +0 -0
  100. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/output/tutorialsys/default/gnu/stream_build_test/rfm_job.sh +0 -0
  101. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/scripts/runall.sh +0 -0
  102. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/spack/spack_test.py +0 -0
  103. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/src/stream.c +0 -0
  104. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_build_run.py +0 -0
  105. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_config.yaml +0 -0
  106. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_cpuinfo.py +0 -0
  107. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_fixtures.py +0 -0
  108. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_make.py +0 -0
  109. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_multistep.py +0 -0
  110. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_parameters.py +0 -0
  111. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_parameters_fixtures.py +0 -0
  112. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_runonly.py +0 -0
  113. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_runonly_xfail.py +0 -0
  114. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_runonly_xfail_cond.py +0 -0
  115. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_variables.py +0 -0
  116. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_variables_fixtures.py +0 -0
  117. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/examples/tutorial/stream/stream_workflows.py +0 -0
  118. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/backends.py +0 -0
  119. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/buildsystems.py +0 -0
  120. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/builtins.py +0 -0
  121. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/config.py +0 -0
  122. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/containers.py +0 -0
  123. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/decorators.py +0 -0
  124. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/deferrable.py +0 -0
  125. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/environments.py +0 -0
  126. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/fields.py +0 -0
  127. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/fixtures.py +0 -0
  128. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/hooks.py +0 -0
  129. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/launchers/__init__.py +0 -0
  130. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/launchers/local.py +0 -0
  131. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/launchers/mpi.py +0 -0
  132. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/launchers/rsh.py +0 -0
  133. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/meta.py +0 -0
  134. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/modules.py +0 -0
  135. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/namespaces.py +0 -0
  136. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/parameters.py +0 -0
  137. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/pipeline.py +0 -0
  138. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/runtime.py +0 -0
  139. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/__init__.py +0 -0
  140. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/flux.py +0 -0
  141. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/local.py +0 -0
  142. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/lsf.py +0 -0
  143. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/oar.py +0 -0
  144. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/pbs.py +0 -0
  145. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/registry.py +0 -0
  146. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/schedulers/sge.py +0 -0
  147. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/settings.py +0 -0
  148. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/shell.py +0 -0
  149. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/systems.py +0 -0
  150. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/variables.py +0 -0
  151. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/core/warnings.py +0 -0
  152. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/__init__.py +0 -0
  153. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/argparse.py +0 -0
  154. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/autodetect.py +0 -0
  155. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/ci.py +0 -0
  156. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/dependencies.py +0 -0
  157. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/executors/__init__.py +0 -0
  158. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/executors/policies.py +0 -0
  159. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/filters.py +0 -0
  160. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/loader.py +0 -0
  161. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/printer.py +0 -0
  162. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/reporting/storage.py +0 -0
  163. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/frontend/testgenerators.py +0 -0
  164. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/schemas/junit.xsd +0 -0
  165. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/schemas/runreport.json +0 -0
  166. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/__init__.py +0 -0
  167. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/color.py +0 -0
  168. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/cpuinfo.py +0 -0
  169. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/jsonext.py +0 -0
  170. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/osext.py +0 -0
  171. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/profile.py +0 -0
  172. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/sanity.py +0 -0
  173. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/typecheck.py +0 -0
  174. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/udeps.py +0 -0
  175. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/reframe/utility/versioning.py +0 -0
  176. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/share/completions/reframe.bash +0 -0
  177. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/share/completions/reframe.fish +0 -0
  178. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/share/completions/reframe.tcsh +0 -0
  179. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/gendoclistings.py +0 -0
  180. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/hatch_build.py +0 -0
  181. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/plot_pipeline_progress.py +0 -0
  182. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/plot_poll_rate.py +0 -0
  183. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/publish_zenodo.py +0 -0
  184. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/python/3.6/get-pip.py +0 -0
  185. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/python/3.7/get-pip.py +0 -0
  186. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/python/get-pip.py +0 -0
  187. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/requirements.txt +0 -0
  188. {reframe_hpc-4.10.0.dev5 → reframe_hpc-4.10.1}/tools/sleep_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reframe-hpc
3
- Version: 4.10.0.dev5
3
+ Version: 4.10.1
4
4
  Summary: ReFrame is a powerful framework for writing system regression tests and benchmarks, specifically targeted to HPC systems
5
5
  Project-URL: documentation, https://reframe-hpc.readthedocs.io/
6
6
  Project-URL: releasenotes, https://github.com/reframe-hpc/reframe/releases
@@ -28,34 +28,17 @@ Requires-Dist: fasteners~=0.20
28
28
  Requires-Dist: jinja2~=3.1
29
29
  Requires-Dist: jsonschema~=4.26
30
30
  Requires-Dist: lxml~=6.0
31
- Requires-Dist: polars~=1.39
31
+ Requires-Dist: polars~=1.39; extra != 'no-analytics'
32
32
  Requires-Dist: pyyaml~=6.0
33
33
  Requires-Dist: requests~=2.33
34
34
  Requires-Dist: semver~=3.0
35
35
  Requires-Dist: tabulate~=0.10
36
36
  Provides-Extra: graylog
37
37
  Requires-Dist: pygelf~=0.4; extra == 'graylog'
38
+ Provides-Extra: no-analytics
38
39
  Description-Content-Type: text/markdown
39
40
 
40
- <div align="left">
41
- <img src="docs/_static/img/reframe_logo-width400p.png#gh-light-mode-only" width="400px">
42
- <img src="docs/_static/img/reframe-logo-dark-bg.png#gh-dark-mode-only" width="400px">
43
- </div>
44
-
45
- [![Build Status](https://github.com/reframe-hpc/reframe/workflows/ReFrame%20CI/badge.svg)](https://github.com/reframe-hpc/reframe/actions?query=workflow%3A%22ReFrame+CI%22)
46
- [![Documentation Status](https://readthedocs.org/projects/reframe-hpc/badge/?version=latest)](https://reframe-hpc.readthedocs.io/en/latest/?badge=latest)
47
- [![codecov](https://codecov.io/gh/reframe-hpc/reframe/graph/badge.svg?token=OCsdagJHcX)](https://codecov.io/gh/reframe-hpc/reframe)<br/>
48
- ![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/reframe-hpc/reframe?include_prereleases)
49
- ![GitHub commits since latest release](https://img.shields.io/github/commits-since/reframe-hpc/reframe/latest)
50
- ![GitHub contributors](https://img.shields.io/github/contributors-anon/reframe-hpc/reframe)<br/>
51
- [![PyPI version](https://badge.fury.io/py/ReFrame-HPC.svg)](https://badge.fury.io/py/ReFrame-HPC)
52
- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/reframe-hpc)
53
- [![Downloads](https://pepy.tech/badge/reframe-hpc)](https://pepy.tech/project/reframe-hpc)
54
- [![Downloads](https://pepy.tech/badge/reframe-hpc/month)](https://pepy.tech/project/reframe-hpc)<br/>
55
- [![Slack](https://badgen.net/badge/icon/slack?icon=slack&label)](https://join.slack.com/t/reframetalk/shared_invite/zt-3706f0tj6-2CjHh07HdQNbmLw1qAasjg)
56
- [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
57
- [![DOI](https://zenodo.org/badge/89384186.svg)](https://zenodo.org/badge/latestdoi/89384186)<br/>
58
- [![Twitter Follow](https://img.shields.io/twitter/follow/ReFrameHPC?style=social)](https://twitter.com/ReFrameHPC)
41
+ [![ReFrame Logo](https://raw.githubusercontent.com/reframe-hpc/reframe/master/docs/_static/img/reframe_logo-width400p.png)](https://github.com/reframe-hpc/reframe)<br/>
59
42
 
60
43
  # Overview
61
44
 
@@ -77,6 +60,27 @@ Please visit the project's documentation [page](https://reframe-hpc.readthedocs.
77
60
 
78
61
  ReFrame is fairly easy to install as PyPI package.
79
62
 
63
+ ### Installing using `pip`
64
+
65
+ ```bash
66
+ pip install reframe-hpc
67
+ ```
68
+
69
+ This will also install the manpages and the shell completions under your pip's virtual environment:
70
+
71
+ | | |
72
+ |---|---|
73
+ | `reframe` executable | `${VIRTUAL_ENV}/bin` |
74
+ | Man pages | `${VIRTUAL_ENV}/share/man` |
75
+ | Bash/Zsh completions | `${VIRTUAL_ENV}/share/bash-completion/completions/reframe` |
76
+ | Fish completions | `${VIRTUAL_ENV}/share/fish/vendor_completions.d/reframe.fish` |
77
+
78
+
79
+ ### Installing using `uv`
80
+
81
+ You can use any package manager that understands `pyproject.toml`-based Python projects to install ReFrame.
82
+ In this section we describe in more detail handling an installation using `uv`.
83
+
80
84
  ```bash
81
85
  # Fetch uv
82
86
  curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -91,7 +95,7 @@ reframe -V
91
95
  This will place the `reframe` executable under `$HOME/.local/bin` and the package under `$HOME/.local/share/uv/tools/reframe-hpc`.
92
96
  To make available the manpage and the shell completions add the following lines in your shell's profile script:
93
97
 
94
- ### Bash/Zsh
98
+ #### Bash/Zsh
95
99
 
96
100
  Add the following lines to your `$HOME/.profile`:
97
101
 
@@ -100,7 +104,7 @@ export MANPATH=${HOME}/.local/share/uv/tools/reframe-hpc/share/man:${MANPATH}:
100
104
  source ${HOME}/.local/share/uv/tools/reframe-hpc/share/bash-completion/completions/reframe
101
105
  ```
102
106
 
103
- ### Fish
107
+ #### Fish
104
108
 
105
109
  Add the following lines to your `$HOME/.config/fish/config.fish`:
106
110
 
@@ -109,10 +113,7 @@ set -apgx MANPATH ${HOME}/.local/share/uv/tools/reframe-hpc/share/man ""
109
113
  source ${HOME}/.local/share/uv/tools/reframe-hpc/share/fish/vendor_completions.d/reframe.fish
110
114
  ```
111
115
 
112
- > NOTE: Using `uv` is not required to install ReFrame.
113
- > You can use any modern Python build system that recognizes the `pyproject.toml` file.
114
-
115
- ### Multi-architecture installations on shared filesystem
116
+ #### Multi-architecture installations on shared filesystem
116
117
 
117
118
  If you plan to install ReFrame for multiple platforms in a shared installation, you should make sure each installation resides in a different prefix.
118
119
  You can achieve this with `uv` as follows:
@@ -133,7 +134,30 @@ uvx reframe --version
133
134
 
134
135
  This will pull ReFrame's dependencies and run it.
135
136
  It also caches them, so that the next time you invoke it, it will not download and install them again.
136
- The only "downside" of this method is that you have to always invoke ReFrame through `uvx`, as opposed to the `uv tool install` method, where the `reframe` execcutable is installed in a standard path.
137
+ The only "downside" of this method is that you have to always invoke ReFrame through `uvx`, as opposed to the `uv tool install` method, where the `reframe` executable is installed in a standard path.
138
+
139
+
140
+ ### Installation extras
141
+
142
+ When installing ReFrame you can opt-in or opt-out from certain features.
143
+ For example, using `pip` you can use the brackets syntax:
144
+
145
+ ```bash
146
+ # Opt-in for an extra
147
+ pip install reframe-hpc[extra]
148
+
149
+ # Opt-out from a feature
150
+ pip install reframe-hpc[no-feature]
151
+ ```
152
+
153
+ With `uv` you can either use the brackets notation or use the `--extra` option.
154
+
155
+ Here is a list of the available extras during installation:
156
+
157
+ | Extra | Description |
158
+ |---|---|
159
+ | `graylog` | Install Graylog bindings |
160
+ | `no-analytics` | Do not install the analytics layers; this will disable results storage feature but will make the installation more compact. |
137
161
 
138
162
 
139
163
  ## Running from source
@@ -1,22 +1,4 @@
1
- <div align="left">
2
- <img src="docs/_static/img/reframe_logo-width400p.png#gh-light-mode-only" width="400px">
3
- <img src="docs/_static/img/reframe-logo-dark-bg.png#gh-dark-mode-only" width="400px">
4
- </div>
5
-
6
- [![Build Status](https://github.com/reframe-hpc/reframe/workflows/ReFrame%20CI/badge.svg)](https://github.com/reframe-hpc/reframe/actions?query=workflow%3A%22ReFrame+CI%22)
7
- [![Documentation Status](https://readthedocs.org/projects/reframe-hpc/badge/?version=latest)](https://reframe-hpc.readthedocs.io/en/latest/?badge=latest)
8
- [![codecov](https://codecov.io/gh/reframe-hpc/reframe/graph/badge.svg?token=OCsdagJHcX)](https://codecov.io/gh/reframe-hpc/reframe)<br/>
9
- ![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/reframe-hpc/reframe?include_prereleases)
10
- ![GitHub commits since latest release](https://img.shields.io/github/commits-since/reframe-hpc/reframe/latest)
11
- ![GitHub contributors](https://img.shields.io/github/contributors-anon/reframe-hpc/reframe)<br/>
12
- [![PyPI version](https://badge.fury.io/py/ReFrame-HPC.svg)](https://badge.fury.io/py/ReFrame-HPC)
13
- ![PyPI - Python Version](https://img.shields.io/pypi/pyversions/reframe-hpc)
14
- [![Downloads](https://pepy.tech/badge/reframe-hpc)](https://pepy.tech/project/reframe-hpc)
15
- [![Downloads](https://pepy.tech/badge/reframe-hpc/month)](https://pepy.tech/project/reframe-hpc)<br/>
16
- [![Slack](https://badgen.net/badge/icon/slack?icon=slack&label)](https://join.slack.com/t/reframetalk/shared_invite/zt-3706f0tj6-2CjHh07HdQNbmLw1qAasjg)
17
- [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
18
- [![DOI](https://zenodo.org/badge/89384186.svg)](https://zenodo.org/badge/latestdoi/89384186)<br/>
19
- [![Twitter Follow](https://img.shields.io/twitter/follow/ReFrameHPC?style=social)](https://twitter.com/ReFrameHPC)
1
+ [![ReFrame Logo](https://raw.githubusercontent.com/reframe-hpc/reframe/master/docs/_static/img/reframe_logo-width400p.png)](https://github.com/reframe-hpc/reframe)<br/>
20
2
 
21
3
  # Overview
22
4
 
@@ -38,6 +20,27 @@ Please visit the project's documentation [page](https://reframe-hpc.readthedocs.
38
20
 
39
21
  ReFrame is fairly easy to install as PyPI package.
40
22
 
23
+ ### Installing using `pip`
24
+
25
+ ```bash
26
+ pip install reframe-hpc
27
+ ```
28
+
29
+ This will also install the manpages and the shell completions under your pip's virtual environment:
30
+
31
+ | | |
32
+ |---|---|
33
+ | `reframe` executable | `${VIRTUAL_ENV}/bin` |
34
+ | Man pages | `${VIRTUAL_ENV}/share/man` |
35
+ | Bash/Zsh completions | `${VIRTUAL_ENV}/share/bash-completion/completions/reframe` |
36
+ | Fish completions | `${VIRTUAL_ENV}/share/fish/vendor_completions.d/reframe.fish` |
37
+
38
+
39
+ ### Installing using `uv`
40
+
41
+ You can use any package manager that understands `pyproject.toml`-based Python projects to install ReFrame.
42
+ In this section we describe in more detail handling an installation using `uv`.
43
+
41
44
  ```bash
42
45
  # Fetch uv
43
46
  curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -52,7 +55,7 @@ reframe -V
52
55
  This will place the `reframe` executable under `$HOME/.local/bin` and the package under `$HOME/.local/share/uv/tools/reframe-hpc`.
53
56
  To make available the manpage and the shell completions add the following lines in your shell's profile script:
54
57
 
55
- ### Bash/Zsh
58
+ #### Bash/Zsh
56
59
 
57
60
  Add the following lines to your `$HOME/.profile`:
58
61
 
@@ -61,7 +64,7 @@ export MANPATH=${HOME}/.local/share/uv/tools/reframe-hpc/share/man:${MANPATH}:
61
64
  source ${HOME}/.local/share/uv/tools/reframe-hpc/share/bash-completion/completions/reframe
62
65
  ```
63
66
 
64
- ### Fish
67
+ #### Fish
65
68
 
66
69
  Add the following lines to your `$HOME/.config/fish/config.fish`:
67
70
 
@@ -70,10 +73,7 @@ set -apgx MANPATH ${HOME}/.local/share/uv/tools/reframe-hpc/share/man ""
70
73
  source ${HOME}/.local/share/uv/tools/reframe-hpc/share/fish/vendor_completions.d/reframe.fish
71
74
  ```
72
75
 
73
- > NOTE: Using `uv` is not required to install ReFrame.
74
- > You can use any modern Python build system that recognizes the `pyproject.toml` file.
75
-
76
- ### Multi-architecture installations on shared filesystem
76
+ #### Multi-architecture installations on shared filesystem
77
77
 
78
78
  If you plan to install ReFrame for multiple platforms in a shared installation, you should make sure each installation resides in a different prefix.
79
79
  You can achieve this with `uv` as follows:
@@ -94,7 +94,30 @@ uvx reframe --version
94
94
 
95
95
  This will pull ReFrame's dependencies and run it.
96
96
  It also caches them, so that the next time you invoke it, it will not download and install them again.
97
- The only "downside" of this method is that you have to always invoke ReFrame through `uvx`, as opposed to the `uv tool install` method, where the `reframe` execcutable is installed in a standard path.
97
+ The only "downside" of this method is that you have to always invoke ReFrame through `uvx`, as opposed to the `uv tool install` method, where the `reframe` executable is installed in a standard path.
98
+
99
+
100
+ ### Installation extras
101
+
102
+ When installing ReFrame you can opt-in or opt-out from certain features.
103
+ For example, using `pip` you can use the brackets syntax:
104
+
105
+ ```bash
106
+ # Opt-in for an extra
107
+ pip install reframe-hpc[extra]
108
+
109
+ # Opt-out from a feature
110
+ pip install reframe-hpc[no-feature]
111
+ ```
112
+
113
+ With `uv` you can either use the brackets notation or use the `--extra` option.
114
+
115
+ Here is a list of the available extras during installation:
116
+
117
+ | Extra | Description |
118
+ |---|---|
119
+ | `graylog` | Install Graylog bindings |
120
+ | `no-analytics` | Do not install the analytics layers; this will disable results storage feature but will make the installation more compact. |
98
121
 
99
122
 
100
123
  ## Running from source
@@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
28
28
  .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
29
29
  .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
30
30
  ..
31
- .TH "REFRAME" "1" "Apr 28, 2026" "4.10.0-dev.4" "ReFrame"
31
+ .TH "REFRAME" "1" "Jun 17, 2026" "4.10.0" "ReFrame"
32
32
  .SH NAME
33
33
  reframe \- The CLI frontend for managing and executing ReFrame tests
34
34
  .SH SYNOPSIS
@@ -73,7 +73,7 @@ For more information, have a look in \fI\%Integrating into a CI pipeline\fP\&.
73
73
  \fBNOTE:\fP
74
74
  .INDENT 7.0
75
75
  .INDENT 3.5
76
- This option will not work with the \fI\%test generation options\fP\&.
76
+ This option will not work with the \fI\%test generation options\fP or with test fixtures.
77
77
  .UNINDENT
78
78
  .UNINDENT
79
79
  .sp
@@ -1460,6 +1460,16 @@ There are the following message levels in ReFrame listed in increasing verbosity
1460
1460
  The base verbosity level of the output is defined by the \fI\%level\fP stream logging handler configuration parameter.
1461
1461
  .sp
1462
1462
  This option can also be set using the \fI\%RFM_VERBOSE\fP environment variable or the \fI\%verbose\fP general configuration parameter.
1463
+ .UNINDENT
1464
+ .INDENT 0.0
1465
+ .TP
1466
+ .B \-\-warn\-as\-error
1467
+ Treat warnings as errors.
1468
+ .sp
1469
+ This option can also be set using the \fI\%RFM_WARN_AS_ERROR\fP environment variable.
1470
+ .sp
1471
+ Added in version 4.10.
1472
+
1463
1473
  .UNINDENT
1464
1474
  .SH TEST NAMING SCHEME
1465
1475
  .sp
@@ -3374,6 +3384,26 @@ T} T{
3374
3384
  T}
3375
3385
  .TE
3376
3386
  .UNINDENT
3387
+ .INDENT 0.0
3388
+ .TP
3389
+ .B RFM_WARN_AS_ERROR
3390
+ Treat warnings as errors.
3391
+ .TS
3392
+ box center;
3393
+ l|l.
3394
+ T{
3395
+ Associated command line option
3396
+ T} T{
3397
+ \fI\%\-\-warn\-as\-error\fP
3398
+ T}
3399
+ _
3400
+ T{
3401
+ Associated configuration parameter
3402
+ T} T{
3403
+ N/A
3404
+ T}
3405
+ .TE
3406
+ .UNINDENT
3377
3407
  .SH CONFIGURATION
3378
3408
  .sp
3379
3409
  ReFrame’s configuration can be stored in one or multiple configuration files.
@@ -28,7 +28,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
28
28
  .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
29
29
  .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
30
30
  ..
31
- .TH "REFRAME.SETTINGS" "8" "Apr 28, 2026" "4.10.0-dev.4" "ReFrame"
31
+ .TH "REFRAME.SETTINGS" "8" "Jun 17, 2026" "4.10.0" "ReFrame"
32
32
  .SH NAME
33
33
  reframe.settings \- ReFrame Configuration Manual
34
34
  .sp
@@ -543,6 +543,7 @@ Added in version 4.10: The \fBpbspro\fP scheduler is added.
543
543
  The Slurm\-based backends unset all \fBSBATCH_*\fP environment variables before submitting a job.
544
544
  This is done to avoid environment variables bypassing ReFrame’s configuration.
545
545
  For example, if the \fI\%access\fP options for a partition used \fB\-A foo\fP and \fBSBATCH_ACCOUNT=bar\fP was set, then the environment variable would override the configuration, as ReFrame emits those (by default) in the submission script.
546
+ If this is not desired, environment variables can be explicitly whitelisted using the \fI\%slurm_envvar_whitelist\fP option.
546
547
  .sp
547
548
  Job submission in ReFrame is controlled exclusively by the system partition’s \fI\%access\fP options, the test job’s \fI\%options\fP and the \fI\%\-J\fP command\-line option.
548
549
  .UNINDENT
@@ -781,6 +782,25 @@ This option is relevant for the \fBslurm\fP backend only.
781
782
  .sp
782
783
  Added in version 4.8.
783
784
 
785
+ .UNINDENT
786
+ .INDENT 0.0
787
+ .TP
788
+ .B systems.partitions.sched_options.slurm_envvar_whitelist
789
+ .INDENT 7.0
790
+ .TP
791
+ .B Required
792
+ No
793
+ .TP
794
+ .B Default
795
+ \fB[]\fP
796
+ .UNINDENT
797
+ .sp
798
+ List of Slurm environment variables that will not be unset when submitting a job.
799
+ .sp
800
+ This option is relevant for the Slurm backends only.
801
+ .sp
802
+ Added in version 4.10.
803
+
784
804
  .UNINDENT
785
805
  .INDENT 0.0
786
806
  .TP
@@ -855,10 +875,13 @@ No
855
875
  \X'tty: link https://docs.python.org/3/library/constants.html#False'\fI\%False\fP\X'tty: link'
856
876
  .UNINDENT
857
877
  .sp
858
- Use unqualified hostnames in the \fBlocal\fP scheduler backend.
878
+ Use unqualified hostnames in the \fBlocal\fP and \fBssh\fP scheduler backends.
859
879
  .sp
860
880
  Added in version 4.7.
861
881
 
882
+ .sp
883
+ Changed in version 4.10.1: Added support for the \fBssh\fP scheduler backend.
884
+
862
885
  .UNINDENT
863
886
  .INDENT 0.0
864
887
  .TP
@@ -1884,6 +1907,13 @@ No
1884
1907
  .sp
1885
1908
  A list of systems or system/partitions combinations that this logging configuration is valid for.
1886
1909
  For a detailed description of this property, have a look at the \fI\%target_systems\fP definition for environments.
1910
+ .sp
1911
+ \fBNOTE:\fP
1912
+ .INDENT 7.0
1913
+ .INDENT 3.5
1914
+ The scope of all logging options is system\-wide, so only system names can be specified in this list, otherwise the scope will be ignored.
1915
+ .UNINDENT
1916
+ .UNINDENT
1887
1917
  .UNINDENT
1888
1918
  .SS Common logging handler properties
1889
1919
  .sp
@@ -3099,6 +3129,13 @@ No
3099
3129
  .sp
3100
3130
  A list of systems \fIonly\fP that this execution mode is valid for.
3101
3131
  For a detailed description of this property, have a look at the \fI\%target_systems\fP definition for environments.
3132
+ .sp
3133
+ \fBNOTE:\fP
3134
+ .INDENT 7.0
3135
+ .INDENT 3.5
3136
+ The scope of all modes options is system\-wide, so only system names can be specified in this list, otherwise the scope will be ignored.
3137
+ .UNINDENT
3138
+ .UNINDENT
3102
3139
  .UNINDENT
3103
3140
  .SH RESULT STORAGE CONFIGURATION
3104
3141
  .sp
@@ -3194,6 +3231,13 @@ No
3194
3231
  A list of systems \fIonly\fP that this storage configuration is valid for.
3195
3232
  .sp
3196
3233
  For a detailed description of this property, have a look at the \fI\%target_systems\fP definition for environments.
3234
+ .sp
3235
+ \fBNOTE:\fP
3236
+ .INDENT 7.0
3237
+ .INDENT 3.5
3238
+ The scope of all storage options is system\-wide, so only system names can be specified in this list, otherwise the scope will be ignored.
3239
+ .UNINDENT
3240
+ .UNINDENT
3197
3241
  .UNINDENT
3198
3242
  .SH GENERAL CONFIGURATION
3199
3243
  .INDENT 0.0
@@ -3762,6 +3806,24 @@ No
3762
3806
  .sp
3763
3807
  A list of systems or system/partitions combinations that these general options are valid for.
3764
3808
  For a detailed description of this property, have a look at the \fI\%target_systems\fP definition for environments.
3809
+ .sp
3810
+ \fBNOTE:\fP
3811
+ .INDENT 7.0
3812
+ .INDENT 3.5
3813
+ The scope of all general options is system\-wide, so only system names can be specified in this list, otherwise the scope will be ignored.
3814
+ Exception to this rule are the following options, which have a partition scope:
3815
+ .INDENT 0.0
3816
+ .IP \(bu 2
3817
+ \fI\%git_timeout\fP
3818
+ .IP \(bu 2
3819
+ \fI\%use_login_shell\fP
3820
+ .IP \(bu 2
3821
+ \fI\%flex_alloc_strict\fP
3822
+ .IP \(bu 2
3823
+ \fI\%trap_job_errors\fP
3824
+ .UNINDENT
3825
+ .UNINDENT
3826
+ .UNINDENT
3765
3827
  .UNINDENT
3766
3828
  .INDENT 0.0
3767
3829
  .TP
@@ -120,7 +120,7 @@ site_configuration = {
120
120
  'ignore_keys': ['check_perfvalues'],
121
121
  'json_formatter': (_format_record
122
122
  if os.getenv('CUSTOM_JSON') else None),
123
- 'authorization_header': _get_authorization_header()
123
+ 'authorization_header': _get_authorization_header
124
124
  }
125
125
  ]
126
126
  }
@@ -1,40 +1,31 @@
1
- FROM ubuntu:22.04
1
+ FROM ubuntu:24.04
2
+ COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /usr/local/bin/
2
3
 
3
4
  RUN apt-get -y update && \
4
5
  apt-get -y install curl && \
5
6
  apt-get -y install sudo && \
6
- apt-get -y install python3-pip && \
7
7
  apt-get -y install clang gcc git jq libomp-dev tree vim
8
8
 
9
- # Install reframe
10
- ARG REFRAME_TAG=develop
11
- ARG REFRAME_REPO=reframe-hpc
12
- WORKDIR /usr/local/share
13
-
14
- # Clone reframe
15
- # RUN git clone --depth 1 --branch $REFRAME_TAG https://github.com/$REFRAME_REPO/reframe.git && \
16
- # cd reframe/ && ./bootstrap.sh
17
-
18
- # Comment the above line and uncomment the following two for development
19
-
20
- COPY . /usr/local/share/reframe
21
- RUN cd reframe && ./bootstrap.sh
22
-
23
- ENV PATH=/usr/local/share/reframe/bin:$PATH
24
-
25
9
  # Install stream
10
+ WORKDIR /usr/local/share
26
11
  RUN mkdir -p stream/bin && \
27
12
  cd stream && \
28
13
  curl -fsSLJO https://www.cs.virginia.edu/stream/FTP/Code/stream.c && \
29
14
  gcc -DSTREAM_ARRAY_SIZE=100000000 -O3 -Wall -fopenmp -o bin/stream.x stream.c
30
15
  ENV PATH=/usr/local/share/stream/bin:$PATH
31
16
 
17
+ # Prepare reframe installation
18
+ WORKDIR /workspace
19
+ COPY . /workspace/reframe
20
+
32
21
  # Add tutorial user
33
22
  RUN useradd -ms /bin/bash -G sudo user && \
34
23
  echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
35
24
 
36
- # COPY examples /home/user/reframe-examples
37
- # RUN chown -R user:user /home/user/reframe-examples
38
25
  WORKDIR /home/user
39
26
 
27
+ # Install reframe
40
28
  USER user
29
+ RUN uv tool install /workspace/reframe
30
+ ENV PATH=/home/user/.local/bin:$PATH
31
+ ENV MANPATH=/home/user/.local/share/uv/tools/reframe-hpc/share/man:
@@ -72,10 +72,8 @@ services:
72
72
  frontend:
73
73
  image: slurm-reframe
74
74
  build:
75
- context: examples/tutorial/dockerfiles/slurm-cluster/reframe
76
- args:
77
- REFRAME_REPO: reframe-hpc
78
- REFRAME_TAG: develop
75
+ context: .
76
+ dockerfile: examples/tutorial/dockerfiles/slurm-cluster/reframe/Dockerfile
79
77
  container_name: frontend
80
78
  hostname: login
81
79
  user: admin
@@ -29,23 +29,21 @@ RUN useradd -m admin -s /usr/bin/bash -d /home/admin && \
29
29
  echo "admin:admin" | chpasswd && adduser admin sudo && \
30
30
  echo "admin ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
31
31
 
32
- COPY docker-entrypoint.sh /usr/local/bin/
32
+ COPY examples/tutorial/dockerfiles/slurm-cluster/reframe/docker-entrypoint.sh /usr/local/bin/
33
33
 
34
34
  RUN mkdir /scratch && \
35
35
  chown -R admin:admin /scratch
36
36
 
37
37
  RUN chmod +x /usr/local/bin/docker-entrypoint.sh
38
38
 
39
- # Install reframe
40
- ARG REFRAME_TAG=develop
41
- ARG REFRAME_REPO=reframe-hpc
42
- WORKDIR /usr/local/share
43
- RUN git clone --depth 1 --branch $REFRAME_TAG https://github.com/$REFRAME_REPO/reframe.git && \
44
- cd reframe/ && uv tool install .
39
+ # Prepare reframe installation
40
+ WORKDIR /workspace
41
+ COPY . /workspace/reframe
45
42
 
46
43
  WORKDIR /home/admin
47
-
48
- ENV USER admin
49
- ENV SHELL bash
44
+ USER admin
45
+ RUN uv tool install --reinstall /workspace/reframe && \
46
+ echo "export PATH=/home/admin/.local/bin:\$PATH" >> /home/admin/.profile && \
47
+ echo "export MANPATH=/home/admin/.local/share/uv/tools/reframe-hpc/share/man:" >> /home/admin/.profile
50
48
 
51
49
  ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
@@ -33,7 +33,7 @@ dependencies = [
33
33
  "jinja2 ~= 3.1",
34
34
  "jsonschema ~= 4.26",
35
35
  "lxml ~= 6.0",
36
- "polars ~= 1.39",
36
+ "polars ~= 1.39; extra != 'no-analytics'",
37
37
  "PyYAML ~= 6.0",
38
38
  "requests ~= 2.33",
39
39
  "semver ~= 3.0",
@@ -57,10 +57,12 @@ reframe = "reframe.frontend.cli:main"
57
57
 
58
58
  [project.optional-dependencies]
59
59
  graylog = ["pygelf ~= 0.4"]
60
+ no-analytics = []
60
61
 
61
62
  [dependency-groups]
62
63
  dev = [
63
64
  "coverage ~= 7.13",
65
+ "polars ~= 1.39",
64
66
  "pytest ~= 9.0",
65
67
  "pytest-forked ~= 1.6",
66
68
  "pytest-rerunfailures ~= 16.1"
@@ -6,7 +6,7 @@
6
6
  import os
7
7
  import sys
8
8
 
9
- VERSION = '4.10.0-dev.5'
9
+ VERSION = '4.10.1'
10
10
  INSTALL_PREFIX = os.path.normpath(
11
11
  os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
12
12
  )
@@ -365,6 +365,10 @@ class ReferenceParseError(ReframeError):
365
365
  '''
366
366
 
367
367
 
368
+ class WarningAsError(ReframeError):
369
+ '''Raised when a warning is treated as an error.'''
370
+
371
+
368
372
  def user_frame():
369
373
  '''Return the first user frame as a :py:class:`FrameInfo` object.
370
374
 
@@ -22,7 +22,8 @@ from datetime import datetime
22
22
  import reframe.utility.color as color
23
23
  import reframe.utility.jsonext as jsonext
24
24
  import reframe.utility.osext as osext
25
- from reframe.core.exceptions import ConfigError, LoggingError, what
25
+ from reframe.core.exceptions import (ConfigError, LoggingError,
26
+ WarningAsError, what)
26
27
  from reframe.core.warnings import suppress_deprecations
27
28
  from reframe.utility import is_trivially_callable
28
29
  from reframe.utility.profile import TimeProfiler
@@ -903,6 +904,7 @@ class LoggerAdapter(logging.LoggerAdapter):
903
904
  )
904
905
  self.check = check
905
906
  self.colorize = False
907
+ self.warn_as_error = False
906
908
 
907
909
  def setLevel(self, level):
908
910
  if self.logger:
@@ -999,6 +1001,9 @@ class LoggerAdapter(logging.LoggerAdapter):
999
1001
  self.log(VERBOSE, message, *args, **kwargs)
1000
1002
 
1001
1003
  def warning(self, message, *args, cache=False, **kwargs):
1004
+ if self.warn_as_error:
1005
+ raise WarningAsError(message)
1006
+
1002
1007
  if cache:
1003
1008
  if message in _WARN_ONCE:
1004
1009
  return
@@ -1082,7 +1087,7 @@ class logging_context:
1082
1087
  _context_logger = self._orig_logger
1083
1088
 
1084
1089
 
1085
- def configure_logging(site_config):
1090
+ def configure_logging(site_config, warn_as_error=False):
1086
1091
  global _logger, _context_logger, _perf_logger
1087
1092
 
1088
1093
  if site_config is None:
@@ -1095,6 +1100,7 @@ def configure_logging(site_config):
1095
1100
  _logger = _create_logger(site_config, 'handlers$', 'handlers')
1096
1101
  _perf_logger = _create_logger(site_config, 'handlers_perflog')
1097
1102
  _context_logger = LoggerAdapter(_logger)
1103
+ _context_logger.warn_as_error = warn_as_error
1098
1104
 
1099
1105
 
1100
1106
  def log_files():