temporalio 1.3.0 → 1.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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +1 -0
  3. data/Cargo.lock +898 -761
  4. data/Cargo.toml +16 -11
  5. data/Gemfile +0 -1
  6. data/README.md +4 -0
  7. data/Rakefile +12 -13
  8. data/ext/Cargo.toml +3 -3
  9. data/lib/temporalio/api/activity/v1/message.rb +5 -1
  10. data/lib/temporalio/api/callback/v1/message.rb +26 -0
  11. data/lib/temporalio/api/cloud/account/v1/message.rb +4 -1
  12. data/lib/temporalio/api/cloud/auditlog/v1/message.rb +27 -0
  13. data/lib/temporalio/api/cloud/billing/v1/message.rb +30 -0
  14. data/lib/temporalio/api/cloud/cloudservice/v1/request_response.rb +23 -1
  15. data/lib/temporalio/api/cloud/cloudservice/v1/service.rb +2 -1
  16. data/lib/temporalio/api/cloud/namespace/v1/message.rb +16 -2
  17. data/lib/temporalio/api/command/v1/message.rb +1 -1
  18. data/lib/temporalio/api/common/v1/message.rb +5 -1
  19. data/lib/temporalio/api/compute/v1/config.rb +30 -0
  20. data/lib/temporalio/api/compute/v1/provider.rb +23 -0
  21. data/lib/temporalio/api/compute/v1/scaler.rb +23 -0
  22. data/lib/temporalio/api/deployment/v1/message.rb +3 -1
  23. data/lib/temporalio/api/enums/v1/deployment.rb +1 -1
  24. data/lib/temporalio/api/enums/v1/event_type.rb +1 -1
  25. data/lib/temporalio/api/enums/v1/nexus.rb +5 -1
  26. data/lib/temporalio/api/enums/v1/task_queue.rb +1 -1
  27. data/lib/temporalio/api/enums/v1/workflow.rb +1 -1
  28. data/lib/temporalio/api/errordetails/v1/message.rb +2 -1
  29. data/lib/temporalio/api/failure/v1/message.rb +1 -1
  30. data/lib/temporalio/api/history/v1/message.rb +3 -1
  31. data/lib/temporalio/api/namespace/v1/message.rb +1 -1
  32. data/lib/temporalio/api/nexus/v1/message.rb +9 -1
  33. data/lib/temporalio/api/nexusservices/workerservice/v1/request_response.rb +26 -0
  34. data/lib/temporalio/api/payload_visitor.rb +174 -4
  35. data/lib/temporalio/api/protoc_gen_openapiv2/options/annotations.rb +23 -0
  36. data/lib/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rb +48 -0
  37. data/lib/temporalio/api/protometa/v1/annotations.rb +23 -0
  38. data/lib/temporalio/api/sdk/v1/external_storage.rb +21 -0
  39. data/lib/temporalio/api/taskqueue/v1/message.rb +2 -1
  40. data/lib/temporalio/api/worker/v1/message.rb +7 -1
  41. data/lib/temporalio/api/workflow/v1/message.rb +2 -1
  42. data/lib/temporalio/api/workflowservice/v1/request_response.rb +31 -1
  43. data/lib/temporalio/api/workflowservice/v1/service.rb +2 -1
  44. data/lib/temporalio/client/connection/cloud_service.rb +150 -0
  45. data/lib/temporalio/client/connection/workflow_service.rb +195 -0
  46. data/lib/temporalio/client.rb +1 -1
  47. data/lib/temporalio/common_enums.rb +29 -0
  48. data/lib/temporalio/contrib/open_telemetry.rb +38 -13
  49. data/lib/temporalio/converters/payload_converter/composite.rb +4 -2
  50. data/lib/temporalio/internal/bridge/api/activity_task/activity_task.rb +1 -1
  51. data/lib/temporalio/internal/bridge/api/nexus/nexus.rb +1 -1
  52. data/lib/temporalio/internal/bridge/api/workflow_activation/workflow_activation.rb +1 -1
  53. data/lib/temporalio/internal/bridge/api/workflow_commands/workflow_commands.rb +1 -1
  54. data/lib/temporalio/internal/bridge/client.rb +5 -10
  55. data/lib/temporalio/internal/bridge/runtime.rb +6 -12
  56. data/lib/temporalio/internal/bridge/testing.rb +2 -4
  57. data/lib/temporalio/internal/bridge/worker.rb +8 -16
  58. data/lib/temporalio/internal/bridge.rb +2 -2
  59. data/lib/temporalio/internal/client/implementation.rb +1 -1
  60. data/lib/temporalio/internal/proto_utils.rb +7 -5
  61. data/lib/temporalio/internal/worker/workflow_instance/context.rb +11 -1
  62. data/lib/temporalio/internal/worker/workflow_instance/nexus_client.rb +4 -1
  63. data/lib/temporalio/internal/worker/workflow_instance/outbound_implementation.rb +3 -1
  64. data/lib/temporalio/internal/worker/workflow_instance.rb +9 -2
  65. data/lib/temporalio/search_attributes.rb +12 -2
  66. data/lib/temporalio/version.rb +1 -1
  67. data/lib/temporalio/worker/interceptor.rb +2 -0
  68. data/lib/temporalio/worker/workflow_replayer.rb +1 -3
  69. data/lib/temporalio/worker.rb +9 -7
  70. data/lib/temporalio/workflow/info.rb +3 -6
  71. data/lib/temporalio/workflow/nexus_client.rb +14 -2
  72. data/lib/temporalio/workflow/update_info.rb +1 -2
  73. data/lib/temporalio/workflow.rb +20 -2
  74. metadata +13 -2
@@ -365,7 +365,7 @@ module Temporalio
365
365
  cron_schedule: input.cron_schedule,
366
366
  headers: ProtoUtils.headers_to_proto_hash(input.headers, @instance.payload_converter),
367
367
  memo: ProtoUtils.memo_to_proto_hash(input.memo, @instance.payload_converter),
368
- search_attributes: input.search_attributes&._to_proto_hash,
368
+ search_attributes: input.search_attributes&._to_proto,
369
369
  cancellation_type: input.cancellation_type,
370
370
  priority: input.priority._to_proto
371
371
  ),
@@ -446,6 +446,8 @@ module Temporalio
446
446
  operation: input.operation,
447
447
  input: @instance.payload_converter.to_payload(input.arg, hint: input.arg_hint),
448
448
  schedule_to_close_timeout: ProtoUtils.seconds_to_duration(input.schedule_to_close_timeout),
449
+ schedule_to_start_timeout: ProtoUtils.seconds_to_duration(input.schedule_to_start_timeout),
450
+ start_to_close_timeout: ProtoUtils.seconds_to_duration(input.start_to_close_timeout),
449
451
  nexus_header: input.headers,
450
452
  cancellation_type: input.cancellation_type
451
453
  ),
@@ -56,7 +56,9 @@ module Temporalio
56
56
  :pending_timers, :pending_child_workflow_starts, :pending_child_workflows,
57
57
  :pending_nexus_operation_starts, :pending_nexus_operations,
58
58
  :pending_external_signals, :pending_external_cancels, :in_progress_handlers, :payload_converter,
59
- :failure_converter, :cancellation, :continue_as_new_suggested, :current_deployment_version,
59
+ :failure_converter, :cancellation, :continue_as_new_suggested,
60
+ :suggest_continue_as_new_reasons, :target_worker_deployment_version_changed,
61
+ :current_deployment_version,
60
62
  :current_history_length, :current_history_size, :replaying, :random,
61
63
  :signal_handlers, :query_handlers, :update_handlers, :context_frozen, :assert_valid_local_activity,
62
64
  :in_query_or_validator
@@ -92,6 +94,8 @@ module Temporalio
92
94
  @interceptors = details.interceptors
93
95
  @cancellation, @cancellation_proc = Cancellation.new
94
96
  @continue_as_new_suggested = false
97
+ @suggest_continue_as_new_reasons = []
98
+ @target_worker_deployment_version_changed = false
95
99
  @current_history_length = 0
96
100
  @current_history_size = 0
97
101
  @replaying = false
@@ -176,6 +180,8 @@ module Temporalio
176
180
  @commands = []
177
181
  @current_activation_error = nil
178
182
  @continue_as_new_suggested = activation.continue_as_new_suggested
183
+ @suggest_continue_as_new_reasons = activation.suggest_continue_as_new_reasons.map(&:to_i)
184
+ @target_worker_deployment_version_changed = activation.target_worker_deployment_version_changed
179
185
  @current_deployment_version = WorkerDeploymentVersion._from_bridge(
180
186
  activation.deployment_version_for_current_task
181
187
  )
@@ -639,7 +645,8 @@ module Temporalio
639
645
  memo: ProtoUtils.memo_to_proto_hash(err.memo, payload_converter),
640
646
  headers: ProtoUtils.headers_to_proto_hash(err.headers, payload_converter),
641
647
  search_attributes: err.search_attributes&._to_proto,
642
- retry_policy: err.retry_policy&._to_proto
648
+ retry_policy: err.retry_policy&._to_proto,
649
+ initial_versioning_behavior: err.initial_versioning_behavior || 0
643
650
  )
644
651
  )
645
652
  )
@@ -58,7 +58,7 @@ module Temporalio
58
58
  when IndexedValueType::TIME
59
59
  raise TypeError, 'Value of TIME key must be a Time' unless value.is_a?(Time)
60
60
  when IndexedValueType::KEYWORD_LIST
61
- unless value.is_a?(Array) && value.all? { |v| v.is_a?(String) }
61
+ unless value.is_a?(Array) && value.all?(String)
62
62
  raise TypeError, 'Value of KEYWORD_LIST key must be an Array of String'
63
63
  end
64
64
  else
@@ -350,7 +350,17 @@ module Temporalio
350
350
  }.freeze
351
351
 
352
352
  # @!visibility private
353
- PROTO_VALUES = PROTO_NAMES.invert.freeze
353
+ # The type metadata is usually in PascalCase (e.g. "KeywordList") but in
354
+ # rare cases may be in SCREAMING_SNAKE_CASE (e.g. "INDEXED_VALUE_TYPE_KEYWORD_LIST").
355
+ PROTO_VALUES = PROTO_NAMES.invert.merge(
356
+ 'INDEXED_VALUE_TYPE_TEXT' => TEXT,
357
+ 'INDEXED_VALUE_TYPE_KEYWORD' => KEYWORD,
358
+ 'INDEXED_VALUE_TYPE_INT' => INTEGER,
359
+ 'INDEXED_VALUE_TYPE_DOUBLE' => FLOAT,
360
+ 'INDEXED_VALUE_TYPE_BOOL' => BOOLEAN,
361
+ 'INDEXED_VALUE_TYPE_DATETIME' => TIME,
362
+ 'INDEXED_VALUE_TYPE_KEYWORD_LIST' => KEYWORD_LIST
363
+ ).freeze
354
364
  end
355
365
  end
356
366
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Temporalio
4
- VERSION = '1.3.0'
4
+ VERSION = '1.4.0'
5
5
  end
@@ -309,6 +309,8 @@ module Temporalio
309
309
  :operation,
310
310
  :arg,
311
311
  :schedule_to_close_timeout,
312
+ :schedule_to_start_timeout,
313
+ :start_to_close_timeout,
312
314
  :cancellation_type,
313
315
  :summary,
314
316
  :cancellation,
@@ -258,9 +258,7 @@ module Temporalio
258
258
  logger: options.logger,
259
259
  data_converter: options.data_converter,
260
260
  metric_meter: options.runtime.metric_meter,
261
- workflow_interceptors: options.interceptors.select do |i|
262
- i.is_a?(Interceptor::Workflow)
263
- end,
261
+ workflow_interceptors: options.interceptors.grep(Interceptor::Workflow),
264
262
  disable_eager_activity_execution: false,
265
263
  illegal_workflow_calls: options.illegal_workflow_calls,
266
264
  workflow_failure_exception_types: options.workflow_failure_exception_types,
@@ -163,7 +163,7 @@ module Temporalio
163
163
  )
164
164
  # Confirm there is at least one and they are all workers
165
165
  raise ArgumentError, 'At least one worker required' if workers.empty?
166
- raise ArgumentError, 'Not all parameters are workers' unless workers.all? { |w| w.is_a?(Worker) }
166
+ raise ArgumentError, 'Not all parameters are workers' unless workers.all?(Worker)
167
167
 
168
168
  Internal::Bridge.assert_fiber_compatibility!
169
169
 
@@ -514,6 +514,12 @@ module Temporalio
514
514
  raise ArgumentError, 'Must have at least one activity or workflow'
515
515
  end
516
516
 
517
+ if !@options.deployment_options.use_worker_versioning &&
518
+ @options.deployment_options.default_versioning_behavior != VersioningBehavior::UNSPECIFIED
519
+ raise ArgumentError,
520
+ 'default_versioning_behavior must be UNSPECIFIED when use_worker_versioning is false'
521
+ end
522
+
517
523
  should_enforce_versioning_behavior =
518
524
  @options.deployment_options.use_worker_versioning &&
519
525
  @options.deployment_options.default_versioning_behavior == VersioningBehavior::UNSPECIFIED
@@ -558,12 +564,8 @@ module Temporalio
558
564
  )
559
565
 
560
566
  # Collect interceptors from client and params
561
- @activity_interceptors = (@options.client.options.interceptors + @options.interceptors).select do |i|
562
- i.is_a?(Interceptor::Activity)
563
- end
564
- @workflow_interceptors = (@options.client.options.interceptors + @options.interceptors).select do |i|
565
- i.is_a?(Interceptor::Workflow)
566
- end
567
+ @activity_interceptors = (@options.client.options.interceptors + @options.interceptors).grep(Interceptor::Activity)
568
+ @workflow_interceptors = (@options.client.options.interceptors + @options.interceptors).grep(Interceptor::Workflow)
567
569
 
568
570
  # Cancellation for the whole worker
569
571
  @worker_shutdown_cancellation = Cancellation.new
@@ -23,8 +23,7 @@ module Temporalio
23
23
  :task_queue,
24
24
  :task_timeout,
25
25
  :workflow_id,
26
- :workflow_type,
27
- keyword_init: true
26
+ :workflow_type
28
27
  )
29
28
 
30
29
  # Information about the running workflow. This is immutable for the life of the workflow run.
@@ -91,8 +90,7 @@ module Temporalio
91
90
  ParentInfo = Struct.new(
92
91
  :namespace,
93
92
  :run_id,
94
- :workflow_id,
95
- keyword_init: true
93
+ :workflow_id
96
94
  )
97
95
 
98
96
  # Information about a root of a workflow.
@@ -106,8 +104,7 @@ module Temporalio
106
104
  # this class or it may break in incompatible ways.
107
105
  RootInfo = Struct.new(
108
106
  :run_id,
109
- :workflow_id,
110
- keyword_init: true
107
+ :workflow_id
111
108
  )
112
109
  end
113
110
  end
@@ -28,6 +28,10 @@ module Temporalio
28
28
  # @param operation [Symbol, String] Operation name.
29
29
  # @param arg [Object] Argument for the operation.
30
30
  # @param schedule_to_close_timeout [Float, nil] Total timeout for the operation in seconds.
31
+ # @param schedule_to_start_timeout [Float, nil] Timeout in seconds for the operation to start executing. If the
32
+ # operation has not started within this window, a SCHEDULE_TO_START timeout error is raised.
33
+ # @param start_to_close_timeout [Float, nil] Timeout in seconds for an async operation to complete after it has
34
+ # started. If the operation does not complete within this window, a START_TO_CLOSE timeout error is raised.
31
35
  # @param cancellation_type [NexusOperationCancellationType] How the operation will react to cancellation.
32
36
  # @param summary [String, nil] Optional summary for the operation (appears in UI/CLI).
33
37
  # @param cancellation [Cancellation] Cancellation for the operation.
@@ -38,6 +42,8 @@ module Temporalio
38
42
  operation,
39
43
  arg,
40
44
  schedule_to_close_timeout: nil,
45
+ schedule_to_start_timeout: nil,
46
+ start_to_close_timeout: nil,
41
47
  cancellation_type: NexusOperationCancellationType::WAIT_CANCELLATION_COMPLETED,
42
48
  summary: nil,
43
49
  cancellation: Workflow.cancellation,
@@ -54,6 +60,10 @@ module Temporalio
54
60
  # @param operation [Symbol, String] Operation name.
55
61
  # @param arg [Object] Argument for the operation.
56
62
  # @param schedule_to_close_timeout [Float, nil] Total timeout for the operation in seconds.
63
+ # @param schedule_to_start_timeout [Float, nil] Timeout in seconds for the operation to start executing. If the
64
+ # operation has not started within this window, a SCHEDULE_TO_START timeout error is raised.
65
+ # @param start_to_close_timeout [Float, nil] Timeout in seconds for an async operation to complete after it has
66
+ # started. If the operation does not complete within this window, a START_TO_CLOSE timeout error is raised.
57
67
  # @param cancellation_type [NexusOperationCancellationType] How the operation will react to cancellation.
58
68
  # @param summary [String, nil] Optional summary for the operation (appears in UI/CLI).
59
69
  # @param cancellation [Cancellation] Cancellation for the operation.
@@ -65,6 +75,8 @@ module Temporalio
65
75
  operation,
66
76
  arg,
67
77
  schedule_to_close_timeout: nil,
78
+ schedule_to_start_timeout: nil,
79
+ start_to_close_timeout: nil,
68
80
  cancellation_type: NexusOperationCancellationType::WAIT_CANCELLATION_COMPLETED,
69
81
  summary: nil,
70
82
  cancellation: Workflow.cancellation,
@@ -72,8 +84,8 @@ module Temporalio
72
84
  result_hint: nil
73
85
  )
74
86
  start_operation(
75
- operation, arg, schedule_to_close_timeout:, cancellation_type:, summary:, cancellation:,
76
- arg_hint:, result_hint:
87
+ operation, arg, schedule_to_close_timeout:, schedule_to_start_timeout:, start_to_close_timeout:,
88
+ cancellation_type:, summary:, cancellation:, arg_hint:, result_hint:
77
89
  ).result
78
90
  end
79
91
  end
@@ -13,8 +13,7 @@ module Temporalio
13
13
  # class or it may break in incompatible ways.
14
14
  UpdateInfo = Struct.new(
15
15
  :id,
16
- :name,
17
- keyword_init: true
16
+ :name
18
17
  )
19
18
  end
20
19
  end
@@ -54,6 +54,18 @@ module Temporalio
54
54
  _current.create_nexus_client(endpoint:, service:)
55
55
  end
56
56
 
57
+ # @return [Array<SuggestContinueAsNewReason::enum>] Reasons the server suggests continue-as-new. Empty if no
58
+ # suggestion. This is currently experimental.
59
+ def self.suggest_continue_as_new_reasons
60
+ _current.suggest_continue_as_new_reasons
61
+ end
62
+
63
+ # @return [Boolean] Whether the target worker deployment version has changed from the one this workflow is running
64
+ # on. This is currently experimental.
65
+ def self.target_worker_deployment_version_changed?
66
+ _current.target_worker_deployment_version_changed?
67
+ end
68
+
57
69
  # Get current details for this workflow that may appear in UI/CLI. Unlike static details set at start, this value
58
70
  # can be updated throughout the life of the workflow. This can be in Temporal markdown format and can span multiple
59
71
  # lines. This is currently experimental.
@@ -634,7 +646,8 @@ module Temporalio
634
646
  # Error that is raised by a workflow out of the primary workflow method to issue a continue-as-new.
635
647
  class ContinueAsNewError < Error
636
648
  attr_accessor :args, :workflow, :task_queue, :run_timeout, :task_timeout,
637
- :retry_policy, :memo, :search_attributes, :arg_hints, :headers
649
+ :retry_policy, :memo, :search_attributes, :arg_hints, :headers,
650
+ :initial_versioning_behavior
638
651
 
639
652
  # Create a continue as new error.
640
653
  #
@@ -657,6 +670,9 @@ module Temporalio
657
670
  # workflow definition has arg hints, those are used by default.
658
671
  # @param headers [Hash<String, Object>] Headers for the workflow. The default is _not_ carried over from the
659
672
  # current workflow.
673
+ # @param initial_versioning_behavior [ContinueAsNewVersioningBehavior::enum, nil] Versioning behavior for the
674
+ # first task of the new run. Set to {ContinueAsNewVersioningBehavior::AUTO_UPGRADE} to upgrade a pinned workflow
675
+ # to the latest version on continue-as-new. This is currently experimental.
660
676
  def initialize(
661
677
  *args,
662
678
  workflow: nil,
@@ -667,7 +683,8 @@ module Temporalio
667
683
  memo: nil,
668
684
  search_attributes: nil,
669
685
  arg_hints: nil,
670
- headers: {}
686
+ headers: {},
687
+ initial_versioning_behavior: nil
671
688
  )
672
689
  super('Continue as new')
673
690
  @args = args
@@ -680,6 +697,7 @@ module Temporalio
680
697
  @search_attributes = search_attributes
681
698
  @arg_hints = arg_hints
682
699
  @headers = headers
700
+ @initial_versioning_behavior = initial_versioning_behavior
683
701
  Workflow._current.initialize_continue_as_new_error(self)
684
702
  end
685
703
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: temporalio
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Temporal Technologies Inc
@@ -62,7 +62,10 @@ files:
62
62
  - lib/temporalio/api.rb
63
63
  - lib/temporalio/api/activity/v1/message.rb
64
64
  - lib/temporalio/api/batch/v1/message.rb
65
+ - lib/temporalio/api/callback/v1/message.rb
65
66
  - lib/temporalio/api/cloud/account/v1/message.rb
67
+ - lib/temporalio/api/cloud/auditlog/v1/message.rb
68
+ - lib/temporalio/api/cloud/billing/v1/message.rb
66
69
  - lib/temporalio/api/cloud/cloudservice.rb
67
70
  - lib/temporalio/api/cloud/cloudservice/v1/request_response.rb
68
71
  - lib/temporalio/api/cloud/cloudservice/v1/service.rb
@@ -78,6 +81,9 @@ files:
78
81
  - lib/temporalio/api/command/v1/message.rb
79
82
  - lib/temporalio/api/common/v1/grpc_status.rb
80
83
  - lib/temporalio/api/common/v1/message.rb
84
+ - lib/temporalio/api/compute/v1/config.rb
85
+ - lib/temporalio/api/compute/v1/provider.rb
86
+ - lib/temporalio/api/compute/v1/scaler.rb
81
87
  - lib/temporalio/api/deployment/v1/message.rb
82
88
  - lib/temporalio/api/enums/v1/activity.rb
83
89
  - lib/temporalio/api/enums/v1/batch_operation.rb
@@ -101,16 +107,21 @@ files:
101
107
  - lib/temporalio/api/history/v1/message.rb
102
108
  - lib/temporalio/api/namespace/v1/message.rb
103
109
  - lib/temporalio/api/nexus/v1/message.rb
110
+ - lib/temporalio/api/nexusservices/workerservice/v1/request_response.rb
104
111
  - lib/temporalio/api/operatorservice.rb
105
112
  - lib/temporalio/api/operatorservice/v1/request_response.rb
106
113
  - lib/temporalio/api/operatorservice/v1/service.rb
107
114
  - lib/temporalio/api/payload_visitor.rb
115
+ - lib/temporalio/api/protoc_gen_openapiv2/options/annotations.rb
116
+ - lib/temporalio/api/protoc_gen_openapiv2/options/openapiv2.rb
108
117
  - lib/temporalio/api/protocol/v1/message.rb
118
+ - lib/temporalio/api/protometa/v1/annotations.rb
109
119
  - lib/temporalio/api/query/v1/message.rb
110
120
  - lib/temporalio/api/replication/v1/message.rb
111
121
  - lib/temporalio/api/rules/v1/message.rb
112
122
  - lib/temporalio/api/schedule/v1/message.rb
113
123
  - lib/temporalio/api/sdk/v1/enhanced_stack_trace.rb
124
+ - lib/temporalio/api/sdk/v1/external_storage.rb
114
125
  - lib/temporalio/api/sdk/v1/task_complete_metadata.rb
115
126
  - lib/temporalio/api/sdk/v1/user_metadata.rb
116
127
  - lib/temporalio/api/sdk/v1/worker_config.rb
@@ -269,7 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
269
280
  - !ruby/object:Gem::Version
270
281
  version: '0'
271
282
  requirements: []
272
- rubygems_version: 4.0.3
283
+ rubygems_version: 4.0.6
273
284
  specification_version: 4
274
285
  summary: Temporal.io Ruby SDK
275
286
  test_files: []