taskinator 0.5.0 → 0.5.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae9476e48721568bd268135aac66ccf70f0b1f9f5737e2db7c25ab22033e6e3b
4
- data.tar.gz: bba571d2cc60c017636187a88cd770889c5ac644726ac4094134d6ea48a9decd
3
+ metadata.gz: 61a5df38d4a74fdeb8608d4968db7198d2176ce298a876161391d1cb4b2d34bb
4
+ data.tar.gz: 040d41584d148bd04ab6dde0278434b53689fe6d0e506271c2fd4c6d34c2ff46
5
5
  SHA512:
6
- metadata.gz: 5d2912f45a9200d3f2abce1cc4fd651b2369d0663cbad219e0e16fe08990ad0f9ecdbf49402d5d2774581dd111fd0b3141f2bbe939214114094de13f3eae7d8e
7
- data.tar.gz: dd35c73baf37a5ba20bc43faebeb855fa5445c0559f331c7f8c144d0d5fcb27c05b0e72b8030d31a42b985d5322a8e539db8113c0b43341b41bbde2a8c8cfb2f
6
+ metadata.gz: 9fd50742a5248ca9c06a0f6f2dbefe5cca6196a1823276baa034614f5bde65f4850cb04f59fad47995b4767318a3c49874b5033290edea7084791792c9cb3421
7
+ data.tar.gz: 4879da6633c70180d7d724f0553905cf669d44a8cb67d1af290e5aa068f23bdcc1ab914bd06a72746f0804884122fd5b1a687ed4c47667c94368c4bf4fbf00df
@@ -1,4 +1,4 @@
1
- name: Taskinator
1
+ name: Build
2
2
 
3
3
  on:
4
4
  push:
@@ -16,7 +16,7 @@ jobs:
16
16
  - '2.7'
17
17
  - '3.0'
18
18
  steps:
19
- - uses: actions/checkout@v2
19
+ - uses: actions/checkout@v3
20
20
  - name: Set up Ruby
21
21
  uses: ruby/setup-ruby@v1
22
22
  with:
@@ -26,16 +26,3 @@ jobs:
26
26
  run: bundle exec rake build
27
27
  - name: Run tests
28
28
  run: bundle exec rake spec
29
-
30
- publish:
31
- if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
32
- needs: build
33
- runs-on: ubuntu-latest
34
- steps:
35
- - uses: actions/checkout@v2
36
- - name: Release Gem
37
- uses: discourse/publish-rubygems-action@v2
38
- env:
39
- RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
40
- GIT_NAME: Chris Stefano
41
- GIT_EMAIL: virtualstaticvoid@gmail.com
@@ -0,0 +1,18 @@
1
+ name: Release
2
+
3
+ on:
4
+ release:
5
+ types: [ published ]
6
+
7
+ jobs:
8
+ publish:
9
+ if: ${{ github.event_name == 'release' && github.event.action == 'published' }}
10
+ runs-on: ubuntu-latest
11
+ steps:
12
+ - uses: actions/checkout@v3
13
+ - name: Release Gem
14
+ uses: virtualstaticvoid/publish-rubygems-action@v4
15
+ env:
16
+ GIT_NAME: "Chris Stefano"
17
+ GIT_EMAIL: "virtualstaticvoid@gmail.com"
18
+ RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
data/CHANGELOG.md CHANGED
@@ -1,239 +1,257 @@
1
+ v?.?.? - ?? ??? ????
2
+ ---
3
+
4
+ v0.5.2 - 04 Oct 2024
5
+ ---
6
+ * Time arguments fix for Redis 5.0. Fixes #28
7
+
8
+ v0.5.1 - 06 Jan 2023
9
+ ---
10
+ * Include process definition in processes, tasks and payloads to aid debugging.
11
+ * Increased test coverage for process and task specs.
12
+ * Removed `statsd` instrumentation.
13
+ * Removed unused `Taskinator::Visitor::XmlVisitor` implementation.
14
+ * Various refactorings and clean ups.
15
+ * Bug fixes for process class when used as a sub-process
16
+ * Add handling for unknown types when deserializing old processes
17
+ * Raises `UnknownTypeError` when trying to invoke processes or Jobs of unknown types
18
+
1
19
  v0.5.0 - 18 Feb 2022
2
20
  ---
3
- Removed unused `ProcessWorker` class and related queue methods.
4
- Refactored `TestQueueAdapter` to correctly implement queue adapter for use in specs.
5
- Added deprecation for `Taskinator::Process::Concurrent#concurrency_method` option.
21
+ * Removed unused `ProcessWorker` class and related queue methods.
22
+ * Refactored `TestQueueAdapter` to correctly implement queue adapter for use in specs.
23
+ * Added deprecation for `Taskinator::Process::Concurrent#concurrency_method` option.
6
24
 
7
25
  v0.4.7 - 17 Feb 2022
8
26
  ---
9
- Use newer format for `pipelined` and `multi` requests in Redis.
27
+ * Use newer format for `pipelined` and `multi` requests in Redis.
10
28
 
11
29
  v0.4.6 - 12 Feb 2022
12
30
  ---
13
- Upgrade actionpack for [information vulnerability fix](https://github.com/virtualstaticvoid/taskinator/security/dependabot/3).
31
+ * Upgrade actionpack for [information vulnerability fix](https://github.com/virtualstaticvoid/taskinator/security/dependabot/3).
14
32
 
15
33
  v0.4.5 - 30 Jan 2022
16
34
  ---
17
- Upgrade sidekiq dependency for [CVE-2022-23837](https://github.com/advisories/GHSA-jrfj-98qg-qjgv).
35
+ * Upgrade sidekiq dependency for [CVE-2022-23837](https://github.com/advisories/GHSA-jrfj-98qg-qjgv).
18
36
 
19
37
  v0.4.4 - 17 Jan 2022
20
38
  ---
21
- Add support for `ActiveJob`.
39
+ * Add support for `ActiveJob`.
22
40
 
23
41
  v0.4.3 - 14 Jan 2022
24
42
  ---
25
- Add `#find_process` and `#find_task` methods to `Taskinator::Api`.
26
- Bug fix to API when enumerating processes.
27
- Updated dependencies.
43
+ * Add `#find_process` and `#find_task` methods to `Taskinator::Api`.
44
+ * Bug fix to API when enumerating processes.
45
+ * Updated dependencies.
28
46
 
29
47
  v0.4.2 - 16 Mar 2021
30
48
  ---
31
- Bug fix for process/task keys not expired upon completion.
49
+ * Bug fix for process/task keys not expired upon completion.
32
50
 
33
51
  v0.4.1 - 15 Mar 2021
34
52
  ---
35
- Optimisation to exclude sub-processes which don't have any tasks.
36
- Preparations for upgrade to Ruby 3 and ActiveSupport 6
53
+ * Optimisation to exclude sub-processes which don't have any tasks.
54
+ * Preparations for upgrade to Ruby 3 and ActiveSupport 6
37
55
 
38
56
  v0.4.0 - 4 Mar 2021
39
57
  ---
40
- Bug fix `job` tasks which have no arguments to the `perform` method.
41
- Added support for having `perform` method as a class method.
58
+ * Bug fix `job` tasks which have no arguments to the `perform` method.
59
+ * Added support for having `perform` method as a class method.
42
60
 
43
61
  v0.3.16 - 17 Feb 2021
44
62
  ---
45
- Bug fix to deincrement pending counts for sequential tasks.
46
- Bug fix to allow concurrent tasks to be retried (via Resque) and to complete processes.
63
+ * Bug fix to decrement pending counts for sequential tasks.
64
+ * Bug fix to allow concurrent tasks to be retried (via Resque) and to complete processes.
47
65
 
48
66
  v0.3.15 - 22 Nov 2018
49
67
  ---
50
- Updated dependencies.
68
+ * Updated dependencies.
51
69
 
52
70
  v0.3.14 - 13 Jul 2018
53
71
  ---
54
- Updated dependencies.
55
- Removed gemnasium.
72
+ * Updated dependencies.
73
+ * Removed gemnasium.
56
74
 
57
75
  v0.3.13 - 23 Sep 2017
58
76
  ---
59
- Updated dependencies.
77
+ * Updated dependencies.
60
78
 
61
79
  v0.3.12 - 23 Sep 2017
62
80
  ---
63
- Spec fixes.
64
- Updated dependencies.
81
+ * Spec fixes.
82
+ * Updated dependencies.
65
83
 
66
84
  v0.3.11 - 1 Nov 2016
67
85
  ---
68
- Removed `redis-semaphore` gem and use INCRBY to track pending concurrent tasks instead.
69
- Added instrumentation using statsd.
70
- Bug fixes to key expiry logic.
71
- Refactored process and task state transistions.
86
+ * Removed `redis-semaphore` gem and use INCRBY to track pending concurrent tasks instead.
87
+ * Added instrumentation using statsd.
88
+ * Bug fixes to key expiry logic.
89
+ * Refactored process and task state transistions.
72
90
 
73
91
  v0.3.10 - 1 Nov 2016
74
92
  ---
75
- Added support for serializing to XML.
76
- Improvements to process and task states.
93
+ * Added support for serializing to XML.
94
+ * Improvements to process and task states.
77
95
 
78
96
  v0.3.9 - 12 Sep 2016
79
97
  ---
80
- Added benchmark for redis-mutex.
98
+ * Added benchmark for redis-mutex.
81
99
 
82
100
  v0.3.7 - 18 Aug 2016
83
101
  ---
84
- Bug fix to `option?` method.
102
+ * Bug fix to `option?` method.
85
103
 
86
104
  v0.3.6 - 11 Nov 2015
87
105
  ---
88
- Added visitor for performing clean up of completed processes/tasks.
89
- Performance improvement to instrumentation payload; removed references to task/process and use intrinsic types.
90
- Clean up of keys, via `cleanup` method use key expiry.
106
+ * Added visitor for performing clean up of completed processes/tasks.
107
+ * Performance improvement to instrumentation payload; removed references to task/process and use intrinsic types.
108
+ * Clean up of keys, via `cleanup` method use key expiry.
91
109
 
92
110
  v0.3.5 - 02 Nov 2015
93
111
  ---
94
- Updated the keys used when persisting processes and tasks in Redis, so they fall in the same key space.
95
- Added clean up code to remove data from Redis when a process completes.
96
- Introduced `Taskinator.generate_uuid` method
97
- Use Redis pipelined mode to persist processes and tasks.
98
- Added warning output to log if serialized arguments are bigger than 2MB.
99
- Introduced scoping for keys in Redis in order to better support multi-tenancy requirements.
100
- Added XmlVisitor for extracting processes/tasks into XML.
101
- Introduced `ProcessWorker` (incomplete) which will be used to incrementally build sub-process in order to speed up overall processing for big processes.
112
+ * Updated the keys used when persisting processes and tasks in Redis, so they fall in the same key space.
113
+ * Added clean up code to remove data from Redis when a process completes.
114
+ * Introduced `Taskinator.generate_uuid` method
115
+ * Use Redis pipelined mode to persist processes and tasks.
116
+ * Added warning output to log if serialized arguments are bigger than 2MB.
117
+ * Introduced scoping for keys in Redis in order to better support multi-tenancy requirements.
118
+ * Added XmlVisitor for extracting processes/tasks into XML.
119
+ * Introduced `ProcessWorker` (incomplete) which will be used to incrementally build sub-process in order to speed up overall processing for big processes.
102
120
 
103
121
  v0.3.3 - 29 Oct 2015
104
122
  ---
105
- Bug fix for options handling when defining processes using `define_concurrent_process`.
123
+ * Bug fix for options handling when defining processes using `define_concurrent_process`.
106
124
 
107
125
  v0.3.2 - 18 Sep 2015
108
126
  ---
109
- Bug fix to argument handling when using `create_process_remotely` method.
127
+ * Bug fix to argument handling when using `create_process_remotely` method.
110
128
 
111
129
  v0.3.1 - 16 Sep 2015
112
130
  ---
113
- Added redis-semaphore gem, for fix to concurrent processes completion logic.
131
+ * Added redis-semaphore gem, for fix to concurrent processes completion logic.
114
132
 
115
133
  v0.3.0 - 28 Aug 2015
116
134
  ---
117
- Added created_at and updated_at to process and task as attributes.
118
- Improved serialization visitor to include an optional converter block for deserialization of attribute values.
119
- Corrections to lazy loader logic and speed improvements.
120
- Removed JobWorker as it's no longer necessary.
121
- Improvements to instrumentation.
122
- Removed workflow gem, and refactored process and task to implement the basics instead.
123
- Several bug fixes.
135
+ * Added created_at and updated_at to process and task as attributes.
136
+ * Improved serialization visitor to include an optional converter block for deserialization of attribute values.
137
+ * Corrections to lazy loader logic and speed improvements.
138
+ * Removed JobWorker as it's no longer necessary.
139
+ * Improvements to instrumentation.
140
+ * Removed workflow gem, and refactored process and task to implement the basics instead.
141
+ * Several bug fixes.
124
142
 
125
143
  v0.2.0 - 31 Jul 2015
126
144
  ---
127
- Bug fix for `create_process_remotely` so that it returns the process uuid instead of nil.
128
- Removed reload functionality, since it isn't used anymore
129
- Added missing instrumentation events for task, job and subprocess completed events.
130
- Bug fix for when `sequential` or `concurrent` steps don't have any tasks to still continue processing.
131
- Refactoring to remove dead code and "reload" functionality.
132
- Improvements to console and rake to use console instrumenter.
133
- Consolidation of instrumentation events. Added `type` to payload.
134
- Improvements to error handling.
145
+ * Bug fix for `create_process_remotely` so that it returns the process uuid instead of nil.
146
+ * Removed reload functionality, since it isn't used anymore
147
+ * Added missing instrumentation events for task, job and subprocess completed events.
148
+ * Bug fix for when `sequential` or `concurrent` steps don't have any tasks to still continue processing.
149
+ * Refactoring to remove dead code and "reload" functionality.
150
+ * Improvements to console and rake to use console instrumenter.
151
+ * Consolidation of instrumentation events. Added `type` to payload.
152
+ * Improvements to error handling.
135
153
 
136
154
  v0.1.1 - 23 Jul 2015 [Yanked]
137
155
  ---
138
- Bug fix for option parameter handling.
156
+ * Bug fix for option parameter handling.
139
157
 
140
158
  v0.1.0 - 23 Jul 2015 [Yanked]
141
159
  ---
142
- Fixed issue with persistence of options passed to `create_process` on the respective `Process` and `Task` instances.
143
- Improvements to process creation logic.
144
- Namespaced instrumentation event names.
145
- Added process completed, cancelled and failed instrumentation events.
146
- Include additional data in the instrumentation payload. E.g. Process options and percentages.
147
- Refactored the way processes/tasks get queued, to prevent unnecessary queuing of contained processes/tasks.
148
- Removed `ProcessWorker` since it isn't needed anymore.
160
+ * Fixed issue with persistence of options passed to `create_process` on the respective `Process` and `Task` instances.
161
+ * Improvements to process creation logic.
162
+ * Namespaced instrumentation event names.
163
+ * Added process completed, cancelled and failed instrumentation events.
164
+ * Include additional data in the instrumentation payload. E.g. Process options and percentages.
165
+ * Refactored the way processes/tasks get queued, to prevent unnecessary queuing of contained processes/tasks.
166
+ * Removed `ProcessWorker` since it isn't needed anymore.
149
167
 
150
168
  v0.0.18 - 14 Jul 2015
151
169
  ---
152
- Fixed issue with `Taskinator::Api::Processes#each` method, which was causing a Segmentation fault.
153
- Added statistics information.
154
- Improved specifications code coverage.
170
+ * Fixed issue with `Taskinator::Api::Processes#each` method, which was causing a Segmentation fault.
171
+ * Added statistics information.
172
+ * Improved specifications code coverage.
155
173
 
156
174
  v0.0.17 - 11 Jul 2015
157
175
  ---
158
- Fixed issue with `Taskinator::Task#each` method, which was causing a Segmentation fault.
159
- Added `define_sequential_process` and `define_concurrent_process` methods for defining processes.
160
- Added `ConsoleInstrumenter` instrumenter implementation.
161
- Required `resque` for console and rake tasks, to make debugging easier
176
+ * Fixed issue with `Taskinator::Task#each` method, which was causing a Segmentation fault.
177
+ * Added `define_sequential_process` and `define_concurrent_process` methods for defining processes.
178
+ * Added `ConsoleInstrumenter` instrumenter implementation.
179
+ * Required `resque` for console and rake tasks, to make debugging easier
162
180
 
163
181
  v0.0.16 - 25 Jun 2015
164
182
  ---
165
- Added ability to enqueue the creation of processes; added a new worker, `CreateProcessWorker`
166
- Added support for instrumentation
167
- Improvements to error handling
168
- Bug fix for the persistence of the `queue` attribute for `Process` and `Task`
169
- Code clean up and additional specs added
183
+ * Added ability to enqueue the creation of processes; added a new worker, `CreateProcessWorker`
184
+ * Added support for instrumentation
185
+ * Improvements to error handling
186
+ * Bug fix for the persistence of the `queue` attribute for `Process` and `Task`
187
+ * Code clean up and additional specs added
170
188
 
171
189
  v0.0.15 - 28 May 2015
172
190
  ---
173
- Added ability to specify the queue to use when enqueing processes, tasks and jobs
174
- Improvements to specs for testing with sidekiq; added `rspec-sidekiq` as development dependency
175
- Gem dependencies updated as per Gemnasium advisory
191
+ * Added ability to specify the queue to use when enqueing processes, tasks and jobs
192
+ * Improvements to specs for testing with sidekiq; added `rspec-sidekiq` as development dependency
193
+ * Gem dependencies updated as per Gemnasium advisory
176
194
 
177
195
  v0.0.14 - 12 May 2015
178
196
  ---
179
- Bug fix for fail! methods
180
- Bug fix to parameter handling by for_each method
197
+ * Bug fix for fail! methods
198
+ * Bug fix to parameter handling by for_each method
181
199
 
182
200
  v0.0.13 - 11 May 2015
183
201
  ---
184
- Bug fix to `Taskinator::Api` for listing of processes; should only include top-level processes
185
- Gem dependencies updated as per Gemnasium advisory
202
+ * Bug fix to `Taskinator::Api` for listing of processes; should only include top-level processes
203
+ * Gem dependencies updated as per Gemnasium advisory
186
204
 
187
205
  v0.0.12 - 20 Apr 2015
188
206
  ---
189
- Gem dependencies updated as per Gemnasium advisory
207
+ * Gem dependencies updated as per Gemnasium advisory
190
208
 
191
209
  v0.0.11 - 2 Mar 2015
192
210
  ---
193
- Gem dependencies updated as per Gemnasium advisory
211
+ * Gem dependencies updated as per Gemnasium advisory
194
212
 
195
213
  v0.0.10 - 26 Feb 2015
196
214
  ---
197
- Documentation updates
215
+ * Documentation updates
198
216
 
199
217
  v0.0.9 - 19 Dec 2014
200
218
  ---
201
- Various bug fixes
202
- Added error logging
203
- Workflow states now include `complete` event
204
- Gem dependencies updated as per Gemnasium advisory
219
+ * Various bug fixes
220
+ * Added error logging
221
+ * Workflow states now include `complete` event
222
+ * Gem dependencies updated as per Gemnasium advisory
205
223
 
206
224
  v0.0.8 - 11 Nov 2014
207
225
  ---
208
- Added support for argument chaining with `for_each` and `transform`
209
- Documentation updates
210
- Gem dependencies updated as per Gemnasium advisory
226
+ * Added support for argument chaining with `for_each` and `transform`
227
+ * Documentation updates
228
+ * Gem dependencies updated as per Gemnasium advisory
211
229
 
212
230
  v0.0.7 - 16 Oct 2014
213
231
  ---
214
- Added better option handling; introduced `option?(key)` method
215
- Added support for definining the expected arguments for a process
216
- Gem dependencies updated as per Gemnasium advisory
232
+ * Added better option handling; introduced `option?(key)` method
233
+ * Added support for definining the expected arguments for a process
234
+ * Gem dependencies updated as per Gemnasium advisory
217
235
 
218
236
  v0.0.5 - 17 Sep 2014
219
237
  ---
220
- Various of bug fixes
221
- Improved error handling
222
- Added logging for queuing of processes, tasks and jobs
238
+ * Various of bug fixes
239
+ * Improved error handling
240
+ * Added logging for queuing of processes, tasks and jobs
223
241
 
224
242
  v0.0.4 - 12 Sep 2014
225
243
  ---
226
- Improvements to serialization; make use of GlobalID functionality
227
- Added support for "job" tasks; reusing existing workers as tasks
244
+ * Improvements to serialization; make use of GlobalID functionality
245
+ * Added support for "job" tasks; reusing existing workers as tasks
228
246
 
229
247
  v0.0.3 - 2 Sep 2014
230
248
  ---
231
- Added failure steps to workflow of processes and tasks
249
+ * Added failure steps to workflow of processes and tasks
232
250
 
233
251
  v0.0.2 - 12 Aug 2014
234
252
  ---
235
- Refactored how tasks are defined in definitions
253
+ * Refactored how tasks are defined in definitions
236
254
 
237
255
  v0.0.1 - 12 Aug 2014
238
256
  ---
239
- Initial release
257
+ * Initial release
data/Gemfile CHANGED
@@ -5,7 +5,7 @@ gemspec
5
5
 
6
6
  # queues
7
7
  gem 'activejob' , '>= 5.0.0'
8
- gem 'sidekiq' , '>= 3.5.0'
8
+ gem 'sidekiq' , '>= 3.5.0', '< 7.0.0'
9
9
  gem 'rspec-sidekiq' , '>= 2.1.0'
10
10
 
11
11
  gem 'delayed_job' , '~> 4.1.0'