temporalio 0.2.0 → 0.4.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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -0
  3. data/Cargo.lock +980 -583
  4. data/Cargo.toml +2 -2
  5. data/Gemfile +7 -3
  6. data/README.md +769 -54
  7. data/Rakefile +10 -296
  8. data/ext/Cargo.toml +2 -0
  9. data/lib/temporalio/activity/complete_async_error.rb +1 -1
  10. data/lib/temporalio/activity/context.rb +18 -2
  11. data/lib/temporalio/activity/definition.rb +180 -65
  12. data/lib/temporalio/activity/info.rb +25 -21
  13. data/lib/temporalio/activity.rb +2 -59
  14. data/lib/temporalio/api/activity/v1/message.rb +25 -0
  15. data/lib/temporalio/api/batch/v1/message.rb +6 -1
  16. data/lib/temporalio/api/cloud/account/v1/message.rb +28 -0
  17. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +34 -1
  18. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +1 -1
  19. data/lib/temporalio/api/cloud/identity/v1/message.rb +6 -1
  20. data/lib/temporalio/api/cloud/namespace/v1/message.rb +8 -1
  21. data/lib/temporalio/api/cloud/nexus/v1/message.rb +31 -0
  22. data/lib/temporalio/api/cloud/operation/v1/message.rb +2 -1
  23. data/lib/temporalio/api/cloud/region/v1/message.rb +2 -1
  24. data/lib/temporalio/api/cloud/resource/v1/message.rb +23 -0
  25. data/lib/temporalio/api/cloud/sink/v1/message.rb +24 -0
  26. data/lib/temporalio/api/cloud/usage/v1/message.rb +31 -0
  27. data/lib/temporalio/api/command/v1/message.rb +1 -1
  28. data/lib/temporalio/api/common/v1/message.rb +8 -1
  29. data/lib/temporalio/api/deployment/v1/message.rb +38 -0
  30. data/lib/temporalio/api/enums/v1/batch_operation.rb +1 -1
  31. data/lib/temporalio/api/enums/v1/common.rb +1 -1
  32. data/lib/temporalio/api/enums/v1/deployment.rb +23 -0
  33. data/lib/temporalio/api/enums/v1/event_type.rb +1 -1
  34. data/lib/temporalio/api/enums/v1/failed_cause.rb +1 -1
  35. data/lib/temporalio/api/enums/v1/nexus.rb +21 -0
  36. data/lib/temporalio/api/enums/v1/reset.rb +1 -1
  37. data/lib/temporalio/api/enums/v1/workflow.rb +2 -1
  38. data/lib/temporalio/api/errordetails/v1/message.rb +3 -1
  39. data/lib/temporalio/api/failure/v1/message.rb +3 -1
  40. data/lib/temporalio/api/history/v1/message.rb +3 -1
  41. data/lib/temporalio/api/nexus/v1/message.rb +3 -2
  42. data/lib/temporalio/api/operatorservice/v1/service.rb +1 -1
  43. data/lib/temporalio/api/payload_visitor.rb +1581 -0
  44. data/lib/temporalio/api/query/v1/message.rb +2 -1
  45. data/lib/temporalio/api/schedule/v1/message.rb +2 -1
  46. data/lib/temporalio/api/taskqueue/v1/message.rb +4 -1
  47. data/lib/temporalio/api/testservice/v1/request_response.rb +31 -0
  48. data/lib/temporalio/api/testservice/v1/service.rb +23 -0
  49. data/lib/temporalio/api/workflow/v1/message.rb +9 -1
  50. data/lib/temporalio/api/workflowservice/v1/request_response.rb +46 -2
  51. data/lib/temporalio/api/workflowservice/v1/service.rb +1 -1
  52. data/lib/temporalio/api.rb +2 -0
  53. data/lib/temporalio/cancellation.rb +34 -14
  54. data/lib/temporalio/client/async_activity_handle.rb +12 -37
  55. data/lib/temporalio/client/connection/cloud_service.rb +309 -231
  56. data/lib/temporalio/client/connection/operator_service.rb +36 -84
  57. data/lib/temporalio/client/connection/service.rb +6 -5
  58. data/lib/temporalio/client/connection/test_service.rb +111 -0
  59. data/lib/temporalio/client/connection/workflow_service.rb +474 -441
  60. data/lib/temporalio/client/connection.rb +90 -44
  61. data/lib/temporalio/client/interceptor.rb +199 -60
  62. data/lib/temporalio/client/schedule.rb +991 -0
  63. data/lib/temporalio/client/schedule_handle.rb +126 -0
  64. data/lib/temporalio/client/with_start_workflow_operation.rb +115 -0
  65. data/lib/temporalio/client/workflow_execution.rb +26 -10
  66. data/lib/temporalio/client/workflow_handle.rb +41 -98
  67. data/lib/temporalio/client/workflow_update_handle.rb +3 -5
  68. data/lib/temporalio/client.rb +247 -44
  69. data/lib/temporalio/common_enums.rb +17 -0
  70. data/lib/temporalio/contrib/open_telemetry.rb +470 -0
  71. data/lib/temporalio/converters/data_converter.rb +4 -7
  72. data/lib/temporalio/converters/failure_converter.rb +5 -3
  73. data/lib/temporalio/converters/payload_converter/composite.rb +4 -0
  74. data/lib/temporalio/converters/payload_converter.rb +6 -8
  75. data/lib/temporalio/converters/raw_value.rb +20 -0
  76. data/lib/temporalio/error/failure.rb +1 -1
  77. data/lib/temporalio/error.rb +11 -2
  78. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +1 -1
  79. data/lib/temporalio/internal/bridge/api/common/common.rb +2 -1
  80. data/lib/temporalio/internal/bridge/api/core_interface.rb +5 -1
  81. data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +33 -0
  82. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +5 -1
  83. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +4 -1
  84. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +2 -1
  85. data/lib/temporalio/internal/bridge/client.rb +11 -6
  86. data/lib/temporalio/internal/bridge/runtime.rb +3 -0
  87. data/lib/temporalio/internal/bridge/testing.rb +23 -0
  88. data/lib/temporalio/internal/bridge/worker.rb +2 -0
  89. data/lib/temporalio/internal/bridge.rb +1 -1
  90. data/lib/temporalio/internal/client/implementation.rb +468 -71
  91. data/lib/temporalio/internal/metric.rb +122 -0
  92. data/lib/temporalio/internal/proto_utils.rb +118 -7
  93. data/lib/temporalio/internal/worker/activity_worker.rb +69 -29
  94. data/lib/temporalio/internal/worker/multi_runner.rb +53 -9
  95. data/lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb +54 -0
  96. data/lib/temporalio/internal/worker/workflow_instance/context.rb +383 -0
  97. data/lib/temporalio/internal/worker/workflow_instance/details.rb +46 -0
  98. data/lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb +32 -0
  99. data/lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb +22 -0
  100. data/lib/temporalio/internal/worker/workflow_instance/handler_execution.rb +25 -0
  101. data/lib/temporalio/internal/worker/workflow_instance/handler_hash.rb +41 -0
  102. data/lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb +97 -0
  103. data/lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb +62 -0
  104. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +400 -0
  105. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb +37 -0
  106. data/lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb +40 -0
  107. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +183 -0
  108. data/lib/temporalio/internal/worker/workflow_instance.rb +774 -0
  109. data/lib/temporalio/internal/worker/workflow_worker.rb +239 -0
  110. data/lib/temporalio/metric.rb +109 -0
  111. data/lib/temporalio/retry_policy.rb +37 -14
  112. data/lib/temporalio/runtime/metric_buffer.rb +94 -0
  113. data/lib/temporalio/runtime.rb +160 -79
  114. data/lib/temporalio/search_attributes.rb +93 -37
  115. data/lib/temporalio/testing/activity_environment.rb +44 -16
  116. data/lib/temporalio/testing/workflow_environment.rb +276 -7
  117. data/lib/temporalio/version.rb +1 -1
  118. data/lib/temporalio/worker/activity_executor/thread_pool.rb +9 -217
  119. data/lib/temporalio/worker/activity_executor.rb +3 -3
  120. data/lib/temporalio/worker/interceptor.rb +343 -66
  121. data/lib/temporalio/worker/thread_pool.rb +237 -0
  122. data/lib/temporalio/worker/tuner.rb +38 -0
  123. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +235 -0
  124. data/lib/temporalio/worker/workflow_executor.rb +26 -0
  125. data/lib/temporalio/worker/workflow_replayer.rb +350 -0
  126. data/lib/temporalio/worker.rb +235 -58
  127. data/lib/temporalio/workflow/activity_cancellation_type.rb +20 -0
  128. data/lib/temporalio/workflow/child_workflow_cancellation_type.rb +21 -0
  129. data/lib/temporalio/workflow/child_workflow_handle.rb +43 -0
  130. data/lib/temporalio/workflow/definition.rb +598 -0
  131. data/lib/temporalio/workflow/external_workflow_handle.rb +41 -0
  132. data/lib/temporalio/workflow/future.rb +151 -0
  133. data/lib/temporalio/workflow/handler_unfinished_policy.rb +13 -0
  134. data/lib/temporalio/workflow/info.rb +104 -0
  135. data/lib/temporalio/workflow/parent_close_policy.rb +19 -0
  136. data/lib/temporalio/workflow/update_info.rb +20 -0
  137. data/lib/temporalio/workflow.rb +575 -0
  138. data/lib/temporalio/workflow_history.rb +26 -1
  139. data/lib/temporalio.rb +4 -0
  140. data/temporalio.gemspec +4 -3
  141. metadata +73 -10
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: temporalio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Temporal Technologies Inc
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-10-18 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: google-protobuf
@@ -16,15 +15,28 @@ dependencies:
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: 3.27.0
18
+ version: 3.25.0
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: 3.27.0
27
- description:
25
+ version: 3.25.0
26
+ - !ruby/object:Gem::Dependency
27
+ name: logger
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
28
40
  email:
29
41
  - sdk@temporal.io
30
42
  executables: []
@@ -32,6 +44,7 @@ extensions:
32
44
  - ext/Cargo.toml
33
45
  extra_rdoc_files: []
34
46
  files:
47
+ - ".yardopts"
35
48
  - Cargo.lock
36
49
  - Cargo.toml
37
50
  - Gemfile
@@ -46,23 +59,32 @@ files:
46
59
  - lib/temporalio/activity/definition.rb
47
60
  - lib/temporalio/activity/info.rb
48
61
  - lib/temporalio/api.rb
62
+ - lib/temporalio/api/activity/v1/message.rb
49
63
  - lib/temporalio/api/batch/v1/message.rb
64
+ - lib/temporalio/api/cloud/account/v1/message.rb
50
65
  - lib/temporalio/api/cloud/cloudservice.rb
51
66
  - lib/temporalio/api/cloud/cloudservice/v1/request_response.rb
52
67
  - lib/temporalio/api/cloud/cloudservice/v1/service.rb
53
68
  - lib/temporalio/api/cloud/identity/v1/message.rb
54
69
  - lib/temporalio/api/cloud/namespace/v1/message.rb
70
+ - lib/temporalio/api/cloud/nexus/v1/message.rb
55
71
  - lib/temporalio/api/cloud/operation/v1/message.rb
56
72
  - lib/temporalio/api/cloud/region/v1/message.rb
73
+ - lib/temporalio/api/cloud/resource/v1/message.rb
74
+ - lib/temporalio/api/cloud/sink/v1/message.rb
75
+ - lib/temporalio/api/cloud/usage/v1/message.rb
57
76
  - lib/temporalio/api/command/v1/message.rb
58
77
  - lib/temporalio/api/common/v1/grpc_status.rb
59
78
  - lib/temporalio/api/common/v1/message.rb
79
+ - lib/temporalio/api/deployment/v1/message.rb
60
80
  - lib/temporalio/api/enums/v1/batch_operation.rb
61
81
  - lib/temporalio/api/enums/v1/command_type.rb
62
82
  - lib/temporalio/api/enums/v1/common.rb
83
+ - lib/temporalio/api/enums/v1/deployment.rb
63
84
  - lib/temporalio/api/enums/v1/event_type.rb
64
85
  - lib/temporalio/api/enums/v1/failed_cause.rb
65
86
  - lib/temporalio/api/enums/v1/namespace.rb
87
+ - lib/temporalio/api/enums/v1/nexus.rb
66
88
  - lib/temporalio/api/enums/v1/query.rb
67
89
  - lib/temporalio/api/enums/v1/reset.rb
68
90
  - lib/temporalio/api/enums/v1/schedule.rb
@@ -79,6 +101,7 @@ files:
79
101
  - lib/temporalio/api/operatorservice.rb
80
102
  - lib/temporalio/api/operatorservice/v1/request_response.rb
81
103
  - lib/temporalio/api/operatorservice/v1/service.rb
104
+ - lib/temporalio/api/payload_visitor.rb
82
105
  - lib/temporalio/api/protocol/v1/message.rb
83
106
  - lib/temporalio/api/query/v1/message.rb
84
107
  - lib/temporalio/api/replication/v1/message.rb
@@ -88,6 +111,8 @@ files:
88
111
  - lib/temporalio/api/sdk/v1/user_metadata.rb
89
112
  - lib/temporalio/api/sdk/v1/workflow_metadata.rb
90
113
  - lib/temporalio/api/taskqueue/v1/message.rb
114
+ - lib/temporalio/api/testservice/v1/request_response.rb
115
+ - lib/temporalio/api/testservice/v1/service.rb
91
116
  - lib/temporalio/api/update/v1/message.rb
92
117
  - lib/temporalio/api/version/v1/message.rb
93
118
  - lib/temporalio/api/workflow/v1/message.rb
@@ -102,8 +127,12 @@ files:
102
127
  - lib/temporalio/client/connection/cloud_service.rb
103
128
  - lib/temporalio/client/connection/operator_service.rb
104
129
  - lib/temporalio/client/connection/service.rb
130
+ - lib/temporalio/client/connection/test_service.rb
105
131
  - lib/temporalio/client/connection/workflow_service.rb
106
132
  - lib/temporalio/client/interceptor.rb
133
+ - lib/temporalio/client/schedule.rb
134
+ - lib/temporalio/client/schedule_handle.rb
135
+ - lib/temporalio/client/with_start_workflow_operation.rb
107
136
  - lib/temporalio/client/workflow_execution.rb
108
137
  - lib/temporalio/client/workflow_execution_count.rb
109
138
  - lib/temporalio/client/workflow_execution_status.rb
@@ -112,6 +141,7 @@ files:
112
141
  - lib/temporalio/client/workflow_update_handle.rb
113
142
  - lib/temporalio/client/workflow_update_wait_stage.rb
114
143
  - lib/temporalio/common_enums.rb
144
+ - lib/temporalio/contrib/open_telemetry.rb
115
145
  - lib/temporalio/converters.rb
116
146
  - lib/temporalio/converters/data_converter.rb
117
147
  - lib/temporalio/converters/failure_converter.rb
@@ -124,6 +154,7 @@ files:
124
154
  - lib/temporalio/converters/payload_converter/encoding.rb
125
155
  - lib/temporalio/converters/payload_converter/json_plain.rb
126
156
  - lib/temporalio/converters/payload_converter/json_protobuf.rb
157
+ - lib/temporalio/converters/raw_value.rb
127
158
  - lib/temporalio/error.rb
128
159
  - lib/temporalio/error/failure.rb
129
160
  - lib/temporalio/internal.rb
@@ -135,6 +166,7 @@ files:
135
166
  - lib/temporalio/internal/bridge/api/common/common.rb
136
167
  - lib/temporalio/internal/bridge/api/core_interface.rb
137
168
  - lib/temporalio/internal/bridge/api/external_data/external_data.rb
169
+ - lib/temporalio/internal/bridge/api/nexus/nexus.rb
138
170
  - lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb
139
171
  - lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb
140
172
  - lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb
@@ -143,11 +175,29 @@ files:
143
175
  - lib/temporalio/internal/bridge/testing.rb
144
176
  - lib/temporalio/internal/bridge/worker.rb
145
177
  - lib/temporalio/internal/client/implementation.rb
178
+ - lib/temporalio/internal/metric.rb
146
179
  - lib/temporalio/internal/proto_utils.rb
147
180
  - lib/temporalio/internal/worker/activity_worker.rb
148
181
  - lib/temporalio/internal/worker/multi_runner.rb
182
+ - lib/temporalio/internal/worker/workflow_instance.rb
183
+ - lib/temporalio/internal/worker/workflow_instance/child_workflow_handle.rb
184
+ - lib/temporalio/internal/worker/workflow_instance/context.rb
185
+ - lib/temporalio/internal/worker/workflow_instance/details.rb
186
+ - lib/temporalio/internal/worker/workflow_instance/external_workflow_handle.rb
187
+ - lib/temporalio/internal/worker/workflow_instance/externally_immutable_hash.rb
188
+ - lib/temporalio/internal/worker/workflow_instance/handler_execution.rb
189
+ - lib/temporalio/internal/worker/workflow_instance/handler_hash.rb
190
+ - lib/temporalio/internal/worker/workflow_instance/illegal_call_tracer.rb
191
+ - lib/temporalio/internal/worker/workflow_instance/inbound_implementation.rb
192
+ - lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb
193
+ - lib/temporalio/internal/worker/workflow_instance/replay_safe_logger.rb
194
+ - lib/temporalio/internal/worker/workflow_instance/replay_safe_metric.rb
195
+ - lib/temporalio/internal/worker/workflow_instance/scheduler.rb
196
+ - lib/temporalio/internal/worker/workflow_worker.rb
197
+ - lib/temporalio/metric.rb
149
198
  - lib/temporalio/retry_policy.rb
150
199
  - lib/temporalio/runtime.rb
200
+ - lib/temporalio/runtime/metric_buffer.rb
151
201
  - lib/temporalio/scoped_logger.rb
152
202
  - lib/temporalio/search_attributes.rb
153
203
  - lib/temporalio/testing.rb
@@ -159,7 +209,22 @@ files:
159
209
  - lib/temporalio/worker/activity_executor/fiber.rb
160
210
  - lib/temporalio/worker/activity_executor/thread_pool.rb
161
211
  - lib/temporalio/worker/interceptor.rb
212
+ - lib/temporalio/worker/thread_pool.rb
162
213
  - lib/temporalio/worker/tuner.rb
214
+ - lib/temporalio/worker/workflow_executor.rb
215
+ - lib/temporalio/worker/workflow_executor/thread_pool.rb
216
+ - lib/temporalio/worker/workflow_replayer.rb
217
+ - lib/temporalio/workflow.rb
218
+ - lib/temporalio/workflow/activity_cancellation_type.rb
219
+ - lib/temporalio/workflow/child_workflow_cancellation_type.rb
220
+ - lib/temporalio/workflow/child_workflow_handle.rb
221
+ - lib/temporalio/workflow/definition.rb
222
+ - lib/temporalio/workflow/external_workflow_handle.rb
223
+ - lib/temporalio/workflow/future.rb
224
+ - lib/temporalio/workflow/handler_unfinished_policy.rb
225
+ - lib/temporalio/workflow/info.rb
226
+ - lib/temporalio/workflow/parent_close_policy.rb
227
+ - lib/temporalio/workflow/update_info.rb
163
228
  - lib/temporalio/workflow_history.rb
164
229
  - temporalio.gemspec
165
230
  homepage: https://github.com/temporalio/sdk-ruby
@@ -169,7 +234,6 @@ metadata:
169
234
  homepage_uri: https://github.com/temporalio/sdk-ruby
170
235
  source_code_uri: https://github.com/temporalio/sdk-ruby
171
236
  rubygems_mfa_required: 'true'
172
- post_install_message:
173
237
  rdoc_options: []
174
238
  require_paths:
175
239
  - lib
@@ -177,15 +241,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
241
  requirements:
178
242
  - - ">="
179
243
  - !ruby/object:Gem::Version
180
- version: 3.1.0
244
+ version: '0'
181
245
  required_rubygems_version: !ruby/object:Gem::Requirement
182
246
  requirements:
183
247
  - - ">="
184
248
  - !ruby/object:Gem::Version
185
249
  version: '0'
186
250
  requirements: []
187
- rubygems_version: 3.5.16
188
- signing_key:
251
+ rubygems_version: 3.6.7
189
252
  specification_version: 4
190
253
  summary: Temporal.io Ruby SDK
191
254
  test_files: []