I have just released Workflow 1.46, a library for building simple state machines in Perl. The release contains a simple patch from an external contributor Oliver Welter.
Not much has happened with Workflow for a long time, lastest release was back in 2017. So it was a pleasant surprise to receive a PR.
I had to address some issues with the Travis configuration to observe a successful build. The issue was due an issue with my Dist::Zilla (dzil
) configuration requiring a newer Perl than listed in the Travis configuration.
After some yak shaving, the second build demonstrated an older known bug, which pops up once in a while as a friendly reminder that I have to find the time to address this particular issue. Anyway I was able to get a release shipped quite quickly, not because the bug was critical, but simply to avoid having PRs hanging around for too long and out of respect to the contributor - thanks again Oliver.
This brings me to emphasize some of the interesting aspects of my software development life cycle (SDLC), which was demonstrated with this release.
- The ability to evaluate issue reports and change requests easily
- The ability to build swiftly and immediately
- The ability release swiftly and immediately
The first part was bound to the branching strategy and having an established toolchain meaning: reviewing and consolidating changes (merge) and testing, all this using Perl, Dist::Zilla, Git/GitHub and the marvelous Perl test libraries.
The ability to perform continuous integration (CI) of an incoming change from a branch (pull request) to a master branch, being stable and always in a known state. Here using the same tools as listed above and Travis.
The third part, being packaging and releasing could be accomplished with ease. Using Dist::Zilla and PAUSE/CPAN.
If you want to read more about my feedback loops involved in the above process, I have written about it previously.