temporalio 0.3.0-x86_64-linux → 0.4.0-x86_64-linux

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 (78) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +4 -0
  3. data/Rakefile +1 -1
  4. data/lib/temporalio/activity/context.rb +13 -0
  5. data/lib/temporalio/activity/definition.rb +22 -5
  6. data/lib/temporalio/activity/info.rb +3 -0
  7. data/lib/temporalio/api/batch/v1/message.rb +6 -1
  8. data/lib/temporalio/api/command/v1/message.rb +1 -1
  9. data/lib/temporalio/api/common/v1/message.rb +2 -1
  10. data/lib/temporalio/api/deployment/v1/message.rb +38 -0
  11. data/lib/temporalio/api/enums/v1/batch_operation.rb +1 -1
  12. data/lib/temporalio/api/enums/v1/common.rb +1 -1
  13. data/lib/temporalio/api/enums/v1/deployment.rb +23 -0
  14. data/lib/temporalio/api/enums/v1/event_type.rb +1 -1
  15. data/lib/temporalio/api/enums/v1/failed_cause.rb +1 -1
  16. data/lib/temporalio/api/enums/v1/nexus.rb +21 -0
  17. data/lib/temporalio/api/enums/v1/reset.rb +1 -1
  18. data/lib/temporalio/api/enums/v1/workflow.rb +2 -1
  19. data/lib/temporalio/api/errordetails/v1/message.rb +3 -1
  20. data/lib/temporalio/api/failure/v1/message.rb +3 -1
  21. data/lib/temporalio/api/history/v1/message.rb +3 -1
  22. data/lib/temporalio/api/nexus/v1/message.rb +2 -1
  23. data/lib/temporalio/api/payload_visitor.rb +75 -7
  24. data/lib/temporalio/api/query/v1/message.rb +2 -1
  25. data/lib/temporalio/api/taskqueue/v1/message.rb +4 -1
  26. data/lib/temporalio/api/workflow/v1/message.rb +9 -1
  27. data/lib/temporalio/api/workflowservice/v1/request_response.rb +40 -11
  28. data/lib/temporalio/api/workflowservice/v1/service.rb +1 -1
  29. data/lib/temporalio/api.rb +1 -0
  30. data/lib/temporalio/client/connection/workflow_service.rb +238 -28
  31. data/lib/temporalio/client/interceptor.rb +39 -0
  32. data/lib/temporalio/client/schedule.rb +25 -1
  33. data/lib/temporalio/client/with_start_workflow_operation.rb +115 -0
  34. data/lib/temporalio/client/workflow_execution.rb +19 -0
  35. data/lib/temporalio/client/workflow_handle.rb +3 -3
  36. data/lib/temporalio/client.rb +125 -2
  37. data/lib/temporalio/contrib/open_telemetry.rb +470 -0
  38. data/lib/temporalio/error.rb +1 -0
  39. data/lib/temporalio/internal/bridge/3.2/temporalio_bridge.so +0 -0
  40. data/lib/temporalio/internal/bridge/3.3/temporalio_bridge.so +0 -0
  41. data/lib/temporalio/internal/bridge/3.4/temporalio_bridge.so +0 -0
  42. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +1 -1
  43. data/lib/temporalio/internal/bridge/api/common/common.rb +2 -1
  44. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +1 -1
  45. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +1 -1
  46. data/lib/temporalio/internal/bridge/api/workflow_completion/workflow_completion.rb +2 -1
  47. data/lib/temporalio/internal/bridge/runtime.rb +3 -0
  48. data/lib/temporalio/internal/bridge/testing.rb +3 -0
  49. data/lib/temporalio/internal/client/implementation.rb +232 -10
  50. data/lib/temporalio/internal/proto_utils.rb +34 -2
  51. data/lib/temporalio/internal/worker/activity_worker.rb +20 -8
  52. data/lib/temporalio/internal/worker/multi_runner.rb +2 -2
  53. data/lib/temporalio/internal/worker/workflow_instance/context.rb +57 -3
  54. data/lib/temporalio/internal/worker/workflow_instance/details.rb +4 -2
  55. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +11 -26
  56. data/lib/temporalio/internal/worker/workflow_instance/scheduler.rb +22 -2
  57. data/lib/temporalio/internal/worker/workflow_instance.rb +76 -32
  58. data/lib/temporalio/internal/worker/workflow_worker.rb +62 -19
  59. data/lib/temporalio/runtime/metric_buffer.rb +94 -0
  60. data/lib/temporalio/runtime.rb +48 -10
  61. data/lib/temporalio/search_attributes.rb +13 -0
  62. data/lib/temporalio/testing/activity_environment.rb +42 -14
  63. data/lib/temporalio/testing/workflow_environment.rb +26 -3
  64. data/lib/temporalio/version.rb +1 -1
  65. data/lib/temporalio/worker/interceptor.rb +3 -0
  66. data/lib/temporalio/worker/thread_pool.rb +5 -5
  67. data/lib/temporalio/worker/tuner.rb +38 -0
  68. data/lib/temporalio/worker/workflow_executor/thread_pool.rb +13 -8
  69. data/lib/temporalio/worker/workflow_executor.rb +1 -1
  70. data/lib/temporalio/worker/workflow_replayer.rb +350 -0
  71. data/lib/temporalio/worker.rb +58 -52
  72. data/lib/temporalio/workflow/definition.rb +40 -8
  73. data/lib/temporalio/workflow/future.rb +2 -2
  74. data/lib/temporalio/workflow/info.rb +22 -0
  75. data/lib/temporalio/workflow.rb +60 -8
  76. data/lib/temporalio/workflow_history.rb +26 -1
  77. data/temporalio.gemspec +2 -1
  78. metadata +25 -4
@@ -1,9 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'temporalio/api'
4
+
3
5
  module Temporalio
4
6
  # Representation of a workflow's history.
5
7
  class WorkflowHistory
6
- # History events for the workflow.
8
+ # Convert a JSON string to workflow history. This supports the JSON format exported by Temporal UI and CLI.
9
+ #
10
+ # @param json [String] JSON string.
11
+ # @return [WorkflowHistory] Converted history.
12
+ def self.from_history_json(json)
13
+ WorkflowHistory.new(Api::History::V1::History.decode_json(json).events.to_a)
14
+ end
15
+
16
+ # @return [Array<Api::History::V1::HistoryEvent>] History events for the workflow.
7
17
  attr_reader :events
8
18
 
9
19
  # @!visibility private
@@ -18,5 +28,20 @@ module Temporalio
18
28
 
19
29
  start.workflow_id
20
30
  end
31
+
32
+ # Convert to history JSON.
33
+ #
34
+ # @return [String] JSON string.
35
+ def to_history_json
36
+ Api::History::V1::History.encode_json(Api::History::V1::History.new(events:))
37
+ end
38
+
39
+ # Compare history.
40
+ #
41
+ # @param other [WorkflowHistory] Other history.
42
+ # @return [Boolean] True if equal.
43
+ def ==(other)
44
+ other.is_a?(WorkflowHistory) && events == other.events
45
+ end
21
46
  end
22
47
  end
data/temporalio.gemspec CHANGED
@@ -24,5 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.extensions = ['ext/Cargo.toml']
25
25
  spec.metadata['rubygems_mfa_required'] = 'true'
26
26
 
27
- spec.add_dependency 'google-protobuf', '>= 3.27.0'
27
+ spec.add_dependency 'google-protobuf', '>= 3.25.0'
28
+ spec.add_dependency 'logger'
28
29
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: temporalio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Temporal Technologies Inc
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-22 00:00:00.000000000 Z
11
+ date: 2025-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.27.0
19
+ version: 3.25.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 3.27.0
26
+ version: 3.25.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: logger
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  description:
28
42
  email:
29
43
  - sdk@temporal.io
@@ -58,12 +72,15 @@ files:
58
72
  - lib/temporalio/api/command/v1/message.rb
59
73
  - lib/temporalio/api/common/v1/grpc_status.rb
60
74
  - lib/temporalio/api/common/v1/message.rb
75
+ - lib/temporalio/api/deployment/v1/message.rb
61
76
  - lib/temporalio/api/enums/v1/batch_operation.rb
62
77
  - lib/temporalio/api/enums/v1/command_type.rb
63
78
  - lib/temporalio/api/enums/v1/common.rb
79
+ - lib/temporalio/api/enums/v1/deployment.rb
64
80
  - lib/temporalio/api/enums/v1/event_type.rb
65
81
  - lib/temporalio/api/enums/v1/failed_cause.rb
66
82
  - lib/temporalio/api/enums/v1/namespace.rb
83
+ - lib/temporalio/api/enums/v1/nexus.rb
67
84
  - lib/temporalio/api/enums/v1/query.rb
68
85
  - lib/temporalio/api/enums/v1/reset.rb
69
86
  - lib/temporalio/api/enums/v1/schedule.rb
@@ -111,6 +128,7 @@ files:
111
128
  - lib/temporalio/client/interceptor.rb
112
129
  - lib/temporalio/client/schedule.rb
113
130
  - lib/temporalio/client/schedule_handle.rb
131
+ - lib/temporalio/client/with_start_workflow_operation.rb
114
132
  - lib/temporalio/client/workflow_execution.rb
115
133
  - lib/temporalio/client/workflow_execution_count.rb
116
134
  - lib/temporalio/client/workflow_execution_status.rb
@@ -119,6 +137,7 @@ files:
119
137
  - lib/temporalio/client/workflow_update_handle.rb
120
138
  - lib/temporalio/client/workflow_update_wait_stage.rb
121
139
  - lib/temporalio/common_enums.rb
140
+ - lib/temporalio/contrib/open_telemetry.rb
122
141
  - lib/temporalio/converters.rb
123
142
  - lib/temporalio/converters/data_converter.rb
124
143
  - lib/temporalio/converters/failure_converter.rb
@@ -177,6 +196,7 @@ files:
177
196
  - lib/temporalio/metric.rb
178
197
  - lib/temporalio/retry_policy.rb
179
198
  - lib/temporalio/runtime.rb
199
+ - lib/temporalio/runtime/metric_buffer.rb
180
200
  - lib/temporalio/scoped_logger.rb
181
201
  - lib/temporalio/search_attributes.rb
182
202
  - lib/temporalio/testing.rb
@@ -192,6 +212,7 @@ files:
192
212
  - lib/temporalio/worker/tuner.rb
193
213
  - lib/temporalio/worker/workflow_executor.rb
194
214
  - lib/temporalio/worker/workflow_executor/thread_pool.rb
215
+ - lib/temporalio/worker/workflow_replayer.rb
195
216
  - lib/temporalio/workflow.rb
196
217
  - lib/temporalio/workflow/activity_cancellation_type.rb
197
218
  - lib/temporalio/workflow/child_workflow_cancellation_type.rb