All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
5.3.0 (2024-03-25)
5.2.0 (2023-03-10)
- add release-please workflow (6acd9c3)
- pass job to ClosureWorkflowStep callback (74a804b)
- plugin to provide compatibility with lorisleiva/laravel-actions (628043c)
- update README (baccba8)
5.1.0 — 2023-02-21
- Add ability to add jobs or workflows as a group (#74)
5.0.0 — 2023-01-29
- Added support for Laravel 10
- Added support for PHP 8.2
- Dropped support for Laravel 8
- Dropped support for PHP 8.0
4.0.1 — 2022-09-22
- Fix manually failed jobs reporting as processed (#59)
4.0.0 — 2022-08-30
🎉 Check the upgrade guide here: https://laravel-venture.com/upgrade-guide.html#migrating-to-4-0-from-3-x
3.7.0 — 2022-07-09
- Added
when
andunless
methods toWorkflowDefinition
to conditionally add jobs to a workflow (#53)
3.6.5 — 2022-05-17
- Replaced
opis/closure
withlaravel/serializable-closure
(#52). Keepopis/closure
around as a dependency to preserve backwards compatibility with existing jobs that still usedOpis\Closure\SerializableClosure
for their callbacks.
3.6.4 — 2022-04-16
- Moved
UnserializeException
to correct namespace
3.6.3 — 2022-04-16
- Fixed serialization bug that could occur when using Postgres (#51)
3.6.2 — 2022-04-11
- Add
markAsFinished()
method for overridability and makemarkJobAsFinished
protected (#47). Credits, @stevebauman.
3.6.1 — 2022-04-10
- Fixes non-static method calls introduced in #44 (#48)
3.6.0 — 2022-04-05
- Added option to define custom
Workflow
andWorkflowJob
models (#44). Credits, @stevebauman.
3.5.0 — 2022-02-01
- Add support for Laravel 9 (#41)
3.4.0 — 2021-11-19
- Add
hasRan()
method to workflow to check if all jobs have at lease been attempted once (#37). Credits, @stevebauman. - Add
JobExtractor
interface to extract a workflow job instance from a Laravel queue job. This gets used by theWorkflowEventSubscriber
class.
3.3.2 — 2021-11-18
- Fix BC break if existing config was missing
workflow_step_id_generator_class
key. Credits, @stevebauman. (#40)
3.3.1 — 2021-11-18
- Clone job instance before serializing it when saving the workflow to the database. This could
lead to hard to track down bugs since
serialize
mutates the object in place.
3.3.0 — 2021-11-18
- Added
StepIdGenerator
interface to abstract id generation for workflow steps (#39).
3.2.0 — 2021-11-16
- Dropped support for Laravel 7 (#38)
- Added support for PHP 8.1 (#38)
3.1.2 — 2021-11-13
- Added missing
int
cast tojobs_failed
property ofWorkflow
model (#36). Credits, @stevebauman. - Added
vimeo/psalm
dependency for static type checking during development. - Added various missing type hints to get
psalm
to pass at level 2.
- Fixed bug where
WorkflowDefinition::hasWorkflow()
wasn't working properly when checking for the workflow's$dependencies
, too.
3.1.1 — 2021-05-13
- Store step id instead of serialized instance for dependent jobs. This could cause an error in rare cases if the job payload was too big (#30). Credits, @connors511.
3.1.0 — 2021-04-21
- Added a
hasWorkflow
method to theWorkflowDefinition
to check if a workflow contains a nested workflow.
3.0.1 — 2021-04-20
- Fixed possible race condition when multiple workers try to update the same workflow (#28). Credits, @connors511.
3.0.0 — 2021-03-30
- Added support for adding multiple instances of the same job to a workflow. Check the documentation for more details. See #14 for the discussion on this feature. Special thanks to @conors511 for his help.
- Change required minimum PHP version to 8.
- Removed
addJobWithDelay
method fromWorkflowDefinition
. You should useaddJob
and provide thedelay
parameter instead. Since this version of Venture requires PHP 8, you can make use of named arguments to skip any default parameters you don't want to change.
2.1.1 — 2021-01-20
- Specified minimum version for Laravel dependencies
2.1.0 — 2021-01-14
- Added
beforeNesting
hook to that gets called before a workflow gets added as a nested workflow. (#13)
- Made
$dependencies
parameter optional inaddWorkflow
method ofWorkflowDefinition
. It now works the same as theaddJob
methods. (#20)
- Don't call
onStepFinished
method when a job was released back onto the queue (#21)
2.0.0 — 2021-01-12
- Added support for nested workflows
- A job's dependencies have to be added to the workflow before the job itself is added. This also eliminates the problem of circular dependencies.
- All jobs in a workflow need to implement the
Illuminate\Contracts\Queue\ShouldQueue
interface. Otherwise, aNonQueueableWorkflowStepException
gets thrown. - Starting a workflow now returns the workflow instance (#10)
1.2.1 – 2020-12-14
- The
WorkflowManagerFake
now calls thebeforeCreate
hook of the workflow definition, too.
1.2.0 – 2020-12-10
- Added PHP 8 support
1.1.1 – 2020-11-20
- Publish migrations
- Use file groups for publishable assets
1.1.0 – 2020-11-16
- Added a
beforeCreate
hook to theWorkflowDefinition
class to manipulate a workflow before it gets saved to the database for the first time.
- Added missing
date
casts to thefinished_at
andfailed_at
columns on theWorkflow
model.
1.0.0 – 2020-11-12
Please see the documentation's upgrade guide to migrate from 0.x to 1.0.0.
- Added a
Workflow
facade to start defining a workflow. - Added testing helpers to inspect workflow definitions
- Added testing helpers to check if a workflow was started
- Workflows are now defined as standalone classes.
- Workflows no longer get started by chaining the
start
method on the builder. Instead, use the staticstart
method on the workflow class itself.
- Removed the static
new
method from the Workflow model. Use thedefine
method on theWorkflow
facade instead.
0.9.0 – 2020-10-20
- Add option to define a delay for a job.
0.8.0 – 2020-10-12
- Automatically register
WorkflowEventSubscriber
(shoutouts to @phcostabh for the suggestion)
0.7.0 – 2020-10-12
- Adds support for Laravel 7 (previously only 8)
0.6.1 – 2020-10-12
- Stops jobs of cancelled workflows from executing if they have already been scheduled but not yet picked up by a worker.
0.6.0 – 2020-10-10
- Added
catch
method to workflow. This method will be called everytime a job inside a workflow is marked as failed. - Make it possible to cancel a workflow. A cancelled workflow will not execute any further jobs, but will finish any job that was already running before the workflow got cancelled.