pr-challenge Archives

Turning Hooks off in App::GitHooks

CPAN Pull Request Challenge selected App::GitHooks for me in February. As usually, I started by browsing the issues, and my attention was drawn to Tim Bunce’s request to add a way to skip given hooks.

Collisions in Block Names in Jemplate

Two Blocks with the Same Name

In January this year, I got Jemplate in the CPAN Pull Request Challenge. The module implements Template::Toolkit in JavaScript, so you can transfer the burden to process the templates from the server to the client.

One of the open issues in its GitHub repository caught my attention: Jemplate compiled all the templates coming from different files into one large JavaScript code-block. If you declared two blocks with the same name in two different files, they’d end up in the same hash in JavaScript, and only one would survive—but you couldn’t tell which one. Keeping block names unique across files probably isn’t part of common practice, so making the module warn you in such a case sounded like a reasonable requirement.

OrePAN2 Processes MetaCPAN Lookups in Chunks

The issue

In the last month of 2016, I was assigned OrePAN2 in the CPAN Pull Request Challenge. When browsing its issues on GitHub, I discovered #47:

Regex /m modifier bug in Perl 5.8.8 and older

It’s 2016, but the CPAN Pull Request Challenge continues. Motivated by my 100% in 2015, I subscribed to the second year, as well. Unfortunately, I didn’t have time to blog about my January PR, but it would have been more about Git than Perl, anyway.

My March assignment was Plack::Middleware::ReverseProxyPath. I noticed the module had several testers’ failures, and looking at the matrix I noticed Perl 5.8.8 was all red in both Linux and Darwin, so I decided to have a look at that.

Mocking a User Agent

My last assignment in the CPAN Pull Request Challenge 2015 was Net::Stripe. I’d never heard of the module, so I skimmed its documentation to learn it provides an API to Stripe.com. From the method list, it seemed to be some kind of a payment service. It had no tester failures, though, and the issues on GitHub were either too complex or not specific enough to give me an idea on what to start working. I asked in the Challenge’s IRC channel and got the following advice from Joel Berger and Ether:

jberger	choroba: I haven’t looked at that module, but almost
	all service wrapper modules have woeful tests because
	they require the service
...	contributing some mock service tests might be nice
	and something you could do without an account (at least
	in concept)
ether	Test::LWP::UserAgent!!

Net::SFTP::Foreign in taint mode

For October’s turn of the CPAN Pull Request Challenge, I was assigned Net::SFTP::Foreign. I concentrated on one of the latest issues reported: in recent Perl versions, the module didn’t work in taint mode.

Last Minute: HTML::Element::Replacer

As my regular readers might remember, I finished my August assignment on the 28th of September at 3 AM. I sent the email to Neil Bowers, noting it was probably too late to get a proper September assignment. Surprisingly, Neil replied with

Well, you’re on an unbeaten run so far, so if you want a September one, with 4 days left, I’ll assign you one. Want one? :-)

I imagined 4 days (I could only count 3, but hey) with maybe another two weeks of “sticking” with the assignment, and replied with Yes.

Test::Aggregate Failures under the Recent Test::Builder

My August assignment (yes, I had to "stick" with it for September) in the CPAN Pull Request Challenge was Test::Aggregate. In August, I went on vacation, and CPAN Testers' reporting was down, so I decided to solve the task after I return from the YAPC in Granada and ask for a new distribution for September with a two-week delay. It wasn't that easy, though.

Test failures in File::LibMagic

My June assignment for the CPAN Pull Request Challenge was File::LibMagic. The module had 50 FAIL reports at CPAN Testers, so I decided to start from them.

How I didn't fix AnyEvent::ForkManager

For April, I was assigned AnyEvent::ForkManager, which claims to provide an interface similar to Parallel::ForkManager, but compatible with AnyEvent. The module had some CPAN testers’ failures as well as an issue reported on GitHub, so I tried to fix it. I wasn’t quite successful, though.

About E. Choroba

user-pic I blog about Perl.