2021 is off to a very energetic start. Around 9th. of January, perl-workflow an older project for which I am the current maintainer, received a bug report about the error reporting section of the documentation not being up to date.
For many Perl distributions this is most relevant as rt.cpan.org is being deactivated after many years of service.
I have already transferred most of my day to day handling of bugs, issues and TODOs to GitHub issues, but I have not documented it in all places - apparently.
Before I could find the time to resolve this issue I received a PR adressing the issue from Erik Huelsmann.
This was the beginning of a new invigorating period for perl-workflow. For the following days leading up to the release 1.49 of perl-workflow.
- I received 13 PRs addressing bug and small issues, both known an unknown bugs from Erik Huelsmann - thanks Erik
- An earlier contributor chipped in with comments on PRs and issues and things got moving - thanks Oliver
- We activated the Slack I use for my open source projects and discussion on development plans, road map, issues etc. really got going
This all culminated in a maintenance and minor feature release of perl-workflow, for details see the change log below.
The PRs, issues and discussion all contributed to perl-workflow evolving as a Perl distribution and software project.
Erik Huelsmann is evaluating using perl-workflow for the LedgerSMB project and Oliver Welter is using it for the OpenXPKI project and expect more feature, bug fix and maintenance release to be shipped in 2021.
And this leads an interesting aspect of software development.
When I took over maintenance of perl-workflow from Chris Winters, I was very interested in the topic of workflows and state-machines.
I had ideas for using perl-workflow, but for what, I can no longer remember.
For several years and many releases the code evolved, especially based on contributions from the OpenXPKI developers. The the OpenXPKI project developers contributed to the codebase, since they has a use-case, which could be solved by perl-workflow.
I simply acted as the maintainer, but lacking a use case as my own, but it kept me going, simply because it was very educational and fun to work on a project, which was more than just hobby project scope.
As an author and even just a maintainer, knowing that somebody is using your software is what it is all about. Yes some projects are for scratching your own itch, but when somebody else has the same itch, collaboration is the way to go.
I have over they years received many PRs for the projects and it has kept perl-workflow going and stable. But I had no idea if anybody was actually using it, as a maintainer you tend to expect that nobody does and as activity decline as no PRs or issues are raised.
perl-workflow is not a project with a plethora of users and a gazillion stars, to me that does actually not matter. If I am not just scratching my own itch, having a single user will make it worthwhile to find the time to develop and maintain a project.
Not all interaction with users is fruitful and I think I have atleast lost one user along the way when I had not discovered a question on StackOverflow and I responded too late - but I guess, "win some, loose some" also counts for software and especially for open source.
So remember to keep your open source maintainers active, by telling them you are using their software and report bugs and make contributions.
In all this activity I completely forgot to thank Dean Hamstead for opening the issue, which seemed to trigger everything.
So thanks Dean also.
Change Log
Change log entry for release 1.49 for perl-workflow, original
1.49 2021-01-12 Maintenance and minor feature release, update not required
- Addressed an issue with return values from Workflow::Condition::GreedyOR's `evaluate_condition`, PR #50 from Erik Huelsmann
- Fixed a bug in condition caching described in issue #9, PR #27 from Erik Huelsmann
- Fixed a bug in Workflow::Condition::LazyAND with wrongful return values, PR #40 from Erik Huelsmann
- Fixed a bug in Workflow::Validator::InEnumeratedType with wrongful naming, PR #33 from Erik Huelsmann
- Updated Dist::Zilla configuration and added LICENSE file to repository based on generated from Dist::Zilla build, this should be automated like the README generation at some point
- Improved internal handling for quoting in internal SQL statements, PR #30 from Erik Huelsmann
- Improved the SQL used for database creation by adding referentiel integrity, PR #29 from Erik Huelsmann
- Addressed a bug in initialization and improved the ability to handle a database handle, PR #32 from Erik Huelsmann
- Improved loading of external of a few dependencies, improving error handling, PR #31 from Erik Huelsmann
- Additions to test suite, WIP on better scoped condition caching, PR #26 from Erik Huelsmann
- Minor feature addition addressing issue #5 with condition caching, PR #25 from Erik Huelsmann
Condition caching can be disabled by setting:
$Workflow::Condition::CACHE_RESULTS = 0; # false
The default is 1, indicating true,
- Improvements to test suite, moved from time to counter, speeding up the test, PR #24 from Erik Huelsmann
- Documentation updates, PR #23 from Erik Huelsmann
- Addressing issue #21 fixing broken URLs, PR #22 from Erik Huelsmann