Blame CONTRIBUTING.mkdn

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