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,596 +0,0 @@
1
- mod activities;
2
- mod appdata_propagation;
3
- mod cancel_external;
4
- mod cancel_wf;
5
- mod child_workflows;
6
- mod continue_as_new;
7
- mod determinism;
8
- mod local_activities;
9
- mod modify_wf_properties;
10
- mod patches;
11
- mod replay;
12
- mod resets;
13
- mod signals;
14
- mod stickyness;
15
- mod timers;
16
- mod upsert_search_attrs;
17
-
18
- use assert_matches::assert_matches;
19
- use futures::{channel::mpsc::UnboundedReceiver, future, SinkExt, StreamExt};
20
- use std::{
21
- collections::HashMap,
22
- sync::{
23
- atomic::{AtomicUsize, Ordering},
24
- Arc,
25
- },
26
- time::Duration,
27
- };
28
- use temporal_client::{WorkflowClientTrait, WorkflowOptions};
29
- use temporal_sdk::{
30
- interceptors::WorkerInterceptor, ActContext, ActivityOptions, WfContext, WorkflowResult,
31
- };
32
- use temporal_sdk_core::replay::HistoryForReplay;
33
- use temporal_sdk_core_api::{errors::PollWfError, Worker};
34
- use temporal_sdk_core_protos::{
35
- coresdk::{
36
- activity_result::ActivityExecutionResult,
37
- workflow_activation::{workflow_activation_job, WorkflowActivation, WorkflowActivationJob},
38
- workflow_commands::{ActivityCancellationType, FailWorkflowExecution, StartTimer},
39
- workflow_completion::WorkflowActivationCompletion,
40
- ActivityTaskCompletion, AsJsonPayloadExt, IntoCompletion,
41
- },
42
- temporal::api::{failure::v1::Failure, history::v1::history_event},
43
- };
44
- use temporal_sdk_core_test_utils::{
45
- drain_pollers_and_shutdown, history_from_proto_binary, init_core_and_create_wf,
46
- init_core_replay_preloaded, schedule_activity_cmd, CoreWfStarter, WorkerTestHelpers,
47
- };
48
- use tokio::time::sleep;
49
- use uuid::Uuid;
50
-
51
- // TODO: We should get expected histories for these tests and confirm that the history at the end
52
- // matches.
53
-
54
- #[tokio::test]
55
- async fn parallel_workflows_same_queue() {
56
- let mut starter = CoreWfStarter::new("parallel_workflows_same_queue");
57
- let core = starter.get_worker().await;
58
- let num_workflows = 25usize;
59
-
60
- let run_ids: Vec<_> = future::join_all(
61
- (0..num_workflows).map(|i| starter.start_wf_with_id(format!("wf-id-{i}"))),
62
- )
63
- .await;
64
-
65
- let mut send_chans = HashMap::new();
66
- async fn wf_task(
67
- worker: Arc<dyn Worker>,
68
- mut task_chan: UnboundedReceiver<WorkflowActivation>,
69
- ) {
70
- let task = task_chan.next().await.unwrap();
71
- assert_matches!(
72
- task.jobs.as_slice(),
73
- [WorkflowActivationJob {
74
- variant: Some(workflow_activation_job::Variant::StartWorkflow(_)),
75
- }]
76
- );
77
- worker
78
- .complete_timer(&task.run_id, 1, Duration::from_secs(1))
79
- .await;
80
- let task = task_chan.next().await.unwrap();
81
- worker.complete_execution(&task.run_id).await;
82
- }
83
-
84
- let handles: Vec<_> = run_ids
85
- .iter()
86
- .map(|run_id| {
87
- let (tx, rx) = futures::channel::mpsc::unbounded();
88
- send_chans.insert(run_id.clone(), tx);
89
- tokio::spawn(wf_task(core.clone(), rx))
90
- })
91
- .collect();
92
-
93
- for _ in 0..num_workflows * 2 {
94
- let task = core.poll_workflow_activation().await.unwrap();
95
- send_chans
96
- .get(&task.run_id)
97
- .unwrap()
98
- .send(task)
99
- .await
100
- .unwrap();
101
- }
102
-
103
- for handle in handles {
104
- handle.await.unwrap()
105
- }
106
- drain_pollers_and_shutdown(&core).await;
107
- }
108
-
109
- static RUN_CT: AtomicUsize = AtomicUsize::new(0);
110
- pub async fn cache_evictions_wf(command_sink: WfContext) -> WorkflowResult<()> {
111
- RUN_CT.fetch_add(1, Ordering::SeqCst);
112
- command_sink.timer(Duration::from_secs(1)).await;
113
- Ok(().into())
114
- }
115
-
116
- #[tokio::test]
117
- async fn workflow_lru_cache_evictions() {
118
- let wf_type = "workflow_lru_cache_evictions";
119
- let mut starter = CoreWfStarter::new(wf_type);
120
- starter.no_remote_activities().max_cached_workflows(1);
121
- let mut worker = starter.worker().await;
122
- worker.register_wf(wf_type.to_string(), cache_evictions_wf);
123
-
124
- let n_workflows = 3;
125
- for _ in 0..n_workflows {
126
- worker
127
- .submit_wf(
128
- format!("wce-{}", Uuid::new_v4()),
129
- wf_type.to_string(),
130
- vec![],
131
- WorkflowOptions::default(),
132
- )
133
- .await
134
- .unwrap();
135
- }
136
- struct CacheAsserter;
137
- #[async_trait::async_trait(?Send)]
138
- impl WorkerInterceptor for CacheAsserter {
139
- async fn on_workflow_activation_completion(&self, _: &WorkflowActivationCompletion) {}
140
- fn on_shutdown(&self, sdk_worker: &temporal_sdk::Worker) {
141
- // 0 since the sdk worker force-evicts and drains everything on shutdown.
142
- assert_eq!(sdk_worker.cached_workflows(), 0);
143
- }
144
- }
145
- worker
146
- .run_until_done_intercepted(Some(CacheAsserter))
147
- .await
148
- .unwrap();
149
- // The wf must have started more than # workflows times, since all but one must experience
150
- // an eviction
151
- assert!(RUN_CT.load(Ordering::SeqCst) > n_workflows);
152
- }
153
-
154
- // Ideally this would be a unit test, but returning a pending future with mockall bloats the mock
155
- // code a bunch and just isn't worth it. Do it when https://github.com/asomers/mockall/issues/189 is
156
- // fixed.
157
- #[tokio::test]
158
- async fn shutdown_aborts_actively_blocked_poll() {
159
- let mut starter = CoreWfStarter::new("shutdown_aborts_actively_blocked_poll");
160
- let core = starter.get_worker().await;
161
- // Begin the poll, and request shutdown from another thread after a small period of time.
162
- let tcore = core.clone();
163
- let handle = tokio::spawn(async move {
164
- std::thread::sleep(Duration::from_millis(100));
165
- drain_pollers_and_shutdown(&tcore).await;
166
- });
167
- assert_matches!(
168
- core.poll_workflow_activation().await.unwrap_err(),
169
- PollWfError::ShutDown
170
- );
171
- handle.await.unwrap();
172
- // Ensure double-shutdown doesn't explode
173
- core.shutdown().await;
174
- assert_matches!(
175
- core.poll_workflow_activation().await.unwrap_err(),
176
- PollWfError::ShutDown
177
- );
178
- }
179
-
180
- #[rstest::rstest]
181
- #[tokio::test]
182
- async fn fail_wf_task(#[values(true, false)] replay: bool) {
183
- let core = if replay {
184
- // We need to send the history twice, since we fail it the first time.
185
- let mut hist_proto = history_from_proto_binary("histories/fail_wf_task.bin")
186
- .await
187
- .unwrap();
188
- let hist = HistoryForReplay::new(hist_proto.clone(), "fake".to_string());
189
- if let Some(history_event::Attributes::WorkflowExecutionStartedEventAttributes(
190
- ref mut attrs,
191
- )) = hist_proto.events[0].attributes
192
- {
193
- attrs.original_execution_run_id = "run2".to_string();
194
- attrs.first_execution_run_id = "run2".to_string();
195
- }
196
- let hist2 = HistoryForReplay::new(hist_proto, "fake".to_string());
197
- init_core_replay_preloaded("fail_wf_task", [hist, hist2])
198
- } else {
199
- let mut starter = init_core_and_create_wf("fail_wf_task").await;
200
- starter.get_worker().await
201
- };
202
- // Start with a timer
203
- let task = core.poll_workflow_activation().await.unwrap();
204
- core.complete_timer(&task.run_id, 0, Duration::from_millis(200))
205
- .await;
206
-
207
- // Then break for whatever reason
208
- let task = core.poll_workflow_activation().await.unwrap();
209
- core.complete_workflow_activation(WorkflowActivationCompletion::fail(
210
- task.run_id,
211
- Failure::application_failure("I did an oopsie".to_string(), false),
212
- ))
213
- .await
214
- .unwrap();
215
-
216
- // The server will want to retry the task. This time we finish the workflow -- but we need
217
- // to poll a couple of times as there will be more than one required workflow activation.
218
- let task = core.poll_workflow_activation().await.unwrap();
219
- // The first poll response will tell us to evict
220
- assert_matches!(
221
- task.jobs.as_slice(),
222
- [WorkflowActivationJob {
223
- variant: Some(workflow_activation_job::Variant::RemoveFromCache(_)),
224
- }]
225
- );
226
- core.complete_workflow_activation(WorkflowActivationCompletion::empty(task.run_id))
227
- .await
228
- .unwrap();
229
-
230
- let task = core.poll_workflow_activation().await.unwrap();
231
- core.complete_workflow_activation(WorkflowActivationCompletion::from_cmds(
232
- task.run_id,
233
- vec![StartTimer {
234
- seq: 0,
235
- start_to_fire_timeout: Some(prost_dur!(from_millis(200))),
236
- }
237
- .into()],
238
- ))
239
- .await
240
- .unwrap();
241
- let task = core.poll_workflow_activation().await.unwrap();
242
- core.complete_execution(&task.run_id).await;
243
- }
244
-
245
- #[tokio::test]
246
- async fn fail_workflow_execution() {
247
- let core = init_core_and_create_wf("fail_workflow_execution")
248
- .await
249
- .get_worker()
250
- .await;
251
- let task = core.poll_workflow_activation().await.unwrap();
252
- core.complete_timer(&task.run_id, 0, Duration::from_secs(1))
253
- .await;
254
- let task = core.poll_workflow_activation().await.unwrap();
255
- core.complete_workflow_activation(WorkflowActivationCompletion::from_cmds(
256
- task.run_id,
257
- vec![FailWorkflowExecution {
258
- failure: Some(Failure::application_failure("I'm ded".to_string(), false)),
259
- }
260
- .into()],
261
- ))
262
- .await
263
- .unwrap();
264
- }
265
-
266
- #[tokio::test]
267
- async fn signal_workflow() {
268
- let mut starter = init_core_and_create_wf("signal_workflow").await;
269
- let core = starter.get_worker().await;
270
- let client = starter.get_client().await;
271
- let workflow_id = starter.get_task_queue().to_string();
272
-
273
- let signal_id_1 = "signal1";
274
- let signal_id_2 = "signal2";
275
- let res = core.poll_workflow_activation().await.unwrap();
276
- // Task is completed with no commands
277
- core.complete_workflow_activation(WorkflowActivationCompletion::from_cmds(
278
- res.run_id.clone(),
279
- vec![],
280
- ))
281
- .await
282
- .unwrap();
283
-
284
- // Send the signals to the server
285
- client
286
- .signal_workflow_execution(
287
- workflow_id.to_string(),
288
- res.run_id.to_string(),
289
- signal_id_1.to_string(),
290
- None,
291
- None,
292
- )
293
- .await
294
- .unwrap();
295
- client
296
- .signal_workflow_execution(
297
- workflow_id.to_string(),
298
- res.run_id.to_string(),
299
- signal_id_2.to_string(),
300
- None,
301
- None,
302
- )
303
- .await
304
- .unwrap();
305
-
306
- let mut res = core.poll_workflow_activation().await.unwrap();
307
- // Sometimes both signals are complete at once, sometimes only one, depending on server
308
- // Converting test to wf function type would make this shorter
309
- if res.jobs.len() == 2 {
310
- assert_matches!(
311
- res.jobs.as_slice(),
312
- [
313
- WorkflowActivationJob {
314
- variant: Some(workflow_activation_job::Variant::SignalWorkflow(_)),
315
- },
316
- WorkflowActivationJob {
317
- variant: Some(workflow_activation_job::Variant::SignalWorkflow(_)),
318
- }
319
- ]
320
- );
321
- } else if res.jobs.len() == 1 {
322
- assert_matches!(
323
- res.jobs.as_slice(),
324
- [WorkflowActivationJob {
325
- variant: Some(workflow_activation_job::Variant::SignalWorkflow(_)),
326
- },]
327
- );
328
- core.complete_workflow_activation(WorkflowActivationCompletion::from_cmds(
329
- res.run_id,
330
- vec![],
331
- ))
332
- .await
333
- .unwrap();
334
- res = core.poll_workflow_activation().await.unwrap();
335
- assert_matches!(
336
- res.jobs.as_slice(),
337
- [WorkflowActivationJob {
338
- variant: Some(workflow_activation_job::Variant::SignalWorkflow(_)),
339
- },]
340
- );
341
- }
342
- core.complete_execution(&res.run_id).await;
343
- }
344
-
345
- #[tokio::test]
346
- async fn signal_workflow_signal_not_handled_on_workflow_completion() {
347
- let mut starter =
348
- init_core_and_create_wf("signal_workflow_signal_not_handled_on_workflow_completion").await;
349
- let core = starter.get_worker().await;
350
- let workflow_id = starter.get_task_queue().to_string();
351
- let signal_id_1 = "signal1";
352
- for i in 1..=2 {
353
- let res = core.poll_workflow_activation().await.unwrap();
354
- // Task is completed with a timer
355
- core.complete_workflow_activation(WorkflowActivationCompletion::from_cmds(
356
- res.run_id,
357
- vec![StartTimer {
358
- seq: 0,
359
- start_to_fire_timeout: Some(prost_dur!(from_millis(10))),
360
- }
361
- .into()],
362
- ))
363
- .await
364
- .unwrap();
365
-
366
- let res = core.poll_workflow_activation().await.unwrap();
367
-
368
- if i == 1 {
369
- // First attempt we should only see the timer being fired
370
- assert_matches!(
371
- res.jobs.as_slice(),
372
- [WorkflowActivationJob {
373
- variant: Some(workflow_activation_job::Variant::FireTimer(_)),
374
- }]
375
- );
376
-
377
- let run_id = res.run_id.clone();
378
-
379
- // Send the signal to the server
380
- starter
381
- .get_client()
382
- .await
383
- .signal_workflow_execution(
384
- workflow_id.clone(),
385
- res.run_id.to_string(),
386
- signal_id_1.to_string(),
387
- None,
388
- None,
389
- )
390
- .await
391
- .unwrap();
392
-
393
- // Send completion - not having seen a poll response with a signal in it yet (unhandled
394
- // command error will be logged as a warning and an eviction will be issued)
395
- core.complete_execution(&run_id).await;
396
-
397
- // We should be told to evict
398
- let res = core.poll_workflow_activation().await.unwrap();
399
- assert_matches!(
400
- res.jobs.as_slice(),
401
- [WorkflowActivationJob {
402
- variant: Some(workflow_activation_job::Variant::RemoveFromCache(_)),
403
- }]
404
- );
405
- core.complete_workflow_activation(WorkflowActivationCompletion::empty(res.run_id))
406
- .await
407
- .unwrap();
408
- // Loop to the top to handle wf from the beginning
409
- continue;
410
- }
411
-
412
- // On the second attempt, we will see the signal we failed to handle as well as the timer
413
- assert_matches!(
414
- res.jobs.as_slice(),
415
- [
416
- WorkflowActivationJob {
417
- variant: Some(workflow_activation_job::Variant::FireTimer(_)),
418
- },
419
- WorkflowActivationJob {
420
- variant: Some(workflow_activation_job::Variant::SignalWorkflow(_)),
421
- }
422
- ]
423
- );
424
- core.complete_execution(&res.run_id).await;
425
- }
426
- }
427
-
428
- #[tokio::test]
429
- async fn wft_timeout_doesnt_create_unsolvable_autocomplete() {
430
- let activity_id = "act-1";
431
- let signal_at_start = "at-start";
432
- let signal_at_complete = "at-complete";
433
- let mut wf_starter = CoreWfStarter::new("wft_timeout_doesnt_create_unsolvable_autocomplete");
434
- wf_starter
435
- // Test needs eviction on and a short timeout
436
- .max_cached_workflows(0)
437
- .max_wft(1);
438
- wf_starter.workflow_options.task_timeout = Some(Duration::from_secs(1));
439
- let core = wf_starter.get_worker().await;
440
- let client = wf_starter.get_client().await;
441
- let task_q = wf_starter.get_task_queue();
442
- let wf_id = &wf_starter.get_wf_id().to_owned();
443
-
444
- // Set up some helpers for polling and completing
445
- let poll_sched_act = || async {
446
- let wf_task = core.poll_workflow_activation().await.unwrap();
447
- core.complete_workflow_activation(
448
- schedule_activity_cmd(
449
- 0,
450
- task_q,
451
- activity_id,
452
- ActivityCancellationType::TryCancel,
453
- Duration::from_secs(60),
454
- Duration::from_secs(60),
455
- )
456
- .into_completion(wf_task.run_id.clone()),
457
- )
458
- .await
459
- .unwrap();
460
- wf_task
461
- };
462
- wf_starter.start_wf_with_id(wf_id.to_string()).await;
463
-
464
- // Poll and schedule the activity
465
- let wf_task = poll_sched_act().await;
466
- // Before polling for a task again, we start and complete the activity and send the
467
- // corresponding signals.
468
- let ac_task = core.poll_activity_task().await.unwrap();
469
- let rid = wf_task.run_id.clone();
470
- // Send the signals to the server & resolve activity -- sometimes this happens too fast
471
- sleep(Duration::from_millis(200)).await;
472
- client
473
- .signal_workflow_execution(
474
- wf_id.to_string(),
475
- rid,
476
- signal_at_start.to_string(),
477
- None,
478
- None,
479
- )
480
- .await
481
- .unwrap();
482
- // Complete activity successfully.
483
- core.complete_activity_task(ActivityTaskCompletion {
484
- task_token: ac_task.task_token,
485
- result: Some(ActivityExecutionResult::ok(Default::default())),
486
- })
487
- .await
488
- .unwrap();
489
- let rid = wf_task.run_id.clone();
490
- client
491
- .signal_workflow_execution(
492
- wf_id.to_string(),
493
- rid,
494
- signal_at_complete.to_string(),
495
- None,
496
- None,
497
- )
498
- .await
499
- .unwrap();
500
- // Now poll again, it will be an eviction b/c non-sticky mode.
501
- let wf_task = core.poll_workflow_activation().await.unwrap();
502
- assert_matches!(
503
- wf_task.jobs.as_slice(),
504
- [WorkflowActivationJob {
505
- variant: Some(workflow_activation_job::Variant::RemoveFromCache(_)),
506
- }]
507
- );
508
- core.complete_workflow_activation(WorkflowActivationCompletion::empty(wf_task.run_id))
509
- .await
510
- .unwrap();
511
- // Start from the beginning
512
- poll_sched_act().await;
513
- let wf_task = core.poll_workflow_activation().await.unwrap();
514
- // Time out this time
515
- sleep(Duration::from_secs(2)).await;
516
- // Poll again, which should not have any work to do and spin, until the complete goes through.
517
- // Which will be rejected with not found, producing an eviction.
518
- let (wf_task, _) = tokio::join!(
519
- async { core.poll_workflow_activation().await.unwrap() },
520
- async {
521
- sleep(Duration::from_millis(500)).await;
522
- // Reply to the first one, finally
523
- core.complete_execution(&wf_task.run_id).await;
524
- }
525
- );
526
- assert_matches!(
527
- wf_task.jobs.as_slice(),
528
- [WorkflowActivationJob {
529
- variant: Some(workflow_activation_job::Variant::RemoveFromCache(_)),
530
- }]
531
- );
532
- core.complete_workflow_activation(WorkflowActivationCompletion::empty(wf_task.run_id))
533
- .await
534
- .unwrap();
535
- // Do it all over again, without timing out this time
536
- poll_sched_act().await;
537
- let wf_task = core.poll_workflow_activation().await.unwrap();
538
- // Server can sometimes arbitrarily re-order the activity complete to be after the second signal
539
- // Seeing 3 jobs is enough info.
540
- assert_eq!(wf_task.jobs.len(), 3);
541
- core.complete_execution(&wf_task.run_id).await;
542
- }
543
-
544
- /// We had a bug related to polling being faster than completion causing issues with cache
545
- /// overflow. This test intentionally makes completes slower than polls to evaluate that.
546
- ///
547
- /// It's expected that this test may generate some task timeouts.
548
- #[tokio::test]
549
- async fn slow_completes_with_small_cache() {
550
- let wf_name = "slow_completes_with_small_cache";
551
- let mut starter = CoreWfStarter::new(wf_name);
552
- starter.max_wft(5).max_cached_workflows(5);
553
- let mut worker = starter.worker().await;
554
- worker.register_wf(wf_name.to_owned(), |ctx: WfContext| async move {
555
- for _ in 0..3 {
556
- ctx.activity(ActivityOptions {
557
- activity_type: "echo_activity".to_string(),
558
- start_to_close_timeout: Some(Duration::from_secs(5)),
559
- input: "hi!".as_json_payload().expect("serializes fine"),
560
- ..Default::default()
561
- })
562
- .await;
563
- ctx.timer(Duration::from_secs(1)).await;
564
- }
565
- Ok(().into())
566
- });
567
- worker.register_activity(
568
- "echo_activity",
569
- |_ctx: ActContext, echo_me: String| async move { Ok(echo_me) },
570
- );
571
- for i in 0..20 {
572
- worker
573
- .submit_wf(
574
- format!("{wf_name}_{i}"),
575
- wf_name.to_owned(),
576
- vec![],
577
- WorkflowOptions::default(),
578
- )
579
- .await
580
- .unwrap();
581
- }
582
-
583
- struct SlowCompleter {}
584
- #[async_trait::async_trait(?Send)]
585
- impl WorkerInterceptor for SlowCompleter {
586
- async fn on_workflow_activation_completion(&self, _: &WorkflowActivationCompletion) {
587
- // They don't need to be much slower
588
- tokio::time::sleep(Duration::from_millis(100)).await;
589
- }
590
- fn on_shutdown(&self, _: &temporal_sdk::Worker) {}
591
- }
592
- worker
593
- .run_until_done_intercepted(Some(SlowCompleter {}))
594
- .await
595
- .unwrap();
596
- }
@@ -1,103 +0,0 @@
1
- //! Integration tests
2
-
3
- #[macro_use]
4
- extern crate rstest;
5
- #[macro_use]
6
- extern crate temporal_sdk_core_test_utils;
7
-
8
- #[cfg(test)]
9
- mod integ_tests {
10
- mod client_tests;
11
- mod ephemeral_server_tests;
12
- mod heartbeat_tests;
13
- mod metrics_tests;
14
- mod polling_tests;
15
- mod queries_tests;
16
- mod visibility_tests;
17
- mod workflow_tests;
18
-
19
- use std::str::FromStr;
20
- use temporal_client::WorkflowService;
21
- use temporal_sdk_core::{
22
- init_worker, ClientOptionsBuilder, ClientTlsConfig, CoreRuntime, TlsConfig,
23
- WorkflowClientTrait,
24
- };
25
- use temporal_sdk_core_api::worker::WorkerConfigBuilder;
26
- use temporal_sdk_core_protos::temporal::api::workflowservice::v1::ListNamespacesRequest;
27
- use temporal_sdk_core_test_utils::{
28
- get_integ_server_options, get_integ_telem_options, NAMESPACE,
29
- };
30
- use url::Url;
31
-
32
- // Create a worker like a bridge would (unwraps aside)
33
- #[tokio::test]
34
- #[ignore] // Really a compile time check more than anything
35
- async fn lang_bridge_example() {
36
- let opts = get_integ_server_options();
37
- let runtime = CoreRuntime::new_assume_tokio(get_integ_telem_options()).unwrap();
38
- let mut retrying_client = opts
39
- .connect_no_namespace(runtime.metric_meter().as_deref(), None)
40
- .await
41
- .unwrap();
42
-
43
- let _worker = init_worker(
44
- &runtime,
45
- WorkerConfigBuilder::default()
46
- .namespace("default")
47
- .task_queue("Wheee!")
48
- .build()
49
- .unwrap(),
50
- // clone the client if you intend to use it later. Strip off the retry wrapper since
51
- // worker will assert its own
52
- retrying_client.clone(),
53
- );
54
-
55
- // Do things with worker or client
56
- let _ = retrying_client
57
- .list_namespaces(ListNamespacesRequest::default())
58
- .await;
59
- }
60
-
61
- // TODO: Currently ignored because starting up the docker image with TLS requires some hoop
62
- // jumping. We should upgrade CI to be able to do that but this was manually run against
63
- // https://github.com/temporalio/customization-samples/tree/master/tls/tls-simple
64
- #[tokio::test]
65
- #[ignore]
66
- async fn tls_test() {
67
- // Load certs/keys
68
- let root = tokio::fs::read(
69
- "/home/sushi/dev/temporal/customization-samples/tls/tls-simple/certs/ca.cert",
70
- )
71
- .await
72
- .unwrap();
73
- let client_cert = tokio::fs::read(
74
- "/home/sushi/dev/temporal/customization-samples/tls/tls-simple/certs/client.pem",
75
- )
76
- .await
77
- .unwrap();
78
- let client_private_key = tokio::fs::read(
79
- "/home/sushi/dev/temporal/customization-samples/tls/tls-simple/certs/client.key",
80
- )
81
- .await
82
- .unwrap();
83
- let sgo = ClientOptionsBuilder::default()
84
- .target_url(Url::from_str("https://localhost:7233").unwrap())
85
- .client_name("tls_tester")
86
- .client_version("clientver")
87
- .tls_cfg(TlsConfig {
88
- server_root_ca_cert: Some(root),
89
- domain: Some("tls-sample".to_string()),
90
- client_tls_config: Some(ClientTlsConfig {
91
- client_cert,
92
- client_private_key,
93
- }),
94
- })
95
- .build()
96
- .unwrap();
97
- let con = sgo
98
- .connect(NAMESPACE.to_string(), None, None)
99
- .await
100
- .unwrap();
101
- con.list_namespaces().await.unwrap();
102
- }
103
- }