Erik is deeply involved in using Workflow for another project and as his implementation there progresses he discovers bugs, discrepancies and places where improvements can be made - so Workflow is improving based on the works in another project.
Of significant changes to this release, the following stand out:
- It is now possible to configure custom workflow classes
- The workflow implementation now adheres to it's own documentation, when it comes to fetching all conditions for a given workflow state
The latter might give some issues, since even though this is regarded as a bug, it does change the behavior available in earlier versions. When such changes are implemented you are always faced with the choice of how to communicate the change. Should it be indicated as a major release or can you stick to a minor release.
We decided for the latter in this case, simply because the documentation stated a different behavior, so we regarded this as a bug. We hope it will not cause any inconveniences, but there is always the danger of somebody relying on undocumented behavior or as in this case, an implementation not adhering to the documentation.
Workflow is moving a long as mentioned on earlier occasions we are progressing towards a new major release. This does however imply that we are introducing breaking changes. This first of which are announced with this release.
I will repeat it here.
With release 2.00 Workflow::Persister::SPOPS will no longer be included in the distribution, it will possibly be made available as a separate distribution, but with decreased maintenance efforts. SPOPS does no longer seem to be actively supported and issues with Perls versions from 5.11.1 and onwards underline this fact.
Further breaking changes will be announced subsequenttially, which leads me to a pre-announcement of the next upcoming release 1.56, which is shaping up as a bug fix release. Erik is moving a long with his efforts, in parallel with the workflow releases.
I have evaluated our options for how to handle the deprecations and this first attempt is via a mention in the release notes and in this announcement. Additional steps might be taken to emphasize and communicate the changes, perhaps even as announcements emitted from the code as warnings, if we find places where such implementation is feasible. Finally we are aiming to get a sort of pre-release, made so it will be possible for Workflow users to evaluate the new major release prior to the actual release - more on this as we get closer to a release.
The original is available on GitHub.
Workflow::State->get_conditions()now returns all conditions, fixed via PR #122 addressing issue #121, This fix actually implements, what is documented, but if you rely on previously undocumented behavior, you might need to evaluate this fix
A warning emitted from the test suite has been addressed via PR #115
A timing issue observed with the Travis CI setup have been addressed in PR #112