Blame CONTRIBUTING.mkdn

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