temporalio 0.1.1 → 0.2.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 (585) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +4035 -0
  3. data/Cargo.toml +25 -0
  4. data/Gemfile +20 -0
  5. data/LICENSE +16 -15
  6. data/README.md +455 -195
  7. data/Rakefile +387 -0
  8. data/ext/Cargo.toml +25 -0
  9. data/lib/temporalio/activity/complete_async_error.rb +11 -0
  10. data/lib/temporalio/activity/context.rb +82 -77
  11. data/lib/temporalio/activity/definition.rb +77 -0
  12. data/lib/temporalio/activity/info.rb +42 -46
  13. data/lib/temporalio/activity.rb +49 -65
  14. data/lib/temporalio/api/batch/v1/message.rb +31 -0
  15. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +93 -0
  16. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +25 -0
  17. data/lib/temporalio/api/cloud/cloudservice.rb +3 -0
  18. data/lib/temporalio/api/cloud/identity/v1/message.rb +36 -0
  19. data/lib/temporalio/api/cloud/namespace/v1/message.rb +35 -0
  20. data/lib/temporalio/api/cloud/operation/v1/message.rb +27 -0
  21. data/lib/temporalio/api/cloud/region/v1/message.rb +23 -0
  22. data/lib/temporalio/api/command/v1/message.rb +46 -0
  23. data/lib/temporalio/api/common/v1/grpc_status.rb +23 -0
  24. data/lib/temporalio/api/common/v1/message.rb +41 -0
  25. data/lib/temporalio/api/enums/v1/batch_operation.rb +22 -0
  26. data/lib/temporalio/api/enums/v1/command_type.rb +21 -0
  27. data/lib/temporalio/api/enums/v1/common.rb +26 -0
  28. data/lib/temporalio/api/enums/v1/event_type.rb +21 -0
  29. data/lib/temporalio/api/enums/v1/failed_cause.rb +26 -0
  30. data/lib/temporalio/api/enums/v1/namespace.rb +23 -0
  31. data/lib/temporalio/api/enums/v1/query.rb +22 -0
  32. data/lib/temporalio/api/enums/v1/reset.rb +23 -0
  33. data/lib/temporalio/api/enums/v1/schedule.rb +21 -0
  34. data/lib/temporalio/api/enums/v1/task_queue.rb +25 -0
  35. data/lib/temporalio/api/enums/v1/update.rb +22 -0
  36. data/lib/temporalio/api/enums/v1/workflow.rb +30 -0
  37. data/lib/temporalio/api/errordetails/v1/message.rb +42 -0
  38. data/lib/temporalio/api/export/v1/message.rb +24 -0
  39. data/lib/temporalio/api/failure/v1/message.rb +35 -0
  40. data/lib/temporalio/api/filter/v1/message.rb +27 -0
  41. data/lib/temporalio/api/history/v1/message.rb +90 -0
  42. data/lib/temporalio/api/namespace/v1/message.rb +31 -0
  43. data/lib/temporalio/api/nexus/v1/message.rb +40 -0
  44. data/lib/temporalio/api/operatorservice/v1/request_response.rb +49 -0
  45. data/lib/temporalio/api/operatorservice/v1/service.rb +23 -0
  46. data/lib/temporalio/api/operatorservice.rb +3 -0
  47. data/lib/temporalio/api/protocol/v1/message.rb +23 -0
  48. data/lib/temporalio/api/query/v1/message.rb +27 -0
  49. data/lib/temporalio/api/replication/v1/message.rb +26 -0
  50. data/lib/temporalio/api/schedule/v1/message.rb +42 -0
  51. data/lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb +25 -0
  52. data/lib/temporalio/api/sdk/v1/task_complete_metadata.rb +21 -0
  53. data/lib/temporalio/api/sdk/v1/user_metadata.rb +23 -0
  54. data/lib/temporalio/api/sdk/v1/workflow_metadata.rb +23 -0
  55. data/lib/temporalio/api/taskqueue/v1/message.rb +45 -0
  56. data/lib/temporalio/api/update/v1/message.rb +33 -0
  57. data/lib/temporalio/api/version/v1/message.rb +26 -0
  58. data/lib/temporalio/api/workflow/v1/message.rb +43 -0
  59. data/lib/temporalio/api/workflowservice/v1/request_response.rb +189 -0
  60. data/lib/temporalio/api/workflowservice/v1/service.rb +23 -0
  61. data/lib/temporalio/api/workflowservice.rb +3 -0
  62. data/lib/temporalio/api.rb +13 -0
  63. data/lib/temporalio/cancellation.rb +150 -0
  64. data/lib/temporalio/client/activity_id_reference.rb +32 -0
  65. data/lib/temporalio/client/async_activity_handle.rb +110 -0
  66. data/lib/temporalio/client/connection/cloud_service.rb +648 -0
  67. data/lib/temporalio/client/connection/operator_service.rb +249 -0
  68. data/lib/temporalio/client/connection/service.rb +41 -0
  69. data/lib/temporalio/client/connection/workflow_service.rb +1218 -0
  70. data/lib/temporalio/client/connection.rb +270 -0
  71. data/lib/temporalio/client/interceptor.rb +316 -0
  72. data/lib/temporalio/client/workflow_execution.rb +103 -0
  73. data/lib/temporalio/client/workflow_execution_count.rb +36 -0
  74. data/lib/temporalio/client/workflow_execution_status.rb +18 -0
  75. data/lib/temporalio/client/workflow_handle.rb +380 -177
  76. data/lib/temporalio/client/workflow_query_reject_condition.rb +14 -0
  77. data/lib/temporalio/client/workflow_update_handle.rb +67 -0
  78. data/lib/temporalio/client/workflow_update_wait_stage.rb +17 -0
  79. data/lib/temporalio/client.rb +366 -93
  80. data/lib/temporalio/common_enums.rb +24 -0
  81. data/lib/temporalio/converters/data_converter.rb +102 -0
  82. data/lib/temporalio/converters/failure_converter.rb +200 -0
  83. data/lib/temporalio/converters/payload_codec.rb +26 -0
  84. data/lib/temporalio/converters/payload_converter/binary_null.rb +34 -0
  85. data/lib/temporalio/converters/payload_converter/binary_plain.rb +35 -0
  86. data/lib/temporalio/converters/payload_converter/binary_protobuf.rb +42 -0
  87. data/lib/temporalio/converters/payload_converter/composite.rb +62 -0
  88. data/lib/temporalio/converters/payload_converter/encoding.rb +35 -0
  89. data/lib/temporalio/converters/payload_converter/json_plain.rb +44 -0
  90. data/lib/temporalio/converters/payload_converter/json_protobuf.rb +41 -0
  91. data/lib/temporalio/converters/payload_converter.rb +73 -0
  92. data/lib/temporalio/converters.rb +9 -0
  93. data/lib/temporalio/error/failure.rb +119 -94
  94. data/lib/temporalio/error.rb +147 -0
  95. data/lib/temporalio/internal/bridge/api/activity_result/activity_result.rb +34 -0
  96. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +31 -0
  97. data/lib/temporalio/internal/bridge/api/child_workflow/child_workflow.rb +33 -0
  98. data/lib/temporalio/internal/bridge/api/common/common.rb +26 -0
  99. data/lib/temporalio/internal/bridge/api/core_interface.rb +36 -0
  100. data/lib/temporalio/internal/bridge/api/external_data/external_data.rb +27 -0
  101. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +52 -0
  102. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +54 -0
  103. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +30 -0
  104. data/lib/temporalio/internal/bridge/api.rb +3 -0
  105. data/lib/temporalio/internal/bridge/client.rb +90 -0
  106. data/lib/temporalio/internal/bridge/runtime.rb +53 -0
  107. data/lib/temporalio/internal/bridge/testing.rb +46 -0
  108. data/lib/temporalio/internal/bridge/worker.rb +83 -0
  109. data/lib/temporalio/internal/bridge.rb +36 -0
  110. data/lib/temporalio/internal/client/implementation.rb +525 -0
  111. data/lib/temporalio/internal/proto_utils.rb +54 -0
  112. data/lib/temporalio/internal/worker/activity_worker.rb +345 -0
  113. data/lib/temporalio/internal/worker/multi_runner.rb +169 -0
  114. data/lib/temporalio/internal.rb +7 -0
  115. data/lib/temporalio/retry_policy.rb +39 -80
  116. data/lib/temporalio/runtime.rb +259 -13
  117. data/lib/temporalio/scoped_logger.rb +96 -0
  118. data/lib/temporalio/search_attributes.rb +300 -0
  119. data/lib/temporalio/testing/activity_environment.rb +132 -0
  120. data/lib/temporalio/testing/workflow_environment.rb +113 -88
  121. data/lib/temporalio/testing.rb +4 -169
  122. data/lib/temporalio/version.rb +3 -1
  123. data/lib/temporalio/worker/activity_executor/fiber.rb +49 -0
  124. data/lib/temporalio/worker/activity_executor/thread_pool.rb +254 -0
  125. data/lib/temporalio/worker/activity_executor.rb +55 -0
  126. data/lib/temporalio/worker/interceptor.rb +88 -0
  127. data/lib/temporalio/worker/tuner.rb +151 -0
  128. data/lib/temporalio/worker.rb +385 -163
  129. data/lib/temporalio/workflow_history.rb +22 -0
  130. data/lib/temporalio.rb +2 -7
  131. data/temporalio.gemspec +20 -39
  132. metadata +131 -712
  133. data/bridge/Cargo.lock +0 -2997
  134. data/bridge/Cargo.toml +0 -29
  135. data/bridge/sdk-core/ARCHITECTURE.md +0 -76
  136. data/bridge/sdk-core/Cargo.toml +0 -2
  137. data/bridge/sdk-core/LICENSE.txt +0 -23
  138. data/bridge/sdk-core/README.md +0 -117
  139. data/bridge/sdk-core/arch_docs/diagrams/README.md +0 -10
  140. data/bridge/sdk-core/arch_docs/diagrams/sticky_queues.puml +0 -40
  141. data/bridge/sdk-core/arch_docs/diagrams/workflow_internals.svg +0 -1
  142. data/bridge/sdk-core/arch_docs/sticky_queues.md +0 -51
  143. data/bridge/sdk-core/client/Cargo.toml +0 -40
  144. data/bridge/sdk-core/client/LICENSE.txt +0 -23
  145. data/bridge/sdk-core/client/src/lib.rs +0 -1462
  146. data/bridge/sdk-core/client/src/metrics.rs +0 -174
  147. data/bridge/sdk-core/client/src/raw.rs +0 -932
  148. data/bridge/sdk-core/client/src/retry.rs +0 -763
  149. data/bridge/sdk-core/client/src/workflow_handle/mod.rs +0 -185
  150. data/bridge/sdk-core/core/Cargo.toml +0 -129
  151. data/bridge/sdk-core/core/LICENSE.txt +0 -23
  152. data/bridge/sdk-core/core/benches/workflow_replay.rs +0 -76
  153. data/bridge/sdk-core/core/src/abstractions.rs +0 -355
  154. data/bridge/sdk-core/core/src/core_tests/activity_tasks.rs +0 -1049
  155. data/bridge/sdk-core/core/src/core_tests/child_workflows.rs +0 -221
  156. data/bridge/sdk-core/core/src/core_tests/determinism.rs +0 -270
  157. data/bridge/sdk-core/core/src/core_tests/local_activities.rs +0 -1046
  158. data/bridge/sdk-core/core/src/core_tests/mod.rs +0 -100
  159. data/bridge/sdk-core/core/src/core_tests/queries.rs +0 -893
  160. data/bridge/sdk-core/core/src/core_tests/replay_flag.rs +0 -65
  161. data/bridge/sdk-core/core/src/core_tests/workers.rs +0 -257
  162. data/bridge/sdk-core/core/src/core_tests/workflow_cancels.rs +0 -124
  163. data/bridge/sdk-core/core/src/core_tests/workflow_tasks.rs +0 -2433
  164. data/bridge/sdk-core/core/src/ephemeral_server/mod.rs +0 -609
  165. data/bridge/sdk-core/core/src/internal_flags.rs +0 -136
  166. data/bridge/sdk-core/core/src/lib.rs +0 -289
  167. data/bridge/sdk-core/core/src/pollers/mod.rs +0 -54
  168. data/bridge/sdk-core/core/src/pollers/poll_buffer.rs +0 -297
  169. data/bridge/sdk-core/core/src/protosext/mod.rs +0 -428
  170. data/bridge/sdk-core/core/src/replay/mod.rs +0 -215
  171. data/bridge/sdk-core/core/src/retry_logic.rs +0 -202
  172. data/bridge/sdk-core/core/src/telemetry/log_export.rs +0 -190
  173. data/bridge/sdk-core/core/src/telemetry/metrics.rs +0 -462
  174. data/bridge/sdk-core/core/src/telemetry/mod.rs +0 -423
  175. data/bridge/sdk-core/core/src/telemetry/prometheus_server.rs +0 -83
  176. data/bridge/sdk-core/core/src/test_help/mod.rs +0 -939
  177. data/bridge/sdk-core/core/src/worker/activities/activity_heartbeat_manager.rs +0 -536
  178. data/bridge/sdk-core/core/src/worker/activities/activity_task_poller_stream.rs +0 -89
  179. data/bridge/sdk-core/core/src/worker/activities/local_activities.rs +0 -1278
  180. data/bridge/sdk-core/core/src/worker/activities.rs +0 -557
  181. data/bridge/sdk-core/core/src/worker/client/mocks.rs +0 -107
  182. data/bridge/sdk-core/core/src/worker/client.rs +0 -389
  183. data/bridge/sdk-core/core/src/worker/mod.rs +0 -677
  184. data/bridge/sdk-core/core/src/worker/workflow/bridge.rs +0 -35
  185. data/bridge/sdk-core/core/src/worker/workflow/driven_workflow.rs +0 -99
  186. data/bridge/sdk-core/core/src/worker/workflow/history_update.rs +0 -1111
  187. data/bridge/sdk-core/core/src/worker/workflow/machines/activity_state_machine.rs +0 -964
  188. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_external_state_machine.rs +0 -294
  189. data/bridge/sdk-core/core/src/worker/workflow/machines/cancel_workflow_state_machine.rs +0 -168
  190. data/bridge/sdk-core/core/src/worker/workflow/machines/child_workflow_state_machine.rs +0 -918
  191. data/bridge/sdk-core/core/src/worker/workflow/machines/complete_workflow_state_machine.rs +0 -137
  192. data/bridge/sdk-core/core/src/worker/workflow/machines/continue_as_new_workflow_state_machine.rs +0 -158
  193. data/bridge/sdk-core/core/src/worker/workflow/machines/fail_workflow_state_machine.rs +0 -130
  194. data/bridge/sdk-core/core/src/worker/workflow/machines/local_activity_state_machine.rs +0 -1525
  195. data/bridge/sdk-core/core/src/worker/workflow/machines/mod.rs +0 -324
  196. data/bridge/sdk-core/core/src/worker/workflow/machines/modify_workflow_properties_state_machine.rs +0 -179
  197. data/bridge/sdk-core/core/src/worker/workflow/machines/patch_state_machine.rs +0 -659
  198. data/bridge/sdk-core/core/src/worker/workflow/machines/signal_external_state_machine.rs +0 -439
  199. data/bridge/sdk-core/core/src/worker/workflow/machines/timer_state_machine.rs +0 -435
  200. data/bridge/sdk-core/core/src/worker/workflow/machines/transition_coverage.rs +0 -175
  201. data/bridge/sdk-core/core/src/worker/workflow/machines/upsert_search_attributes_state_machine.rs +0 -249
  202. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines/local_acts.rs +0 -85
  203. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_machines.rs +0 -1280
  204. data/bridge/sdk-core/core/src/worker/workflow/machines/workflow_task_state_machine.rs +0 -269
  205. data/bridge/sdk-core/core/src/worker/workflow/managed_run/managed_wf_test.rs +0 -213
  206. data/bridge/sdk-core/core/src/worker/workflow/managed_run.rs +0 -1305
  207. data/bridge/sdk-core/core/src/worker/workflow/mod.rs +0 -1276
  208. data/bridge/sdk-core/core/src/worker/workflow/run_cache.rs +0 -128
  209. data/bridge/sdk-core/core/src/worker/workflow/wft_extraction.rs +0 -125
  210. data/bridge/sdk-core/core/src/worker/workflow/wft_poller.rs +0 -85
  211. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/saved_wf_inputs.rs +0 -117
  212. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream/tonic_status_serde.rs +0 -24
  213. data/bridge/sdk-core/core/src/worker/workflow/workflow_stream.rs +0 -715
  214. data/bridge/sdk-core/core-api/Cargo.toml +0 -33
  215. data/bridge/sdk-core/core-api/LICENSE.txt +0 -23
  216. data/bridge/sdk-core/core-api/src/errors.rs +0 -62
  217. data/bridge/sdk-core/core-api/src/lib.rs +0 -113
  218. data/bridge/sdk-core/core-api/src/telemetry.rs +0 -141
  219. data/bridge/sdk-core/core-api/src/worker.rs +0 -161
  220. data/bridge/sdk-core/etc/deps.svg +0 -162
  221. data/bridge/sdk-core/etc/dynamic-config.yaml +0 -2
  222. data/bridge/sdk-core/etc/otel-collector-config.yaml +0 -36
  223. data/bridge/sdk-core/etc/prometheus.yaml +0 -6
  224. data/bridge/sdk-core/etc/regen-depgraph.sh +0 -5
  225. data/bridge/sdk-core/fsm/Cargo.toml +0 -18
  226. data/bridge/sdk-core/fsm/LICENSE.txt +0 -23
  227. data/bridge/sdk-core/fsm/README.md +0 -3
  228. data/bridge/sdk-core/fsm/rustfsm_procmacro/Cargo.toml +0 -27
  229. data/bridge/sdk-core/fsm/rustfsm_procmacro/LICENSE.txt +0 -23
  230. data/bridge/sdk-core/fsm/rustfsm_procmacro/src/lib.rs +0 -650
  231. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/progress.rs +0 -8
  232. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.rs +0 -18
  233. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dupe_transitions_fail.stderr +0 -12
  234. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/dynamic_dest_pass.rs +0 -41
  235. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.rs +0 -14
  236. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/forgot_name_fail.stderr +0 -11
  237. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_arg_pass.rs +0 -32
  238. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/handler_pass.rs +0 -31
  239. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/medium_complex_pass.rs +0 -46
  240. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.rs +0 -29
  241. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/no_handle_conversions_require_into_fail.stderr +0 -12
  242. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/simple_pass.rs +0 -32
  243. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.rs +0 -18
  244. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/struct_event_variant_fail.stderr +0 -5
  245. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.rs +0 -11
  246. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_more_item_event_variant_fail.stderr +0 -5
  247. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.rs +0 -11
  248. data/bridge/sdk-core/fsm/rustfsm_procmacro/tests/trybuild/tuple_zero_item_event_variant_fail.stderr +0 -5
  249. data/bridge/sdk-core/fsm/rustfsm_trait/Cargo.toml +0 -14
  250. data/bridge/sdk-core/fsm/rustfsm_trait/LICENSE.txt +0 -23
  251. data/bridge/sdk-core/fsm/rustfsm_trait/src/lib.rs +0 -254
  252. data/bridge/sdk-core/fsm/src/lib.rs +0 -2
  253. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-16_history.bin +0 -0
  254. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-23_history.bin +0 -0
  255. data/bridge/sdk-core/histories/evict_while_la_running_no_interference-85_history.bin +0 -0
  256. data/bridge/sdk-core/histories/fail_wf_task.bin +0 -0
  257. data/bridge/sdk-core/histories/timer_workflow_history.bin +0 -0
  258. data/bridge/sdk-core/integ-with-otel.sh +0 -7
  259. data/bridge/sdk-core/protos/api_upstream/README.md +0 -9
  260. data/bridge/sdk-core/protos/api_upstream/api-linter.yaml +0 -40
  261. data/bridge/sdk-core/protos/api_upstream/buf.yaml +0 -9
  262. data/bridge/sdk-core/protos/api_upstream/build/go.mod +0 -7
  263. data/bridge/sdk-core/protos/api_upstream/build/go.sum +0 -5
  264. data/bridge/sdk-core/protos/api_upstream/build/tools.go +0 -29
  265. data/bridge/sdk-core/protos/api_upstream/dependencies/gogoproto/gogo.proto +0 -141
  266. data/bridge/sdk-core/protos/api_upstream/go.mod +0 -6
  267. data/bridge/sdk-core/protos/api_upstream/temporal/api/batch/v1/message.proto +0 -89
  268. data/bridge/sdk-core/protos/api_upstream/temporal/api/command/v1/message.proto +0 -248
  269. data/bridge/sdk-core/protos/api_upstream/temporal/api/common/v1/message.proto +0 -123
  270. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/batch_operation.proto +0 -47
  271. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/command_type.proto +0 -52
  272. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/common.proto +0 -56
  273. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/event_type.proto +0 -170
  274. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/failed_cause.proto +0 -123
  275. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/namespace.proto +0 -51
  276. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/query.proto +0 -50
  277. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/reset.proto +0 -41
  278. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/schedule.proto +0 -60
  279. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/task_queue.proto +0 -59
  280. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/update.proto +0 -56
  281. data/bridge/sdk-core/protos/api_upstream/temporal/api/enums/v1/workflow.proto +0 -122
  282. data/bridge/sdk-core/protos/api_upstream/temporal/api/errordetails/v1/message.proto +0 -108
  283. data/bridge/sdk-core/protos/api_upstream/temporal/api/failure/v1/message.proto +0 -114
  284. data/bridge/sdk-core/protos/api_upstream/temporal/api/filter/v1/message.proto +0 -56
  285. data/bridge/sdk-core/protos/api_upstream/temporal/api/history/v1/message.proto +0 -787
  286. data/bridge/sdk-core/protos/api_upstream/temporal/api/namespace/v1/message.proto +0 -99
  287. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/request_response.proto +0 -124
  288. data/bridge/sdk-core/protos/api_upstream/temporal/api/operatorservice/v1/service.proto +0 -80
  289. data/bridge/sdk-core/protos/api_upstream/temporal/api/protocol/v1/message.proto +0 -57
  290. data/bridge/sdk-core/protos/api_upstream/temporal/api/query/v1/message.proto +0 -61
  291. data/bridge/sdk-core/protos/api_upstream/temporal/api/replication/v1/message.proto +0 -55
  292. data/bridge/sdk-core/protos/api_upstream/temporal/api/schedule/v1/message.proto +0 -379
  293. data/bridge/sdk-core/protos/api_upstream/temporal/api/sdk/v1/task_complete_metadata.proto +0 -63
  294. data/bridge/sdk-core/protos/api_upstream/temporal/api/taskqueue/v1/message.proto +0 -108
  295. data/bridge/sdk-core/protos/api_upstream/temporal/api/update/v1/message.proto +0 -111
  296. data/bridge/sdk-core/protos/api_upstream/temporal/api/version/v1/message.proto +0 -59
  297. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflow/v1/message.proto +0 -146
  298. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/request_response.proto +0 -1199
  299. data/bridge/sdk-core/protos/api_upstream/temporal/api/workflowservice/v1/service.proto +0 -415
  300. data/bridge/sdk-core/protos/grpc/health/v1/health.proto +0 -63
  301. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_result/activity_result.proto +0 -79
  302. data/bridge/sdk-core/protos/local/temporal/sdk/core/activity_task/activity_task.proto +0 -80
  303. data/bridge/sdk-core/protos/local/temporal/sdk/core/child_workflow/child_workflow.proto +0 -78
  304. data/bridge/sdk-core/protos/local/temporal/sdk/core/common/common.proto +0 -16
  305. data/bridge/sdk-core/protos/local/temporal/sdk/core/core_interface.proto +0 -31
  306. data/bridge/sdk-core/protos/local/temporal/sdk/core/external_data/external_data.proto +0 -31
  307. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_activation/workflow_activation.proto +0 -270
  308. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_commands/workflow_commands.proto +0 -305
  309. data/bridge/sdk-core/protos/local/temporal/sdk/core/workflow_completion/workflow_completion.proto +0 -35
  310. data/bridge/sdk-core/protos/testsrv_upstream/api-linter.yaml +0 -38
  311. data/bridge/sdk-core/protos/testsrv_upstream/buf.yaml +0 -13
  312. data/bridge/sdk-core/protos/testsrv_upstream/dependencies/gogoproto/gogo.proto +0 -141
  313. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/request_response.proto +0 -63
  314. data/bridge/sdk-core/protos/testsrv_upstream/temporal/api/testservice/v1/service.proto +0 -90
  315. data/bridge/sdk-core/rustfmt.toml +0 -1
  316. data/bridge/sdk-core/sdk/Cargo.toml +0 -48
  317. data/bridge/sdk-core/sdk/LICENSE.txt +0 -23
  318. data/bridge/sdk-core/sdk/src/activity_context.rs +0 -230
  319. data/bridge/sdk-core/sdk/src/app_data.rs +0 -37
  320. data/bridge/sdk-core/sdk/src/interceptors.rs +0 -50
  321. data/bridge/sdk-core/sdk/src/lib.rs +0 -861
  322. data/bridge/sdk-core/sdk/src/payload_converter.rs +0 -11
  323. data/bridge/sdk-core/sdk/src/workflow_context/options.rs +0 -295
  324. data/bridge/sdk-core/sdk/src/workflow_context.rs +0 -694
  325. data/bridge/sdk-core/sdk/src/workflow_future.rs +0 -500
  326. data/bridge/sdk-core/sdk-core-protos/Cargo.toml +0 -33
  327. data/bridge/sdk-core/sdk-core-protos/LICENSE.txt +0 -23
  328. data/bridge/sdk-core/sdk-core-protos/build.rs +0 -142
  329. data/bridge/sdk-core/sdk-core-protos/src/constants.rs +0 -7
  330. data/bridge/sdk-core/sdk-core-protos/src/history_builder.rs +0 -557
  331. data/bridge/sdk-core/sdk-core-protos/src/history_info.rs +0 -234
  332. data/bridge/sdk-core/sdk-core-protos/src/lib.rs +0 -2088
  333. data/bridge/sdk-core/sdk-core-protos/src/task_token.rs +0 -48
  334. data/bridge/sdk-core/sdk-core-protos/src/utilities.rs +0 -14
  335. data/bridge/sdk-core/test-utils/Cargo.toml +0 -38
  336. data/bridge/sdk-core/test-utils/src/canned_histories.rs +0 -1389
  337. data/bridge/sdk-core/test-utils/src/histfetch.rs +0 -28
  338. data/bridge/sdk-core/test-utils/src/lib.rs +0 -709
  339. data/bridge/sdk-core/test-utils/src/wf_input_saver.rs +0 -50
  340. data/bridge/sdk-core/test-utils/src/workflows.rs +0 -29
  341. data/bridge/sdk-core/tests/fuzzy_workflow.rs +0 -130
  342. data/bridge/sdk-core/tests/heavy_tests.rs +0 -265
  343. data/bridge/sdk-core/tests/integ_tests/client_tests.rs +0 -36
  344. data/bridge/sdk-core/tests/integ_tests/ephemeral_server_tests.rs +0 -150
  345. data/bridge/sdk-core/tests/integ_tests/heartbeat_tests.rs +0 -223
  346. data/bridge/sdk-core/tests/integ_tests/metrics_tests.rs +0 -239
  347. data/bridge/sdk-core/tests/integ_tests/polling_tests.rs +0 -90
  348. data/bridge/sdk-core/tests/integ_tests/queries_tests.rs +0 -314
  349. data/bridge/sdk-core/tests/integ_tests/visibility_tests.rs +0 -151
  350. data/bridge/sdk-core/tests/integ_tests/workflow_tests/activities.rs +0 -902
  351. data/bridge/sdk-core/tests/integ_tests/workflow_tests/appdata_propagation.rs +0 -61
  352. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_external.rs +0 -60
  353. data/bridge/sdk-core/tests/integ_tests/workflow_tests/cancel_wf.rs +0 -51
  354. data/bridge/sdk-core/tests/integ_tests/workflow_tests/child_workflows.rs +0 -51
  355. data/bridge/sdk-core/tests/integ_tests/workflow_tests/continue_as_new.rs +0 -64
  356. data/bridge/sdk-core/tests/integ_tests/workflow_tests/determinism.rs +0 -47
  357. data/bridge/sdk-core/tests/integ_tests/workflow_tests/local_activities.rs +0 -669
  358. data/bridge/sdk-core/tests/integ_tests/workflow_tests/modify_wf_properties.rs +0 -54
  359. data/bridge/sdk-core/tests/integ_tests/workflow_tests/patches.rs +0 -92
  360. data/bridge/sdk-core/tests/integ_tests/workflow_tests/replay.rs +0 -228
  361. data/bridge/sdk-core/tests/integ_tests/workflow_tests/resets.rs +0 -94
  362. data/bridge/sdk-core/tests/integ_tests/workflow_tests/signals.rs +0 -171
  363. data/bridge/sdk-core/tests/integ_tests/workflow_tests/stickyness.rs +0 -85
  364. data/bridge/sdk-core/tests/integ_tests/workflow_tests/timers.rs +0 -120
  365. data/bridge/sdk-core/tests/integ_tests/workflow_tests/upsert_search_attrs.rs +0 -77
  366. data/bridge/sdk-core/tests/integ_tests/workflow_tests.rs +0 -596
  367. data/bridge/sdk-core/tests/main.rs +0 -103
  368. data/bridge/sdk-core/tests/runner.rs +0 -132
  369. data/bridge/sdk-core/tests/wf_input_replay.rs +0 -32
  370. data/bridge/src/connection.rs +0 -202
  371. data/bridge/src/lib.rs +0 -494
  372. data/bridge/src/runtime.rs +0 -54
  373. data/bridge/src/test_server.rs +0 -153
  374. data/bridge/src/worker.rs +0 -197
  375. data/ext/Rakefile +0 -9
  376. data/lib/gen/dependencies/gogoproto/gogo_pb.rb +0 -14
  377. data/lib/gen/temporal/api/batch/v1/message_pb.rb +0 -50
  378. data/lib/gen/temporal/api/command/v1/message_pb.rb +0 -160
  379. data/lib/gen/temporal/api/common/v1/message_pb.rb +0 -73
  380. data/lib/gen/temporal/api/enums/v1/batch_operation_pb.rb +0 -33
  381. data/lib/gen/temporal/api/enums/v1/command_type_pb.rb +0 -37
  382. data/lib/gen/temporal/api/enums/v1/common_pb.rb +0 -42
  383. data/lib/gen/temporal/api/enums/v1/event_type_pb.rb +0 -68
  384. data/lib/gen/temporal/api/enums/v1/failed_cause_pb.rb +0 -79
  385. data/lib/gen/temporal/api/enums/v1/namespace_pb.rb +0 -37
  386. data/lib/gen/temporal/api/enums/v1/query_pb.rb +0 -31
  387. data/lib/gen/temporal/api/enums/v1/reset_pb.rb +0 -24
  388. data/lib/gen/temporal/api/enums/v1/schedule_pb.rb +0 -28
  389. data/lib/gen/temporal/api/enums/v1/task_queue_pb.rb +0 -30
  390. data/lib/gen/temporal/api/enums/v1/update_pb.rb +0 -25
  391. data/lib/gen/temporal/api/enums/v1/workflow_pb.rb +0 -89
  392. data/lib/gen/temporal/api/errordetails/v1/message_pb.rb +0 -84
  393. data/lib/gen/temporal/api/failure/v1/message_pb.rb +0 -83
  394. data/lib/gen/temporal/api/filter/v1/message_pb.rb +0 -40
  395. data/lib/gen/temporal/api/history/v1/message_pb.rb +0 -498
  396. data/lib/gen/temporal/api/namespace/v1/message_pb.rb +0 -64
  397. data/lib/gen/temporal/api/operatorservice/v1/request_response_pb.rb +0 -88
  398. data/lib/gen/temporal/api/operatorservice/v1/service_pb.rb +0 -20
  399. data/lib/gen/temporal/api/protocol/v1/message_pb.rb +0 -30
  400. data/lib/gen/temporal/api/query/v1/message_pb.rb +0 -38
  401. data/lib/gen/temporal/api/replication/v1/message_pb.rb +0 -37
  402. data/lib/gen/temporal/api/schedule/v1/message_pb.rb +0 -149
  403. data/lib/gen/temporal/api/sdk/v1/task_complete_metadata_pb.rb +0 -23
  404. data/lib/gen/temporal/api/taskqueue/v1/message_pb.rb +0 -73
  405. data/lib/gen/temporal/api/testservice/v1/request_response_pb.rb +0 -49
  406. data/lib/gen/temporal/api/testservice/v1/service_pb.rb +0 -21
  407. data/lib/gen/temporal/api/update/v1/message_pb.rb +0 -72
  408. data/lib/gen/temporal/api/version/v1/message_pb.rb +0 -41
  409. data/lib/gen/temporal/api/workflow/v1/message_pb.rb +0 -111
  410. data/lib/gen/temporal/api/workflowservice/v1/request_response_pb.rb +0 -798
  411. data/lib/gen/temporal/api/workflowservice/v1/service_pb.rb +0 -20
  412. data/lib/gen/temporal/sdk/core/activity_result/activity_result_pb.rb +0 -62
  413. data/lib/gen/temporal/sdk/core/activity_task/activity_task_pb.rb +0 -61
  414. data/lib/gen/temporal/sdk/core/child_workflow/child_workflow_pb.rb +0 -61
  415. data/lib/gen/temporal/sdk/core/common/common_pb.rb +0 -26
  416. data/lib/gen/temporal/sdk/core/core_interface_pb.rb +0 -40
  417. data/lib/gen/temporal/sdk/core/external_data/external_data_pb.rb +0 -31
  418. data/lib/gen/temporal/sdk/core/workflow_activation/workflow_activation_pb.rb +0 -171
  419. data/lib/gen/temporal/sdk/core/workflow_commands/workflow_commands_pb.rb +0 -200
  420. data/lib/gen/temporal/sdk/core/workflow_completion/workflow_completion_pb.rb +0 -41
  421. data/lib/temporalio/bridge/connect_options.rb +0 -15
  422. data/lib/temporalio/bridge/error.rb +0 -8
  423. data/lib/temporalio/bridge/retry_config.rb +0 -24
  424. data/lib/temporalio/bridge/tls_options.rb +0 -19
  425. data/lib/temporalio/bridge.rb +0 -14
  426. data/lib/temporalio/client/implementation.rb +0 -340
  427. data/lib/temporalio/connection/retry_config.rb +0 -44
  428. data/lib/temporalio/connection/service.rb +0 -20
  429. data/lib/temporalio/connection/test_service.rb +0 -92
  430. data/lib/temporalio/connection/tls_options.rb +0 -51
  431. data/lib/temporalio/connection/workflow_service.rb +0 -731
  432. data/lib/temporalio/connection.rb +0 -86
  433. data/lib/temporalio/data_converter.rb +0 -191
  434. data/lib/temporalio/error/workflow_failure.rb +0 -19
  435. data/lib/temporalio/errors.rb +0 -40
  436. data/lib/temporalio/failure_converter/base.rb +0 -26
  437. data/lib/temporalio/failure_converter/basic.rb +0 -319
  438. data/lib/temporalio/failure_converter.rb +0 -7
  439. data/lib/temporalio/interceptor/activity_inbound.rb +0 -22
  440. data/lib/temporalio/interceptor/activity_outbound.rb +0 -24
  441. data/lib/temporalio/interceptor/chain.rb +0 -28
  442. data/lib/temporalio/interceptor/client.rb +0 -127
  443. data/lib/temporalio/interceptor.rb +0 -22
  444. data/lib/temporalio/payload_codec/base.rb +0 -32
  445. data/lib/temporalio/payload_converter/base.rb +0 -24
  446. data/lib/temporalio/payload_converter/bytes.rb +0 -27
  447. data/lib/temporalio/payload_converter/composite.rb +0 -49
  448. data/lib/temporalio/payload_converter/encoding_base.rb +0 -35
  449. data/lib/temporalio/payload_converter/json.rb +0 -26
  450. data/lib/temporalio/payload_converter/nil.rb +0 -26
  451. data/lib/temporalio/payload_converter.rb +0 -14
  452. data/lib/temporalio/retry_state.rb +0 -35
  453. data/lib/temporalio/testing/time_skipping_handle.rb +0 -32
  454. data/lib/temporalio/testing/time_skipping_interceptor.rb +0 -23
  455. data/lib/temporalio/timeout_type.rb +0 -29
  456. data/lib/temporalio/worker/activity_runner.rb +0 -114
  457. data/lib/temporalio/worker/activity_worker.rb +0 -164
  458. data/lib/temporalio/worker/reactor.rb +0 -46
  459. data/lib/temporalio/worker/runner.rb +0 -63
  460. data/lib/temporalio/worker/sync_worker.rb +0 -124
  461. data/lib/temporalio/worker/thread_pool_executor.rb +0 -51
  462. data/lib/temporalio/workflow/async.rb +0 -46
  463. data/lib/temporalio/workflow/execution_info.rb +0 -54
  464. data/lib/temporalio/workflow/execution_status.rb +0 -36
  465. data/lib/temporalio/workflow/future.rb +0 -138
  466. data/lib/temporalio/workflow/id_reuse_policy.rb +0 -36
  467. data/lib/temporalio/workflow/info.rb +0 -76
  468. data/lib/temporalio/workflow/query_reject_condition.rb +0 -33
  469. data/lib/thermite_patch.rb +0 -33
  470. data/sig/async.rbs +0 -17
  471. data/sig/protobuf.rbs +0 -16
  472. data/sig/protos/dependencies/gogoproto/gogo.rbs +0 -914
  473. data/sig/protos/google/protobuf/any.rbs +0 -157
  474. data/sig/protos/google/protobuf/descriptor.rbs +0 -2825
  475. data/sig/protos/google/protobuf/duration.rbs +0 -114
  476. data/sig/protos/google/protobuf/empty.rbs +0 -36
  477. data/sig/protos/google/protobuf/timestamp.rbs +0 -145
  478. data/sig/protos/google/protobuf/wrappers.rbs +0 -358
  479. data/sig/protos/temporal/api/batch/v1/message.rbs +0 -300
  480. data/sig/protos/temporal/api/command/v1/message.rbs +0 -1399
  481. data/sig/protos/temporal/api/common/v1/message.rbs +0 -528
  482. data/sig/protos/temporal/api/enums/v1/batch_operation.rbs +0 -79
  483. data/sig/protos/temporal/api/enums/v1/command_type.rbs +0 -68
  484. data/sig/protos/temporal/api/enums/v1/common.rbs +0 -118
  485. data/sig/protos/temporal/api/enums/v1/event_type.rbs +0 -264
  486. data/sig/protos/temporal/api/enums/v1/failed_cause.rbs +0 -277
  487. data/sig/protos/temporal/api/enums/v1/namespace.rbs +0 -108
  488. data/sig/protos/temporal/api/enums/v1/query.rbs +0 -81
  489. data/sig/protos/temporal/api/enums/v1/reset.rbs +0 -44
  490. data/sig/protos/temporal/api/enums/v1/schedule.rbs +0 -72
  491. data/sig/protos/temporal/api/enums/v1/task_queue.rbs +0 -92
  492. data/sig/protos/temporal/api/enums/v1/update.rbs +0 -64
  493. data/sig/protos/temporal/api/enums/v1/workflow.rbs +0 -371
  494. data/sig/protos/temporal/api/errordetails/v1/message.rbs +0 -551
  495. data/sig/protos/temporal/api/failure/v1/message.rbs +0 -581
  496. data/sig/protos/temporal/api/filter/v1/message.rbs +0 -171
  497. data/sig/protos/temporal/api/history/v1/message.rbs +0 -4609
  498. data/sig/protos/temporal/api/namespace/v1/message.rbs +0 -410
  499. data/sig/protos/temporal/api/operatorservice/v1/request_response.rbs +0 -643
  500. data/sig/protos/temporal/api/operatorservice/v1/service.rbs +0 -17
  501. data/sig/protos/temporal/api/protocol/v1/message.rbs +0 -84
  502. data/sig/protos/temporal/api/query/v1/message.rbs +0 -182
  503. data/sig/protos/temporal/api/replication/v1/message.rbs +0 -148
  504. data/sig/protos/temporal/api/schedule/v1/message.rbs +0 -1488
  505. data/sig/protos/temporal/api/sdk/v1/task_complete_metadata.rbs +0 -110
  506. data/sig/protos/temporal/api/taskqueue/v1/message.rbs +0 -486
  507. data/sig/protos/temporal/api/testservice/v1/request_response.rbs +0 -249
  508. data/sig/protos/temporal/api/testservice/v1/service.rbs +0 -15
  509. data/sig/protos/temporal/api/update/v1/message.rbs +0 -489
  510. data/sig/protos/temporal/api/version/v1/message.rbs +0 -184
  511. data/sig/protos/temporal/api/workflow/v1/message.rbs +0 -824
  512. data/sig/protos/temporal/api/workflowservice/v1/request_response.rbs +0 -7250
  513. data/sig/protos/temporal/api/workflowservice/v1/service.rbs +0 -22
  514. data/sig/protos/temporal/sdk/core/activity_result/activity_result.rbs +0 -380
  515. data/sig/protos/temporal/sdk/core/activity_task/activity_task.rbs +0 -386
  516. data/sig/protos/temporal/sdk/core/child_workflow/child_workflow.rbs +0 -323
  517. data/sig/protos/temporal/sdk/core/common/common.rbs +0 -62
  518. data/sig/protos/temporal/sdk/core/core_interface.rbs +0 -101
  519. data/sig/protos/temporal/sdk/core/external_data/external_data.rbs +0 -119
  520. data/sig/protos/temporal/sdk/core/workflow_activation/workflow_activation.rbs +0 -1473
  521. data/sig/protos/temporal/sdk/core/workflow_commands/workflow_commands.rbs +0 -1784
  522. data/sig/protos/temporal/sdk/core/workflow_completion/workflow_completion.rbs +0 -180
  523. data/sig/ruby.rbs +0 -12
  524. data/sig/temporalio/activity/context.rbs +0 -29
  525. data/sig/temporalio/activity/info.rbs +0 -43
  526. data/sig/temporalio/activity.rbs +0 -19
  527. data/sig/temporalio/bridge/connect_options.rbs +0 -19
  528. data/sig/temporalio/bridge/error.rbs +0 -8
  529. data/sig/temporalio/bridge/retry_config.rbs +0 -21
  530. data/sig/temporalio/bridge/tls_options.rbs +0 -17
  531. data/sig/temporalio/bridge.rbs +0 -71
  532. data/sig/temporalio/client/implementation.rbs +0 -38
  533. data/sig/temporalio/client/workflow_handle.rbs +0 -41
  534. data/sig/temporalio/client.rbs +0 -35
  535. data/sig/temporalio/connection/retry_config.rbs +0 -37
  536. data/sig/temporalio/connection/service.rbs +0 -14
  537. data/sig/temporalio/connection/test_service.rbs +0 -13
  538. data/sig/temporalio/connection/tls_options.rbs +0 -43
  539. data/sig/temporalio/connection/workflow_service.rbs +0 -48
  540. data/sig/temporalio/connection.rbs +0 -30
  541. data/sig/temporalio/data_converter.rbs +0 -35
  542. data/sig/temporalio/error/failure.rbs +0 -121
  543. data/sig/temporalio/error/workflow_failure.rbs +0 -9
  544. data/sig/temporalio/errors.rbs +0 -36
  545. data/sig/temporalio/failure_converter/base.rbs +0 -12
  546. data/sig/temporalio/failure_converter/basic.rbs +0 -86
  547. data/sig/temporalio/failure_converter.rbs +0 -5
  548. data/sig/temporalio/interceptor/activity_inbound.rbs +0 -21
  549. data/sig/temporalio/interceptor/activity_outbound.rbs +0 -10
  550. data/sig/temporalio/interceptor/chain.rbs +0 -24
  551. data/sig/temporalio/interceptor/client.rbs +0 -148
  552. data/sig/temporalio/interceptor.rbs +0 -6
  553. data/sig/temporalio/payload_codec/base.rbs +0 -12
  554. data/sig/temporalio/payload_converter/base.rbs +0 -12
  555. data/sig/temporalio/payload_converter/bytes.rbs +0 -9
  556. data/sig/temporalio/payload_converter/composite.rbs +0 -19
  557. data/sig/temporalio/payload_converter/encoding_base.rbs +0 -14
  558. data/sig/temporalio/payload_converter/json.rbs +0 -9
  559. data/sig/temporalio/payload_converter/nil.rbs +0 -9
  560. data/sig/temporalio/payload_converter.rbs +0 -5
  561. data/sig/temporalio/retry_policy.rbs +0 -25
  562. data/sig/temporalio/retry_state.rbs +0 -20
  563. data/sig/temporalio/runtime.rbs +0 -12
  564. data/sig/temporalio/testing/time_skipping_handle.rbs +0 -15
  565. data/sig/temporalio/testing/time_skipping_interceptor.rbs +0 -13
  566. data/sig/temporalio/testing/workflow_environment.rbs +0 -22
  567. data/sig/temporalio/testing.rbs +0 -35
  568. data/sig/temporalio/timeout_type.rbs +0 -15
  569. data/sig/temporalio/version.rbs +0 -3
  570. data/sig/temporalio/worker/activity_runner.rbs +0 -35
  571. data/sig/temporalio/worker/activity_worker.rbs +0 -44
  572. data/sig/temporalio/worker/reactor.rbs +0 -22
  573. data/sig/temporalio/worker/runner.rbs +0 -21
  574. data/sig/temporalio/worker/sync_worker.rbs +0 -23
  575. data/sig/temporalio/worker/thread_pool_executor.rbs +0 -23
  576. data/sig/temporalio/worker.rbs +0 -46
  577. data/sig/temporalio/workflow/async.rbs +0 -9
  578. data/sig/temporalio/workflow/execution_info.rbs +0 -55
  579. data/sig/temporalio/workflow/execution_status.rbs +0 -21
  580. data/sig/temporalio/workflow/future.rbs +0 -40
  581. data/sig/temporalio/workflow/id_reuse_policy.rbs +0 -15
  582. data/sig/temporalio/workflow/info.rbs +0 -55
  583. data/sig/temporalio/workflow/query_reject_condition.rbs +0 -14
  584. data/sig/temporalio.rbs +0 -2
  585. data/sig/thermite_patch.rbs +0 -15
@@ -0,0 +1,132 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/activity'
4
+ require 'temporalio/cancellation'
5
+ require 'temporalio/converters/payload_converter'
6
+ require 'temporalio/worker/activity_executor'
7
+
8
+ module Temporalio
9
+ module Testing
10
+ # Test environment for testing activities.
11
+ #
12
+ # Users can create this environment and then use {run} to execute activities on it. Often, since mutable things like
13
+ # cancellation can be set, users create this for each activity that is run. There is no real performance penalty for
14
+ # creating an environment for every run.
15
+ class ActivityEnvironment
16
+ # @return [Activity::Info] The activity info used by default. This is frozen, but can be dup'd and mutated to pass
17
+ # in to {initialize}.
18
+ def self.default_info
19
+ @default_info ||= Activity::Info.new(
20
+ activity_id: 'test',
21
+ activity_type: 'unknown',
22
+ attempt: 1,
23
+ current_attempt_scheduled_time: Time.at(0),
24
+ heartbeat_details: [],
25
+ heartbeat_timeout: nil,
26
+ local?: false,
27
+ schedule_to_close_timeout: 1.0,
28
+ scheduled_time: Time.at(0),
29
+ start_to_close_timeout: 1.0,
30
+ started_time: Time.at(0),
31
+ task_queue: 'test',
32
+ task_token: String.new('test', encoding: Encoding::ASCII_8BIT),
33
+ workflow_id: 'test',
34
+ workflow_namespace: 'default',
35
+ workflow_run_id: 'test-run',
36
+ workflow_type: 'test'
37
+ ).freeze
38
+ end
39
+
40
+ # Create a test environment for activities.
41
+ #
42
+ # @param info [Activity::Info] Value for {Activity::Context#info}.
43
+ # @param on_heartbeat [Proc(Array), nil] Proc that is called with all heartbeat details when
44
+ # {Activity::Context#heartbeat} is called.
45
+ # @param cancellation [Cancellation] Value for {Activity::Context#cancellation}.
46
+ # @param worker_shutdown_cancellation [Cancellation] Value for {Activity::Context#worker_shutdown_cancellation}.
47
+ # @param payload_converter [Converters::PayloadConverter] Value for {Activity::Context#payload_converter}.
48
+ # @param logger [Logger] Value for {Activity::Context#logger}.
49
+ # @param activity_executors [Hash<Symbol, Worker::ActivityExecutor>] Executors that activities can run within.
50
+ def initialize(
51
+ info: ActivityEnvironment.default_info,
52
+ on_heartbeat: nil,
53
+ cancellation: Cancellation.new,
54
+ worker_shutdown_cancellation: Cancellation.new,
55
+ payload_converter: Converters::PayloadConverter.default,
56
+ logger: Logger.new(nil),
57
+ activity_executors: Worker::ActivityExecutor.defaults
58
+ )
59
+ @info = info
60
+ @on_heartbeat = on_heartbeat
61
+ @cancellation = cancellation
62
+ @worker_shutdown_cancellation = worker_shutdown_cancellation
63
+ @payload_converter = payload_converter
64
+ @logger = logger
65
+ @activity_executors = activity_executors
66
+ end
67
+
68
+ # Run an activity and returns its result or raises its exception.
69
+ #
70
+ # @param activity [Activity, Class<Activity>, Activity::Definition] Activity to run.
71
+ # @param args [Array<Object>] Arguments to the activity.
72
+ # @return Activity result.
73
+ def run(activity, *args)
74
+ defn = Activity::Definition.from_activity(activity)
75
+ executor = @activity_executors[defn.executor]
76
+ raise ArgumentError, "Unknown executor: #{defn.executor}" if executor.nil?
77
+
78
+ queue = Queue.new
79
+ executor.execute_activity(defn) do
80
+ Activity::Context._current_executor = executor
81
+ executor.set_activity_context(defn, Context.new(
82
+ info: @info.dup,
83
+ on_heartbeat: @on_heartbeat,
84
+ cancellation: @cancellation,
85
+ worker_shutdown_cancellation: @worker_shutdown_cancellation,
86
+ payload_converter: @payload_converter,
87
+ logger: @logger
88
+ ))
89
+ queue.push([defn.proc.call(*args), nil])
90
+ rescue Exception => e # rubocop:disable Lint/RescueException Intentionally capturing all exceptions
91
+ queue.push([nil, e])
92
+ ensure
93
+ executor.set_activity_context(defn, nil)
94
+ Activity::Context._current_executor = nil
95
+ end
96
+
97
+ result, err = queue.pop
98
+ raise err unless err.nil?
99
+
100
+ result
101
+ end
102
+
103
+ # @!visibility private
104
+ class Context < Activity::Context
105
+ attr_reader :info, :cancellation, :worker_shutdown_cancellation, :payload_converter, :logger
106
+
107
+ def initialize( # rubocop:disable Lint/MissingSuper
108
+ info: ActivityEnvironment.default_info,
109
+ on_heartbeat: nil,
110
+ cancellation: Cancellation.new,
111
+ worker_shutdown_cancellation: Cancellation.new,
112
+ payload_converter: Converters::PayloadConverter.default,
113
+ logger: Logger.new(nil)
114
+ )
115
+ @info = info
116
+ @on_heartbeat = on_heartbeat
117
+ @cancellation = cancellation
118
+ @worker_shutdown_cancellation = worker_shutdown_cancellation
119
+ @payload_converter = payload_converter
120
+ @logger = logger
121
+ end
122
+
123
+ # @!visibility private
124
+ def heartbeat(*details)
125
+ @on_heartbeat&.call(details)
126
+ end
127
+ end
128
+
129
+ private_constant :Context
130
+ end
131
+ end
132
+ end
@@ -1,112 +1,137 @@
1
- require 'google/protobuf/well_known_types'
1
+ # frozen_string_literal: true
2
+
2
3
  require 'temporalio/client'
3
- require 'temporalio/testing/time_skipping_interceptor'
4
+ require 'temporalio/converters'
5
+ require 'temporalio/internal/bridge/testing'
6
+ require 'temporalio/runtime'
7
+ require 'temporalio/version'
4
8
 
5
9
  module Temporalio
6
10
  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.
11
+ # Test environment with a Temporal server for running workflows and more.
16
12
  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
22
-
23
- # @api private
24
- def initialize(server, connection, namespace)
25
- @server = server
26
- @connection = connection
27
- @namespace = namespace
28
- end
13
+ # @return [Client] Client for the server.
14
+ attr_reader :client
29
15
 
30
- # A default client to be used with this environment.
16
+ # Start a local dev server. This is a full Temporal dev server from the CLI that by default downloaded to tmp if
17
+ # not already present. The dev server is run as a child process. All options that start with +dev_server_+ are for
18
+ # this specific implementation and therefore are not stable and may be changed as the underlying implementation
19
+ # changes.
31
20
  #
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
39
- end
40
-
41
- # Sleep in this environment.
21
+ # If a block is given it is passed the environment and the environment is shut down after. If a block is not
22
+ # given, the environment is returned and {shutdown} needs to be called manually.
42
23
  #
43
- # This awaits a regular {Kernel.sleep} in regular environments, or manually skips time in
44
- # time-skipping environments.
24
+ # @param namespace [String] Namespace for the server.
25
+ # @param data_converter [Converters::DataConverter] Data converter for the client.
26
+ # @param interceptors [Array<Client::Interceptor>] Interceptors for the client.
27
+ # @param logger [Logger] Logger for the client.
28
+ # @param default_workflow_query_reject_condition [WorkflowQueryRejectCondition, nil] Default rejection condition
29
+ # for the client.
30
+ # @param ip [String] IP to bind to.
31
+ # @param port [Integer, nil] Port to bind on, or +nil+ for random.
32
+ # @param ui [Boolean] If +true+, also starts the UI.
33
+ # @param runtime [Runtime] Runtime for the server and client.
34
+ # @param dev_server_existing_path [String, nil] Existing CLI path to use instead of downloading and caching to
35
+ # tmp.
36
+ # @param dev_server_database_filename [String, nil] Persistent SQLite filename to use across local server runs.
37
+ # Default of +nil+ means in-memory only.
38
+ # @param dev_server_log_format [String] Log format for CLI dev server.
39
+ # @param dev_server_log_level [String] Log level for CLI dev server.
40
+ # @param dev_server_download_version [String] Version of dev server to download and cache.
41
+ # @param dev_server_download_dest_dir [String, nil] Where to download. Defaults to tmp.
42
+ # @param dev_server_extra_args [Array<String>] Any extra arguments for the CLI dev server.
45
43
  #
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),
52
- )
53
- connection.test_service.unlock_time_skipping_with_sleep(request)
54
-
55
- nil
56
- end
57
-
58
- # Get the current time known to this environment.
44
+ # @yield [environment] If a block is given, it is called with the environment and upon complete the environment is
45
+ # shutdown.
46
+ # @yieldparam environment [WorkflowEnvironment] Environment that is shut down upon block completion.
59
47
  #
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.
62
- #
63
- # @return [Time]
64
- def current_time
65
- return Time.now unless supports_time_skipping?
66
-
67
- connection.test_service.get_current_time&.time&.to_time
48
+ # @return [WorkflowEnvironment, Object] Started local server environment with client if there was no block given,
49
+ # or block result if block was given.
50
+ def self.start_local(
51
+ namespace: 'default',
52
+ data_converter: Converters::DataConverter.default,
53
+ interceptors: [],
54
+ logger: Logger.new($stdout, level: Logger::WARN),
55
+ default_workflow_query_reject_condition: nil,
56
+ ip: '127.0.0.1',
57
+ port: nil,
58
+ ui: false, # rubocop:disable Naming/MethodParameterName
59
+ runtime: Runtime.default,
60
+ dev_server_existing_path: nil,
61
+ dev_server_database_filename: nil,
62
+ dev_server_log_format: 'pretty',
63
+ dev_server_log_level: 'warn',
64
+ dev_server_download_version: 'default',
65
+ dev_server_download_dest_dir: nil,
66
+ dev_server_extra_args: []
67
+ )
68
+ server_options = Internal::Bridge::Testing::EphemeralServer::StartDevServerOptions.new(
69
+ existing_path: dev_server_existing_path,
70
+ sdk_name: 'sdk-ruby',
71
+ sdk_version: VERSION,
72
+ download_version: dev_server_download_version,
73
+ download_dest_dir: dev_server_download_dest_dir,
74
+ namespace:,
75
+ ip:,
76
+ port:,
77
+ database_filename: dev_server_database_filename,
78
+ ui:,
79
+ log_format: dev_server_log_format,
80
+ log_level: dev_server_log_level,
81
+ extra_args: dev_server_extra_args
82
+ )
83
+ core_server = Internal::Bridge::Testing::EphemeralServer.start_dev_server(runtime._core_runtime, server_options)
84
+ # Try to connect, shutdown if we can't
85
+ begin
86
+ client = Client.connect(
87
+ core_server.target,
88
+ namespace,
89
+ data_converter:,
90
+ interceptors:,
91
+ logger:,
92
+ default_workflow_query_reject_condition:,
93
+ runtime:
94
+ )
95
+ server = Ephemeral.new(client, core_server)
96
+ rescue StandardError
97
+ core_server.shutdown
98
+ raise
99
+ end
100
+ if block_given?
101
+ begin
102
+ yield server
103
+ ensure
104
+ server.shutdown
105
+ end
106
+ else
107
+ server
108
+ end
68
109
  end
69
110
 
70
- # Whether this environment supports time skipping.
111
+ # Create workflow environment to an existing server with the given client.
71
112
  #
72
- # @return [Boolean]
73
- def supports_time_skipping?
74
- server.has_test_service?
113
+ # @param client [Client] Client to existing server.
114
+ def initialize(client)
115
+ @client = client
75
116
  end
76
117
 
77
- # Shut down this environment.
118
+ # Shutdown this workflow environment.
78
119
  def shutdown
79
- server.shutdown
120
+ # Do nothing by default
80
121
  end
81
122
 
82
- # Unlock time skipping.
83
- #
84
- # This will have no effect in an environment that does not support time-skipping (e.g.
85
- # Temporalite).
86
- #
87
- # @yield A block to be called once time skipping has been unlocked.
88
- #
89
- # @return [any] The return value of the block.
90
- def with_time_skipping
91
- return yield unless supports_time_skipping?
92
-
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,
97
- )
123
+ # @!visibility private
124
+ class Ephemeral < WorkflowEnvironment
125
+ def initialize(client, core_server)
126
+ super(client)
127
+ @core_server = core_server
128
+ end
98
129
 
99
- yield
100
- ensure
101
- connection.test_service.lock_time_skipping(
102
- Temporalio::Api::TestService::V1::LockTimeSkippingRequest.new,
103
- )
130
+ # @!visibility private
131
+ def shutdown
132
+ @core_server.shutdown
104
133
  end
105
134
  end
106
-
107
- private
108
-
109
- attr_reader :server
110
135
  end
111
136
  end
112
137
  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.2.0'
3
5
  end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'temporalio/error'
4
+ require 'temporalio/worker/activity_executor'
5
+
6
+ module Temporalio
7
+ class Worker
8
+ class ActivityExecutor
9
+ # Activity executor for scheduling activites as fibers.
10
+ class Fiber
11
+ # @return [Fiber] Default/shared Fiber executor instance.
12
+ def self.default
13
+ @default ||= new
14
+ end
15
+
16
+ # @see ActivityExecutor.initialize_activity
17
+ def initialize_activity(defn)
18
+ # If there is not a current scheduler, we're going to preemptively
19
+ # fail the registration
20
+ return unless ::Fiber.current_scheduler.nil?
21
+
22
+ raise ArgumentError, "Activity '#{defn.name}' wants a fiber executor but no current fiber scheduler"
23
+ end
24
+
25
+ # @see ActivityExecutor.initialize_activity
26
+ def execute_activity(_defn, &)
27
+ ::Fiber.schedule(&)
28
+ end
29
+
30
+ # @see ActivityExecutor.activity_context
31
+ def activity_context
32
+ ::Fiber[:temporal_activity_context]
33
+ end
34
+
35
+ # @see ActivityExecutor.set_activity_context
36
+ def set_activity_context(defn, context)
37
+ ::Fiber[:temporal_activity_context] = context
38
+ # If they have opted in to raising on cancel, wire that up
39
+ return unless defn.cancel_raise
40
+
41
+ fiber = ::Fiber.current
42
+ context&.cancellation&.add_cancel_callback do
43
+ fiber.raise(Error::CanceledError.new('Activity canceled'))
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end