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 https://github.com/GrantStreetGroup
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 developers@grantstreet.com.
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 https://cpanmin.us | 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.