squidient 3.4.5__tar.gz → 3.4.8__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 (196) hide show
  1. {squidient-3.4.5 → squidient-3.4.8}/PKG-INFO +1 -1
  2. {squidient-3.4.5 → squidient-3.4.8}/pyproject.toml +1 -1
  3. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/builds/build_orchestrator.py +2 -0
  4. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/builds/builds.json +26 -0
  5. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/test_relauncher.py +2 -1
  6. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/cases/instance.py +41 -20
  7. {squidient-3.4.5 → squidient-3.4.8}/.gitignore +0 -0
  8. {squidient-3.4.5 → squidient-3.4.8}/LICENSE.txt +0 -0
  9. {squidient-3.4.5 → squidient-3.4.8}/README.md +0 -0
  10. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/__init__.py +0 -0
  11. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/builds/benchmark_build_execution.py +0 -0
  12. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/builds/benchmark_build_orchestrator.py +0 -0
  13. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/builds/build_definition.py +0 -0
  14. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/builds/build_execution.py +0 -0
  15. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/builds/build_presets.py +0 -0
  16. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/cli/__init__.py +0 -0
  17. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/cli/__main__.py +0 -0
  18. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/cli/main.py +0 -0
  19. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/cli/monitoring.py +0 -0
  20. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/cli/staging.py +0 -0
  21. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/cli/update.py +0 -0
  22. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/code_coverage/code_coverage.py +0 -0
  23. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/code_coverage/gcovr_code_coverage.py +0 -0
  24. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/code_coverage/intel_code_coverage.py +0 -0
  25. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/compare.py +0 -0
  26. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/compare_with_diff_table.py +0 -0
  27. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/absolute.py +0 -0
  28. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/close.py +0 -0
  29. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/diff.py +0 -0
  30. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/l1_norm.py +0 -0
  31. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/l1_relative.py +0 -0
  32. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/l2_norm.py +0 -0
  33. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/l2_relative.py +0 -0
  34. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/linf_norm.py +0 -0
  35. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/linf_relative.py +0 -0
  36. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/power.py +0 -0
  37. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/relative.py +0 -0
  38. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/scalar_tolerance.py +0 -0
  39. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/tolerance.py +0 -0
  40. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compare/methods/vector_tolerance.py +0 -0
  41. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/compilation/cmake_options.py +0 -0
  42. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/configuration/__init__.py +0 -0
  43. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/configuration/code_coverage.py +0 -0
  44. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/configuration/generator.py +0 -0
  45. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/configuration/prompts.py +0 -0
  46. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/configure.py +0 -0
  47. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/connection/job.py +0 -0
  48. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/connection/ssh.py +0 -0
  49. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/connection/ssh_config_checker.py +0 -0
  50. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/.squidient-initialized +0 -0
  51. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-alamak.json +0 -0
  52. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-chemint.json +0 -0
  53. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-clang.json +0 -0
  54. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-commdom.json +0 -0
  55. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-gnu.json +0 -0
  56. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-intel.json +0 -0
  57. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-mumps.json +0 -0
  58. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-nvhpc.json +0 -0
  59. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/alya-config/cmake-talp.json +0 -0
  60. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/benchmarks/benchmarks.json +0 -0
  61. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/builds/cc.json +0 -0
  62. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/builds/defaults.json +0 -0
  63. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/builds/predefined-old.json +0 -0
  64. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/builds/predefined.json +0 -0
  65. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/configurations/projects.json +0 -0
  66. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/configurations/systems.json +0 -0
  67. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/configurations/tests.json +0 -0
  68. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/email/report.html +0 -0
  69. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/icons/big.png +0 -0
  70. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/icons/small.png +0 -0
  71. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/index.html +0 -0
  72. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/.gitignore +0 -0
  73. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small/.gitignore +0 -0
  74. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/cloud-init-slurm-fedora.sh +0 -0
  75. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/t3.small.tf +0 -0
  76. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/terraform.tfvars +0 -0
  77. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/.gitignore +0 -0
  78. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/cloud-init-slurm-fedora.sh +0 -0
  79. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/replace-var.sh +0 -0
  80. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/t3.small.tf +0 -0
  81. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/terraform.tfvars +0 -0
  82. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/.gitignore +0 -0
  83. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/cloud-init-slurm-fedora.sh +0 -0
  84. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/t3.small.tf +0 -0
  85. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/terraform.tfvars +0 -0
  86. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/.gitignore +0 -0
  87. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/cloud-init-slurm-fedora.sh +0 -0
  88. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/t3.small.tf +0 -0
  89. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/terraform.tfvars +0 -0
  90. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/version/version.json +0 -0
  91. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/btest.html +0 -0
  92. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/cc-gcovr.html +0 -0
  93. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/cc-intel.html +0 -0
  94. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/files.html +0 -0
  95. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/canceled.png +0 -0
  96. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/created.png +0 -0
  97. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/failed.png +0 -0
  98. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/failed_black.png +0 -0
  99. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/failed_green.png +0 -0
  100. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/file_cloud.png +0 -0
  101. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/file_config.png +0 -0
  102. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/file_ko.png +0 -0
  103. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/file_ok.png +0 -0
  104. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/skipped.png +0 -0
  105. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/squidient_logo.png +0 -0
  106. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/success.png +0 -0
  107. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/success_black.png +0 -0
  108. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/timeout.png +0 -0
  109. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/tolerance.png +0 -0
  110. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/warning.png +0 -0
  111. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/warning_black.png +0 -0
  112. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/png/warning_green.png +0 -0
  113. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/canceled.svg +0 -0
  114. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/created.svg +0 -0
  115. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/failed.svg +0 -0
  116. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/failed_black.svg +0 -0
  117. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/failed_green.svg +0 -0
  118. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/manual.svg +0 -0
  119. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/running.svg +0 -0
  120. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/skipped.svg +0 -0
  121. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/success.svg +0 -0
  122. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/success_black.svg +0 -0
  123. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/warning.svg +0 -0
  124. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/warning_black.svg +0 -0
  125. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/img/svg/warning_green.svg +0 -0
  126. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/index.html +0 -0
  127. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/jquery.dynatable.css +0 -0
  128. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/jquery.dynatable.js +0 -0
  129. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/monitoring.html +0 -0
  130. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/monitoring_build.html +0 -0
  131. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/monitoring_test.html +0 -0
  132. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/perf.html +0 -0
  133. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/staging_build.html +0 -0
  134. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/staging_test.html +0 -0
  135. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/test.html +0 -0
  136. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/testsuite.css +0 -0
  137. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/data/web/testsuite.js +0 -0
  138. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/definitions.py +0 -0
  139. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/deployment/initialization.py +0 -0
  140. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/deployment/module_generator.py +0 -0
  141. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/exceptions.py +0 -0
  142. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/monitoring/build_phase.py +0 -0
  143. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/monitoring/full_workflow.py +0 -0
  144. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/monitoring/monitoring.py +0 -0
  145. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/monitoring/monitoring_db.py +0 -0
  146. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/monitoring/notification_failures.py +0 -0
  147. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/monitoring/test_phase.py +0 -0
  148. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/__init__.py +0 -0
  149. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/cases/__init__.py +0 -0
  150. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/cases/base.py +0 -0
  151. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/cases/case.py +0 -0
  152. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/cases/detailed.py +0 -0
  153. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/cases/full.py +0 -0
  154. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/monitoring/__init__.py +0 -0
  155. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/monitoring/report.py +0 -0
  156. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/reports/report.py +0 -0
  157. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/build_phase.py +0 -0
  158. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/execution_warning.py +0 -0
  159. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/full_workflow.py +0 -0
  160. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/report_cleaner.py +0 -0
  161. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/report_transfer.py +0 -0
  162. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/staging.py +0 -0
  163. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/staging/test_phase.py +0 -0
  164. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/partition.py +0 -0
  165. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/platform.py +0 -0
  166. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/qos.py +0 -0
  167. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/queue_tester.py +0 -0
  168. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/reservation.py +0 -0
  169. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/system.py +0 -0
  170. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/systems/system_manager.py +0 -0
  171. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/terraform/terraform.py +0 -0
  172. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/benchmarks/__init__.py +0 -0
  173. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/benchmarks/failure_notifier.py +0 -0
  174. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/benchmarks/instance.py +0 -0
  175. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/benchmarks/test_case.py +0 -0
  176. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/benchmarks/test_orchestrator.py +0 -0
  177. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/cases/__init__.py +0 -0
  178. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/cases/instance_merger.py +0 -0
  179. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/cases/test_case.py +0 -0
  180. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/testing/test_orchestrator.py +0 -0
  181. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/timers/__init__.py +0 -0
  182. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/timers/timer.py +0 -0
  183. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/arguments.py +0 -0
  184. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/gitlab.py +0 -0
  185. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/lock.py +0 -0
  186. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/log.py +0 -0
  187. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/message.py +0 -0
  188. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/package.py +0 -0
  189. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/utils.py +0 -0
  190. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/utils/watchdog.py +0 -0
  191. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/version_control/__init__.py +0 -0
  192. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/version_control/git_repository.py +0 -0
  193. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/workflows/__init__.py +0 -0
  194. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/workflows/base.py +0 -0
  195. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/workflows/code_coverage.py +0 -0
  196. {squidient-3.4.5 → squidient-3.4.8}/src/squidient/workflows/locks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: squidient
3
- Version: 3.4.5
3
+ Version: 3.4.8
4
4
  Summary: CI/CD framework for alya
5
5
  Project-URL: Homepage, https://alya.gitlab.bsc.es/alya/ci-cd/squidient
6
6
  Project-URL: Bug Tracker, https://alya.gitlab.bsc.es/alya/ci-cd/squidient/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "squidient"
7
- version = "3.4.5"
7
+ version = "3.4.8"
8
8
  authors = [
9
9
  { name="Damien Dosimont", email="damien.dosimont@gmail.com" },
10
10
  ]
@@ -152,6 +152,8 @@ class BuildOrchestrator:
152
152
  return len(self._launched_builds)
153
153
 
154
154
  def next_valid_build(self, show_progress=True, single_snapshot=None, stop_on_error=False, output_level=1):
155
+ if single_snapshot is None:
156
+ single_snapshot = not console.interactive()
155
157
  display_status = show_progress
156
158
  while len(self._pending_builds) == 0:
157
159
  if self.check_builds(
@@ -12,6 +12,7 @@
12
12
  ],
13
13
  "platform": "gpp",
14
14
  "postModules": [
15
+ "unset MAKEFLAGS",
15
16
  "ulimit -s unlimited",
16
17
  "export SLURM_CPU_BIND=none"
17
18
  ],
@@ -45,6 +46,7 @@
45
46
  ],
46
47
  "platform": "gpp",
47
48
  "postModules": [
49
+ "unset MAKEFLAGS",
48
50
  "ulimit -s unlimited",
49
51
  "export SLURM_CPU_BIND=none"
50
52
  ],
@@ -66,6 +68,12 @@
66
68
  "cmake-gpp-oneapi-2024.1-i4-openmp": {
67
69
  "from": "cmake-gpp-oneapi-2024.1-i4",
68
70
  "configuration": "intel-i4-openmp",
71
+ "postModules": [
72
+ "unset MAKEFLAGS",
73
+ "ulimit -s unlimited",
74
+ "export SLURM_CPU_BIND=none",
75
+ "export I_MPI_PIN_DOMAIN=omp"
76
+ ],
69
77
  "environment": [
70
78
  "export OMP_STACKSIZE=50M"
71
79
  ],
@@ -77,6 +85,12 @@
77
85
  },
78
86
  "cmake-gpp-oneapi-2024.1-i4-mumps": {
79
87
  "configuration": "intel-i4-mumps",
88
+ "postModules": [
89
+ "unset MAKEFLAGS",
90
+ "ulimit -s unlimited",
91
+ "export SLURM_CPU_BIND=none",
92
+ "export I_MPI_PIN_DOMAIN=omp"
93
+ ],
80
94
  "environment": [
81
95
  "export OMP_STACKSIZE=50M"
82
96
  ],
@@ -156,6 +170,7 @@
156
170
  "export DLB_ARGS=--talp"
157
171
  ],
158
172
  "postModules": [
173
+ "unset MAKEFLAGS",
159
174
  "ulimit -s unlimited",
160
175
  "export SLURM_CPU_BIND=none"
161
176
  ],
@@ -190,6 +205,12 @@
190
205
  "cmake-gpp-oneapi-2024.1-i8-openmp": {
191
206
  "from": "cmake-gpp-oneapi-2024.1-i8",
192
207
  "configuration": "intel-i8-openmp",
208
+ "postModules": [
209
+ "unset MAKEFLAGS",
210
+ "ulimit -s unlimited",
211
+ "export SLURM_CPU_BIND=none",
212
+ "export I_MPI_PIN_DOMAIN=omp"
213
+ ],
193
214
  "environment": [
194
215
  "export OMP_STACKSIZE=50M"
195
216
  ],
@@ -233,6 +254,7 @@
233
254
  ],
234
255
  "platform": "gpp",
235
256
  "postModules": [
257
+ "unset MAKEFLAGS",
236
258
  "ulimit -s unlimited"
237
259
  ],
238
260
  "system": "bsc",
@@ -316,6 +338,7 @@
316
338
  ],
317
339
  "platform": "gpp",
318
340
  "postModules": [
341
+ "unset MAKEFLAGS",
319
342
  "ulimit -s unlimited"
320
343
  ],
321
344
  "system": "bsc",
@@ -342,6 +365,7 @@
342
365
  ],
343
366
  "platform": "acc",
344
367
  "postModules": [
368
+ "unset MAKEFLAGS",
345
369
  "ulimit -s unlimited",
346
370
  "export SLURM_CPU_BIND=none"
347
371
  ],
@@ -515,6 +539,7 @@
515
539
  ],
516
540
  "platform": "acc",
517
541
  "postModules": [
542
+ "unset MAKEFLAGS",
518
543
  "ulimit -s unlimited",
519
544
  "export SLURM_CPU_BIND=none"
520
545
  ],
@@ -573,6 +598,7 @@
573
598
  ],
574
599
  "platform": "grace",
575
600
  "postModules": [
601
+ "unset MAKEFLAGS",
576
602
  "ulimit -s unlimited",
577
603
  "export SLURM_CPU_BIND=none"
578
604
  ],
@@ -40,7 +40,7 @@ class StagingTestRelaunchManager:
40
40
  stop_on_exceeded=True,
41
41
  retry_message="Maximum number of retries exceeded"):
42
42
  retry_count = 0
43
- while self._workflow.should_relaunch_tests() and (status or stop_on_exceeded):
43
+ while self._workflow.should_relaunch_tests():
44
44
  retry_count += 1
45
45
  logger.debug(
46
46
  "Waiting for relaunched tests: retry=%s, status=%s, stop_on_exceeded=%s",
@@ -53,6 +53,7 @@ class StagingTestRelaunchManager:
53
53
  console.error(retry_message, level=1)
54
54
  if stop_on_exceeded:
55
55
  raise WorkflowFailure(retry_message)
56
+ status = False
56
57
  break
57
58
  console.section("Some tests have been relaunched")
58
59
  self._workflow.wait_current_tests(single_snapshot=single_snapshot)
@@ -461,14 +461,22 @@ class Instance:
461
461
  except RuntimeError:
462
462
  console.group("Instance " + self._id, level=2)
463
463
  console.error("Cannot download the report for instance " + self._id, level=3)
464
- error = "unknown"
464
+ error = "report"
465
465
  if not self._job_valid and self._job_terminated:
466
466
  error = "slurm"
467
467
  try:
468
468
  self._report = open_critical_json(self._report_path + "/report.json")
469
- except (OSError, ValueError, RuntimeError):
469
+ if (not isinstance(self._report, dict)
470
+ or not isinstance(self._report.get("status"), bool)
471
+ or not isinstance(self._report.get("error"), str)
472
+ or not self._report["error"]
473
+ or self._report["error"] in ("skipped", "unknown")):
474
+ raise ValueError("Report must contain a boolean status and a non-placeholder error")
475
+ except (OSError, ValueError, RuntimeError) as exception:
476
+ logger.warning("Missing or invalid report for instance %s, attempt %s: %s",
477
+ self._id, self._retry + 1, exception)
470
478
  console.group("Instance " + self._id, level=2)
471
- console.warning("Report not found; creating a dummy report for instance " + self._id, level=3)
479
+ console.warning("Report missing or invalid; creating a dummy report for instance " + self._id, level=3)
472
480
  self.build_failed_report(error)
473
481
  shutil.copy2(self._json_path, self._report_path)
474
482
  self._report["path"] = self._test_path
@@ -483,18 +491,17 @@ class Instance:
483
491
 
484
492
  self._relaunch = False
485
493
 
486
- if self._report["error"] in ["slurm"]:
487
- self.retry()
488
- else:
494
+ retry_required = self._report["error"] in ("slurm", "report")
495
+ if self._report["error"] != "slurm":
489
496
  if file_contains(self._report_path + "/test.err", "DUE TO TIME LIMIT"):
490
497
  self._report["error"] = "timeout"
491
- self.retry()
498
+ retry_required = True
492
499
  elif file_contains(self._report_path + "/post.err", "already completing or completed"):
493
500
  self._report["error"] = "timeout"
494
- self.retry()
501
+ retry_required = True
495
502
  elif file_contains(self._report_path + "/post.err", "Expired or invalid job"):
496
503
  self._report["error"] = "timeout"
497
- self.retry()
504
+ retry_required = True
498
505
  elif file_contains(self._report_path + "/alya.err", "All nodes which are allocated for this job are already filled"):
499
506
  self._report["error"] = "overload"
500
507
  elif (
@@ -503,31 +510,45 @@ class Instance:
503
510
  ):
504
511
  self._report["error"] = "binding"
505
512
  elif file_contains(self._report_path + "/alya.err", "Integer overflow in xmallocarray"):
506
- self.retry()
513
+ self._report["error"] = "job"
514
+ retry_required = True
507
515
  elif not file_contains(self._report_path + "/alya.out", "START ALYA"):
508
516
  self._report["error"] = "job"
509
- self.retry()
517
+ retry_required = True
510
518
  elif file_contains(self._report_path + "/alya.err", "Program received signal SIGSEGV"):
511
- self.retry()
519
+ self._report["error"] = "job"
520
+ retry_required = True
512
521
  elif file_contains(self._report_path + "/alya.err", "Bus error"):
513
- self.retry()
522
+ self._report["error"] = "job"
523
+ retry_required = True
514
524
  elif file_contains(self._report_path + "/alya.err", "Transport retry count exceeded on"):
515
- self.retry()
525
+ self._report["error"] = "job"
526
+ retry_required = True
516
527
  elif file_contains(self._report_path + "/post.err", "Transport retry count exceeded on"):
517
- self.retry()
528
+ self._report["error"] = "job"
529
+ retry_required = True
518
530
  elif file_contains(self._report_path + "/post.err", "srun: error: Unable to create step for job"):
519
- self.retry()
531
+ self._report["error"] = "job"
532
+ retry_required = True
520
533
  elif file_contains(self._report_path + "/post.err", "Fatal error in PMPI_Init: Unknown error class, error stack"):
521
- self.retry()
534
+ self._report["error"] = "job"
535
+ retry_required = True
522
536
  if not self.compute_times():
523
537
  self._report["error"] = "timeout"
524
- self.retry()
538
+ retry_required = True
525
539
  elif self._merged and timetosecond(self._report["jobTime"]) > timetosecond(self._timeout):
526
540
  self._report["error"] = "timeout"
541
+ retry_required = True
542
+ if self._report["error"] in ("report", "slurm", "timeout", "overload", "binding", "job"):
543
+ self._report["status"] = False
544
+ if retry_required:
545
+ # Several diagnostics can fail in one execution; count that attempt only once.
546
+ self.retry()
547
+ logger.debug("Instance %s: error=%s, attempt=%s, max_attempts=%s, relaunch=%s",
548
+ self._id, self._report["error"], self._report["retries"] + 1,
549
+ self._max_retry, self._relaunch)
527
550
  self.build_performance()
528
551
  self.build_counters()
529
- if self._relaunch:
530
- self._report["error"] = "skipped"
531
552
  save_json(self._report, self._report_path + "/report.json")
532
553
  if self._relaunch:
533
554
  self.backup_outputs()
File without changes
File without changes
File without changes