Pull Request Club October 2021: App::ConsistentRandomPassword

3 minute read

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.

Overview

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 project dependencies:

$ 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 :wink:.

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.md file 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 Dist::Zilla .build/ directory was mentioned in the 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 directory.

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! :smiley:


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.


Support

If you like what I do and want to spur me on to submit even more PRs, please buy me a coffee or support me on Patreon!

buy me a coffee logo Become a patron