temporalio 0.1.1 → 0.3.0

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 (628) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/Cargo.lock +4324 -0
  4. data/Cargo.toml +25 -0
  5. data/Gemfile +20 -0
  6. data/LICENSE +16 -15
  7. data/README.md +985 -183
  8. data/Rakefile +101 -0
  9. data/ext/Cargo.toml +26 -0
  10. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  11. data/lib/temporalio/activity/context.rb +86 -78
  12. data/lib/temporalio/activity/definition.rb +175 -0
  13. data/lib/temporalio/activity/info.rb +44 -47
  14. data/lib/temporalio/activity.rb +8 -81
  15. data/lib/temporalio/api/activity/v1/message.rb +25 -0
  16. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  17. data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
  18. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +126 -0
  19. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  20. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  21. data/lib/temporalio/api/cloud/identity/v1/message.rb +41 -0
  22. data/lib/temporalio/api/cloud/namespace/v1/message.rb +42 -0
  23. data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
  24. data/lib/temporalio/api/cloud/operation/v1/message.rb +28 -0
  25. data/lib/temporalio/api/cloud/region/v1/message.rb +24 -0
  26. data/lib/temporalio/api/cloud/resource/v1/message.rb +23 -0
  27. data/lib/temporalio/api/cloud/sink/v1/message.rb +24 -0
  28. data/lib/temporalio/api/cloud/usage/v1/message.rb +31 -0
  29. data/lib/temporalio/api/command/v1/message.rb +46 -0
  30. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  31. data/lib/temporalio/api/common/v1/message.rb +47 -0
  32. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  33. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  35. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  36. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  37. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  38. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  39. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  40. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  41. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  42. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  43. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  44. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  45. data/lib/temporalio/api/export/v1/message.rb +24 -0
  46. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  47. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  48. data/lib/temporalio/api/history/v1/message.rb +90 -0
  49. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  50. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  51. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  52. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  53. data/lib/temporalio/api/operatorservice.rb +3 -0
  54. data/lib/temporalio/api/payload_visitor.rb +1513 -0
  55. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  56. data/lib/temporalio/api/query/v1/message.rb +27 -0
  57. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  58. data/lib/temporalio/api/schedule/v1/message.rb +43 -0
  59. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  60. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  61. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  62. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  63. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  64. data/lib/{gen/temporal/api/testservice/v1/request_response_pb.rb → temporalio/api/testservice/v1/request_response.rb} +6 -24
  65. data/lib/temporalio/api/testservice/v1/service.rb +23 -0
  66. data/lib/temporalio/api/update/v1/message.rb +33 -0
  67. data/lib/temporalio/api/version/v1/message.rb +26 -0
  68. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  69. data/lib/temporalio/api/workflowservice/v1/request_response.rb +204 -0
  70. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  71. data/lib/temporalio/api/workflowservice.rb +3 -0
  72. data/lib/temporalio/api.rb +14 -0
  73. data/lib/temporalio/cancellation.rb +170 -0
  74. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  75. data/lib/temporalio/client/async_activity_handle.rb +85 -0
  76. data/lib/temporalio/client/connection/cloud_service.rb +726 -0
  77. data/lib/temporalio/client/connection/operator_service.rb +201 -0
  78. data/lib/temporalio/client/connection/service.rb +42 -0
  79. data/lib/temporalio/client/connection/test_service.rb +111 -0
  80. data/lib/temporalio/client/connection/workflow_service.rb +1041 -0
  81. data/lib/temporalio/client/connection.rb +316 -0
  82. data/lib/temporalio/client/interceptor.rb +416 -0
  83. data/lib/temporalio/client/schedule.rb +967 -0
  84. data/lib/temporalio/client/schedule_handle.rb +126 -0
  85. data/lib/temporalio/client/workflow_execution.rb +100 -0
  86. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  87. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  88. data/lib/temporalio/client/workflow_handle.rb +326 -180
  89. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  90. data/lib/temporalio/client/workflow_update_handle.rb +65 -0
  91. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  92. data/lib/temporalio/client.rb +447 -94
  93. data/lib/temporalio/common_enums.rb +41 -0
  94. data/lib/temporalio/converters/data_converter.rb +99 -0
  95. data/lib/temporalio/converters/failure_converter.rb +202 -0
  96. data/lib/temporalio/converters/payload_codec.rb +26 -0
  97. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  98. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  99. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  100. data/lib/temporalio/converters/payload_converter/composite.rb +66 -0
  101. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  102. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  103. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  104. data/lib/temporalio/converters/payload_converter.rb +71 -0
  105. data/lib/temporalio/converters/raw_value.rb +20 -0
  106. data/lib/temporalio/converters.rb +9 -0
  107. data/lib/temporalio/error/failure.rb +119 -94
  108. data/lib/temporalio/error.rb +155 -0
  109. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  110. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  111. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  112. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  113. data/lib/temporalio/internal/bridge/api/core_interface.rb +40 -0
  114. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  115. data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
  116. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +56 -0
  117. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +57 -0
  118. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  119. data/lib/temporalio/internal/bridge/api.rb +3 -0
  120. data/lib/temporalio/internal/bridge/client.rb +95 -0
  121. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  122. data/lib/temporalio/internal/bridge/testing.rb +66 -0
  123. data/lib/temporalio/internal/bridge/worker.rb +85 -0
  124. data/lib/temporalio/internal/bridge.rb +36 -0
  125. data/lib/temporalio/internal/client/implementation.rb +700 -0
  126. data/lib/temporalio/internal/metric.rb +122 -0
  127. data/lib/temporalio/internal/proto_utils.rb +133 -0
  128. data/lib/temporalio/internal/worker/activity_worker.rb +373 -0
  129. data/lib/temporalio/internal/worker/multi_runner.rb +213 -0
  130. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +54 -0
  131. data/lib/temporalio/internal/worker/workflow_instance/context.rb +329 -0
  132. data/lib/temporalio/internal/worker/workflow_instance/details.rb +44 -0
  133. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +32 -0
  134. data/lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb +22 -0
  135. data/lib/temporalio/internal/worker/workflow_instance/handler_execution.rb +25 -0
  136. data/lib/temporalio/internal/worker/workflow_instance/handler_hash.rb +41 -0
  137. data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +97 -0
  138. data/lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb +62 -0
  139. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +415 -0
  140. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb +37 -0
  141. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb +40 -0
  142. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +163 -0
  143. data/lib/temporalio/internal/worker/workflow_instance.rb +730 -0
  144. data/lib/temporalio/internal/worker/workflow_worker.rb +196 -0
  145. data/lib/temporalio/internal.rb +7 -0
  146. data/lib/temporalio/metric.rb +109 -0
  147. data/lib/temporalio/retry_policy.rb +55 -73
  148. data/lib/temporalio/runtime.rb +302 -13
  149. data/lib/temporalio/scoped_logger.rb +96 -0
  150. data/lib/temporalio/search_attributes.rb +343 -0
  151. data/lib/temporalio/testing/activity_environment.rb +132 -0
  152. data/lib/temporalio/testing/workflow_environment.rb +345 -74
  153. data/lib/temporalio/testing.rb +4 -169
  154. data/lib/temporalio/version.rb +3 -1
  155. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  156. data/lib/temporalio/worker/activity_executor/thread_pool.rb +46 -0
  157. data/lib/temporalio/worker/activity_executor.rb +55 -0
  158. data/lib/temporalio/worker/interceptor.rb +362 -0
  159. data/lib/temporalio/worker/thread_pool.rb +237 -0
  160. data/lib/temporalio/worker/tuner.rb +151 -0
  161. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +230 -0
  162. data/lib/temporalio/worker/workflow_executor.rb +26 -0
  163. data/lib/temporalio/worker.rb +554 -161
  164. data/lib/temporalio/workflow/activity_cancellation_type.rb +20 -0
  165. data/lib/temporalio/workflow/child_workflow_cancellation_type.rb +21 -0
  166. data/lib/temporalio/workflow/child_workflow_handle.rb +43 -0
  167. data/lib/temporalio/workflow/definition.rb +566 -0
  168. data/lib/temporalio/workflow/external_workflow_handle.rb +41 -0
  169. data/lib/temporalio/workflow/future.rb +117 -104
  170. data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
  171. data/lib/temporalio/workflow/info.rb +63 -57
  172. data/lib/temporalio/workflow/parent_close_policy.rb +19 -0
  173. data/lib/temporalio/workflow/update_info.rb +20 -0
  174. data/lib/temporalio/workflow.rb +523 -0
  175. data/lib/temporalio/workflow_history.rb +22 -0
  176. data/lib/temporalio.rb +6 -7
  177. data/temporalio.gemspec +20 -39
  178. metadata +171 -710
  179. data/bridge/Cargo.lock +0 -2997
  180. data/bridge/Cargo.toml +0 -29
  181. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  182. data/bridge/sdk-core/Cargo.toml +0 -2
  183. data/bridge/sdk-core/LICENSE.txt +0 -23
  184. data/bridge/sdk-core/README.md +0 -117
  185. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  186. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  187. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  188. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  189. data/bridge/sdk-core/client/Cargo.toml +0 -40
  190. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  191. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  192. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  193. data/bridge/sdk-core/client/src/raw.rs +0 -932
  194. data/bridge/sdk-core/client/src/retry.rs +0 -763
  195. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  196. data/bridge/sdk-core/core/Cargo.toml +0 -129
  197. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  198. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  199. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  200. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  201. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  202. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  203. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  204. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  205. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  206. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  207. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  208. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  209. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  210. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  211. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  212. data/bridge/sdk-core/core/src/lib.rs +0 -289
  213. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  214. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  215. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  216. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  217. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  218. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  219. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  220. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  221. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  222. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  223. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  224. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  225. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  226. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  227. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  228. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  229. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  230. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  231. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  232. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  233. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  234. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  235. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  236. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  237. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  238. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  239. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  240. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  241. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  242. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  243. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  244. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  245. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  246. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  247. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  248. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  249. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  250. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  251. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  252. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  253. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  254. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  255. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  256. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  257. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  258. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  259. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  260. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  261. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  262. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  263. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  264. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  265. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  266. data/bridge/sdk-core/etc/deps.svg +0 -162
  267. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  268. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  269. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  270. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  271. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  272. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  273. data/bridge/sdk-core/fsm/README.md +0 -3
  274. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  275. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  276. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  277. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  278. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  279. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  280. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  281. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  282. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  283. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  284. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  285. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  286. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  287. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  288. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  289. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  290. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  291. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  292. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  293. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  294. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  295. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  296. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  297. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  298. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  299. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  300. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  301. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  302. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  303. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  304. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  305. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  306. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  307. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  308. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  309. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  310. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  311. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  312. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  313. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  314. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  315. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  316. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  317. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  318. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  319. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  320. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  321. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  322. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  323. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  324. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  325. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  326. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  327. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  328. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  329. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  330. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  331. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  332. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  333. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  334. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  335. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  336. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  337. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  338. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  339. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  340. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  341. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  342. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  343. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  344. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  345. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  346. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  347. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  348. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  349. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  350. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  351. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  352. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  353. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  354. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  355. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  356. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  357. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  358. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  359. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  360. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  361. data/bridge/sdk-core/rustfmt.toml +0 -1
  362. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  363. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  364. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  365. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  366. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  367. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  368. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  369. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  370. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  371. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  372. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  373. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  374. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  375. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  376. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  377. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  378. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  379. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  380. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  381. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  382. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  383. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  384. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  385. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  386. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  387. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  388. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  389. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  390. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  391. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  392. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  393. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  394. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  395. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  396. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  397. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  398. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  399. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  400. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  401. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  402. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  403. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  404. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  405. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  406. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  407. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  408. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  409. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  410. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  411. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  412. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  413. data/bridge/sdk-core/tests/main.rs +0 -103
  414. data/bridge/sdk-core/tests/runner.rs +0 -132
  415. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  416. data/bridge/src/connection.rs +0 -202
  417. data/bridge/src/lib.rs +0 -494
  418. data/bridge/src/runtime.rs +0 -54
  419. data/bridge/src/test_server.rs +0 -153
  420. data/bridge/src/worker.rs +0 -197
  421. data/ext/Rakefile +0 -9
  422. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  423. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  424. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  425. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  426. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  427. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  428. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  429. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  430. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  431. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  432. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  433. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  434. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  435. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  436. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  437. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  438. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  439. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  440. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  441. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  442. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  443. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  444. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  445. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  446. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  447. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  448. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  449. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  450. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  451. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  452. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  453. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  454. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  455. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  456. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  457. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  458. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  459. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  460. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  461. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  462. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  463. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  464. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  465. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  466. data/lib/temporalio/bridge/connect_options.rb +0 -15
  467. data/lib/temporalio/bridge/error.rb +0 -8
  468. data/lib/temporalio/bridge/retry_config.rb +0 -24
  469. data/lib/temporalio/bridge/tls_options.rb +0 -19
  470. data/lib/temporalio/bridge.rb +0 -14
  471. data/lib/temporalio/client/implementation.rb +0 -340
  472. data/lib/temporalio/connection/retry_config.rb +0 -44
  473. data/lib/temporalio/connection/service.rb +0 -20
  474. data/lib/temporalio/connection/test_service.rb +0 -92
  475. data/lib/temporalio/connection/tls_options.rb +0 -51
  476. data/lib/temporalio/connection/workflow_service.rb +0 -731
  477. data/lib/temporalio/connection.rb +0 -86
  478. data/lib/temporalio/data_converter.rb +0 -191
  479. data/lib/temporalio/error/workflow_failure.rb +0 -19
  480. data/lib/temporalio/errors.rb +0 -40
  481. data/lib/temporalio/failure_converter/base.rb +0 -26
  482. data/lib/temporalio/failure_converter/basic.rb +0 -319
  483. data/lib/temporalio/failure_converter.rb +0 -7
  484. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  485. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  486. data/lib/temporalio/interceptor/chain.rb +0 -28
  487. data/lib/temporalio/interceptor/client.rb +0 -127
  488. data/lib/temporalio/interceptor.rb +0 -22
  489. data/lib/temporalio/payload_codec/base.rb +0 -32
  490. data/lib/temporalio/payload_converter/base.rb +0 -24
  491. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  492. data/lib/temporalio/payload_converter/composite.rb +0 -49
  493. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  494. data/lib/temporalio/payload_converter/json.rb +0 -26
  495. data/lib/temporalio/payload_converter/nil.rb +0 -26
  496. data/lib/temporalio/payload_converter.rb +0 -14
  497. data/lib/temporalio/retry_state.rb +0 -35
  498. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  499. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  500. data/lib/temporalio/timeout_type.rb +0 -29
  501. data/lib/temporalio/worker/activity_runner.rb +0 -114
  502. data/lib/temporalio/worker/activity_worker.rb +0 -164
  503. data/lib/temporalio/worker/reactor.rb +0 -46
  504. data/lib/temporalio/worker/runner.rb +0 -63
  505. data/lib/temporalio/worker/sync_worker.rb +0 -124
  506. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  507. data/lib/temporalio/workflow/async.rb +0 -46
  508. data/lib/temporalio/workflow/execution_info.rb +0 -54
  509. data/lib/temporalio/workflow/execution_status.rb +0 -36
  510. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  511. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  512. data/lib/thermite_patch.rb +0 -33
  513. data/sig/async.rbs +0 -17
  514. data/sig/protobuf.rbs +0 -16
  515. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  516. data/sig/protos/google/protobuf/any.rbs +0 -157
  517. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  518. data/sig/protos/google/protobuf/duration.rbs +0 -114
  519. data/sig/protos/google/protobuf/empty.rbs +0 -36
  520. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  521. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  522. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  523. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  524. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  525. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  526. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  527. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  528. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  529. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  530. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  531. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  532. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  533. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  534. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  535. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  536. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  537. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  538. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  539. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  540. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  541. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  542. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  543. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  544. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  545. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  546. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  547. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  548. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  549. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  550. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  551. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  552. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  553. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  554. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  555. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  556. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  557. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  558. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  559. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  560. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  561. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  562. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  563. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  564. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  565. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  566. data/sig/ruby.rbs +0 -12
  567. data/sig/temporalio/activity/context.rbs +0 -29
  568. data/sig/temporalio/activity/info.rbs +0 -43
  569. data/sig/temporalio/activity.rbs +0 -19
  570. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  571. data/sig/temporalio/bridge/error.rbs +0 -8
  572. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  573. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  574. data/sig/temporalio/bridge.rbs +0 -71
  575. data/sig/temporalio/client/implementation.rbs +0 -38
  576. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  577. data/sig/temporalio/client.rbs +0 -35
  578. data/sig/temporalio/connection/retry_config.rbs +0 -37
  579. data/sig/temporalio/connection/service.rbs +0 -14
  580. data/sig/temporalio/connection/test_service.rbs +0 -13
  581. data/sig/temporalio/connection/tls_options.rbs +0 -43
  582. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  583. data/sig/temporalio/connection.rbs +0 -30
  584. data/sig/temporalio/data_converter.rbs +0 -35
  585. data/sig/temporalio/error/failure.rbs +0 -121
  586. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  587. data/sig/temporalio/errors.rbs +0 -36
  588. data/sig/temporalio/failure_converter/base.rbs +0 -12
  589. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  590. data/sig/temporalio/failure_converter.rbs +0 -5
  591. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  592. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  593. data/sig/temporalio/interceptor/chain.rbs +0 -24
  594. data/sig/temporalio/interceptor/client.rbs +0 -148
  595. data/sig/temporalio/interceptor.rbs +0 -6
  596. data/sig/temporalio/payload_codec/base.rbs +0 -12
  597. data/sig/temporalio/payload_converter/base.rbs +0 -12
  598. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  599. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  600. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  601. data/sig/temporalio/payload_converter/json.rbs +0 -9
  602. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  603. data/sig/temporalio/payload_converter.rbs +0 -5
  604. data/sig/temporalio/retry_policy.rbs +0 -25
  605. data/sig/temporalio/retry_state.rbs +0 -20
  606. data/sig/temporalio/runtime.rbs +0 -12
  607. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  608. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  609. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  610. data/sig/temporalio/testing.rbs +0 -35
  611. data/sig/temporalio/timeout_type.rbs +0 -15
  612. data/sig/temporalio/version.rbs +0 -3
  613. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  614. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  615. data/sig/temporalio/worker/reactor.rbs +0 -22
  616. data/sig/temporalio/worker/runner.rbs +0 -21
  617. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  618. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  619. data/sig/temporalio/worker.rbs +0 -46
  620. data/sig/temporalio/workflow/async.rbs +0 -9
  621. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  622. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  623. data/sig/temporalio/workflow/future.rbs +0 -40
  624. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  625. data/sig/temporalio/workflow/info.rbs +0 -55
  626. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  627. data/sig/temporalio.rbs +0 -2
  628. data/sig/thermite_patch.rbs +0 -15
@@ -1,435 +0,0 @@
1
- #![allow(clippy::large_enum_variant)]
2
-
3
- use super::{
4
- workflow_machines::MachineResponse, Cancellable, EventInfo, NewMachineWithCommand,
5
- OnEventWrapper, WFMachinesAdapter,
6
- };
7
- use crate::worker::workflow::{machines::HistEventData, WFMachinesError};
8
- use rustfsm::{fsm, MachineError, StateMachine, TransitionResult};
9
- use std::convert::TryFrom;
10
- use temporal_sdk_core_protos::{
11
- coresdk::{
12
- workflow_activation::FireTimer,
13
- workflow_commands::{CancelTimer, StartTimer},
14
- HistoryEventId,
15
- },
16
- temporal::api::{
17
- command::v1::Command,
18
- enums::v1::{CommandType, EventType},
19
- history::v1::{history_event, HistoryEvent, TimerFiredEventAttributes},
20
- },
21
- };
22
-
23
- fsm! {
24
- pub(super) name TimerMachine;
25
- command TimerMachineCommand;
26
- error WFMachinesError;
27
- shared_state SharedState;
28
-
29
- Created --(Schedule, on_schedule) --> StartCommandCreated;
30
-
31
- StartCommandCreated --(CommandStartTimer) --> StartCommandCreated;
32
- StartCommandCreated --(TimerStarted(HistoryEventId), on_timer_started) --> StartCommandRecorded;
33
- StartCommandCreated --(Cancel, shared on_cancel) --> Canceled;
34
-
35
- StartCommandRecorded --(TimerFired(TimerFiredEventAttributes), shared on_timer_fired) --> Fired;
36
- StartCommandRecorded --(Cancel, shared on_cancel) --> CancelTimerCommandCreated;
37
-
38
- CancelTimerCommandCreated --(Cancel) --> CancelTimerCommandCreated;
39
- CancelTimerCommandCreated
40
- --(CommandCancelTimer, on_command_cancel_timer) --> CancelTimerCommandSent;
41
-
42
- CancelTimerCommandSent --(TimerCanceled) --> Canceled;
43
-
44
- // Ignore any spurious cancellations after resolution
45
- Canceled --(Cancel) --> Canceled;
46
- Fired --(Cancel) --> Fired;
47
- }
48
-
49
- #[derive(Debug, derive_more::Display)]
50
- pub(super) enum TimerMachineCommand {
51
- Complete,
52
- IssueCancelCmd(Command),
53
- // We don't issue activations for timer cancellations. Lang SDK is expected to cancel
54
- // it's own timers when user calls cancel, and they cannot be cancelled by any other
55
- // means.
56
- }
57
-
58
- #[derive(Default, Clone)]
59
- pub(super) struct SharedState {
60
- attrs: StartTimer,
61
- cancelled_before_sent: bool,
62
- }
63
-
64
- /// Creates a new, scheduled, timer as a [CancellableCommand]
65
- pub(super) fn new_timer(attribs: StartTimer) -> NewMachineWithCommand {
66
- let (timer, add_cmd) = TimerMachine::new_scheduled(attribs);
67
- NewMachineWithCommand {
68
- command: add_cmd,
69
- machine: timer.into(),
70
- }
71
- }
72
-
73
- impl TimerMachine {
74
- /// Create a new timer and immediately schedule it
75
- fn new_scheduled(attribs: StartTimer) -> (Self, Command) {
76
- let mut s = Self::new(attribs);
77
- OnEventWrapper::on_event_mut(&mut s, TimerMachineEvents::Schedule)
78
- .expect("Scheduling timers doesn't fail");
79
- let cmd = Command {
80
- command_type: CommandType::StartTimer as i32,
81
- attributes: Some(s.shared_state().attrs.clone().into()),
82
- };
83
- (s, cmd)
84
- }
85
-
86
- fn new(attribs: StartTimer) -> Self {
87
- Self {
88
- state: Created {}.into(),
89
- shared_state: SharedState {
90
- attrs: attribs,
91
- cancelled_before_sent: false,
92
- },
93
- }
94
- }
95
- }
96
-
97
- impl TryFrom<HistEventData> for TimerMachineEvents {
98
- type Error = WFMachinesError;
99
-
100
- fn try_from(e: HistEventData) -> Result<Self, Self::Error> {
101
- let e = e.event;
102
- Ok(match e.event_type() {
103
- EventType::TimerStarted => Self::TimerStarted(e.event_id),
104
- EventType::TimerCanceled => Self::TimerCanceled,
105
- EventType::TimerFired => {
106
- if let Some(history_event::Attributes::TimerFiredEventAttributes(attrs)) =
107
- e.attributes
108
- {
109
- Self::TimerFired(attrs)
110
- } else {
111
- return Err(WFMachinesError::Fatal(format!(
112
- "Timer fired attribs were unset: {e}"
113
- )));
114
- }
115
- }
116
- _ => {
117
- return Err(WFMachinesError::Nondeterminism(format!(
118
- "Timer machine does not handle this event: {e}"
119
- )))
120
- }
121
- })
122
- }
123
- }
124
-
125
- impl TryFrom<CommandType> for TimerMachineEvents {
126
- type Error = ();
127
-
128
- fn try_from(c: CommandType) -> Result<Self, Self::Error> {
129
- Ok(match c {
130
- CommandType::StartTimer => Self::CommandStartTimer,
131
- CommandType::CancelTimer => Self::CommandCancelTimer,
132
- _ => return Err(()),
133
- })
134
- }
135
- }
136
-
137
- #[derive(Default, Clone)]
138
- pub(super) struct Created {}
139
-
140
- impl Created {
141
- pub(super) fn on_schedule(self) -> TimerMachineTransition<StartCommandCreated> {
142
- TransitionResult::default()
143
- }
144
- }
145
-
146
- #[derive(Default, Clone)]
147
- pub(super) struct CancelTimerCommandCreated {}
148
-
149
- impl CancelTimerCommandCreated {
150
- pub(super) fn on_command_cancel_timer(self) -> TimerMachineTransition<CancelTimerCommandSent> {
151
- TransitionResult::ok(vec![], CancelTimerCommandSent::default())
152
- }
153
- }
154
-
155
- #[derive(Default, Clone)]
156
- pub(super) struct CancelTimerCommandSent {}
157
-
158
- #[derive(Default, Clone)]
159
- pub(super) struct Canceled {}
160
-
161
- impl From<CancelTimerCommandSent> for Canceled {
162
- fn from(_: CancelTimerCommandSent) -> Self {
163
- Self::default()
164
- }
165
- }
166
-
167
- #[derive(Default, Clone)]
168
- pub(super) struct Fired {}
169
-
170
- #[derive(Default, Clone)]
171
- pub(super) struct StartCommandCreated {}
172
-
173
- impl StartCommandCreated {
174
- pub(super) fn on_timer_started(
175
- self,
176
- _id: HistoryEventId,
177
- ) -> TimerMachineTransition<StartCommandRecorded> {
178
- TransitionResult::default()
179
- }
180
-
181
- pub(super) fn on_cancel(self, dat: SharedState) -> TimerMachineTransition<Canceled> {
182
- TransitionResult::ok_shared(
183
- vec![],
184
- Canceled::default(),
185
- SharedState {
186
- cancelled_before_sent: true,
187
- ..dat
188
- },
189
- )
190
- }
191
- }
192
-
193
- #[derive(Default, Clone)]
194
- pub(super) struct StartCommandRecorded {}
195
-
196
- impl StartCommandRecorded {
197
- pub(super) fn on_timer_fired(
198
- self,
199
- dat: SharedState,
200
- attrs: TimerFiredEventAttributes,
201
- ) -> TimerMachineTransition<Fired> {
202
- if dat.attrs.seq.to_string() == attrs.timer_id {
203
- TransitionResult::ok(vec![TimerMachineCommand::Complete], Fired::default())
204
- } else {
205
- TransitionResult::Err(WFMachinesError::Fatal(format!(
206
- "Timer fired event did not have expected timer id {}, it was {}!",
207
- dat.attrs.seq, attrs.timer_id
208
- )))
209
- }
210
- }
211
-
212
- pub(super) fn on_cancel(
213
- self,
214
- dat: SharedState,
215
- ) -> TimerMachineTransition<CancelTimerCommandCreated> {
216
- let cmd = Command {
217
- command_type: CommandType::CancelTimer as i32,
218
- attributes: Some(CancelTimer { seq: dat.attrs.seq }.into()),
219
- };
220
- TransitionResult::ok(
221
- vec![TimerMachineCommand::IssueCancelCmd(cmd)],
222
- CancelTimerCommandCreated::default(),
223
- )
224
- }
225
- }
226
-
227
- impl WFMachinesAdapter for TimerMachine {
228
- fn adapt_response(
229
- &self,
230
- my_command: TimerMachineCommand,
231
- _event_info: Option<EventInfo>,
232
- ) -> Result<Vec<MachineResponse>, WFMachinesError> {
233
- Ok(match my_command {
234
- // Fire the completion
235
- TimerMachineCommand::Complete => vec![FireTimer {
236
- seq: self.shared_state.attrs.seq,
237
- }
238
- .into()],
239
- TimerMachineCommand::IssueCancelCmd(c) => vec![MachineResponse::IssueNewCommand(c)],
240
- })
241
- }
242
-
243
- fn matches_event(&self, event: &HistoryEvent) -> bool {
244
- matches!(
245
- event.event_type(),
246
- EventType::TimerStarted | EventType::TimerCanceled | EventType::TimerFired
247
- )
248
- }
249
- }
250
-
251
- impl Cancellable for TimerMachine {
252
- fn cancel(&mut self) -> Result<Vec<MachineResponse>, MachineError<Self::Error>> {
253
- Ok(
254
- match OnEventWrapper::on_event_mut(self, TimerMachineEvents::Cancel)?.pop() {
255
- Some(TimerMachineCommand::IssueCancelCmd(cmd)) => {
256
- vec![MachineResponse::IssueNewCommand(cmd)]
257
- }
258
- None => vec![],
259
- x => panic!("Invalid cancel event response {x:?}"),
260
- },
261
- )
262
- }
263
-
264
- fn was_cancelled_before_sent_to_server(&self) -> bool {
265
- self.shared_state().cancelled_before_sent
266
- }
267
- }
268
-
269
- #[cfg(test)]
270
- mod test {
271
- use super::*;
272
- use crate::{
273
- replay::TestHistoryBuilder, test_help::canned_histories, worker::workflow::ManagedWFFunc,
274
- };
275
- use rstest::{fixture, rstest};
276
- use std::{mem::discriminant, time::Duration};
277
- use temporal_sdk::{CancellableFuture, WfContext, WorkflowFunction};
278
-
279
- #[fixture]
280
- fn happy_wfm() -> ManagedWFFunc {
281
- /*
282
- We have two versions of this test, one which processes the history in two calls, and one
283
- which replays all of it in one go. Both versions must produce the same two activations.
284
- However, The former will iterate the machines three times and the latter will iterate
285
- them twice.
286
-
287
- There are two workflow tasks, so it seems we should iterate two times, but the reason
288
- for the extra iteration in the incremental version is that we need to "wait" for the
289
- timer to fire. In the all-in-one-go test, the timer is created and resolved in the same
290
- task, hence no extra loop.
291
- */
292
- let func = WorkflowFunction::new(|command_sink: WfContext| async move {
293
- command_sink.timer(Duration::from_secs(5)).await;
294
- Ok(().into())
295
- });
296
-
297
- let t = canned_histories::single_timer("1");
298
- assert_eq!(2, t.get_full_history_info().unwrap().wf_task_count());
299
- ManagedWFFunc::new(t, func, vec![])
300
- }
301
-
302
- #[rstest]
303
- #[tokio::test]
304
- async fn test_fire_happy_path_inc(mut happy_wfm: ManagedWFFunc) {
305
- happy_wfm.get_next_activation().await.unwrap();
306
- let commands = happy_wfm.get_server_commands().commands;
307
- assert_eq!(commands.len(), 1);
308
- assert_eq!(commands[0].command_type, CommandType::StartTimer as i32);
309
-
310
- happy_wfm.get_next_activation().await.unwrap();
311
- let commands = happy_wfm.get_server_commands().commands;
312
- assert_eq!(commands.len(), 1);
313
- assert_eq!(commands.len(), 1);
314
- assert_eq!(
315
- commands[0].command_type,
316
- CommandType::CompleteWorkflowExecution as i32
317
- );
318
- happy_wfm.shutdown().await.unwrap();
319
- }
320
-
321
- #[rstest]
322
- #[tokio::test]
323
- async fn test_fire_happy_path_full(mut happy_wfm: ManagedWFFunc) {
324
- happy_wfm.process_all_activations().await.unwrap();
325
- let commands = happy_wfm.get_server_commands().commands;
326
- assert_eq!(commands.len(), 1);
327
- assert_eq!(
328
- commands[0].command_type,
329
- CommandType::CompleteWorkflowExecution as i32
330
- );
331
- happy_wfm.shutdown().await.unwrap();
332
- }
333
-
334
- #[tokio::test]
335
- async fn mismatched_timer_ids_errors() {
336
- let func = WorkflowFunction::new(|command_sink: WfContext| async move {
337
- command_sink.timer(Duration::from_secs(5)).await;
338
- Ok(().into())
339
- });
340
-
341
- let t = canned_histories::single_timer("badid");
342
- let mut wfm = ManagedWFFunc::new(t, func, vec![]);
343
- let act = wfm.process_all_activations().await;
344
- assert!(act
345
- .unwrap_err()
346
- .to_string()
347
- .contains("Timer fired event did not have expected timer id 1"));
348
- wfm.shutdown().await.unwrap();
349
- }
350
-
351
- #[fixture]
352
- fn cancellation_setup() -> ManagedWFFunc {
353
- let func = WorkflowFunction::new(|ctx: WfContext| async move {
354
- let cancel_timer_fut = ctx.timer(Duration::from_secs(500));
355
- ctx.timer(Duration::from_secs(5)).await;
356
- // Cancel the first timer after having waited on the second
357
- cancel_timer_fut.cancel(&ctx);
358
- cancel_timer_fut.await;
359
- Ok(().into())
360
- });
361
-
362
- let t = canned_histories::cancel_timer("2", "1");
363
- ManagedWFFunc::new(t, func, vec![])
364
- }
365
-
366
- #[rstest]
367
- #[tokio::test]
368
- async fn incremental_cancellation(#[from(cancellation_setup)] mut wfm: ManagedWFFunc) {
369
- wfm.get_next_activation().await.unwrap();
370
- let commands = wfm.get_server_commands().commands;
371
- assert_eq!(commands.len(), 2);
372
- assert_eq!(commands[0].command_type, CommandType::StartTimer as i32);
373
- assert_eq!(commands[1].command_type, CommandType::StartTimer as i32);
374
-
375
- wfm.get_next_activation().await.unwrap();
376
- let commands = wfm.get_server_commands().commands;
377
- assert_eq!(commands.len(), 2);
378
- assert_eq!(commands[0].command_type, CommandType::CancelTimer as i32);
379
- assert_eq!(
380
- commands[1].command_type,
381
- CommandType::CompleteWorkflowExecution as i32
382
- );
383
-
384
- assert!(wfm.get_next_activation().await.unwrap().jobs.is_empty());
385
- let commands = wfm.get_server_commands().commands;
386
- // There should be no commands - the wf completed at the same time the timer was cancelled
387
- assert_eq!(commands.len(), 0);
388
- wfm.shutdown().await.unwrap();
389
- }
390
-
391
- #[rstest]
392
- #[tokio::test]
393
- async fn full_cancellation(#[from(cancellation_setup)] mut wfm: ManagedWFFunc) {
394
- wfm.process_all_activations().await.unwrap();
395
- let commands = wfm.get_server_commands().commands;
396
- // There should be no commands - the wf completed at the same time the timer was cancelled
397
- assert_eq!(commands.len(), 0);
398
- wfm.shutdown().await.unwrap();
399
- }
400
-
401
- #[tokio::test]
402
- async fn cancel_before_sent_to_server() {
403
- let func = WorkflowFunction::new(|ctx: WfContext| async move {
404
- let cancel_timer_fut = ctx.timer(Duration::from_secs(500));
405
- // Immediately cancel the timer
406
- cancel_timer_fut.cancel(&ctx);
407
- cancel_timer_fut.await;
408
- Ok(().into())
409
- });
410
-
411
- let mut t = TestHistoryBuilder::default();
412
- t.add_by_type(EventType::WorkflowExecutionStarted);
413
- t.add_full_wf_task();
414
- t.add_workflow_execution_completed();
415
- let mut wfm = ManagedWFFunc::new(t, func, vec![]);
416
-
417
- wfm.process_all_activations().await.unwrap();
418
- let commands = wfm.get_server_commands().commands;
419
- assert_eq!(commands.len(), 0);
420
- wfm.shutdown().await.unwrap();
421
- }
422
-
423
- #[test]
424
- fn cancels_ignored_terminal() {
425
- for state in [TimerMachineState::Canceled(Canceled {}), Fired {}.into()] {
426
- let mut s = TimerMachine {
427
- state: state.clone(),
428
- shared_state: Default::default(),
429
- };
430
- let cmds = s.cancel().unwrap();
431
- assert_eq!(cmds.len(), 0);
432
- assert_eq!(discriminant(&state), discriminant(&s.state));
433
- }
434
- }
435
- }
@@ -1,175 +0,0 @@
1
- //! Look, I'm not happy about the code in here, and you shouldn't be either. This is all an awful,
2
- //! dirty hack to work around the fact that there's no such thing as "run this after all unit tests"
3
- //! in stable Rust. Don't do the things in here. They're bad. This is test only code, and should
4
- //! never ever be removed from behind `#[cfg(test)]` compilation.
5
-
6
- use dashmap::{mapref::entry::Entry, DashMap, DashSet};
7
- use std::{
8
- path::PathBuf,
9
- sync::{
10
- mpsc::{sync_channel, SyncSender},
11
- Mutex,
12
- },
13
- thread::JoinHandle,
14
- time::Duration,
15
- };
16
-
17
- // During test we want to know about which transitions we've covered in state machines
18
- lazy_static::lazy_static! {
19
- static ref COVERED_TRANSITIONS: DashMap<String, DashSet<CoveredTransition>>
20
- = DashMap::new();
21
- static ref COVERAGE_SENDER: SyncSender<(String, CoveredTransition)> =
22
- spawn_save_coverage_at_end();
23
- static ref THREAD_HANDLE: Mutex<Option<JoinHandle<()>>> = Mutex::new(None);
24
- }
25
-
26
- #[derive(Eq, PartialEq, Hash, Debug)]
27
- struct CoveredTransition {
28
- from_state: String,
29
- to_state: String,
30
- event: String,
31
- }
32
-
33
- pub fn add_coverage(machine_name: String, from_state: String, to_state: String, event: String) {
34
- let ct = CoveredTransition {
35
- from_state,
36
- to_state,
37
- event,
38
- };
39
- let _ = COVERAGE_SENDER.send((machine_name, ct));
40
- }
41
-
42
- fn spawn_save_coverage_at_end() -> SyncSender<(String, CoveredTransition)> {
43
- let (tx, rx) = sync_channel(1000);
44
- let handle = std::thread::spawn(move || {
45
- // Assume that, if the entire program hasn't run a state machine transition in the
46
- // last second that we are probably done running all the tests. This is to avoid
47
- // needing to instrument every single test.
48
- while let Ok((machine_name, ct)) = rx.recv_timeout(Duration::from_secs(1)) {
49
- match COVERED_TRANSITIONS.entry(machine_name) {
50
- Entry::Occupied(o) => {
51
- o.get().insert(ct);
52
- }
53
- Entry::Vacant(v) => {
54
- v.insert({
55
- let ds = DashSet::new();
56
- ds.insert(ct);
57
- ds
58
- });
59
- }
60
- }
61
- }
62
- });
63
- *THREAD_HANDLE.lock().unwrap() = Some(handle);
64
- tx
65
- }
66
-
67
- #[cfg(test)]
68
- mod machine_coverage_report {
69
- use super::*;
70
- use crate::worker::workflow::machines::{
71
- activity_state_machine::ActivityMachine,
72
- cancel_external_state_machine::CancelExternalMachine,
73
- cancel_workflow_state_machine::CancelWorkflowMachine,
74
- child_workflow_state_machine::ChildWorkflowMachine,
75
- complete_workflow_state_machine::CompleteWorkflowMachine,
76
- continue_as_new_workflow_state_machine::ContinueAsNewWorkflowMachine,
77
- fail_workflow_state_machine::FailWorkflowMachine,
78
- local_activity_state_machine::LocalActivityMachine,
79
- modify_workflow_properties_state_machine::ModifyWorkflowPropertiesMachine,
80
- patch_state_machine::PatchMachine, signal_external_state_machine::SignalExternalMachine,
81
- timer_state_machine::TimerMachine,
82
- upsert_search_attributes_state_machine::UpsertSearchAttributesMachine,
83
- workflow_task_state_machine::WorkflowTaskMachine,
84
- };
85
- use rustfsm::StateMachine;
86
- use std::{fs::File, io::Write};
87
-
88
- // This "test" needs to exist so that we have a way to join the spawned thread. Otherwise
89
- // it'll just get abandoned.
90
- #[test]
91
- // Use `cargo test -- --include-ignored` to run this. We don't want to bother with it by default
92
- // because it takes a minimum of a second.
93
- #[ignore]
94
- fn reporter() {
95
- // Make sure thread handle exists
96
- let _ = &*COVERAGE_SENDER;
97
- // Join it
98
- THREAD_HANDLE
99
- .lock()
100
- .unwrap()
101
- .take()
102
- .unwrap()
103
- .join()
104
- .unwrap();
105
-
106
- // Gather visualizations for all machines
107
- let mut activity = ActivityMachine::visualizer().to_owned();
108
- let mut timer = TimerMachine::visualizer().to_owned();
109
- let mut child_wf = ChildWorkflowMachine::visualizer().to_owned();
110
- let mut complete_wf = CompleteWorkflowMachine::visualizer().to_owned();
111
- let mut wf_task = WorkflowTaskMachine::visualizer().to_owned();
112
- let mut fail_wf = FailWorkflowMachine::visualizer().to_owned();
113
- let mut cont_as_new = ContinueAsNewWorkflowMachine::visualizer().to_owned();
114
- let mut cancel_wf = CancelWorkflowMachine::visualizer().to_owned();
115
- let mut version = PatchMachine::visualizer().to_owned();
116
- let mut signal_ext = SignalExternalMachine::visualizer().to_owned();
117
- let mut cancel_ext = CancelExternalMachine::visualizer().to_owned();
118
- let mut la_mach = LocalActivityMachine::visualizer().to_owned();
119
- let mut upsert_search_attr = UpsertSearchAttributesMachine::visualizer().to_owned();
120
- let mut modify_wf_props = ModifyWorkflowPropertiesMachine::visualizer().to_owned();
121
-
122
- // This isn't at all efficient but doesn't need to be.
123
- // Replace transitions in the vizzes with green color if they are covered.
124
- for item in COVERED_TRANSITIONS.iter() {
125
- let (machine, coverage) = item.pair();
126
- match machine.as_ref() {
127
- m @ "ActivityMachine" => cover_transitions(m, &mut activity, coverage),
128
- m @ "TimerMachine" => cover_transitions(m, &mut timer, coverage),
129
- m @ "ChildWorkflowMachine" => cover_transitions(m, &mut child_wf, coverage),
130
- m @ "CompleteWorkflowMachine" => cover_transitions(m, &mut complete_wf, coverage),
131
- m @ "WorkflowTaskMachine" => cover_transitions(m, &mut wf_task, coverage),
132
- m @ "FailWorkflowMachine" => cover_transitions(m, &mut fail_wf, coverage),
133
- m @ "ContinueAsNewWorkflowMachine" => {
134
- cover_transitions(m, &mut cont_as_new, coverage);
135
- }
136
- m @ "CancelWorkflowMachine" => cover_transitions(m, &mut cancel_wf, coverage),
137
- m @ "PatchMachine" => cover_transitions(m, &mut version, coverage),
138
- m @ "SignalExternalMachine" => cover_transitions(m, &mut signal_ext, coverage),
139
- m @ "CancelExternalMachine" => cover_transitions(m, &mut cancel_ext, coverage),
140
- m @ "LocalActivityMachine" => cover_transitions(m, &mut la_mach, coverage),
141
- m @ "UpsertSearchAttributesMachine" => {
142
- cover_transitions(m, &mut upsert_search_attr, coverage)
143
- }
144
- m @ "ModifyWorkflowPropertiesMachine" => {
145
- cover_transitions(m, &mut modify_wf_props, coverage)
146
- }
147
- m => panic!("Unknown machine {m}"),
148
- }
149
- }
150
- }
151
-
152
- fn cover_transitions(machine: &str, viz: &mut String, cov: &DashSet<CoveredTransition>) {
153
- for trans in cov.iter() {
154
- let find_line = format!(
155
- "{} --> {}: {}",
156
- trans.from_state, trans.to_state, trans.event
157
- );
158
- if let Some(start) = viz.find(&find_line) {
159
- let new_line = format!(
160
- "{} -[#blue]-> {}: {}",
161
- trans.from_state, trans.to_state, trans.event
162
- );
163
- viz.replace_range(start..start + find_line.len(), &new_line);
164
- }
165
- }
166
-
167
- // Dump the updated viz to a file
168
- let mut d = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
169
- d.push("machine_coverage");
170
- std::fs::create_dir_all(&d).unwrap();
171
- d.push(format!("{machine}_Coverage.puml"));
172
- let mut file = File::create(d).unwrap();
173
- file.write_all(viz.as_bytes()).unwrap();
174
- }
175
- }