# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [2.0.1] - Unreleased Minor bugfixes and improvements. ### Fixed - Fixed bug where `\TamerLib > tm > run()` would return early even if the `$timeout` is set to 0. ### Changed - `\TamerLib > tm > do()` the parameter `$callback` is now optional. If not provided, the job result will not be handled by the client and just be discarded. ## [2.0.0] - 2023-06-18 This version of TamerLib offers a comprehensive framework for implementing parallel processing in PHP applications. With features aimed at scalability and robust handling of tasks and exceptions, it allows developers to build efficient, reliable applications. This makes previous versions of TamerLib obsolete, and as such, this version is not backwards compatible with previous versions. ### Added - Parallel Processing: Utilize the full power of your CPU by executing tasks concurrently using sub-processes or remote processes. - Task Queuing: Tasks are managed using a task queue and result queue, making it easy to keep track of tasks and their results. - Horizontal Scalability: TamerLib allows the creation of Tamer Nodes which act as supervisors for workers. Nodes and workers communicate with a central Redis Server, enabling applications to scale horizontally. - Exception Handling: Exception handling is built into TamerLib, allowing developers to catch and handle exceptions thrown by workers. - Introduced `tm::initialize`, `tm::createWorker` for client setup and worker creation respectively. - Added methods `tm::do` and `tm::wait` to manage job execution and completion tracking. - `tm::initialize`, `tm::addFunction` and `tm::run` have been added to help with setting up and managing workers. - Node implementation introduced, allowing supervision of workers and horizontal scaling of applications. - Workers can now throw exceptions which are caught and re-thrown on the client side. This allows for robust error handling across different parts of the application. ## [1.0.1] - 2022-02-28 ### Added - Added more logging calls for Gearman Client ## [1.0.0] - 2022-02-09 ### Added - Initial release