Blame CONTRIBUTING.mkdn

Packit 3f4df8
## HOW TO CONTRIBUTE
Packit 3f4df8
Packit 3f4df8
Thank you for considering contributing to this distribution.  This file
Packit 3f4df8
contains instructions that will help you work with the source code.
Packit 3f4df8
Packit 3f4df8
The distribution is managed with Dist::Zilla.  This means than many of the
Packit 3f4df8
usual files you might expect are not in the repository, but are generated at
Packit 3f4df8
release time, as is much of the documentation.  Some generated files are
Packit 3f4df8
kept in the repository as a convenience (e.g. Makefile.PL or cpanfile).
Packit 3f4df8
Packit 3f4df8
Generally, **you do not need Dist::Zilla to contribute patches**.  You do need
Packit 3f4df8
Dist::Zilla to create a tarball.  See below for guidance.
Packit 3f4df8
Packit 3f4df8
### Getting dependencies
Packit 3f4df8
Packit 3f4df8
If you have App::cpanminus 1.6 or later installed, you can use `cpanm` to
Packit 3f4df8
satisfy dependencies like this:
Packit 3f4df8
Packit 3f4df8
    $ cpanm --installdeps .
Packit 3f4df8
Packit 3f4df8
Otherwise, look for either a `Makefile.PL` or `cpanfile` file for
Packit 3f4df8
a list of dependencies to satisfy.
Packit 3f4df8
Packit 3f4df8
### Running tests
Packit 3f4df8
Packit 3f4df8
You can run tests directly using the `prove` tool:
Packit 3f4df8
Packit 3f4df8
    $ prove -l
Packit 3f4df8
    $ prove -lv t/some_test_file.t
Packit 3f4df8
Packit 3f4df8
For most of my distributions, `prove` is entirely sufficient for you to test any
Packit 3f4df8
patches you have. I use `prove` for 99% of my testing during development.
Packit 3f4df8
Packit 3f4df8
### Code style and tidying
Packit 3f4df8
Packit 3f4df8
Please try to match any existing coding style.  If there is a `.perltidyrc`
Packit 3f4df8
file, please install Perl::Tidy and use perltidy before submitting patches.
Packit 3f4df8
Packit 3f4df8
If there is a `tidyall.ini` file, you can also install Code::TidyAll and run
Packit 3f4df8
`tidyall` on a file or `tidyall -a` to tidy all files.
Packit 3f4df8
Packit 3f4df8
### Patching documentation
Packit 3f4df8
Packit 3f4df8
Much of the documentation Pod is generated at release time.  Some is
Packit 3f4df8
generated boilerplate; other documentation is built from pseudo-POD
Packit 3f4df8
directives in the source like C<=method> or C<=func>.
Packit 3f4df8
Packit 3f4df8
If you would like to submit a documentation edit, please limit yourself to
Packit 3f4df8
the documentation you see.
Packit 3f4df8
Packit 3f4df8
If you see typos or documentation issues in the generated docs, please
Packit 3f4df8
email or open a bug ticket instead of patching.
Packit 3f4df8
Packit 3f4df8
### Installing and using Dist::Zilla
Packit 3f4df8
Packit 3f4df8
Dist::Zilla is a very powerful authoring tool, optimized for maintaining a
Packit 3f4df8
large number of distributions with a high degree of automation, but it has a
Packit 3f4df8
large dependency chain, a bit of a learning curve and requires a number of
Packit 3f4df8
author-specific plugins.
Packit 3f4df8
Packit 3f4df8
To install it from CPAN, I recommend one of the following approaches for
Packit 3f4df8
the quickest installation:
Packit 3f4df8
Packit 3f4df8
    # using CPAN.pm, but bypassing non-functional pod tests
Packit 3f4df8
    $ cpan TAP::Harness::Restricted
Packit 3f4df8
    $ PERL_MM_USE_DEFAULT=1 HARNESS_CLASS=TAP::Harness::Restricted cpan Dist::Zilla
Packit 3f4df8
Packit 3f4df8
    # using cpanm, bypassing *all* tests
Packit 3f4df8
    $ cpanm -n Dist::Zilla
Packit 3f4df8
Packit 3f4df8
In either case, it's probably going to take about 10 minutes.  Go for a walk,
Packit 3f4df8
go get a cup of your favorite beverage, take a bathroom break, or whatever.
Packit 3f4df8
When you get back, Dist::Zilla should be ready for you.
Packit 3f4df8
Packit 3f4df8
Then you need to install any plugins specific to this distribution:
Packit 3f4df8
Packit 3f4df8
    $ cpan `dzil authordeps`
Packit 3f4df8
    $ dzil authordeps | cpanm
Packit 3f4df8
Packit 3f4df8
Once installed, here are some dzil commands you might try:
Packit 3f4df8
Packit 3f4df8
    $ dzil build
Packit 3f4df8
    $ dzil test
Packit 3f4df8
    $ dzil xtest
Packit 3f4df8
Packit 3f4df8
You can learn more about Dist::Zilla at http://dzil.org/
Packit 3f4df8