squidient 3.4.5__tar.gz → 3.4.7__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.7}/PKG-INFO +1 -1
  2. {squidient-3.4.5 → squidient-3.4.7}/pyproject.toml +1 -1
  3. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/builds/build_orchestrator.py +2 -0
  4. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/builds/builds.json +8 -0
  5. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/test_relauncher.py +2 -1
  6. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/cases/instance.py +41 -20
  7. {squidient-3.4.5 → squidient-3.4.7}/.gitignore +0 -0
  8. {squidient-3.4.5 → squidient-3.4.7}/LICENSE.txt +0 -0
  9. {squidient-3.4.5 → squidient-3.4.7}/README.md +0 -0
  10. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/__init__.py +0 -0
  11. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/builds/benchmark_build_execution.py +0 -0
  12. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/builds/benchmark_build_orchestrator.py +0 -0
  13. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/builds/build_definition.py +0 -0
  14. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/builds/build_execution.py +0 -0
  15. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/builds/build_presets.py +0 -0
  16. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/cli/__init__.py +0 -0
  17. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/cli/__main__.py +0 -0
  18. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/cli/main.py +0 -0
  19. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/cli/monitoring.py +0 -0
  20. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/cli/staging.py +0 -0
  21. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/cli/update.py +0 -0
  22. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/code_coverage/code_coverage.py +0 -0
  23. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/code_coverage/gcovr_code_coverage.py +0 -0
  24. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/code_coverage/intel_code_coverage.py +0 -0
  25. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/compare.py +0 -0
  26. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/compare_with_diff_table.py +0 -0
  27. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/absolute.py +0 -0
  28. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/close.py +0 -0
  29. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/diff.py +0 -0
  30. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/l1_norm.py +0 -0
  31. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/l1_relative.py +0 -0
  32. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/l2_norm.py +0 -0
  33. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/l2_relative.py +0 -0
  34. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/linf_norm.py +0 -0
  35. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/linf_relative.py +0 -0
  36. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/power.py +0 -0
  37. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/relative.py +0 -0
  38. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/scalar_tolerance.py +0 -0
  39. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/tolerance.py +0 -0
  40. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compare/methods/vector_tolerance.py +0 -0
  41. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/compilation/cmake_options.py +0 -0
  42. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/configuration/__init__.py +0 -0
  43. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/configuration/code_coverage.py +0 -0
  44. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/configuration/generator.py +0 -0
  45. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/configuration/prompts.py +0 -0
  46. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/configure.py +0 -0
  47. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/connection/job.py +0 -0
  48. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/connection/ssh.py +0 -0
  49. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/connection/ssh_config_checker.py +0 -0
  50. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/.squidient-initialized +0 -0
  51. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-alamak.json +0 -0
  52. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-chemint.json +0 -0
  53. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-clang.json +0 -0
  54. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-commdom.json +0 -0
  55. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-gnu.json +0 -0
  56. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-intel.json +0 -0
  57. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-mumps.json +0 -0
  58. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-nvhpc.json +0 -0
  59. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/alya-config/cmake-talp.json +0 -0
  60. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/benchmarks/benchmarks.json +0 -0
  61. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/builds/cc.json +0 -0
  62. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/builds/defaults.json +0 -0
  63. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/builds/predefined-old.json +0 -0
  64. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/builds/predefined.json +0 -0
  65. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/configurations/projects.json +0 -0
  66. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/configurations/systems.json +0 -0
  67. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/configurations/tests.json +0 -0
  68. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/email/report.html +0 -0
  69. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/icons/big.png +0 -0
  70. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/icons/small.png +0 -0
  71. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/index.html +0 -0
  72. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/.gitignore +0 -0
  73. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small/.gitignore +0 -0
  74. {squidient-3.4.5 → squidient-3.4.7}/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.7}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/t3.small.tf +0 -0
  76. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small/t3.small/terraform.tfvars +0 -0
  77. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/.gitignore +0 -0
  78. {squidient-3.4.5 → squidient-3.4.7}/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.7}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/replace-var.sh +0 -0
  80. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/t3.small.tf +0 -0
  81. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x2/t3.small/terraform.tfvars +0 -0
  82. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/.gitignore +0 -0
  83. {squidient-3.4.5 → squidient-3.4.7}/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.7}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/t3.small.tf +0 -0
  85. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x3/t3.small/terraform.tfvars +0 -0
  86. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/.gitignore +0 -0
  87. {squidient-3.4.5 → squidient-3.4.7}/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.7}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/t3.small.tf +0 -0
  89. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/terraform/aws-ec2-t3.small-x6/t3.small/terraform.tfvars +0 -0
  90. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/version/version.json +0 -0
  91. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/btest.html +0 -0
  92. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/cc-gcovr.html +0 -0
  93. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/cc-intel.html +0 -0
  94. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/files.html +0 -0
  95. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/canceled.png +0 -0
  96. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/created.png +0 -0
  97. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/failed.png +0 -0
  98. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/failed_black.png +0 -0
  99. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/failed_green.png +0 -0
  100. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/file_cloud.png +0 -0
  101. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/file_config.png +0 -0
  102. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/file_ko.png +0 -0
  103. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/file_ok.png +0 -0
  104. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/skipped.png +0 -0
  105. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/squidient_logo.png +0 -0
  106. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/success.png +0 -0
  107. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/success_black.png +0 -0
  108. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/timeout.png +0 -0
  109. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/tolerance.png +0 -0
  110. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/warning.png +0 -0
  111. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/warning_black.png +0 -0
  112. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/png/warning_green.png +0 -0
  113. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/canceled.svg +0 -0
  114. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/created.svg +0 -0
  115. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/failed.svg +0 -0
  116. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/failed_black.svg +0 -0
  117. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/failed_green.svg +0 -0
  118. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/manual.svg +0 -0
  119. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/running.svg +0 -0
  120. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/skipped.svg +0 -0
  121. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/success.svg +0 -0
  122. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/success_black.svg +0 -0
  123. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/warning.svg +0 -0
  124. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/warning_black.svg +0 -0
  125. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/img/svg/warning_green.svg +0 -0
  126. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/index.html +0 -0
  127. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/jquery.dynatable.css +0 -0
  128. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/jquery.dynatable.js +0 -0
  129. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/monitoring.html +0 -0
  130. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/monitoring_build.html +0 -0
  131. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/monitoring_test.html +0 -0
  132. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/perf.html +0 -0
  133. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/staging_build.html +0 -0
  134. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/staging_test.html +0 -0
  135. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/test.html +0 -0
  136. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/testsuite.css +0 -0
  137. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/data/web/testsuite.js +0 -0
  138. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/definitions.py +0 -0
  139. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/deployment/initialization.py +0 -0
  140. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/deployment/module_generator.py +0 -0
  141. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/exceptions.py +0 -0
  142. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/monitoring/build_phase.py +0 -0
  143. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/monitoring/full_workflow.py +0 -0
  144. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/monitoring/monitoring.py +0 -0
  145. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/monitoring/monitoring_db.py +0 -0
  146. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/monitoring/notification_failures.py +0 -0
  147. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/monitoring/test_phase.py +0 -0
  148. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/__init__.py +0 -0
  149. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/cases/__init__.py +0 -0
  150. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/cases/base.py +0 -0
  151. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/cases/case.py +0 -0
  152. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/cases/detailed.py +0 -0
  153. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/cases/full.py +0 -0
  154. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/monitoring/__init__.py +0 -0
  155. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/monitoring/report.py +0 -0
  156. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/reports/report.py +0 -0
  157. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/build_phase.py +0 -0
  158. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/execution_warning.py +0 -0
  159. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/full_workflow.py +0 -0
  160. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/report_cleaner.py +0 -0
  161. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/report_transfer.py +0 -0
  162. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/staging.py +0 -0
  163. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/staging/test_phase.py +0 -0
  164. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/partition.py +0 -0
  165. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/platform.py +0 -0
  166. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/qos.py +0 -0
  167. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/queue_tester.py +0 -0
  168. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/reservation.py +0 -0
  169. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/system.py +0 -0
  170. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/systems/system_manager.py +0 -0
  171. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/terraform/terraform.py +0 -0
  172. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/benchmarks/__init__.py +0 -0
  173. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/benchmarks/failure_notifier.py +0 -0
  174. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/benchmarks/instance.py +0 -0
  175. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/benchmarks/test_case.py +0 -0
  176. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/benchmarks/test_orchestrator.py +0 -0
  177. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/cases/__init__.py +0 -0
  178. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/cases/instance_merger.py +0 -0
  179. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/cases/test_case.py +0 -0
  180. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/testing/test_orchestrator.py +0 -0
  181. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/timers/__init__.py +0 -0
  182. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/timers/timer.py +0 -0
  183. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/arguments.py +0 -0
  184. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/gitlab.py +0 -0
  185. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/lock.py +0 -0
  186. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/log.py +0 -0
  187. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/message.py +0 -0
  188. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/package.py +0 -0
  189. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/utils.py +0 -0
  190. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/utils/watchdog.py +0 -0
  191. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/version_control/__init__.py +0 -0
  192. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/version_control/git_repository.py +0 -0
  193. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/workflows/__init__.py +0 -0
  194. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/workflows/base.py +0 -0
  195. {squidient-3.4.5 → squidient-3.4.7}/src/squidient/workflows/code_coverage.py +0 -0
  196. {squidient-3.4.5 → squidient-3.4.7}/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.7
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.7"
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
  ],
@@ -156,6 +158,7 @@
156
158
  "export DLB_ARGS=--talp"
157
159
  ],
158
160
  "postModules": [
161
+ "unset MAKEFLAGS",
159
162
  "ulimit -s unlimited",
160
163
  "export SLURM_CPU_BIND=none"
161
164
  ],
@@ -233,6 +236,7 @@
233
236
  ],
234
237
  "platform": "gpp",
235
238
  "postModules": [
239
+ "unset MAKEFLAGS",
236
240
  "ulimit -s unlimited"
237
241
  ],
238
242
  "system": "bsc",
@@ -316,6 +320,7 @@
316
320
  ],
317
321
  "platform": "gpp",
318
322
  "postModules": [
323
+ "unset MAKEFLAGS",
319
324
  "ulimit -s unlimited"
320
325
  ],
321
326
  "system": "bsc",
@@ -342,6 +347,7 @@
342
347
  ],
343
348
  "platform": "acc",
344
349
  "postModules": [
350
+ "unset MAKEFLAGS",
345
351
  "ulimit -s unlimited",
346
352
  "export SLURM_CPU_BIND=none"
347
353
  ],
@@ -515,6 +521,7 @@
515
521
  ],
516
522
  "platform": "acc",
517
523
  "postModules": [
524
+ "unset MAKEFLAGS",
518
525
  "ulimit -s unlimited",
519
526
  "export SLURM_CPU_BIND=none"
520
527
  ],
@@ -573,6 +580,7 @@
573
580
  ],
574
581
  "platform": "grace",
575
582
  "postModules": [
583
+ "unset MAKEFLAGS",
576
584
  "ulimit -s unlimited",
577
585
  "export SLURM_CPU_BIND=none"
578
586
  ],
@@ -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