runops 0.2.0__tar.gz → 0.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. {runops-0.2.0 → runops-0.2.1}/PKG-INFO +1 -1
  2. {runops-0.2.0 → runops-0.2.1}/pyproject.toml +1 -1
  3. runops-0.2.1/src/runops/templates/skills/update-runops/SKILL.md +48 -0
  4. {runops-0.2.0 → runops-0.2.1}/uv.lock +1 -1
  5. {runops-0.2.0 → runops-0.2.1}/.claude/agents/beach.md +0 -0
  6. {runops-0.2.0 → runops-0.2.1}/.claude/agents/emses.md +0 -0
  7. {runops-0.2.0 → runops-0.2.1}/.claude/agents/implement-adapter.md +0 -0
  8. {runops-0.2.0 → runops-0.2.1}/.claude/agents/implement-cli.md +0 -0
  9. {runops-0.2.0 → runops-0.2.1}/.claude/agents/implement-core.md +0 -0
  10. {runops-0.2.0 → runops-0.2.1}/.claude/agents/implement-launcher.md +0 -0
  11. {runops-0.2.0 → runops-0.2.1}/.claude/agents/implement-slurm.md +0 -0
  12. {runops-0.2.0 → runops-0.2.1}/.claude/agents/scaffold.md +0 -0
  13. {runops-0.2.0 → runops-0.2.1}/.claude/agents/spec-reviewer.md +0 -0
  14. {runops-0.2.0 → runops-0.2.1}/.claude/agents/test-writer.md +0 -0
  15. {runops-0.2.0 → runops-0.2.1}/.claude/rules/architecture.md +0 -0
  16. {runops-0.2.0 → runops-0.2.1}/.claude/rules/commands.md +0 -0
  17. {runops-0.2.0 → runops-0.2.1}/.claude/rules/dev-workflow.md +0 -0
  18. {runops-0.2.0 → runops-0.2.1}/.claude/rules/gotchas.md +0 -0
  19. {runops-0.2.0 → runops-0.2.1}/.claude/rules/knowledge-layer.md +0 -0
  20. {runops-0.2.0 → runops-0.2.1}/.claude/settings.json +0 -0
  21. {runops-0.2.0 → runops-0.2.1}/.claude/skills/check/SKILL.md +0 -0
  22. {runops-0.2.0 → runops-0.2.1}/.claude/skills/improve-harness/SKILL.md +0 -0
  23. {runops-0.2.0 → runops-0.2.1}/.claude/skills/test-module/SKILL.md +0 -0
  24. {runops-0.2.0 → runops-0.2.1}/.dockerignore +0 -0
  25. {runops-0.2.0 → runops-0.2.1}/.gitattributes +0 -0
  26. {runops-0.2.0 → runops-0.2.1}/.github/workflows/ci.yml +0 -0
  27. {runops-0.2.0 → runops-0.2.1}/.github/workflows/publish.yml +0 -0
  28. {runops-0.2.0 → runops-0.2.1}/.gitignore +0 -0
  29. {runops-0.2.0 → runops-0.2.1}/.pre-commit-config.yaml +0 -0
  30. {runops-0.2.0 → runops-0.2.1}/AGENTS.md +0 -0
  31. {runops-0.2.0 → runops-0.2.1}/CLAUDE.md +0 -0
  32. {runops-0.2.0 → runops-0.2.1}/Dockerfile.diagrams +0 -0
  33. {runops-0.2.0 → runops-0.2.1}/LICENSE +0 -0
  34. {runops-0.2.0 → runops-0.2.1}/README.md +0 -0
  35. {runops-0.2.0 → runops-0.2.1}/SKILLS.md +0 -0
  36. {runops-0.2.0 → runops-0.2.1}/SPEC.md +0 -0
  37. {runops-0.2.0 → runops-0.2.1}/docs/agent-user-guide.md +0 -0
  38. {runops-0.2.0 → runops-0.2.1}/docs/architecture.md +0 -0
  39. {runops-0.2.0 → runops-0.2.1}/docs/extending.md +0 -0
  40. {runops-0.2.0 → runops-0.2.1}/docs/figures/agent-project-flow/human-gates.png +0 -0
  41. {runops-0.2.0 → runops-0.2.1}/docs/figures/agent-project-flow/init-world.png +0 -0
  42. {runops-0.2.0 → runops-0.2.1}/docs/figures/agent-project-flow/operation-loop.png +0 -0
  43. {runops-0.2.0 → runops-0.2.1}/docs/figures/src-structure/overview.png +0 -0
  44. {runops-0.2.0 → runops-0.2.1}/docs/figures/src-structure/run-creation-resolution.png +0 -0
  45. {runops-0.2.0 → runops-0.2.1}/docs/figures/src-structure/site-resolution.png +0 -0
  46. {runops-0.2.0 → runops-0.2.1}/docs/get-started-with-agent.md +0 -0
  47. {runops-0.2.0 → runops-0.2.1}/docs/knowledge-layer.md +0 -0
  48. {runops-0.2.0 → runops-0.2.1}/docs/project-flow.md +0 -0
  49. {runops-0.2.0 → runops-0.2.1}/docs/simulator-kb-spec.md +0 -0
  50. {runops-0.2.0 → runops-0.2.1}/docs/src-structure.md +0 -0
  51. {runops-0.2.0 → runops-0.2.1}/docs/toml-reference.md +0 -0
  52. {runops-0.2.0 → runops-0.2.1}/entrypoints.toml +0 -0
  53. {runops-0.2.0 → runops-0.2.1}/examples/beach/campaign.toml +0 -0
  54. {runops-0.2.0 → runops-0.2.1}/examples/beach/cases/periodic2_basic/beach_template.toml +0 -0
  55. {runops-0.2.0 → runops-0.2.1}/examples/beach/cases/periodic2_basic/case.toml +0 -0
  56. {runops-0.2.0 → runops-0.2.1}/examples/beach/launchers.toml +0 -0
  57. {runops-0.2.0 → runops-0.2.1}/examples/beach/simulators.toml +0 -0
  58. {runops-0.2.0 → runops-0.2.1}/examples/beach/surveys/density_scan/survey.toml +0 -0
  59. {runops-0.2.0 → runops-0.2.1}/examples/emses/campaign.toml +0 -0
  60. {runops-0.2.0 → runops-0.2.1}/examples/emses/cases/flat_surface/case.toml +0 -0
  61. {runops-0.2.0 → runops-0.2.1}/examples/emses/cases/flat_surface/plasma.toml +0 -0
  62. {runops-0.2.0 → runops-0.2.1}/examples/emses/launchers.toml +0 -0
  63. {runops-0.2.0 → runops-0.2.1}/examples/emses/simulators.toml +0 -0
  64. {runops-0.2.0 → runops-0.2.1}/examples/emses/surveys/mag_angle_scan/survey.toml +0 -0
  65. {runops-0.2.0 → runops-0.2.1}/schemas/campaign.json +0 -0
  66. {runops-0.2.0 → runops-0.2.1}/schemas/case.json +0 -0
  67. {runops-0.2.0 → runops-0.2.1}/schemas/launchers.json +0 -0
  68. {runops-0.2.0 → runops-0.2.1}/schemas/manifest.json +0 -0
  69. {runops-0.2.0 → runops-0.2.1}/schemas/runops.json +0 -0
  70. {runops-0.2.0 → runops-0.2.1}/schemas/simulators.json +0 -0
  71. {runops-0.2.0 → runops-0.2.1}/schemas/survey.json +0 -0
  72. {runops-0.2.0 → runops-0.2.1}/scripts/diagram_utils.py +0 -0
  73. {runops-0.2.0 → runops-0.2.1}/scripts/generate_agent_project_flow.py +0 -0
  74. {runops-0.2.0 → runops-0.2.1}/scripts/generate_architecture_diagrams.py +0 -0
  75. {runops-0.2.0 → runops-0.2.1}/scripts/render_diagrams_in_docker.py +0 -0
  76. {runops-0.2.0 → runops-0.2.1}/src/runops/__init__.py +0 -0
  77. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/__init__.py +0 -0
  78. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/_utils/__init__.py +0 -0
  79. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/_utils/toml_utils.py +0 -0
  80. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/base.py +0 -0
  81. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/contrib/__init__.py +0 -0
  82. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/contrib/beach.py +0 -0
  83. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/contrib/emses.py +0 -0
  84. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/generic.py +0 -0
  85. {runops-0.2.0 → runops-0.2.1}/src/runops/adapters/registry.py +0 -0
  86. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/__init__.py +0 -0
  87. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/analyze.py +0 -0
  88. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/clone.py +0 -0
  89. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/config.py +0 -0
  90. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/context.py +0 -0
  91. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/create.py +0 -0
  92. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/dashboard.py +0 -0
  93. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/extend.py +0 -0
  94. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/history.py +0 -0
  95. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/init.py +0 -0
  96. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/jobs.py +0 -0
  97. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/knowledge.py +0 -0
  98. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/list.py +0 -0
  99. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/log.py +0 -0
  100. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/main.py +0 -0
  101. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/manage.py +0 -0
  102. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/new.py +0 -0
  103. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/notes.py +0 -0
  104. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/run_lookup.py +0 -0
  105. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/setup.py +0 -0
  106. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/status.py +0 -0
  107. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/submit.py +0 -0
  108. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/update.py +0 -0
  109. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/update_harness.py +0 -0
  110. {runops-0.2.0 → runops-0.2.1}/src/runops/cli/update_refs.py +0 -0
  111. {runops-0.2.0 → runops-0.2.1}/src/runops/core/__init__.py +0 -0
  112. {runops-0.2.0 → runops-0.2.1}/src/runops/core/actions.py +0 -0
  113. {runops-0.2.0 → runops-0.2.1}/src/runops/core/analysis.py +0 -0
  114. {runops-0.2.0 → runops-0.2.1}/src/runops/core/campaign.py +0 -0
  115. {runops-0.2.0 → runops-0.2.1}/src/runops/core/case.py +0 -0
  116. {runops-0.2.0 → runops-0.2.1}/src/runops/core/context.py +0 -0
  117. {runops-0.2.0 → runops-0.2.1}/src/runops/core/discovery.py +0 -0
  118. {runops-0.2.0 → runops-0.2.1}/src/runops/core/environment.py +0 -0
  119. {runops-0.2.0 → runops-0.2.1}/src/runops/core/exceptions.py +0 -0
  120. {runops-0.2.0 → runops-0.2.1}/src/runops/core/knowledge.py +0 -0
  121. {runops-0.2.0 → runops-0.2.1}/src/runops/core/knowledge_source.py +0 -0
  122. {runops-0.2.0 → runops-0.2.1}/src/runops/core/manifest.py +0 -0
  123. {runops-0.2.0 → runops-0.2.1}/src/runops/core/project.py +0 -0
  124. {runops-0.2.0 → runops-0.2.1}/src/runops/core/provenance.py +0 -0
  125. {runops-0.2.0 → runops-0.2.1}/src/runops/core/retry.py +0 -0
  126. {runops-0.2.0 → runops-0.2.1}/src/runops/core/run.py +0 -0
  127. {runops-0.2.0 → runops-0.2.1}/src/runops/core/run_creation.py +0 -0
  128. {runops-0.2.0 → runops-0.2.1}/src/runops/core/site.py +0 -0
  129. {runops-0.2.0 → runops-0.2.1}/src/runops/core/state.py +0 -0
  130. {runops-0.2.0 → runops-0.2.1}/src/runops/core/survey.py +0 -0
  131. {runops-0.2.0 → runops-0.2.1}/src/runops/core/validation.py +0 -0
  132. {runops-0.2.0 → runops-0.2.1}/src/runops/harness/__init__.py +0 -0
  133. {runops-0.2.0 → runops-0.2.1}/src/runops/harness/builder.py +0 -0
  134. {runops-0.2.0 → runops-0.2.1}/src/runops/harness/claude.py +0 -0
  135. {runops-0.2.0 → runops-0.2.1}/src/runops/jobgen/__init__.py +0 -0
  136. {runops-0.2.0 → runops-0.2.1}/src/runops/jobgen/generator.py +0 -0
  137. {runops-0.2.0 → runops-0.2.1}/src/runops/launchers/__init__.py +0 -0
  138. {runops-0.2.0 → runops-0.2.1}/src/runops/launchers/base.py +0 -0
  139. {runops-0.2.0 → runops-0.2.1}/src/runops/launchers/mpiexec.py +0 -0
  140. {runops-0.2.0 → runops-0.2.1}/src/runops/launchers/mpirun.py +0 -0
  141. {runops-0.2.0 → runops-0.2.1}/src/runops/launchers/srun.py +0 -0
  142. {runops-0.2.0 → runops-0.2.1}/src/runops/sites/__init__.py +0 -0
  143. {runops-0.2.0 → runops-0.2.1}/src/runops/sites/camphor.md +0 -0
  144. {runops-0.2.0 → runops-0.2.1}/src/runops/sites/camphor.toml +0 -0
  145. {runops-0.2.0 → runops-0.2.1}/src/runops/slurm/__init__.py +0 -0
  146. {runops-0.2.0 → runops-0.2.1}/src/runops/slurm/query.py +0 -0
  147. {runops-0.2.0 → runops-0.2.1}/src/runops/slurm/submit.py +0 -0
  148. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/__init__.py +0 -0
  149. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/beach/agent_guide.md +0 -0
  150. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/beach/beach.toml +0 -0
  151. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/beach/case.toml +0 -0
  152. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/beach/summarize.py +0 -0
  153. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/emses/agent_guide.md +0 -0
  154. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/emses/case.toml +0 -0
  155. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/emses/plasma.toml +0 -0
  156. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/emses/summarize.py +0 -0
  157. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/generic/case.toml.j2 +0 -0
  158. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/adapters/generic/summarize.py +0 -0
  159. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/agent.md +0 -0
  160. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/rules/cookbook.md +0 -0
  161. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/campaign.toml.j2 +0 -0
  162. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/cases_claude.md +0 -0
  163. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/facts.toml +0 -0
  164. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/gitignore.txt +0 -0
  165. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/notes/README.md +0 -0
  166. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/rules/plan-before-act.md +0 -0
  167. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/rules/runops-workflow.md +0 -0
  168. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/rules/upstream-feedback.md +0 -0
  169. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/runs_claude.md +0 -0
  170. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/scaffold/vscode_settings.json +0 -0
  171. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/analyze/SKILL.md +0 -0
  172. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/check-status/SKILL.md +0 -0
  173. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/cleanup/SKILL.md +0 -0
  174. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/create-run/SKILL.md +0 -0
  175. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/debug-failed/SKILL.md +0 -0
  176. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/learn/SKILL.md +0 -0
  177. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/new-case/SKILL.md +0 -0
  178. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/note/SKILL.md +0 -0
  179. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/run-all/SKILL.md +0 -0
  180. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/runops-reference/SKILL.md +0 -0
  181. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/setup-campaign/SKILL.md +0 -0
  182. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/setup-env/SKILL.md +0 -0
  183. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/skills/survey-design/SKILL.md +0 -0
  184. {runops-0.2.0 → runops-0.2.1}/src/runops/templates/survey.toml.j2 +0 -0
  185. {runops-0.2.0 → runops-0.2.1}/tests/__init__.py +0 -0
  186. {runops-0.2.0 → runops-0.2.1}/tests/conftest.py +0 -0
  187. {runops-0.2.0 → runops-0.2.1}/tests/fixtures/sample_case.toml +0 -0
  188. {runops-0.2.0 → runops-0.2.1}/tests/fixtures/sample_launchers.toml +0 -0
  189. {runops-0.2.0 → runops-0.2.1}/tests/fixtures/sample_manifest.toml +0 -0
  190. {runops-0.2.0 → runops-0.2.1}/tests/fixtures/sample_runops.toml +0 -0
  191. {runops-0.2.0 → runops-0.2.1}/tests/fixtures/sample_simulators.toml +0 -0
  192. {runops-0.2.0 → runops-0.2.1}/tests/fixtures/sample_survey.toml +0 -0
  193. {runops-0.2.0 → runops-0.2.1}/tests/test_adapters/__init__.py +0 -0
  194. {runops-0.2.0 → runops-0.2.1}/tests/test_adapters/test_beach.py +0 -0
  195. {runops-0.2.0 → runops-0.2.1}/tests/test_adapters/test_emses.py +0 -0
  196. {runops-0.2.0 → runops-0.2.1}/tests/test_adapters/test_generic.py +0 -0
  197. {runops-0.2.0 → runops-0.2.1}/tests/test_adapters/test_registry.py +0 -0
  198. {runops-0.2.0 → runops-0.2.1}/tests/test_adapters/test_toml_utils.py +0 -0
  199. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/__init__.py +0 -0
  200. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_analyze.py +0 -0
  201. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_clone.py +0 -0
  202. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_config.py +0 -0
  203. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_context_cli.py +0 -0
  204. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_create.py +0 -0
  205. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_dashboard.py +0 -0
  206. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_extend.py +0 -0
  207. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_history.py +0 -0
  208. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_init.py +0 -0
  209. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_jobs.py +0 -0
  210. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_knowledge.py +0 -0
  211. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_list.py +0 -0
  212. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_log.py +0 -0
  213. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_main.py +0 -0
  214. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_manage.py +0 -0
  215. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_new.py +0 -0
  216. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_notes.py +0 -0
  217. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_setup.py +0 -0
  218. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_status.py +0 -0
  219. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_submit.py +0 -0
  220. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_update.py +0 -0
  221. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_update_harness.py +0 -0
  222. {runops-0.2.0 → runops-0.2.1}/tests/test_cli/test_update_refs.py +0 -0
  223. {runops-0.2.0 → runops-0.2.1}/tests/test_core/__init__.py +0 -0
  224. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_action_contract.py +0 -0
  225. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_actions.py +0 -0
  226. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_analysis.py +0 -0
  227. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_case.py +0 -0
  228. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_context.py +0 -0
  229. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_discovery.py +0 -0
  230. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_knowledge_source.py +0 -0
  231. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_manifest.py +0 -0
  232. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_project.py +0 -0
  233. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_provenance.py +0 -0
  234. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_retry.py +0 -0
  235. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_run.py +0 -0
  236. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_run_creation.py +0 -0
  237. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_site.py +0 -0
  238. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_state.py +0 -0
  239. {runops-0.2.0 → runops-0.2.1}/tests/test_core/test_survey.py +0 -0
  240. {runops-0.2.0 → runops-0.2.1}/tests/test_e2e/test_bootstrap.py +0 -0
  241. {runops-0.2.0 → runops-0.2.1}/tests/test_harness/test_claude.py +0 -0
  242. {runops-0.2.0 → runops-0.2.1}/tests/test_launchers/__init__.py +0 -0
  243. {runops-0.2.0 → runops-0.2.1}/tests/test_launchers/test_launcher_base.py +0 -0
  244. {runops-0.2.0 → runops-0.2.1}/tests/test_launchers/test_mpiexec.py +0 -0
  245. {runops-0.2.0 → runops-0.2.1}/tests/test_launchers/test_mpirun.py +0 -0
  246. {runops-0.2.0 → runops-0.2.1}/tests/test_launchers/test_srun.py +0 -0
  247. {runops-0.2.0 → runops-0.2.1}/tests/test_slurm/__init__.py +0 -0
  248. {runops-0.2.0 → runops-0.2.1}/tests/test_slurm/test_jobgen.py +0 -0
  249. {runops-0.2.0 → runops-0.2.1}/tests/test_slurm/test_slurm_query.py +0 -0
  250. {runops-0.2.0 → runops-0.2.1}/tests/test_slurm/test_slurm_submit.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runops
3
- Version: 0.2.0
3
+ Version: 0.2.1
4
4
  Summary: HPC simulation run management CLI tool for Slurm-based environments
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "runops"
7
- version = "0.2.0"
7
+ version = "0.2.1"
8
8
  description = "HPC simulation run management CLI tool for Slurm-based environments"
9
9
  readme = "README.md"
10
10
  license = "Apache-2.0"
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: update-runops
3
+ description: Update runops itself and refresh harness files. Use when runops has a new release or harness templates need updating.
4
+ ---
5
+
6
+ # runops を最新版に更新する
7
+
8
+ ## 1. tools/runops を pull
9
+
10
+ ```bash
11
+ cd tools/runops && git pull && cd -
12
+ ```
13
+
14
+ pull が失敗した場合 (diverge 等):
15
+
16
+ ```bash
17
+ cd tools/runops && git fetch origin && git reset --hard origin/main && cd -
18
+ ```
19
+
20
+ ## 2. ハーネスファイルを再生成
21
+
22
+ ```bash
23
+ runops update-harness
24
+ ```
25
+
26
+ - 未編集のファイルは自動で上書きされる
27
+ - ユーザーが編集済みのファイルは `<path>.new` として出力される → diff を確認してマージ
28
+ - `--dry-run` で事前確認、`--force` で全上書き
29
+
30
+ ## 3. シミュレータパッケージを更新
31
+
32
+ ```bash
33
+ runops update
34
+ ```
35
+
36
+ ## 一括実行
37
+
38
+ ```bash
39
+ runops update-harness && runops update
40
+ ```
41
+
42
+ `update-harness` が内部で `tools/runops` の `git pull` も行うため、手順 1 を個別に実行する必要はない。
43
+
44
+ ## 注意
45
+
46
+ - `tools/runops/` に未コミットの変更がある場合は pull 前にコミットまたは stash する
47
+ - `update-harness` で `.new` ファイルが生成されたら、差分を確認してから元ファイルに反映する
48
+ - 更新後は `runops doctor` で環境が正常か確認するとよい
@@ -537,7 +537,7 @@ wheels = [
537
537
 
538
538
  [[package]]
539
539
  name = "runops"
540
- version = "0.2.0"
540
+ version = "0.2.1"
541
541
  source = { editable = "." }
542
542
  dependencies = [
543
543
  { name = "jinja2" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes