[This is an addendum post to a series. You may want to begin at the beginning. The last update was update #2.
IMPORTANT NOTE! When I provide you links to code on GitHub, I’m giving you links to particular commits. This allows me to show you the code as it was at the time the blog post was written and insures that the code references will make sense in the context of this post. Just be aware that the latest version of the code may be very different.]
In case you missed my talk on Date::Easy from a couple years back, I’ll sum it up for you: dates are hard, y’all.
On January 1st of 2019, a bunch of unit tests for Date::Easy started failing. It was immediately reported, of course—and can I pause here just a moment to thank Slaven Rezić (SREZIC on CPAN and eserte on GitHub), who is surely the most awesome bug reporter ever? Date::Easy is definitely a better module for his reports, and I’ve seen him reporting bugs for many others as well. Anyhow, as I dug into the suddenly failing tests—tests which begin failing even though you didn’t change any code are just a side-effect of writing a date-handling module—I figured out what was wrong. Happily, it wasn’t a problem with the module, which was still returning correct values, but rather with the unit tests themselves.
[Quick note: This is mostly a Git story, although there’s plenty of links to Perl code and Perl discussions. It also turned out to be quite a bit longer story than I originally intended. But, even though it gets pretty deep into Git features, I think it should be interesting enough for anyone who has a CPAN module and uses Git. I hope.]
The Backstory: So, a couple months back, I look in my email and spy a message from Damian Conway. Now, some of you fine readers probably know Damian personally, and I’m sure I’ll get …
For my first (real) tale, I thought I’d tell the story of how I came to be the maintainer for
I first came across this module when I was trying to find some way to test some date routines I was doing for $work. Funnily enough (or not, depending on your perspective), the date routines were themselves for testing—I’m working on introducing TDD to my department, and so I try to maintain a decent li…