Pull Request Challenge: January

Originally, I was assigned TryCatch. “At least something I can use,” I thought. Also, the module's ticket queue was 21 issues long, so there should've been something to pick up. When I took a closer look, though, I discovered the module was XS heavy (I have never written any XS, and almost no C either), and the only issue I would've been able to work on was “Mark as deprecated” — but I wasn't sure I'm able to judge whether it would be the right thing to do.

So, I emailed Neil I wanted to change my assignment, and he promptly imposed Net::HTTP::Spore on me. There was no XS, so I started with cloning the repository. I wanted to run the tests and see, but... The distribution uses Dist::Zilla. I heard lots of horrible stories about it, but in fact, I was able to
dzil listdeps | xargs cpan

even without reading the documentation (and the same for listdeps). The saurian reported 2 problems: two plugins were deprecated (NoTabsTests and EOLTests). Fortunately, the message contained the recommended replacements (Test::NoTabs and Test::EOL). So, my first pull request just contained two simple changes in the dist.ini file, and was merged the next day.

After fixing the plugins, I ran the full release tests to see whether there was something else for me to help with. And yes, I noticed one of the new plugins reported a problem: there was a test file containing a tab character! It seemed weird, though: the problematic file was a tgz archive.

Mistakenly, I reported the problem as a bug for Dist::Zilla's :TestFiles filter. Ether corrected me, saying everything in the t/ directory is a test file, but setting encoding = bytes for the file should fix the problem. I checked the dist.ini file — and discovered the encoding was already set! That led Ether to find the problem in the Test::NoTabs plugin and fix it.

As a last step, I promoted a comment in an already merged patch to a new pull request. It hasn't been merged yet, though.

Conclusion

  1. I fixed a minor issue in the second assign distribution, plus suggested another minor improvement.
  2. I helped to fix another issue in an unrelated distribution.
  3. I tried Dist::Zilla and wasn't completely disappointed.

Plus, I enjoyed the cooperation with other members of the community.

Leave a comment

About E. Choroba

user-pic I work with Perl, SQL, JavaScript, and Java, but there's only one true love.