0.0.9 ===== Bug Fix: * Syntax error on generated migration Features: * Upgrading dependency to delayed_job * Move to gemcutter * Can be installed as a plugin or gem * Improved Documentation * Callbacks before and after stage/pipeline execution * Association to an external entity through external_id (Please refer to documentation) 0.0.8 ===== Bug Fix: * Clearing message when restarting a failed stage * Only saves the pipeline if it's a new record (client code is free to pass an already saved pipeline if needed) * Capturing generic Exception instead of StandardError (in case of Interrupts, Timeouts, ...) * Auto-recovering from errors was failing on InvalidStatusError. Added a new :retry status to differentiate between a paused or auto-recoverable error 0.0.7 ===== Features: * Allowing for user-defined default failure mode: when generic errors are raised, pipeline can be paused (default) or fail. Usage: class MySamplePipeline < Pipeline::Base self.default_failure_mode = :cancel end Bug Fix: * Refreshes the pipeline and stage statuses before execution (at runtime) in case of offline status update * Rescue from ActiveRecord::RecordNotFound instead of relying on ActiveRecord#find(id) returning nil 0.0.6 ===== Bug Fix: * Logging error details when a stage raises exception 0.0.5 ===== Bug Fix: * Fixing association Stage -> PipelineInstance to use custom foreign_key 0.0.4 ===== Features: * Allowing for custom name on stage 0.0.3 ===== Bug Fix: * Autoloading delayed_job to avoid hardcoded dependency to collectiveidea's fork Known Issue: * Rails' tests/specs will only work if delayed_job is installed as a gem, rather than a plugin. Need to investigate further... 0.0.2 ===== Bug Fix: * Bundling migrations on generator to avoid timestamp clashing 0.0.1 ===== Initial Release Features: * Execution of sequential user-defined stages in an asynchronous pipeline * Persistence of pipeline instances and stages * Error recovery strategies: * Irrecoverable errors fail the entire pipeline * Recoverable errors are automatically retried (using dj's exponential retry strategy) * Recoverable errors that require user input pause the pipeline for further retry * Cancelling of a paused pipeline