sierra-research 1.3.11__tar.gz → 1.5.0__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 (545) hide show
  1. {sierra_research-1.3.11 → sierra_research-1.5.0}/.coveragerc +8 -0
  2. sierra_research-1.5.0/.dir-locals.el +40 -0
  3. {sierra_research-1.3.11 → sierra_research-1.5.0}/.github/actions/sample-project-setup/action.yml +50 -49
  4. {sierra_research-1.3.11 → sierra_research-1.5.0}/.github/workflows/analysis-top.yml +5 -13
  5. {sierra_research-1.3.11 → sierra_research-1.5.0}/.github/workflows/analyze-nox.yml +8 -20
  6. sierra_research-1.5.0/.github/workflows/core.yml +51 -0
  7. sierra_research-1.5.0/.github/workflows/coverage-top.yml +175 -0
  8. sierra_research-1.5.0/.github/workflows/plugin.yml +422 -0
  9. sierra_research-1.5.0/.github/workflows/publish.yml +70 -0
  10. sierra_research-1.5.0/.github/workflows/unit-tests.yml +40 -0
  11. {sierra_research-1.3.11 → sierra_research-1.5.0}/.gitignore +2 -1
  12. {sierra_research-1.3.11 → sierra_research-1.5.0}/.pylintrc +14 -14
  13. {sierra_research-1.3.11 → sierra_research-1.5.0}/.readthedocs.yml +11 -8
  14. sierra_research-1.5.0/MANIFEST.in +2 -0
  15. sierra_research-1.5.0/PKG-INFO +238 -0
  16. sierra_research-1.5.0/README.rst +175 -0
  17. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/_ext/xref.py +0 -0
  18. sierra_research-1.5.0/docs/conf.py +408 -0
  19. sierra_research-1.5.0/docs/figures/architecture.uml +174 -0
  20. sierra_research-1.5.0/docs/figures/data-collation.uml +93 -0
  21. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/index.rst +23 -19
  22. sierra_research-1.5.0/docs/man/sierra-api.rst +2 -0
  23. sierra_research-1.5.0/docs/man/sierra-cli.rst +2 -0
  24. sierra_research-1.5.0/docs/man/sierra-plugins.rst +55 -0
  25. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/man/sierra-usage.rst +2 -4
  26. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/man/sierra.rst +20 -10
  27. sierra_research-1.5.0/docs/pyproject-man.txt +8 -0
  28. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/contributing.rst +11 -23
  29. sierra_research-1.5.0/docs/src/description.rst +24 -0
  30. sierra_research-1.5.0/docs/src/exp/index.rst +71 -0
  31. sierra_research-1.5.0/docs/src/exp/stage3-dataflow.rst +205 -0
  32. sierra_research-1.5.0/docs/src/exp/stage4-dataflow.rst +120 -0
  33. sierra_research-1.5.0/docs/src/exp/stage5-dataflow.rst +21 -0
  34. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/faq.rst +19 -22
  35. sierra_research-1.5.0/docs/src/glossary.rst +297 -0
  36. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/packages.rst +5 -9
  37. sierra_research-1.5.0/docs/src/philosophy.rst +112 -0
  38. sierra_research-1.5.0/docs/src/plugins/compare/cc_and_sc.yaml +58 -0
  39. sierra_research-1.5.0/docs/src/plugins/compare/graphs.rst +121 -0
  40. sierra_research-1.5.0/docs/src/plugins/compare/index.rst +23 -0
  41. sierra_research-1.5.0/docs/src/plugins/devguide.rst +226 -0
  42. sierra_research-1.5.0/docs/src/plugins/engine/argos/bc/population-constant-density.rst +34 -0
  43. sierra_research-1.5.0/docs/src/plugins/engine/argos/bc/population-size.rst +40 -0
  44. sierra_research-1.5.0/docs/src/plugins/engine/argos/bc/population-variable-density.rst +35 -0
  45. sierra_research-1.5.0/docs/src/plugins/engine/argos/index.rst +112 -0
  46. {sierra_research-1.3.11/docs/src/platform → sierra_research-1.5.0/docs/src/plugins/engine}/index.rst +8 -6
  47. sierra_research-1.3.11/docs/src/platform/ros1robot/batch_criteria.rst → sierra_research-1.5.0/docs/src/plugins/engine/ros1gazebo/bc/population-size.rst +9 -18
  48. sierra_research-1.5.0/docs/src/plugins/engine/ros1gazebo/index.rst +76 -0
  49. sierra_research-1.3.11/docs/src/platform/ros1gazebo/batch_criteria.rst → sierra_research-1.5.0/docs/src/plugins/engine/ros1robot/bc/population-size.rst +6 -20
  50. sierra_research-1.5.0/docs/src/plugins/engine/ros1robot/index.rst +127 -0
  51. {sierra_research-1.3.11/docs/src/exec_env → sierra_research-1.5.0/docs/src/plugins/execenv}/hpc.rst +113 -97
  52. {sierra_research-1.3.11/docs/src/exec_env → sierra_research-1.5.0/docs/src/plugins/execenv}/index.rst +6 -2
  53. sierra_research-1.5.0/docs/src/plugins/execenv/prefectserver.rst +121 -0
  54. sierra_research-1.3.11/docs/src/exec_env/robot.rst → sierra_research-1.5.0/docs/src/plugins/execenv/realrobot.rst +7 -7
  55. sierra_research-1.5.0/docs/src/plugins/expdef/argos-postproc.rst +23 -0
  56. sierra_research-1.5.0/docs/src/plugins/expdef/argos-preproc.rst +25 -0
  57. sierra_research-1.5.0/docs/src/plugins/expdef/examples.rst +40 -0
  58. sierra_research-1.5.0/docs/src/plugins/expdef/index.rst +39 -0
  59. sierra_research-1.5.0/docs/src/plugins/expdef/json.rst +22 -0
  60. sierra_research-1.5.0/docs/src/plugins/expdef/ros1-paramserver-postproc.rst +58 -0
  61. sierra_research-1.5.0/docs/src/plugins/expdef/ros1-paramserver-preproc.rst +26 -0
  62. sierra_research-1.5.0/docs/src/plugins/expdef/ros1-paramstag-postproc.rst +73 -0
  63. sierra_research-1.5.0/docs/src/plugins/expdef/ros1-paramstag-preproc.rst +30 -0
  64. sierra_research-1.5.0/docs/src/plugins/expdef/xml.rst +75 -0
  65. sierra_research-1.5.0/docs/src/plugins/external.rst +87 -0
  66. sierra_research-1.5.0/docs/src/plugins/index.rst +59 -0
  67. sierra_research-1.5.0/docs/src/plugins/proc/collate.rst +75 -0
  68. sierra_research-1.5.0/docs/src/plugins/proc/compress.rst +40 -0
  69. sierra_research-1.5.0/docs/src/plugins/proc/decompress.rst +28 -0
  70. sierra_research-1.5.0/docs/src/plugins/proc/imagize.rst +80 -0
  71. sierra_research-1.5.0/docs/src/plugins/proc/index.rst +21 -0
  72. sierra_research-1.5.0/docs/src/plugins/proc/modelrunner.rst +240 -0
  73. sierra_research-1.5.0/docs/src/plugins/proc/statistics.rst +65 -0
  74. sierra_research-1.5.0/docs/src/plugins/prod/figures/render-argos-overhead.mp4 +0 -0
  75. sierra_research-1.5.0/docs/src/plugins/prod/figures/render-argos-sw+interp.mp4 +0 -0
  76. sierra_research-1.5.0/docs/src/plugins/prod/graphs.rst +428 -0
  77. sierra_research-1.5.0/docs/src/plugins/prod/heatmap.yaml +45 -0
  78. sierra_research-1.5.0/docs/src/plugins/prod/index.rst +24 -0
  79. sierra_research-1.5.0/docs/src/plugins/prod/render.rst +135 -0
  80. sierra_research-1.5.0/docs/src/plugins/prod/stacked_line.yaml +52 -0
  81. sierra_research-1.5.0/docs/src/plugins/prod/summary_line.yaml +50 -0
  82. sierra_research-1.5.0/docs/src/plugins/storage/index.rst +43 -0
  83. sierra_research-1.5.0/docs/src/requirements/engine/argos.rst +49 -0
  84. sierra_research-1.5.0/docs/src/requirements/engine/ros1.rst +65 -0
  85. sierra_research-1.5.0/docs/src/requirements/engine/ros1gazebo.rst +3 -0
  86. sierra_research-1.5.0/docs/src/requirements/engine/ros1robot.rst +48 -0
  87. sierra_research-1.5.0/docs/src/requirements/expdef/json.rst +20 -0
  88. sierra_research-1.5.0/docs/src/requirements/expdef/xml.rst +20 -0
  89. sierra_research-1.5.0/docs/src/requirements/index.rst +195 -0
  90. sierra_research-1.5.0/docs/src/roadmap.rst +164 -0
  91. sierra_research-1.5.0/docs/src/startup.rst +147 -0
  92. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/trial.rst +79 -41
  93. sierra_research-1.5.0/docs/src/tutorials/index.rst +41 -0
  94. sierra_research-1.5.0/docs/src/tutorials/plugin/compare/index.rst +45 -0
  95. sierra_research-1.5.0/docs/src/tutorials/plugin/compare/plugin.rst +20 -0
  96. sierra_research-1.5.0/docs/src/tutorials/plugin/engine/cmdline-engine.py +55 -0
  97. sierra_research-1.5.0/docs/src/tutorials/plugin/engine/generators.py +82 -0
  98. sierra_research-1.5.0/docs/src/tutorials/plugin/engine/index.rst +571 -0
  99. sierra_research-1.5.0/docs/src/tutorials/plugin/engine/plugin.py +192 -0
  100. sierra_research-1.5.0/docs/src/tutorials/plugin/execenv/index.rst +167 -0
  101. sierra_research-1.5.0/docs/src/tutorials/plugin/execenv/plugin.py +37 -0
  102. sierra_research-1.5.0/docs/src/tutorials/plugin/expdef/index.rst +61 -0
  103. sierra_research-1.5.0/docs/src/tutorials/plugin/expdef/plugin.rst +27 -0
  104. sierra_research-1.5.0/docs/src/tutorials/plugin/proc/index.rst +39 -0
  105. sierra_research-1.5.0/docs/src/tutorials/plugin/proc/plugin.rst +19 -0
  106. sierra_research-1.5.0/docs/src/tutorials/plugin/prod/index.rst +39 -0
  107. sierra_research-1.5.0/docs/src/tutorials/plugin/prod/plugin.rst +19 -0
  108. sierra_research-1.5.0/docs/src/tutorials/plugin/storage/index.rst +39 -0
  109. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/tutorials/plugin/storage/plugin.rst +8 -1
  110. {sierra_research-1.3.11/docs/src/tutorials/project/main_config → sierra_research-1.5.0/docs/src/tutorials/project/config}/controllers.rst +30 -16
  111. sierra_research-1.5.0/docs/src/tutorials/project/config/index.rst +37 -0
  112. {sierra_research-1.3.11/docs/src/tutorials/project/main_config → sierra_research-1.5.0/docs/src/tutorials/project/config}/main.rst +11 -11
  113. sierra_research-1.5.0/docs/src/tutorials/project/generators.rst +119 -0
  114. sierra_research-1.5.0/docs/src/tutorials/project/hooks.rst +73 -0
  115. sierra_research-1.3.11/docs/src/tutorials/project/new_bc.rst → sierra_research-1.5.0/docs/src/tutorials/project/new-bc.rst +43 -29
  116. sierra_research-1.5.0/docs/src/tutorials/project/project.rst +145 -0
  117. sierra_research-1.5.0/docs/src/usage/bc.rst +38 -0
  118. sierra_research-1.5.0/docs/src/usage/cli.rst +59 -0
  119. sierra_research-1.5.0/docs/src/usage/deep-dive.rst +146 -0
  120. sierra_research-1.5.0/docs/src/usage/environment.rst +190 -0
  121. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/usage/examples.rst +56 -55
  122. sierra_research-1.5.0/docs/src/usage/index.rst +27 -0
  123. sierra_research-1.5.0/docs/src/usage/pipeline.rst +231 -0
  124. sierra_research-1.5.0/docs/src/usage/run-time-tree.rst +237 -0
  125. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/src/usage/subprograms.rst +5 -5
  126. sierra_research-1.5.0/docs/src/usage/variables.rst +51 -0
  127. sierra_research-1.5.0/docs/src/use-cases.rst +138 -0
  128. sierra_research-1.5.0/noxfile.py +194 -0
  129. sierra_research-1.5.0/pyproject.toml +150 -0
  130. sierra_research-1.5.0/sierra/__init__.py +11 -0
  131. sierra_research-1.5.0/sierra/core/__init__.py +11 -0
  132. sierra_research-1.5.0/sierra/core/batchroot.py +223 -0
  133. sierra_research-1.5.0/sierra/core/cmdline.py +819 -0
  134. sierra_research-1.5.0/sierra/core/compare.py +11 -0
  135. sierra_research-1.5.0/sierra/core/config.py +180 -0
  136. sierra_research-1.5.0/sierra/core/engine.py +306 -0
  137. sierra_research-1.5.0/sierra/core/execenv.py +380 -0
  138. sierra_research-1.5.0/sierra/core/expdef.py +11 -0
  139. sierra_research-1.5.0/sierra/core/experiment/__init__.py +10 -0
  140. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/experiment/bindings.py +150 -101
  141. sierra_research-1.5.0/sierra/core/experiment/definition.py +524 -0
  142. sierra_research-1.5.0/sierra/core/experiment/spec.py +192 -0
  143. sierra_research-1.5.0/sierra/core/exproot.py +44 -0
  144. {sierra_research-1.3.11/sierra/core/hpc → sierra_research-1.5.0/sierra/core/generators}/__init__.py +1 -1
  145. sierra_research-1.5.0/sierra/core/generators/experiment.py +528 -0
  146. sierra_research-1.5.0/sierra/core/generators/generator_factory.py +230 -0
  147. sierra_research-1.5.0/sierra/core/graphs/__init__.py +23 -0
  148. sierra_research-1.5.0/sierra/core/graphs/bcbridge.py +94 -0
  149. sierra_research-1.5.0/sierra/core/graphs/heatmap.py +277 -0
  150. sierra_research-1.5.0/sierra/core/graphs/pathset.py +27 -0
  151. sierra_research-1.5.0/sierra/core/graphs/schema.py +77 -0
  152. sierra_research-1.5.0/sierra/core/graphs/stacked_line.py +341 -0
  153. sierra_research-1.5.0/sierra/core/graphs/summary_line.py +506 -0
  154. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/logging.py +3 -2
  155. sierra_research-1.5.0/sierra/core/models/__init__.py +11 -0
  156. sierra_research-1.5.0/sierra/core/models/info.py +19 -0
  157. sierra_research-1.5.0/sierra/core/models/interface.py +130 -0
  158. {sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/generators → sierra_research-1.5.0/sierra/core/pipeline}/__init__.py +1 -5
  159. sierra_research-1.5.0/sierra/core/pipeline/pipeline.py +294 -0
  160. sierra_research-1.5.0/sierra/core/pipeline/stage1/__init__.py +10 -0
  161. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/pipeline/stage1/pipeline_stage1.py +45 -31
  162. {sierra_research-1.3.11/sierra/core → sierra_research-1.5.0/sierra/core/pipeline/stage2}/__init__.py +1 -2
  163. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/pipeline/stage2/pipeline_stage2.py +8 -11
  164. sierra_research-1.5.0/sierra/core/pipeline/stage2/runner.py +401 -0
  165. sierra_research-1.5.0/sierra/core/pipeline/stage3/__init__.py +12 -0
  166. sierra_research-1.5.0/sierra/core/pipeline/stage3/gather.py +321 -0
  167. sierra_research-1.5.0/sierra/core/pipeline/stage3/pipeline_stage3.py +71 -0
  168. sierra_research-1.5.0/sierra/core/pipeline/stage4/__init__.py +12 -0
  169. sierra_research-1.5.0/sierra/core/pipeline/stage4/pipeline_stage4.py +93 -0
  170. sierra_research-1.5.0/sierra/core/pipeline/stage5/__init__.py +12 -0
  171. sierra_research-1.5.0/sierra/core/pipeline/stage5/pipeline_stage5.py +62 -0
  172. sierra_research-1.5.0/sierra/core/pipeline/yaml.py +48 -0
  173. sierra_research-1.5.0/sierra/core/plugin.py +579 -0
  174. sierra_research-1.5.0/sierra/core/proc.py +11 -0
  175. sierra_research-1.5.0/sierra/core/prod.py +11 -0
  176. sierra_research-1.5.0/sierra/core/ros1/__init__.py +14 -0
  177. sierra_research-1.5.0/sierra/core/ros1/callbacks.py +46 -0
  178. sierra_research-1.5.0/sierra/core/ros1/cmdline.py +96 -0
  179. sierra_research-1.5.0/sierra/core/ros1/generators.py +198 -0
  180. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/ros1/variables/__init__.py +3 -0
  181. sierra_research-1.5.0/sierra/core/ros1/variables/exp_setup.py +194 -0
  182. sierra_research-1.5.0/sierra/core/startup.py +183 -0
  183. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/stat_kernels.py +4 -5
  184. sierra_research-1.5.0/sierra/core/storage.py +37 -0
  185. sierra_research-1.5.0/sierra/core/trampoline.py +30 -0
  186. sierra_research-1.5.0/sierra/core/types.py +132 -0
  187. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/utils.py +103 -106
  188. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/variables/__init__.py +1 -1
  189. sierra_research-1.5.0/sierra/core/variables/base_variable.py +52 -0
  190. sierra_research-1.5.0/sierra/core/variables/batch_criteria.py +632 -0
  191. sierra_research-1.5.0/sierra/core/variables/builtin.py +135 -0
  192. sierra_research-1.5.0/sierra/core/variables/exp_setup.py +49 -0
  193. sierra_research-1.5.0/sierra/core/variables/population_size.py +120 -0
  194. sierra_research-1.5.0/sierra/core/variables/variable_density.py +88 -0
  195. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/core/vector.py +1 -1
  196. sierra_research-1.5.0/sierra/main.py +338 -0
  197. sierra_research-1.5.0/sierra/plugins/__init__.py +128 -0
  198. sierra_research-1.5.0/sierra/plugins/compare/__init__.py +14 -0
  199. sierra_research-1.5.0/sierra/plugins/compare/graphs/__init__.py +19 -0
  200. sierra_research-1.5.0/sierra/plugins/compare/graphs/cmdline.py +120 -0
  201. sierra_research-1.5.0/sierra/plugins/compare/graphs/comparator.py +291 -0
  202. sierra_research-1.5.0/sierra/plugins/compare/graphs/inter_controller.py +531 -0
  203. sierra_research-1.5.0/sierra/plugins/compare/graphs/inter_scenario.py +297 -0
  204. sierra_research-1.5.0/sierra/plugins/compare/graphs/namecalc.py +53 -0
  205. sierra_research-1.5.0/sierra/plugins/compare/graphs/outputroot.py +73 -0
  206. sierra_research-1.5.0/sierra/plugins/compare/graphs/plugin.py +147 -0
  207. sierra_research-1.5.0/sierra/plugins/compare/graphs/preprocess.py +172 -0
  208. sierra_research-1.5.0/sierra/plugins/compare/graphs/schema.py +37 -0
  209. sierra_research-1.3.11/sierra/version.py → sierra_research-1.5.0/sierra/plugins/engine/__init__.py +5 -3
  210. sierra_research-1.5.0/sierra/plugins/engine/argos/__init__.py +18 -0
  211. {sierra_research-1.3.11/sierra/plugins/platform → sierra_research-1.5.0/sierra/plugins/engine}/argos/cmdline.py +144 -151
  212. {sierra_research-1.3.11/sierra/plugins/platform/argos/variables → sierra_research-1.5.0/sierra/plugins/engine/argos/generators}/__init__.py +5 -0
  213. sierra_research-1.5.0/sierra/plugins/engine/argos/generators/engine.py +394 -0
  214. sierra_research-1.5.0/sierra/plugins/engine/argos/plugin.py +393 -0
  215. {sierra_research-1.3.11/sierra/plugins/platform/argos/generators → sierra_research-1.5.0/sierra/plugins/engine/argos/variables}/__init__.py +5 -0
  216. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/arena_shape.py +183 -0
  217. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/cameras.py +240 -0
  218. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/constant_density.py +112 -0
  219. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/exp_setup.py +82 -0
  220. {sierra_research-1.3.11/sierra/plugins/platform → sierra_research-1.5.0/sierra/plugins/engine}/argos/variables/physics_engines.py +83 -87
  221. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/population_constant_density.py +178 -0
  222. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/population_size.py +115 -0
  223. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/population_variable_density.py +123 -0
  224. sierra_research-1.5.0/sierra/plugins/engine/argos/variables/rendering.py +108 -0
  225. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/__init__.py +18 -0
  226. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/cmdline.py +175 -0
  227. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/generators/__init__.py +14 -0
  228. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/generators/engine.py +125 -0
  229. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/plugin.py +404 -0
  230. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/variables/__init__.py +15 -0
  231. sierra_research-1.5.0/sierra/plugins/engine/ros1gazebo/variables/population_size.py +214 -0
  232. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/__init__.py +18 -0
  233. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/cmdline.py +159 -0
  234. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/generators/__init__.py +13 -0
  235. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/generators/engine.py +95 -0
  236. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/plugin.py +410 -0
  237. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/variables/__init__.py +14 -0
  238. sierra_research-1.5.0/sierra/plugins/engine/ros1robot/variables/population_size.py +146 -0
  239. sierra_research-1.5.0/sierra/plugins/execenv/__init__.py +11 -0
  240. sierra_research-1.5.0/sierra/plugins/execenv/hpc/__init__.py +18 -0
  241. sierra_research-1.5.0/sierra/plugins/execenv/hpc/adhoc/__init__.py +18 -0
  242. sierra_research-1.5.0/sierra/plugins/execenv/hpc/adhoc/cmdline.py +30 -0
  243. sierra_research-1.5.0/sierra/plugins/execenv/hpc/adhoc/plugin.py +131 -0
  244. sierra_research-1.5.0/sierra/plugins/execenv/hpc/cmdline.py +137 -0
  245. sierra_research-1.5.0/sierra/plugins/execenv/hpc/local/__init__.py +18 -0
  246. sierra_research-1.5.0/sierra/plugins/execenv/hpc/local/cmdline.py +31 -0
  247. sierra_research-1.5.0/sierra/plugins/execenv/hpc/local/plugin.py +145 -0
  248. sierra_research-1.5.0/sierra/plugins/execenv/hpc/pbs/__init__.py +18 -0
  249. sierra_research-1.5.0/sierra/plugins/execenv/hpc/pbs/cmdline.py +30 -0
  250. sierra_research-1.5.0/sierra/plugins/execenv/hpc/pbs/plugin.py +121 -0
  251. sierra_research-1.5.0/sierra/plugins/execenv/hpc/slurm/__init__.py +18 -0
  252. sierra_research-1.5.0/sierra/plugins/execenv/hpc/slurm/cmdline.py +30 -0
  253. sierra_research-1.5.0/sierra/plugins/execenv/hpc/slurm/plugin.py +133 -0
  254. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/__init__.py +18 -0
  255. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/cmdline.py +66 -0
  256. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/dockerremote/__init__.py +18 -0
  257. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/dockerremote/cmdline.py +66 -0
  258. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/dockerremote/plugin.py +132 -0
  259. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/flow.py +66 -0
  260. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/local/__init__.py +18 -0
  261. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/local/cmdline.py +29 -0
  262. sierra_research-1.5.0/sierra/plugins/execenv/prefectserver/local/plugin.py +133 -0
  263. sierra_research-1.5.0/sierra/plugins/execenv/robot/__init__.py +10 -0
  264. sierra_research-1.5.0/sierra/plugins/execenv/robot/turtlebot3/__init__.py +18 -0
  265. sierra_research-1.5.0/sierra/plugins/execenv/robot/turtlebot3/plugin.py +204 -0
  266. sierra_research-1.5.0/sierra/plugins/expdef/__init__.py +14 -0
  267. sierra_research-1.5.0/sierra/plugins/expdef/json/__init__.py +14 -0
  268. sierra_research-1.5.0/sierra/plugins/expdef/json/plugin.py +504 -0
  269. sierra_research-1.5.0/sierra/plugins/expdef/xml/__init__.py +14 -0
  270. sierra_research-1.5.0/sierra/plugins/expdef/xml/plugin.py +386 -0
  271. {sierra_research-1.3.11/sierra/core/experiment → sierra_research-1.5.0/sierra/plugins/proc}/__init__.py +1 -0
  272. sierra_research-1.5.0/sierra/plugins/proc/collate/__init__.py +15 -0
  273. sierra_research-1.5.0/sierra/plugins/proc/collate/cmdline.py +47 -0
  274. sierra_research-1.5.0/sierra/plugins/proc/collate/plugin.py +271 -0
  275. sierra_research-1.5.0/sierra/plugins/proc/compress/__init__.py +18 -0
  276. sierra_research-1.5.0/sierra/plugins/proc/compress/cmdline.py +47 -0
  277. sierra_research-1.5.0/sierra/plugins/proc/compress/plugin.py +123 -0
  278. sierra_research-1.5.0/sierra/plugins/proc/decompress/__init__.py +18 -0
  279. sierra_research-1.5.0/sierra/plugins/proc/decompress/plugin.py +96 -0
  280. sierra_research-1.5.0/sierra/plugins/proc/imagize/__init__.py +15 -0
  281. sierra_research-1.5.0/sierra/plugins/proc/imagize/cmdline.py +49 -0
  282. sierra_research-1.5.0/sierra/plugins/proc/imagize/plugin.py +270 -0
  283. sierra_research-1.5.0/sierra/plugins/proc/modelrunner/__init__.py +16 -0
  284. sierra_research-1.5.0/sierra/plugins/proc/modelrunner/plugin.py +250 -0
  285. sierra_research-1.5.0/sierra/plugins/proc/statistics/__init__.py +15 -0
  286. sierra_research-1.5.0/sierra/plugins/proc/statistics/cmdline.py +64 -0
  287. sierra_research-1.5.0/sierra/plugins/proc/statistics/plugin.py +390 -0
  288. {sierra_research-1.3.11/sierra → sierra_research-1.5.0/sierra/plugins/prod}/__init__.py +1 -2
  289. sierra_research-1.5.0/sierra/plugins/prod/graphs/__init__.py +18 -0
  290. sierra_research-1.5.0/sierra/plugins/prod/graphs/cmdline.py +269 -0
  291. sierra_research-1.5.0/sierra/plugins/prod/graphs/collate.py +279 -0
  292. sierra_research-1.5.0/sierra/plugins/prod/graphs/inter/__init__.py +13 -0
  293. sierra_research-1.5.0/sierra/plugins/prod/graphs/inter/generate.py +83 -0
  294. sierra_research-1.5.0/sierra/plugins/prod/graphs/inter/heatmap.py +86 -0
  295. sierra_research-1.5.0/sierra/plugins/prod/graphs/inter/line.py +134 -0
  296. sierra_research-1.5.0/sierra/plugins/prod/graphs/intra/__init__.py +15 -0
  297. sierra_research-1.5.0/sierra/plugins/prod/graphs/intra/generate.py +202 -0
  298. sierra_research-1.5.0/sierra/plugins/prod/graphs/intra/heatmap.py +74 -0
  299. sierra_research-1.5.0/sierra/plugins/prod/graphs/intra/line.py +114 -0
  300. sierra_research-1.5.0/sierra/plugins/prod/graphs/plugin.py +103 -0
  301. sierra_research-1.5.0/sierra/plugins/prod/graphs/targets.py +63 -0
  302. sierra_research-1.5.0/sierra/plugins/prod/render/__init__.py +18 -0
  303. sierra_research-1.5.0/sierra/plugins/prod/render/cmdline.py +72 -0
  304. sierra_research-1.5.0/sierra/plugins/prod/render/plugin.py +282 -0
  305. sierra_research-1.5.0/sierra/plugins/storage/__init__.py +14 -0
  306. sierra_research-1.5.0/sierra/plugins/storage/arrow/__init__.py +18 -0
  307. sierra_research-1.5.0/sierra/plugins/storage/arrow/plugin.py +38 -0
  308. sierra_research-1.5.0/sierra/plugins/storage/csv/__init__.py +18 -0
  309. {sierra_research-1.3.11 → sierra_research-1.5.0}/sierra/plugins/storage/csv/plugin.py +12 -5
  310. sierra_research-1.5.0/sierra/version.py +13 -0
  311. sierra_research-1.5.0/tests/__init__.py +11 -0
  312. sierra_research-1.5.0/tests/macos13.Dockerfile +46 -0
  313. sierra_research-1.5.0/tests/smoke_tests/core.py +597 -0
  314. sierra_research-1.5.0/tests/smoke_tests/pbs-test.sh +22 -0
  315. sierra_research-1.5.0/tests/smoke_tests/pbs.conf +9 -0
  316. sierra_research-1.5.0/tests/smoke_tests/plugin/engine/argos.py +343 -0
  317. sierra_research-1.5.0/tests/smoke_tests/plugin/engine/jsonsim.py +163 -0
  318. sierra_research-1.5.0/tests/smoke_tests/plugin/engine/ros1gazebo.py +52 -0
  319. sierra_research-1.5.0/tests/smoke_tests/plugin/engine/ros1robot.py +48 -0
  320. sierra_research-1.5.0/tests/smoke_tests/plugin/execenv.py +369 -0
  321. sierra_research-1.5.0/tests/smoke_tests/plugin/proc/compression.py +86 -0
  322. sierra_research-1.5.0/tests/smoke_tests/plugin/proc/modelrunner.py +62 -0
  323. sierra_research-1.5.0/tests/smoke_tests/plugin/prod/graphs.py +93 -0
  324. sierra_research-1.5.0/tests/smoke_tests/prefectserver.dockerremote.Dockerfile +32 -0
  325. sierra_research-1.5.0/tests/smoke_tests/setup.py +190 -0
  326. {sierra_research-1.3.11/scripts → sierra_research-1.5.0/tests/smoke_tests}/slurm-test.sh +1 -2
  327. {sierra_research-1.3.11/scripts → sierra_research-1.5.0/tests/smoke_tests}/slurm.conf +6 -1
  328. sierra_research-1.5.0/tests/smoke_tests/utils.py +572 -0
  329. sierra_research-1.5.0/tests/ubuntu2004.Dockerfile +65 -0
  330. sierra_research-1.5.0/tests/ubuntu2404.Dockerfile +81 -0
  331. {sierra_research-1.3.11/tests → sierra_research-1.5.0/tests/unit_tests}/arena_extent_test.py +1 -13
  332. sierra_research-1.5.0/tests/unit_tests/bc_test.py +172 -0
  333. sierra_research-1.5.0/tests/unit_tests/expdef/batters.json +9 -0
  334. sierra_research-1.5.0/tests/unit_tests/expdef/f2.json +34 -0
  335. sierra_research-1.5.0/tests/unit_tests/expdef/f2.xml +11 -0
  336. sierra_research-1.5.0/tests/unit_tests/expdef/f3.xml +34 -0
  337. sierra_research-1.5.0/tests/unit_tests/expdef/f4.json +29 -0
  338. sierra_research-1.5.0/tests/unit_tests/expdef/f9.json +50 -0
  339. sierra_research-1.5.0/tests/unit_tests/expdef/flatten-out.json +41 -0
  340. sierra_research-1.5.0/tests/unit_tests/expdef/flatten.json +36 -0
  341. sierra_research-1.5.0/tests/unit_tests/expdef/flatten1-out.json +16 -0
  342. sierra_research-1.5.0/tests/unit_tests/expdef/flatten1.json +10 -0
  343. sierra_research-1.5.0/tests/unit_tests/expdef/flatten2-out.json +21 -0
  344. sierra_research-1.5.0/tests/unit_tests/expdef/flatten2.json +15 -0
  345. sierra_research-1.5.0/tests/unit_tests/expdef/flatten3-out.json +36 -0
  346. sierra_research-1.5.0/tests/unit_tests/expdef/flatten3.json +21 -0
  347. sierra_research-1.5.0/tests/unit_tests/expdef/flatten4-out.json +48 -0
  348. sierra_research-1.5.0/tests/unit_tests/expdef/flatten4.json +36 -0
  349. sierra_research-1.5.0/tests/unit_tests/expdef/json_test.py +149 -0
  350. sierra_research-1.5.0/tests/unit_tests/expdef/single-topping.json +1 -0
  351. sierra_research-1.5.0/tests/unit_tests/expdef/xml_test.py +188 -0
  352. sierra_research-1.5.0/tests/unit_tests/storage/arrow_test.py +19 -0
  353. {sierra_research-1.3.11/tests → sierra_research-1.5.0/tests/unit_tests}/vector_test.py +1 -13
  354. {sierra_research-1.3.11 → sierra_research-1.5.0}/todo.org +49 -28
  355. sierra_research-1.5.0/uv.lock +5962 -0
  356. sierra_research-1.3.11/.dir-locals.el +0 -29
  357. sierra_research-1.3.11/.github/actions/publish/action.yml +0 -65
  358. sierra_research-1.3.11/.github/actions/sierra-setup/action.yml +0 -73
  359. sierra_research-1.3.11/.github/actions/slurm-setup/action.yml +0 -35
  360. sierra_research-1.3.11/.github/workflows/core.yml +0 -371
  361. sierra_research-1.3.11/.github/workflows/coverage-top.yml +0 -117
  362. sierra_research-1.3.11/.github/workflows/plugin.yml +0 -216
  363. sierra_research-1.3.11/.github/workflows/unit-tests.yml +0 -47
  364. sierra_research-1.3.11/.projectile +0 -7
  365. sierra_research-1.3.11/PKG-INFO +0 -493
  366. sierra_research-1.3.11/README.rst +0 -425
  367. sierra_research-1.3.11/docs/Makefile +0 -20
  368. sierra_research-1.3.11/docs/_build/man/sierra-cli.1 +0 -2349
  369. sierra_research-1.3.11/docs/_build/man/sierra-examples.7 +0 -508
  370. sierra_research-1.3.11/docs/_build/man/sierra-exec-envs.7 +0 -331
  371. sierra_research-1.3.11/docs/_build/man/sierra-glossary.7 +0 -285
  372. sierra_research-1.3.11/docs/_build/man/sierra-platforms.7 +0 -358
  373. sierra_research-1.3.11/docs/_build/man/sierra-usage.7 +0 -729
  374. sierra_research-1.3.11/docs/_build/man/sierra.7 +0 -78
  375. sierra_research-1.3.11/docs/_templates/autoapi/module.rst +0 -100
  376. sierra_research-1.3.11/docs/conf.py +0 -330
  377. sierra_research-1.3.11/docs/figures/architecture.png +0 -0
  378. sierra_research-1.3.11/docs/man/sierra-cli.rst +0 -40
  379. sierra_research-1.3.11/docs/man/sierra-exec-envs.rst +0 -8
  380. sierra_research-1.3.11/docs/man/sierra-platforms.rst +0 -9
  381. sierra_research-1.3.11/docs/requirements.txt +0 -12
  382. sierra_research-1.3.11/docs/src/api.rst +0 -18
  383. sierra_research-1.3.11/docs/src/description.rst +0 -15
  384. sierra_research-1.3.11/docs/src/getting_started.rst +0 -182
  385. sierra_research-1.3.11/docs/src/glossary.rst +0 -251
  386. sierra_research-1.3.11/docs/src/matrix.rst +0 -171
  387. sierra_research-1.3.11/docs/src/philosophy.rst +0 -60
  388. sierra_research-1.3.11/docs/src/platform/argos/batch_criteria.rst +0 -130
  389. sierra_research-1.3.11/docs/src/platform/argos/index.rst +0 -30
  390. sierra_research-1.3.11/docs/src/platform/ros1gazebo/index.rst +0 -42
  391. sierra_research-1.3.11/docs/src/platform/ros1robot/index.rst +0 -72
  392. sierra_research-1.3.11/docs/src/plugins/index.rst +0 -11
  393. sierra_research-1.3.11/docs/src/requirements.rst +0 -382
  394. sierra_research-1.3.11/docs/src/roadmap.rst +0 -106
  395. sierra_research-1.3.11/docs/src/storage/index.rst +0 -24
  396. sierra_research-1.3.11/docs/src/tutorials/hpc/cluster_setup.rst +0 -56
  397. sierra_research-1.3.11/docs/src/tutorials/hpc/local_setup.rst +0 -8
  398. sierra_research-1.3.11/docs/src/tutorials/index.rst +0 -44
  399. sierra_research-1.3.11/docs/src/tutorials/plugin/exec_env/index.rst +0 -44
  400. sierra_research-1.3.11/docs/src/tutorials/plugin/exec_env/plugin.rst +0 -74
  401. sierra_research-1.3.11/docs/src/tutorials/plugin/platform/cmdline.rst +0 -77
  402. sierra_research-1.3.11/docs/src/tutorials/plugin/platform/generators.rst +0 -63
  403. sierra_research-1.3.11/docs/src/tutorials/plugin/platform/index.rst +0 -52
  404. sierra_research-1.3.11/docs/src/tutorials/plugin/platform/plugin.rst +0 -226
  405. sierra_research-1.3.11/docs/src/tutorials/plugin/storage/index.rst +0 -30
  406. sierra_research-1.3.11/docs/src/tutorials/project/cmdline.rst +0 -115
  407. sierra_research-1.3.11/docs/src/tutorials/project/generators.rst +0 -88
  408. sierra_research-1.3.11/docs/src/tutorials/project/graphs_config.rst +0 -218
  409. sierra_research-1.3.11/docs/src/tutorials/project/hooks.rst +0 -142
  410. sierra_research-1.3.11/docs/src/tutorials/project/main_config/index.rst +0 -23
  411. sierra_research-1.3.11/docs/src/tutorials/project/main_config/perf.rst +0 -29
  412. sierra_research-1.3.11/docs/src/tutorials/project/models.rst +0 -109
  413. sierra_research-1.3.11/docs/src/tutorials/project/project.rst +0 -125
  414. sierra_research-1.3.11/docs/src/tutorials/project/stage5_config.rst +0 -135
  415. sierra_research-1.3.11/docs/src/tutorials/project/template_input_file.rst +0 -269
  416. sierra_research-1.3.11/docs/src/usage/cli-argos.rst +0 -17
  417. sierra_research-1.3.11/docs/src/usage/cli-core.rst +0 -44
  418. sierra_research-1.3.11/docs/src/usage/cli-ros1gazebo.rst +0 -17
  419. sierra_research-1.3.11/docs/src/usage/cli-ros1robot.rst +0 -17
  420. sierra_research-1.3.11/docs/src/usage/cli.rst +0 -31
  421. sierra_research-1.3.11/docs/src/usage/environment.rst +0 -107
  422. sierra_research-1.3.11/docs/src/usage/index.rst +0 -28
  423. sierra_research-1.3.11/docs/src/usage/pipeline.rst +0 -114
  424. sierra_research-1.3.11/docs/src/usage/rendering.rst +0 -146
  425. sierra_research-1.3.11/docs/src/usage/run_time_tree.rst +0 -234
  426. sierra_research-1.3.11/docs/src/usage/stage5.rst +0 -75
  427. sierra_research-1.3.11/docs/src/usage/variables.rst +0 -54
  428. sierra_research-1.3.11/noxfile.py +0 -167
  429. sierra_research-1.3.11/scripts/argos-integration-tests.sh +0 -846
  430. sierra_research-1.3.11/scripts/core-integration-tests.sh +0 -159
  431. sierra_research-1.3.11/scripts/ros1gazebo-integration-tests.sh +0 -274
  432. sierra_research-1.3.11/scripts/ros1robot-integration-tests.sh +0 -134
  433. sierra_research-1.3.11/setup.cfg +0 -4
  434. sierra_research-1.3.11/setup.py +0 -144
  435. sierra_research-1.3.11/sierra/core/cmdline.py +0 -1195
  436. sierra_research-1.3.11/sierra/core/config.py +0 -172
  437. sierra_research-1.3.11/sierra/core/experiment/definition.py +0 -355
  438. sierra_research-1.3.11/sierra/core/experiment/spec.py +0 -194
  439. sierra_research-1.3.11/sierra/core/experiment/xml.py +0 -454
  440. sierra_research-1.3.11/sierra/core/generators/__init__.py +0 -0
  441. sierra_research-1.3.11/sierra/core/generators/controller_generator_parser.py +0 -34
  442. sierra_research-1.3.11/sierra/core/generators/exp_creator.py +0 -351
  443. sierra_research-1.3.11/sierra/core/generators/exp_generators.py +0 -142
  444. sierra_research-1.3.11/sierra/core/generators/generator_factory.py +0 -229
  445. sierra_research-1.3.11/sierra/core/graphs/__init__.py +0 -0
  446. sierra_research-1.3.11/sierra/core/graphs/heatmap.py +0 -356
  447. sierra_research-1.3.11/sierra/core/graphs/scatterplot2D.py +0 -109
  448. sierra_research-1.3.11/sierra/core/graphs/stacked_line_graph.py +0 -251
  449. sierra_research-1.3.11/sierra/core/graphs/stacked_surface_graph.py +0 -220
  450. sierra_research-1.3.11/sierra/core/graphs/summary_line_graph.py +0 -371
  451. sierra_research-1.3.11/sierra/core/hpc/cmdline.py +0 -142
  452. sierra_research-1.3.11/sierra/core/models/__init__.py +0 -9
  453. sierra_research-1.3.11/sierra/core/models/graphs.py +0 -87
  454. sierra_research-1.3.11/sierra/core/models/interface.py +0 -200
  455. sierra_research-1.3.11/sierra/core/pipeline/__init__.py +0 -8
  456. sierra_research-1.3.11/sierra/core/pipeline/pipeline.py +0 -192
  457. sierra_research-1.3.11/sierra/core/pipeline/stage1/__init__.py +0 -0
  458. sierra_research-1.3.11/sierra/core/pipeline/stage2/__init__.py +0 -0
  459. sierra_research-1.3.11/sierra/core/pipeline/stage2/exp_runner.py +0 -286
  460. sierra_research-1.3.11/sierra/core/pipeline/stage3/__init__.py +0 -0
  461. sierra_research-1.3.11/sierra/core/pipeline/stage3/imagizer.py +0 -149
  462. sierra_research-1.3.11/sierra/core/pipeline/stage3/pipeline_stage3.py +0 -118
  463. sierra_research-1.3.11/sierra/core/pipeline/stage3/run_collator.py +0 -317
  464. sierra_research-1.3.11/sierra/core/pipeline/stage3/statistics_calculator.py +0 -478
  465. sierra_research-1.3.11/sierra/core/pipeline/stage4/__init__.py +0 -2
  466. sierra_research-1.3.11/sierra/core/pipeline/stage4/graph_collator.py +0 -320
  467. sierra_research-1.3.11/sierra/core/pipeline/stage4/inter_exp_graph_generator.py +0 -240
  468. sierra_research-1.3.11/sierra/core/pipeline/stage4/intra_exp_graph_generator.py +0 -317
  469. sierra_research-1.3.11/sierra/core/pipeline/stage4/model_runner.py +0 -168
  470. sierra_research-1.3.11/sierra/core/pipeline/stage4/pipeline_stage4.py +0 -411
  471. sierra_research-1.3.11/sierra/core/pipeline/stage4/rendering.py +0 -283
  472. sierra_research-1.3.11/sierra/core/pipeline/stage4/yaml_config_loader.py +0 -103
  473. sierra_research-1.3.11/sierra/core/pipeline/stage5/__init__.py +0 -0
  474. sierra_research-1.3.11/sierra/core/pipeline/stage5/inter_scenario_comparator.py +0 -328
  475. sierra_research-1.3.11/sierra/core/pipeline/stage5/intra_scenario_comparator.py +0 -989
  476. sierra_research-1.3.11/sierra/core/pipeline/stage5/pipeline_stage5.py +0 -237
  477. sierra_research-1.3.11/sierra/core/platform.py +0 -493
  478. sierra_research-1.3.11/sierra/core/plugin.py +0 -112
  479. sierra_research-1.3.11/sierra/core/plugin_manager.py +0 -369
  480. sierra_research-1.3.11/sierra/core/root_dirpath_generator.py +0 -241
  481. sierra_research-1.3.11/sierra/core/ros1/__init__.py +0 -10
  482. sierra_research-1.3.11/sierra/core/ros1/callbacks.py +0 -45
  483. sierra_research-1.3.11/sierra/core/ros1/cmdline.py +0 -125
  484. sierra_research-1.3.11/sierra/core/ros1/generators.py +0 -214
  485. sierra_research-1.3.11/sierra/core/ros1/variables/exp_setup.py +0 -188
  486. sierra_research-1.3.11/sierra/core/startup.py +0 -153
  487. sierra_research-1.3.11/sierra/core/storage.py +0 -56
  488. sierra_research-1.3.11/sierra/core/types.py +0 -87
  489. sierra_research-1.3.11/sierra/core/variables/base_variable.py +0 -57
  490. sierra_research-1.3.11/sierra/core/variables/batch_criteria.py +0 -726
  491. sierra_research-1.3.11/sierra/core/variables/exp_setup.py +0 -69
  492. sierra_research-1.3.11/sierra/core/variables/population_size.py +0 -124
  493. sierra_research-1.3.11/sierra/core/variables/variable_density.py +0 -112
  494. sierra_research-1.3.11/sierra/main.py +0 -170
  495. sierra_research-1.3.11/sierra/plugins/__init__.py +0 -9
  496. sierra_research-1.3.11/sierra/plugins/hpc/__init__.py +0 -9
  497. sierra_research-1.3.11/sierra/plugins/hpc/adhoc/__init__.py +0 -9
  498. sierra_research-1.3.11/sierra/plugins/hpc/adhoc/plugin.py +0 -125
  499. sierra_research-1.3.11/sierra/plugins/hpc/local/__init__.py +0 -9
  500. sierra_research-1.3.11/sierra/plugins/hpc/local/plugin.py +0 -81
  501. sierra_research-1.3.11/sierra/plugins/hpc/pbs/__init__.py +0 -9
  502. sierra_research-1.3.11/sierra/plugins/hpc/pbs/plugin.py +0 -126
  503. sierra_research-1.3.11/sierra/plugins/hpc/slurm/__init__.py +0 -9
  504. sierra_research-1.3.11/sierra/plugins/hpc/slurm/plugin.py +0 -130
  505. sierra_research-1.3.11/sierra/plugins/platform/__init__.py +0 -9
  506. sierra_research-1.3.11/sierra/plugins/platform/argos/__init__.py +0 -9
  507. sierra_research-1.3.11/sierra/plugins/platform/argos/generators/platform_generators.py +0 -383
  508. sierra_research-1.3.11/sierra/plugins/platform/argos/plugin.py +0 -337
  509. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/arena_shape.py +0 -145
  510. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/cameras.py +0 -243
  511. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/constant_density.py +0 -136
  512. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/exp_setup.py +0 -113
  513. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/population_constant_density.py +0 -175
  514. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/population_size.py +0 -102
  515. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/population_variable_density.py +0 -132
  516. sierra_research-1.3.11/sierra/plugins/platform/argos/variables/rendering.py +0 -104
  517. sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/__init__.py +0 -9
  518. sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/cmdline.py +0 -213
  519. sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/generators/platform_generators.py +0 -137
  520. sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/plugin.py +0 -335
  521. sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/variables/__init__.py +0 -10
  522. sierra_research-1.3.11/sierra/plugins/platform/ros1gazebo/variables/population_size.py +0 -204
  523. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/__init__.py +0 -9
  524. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/cmdline.py +0 -175
  525. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/generators/__init__.py +0 -9
  526. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/generators/platform_generators.py +0 -112
  527. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/plugin.py +0 -373
  528. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/variables/__init__.py +0 -10
  529. sierra_research-1.3.11/sierra/plugins/platform/ros1robot/variables/population_size.py +0 -146
  530. sierra_research-1.3.11/sierra/plugins/robot/__init__.py +0 -9
  531. sierra_research-1.3.11/sierra/plugins/robot/turtlebot3/__init__.py +0 -9
  532. sierra_research-1.3.11/sierra/plugins/robot/turtlebot3/plugin.py +0 -194
  533. sierra_research-1.3.11/sierra/plugins/storage/__init__.py +0 -9
  534. sierra_research-1.3.11/sierra/plugins/storage/csv/__init__.py +0 -9
  535. sierra_research-1.3.11/sierra_research.egg-info/PKG-INFO +0 -493
  536. sierra_research-1.3.11/sierra_research.egg-info/SOURCES.txt +0 -240
  537. sierra_research-1.3.11/sierra_research.egg-info/dependency_links.txt +0 -1
  538. sierra_research-1.3.11/sierra_research.egg-info/entry_points.txt +0 -2
  539. sierra_research-1.3.11/sierra_research.egg-info/requires.txt +0 -40
  540. sierra_research-1.3.11/sierra_research.egg-info/top_level.txt +0 -1
  541. sierra_research-1.3.11/tests/exp_def_test.py +0 -97
  542. {sierra_research-1.3.11 → sierra_research-1.5.0}/LICENSE +0 -0
  543. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/man/sierra-examples.rst +0 -0
  544. {sierra_research-1.3.11 → sierra_research-1.5.0}/docs/man/sierra-glossary.rst +0 -0
  545. /sierra_research-1.3.11/tests/test1.xml → /sierra_research-1.5.0/tests/unit_tests/expdef/f1.xml +0 -0
@@ -10,6 +10,11 @@ exclude_lines =
10
10
  raise NotImplementedError
11
11
 
12
12
  [run]
13
+ relative_files = True
14
+ source =
15
+ sierra
16
+ /__w/sierra/sierra
17
+ /home/runner/work/sierra/sierra
13
18
 
14
19
  concurrency = multiprocessing
15
20
  parallel = true
@@ -21,3 +26,6 @@ omit =
21
26
  /usr/*
22
27
 
23
28
  */docs/*
29
+
30
+ noxfile.py
31
+ */sierra-cli
@@ -0,0 +1,40 @@
1
+ ;;; Directory Local Variables
2
+ ;;; For more information see (info "(emacs) Directory Variables")
3
+
4
+ ((nil .
5
+ ((eval progn
6
+ (require 'editing-init)
7
+ (add-to-list 'projectile-globally-ignored-directories "docs/_build/")
8
+ (add-to-list 'projectile-globally-ignored-directories "docs/autoapi")
9
+ (add-to-list 'projectile-globally-ignored-directories "sierra.egg-info/")
10
+ (add-to-list 'projectile-globally-ignored-directories "dist/")
11
+ (add-to-list 'projectile-globally-ignored-directories ".pytype/")
12
+ (add-to-list 'projectile-globally-ignored-directories ".mypy_cache/")
13
+ (add-to-list 'projectile-globally-ignored-directories ".ruff_cache/")
14
+ (add-to-list 'projectile-globally-ignored-directories ".pytest_cache/")
15
+ (add-to-list 'projectile-globally-ignored-directories "__pycache__")
16
+ (add-to-list 'projectile-globally-ignored-directories ".nox/")
17
+ (add-to-list 'projectile-globally-ignored-directories ".venv/")
18
+ (add-to-list 'projectile-globally-ignored-file-suffixes "*.html")
19
+ (add-to-list 'projectile-globally-ignored-file-suffixes "*.pickle")
20
+ (add-to-list 'projectile-globally-ignored-file-suffixes "*.pkl")
21
+ (add-to-list 'projectile-globally-ignored-file-suffixes "*.png")
22
+ (add-to-list 'projectile-globally-ignored-file-suffixes "*.doctree")
23
+ (add-to-list 'grep-find-ignored-directories "docs/_build/")
24
+ (add-to-list 'grep-find-ignored-directories "sierra.egg-info/")
25
+ (add-to-list 'grep-find-ignored-directories "dist/")
26
+ (add-to-list 'grep-find-ignored-files "*.html")
27
+ (add-to-list 'grep-find-ignored-files "*.css")
28
+ (add-to-list 'grep-find-ignored-files "*.txt")
29
+ (add-to-list 'grep-find-ignored-files "*.png")
30
+ (add-to-list 'grep-find-ignored-files "*.doctree")
31
+ (add-to-list 'grep-find-ignored-files "*.pickle")
32
+ )))
33
+
34
+ (python-mode .
35
+ ((eval . (blacken-mode 1)))
36
+ )
37
+ )
38
+
39
+
40
+ ;;; end of .dir-locals.el
@@ -1,8 +1,8 @@
1
1
  name: 'Setup SIERRA sample project'
2
2
  description: 'Setup SIERRA project for CI and testing'
3
3
  inputs:
4
- platform: # id of input
5
- description: 'The SIERRA platform to setup for'
4
+ engine: # id of input
5
+ description: 'The SIERRA engine to setup for'
6
6
  required: true
7
7
  rosdistro:
8
8
  description: 'The version of ROS to test with'
@@ -14,11 +14,10 @@ runs:
14
14
  ############################################################################
15
15
  # Common setup
16
16
  ############################################################################
17
- - name: Setup python (all OSes)
18
- uses: actions/setup-python@v5
19
- with:
20
- python-version: ${{ matrix.python-version }}
21
- cache: 'pip'
17
+ - name: Get branch for sample project
18
+ shell: bash
19
+ run: echo "branch=${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" >> $GITHUB_OUTPUT
20
+ id: extract_branch
22
21
 
23
22
  - name: Clone sample project
24
23
  shell: bash
@@ -32,7 +31,16 @@ runs:
32
31
  cd sierra-sample-project
33
32
  git pull
34
33
  fi
35
- git checkout devel
34
+ echo "Sample project cloned into $(pwd)"
35
+
36
+ # The master rbranch of SIERRA/sample project are always kept in
37
+ # sync. Otherwise, all flowdown changes for whatever I'm doing in SIERRA
38
+ # will end up on the devel branch in the sample project repo.
39
+ if [ ${{ steps.extract_branch.outputs.branch}} == "master" ]; then
40
+ git checkout master
41
+ else
42
+ git checkout devel
43
+ fi
36
44
 
37
45
  - name: Get number of CPU cores
38
46
  uses: SimenB/github-actions-cpu-cores@v1
@@ -50,7 +58,7 @@ runs:
50
58
  ############################################################################
51
59
  # ARGoS setup
52
60
  ############################################################################
53
- - uses: nick-fields/retry@v2
61
+ - uses: nick-fields/retry@v3
54
62
  name: Install ARGoS deps (OSX)
55
63
  if: runner.os == 'macOS'
56
64
  with:
@@ -69,15 +77,15 @@ runs:
69
77
  # fails (I think ARGoS segfaults).
70
78
  brew install pkg-config cmake libpng freeimage lua
71
79
 
72
- - name: Install and cache ARGoS dependencies (Linux)
73
- if: runner.os == 'Linux'
74
- uses: awalsh128/cache-apt-pkgs-action@latest
80
+
81
+ - name: Re-setup python (OSX)
82
+ if: runner.os == 'macOS'
83
+ uses: astral-sh/setup-uv@v5
75
84
  with:
76
- packages: libfreeimage-dev libfreeimageplus-dev qtbase5-dev freeglut3-dev libxi-dev libxmu-dev liblua5.3-dev lua5.3 libgraphviz-dev ccache
77
- version: ${{ runner.os }}
85
+ python-version: ${{ matrix.python-version }}
78
86
 
79
87
  - name: Install ARGoS
80
- if: inputs.platform == 'argos'
88
+ if: runner.os == 'macOS' && inputs.engine == 'argos'
81
89
  shell: bash
82
90
  run: |
83
91
  git clone https://github.com/ilpincy/argos3.git
@@ -90,12 +98,18 @@ runs:
90
98
  -DARGOS_DOCUMENTATION=OFF \
91
99
  ../src
92
100
  make -j ${{ steps.cpu-cores.outputs.count }}
93
- sudo make install
101
+ if command -v "sudo" &> /dev/null; then
102
+ sudo make install
103
+ else
104
+ make install
105
+ fi
106
+ cd ../../
107
+ rm -rf argos3
94
108
 
95
109
  - name: Build SIERRA project for ARGoS
96
- if: inputs.platform == 'argos'
110
+ if: inputs.engine == 'argos'
97
111
  shell: bash
98
- working-directory: ${{ github.workspace }} # Needed to match with scripts/argos-integration-tests.sh
112
+ working-directory: ${{ github.workspace }}
99
113
 
100
114
  run: |
101
115
  cd sierra-sample-project/argos
@@ -110,32 +124,14 @@ runs:
110
124
  ############################################################################
111
125
  # ROS1+Gazebo setup
112
126
  ############################################################################
113
- - name: Install ROS1 platform dependency
114
- if: inputs.platform == 'ros1gazebo'
115
- uses: ros-tooling/setup-ros@v0.7
116
- with:
117
- required-ros-distributions: ${{ inputs.rosdistro }}
118
-
119
- - name: Install SIERRA ROSbridge system dependencies (Linux)
120
- if: inputs.platform == 'ros1gazebo'
121
- uses: awalsh128/cache-apt-pkgs-action@latest
122
- with:
123
- packages: ros-${{ inputs.rosdistro }}-desktop-full ros-${{ inputs.rosdistro }}-turtlebot3-description ros-${{ inputs.rosdistro }}-turtlebot3-msgs ros-${{ inputs.rosdistro }}-turtlebot3-gazebo ros-${{ inputs.rosdistro }}-turtlebot3-bringup python${{ matrix.python-version }} python${{ matrix.python-version }}-dev python${{ matrix.python-version }}-venv python3-apt python3-cairo intltool python3-wheel python3-rospkg python3-empy
124
- version: ${{ runner.os }}
125
-
126
- - name: Install SIERRA ROSbridge python dependencies (Linux)
127
- if: inputs.platform == 'ros1gazebo'
127
+ - name: Install SIERRA ROSBridge dependency (ubuntu)
128
+ if: inputs.engine == 'ros1gazebo'
128
129
  shell: bash
129
130
  run: |
130
- # 2023/1/18: You still need install these even after installing stuff
131
- # with apt AND if the sysem python matches your current python. I don't
132
- # know why.
133
- pip3 install empy \
134
- rospkg \
135
- wheel \
136
- pyparsing \
137
- pyqt5 \
138
- pysip \
131
+ source /opt/ros/${{ inputs.rosdistro }}/setup.bash
132
+
133
+
134
+ pip3 install pysip \
139
135
  numpy \
140
136
  matplotlib \
141
137
  pyyaml \
@@ -145,13 +141,9 @@ runs:
145
141
  pydev \
146
142
  pyopengl \
147
143
  opencv-python \
148
- catkin_tools
149
-
150
- - name: Install SIERRA ROSBridge dependency (ubuntu)
151
- if: inputs.platform == 'ros1gazebo'
152
- shell: bash
153
- run: |
154
- source /opt/ros/${{ inputs.rosdistro }}/setup.bash
144
+ catkin_tools \
145
+ rospkg \
146
+ empy
155
147
 
156
148
  git clone https://github.com/jharwell/sierra_rosbridge.git
157
149
  cd sierra_rosbridge
@@ -160,9 +152,18 @@ runs:
160
152
  catkin config --extend /opt/ros/${{ inputs.rosdistro }}
161
153
  catkin config --install -DCMAKE_INSTALL_PREFIX=$HOME/.local
162
154
  catkin build
155
+ cd ..
156
+ rm -rf sierra_rosbridge
157
+
163
158
 
164
159
  ############################################################################
165
160
  # ROS1+Robot setup
166
161
  ############################################################################
167
162
 
168
163
  # None needed for the moment--stage 1 XML generation only.
164
+
165
+ ############################################################################
166
+ # JSONSim setup
167
+ ############################################################################
168
+
169
+ # None needed for the moment
@@ -9,6 +9,7 @@ on:
9
9
  push:
10
10
  paths:
11
11
  - 'sierra/**'
12
+ - '.github/**'
12
13
 
13
14
  schedule:
14
15
  - cron: '0 0 1 * *'
@@ -18,20 +19,11 @@ concurrency:
18
19
  cancel-in-progress: true
19
20
 
20
21
  jobs:
21
- analyze-ci-ubuntu-2004:
22
+ analyze-ci-ubuntu-2404:
22
23
  uses: ./.github/workflows/analyze-nox.yml
23
24
  secrets: inherit
24
25
  with:
25
- os: ubuntu-20.04
26
+ container: jharwell/ubuntu24.04-sierra:latest
26
27
 
27
- analyze-ci-ubuntu-2204:
28
- uses: ./.github/workflows/analyze-nox.yml
29
- secrets: inherit
30
- with:
31
- os: ubuntu-22.04
32
-
33
- analyze-ci-osx:
34
- uses: ./.github/workflows/analyze-nox.yml
35
- secrets: inherit
36
- with:
37
- os: macos-13
28
+ # 2025-09-02 [JRH]: Static analysis is pretty much always the same across
29
+ # OSes, so testing on e.g. OSX here adds minimal confidence.
@@ -3,23 +3,21 @@ name: OS Static Analysis
3
3
  on:
4
4
  workflow_call:
5
5
  inputs:
6
- os:
6
+ container:
7
7
  required: True
8
8
  type: string
9
9
 
10
10
  jobs:
11
11
  nox:
12
- runs-on: ${{ inputs.os }}
12
+ runs-on: ubuntu-latest
13
+ container: ${{ inputs.container }}
13
14
  strategy:
14
15
  matrix:
15
- os:
16
- - ${{ inputs.os }}
17
-
18
16
  # 2024/08/26: Test the earliest and latest supported version, to speed
19
- # up CI.
17
+ # up CI. Well, that's what it should do, but linting doesn't work for >
18
+ # 3.10 (see pyproject.toml for details).
20
19
  python-version:
21
- - 3.8
22
- - 3.11
20
+ - "3.10"
23
21
 
24
22
  session:
25
23
  - lint
@@ -27,21 +25,11 @@ jobs:
27
25
  - analyze_pytype
28
26
  - analyze_mypy
29
27
 
30
- exclude:
31
- - python-version: 3.11
32
- os: ubuntu-20.04
33
-
34
- - python-version: 3.8
35
- os: ubuntu-22.04
36
-
37
28
  steps:
38
29
  - uses: actions/checkout@v3
39
- - uses: ./.github/actions/sierra-setup
40
- - uses: kenchan0130/actions-system-info@master
41
- id: system-info
42
-
43
30
  - name: Run nox
44
31
  run: |
45
- nox \
32
+ uv sync -p ${{ matrix.python-version }} --group dev && \
33
+ uv run -p ${{ matrix.python-version }} nox \
46
34
  --pythons ${{ matrix.python-version }} \
47
35
  --sessions ${{ matrix.session }}
@@ -0,0 +1,51 @@
1
+ name: SIERRA Core CI
2
+
3
+ on:
4
+ workflow_call:
5
+
6
+ jobs:
7
+ plumbing:
8
+ runs-on: ubuntu-latest
9
+ container: ${{ matrix.container }}
10
+ strategy:
11
+ matrix:
12
+ container:
13
+ - jharwell/ubuntu24.04-sierra:latest
14
+
15
+ # 2024/08/26: Test the earliest and latest supported version, to speed
16
+ # up CI.
17
+ python-version:
18
+ - "3.10"
19
+ - 3.12
20
+
21
+ session:
22
+ - core_cmdline_opts
23
+ - core_env_vars
24
+ - core_builtin_bc
25
+ - core_parallelism
26
+ - core_stage1_bivar
27
+ - core_stage2_bivar
28
+ - core_stage3_bivar
29
+ - core_stage4_bivar
30
+ - core_stage5_univar
31
+ - core_stage5_bivar
32
+
33
+ steps:
34
+ - uses: actions/checkout@v3
35
+ - uses: ./.github/actions/sample-project-setup
36
+ with:
37
+ engine: argos
38
+
39
+ - uses: nick-fields/retry@v3
40
+ with:
41
+ timeout_minutes: 30
42
+ max_attempts: 3
43
+ shell: bash
44
+ command: uv run nox -p ${{ matrix.python-version }} -s ${{ matrix.session }}
45
+
46
+ - uses: actions/upload-artifact@v4
47
+ with:
48
+ name: ci-core-${{ matrix.session }}-${{ matrix.os }}-${{ matrix.python-version }}-coverage
49
+ path: .coverage.*
50
+ include-hidden-files: true
51
+ if-no-files-found: error
@@ -0,0 +1,175 @@
1
+ name: Smoke Coverage Top-level
2
+
3
+ # Run:
4
+ #
5
+ # - Every month. Scheduling helps keep drift/issues with updates
6
+ # to runners at bay.
7
+ # - On pushes.
8
+ #
9
+ on:
10
+ push:
11
+ paths:
12
+ - 'sierra/**'
13
+ - '.github/**'
14
+
15
+ schedule:
16
+ - cron: '0 0 1 * *'
17
+
18
+
19
+ concurrency:
20
+ group: ${{ github.workflow }}-${{ github.ref }}
21
+ cancel-in-progress: true
22
+
23
+ jobs:
24
+ # 2024/08/27: We don't test the core with OSX, because if it works on linux,
25
+ # it should work on OSX. Plus, the plugin tests utilize a lot of "core"
26
+ # functionality, it the core is already largely tested on OSX via that
27
+ # route. Plugins are another story, and are explicitly tested on OSX where
28
+ # feasible.
29
+ core-smoke-tests:
30
+ uses: ./.github/workflows/core.yml
31
+ secrets: inherit
32
+
33
+ plugin-smoke-tests:
34
+ uses: ./.github/workflows/plugin.yml
35
+ secrets: inherit
36
+
37
+ unit-tests:
38
+ uses: ./.github/workflows/unit-tests.yml
39
+ secrets: inherit
40
+
41
+ coverage-smoke:
42
+ runs-on: ubuntu-latest
43
+
44
+ needs:
45
+ - core-smoke-tests
46
+ - plugin-smoke-tests
47
+ - unit-tests
48
+
49
+ steps:
50
+ - uses: actions/checkout@v3
51
+ - uses: actions/download-artifact@v4
52
+
53
+ - name: Install uv
54
+ uses: astral-sh/setup-uv@v6
55
+
56
+ - name: Generate coverage report
57
+ shell: bash
58
+ run: |
59
+ # ls -al . || true
60
+ # ls -al ci-*-Linux-${{ matrix.python-version }}-coverage/.* || true
61
+ # ls -al ci-*-Linux-${{ matrix.python-version }}-coverage/* || true
62
+ # find . -name "ci-*-Linux-${{ matrix.python-version }}-coverage*"
63
+
64
+ # This is necessary for coverage since we run all integration tests in
65
+ # nox, otherwise coverage can't find e.g., the sierra-cli executable
66
+ # and we can't upload coverage.
67
+ uv sync -p 3.9 --group dev
68
+ source .venv/bin/activate
69
+
70
+ which sierra-cli
71
+ sierra-cli --version
72
+ which coverage
73
+ which nox
74
+ pwd
75
+
76
+ coverage \
77
+ combine \
78
+ --debug=pathmap \
79
+ $(find . -name "ci-*-coverage*")
80
+
81
+ coverage \
82
+ report \
83
+ --ignore-errors \
84
+ --fail-under=80
85
+
86
+ coverage \
87
+ xml \
88
+ --ignore-errors
89
+
90
+ - uses: actions/upload-artifact@v4
91
+ with:
92
+ name: ci-integration-coverage-xml
93
+ path: coverage.xml
94
+
95
+ - name: Coveralls
96
+ env:
97
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
98
+ COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
99
+
100
+ run: |
101
+ uv run -p 3.9 coveralls
102
+
103
+ create-release:
104
+ runs-on: ubuntu-latest
105
+ needs:
106
+ - coverage-smoke
107
+
108
+ steps:
109
+ - uses: actions/checkout@v3
110
+
111
+ - name: Install uv
112
+ uses: astral-sh/setup-uv@v6
113
+
114
+ - name: Generate manpages
115
+ shell: bash
116
+ run: |
117
+ # 3.10 is known to work with the current configuration to generate
118
+ # docs.
119
+ uv sync -p 3.10 --group dev
120
+
121
+ # Hatch will only pickup manpages with shared-data if they are INSIDE
122
+ # a package directory. Since we don't want to commit this to source
123
+ # control, we copy in in CI here.
124
+ mkdir -p sierra/data/man
125
+
126
+ # 3.10 is known to work with the current configuration to generate
127
+ # docs.
128
+ cd docs && uv run -p 3.10 sphinx-build -b man . _build/man
129
+ cd ..
130
+ cp docs/_build/man/*.1 sierra/data/man/
131
+ cp docs/_build/man/*.7 sierra/data/man/
132
+
133
+ # Build the package and verify manpages were included
134
+ uv build && python3 -m zipfile -l dist/sierra_research-*.whl |grep man
135
+
136
+ - name: Set beta release tag
137
+ if: github.ref == 'refs/heads/devel'
138
+ shell: bash
139
+ run: |
140
+ uv sync --group ci
141
+ echo RELEASE_TAG=$(uv run pyproject-info project.version | tr -d '"').beta >> $GITHUB_ENV
142
+
143
+ - name: Github beta release
144
+ if: github.ref == 'refs/heads/devel'
145
+ uses: "marvinpinto/action-automatic-releases@latest"
146
+ with:
147
+ repo_token: ${{ secrets.BOT_RELEASE_TOKEN }}
148
+ automatic_release_tag: ${{ env.RELEASE_TAG }}
149
+ prerelease: true
150
+ title: "Development release ${{ env.RELEASE_TAG }}"
151
+
152
+ - name: Set release tag
153
+ if: github.ref == 'refs/heads/master'
154
+ shell: bash
155
+ run: |
156
+ uv sync --group ci
157
+ echo RELEASE_TAG=$(uv run pyproject-info project.version | tr -d '"') >> $GITHUB_ENV
158
+
159
+ - name: Github release
160
+ if: github.ref == 'refs/heads/master'
161
+ uses: "marvinpinto/action-automatic-releases@latest"
162
+ with:
163
+ # 2025-04-29 [JRH]: This is NOT the usual secrets.GITHUB_TOKEN because
164
+ # as of now, you can't trigger a workflow (such as the publish
165
+ # workflow) with the same token that THIS workflow was triggered with,
166
+ # because...reasons.
167
+ #
168
+ # The workaround is to create a fine-grained token for my account,
169
+ # give it permissions only for the SIERRA repo, and set it as a CI
170
+ # secret. THEN the publish workflow will be triggered on successful
171
+ # release publishing.
172
+ repo_token: ${{ secrets.BOT_RELEASE_TOKEN }}
173
+ automatic_release_tag: ${{ env.RELEASE_TAG }}
174
+ prerelease: false
175
+ title: "Release ${{ env.RELEASE_TAG }}"