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,112 +1,383 @@
1
- require 'google/protobuf/well_known_types'
1
+ # frozen_string_literal: true
2
+
3
+ require 'delegate'
4
+ require 'temporalio/api'
5
+ require 'temporalio/api/testservice/v1/request_response'
2
6
  require 'temporalio/client'
3
- require 'temporalio/testing/time_skipping_interceptor'
7
+ require 'temporalio/client/connection/test_service'
8
+ require 'temporalio/client/workflow_handle'
9
+ require 'temporalio/converters'
10
+ require 'temporalio/internal/bridge/testing'
11
+ require 'temporalio/internal/proto_utils'
12
+ require 'temporalio/runtime'
13
+ require 'temporalio/version'
4
14
 
5
15
  module Temporalio
6
16
  module Testing
7
- # Workflow environment for testing workflows.
8
- #
9
- # Most developers will want to use the {Temporalio::Testing.start_time_skipping_environment} to
10
- # start a test server process that automatically skips time as needed. Alternatively,
11
- # {Temporalio::Testing.start_local_environment} may be used for a full, local Temporal server
12
- # with more features.
13
- #
14
- # @note Unless using the above mentioned methods with an explicit block, you will need to call
15
- # {#shutdown} after you're finished with this environment.
17
+ # Test environment with a Temporal server for running workflows and more.
16
18
  class WorkflowEnvironment
17
- # @return [Temporalio::Connection] A connection to this environment.
18
- attr_reader :connection
19
-
20
- # @return [String] A namespace for this environment.
21
- attr_reader :namespace
19
+ # @return [Client] Client for the server.
20
+ attr_reader :client
22
21
 
23
- # @api private
24
- def initialize(server, connection, namespace)
25
- @server = server
26
- @connection = connection
27
- @namespace = namespace
28
- end
29
-
30
- # A default client to be used with this environment.
22
+ # Start a local dev server. This is a full Temporal dev server from the CLI that by default downloaded to tmp if
23
+ # not already present. The dev server is run as a child process. All options that start with +dev_server_+ are for
24
+ # this specific implementation and therefore are not stable and may be changed as the underlying implementation
25
+ # changes.
31
26
  #
32
- # @return [Temporalio::Client] A default client.
33
- def client
34
- @client ||= begin
35
- # TODO: Add a workflow interceptor for interpreting assertion error
36
- interceptors = [TimeSkippingInterceptor.new(self)]
37
- Temporalio::Client.new(connection, namespace, interceptors: interceptors)
38
- end
27
+ # If a block is given it is passed the environment and the environment is shut down after. If a block is not
28
+ # given, the environment is returned and {shutdown} needs to be called manually.
29
+ #
30
+ # @param namespace [String] Namespace for the server.
31
+ # @param data_converter [Converters::DataConverter] Data converter for the client.
32
+ # @param interceptors [Array<Client::Interceptor>] Interceptors for the client.
33
+ # @param logger [Logger] Logger for the client.
34
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection condition
35
+ # for the client.
36
+ # @param ip [String] IP to bind to.
37
+ # @param port [Integer, nil] Port to bind on, or +nil+ for random.
38
+ # @param ui [Boolean] If +true+, also starts the UI.
39
+ # @param runtime [Runtime] Runtime for the server and client.
40
+ # @param dev_server_existing_path [String, nil] Existing CLI path to use instead of downloading and caching to
41
+ # tmp.
42
+ # @param dev_server_database_filename [String, nil] Persistent SQLite filename to use across local server runs.
43
+ # Default of +nil+ means in-memory only.
44
+ # @param dev_server_log_format [String] Log format for CLI dev server.
45
+ # @param dev_server_log_level [String] Log level for CLI dev server.
46
+ # @param dev_server_download_version [String] Version of dev server to download and cache.
47
+ # @param dev_server_download_dest_dir [String, nil] Where to download. Defaults to tmp.
48
+ # @param dev_server_extra_args [Array<String>] Any extra arguments for the CLI dev server.
49
+ #
50
+ # @yield [environment] If a block is given, it is called with the environment and upon complete the environment is
51
+ # shutdown.
52
+ # @yieldparam environment [WorkflowEnvironment] Environment that is shut down upon block completion.
53
+ #
54
+ # @return [WorkflowEnvironment, Object] Started local server environment with client if there was no block given,
55
+ # or block result if block was given.
56
+ def self.start_local(
57
+ namespace: 'default',
58
+ data_converter: Converters::DataConverter.default,
59
+ interceptors: [],
60
+ logger: Logger.new($stdout, level: Logger::WARN),
61
+ default_workflow_query_reject_condition: nil,
62
+ ip: '127.0.0.1',
63
+ port: nil,
64
+ ui: false, # rubocop:disable Naming/MethodParameterName
65
+ runtime: Runtime.default,
66
+ dev_server_existing_path: nil,
67
+ dev_server_database_filename: nil,
68
+ dev_server_log_format: 'pretty',
69
+ dev_server_log_level: 'warn',
70
+ dev_server_download_version: 'default',
71
+ dev_server_download_dest_dir: nil,
72
+ dev_server_extra_args: [],
73
+ &
74
+ )
75
+ server_options = Internal::Bridge::Testing::EphemeralServer::StartDevServerOptions.new(
76
+ existing_path: dev_server_existing_path,
77
+ sdk_name: 'sdk-ruby',
78
+ sdk_version: VERSION,
79
+ download_version: dev_server_download_version,
80
+ download_dest_dir: dev_server_download_dest_dir,
81
+ namespace:,
82
+ ip:,
83
+ port:,
84
+ database_filename: dev_server_database_filename,
85
+ ui:,
86
+ log_format: dev_server_log_format,
87
+ log_level: dev_server_log_level,
88
+ extra_args: dev_server_extra_args
89
+ )
90
+ _with_core_server(
91
+ core_server: Internal::Bridge::Testing::EphemeralServer.start_dev_server(
92
+ runtime._core_runtime, server_options
93
+ ),
94
+ namespace:,
95
+ data_converter:,
96
+ interceptors:,
97
+ logger:,
98
+ default_workflow_query_reject_condition:,
99
+ runtime:,
100
+ supports_time_skipping: false,
101
+ & # steep:ignore
102
+ )
39
103
  end
40
104
 
41
- # Sleep in this environment.
105
+ # Start a time-skipping test server. This server can skip time but may not have all of the Temporal features of
106
+ # the {start_local} form. By default, the server is downloaded to tmp if not already present. The test server is
107
+ # run as a child process. All options that start with +test_server_+ are for this specific implementation and
108
+ # therefore are not stable and may be changed as the underlying implementation changes.
42
109
  #
43
- # This awaits a regular {Kernel.sleep} in regular environments, or manually skips time in
44
- # time-skipping environments.
110
+ # If a block is given it is passed the environment and the environment is shut down after. If a block is not
111
+ # given, the environment is returned and {shutdown} needs to be called manually.
45
112
  #
46
- # @param duration [Integer] Amount of time to sleep.
47
- def sleep(duration)
48
- return Kernel.sleep(duration) unless supports_time_skipping?
49
-
50
- request = Temporalio::Api::TestService::V1::SleepRequest.new(
51
- duration: Google::Protobuf::Duration.new(seconds: duration),
113
+ # @param data_converter [Converters::DataConverter] Data converter for the client.
114
+ # @param interceptors [Array<Client::Interceptor>] Interceptors for the client.
115
+ # @param logger [Logger] Logger for the client.
116
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection condition
117
+ # for the client.
118
+ # @param port [Integer, nil] Port to bind on, or +nil+ for random.
119
+ # @param runtime [Runtime] Runtime for the server and client.
120
+ # @param test_server_existing_path [String, nil] Existing CLI path to use instead of downloading and caching to
121
+ # tmp.
122
+ # @param test_server_download_version [String] Version of test server to download and cache.
123
+ # @param test_server_download_dest_dir [String, nil] Where to download. Defaults to tmp.
124
+ # @param test_server_extra_args [Array<String>] Any extra arguments for the test server.
125
+ #
126
+ # @yield [environment] If a block is given, it is called with the environment and upon complete the environment is
127
+ # shutdown.
128
+ # @yieldparam environment [WorkflowEnvironment] Environment that is shut down upon block completion.
129
+ #
130
+ # @return [WorkflowEnvironment, Object] Started local server environment with client if there was no block given,
131
+ # or block result if block was given.
132
+ def self.start_time_skipping(
133
+ data_converter: Converters::DataConverter.default,
134
+ interceptors: [],
135
+ logger: Logger.new($stdout, level: Logger::WARN),
136
+ default_workflow_query_reject_condition: nil,
137
+ port: nil,
138
+ runtime: Runtime.default,
139
+ test_server_existing_path: nil,
140
+ test_server_download_version: 'default',
141
+ test_server_download_dest_dir: nil,
142
+ test_server_extra_args: [],
143
+ &
144
+ )
145
+ server_options = Internal::Bridge::Testing::EphemeralServer::StartTestServerOptions.new(
146
+ existing_path: test_server_existing_path,
147
+ sdk_name: 'sdk-ruby',
148
+ sdk_version: VERSION,
149
+ download_version: test_server_download_version,
150
+ download_dest_dir: test_server_download_dest_dir,
151
+ port:,
152
+ extra_args: test_server_extra_args
153
+ )
154
+ _with_core_server(
155
+ core_server: Internal::Bridge::Testing::EphemeralServer.start_test_server(
156
+ runtime._core_runtime, server_options
157
+ ),
158
+ namespace: 'default',
159
+ data_converter:,
160
+ interceptors:,
161
+ logger:,
162
+ default_workflow_query_reject_condition:,
163
+ runtime:,
164
+ supports_time_skipping: true,
165
+ & # steep:ignore
52
166
  )
53
- connection.test_service.unlock_time_skipping_with_sleep(request)
167
+ end
54
168
 
55
- nil
169
+ # @!visibility private
170
+ def self._with_core_server(
171
+ core_server:,
172
+ namespace:,
173
+ data_converter:,
174
+ interceptors:,
175
+ logger:,
176
+ default_workflow_query_reject_condition:,
177
+ runtime:,
178
+ supports_time_skipping:
179
+ )
180
+ # Try to connect, shutdown if we can't
181
+ begin
182
+ client = Client.connect(
183
+ core_server.target,
184
+ namespace,
185
+ data_converter:,
186
+ interceptors:,
187
+ logger:,
188
+ default_workflow_query_reject_condition:,
189
+ runtime:
190
+ )
191
+ server = Ephemeral.new(client, core_server, supports_time_skipping:)
192
+ rescue Exception # rubocop:disable Lint/RescueException
193
+ core_server.shutdown
194
+ raise
195
+ end
196
+ if block_given?
197
+ begin
198
+ yield server
199
+ ensure
200
+ server.shutdown
201
+ end
202
+ else
203
+ server
204
+ end
56
205
  end
57
206
 
58
- # Get the current time known to this environment.
59
- #
60
- # For non-time-skipping environments this is simply the system time. For time-skipping
61
- # environments this is whatever time has been skipped to.
207
+ # Create workflow environment to an existing server with the given client.
62
208
  #
63
- # @return [Time]
64
- def current_time
65
- return Time.now unless supports_time_skipping?
209
+ # @param client [Client] Client to existing server.
210
+ def initialize(client)
211
+ @client = client
212
+ end
66
213
 
67
- connection.test_service.get_current_time&.time&.to_time
214
+ # Shutdown this workflow environment.
215
+ def shutdown
216
+ # Do nothing by default
68
217
  end
69
218
 
70
- # Whether this environment supports time skipping.
71
- #
72
- # @return [Boolean]
219
+ # @return [Boolean] Whether this environment supports time skipping.
73
220
  def supports_time_skipping?
74
- server.has_test_service?
221
+ false
75
222
  end
76
223
 
77
- # Shut down this environment.
78
- def shutdown
79
- server.shutdown
224
+ # Advanced time.
225
+ #
226
+ # If this server supports time skipping, this will immediately advance time and return. If it does not, this is
227
+ # a standard {::sleep}.
228
+ #
229
+ # @param duration [Float] Duration seconds.
230
+ def sleep(duration)
231
+ Kernel.sleep(duration)
80
232
  end
81
233
 
82
- # Unlock time skipping.
234
+ # Current time of the environment.
83
235
  #
84
- # This will have no effect in an environment that does not support time-skipping (e.g.
85
- # Temporalite).
236
+ # If this server supports time skipping, this will be the current time as known to the environment. If it does
237
+ # not, this is a standard {::Time.now}.
86
238
  #
87
- # @yield A block to be called once time skipping has been unlocked.
239
+ # @return [Time] Current time.
240
+ def current_time
241
+ Time.now
242
+ end
243
+
244
+ # Run a block with automatic time skipping disabled. This just runs the block for environments that don't support
245
+ # time skipping.
88
246
  #
89
- # @return [any] The return value of the block.
90
- def with_time_skipping
91
- return yield unless supports_time_skipping?
247
+ # @yield Block to run.
248
+ # @return [Object] Result of the block.
249
+ def auto_time_skipping_disabled(&)
250
+ raise 'Block required' unless block_given?
92
251
 
93
- begin
94
- # Unlock to start time skipping, lock again to stop it
95
- connection.test_service.unlock_time_skipping(
96
- Temporalio::Api::TestService::V1::UnlockTimeSkippingRequest.new,
252
+ yield
253
+ end
254
+
255
+ # @!visibility private
256
+ class Ephemeral < WorkflowEnvironment
257
+ def initialize(client, core_server, supports_time_skipping:)
258
+ # Add our interceptor at the end of the existing interceptors that skips time
259
+ client_options = client.options.with(
260
+ interceptors: client.options.interceptors + [TimeSkippingClientInterceptor.new(self)]
97
261
  )
262
+ client = Client.new(**client_options.to_h) # steep:ignore
263
+ super(client)
264
+
265
+ @auto_time_skipping = true
266
+ @core_server = core_server
267
+ @test_service = Client::Connection::TestService.new(client.connection) if supports_time_skipping
268
+ end
269
+
270
+ # @!visibility private
271
+ def shutdown
272
+ @core_server.shutdown
273
+ end
274
+
275
+ # @!visibility private
276
+ def supports_time_skipping?
277
+ !@test_service.nil?
278
+ end
98
279
 
99
- yield
100
- ensure
101
- connection.test_service.lock_time_skipping(
102
- Temporalio::Api::TestService::V1::LockTimeSkippingRequest.new,
280
+ # @!visibility private
281
+ def sleep(duration)
282
+ return super unless supports_time_skipping?
283
+
284
+ @test_service.unlock_time_skipping_with_sleep(
285
+ Api::TestService::V1::SleepRequest.new(duration: Internal::ProtoUtils.seconds_to_duration(duration))
103
286
  )
104
287
  end
288
+
289
+ # @!visibility private
290
+ def current_time
291
+ return super unless supports_time_skipping?
292
+
293
+ resp = @test_service.get_current_time(Google::Protobuf::Empty.new)
294
+ Internal::ProtoUtils.timestamp_to_time(resp.time) or raise 'Time missing'
295
+ end
296
+
297
+ # @!visibility private
298
+ def auto_time_skipping_disabled(&)
299
+ raise 'Block required' unless block_given?
300
+ return super unless supports_time_skipping?
301
+
302
+ already_disabled = @auto_time_skipping
303
+ @auto_time_skipping = false
304
+ begin
305
+ yield
306
+ ensure
307
+ @auto_time_skipping = true unless already_disabled
308
+ end
309
+ end
310
+
311
+ # @!visibility private
312
+ def time_skipping_unlocked(&)
313
+ # If disabled or unsupported, no locking/unlocking, just run and return
314
+ return yield if !supports_time_skipping? || !@auto_time_skipping
315
+
316
+ # Unlock to start time skipping, lock again to stop it
317
+ @test_service.unlock_time_skipping(Api::TestService::V1::UnlockTimeSkippingRequest.new)
318
+ user_code_success = false
319
+ begin
320
+ result = yield
321
+ user_code_success = true
322
+ result
323
+ ensure
324
+ # Lock it back
325
+ begin
326
+ @test_service.lock_time_skipping(Api::TestService::V1::LockTimeSkippingRequest.new)
327
+ rescue StandardError => e
328
+ # Re-raise if user code succeeded, otherwise swallow
329
+ raise if user_code_success
330
+
331
+ client.options.logger.error('Failed locking time skipping after error')
332
+ client.options.logger.error(e)
333
+ end
334
+ end
335
+ end
105
336
  end
106
337
 
107
- private
338
+ private_constant :Ephemeral
339
+
340
+ # @!visibility private
341
+ class TimeSkippingClientInterceptor
342
+ include Client::Interceptor
343
+
344
+ def initialize(env)
345
+ @env = env
346
+ end
347
+
348
+ # @!visibility private
349
+ def intercept_client(next_interceptor)
350
+ Outbound.new(next_interceptor, @env)
351
+ end
352
+
353
+ # @!visibility private
354
+ class Outbound < Client::Interceptor::Outbound
355
+ def initialize(next_interceptor, env)
356
+ super(next_interceptor)
357
+ @env = env
358
+ end
359
+
360
+ # @!visibility private
361
+ def start_workflow(input)
362
+ TimeSkippingWorkflowHandle.new(super, @env)
363
+ end
364
+ end
365
+
366
+ # @!visibility private
367
+ class TimeSkippingWorkflowHandle < SimpleDelegator
368
+ def initialize(handle, env)
369
+ super(handle) # steep:ignore
370
+ @env = env
371
+ end
372
+
373
+ # @!visibility private
374
+ def result(follow_runs: true, rpc_options: nil)
375
+ @env.time_skipping_unlocked { super(follow_runs:, rpc_options:) }
376
+ end
377
+ end
378
+ end
108
379
 
109
- attr_reader :server
380
+ private_constant :TimeSkippingClientInterceptor
110
381
  end
111
382
  end
112
383
  end
@@ -1,175 +1,10 @@
1
- require 'temporalio/bridge'
2
- require 'temporalio/connection'
3
- require 'temporalio/runtime'
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/testing/activity_environment'
4
4
  require 'temporalio/testing/workflow_environment'
5
- require 'temporalio/version'
6
5
 
7
6
  module Temporalio
7
+ # Module for all testing environments.
8
8
  module Testing
9
- DEFAULT_NAMESPACE = 'default'.freeze
10
-
11
- class << self
12
- # Start a full Temporal server locally, downloading if necessary.
13
- #
14
- # This environment is good for testing full server capabilities, but does not support time
15
- # skipping like {.start_time_skipping} does.
16
- # {Temporalio::Testing::WorkflowEnvironment#supports_time_skipping} will always return `false`
17
- # for this environment. {Temporalio::Testing::WorkflowEnvironment#sleep} will sleep the actual
18
- # amount of time and {Temporalio::Testing::WorkflowEnvironment#get_current_time}` will return
19
- # the current time.
20
- #
21
- # Internally, this uses [Temporalite](https://github.com/temporalio/temporalite). Which is a
22
- # self-contained binary for Temporal using Sqlite persistence. This will download Temporalite
23
- # to a temporary directory by default if it has not already been downloaded before and
24
- # `:existing_path` is not set.
25
- #
26
- # In the future, the Temporalite implementation may be changed to another implementation.
27
- # Therefore, all `temporalite_` prefixed parameters are Temporalite specific and may not apply
28
- # to newer versions.
29
- #
30
- # @param namespace [String] Namespace name to use for this environment.
31
- # @param ip [String] IP address to bind to, or 127.0.0.1 by default.
32
- # @param port [Integer] Port number to bind to, or an OS-provided port by default.
33
- # @param download_dir [String] Directory to download binary to if a download is needed. If
34
- # unset, this is the system's temporary directory.
35
- # @param ui [Boolean] If `true`, will start a UI in Temporalite.
36
- # @param temporalite_existing_path [String] Existing path to the Temporalite binary. If
37
- # present, no download will be attempted to fetch the binary.
38
- # @param temporalite_database_filename [String] Path to the Sqlite database to use for
39
- # Temporalite. Unset default means only in-memory Sqlite will be used.
40
- # @param temporalite_log_format [String] Log format for Temporalite.
41
- # @param temporalite_log_level [String] Log level to use for Temporalite.
42
- # @param temporalite_download_version [String] Specific Temporalite version to download.
43
- # Defaults to `default` which downloads the version known to work best with this SDK.
44
- # @param temporalite_extra_args [Array<String>] Extra arguments for the Temporalite binary.
45
- #
46
- # @yield Optionally you can provide a block which will ensure that the environment has been
47
- # shut down after. The newly created {Temporalio::Testing::WorkflowEnvironment} will be
48
- # passed into the block as a single argument. Alternatively you will need to call
49
- # {Temporalio::Testing::WorkflowEnvironment#shutdown} explicitly after you're done with it.
50
- #
51
- # @return [Temporalio::Testing::WorkflowEnvironment] The newly started Temporalite workflow
52
- # environment.
53
- def start_local_environment(
54
- namespace: DEFAULT_NAMESPACE,
55
- ip: '127.0.0.1',
56
- port: nil,
57
- download_dir: nil,
58
- ui: false,
59
- temporalite_existing_path: nil,
60
- temporalite_database_filename: nil,
61
- temporalite_log_format: 'pretty',
62
- temporalite_log_level: 'warn',
63
- temporalite_download_version: 'default',
64
- temporalite_extra_args: [],
65
- &block
66
- )
67
- # TODO: Sync with the SDK's logger level when implemented
68
- runtime = Temporalio::Runtime.instance
69
- server = Temporalio::Bridge::TestServer.start_temporalite(
70
- runtime.core_runtime,
71
- temporalite_existing_path,
72
- 'sdk-ruby',
73
- Temporalio::VERSION,
74
- temporalite_download_version,
75
- download_dir,
76
- namespace,
77
- ip,
78
- port,
79
- temporalite_database_filename,
80
- ui,
81
- temporalite_log_format,
82
- temporalite_log_level,
83
- temporalite_extra_args,
84
- )
85
- env = init_workflow_environment_for(server, namespace)
86
-
87
- return env unless block
88
-
89
- run_server(server, env, &block)
90
- end
91
-
92
- # Start a time skipping workflow environment.
93
- #
94
- # Time can be manually skipped forward using {Temporalio::Testing::WorkflowEnvironment#sleep}.
95
- # The currently known time can be obtained via
96
- # {Temporalio::Testing::WorkflowEnvironment#get_current_time}.
97
- #
98
- # @note Auto time skipping is not yet implemented.
99
- #
100
- # Internally, this environment lazily downloads a test-server binary for the current OS/arch
101
- # into the temp directory if it is not already there. Then the executable is started and will
102
- # be killed when {Temporalio::Testing::WorkflowEnvironment#shutdown} is called (which is
103
- # implicitly done if a block is provided to this method).
104
- #
105
- # Users can reuse this environment for testing multiple independent workflows, but not
106
- # concurrently. Time skipping, which is automatically done when awaiting a workflow result
107
- # (pending implementation) and manually done on
108
- # {Temporalio::Testing::WorkflowEnvironment#sleep}, is global to the environment, not to the
109
- # workflow under test.
110
- #
111
- # In the future, the test server implementation may be changed to another implementation.
112
- # Therefore, all `test_server_` prefixed parameters are test server specific and may not apply
113
- # to newer versions.
114
- #
115
- # @param port [Integer] Port number to bind to, or an OS-provided port by default.
116
- # @param download_dir [String] Directory to download binary to if a download is needed.
117
- # If unset, this is the system's temporary directory.
118
- # @param test_server_existing_path [String] Existing path to the test server binary. If
119
- # present, no download will be attempted to fetch the binary.
120
- # @param test_server_download_version [String] Specific test server version to download.
121
- # Defaults to `default` which downloads the version known to work best with this SDK.
122
- # @param test_server_extra_args [Array<String>] Extra arguments for the test server binary.
123
- #
124
- # @yield Optionally you can provide a block which will ensure that the environment has been
125
- # shut down after. The newly created {Temporalio::Testing::WorkflowEnvironment} will be
126
- # passed into the block as a single argument. Alternatively you will need to call
127
- # {Temporalio::Testing::WorkflowEnvironment#shutdown} explicitly after you're done with it.
128
- #
129
- # @return [Temporalio::Testing::WorkflowEnvironment] The newly started TestServer workflow
130
- # environment.
131
- def start_time_skipping_environment(
132
- port: nil,
133
- download_dir: nil,
134
- test_server_existing_path: nil,
135
- test_server_download_version: 'default',
136
- test_server_extra_args: [],
137
- &block
138
- )
139
- # TODO: Use interceptors to inject a time skipping WorkflowHandle.
140
- runtime = Temporalio::Runtime.instance
141
- server = Temporalio::Bridge::TestServer.start(
142
- runtime.core_runtime,
143
- test_server_existing_path,
144
- 'sdk-ruby',
145
- Temporalio::VERSION,
146
- test_server_download_version,
147
- download_dir,
148
- port,
149
- test_server_extra_args,
150
- )
151
- env = init_workflow_environment_for(server, DEFAULT_NAMESPACE)
152
-
153
- return env unless block
154
-
155
- run_server(server, env, &block)
156
- end
157
-
158
- private
159
-
160
- def init_workflow_environment_for(server, namespace)
161
- connection = Temporalio::Connection.new(server.target)
162
- Temporalio::Testing::WorkflowEnvironment.new(server, connection, namespace)
163
- rescue Temporalio::Bridge::Error # Shutdown if unable to connect to the server
164
- server.shutdown
165
- raise
166
- end
167
-
168
- def run_server(server, env, &block)
169
- block.call(env)
170
- ensure
171
- server.shutdown
172
- end
173
- end
174
9
  end
175
10
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Temporalio
2
- VERSION = '0.1.1'.freeze
4
+ VERSION = '0.3.0'
3
5
  end