I finally got around to releasing a major release of the Perl distribution Workflow.
The release 2 has been on it's way for a long long time. We did two pre-releases to CPAN, to the final proper release ended up as version: 2.02
. The reason for doing this was to make sure the test suite passed on all the platforms possible and when doing these public development releases, CPAN-testers pick up the releases and run the test suite on a wide range of platforms and Perl versions, but the releases do not interfere with the users of the distribution, since they are not indexed by the CPAN indexer - how awesome is that?
In addition the repository have moved into an origanisation, we are working on a website to collect some of all the scattered documentation, notes, examples and resources, More information will follow as this progresses.
After the release was made and was out in the open one of the contributors (@ehuelsmann) reported an issue with the release, so we made a new bug fix release, which was released as version: 2.03
, with an update recommendation.
This demonstrates a very important aspect of open source development, the community and the contributors, who help maintain and improve the software are super important, but perhaps more important the users, since Workflow is used by two larger projects:
We can actually get our code exercised by more that the repository tests, we can get the code put to use.
This resulted in release 2.03
, yes it was found and fixed by one of the contributors, which is also a user. This is very valuable since I am not using the distribution my self. The two mentioned projects have developers contributing to the repository, so I act more as an arbiter.
I have thought about passing on the maintenance role of the distribtion to one of the contributors, but since we currently only have the two and I am sure would could agree on this, I find my role interesting and important, since then not just one of the projects would dominate the development and maintenance of the distribution.
This sounds like we have conflicts of interests, but we do not, we share common interests in the distribution, so for now I stick on a little longer and we are a fragile little community and we get things released and fixed, slowly but eventually.
We have no larger plans for the distribution at this time, but we have a lot to do in regards to website, mainteance, clean up, so we will see what the future brings.
Change Log for 2.02
2.02 2025-01-11 Major release, update recommended
Added
- Support for configurable history classes other than
Workflow::History
- Support for configuration of observers through a separate configuration file;
i.e. independently of
Workflow
configuration - Added new observer events startup, finalize, run
- Add new accessor methods
last_action_executed
,get_all_actions
toWorkflow
object - Support for configuration of content of the first history item of a workflow
through
Workflow
(instead of through the persister) - New persister
Workflow::Persister::DBI::ExtraData
to load data from a database when loading a workflow instance
Changed
- Clarification that
Workflow::Validator
andWorkflow::Condition
define interfaces, not classes - Conditions return
Workflow::Condition::IsTrue
/Workflow::Condition::IsFalse
on success/ failure instead of throwing a condition error -
Workflow::Persister->fetch_history
returns constructor arguments instead ofWorkflow::History
objects, moving the responsibility of instantiating history instances to the factory - Logging library changed from
Log::Log4perl
to Log::Any; to get logging, install a Log::Any::Adapter - Moved
add_observer
andnotify_observers
from private to public API ofWorkflow
-
$wf->context->param( $key => undef )
removes$key
from the context instead of setting it toundef
- Autorunning now loops through executed actions instead of recursing; preventing stack overflows on very large execution chains
-
Workflow
no longer calls{commit,rollback}_transaction
; the factory has assumed this responsibility as it's the factory which is in charge of serializing workflows -
Workflow::Action->execute
must return a scalar value or undef (no references) - Renamed observer event
complete
toexecuted
, changed arguments forstate change
anexecuted
observer events to be a hash a not positional arguments.
Removed
-
Workflow::Persister->fetch_extra_workflow_data
replaced byWorkflow::Persister::DBI::ExtraData
- Removed
condition_error
in light of the changed return value of conditions - Removed
Workflow::Validator->_init
since the private function does not need to be part of the specified public interface - Removed
Workflow::Condition::CheckReturn
andWorkflow::Condition::GreedyOR
- Removed empty modules
Workflow::Condition::Nested
andWorkflow::Action::Mailer
- Support for SPOPS -
Workflow::Persister::SPOPS
- has been removed from the Workflow dist; it has been moved to the Workflow-Persister-SPOPS dist for those who still need it. Reason for removal is that it does not seem to be actively supported and the latest release (0.87; released in 2004) has failed its cpantesters tests on every released Perl version since 5.11.1
Fixed
- Workaround for Perls between 5.18 and 5.39.2 clobbering %SIG in Safe->reval()
which is used internally by
Workflow::Condition::Evaluate
Change Log for 2.03
2.03 2025-01-24 BUg fix release, update recommended
Fixed
- Instances of Workflow::Condition::IsFalse interpreted as
true
return values under$Workflow::Condition::STRICT_BOOLEANS = 0
Top comments (1)
Congrats!