The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Contributing to Grant Street Group Open Source Projects

Grant Street Group welcomes contributions, whether they be pull requests, documentation fixes, new issues, or even publicity.

Our Open Source code lives on GitHub at

The Grant Street code on GitHub follows the standard GitHub Flow. This means forking the repo, creating a branch, making commits, and creating a Pull Request. We also welcome new GitHub Issues for any of our projects.

If you have any questions about things that aren't covered here, we can hopefully provide more help if you email

Getting Started

If you have carton available you should just be able to clone this repo, change to the directory, and run make test.

Installing dependencies

The dependencies for this project are listed in its cpanfile, this file is usually handled by Carton.

Installing Carton can be done with any CPAN client into whichever version of perl you want to use.

If you don't have permission, or just don't want to install things into your system perl, you can use App::Plenv and the perl-build plugin, or Perlbrew to install different versions of perl.

Once you have a version of perl to use for testing this, if you don't have a preference for a CPAN client, we recommend you use cpanminus.

With plenv you are able to get cpanminus with plenv install-cpanm.

Otherwise, quoting the cpanminus quickstart instructions:

Quickstart: Run the following command and it will install itself for you. You might want to run it as a root with sudo if you want to install to places like /usr/local/bin.

% curl -L | perl - App::cpanminus

If you don't have curl but wget, replace curl -L with wget -O -.

Once you have cpanminus, you can install Carton with:

cpanm Carton

With carton available, you can run make test and make sure tests pass. If they do, you're ready to start making changes and get ready to create a Pull Request.

Using Dist::Zilla

The release of this distribution is managed by Dist::Zilla which provides a lot of benefits for managing releases and modules at the expense of longer a learning curve.

However, you probably don't need it unless you want to build a release or run author tests.

In order to work with Dist::Zilla's dzil you will need to run carton install manually as the Makefile uses --without develop to avoid unnecessary dependencies.

Once those dependencies are installed, you need to use carton exec dzil so it can find them.