… where I get out my virtual broom and sweep up cruft I can find in my assigned distribution for this month’s edition of the CPAN Pull Request Challenge.
This month’s module: Kavorka
Kavorka provides function signatures with the lure of the animal.
In this section I try to get a feeling for the state of the module, how up to date it is, how often people are contributing to it, how many other distributions are depending on it, how many bugs/issues it currently has, what the CPANTS kwalitee is, etc.
- last commit in October 2014 (https://github.com/tobyink/p5-kavorka)
- latest release: 1st of Nov, 2014 (https://metacpan.org/releaseKavorka)
- 1 pull request outstanding, 5 closed, no PRs in 2015
- 5 open issues in GitHub, 9 in RT
- 16 reverse dependencies via metacpan
Initial inspection of the source code
After forking the repo and cloning a local copy, I have a look at the project to see what build system it uses, if the test suite works and the tests pass, if it could do with a Travis-CI config file (or if present, if it can be updated). The initial inspection often gives inspiration for the first batch of pull requests.
- looks like a
dzil authordeps --missing | cpanm
dzil testsays: “you can’t test without any TestRunner plugins”
dist.inionly contains comments … confusing. How to build the dist?
.travis.ymlgives hints as to how to build distribution
- asked author for help concerning installation, no reply as yet
- asked on the
#pr-challengeIRC channel for help.
Dist::Inktis used for this project and that it’s the Kavorka author’s own build tool
- also needed to install
- it seems one then needs to run
distinkt-distin order to build the project and run the test suite
Parse::Keywordis required as a dependency in order that the tests run
- also needs
- it seems that
Moopsis also needed:
… which has Kavorka as a dependency. Huh? Moops is required for testing Kavorka, but Kavorka is required for Moops.
- tests now pass (there’s a warning about needing a version bump since a git tag for version 0.036 is missing)
- tried removing installed Kavorka to see if things still work
- the tests still pass
- … but the dist still doesn’t build. Seems to be due to the version bump which hasn’t been done
- find all versions still at 0.035:
- some instances turn up in sub-packages of
- looks like
meta/changes.pretalso needs to be updated to the relevant version; used info from metacpan to try to simulate correct content
- using a version equal to that of current version is also not the right thing to do:
- interestingly enough,
prove -lr tworks
- to solve the version problem I needed to bump
$VERSIONin all files to 0.037; then I needed to add a new entry to
meta/changes.pretfor this version; then the pre-build check for version numbers passed
Text::sprintfnis needed in order to check that “Checking DOAP changeset metadata is current”
distinkt-distgets most of the way. It builds the dist, but has to bail out since there’s no gpg secret key available.
- if PRs are accepted, will need to update the copyright year
What this analysis tells us is that there is a need for developer documentation so that one can get the project set up quickly. Once the project is set up and one can run things like the test suite, one can then focus on solving more involved problems. To try and help with this, a README with build instructions was added in PR#17.
podchecker searches through Perl source code for POD which
might not conform to the POD standard, and thus not necessarily be parseable
by all POD parsers. Fixing any issues found by
podchecker has the
positive effect of also removing any warnings noted in the project’s
documentation displayed on MetaCPAN.
podchecker gives the following errors and warnings:
… ok, so the POD looks good.
Check for trailing whitespace
Some projects consider this a must, and will disallow commits to be submitted which contain trailing whitespace (the Linux kernel is an example project where trailing whitespace isn’t permitted). Other projects see whitespace cleanup as simply nit-picking. Either way one sees it personally, this could be a useful pull request to a project, so it’s worthwhile fixing and submitting; the worst that can happen is that the pull request is closed unmerged.
To look for files with trailing whitespace, run
git grep ' $'. It can be
helpful to load the files found directly into
Fixed in PR#16.
Overview of the pull requests made
Since the last commit was a year ago, and issues and pull requests are of a similar age, it seems that the author unfortunatley doesn’t have much time to spend on the project (very understandable considering that this is a complex piece of software provided as open source). Thus it might be a while before the pull requests submitted here get replied to or applied.