Meta-Meta-Meta Problem Solving

This is a very old article. It has been imported from older blogging software, and the formatting, images, etc may have been lost. Some links may be broken. Some of the information may no longer be correct. Opinions expressed in this article may no longer be held.

OK, so I’m working on a project and some unexpected bug crops up. It turns out to be a bug in a dependency. I could work around it, but…

I happen to maintain the dependency, so better to fix it at source. Done. Let’s set up Travis testing for this dependency too…

Oh no, build fails. Test::Modern won’t install on all the versions of Perl I’d hoped it would. (In particular, Perl 5.6.) Why? Turns out some of Test::Modern’s dependencies use Module::Build and Module::Build::Tiny, and they require Perl 5.8.

So let’s try out Ingy’s Alt concept and release alternative distributions of these dependencies which will install cleanly on Perl 5.6. Hence Alt::Test::Warnings::ButEUMM (which led to this) and Alt::Module::Runtime::ButEUMM.

But it doesn’t stop there because of course I want to automate the process of producing these alternative distributions.

And that needs improvements to my packaging tool.

So anyway, it’s funny how fixing a small bug can lead you to making improvements to all kinds of unrelated things.