virtualstaticvoid/taskinator

View on GitHub
CHANGELOG.md

Summary

Maintainability
Test Coverage
v?.?.? - ?? ??? ????
---

v0.5.1 - 06 Jan 2023
---
* Include process definition in processes, tasks and payloads to aid debugging.
* Increased test coverage for process and task specs.
* Removed `statsd` instrumentation.
* Removed unused `Taskinator::Visitor::XmlVisitor` implementation.
* Various refactorings and clean ups.
* Bug fixes for process class when used as a sub-process
* Add handling for unknown types when deserializing old processes
* Raises `UnknownTypeError` when trying to invoke processes or Jobs of unknown types

v0.5.0 - 18 Feb 2022
---
* Removed unused `ProcessWorker` class and related queue methods.
* Refactored `TestQueueAdapter` to correctly implement queue adapter for use in specs.
* Added deprecation for `Taskinator::Process::Concurrent#concurrency_method` option.

v0.4.7 - 17 Feb 2022
---
* Use newer format for `pipelined` and `multi` requests in Redis.

v0.4.6 - 12 Feb 2022
---
* Upgrade actionpack for [information vulnerability fix](https://github.com/virtualstaticvoid/taskinator/security/dependabot/3).

v0.4.5 - 30 Jan 2022
---
* Upgrade sidekiq dependency for [CVE-2022-23837](https://github.com/advisories/GHSA-jrfj-98qg-qjgv).

v0.4.4 - 17 Jan 2022
---
* Add support for `ActiveJob`.

v0.4.3 - 14 Jan 2022
---
* Add `#find_process` and `#find_task` methods to `Taskinator::Api`.
* Bug fix to API when enumerating processes.
* Updated dependencies.

v0.4.2 - 16 Mar 2021
---
* Bug fix for process/task keys not expired upon completion.

v0.4.1 - 15 Mar 2021
---
* Optimisation to exclude sub-processes which don't have any tasks.
* Preparations for upgrade to Ruby 3 and ActiveSupport 6

v0.4.0 - 4 Mar 2021
---
* Bug fix `job` tasks which have no arguments to the `perform` method.
* Added support for having `perform` method as a class method.

v0.3.16 - 17 Feb 2021
---
* Bug fix to decrement pending counts for sequential tasks.
* Bug fix to allow concurrent tasks to be retried (via Resque) and to complete processes.

v0.3.15 - 22 Nov 2018
---
* Updated dependencies.

v0.3.14 - 13 Jul 2018
---
* Updated dependencies.
* Removed gemnasium.

v0.3.13 - 23 Sep 2017
---
* Updated dependencies.

v0.3.12 - 23 Sep 2017
---
* Spec fixes.
* Updated dependencies.

v0.3.11 - 1 Nov 2016
---
* Removed `redis-semaphore` gem and use INCRBY to track pending concurrent tasks instead.
* Added instrumentation using statsd.
* Bug fixes to key expiry logic.
* Refactored process and task state transistions.

v0.3.10 - 1 Nov 2016
---
* Added support for serializing to XML.
* Improvements to process and task states.

v0.3.9 - 12 Sep 2016
---
* Added benchmark for redis-mutex.

v0.3.7 - 18 Aug 2016
---
* Bug fix to `option?` method.

v0.3.6 - 11 Nov 2015
---
* Added visitor for performing clean up of completed processes/tasks.
* Performance improvement to instrumentation payload; removed references to task/process and use intrinsic types.
* Clean up of keys, via `cleanup` method use key expiry.

v0.3.5 - 02 Nov 2015
---
* Updated the keys used when persisting processes and tasks in Redis, so they fall in the same key space.
* Added clean up code to remove data from Redis when a process completes.
* Introduced `Taskinator.generate_uuid` method
* Use Redis pipelined mode to persist processes and tasks.
* Added warning output to log if serialized arguments are bigger than 2MB.
* Introduced scoping for keys in Redis in order to better support multi-tenancy requirements.
* Added XmlVisitor for extracting processes/tasks into XML.
* Introduced `ProcessWorker` (incomplete) which will be used to incrementally build sub-process in order to speed up overall processing for big processes.

v0.3.3 - 29 Oct 2015
---
* Bug fix for options handling when defining processes using `define_concurrent_process`.

v0.3.2 - 18 Sep 2015
---
* Bug fix to argument handling when using `create_process_remotely` method.

v0.3.1 - 16 Sep 2015
---
* Added redis-semaphore gem, for fix to concurrent processes completion logic.

v0.3.0 - 28 Aug 2015
---
* Added created_at and updated_at to process and task as attributes.
* Improved serialization visitor to include an optional converter block for deserialization of attribute values.
* Corrections to lazy loader logic and speed improvements.
* Removed JobWorker as it's no longer necessary.
* Improvements to instrumentation.
* Removed workflow gem, and refactored process and task to implement the basics instead.
* Several bug fixes.

v0.2.0 - 31 Jul 2015
---
* Bug fix for `create_process_remotely` so that it returns the process uuid instead of nil.
* Removed reload functionality, since it isn't used anymore
* Added missing instrumentation events for task, job and subprocess completed events.
* Bug fix for when `sequential` or `concurrent` steps don't have any tasks to still continue processing.
* Refactoring to remove dead code and "reload" functionality.
* Improvements to console and rake to use console instrumenter.
* Consolidation of instrumentation events. Added `type` to payload.
* Improvements to error handling.

v0.1.1 - 23 Jul 2015  [Yanked]
---
* Bug fix for option parameter handling.

v0.1.0 - 23 Jul 2015 [Yanked]
---
* Fixed issue with persistence of options passed to `create_process` on the respective `Process` and `Task` instances.
* Improvements to process creation logic.
* Namespaced instrumentation event names.
* Added process completed, cancelled and failed instrumentation events.
* Include additional data in the instrumentation payload. E.g. Process options and percentages.
* Refactored the way processes/tasks get queued, to prevent unnecessary queuing of contained processes/tasks.
* Removed `ProcessWorker` since it isn't needed anymore.

v0.0.18 - 14 Jul 2015
---
* Fixed issue with `Taskinator::Api::Processes#each` method, which was causing a Segmentation fault.
* Added statistics information.
* Improved specifications code coverage.

v0.0.17 - 11 Jul 2015
---
* Fixed issue with `Taskinator::Task#each` method, which was causing a Segmentation fault.
* Added `define_sequential_process` and `define_concurrent_process` methods for defining processes.
* Added `ConsoleInstrumenter` instrumenter implementation.
* Required `resque` for console and rake tasks, to make debugging easier

v0.0.16 - 25 Jun 2015
---
* Added ability to enqueue the creation of processes; added a new worker, `CreateProcessWorker`
* Added support for instrumentation
* Improvements to error handling
* Bug fix for the persistence of the `queue` attribute for `Process` and `Task`
* Code clean up and additional specs added

v0.0.15 - 28 May 2015
---
* Added ability to specify the queue to use when enqueing processes, tasks and jobs
* Improvements to specs for testing with sidekiq; added `rspec-sidekiq` as development dependency
* Gem dependencies updated as per Gemnasium advisory

v0.0.14 - 12 May 2015
---
* Bug fix for fail! methods
* Bug fix to parameter handling by for_each method

v0.0.13 - 11 May 2015
---
* Bug fix to `Taskinator::Api` for listing of processes; should only include top-level processes
* Gem dependencies updated as per Gemnasium advisory

v0.0.12 - 20 Apr 2015
---
* Gem dependencies updated as per Gemnasium advisory

v0.0.11 - 2 Mar 2015
---
* Gem dependencies updated as per Gemnasium advisory

v0.0.10 - 26 Feb 2015
---
* Documentation updates

v0.0.9 - 19 Dec 2014
---
* Various bug fixes
* Added error logging
* Workflow states now include `complete` event
* Gem dependencies updated as per Gemnasium advisory

v0.0.8 - 11 Nov 2014
---
* Added support for argument chaining with `for_each` and `transform`
* Documentation updates
* Gem dependencies updated as per Gemnasium advisory

v0.0.7 - 16 Oct 2014
---
* Added better option handling; introduced `option?(key)` method
* Added support for definining the expected arguments for a process
* Gem dependencies updated as per Gemnasium advisory

v0.0.5 - 17 Sep 2014
---
* Various of bug fixes
* Improved error handling
* Added logging for queuing of processes, tasks and jobs

v0.0.4 - 12 Sep 2014
---
* Improvements to serialization; make use of GlobalID functionality
* Added support for "job" tasks; reusing existing workers as tasks

v0.0.3 - 2 Sep 2014
---
* Added failure steps to workflow of processes and tasks

v0.0.2 - 12 Aug 2014
---
* Refactored how tasks are defined in definitions

v0.0.1 - 12 Aug 2014
---
* Initial release