DEV Community


Blog post: Release 1.46 of Workflow (Perl)

Computer programmer, runner, LEGO builder, powernapper, yakshaver and father of 2 boys all squeezed in the few hours available.
・2 min read

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.

  1. The ability to evaluate issue reports and change requests easily
  2. The ability to build swiftly and immediately
  3. 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.

Discussion (0)