activejob-temporal 0.1.0 → 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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/AGENTS.md +1 -0
  3. data/CHANGELOG.md +29 -0
  4. data/CLAUDE.md +274 -0
  5. data/CONTRIBUTING.md +69 -0
  6. data/README.md +34 -33
  7. data/activejob-temporal.gemspec +9 -13
  8. data/api/job_payload_schema.json +51 -6
  9. data/bin/temporal-worker +25 -17
  10. data/gemfiles/activejob_contract.gemfile +8 -0
  11. data/gemfiles/temporalio_contract.gemfile +7 -0
  12. data/lib/activejob/temporal/activities/aj_runner_activity.rb +75 -19
  13. data/lib/activejob/temporal/activities/dependency_status_activity.rb +36 -19
  14. data/lib/activejob/temporal/adapter.rb +4 -3
  15. data/lib/activejob/temporal/batch_enqueuer.rb +42 -33
  16. data/lib/activejob/temporal/bind_policy.rb +1 -1
  17. data/lib/activejob/temporal/cancel.rb +66 -29
  18. data/lib/activejob/temporal/certificate_watcher.rb +41 -6
  19. data/lib/activejob/temporal/client.rb +24 -6
  20. data/lib/activejob/temporal/conditional_enqueue.rb +2 -1
  21. data/lib/activejob/temporal/configurable.rb +56 -13
  22. data/lib/activejob/temporal/configuration.rb +218 -7
  23. data/lib/activejob/temporal/configured_job_compatibility.rb +91 -9
  24. data/lib/activejob/temporal/connection_worker_pool.rb +18 -1
  25. data/lib/activejob/temporal/dead_letter_queue.rb +64 -18
  26. data/lib/activejob/temporal/dependency_options.rb +126 -16
  27. data/lib/activejob/temporal/health_check_server.rb +14 -17
  28. data/lib/activejob/temporal/http_line_reader.rb +20 -2
  29. data/lib/activejob/temporal/http_request_failure_handling.rb +41 -0
  30. data/lib/activejob/temporal/inspect.rb +17 -7
  31. data/lib/activejob/temporal/job_id_validation.rb +41 -0
  32. data/lib/activejob/temporal/job_payload_dependencies.rb +23 -0
  33. data/lib/activejob/temporal/locales/en.yml +30 -3
  34. data/lib/activejob/temporal/metrics_server.rb +15 -18
  35. data/lib/activejob/temporal/middleware/chain.rb +7 -0
  36. data/lib/activejob/temporal/observability.rb +14 -2
  37. data/lib/activejob/temporal/payload.rb +64 -25
  38. data/lib/activejob/temporal/payload_encryption.rb +9 -1
  39. data/lib/activejob/temporal/payload_serializers.rb +3 -0
  40. data/lib/activejob/temporal/payload_storage.rb +4 -4
  41. data/lib/activejob/temporal/rails_environment_loader.rb +1 -8
  42. data/lib/activejob/temporal/reload_signal_queue.rb +19 -19
  43. data/lib/activejob/temporal/retry_handler_extractor.rb +18 -3
  44. data/lib/activejob/temporal/schedulable.rb +5 -7
  45. data/lib/activejob/temporal/schedule.rb +2 -2
  46. data/lib/activejob/temporal/signal_query.rb +35 -23
  47. data/lib/activejob/temporal/temporal_options.rb +26 -1
  48. data/lib/activejob/temporal/tls_file.rb +16 -16
  49. data/lib/activejob/temporal/transaction_safety.rb +102 -1
  50. data/lib/activejob/temporal/version.rb +1 -1
  51. data/lib/activejob/temporal/visibility_query.rb +16 -1
  52. data/lib/activejob/temporal/worker_pool.rb +13 -0
  53. data/lib/activejob/temporal/worker_registrations.rb +66 -0
  54. data/lib/activejob/temporal/worker_runtime.rb +17 -0
  55. data/lib/activejob/temporal/workflow_enqueuer.rb +2 -1
  56. data/lib/activejob/temporal/workflow_types.rb +10 -0
  57. data/lib/activejob/temporal/workflows/aj_workflow.rb +17 -4
  58. data/lib/activejob/temporal/workflows/workflow_dependencies.rb +148 -15
  59. data/lib/activejob/temporal.rb +21 -13
  60. data/test/mutant_unit_test.rb +13 -0
  61. metadata +46 -50
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activejob-temporal
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Temporal Technologies
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '8.1'
19
+ version: '7.2'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '9'
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '8.1'
29
+ version: '7.2'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '9'
@@ -36,7 +36,7 @@ dependencies:
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '8.1'
39
+ version: '7.2'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
42
  version: '9'
@@ -46,7 +46,7 @@ dependencies:
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '8.1'
49
+ version: '7.2'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
52
  version: '9'
@@ -78,20 +78,6 @@ dependencies:
78
78
  - - ">="
79
79
  - !ruby/object:Gem::Version
80
80
  version: '0.3'
81
- - !ruby/object:Gem::Dependency
82
- name: listen
83
- requirement: !ruby/object:Gem::Requirement
84
- requirements:
85
- - - "~>"
86
- - !ruby/object:Gem::Version
87
- version: '3.9'
88
- type: :runtime
89
- prerelease: false
90
- version_requirements: !ruby/object:Gem::Requirement
91
- requirements:
92
- - - "~>"
93
- - !ruby/object:Gem::Version
94
- version: '3.9'
95
81
  - !ruby/object:Gem::Dependency
96
82
  name: temporalio
97
83
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +87,7 @@ dependencies:
101
87
  version: 1.4.0
102
88
  - - "<"
103
89
  - !ruby/object:Gem::Version
104
- version: '1.5'
90
+ version: '1.7'
105
91
  type: :runtime
106
92
  prerelease: false
107
93
  version_requirements: !ruby/object:Gem::Requirement
@@ -111,7 +97,7 @@ dependencies:
111
97
  version: 1.4.0
112
98
  - - "<"
113
99
  - !ruby/object:Gem::Version
114
- version: '1.5'
100
+ version: '1.7'
115
101
  - !ruby/object:Gem::Dependency
116
102
  name: benchmark-ips
117
103
  requirement: !ruby/object:Gem::Requirement
@@ -127,33 +113,53 @@ dependencies:
127
113
  - !ruby/object:Gem::Version
128
114
  version: '2.14'
129
115
  - !ruby/object:Gem::Dependency
130
- name: bundler-audit
116
+ name: github_changelog_generator
131
117
  requirement: !ruby/object:Gem::Requirement
132
118
  requirements:
133
119
  - - "~>"
134
120
  - !ruby/object:Gem::Version
135
- version: '0.9'
121
+ version: '1.18'
136
122
  type: :development
137
123
  prerelease: false
138
124
  version_requirements: !ruby/object:Gem::Requirement
139
125
  requirements:
140
126
  - - "~>"
141
127
  - !ruby/object:Gem::Version
142
- version: '0.9'
128
+ version: '1.18'
143
129
  - !ruby/object:Gem::Dependency
144
- name: github_changelog_generator
130
+ name: listen
145
131
  requirement: !ruby/object:Gem::Requirement
146
132
  requirements:
147
133
  - - "~>"
148
134
  - !ruby/object:Gem::Version
149
- version: '1.18'
135
+ version: '3.9'
150
136
  type: :development
151
137
  prerelease: false
152
138
  version_requirements: !ruby/object:Gem::Requirement
153
139
  requirements:
154
140
  - - "~>"
155
141
  - !ruby/object:Gem::Version
156
- version: '1.18'
142
+ version: '3.9'
143
+ - !ruby/object:Gem::Dependency
144
+ name: minitest
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '5.11'
150
+ - - "<"
151
+ - !ruby/object:Gem::Version
152
+ version: '7'
153
+ type: :development
154
+ prerelease: false
155
+ version_requirements: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '5.11'
160
+ - - "<"
161
+ - !ruby/object:Gem::Version
162
+ version: '7'
157
163
  - !ruby/object:Gem::Dependency
158
164
  name: msgpack
159
165
  requirement: !ruby/object:Gem::Requirement
@@ -169,7 +175,7 @@ dependencies:
169
175
  - !ruby/object:Gem::Version
170
176
  version: '1.8'
171
177
  - !ruby/object:Gem::Dependency
172
- name: mutant-rspec
178
+ name: mutant-minitest
173
179
  requirement: !ruby/object:Gem::Requirement
174
180
  requirements:
175
181
  - - "~>"
@@ -210,20 +216,6 @@ dependencies:
210
216
  - - "~>"
211
217
  - !ruby/object:Gem::Version
212
218
  version: '13.2'
213
- - !ruby/object:Gem::Dependency
214
- name: rspec
215
- requirement: !ruby/object:Gem::Requirement
216
- requirements:
217
- - - "~>"
218
- - !ruby/object:Gem::Version
219
- version: '3.12'
220
- type: :development
221
- prerelease: false
222
- version_requirements: !ruby/object:Gem::Requirement
223
- requirements:
224
- - - "~>"
225
- - !ruby/object:Gem::Version
226
- version: '3.12'
227
219
  - !ruby/object:Gem::Dependency
228
220
  name: rubocop
229
221
  requirement: !ruby/object:Gem::Requirement
@@ -273,9 +265,6 @@ dependencies:
273
265
  - - "~>"
274
266
  - !ruby/object:Gem::Version
275
267
  version: '0.9'
276
- - - ">="
277
- - !ruby/object:Gem::Version
278
- version: 0.9.42
279
268
  type: :development
280
269
  prerelease: false
281
270
  version_requirements: !ruby/object:Gem::Requirement
@@ -283,9 +272,6 @@ dependencies:
283
272
  - - "~>"
284
273
  - !ruby/object:Gem::Version
285
274
  version: '0.9'
286
- - - ">="
287
- - !ruby/object:Gem::Version
288
- version: 0.9.42
289
275
  description: |
290
276
  activejob-temporal bridges Rails ActiveJob with Temporal's durable execution engine.
291
277
  It provides a drop-in ActiveJob adapter, Temporal workflows, and supporting tooling
@@ -297,12 +283,17 @@ executables:
297
283
  extensions: []
298
284
  extra_rdoc_files: []
299
285
  files:
286
+ - AGENTS.md
300
287
  - CHANGELOG.md
288
+ - CLAUDE.md
289
+ - CONTRIBUTING.md
301
290
  - LICENSE
302
291
  - README.md
303
292
  - activejob-temporal.gemspec
304
293
  - api/job_payload_schema.json
305
294
  - bin/temporal-worker
295
+ - gemfiles/activejob_contract.gemfile
296
+ - gemfiles/temporalio_contract.gemfile
306
297
  - lib/activejob-temporal.rb
307
298
  - lib/activejob/temporal.rb
308
299
  - lib/activejob/temporal/active_job_handler_source.rb
@@ -333,8 +324,10 @@ files:
333
324
  - lib/activejob/temporal/external_operation.rb
334
325
  - lib/activejob/temporal/health_check_server.rb
335
326
  - lib/activejob/temporal/http_line_reader.rb
327
+ - lib/activejob/temporal/http_request_failure_handling.rb
336
328
  - lib/activejob/temporal/inspect.rb
337
329
  - lib/activejob/temporal/job_descriptor.rb
330
+ - lib/activejob/temporal/job_id_validation.rb
338
331
  - lib/activejob/temporal/job_payload_builder.rb
339
332
  - lib/activejob/temporal/job_payload_chain_builder.rb
340
333
  - lib/activejob/temporal/job_payload_child_workflows.rb
@@ -378,10 +371,13 @@ files:
378
371
  - lib/activejob/temporal/worker_client_reloader.rb
379
372
  - lib/activejob/temporal/worker_health.rb
380
373
  - lib/activejob/temporal/worker_pool.rb
374
+ - lib/activejob/temporal/worker_registrations.rb
375
+ - lib/activejob/temporal/worker_runtime.rb
381
376
  - lib/activejob/temporal/workflow_enqueuer.rb
382
377
  - lib/activejob/temporal/workflow_enqueuer_batch.rb
383
378
  - lib/activejob/temporal/workflow_id_builder.rb
384
379
  - lib/activejob/temporal/workflow_identity.rb
380
+ - lib/activejob/temporal/workflow_types.rb
385
381
  - lib/activejob/temporal/workflows/aj_workflow.rb
386
382
  - lib/activejob/temporal/workflows/dead_letter_support.rb
387
383
  - lib/activejob/temporal/workflows/dead_letter_workflow.rb
@@ -394,13 +390,13 @@ files:
394
390
  - lib/activejob/temporal/workflows/workflow_local_activities.rb
395
391
  - lib/activejob/temporal/workflows/workflow_nexus.rb
396
392
  - lib/activejob/temporal/workflows/workflow_versioning.rb
393
+ - test/mutant_unit_test.rb
397
394
  homepage: https://github.com/schovi/activejob-temporal
398
395
  licenses:
399
396
  - MIT
400
397
  metadata:
401
398
  homepage_uri: https://github.com/schovi/activejob-temporal
402
- source_code_uri: https://github.com/schovi/activejob-temporal/tree/main
403
- documentation_uri: https://github.com/schovi/activejob-temporal/blob/main/docs/README.md
399
+ source_code_uri: https://github.com/schovi/activejob-temporal
404
400
  changelog_uri: https://github.com/schovi/activejob-temporal/blob/main/CHANGELOG.md
405
401
  rubygems_mfa_required: 'true'
406
402
  rdoc_options: []