This month, as part of the Pull Request Club, I was assigned the Perl distribution App::ConsistentRandomPassword. This is my report of what I found out about the project and an overview of the contributions I made.
After forking the project on GitHub and cloning the repository to my local computer I had a quick look at the code to orient myself and get an idea of what might need to be done.
The project aims to create consistent random passwords best suited for throwaway or not high-security accounts on websites.
One of the first things I noticed is that the code had never been released to CPAN. That’s definitely weird for the module of a well-known CPAN author. The last commit was also from about 6 years ago. Is this project maybe dead? I decided that even though the project seemed unmaintained, there were definitely things I could do and maybe they’d be helpful, thus it was worthwhile contributing changes to the project.
Building and testing the project
I noticed a
dzil.ini in the repository, hence this project is managed via
Dist::Zilla. The first thing to
do is therefore to install the author dependencies and then any remaining
$ dzil authordeps --missing | cpanm
$ dzil listdeps --author --missing | cpanm
Installing the dependencies worked without error, so the last step is to run the test suite:
$ dzil test
But there aren’t any tests! OMG! Ok, that’s probably going to be my first contribution then .
Pull request ideas
Given the initial review of the project, I came up with the following ideas for possible pull requests, with more likely to follow as I dig into the code:
- add tests
- add a
CONTRIBUTING.mdfile with explanations about how to set up the project, install the dependencies (including author deps) and contribute to the project
- add a GitHub Actions workflow for Linux
Submitted pull requests
Since there weren’t any tests yet, the first thing to do was add very basic tests of the main module.
While reading through the code I noticed some variables that had been declared but hadn’t been assigned to, hence they didn’t need to be there. Thus I submitted a PR to remove unused variables.
Also, I noticed that the
.build/ directory was mentioned in
git status output. I like having a clean working directory and try to
keep automatically-generated files and directories from cluttering up the
status information. Having a clean working directory might also be helpful
for other people, hence I submitted a PR to ignore the Dist::Zilla .build
Less than hoped, but definitely useful
Unfortunately, that was it for my contributions this month; I had definitely planned to do more! However, I didn’t get much time due to work commitments. Maybe I’ll get another chance to work on this project in the future.
It also took domm a while to notice that I’d submitted them, so he must have had a lot to do as well. Nevertheless, all PRs have been merged now, which is cool!
About the Pull Request Club
The Pull Request Club is a way to connect open source maintainers to contributors through monthly assignments. It’s free to join up (just use your GitHub login) and it’s free to take part. At the start of each month members receive an email with a link to the GitHub repository of their assigned project. They then have one month to submit at least one pull request (PR) to this project. One can of course submit more than one pull request! The project is built to be a successor of the CPAN Pull Request Challenge (which was specific to the Perl community) but gives members the chance to contribute to a much wider variety of programming languages.
If you like what I do and want to spur me on to submit even more PRs, please buy me a coffee!