The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=pod

=for comment
DO NOT EDIT. This Pod was generated by Swim.
See http://github.com/ingydotnet/swim-pm#readme

=encoding utf8

=head1 Zilla::Dist::Contributing

You probably linked to here from a C<Contributing> or C<CONTRIBUTING>
document, for a Project that you are interested in contributing to. Welcome!

This is the generic documentation for how to contribute to that Project.
It is stored separately from the project, so that it can be easily be kept
up to date.

This Project is targeted to ship to CPAN and uses L<Zilla::Dist> to do that.
This means that things are laid out somewhat differently than a "normal" Perl
module repository. A project in this style looks like this at the top level:

=over

=item C<Changes>     

A YAML changelog history

=item C<Contributing>

Instructions for contributing to the project

=item C<Makefile>    

All the automation for developing and shipping

=item C<Meta>        

A YAML file of all metadata needed

=item C<ReadMe.pod>  

Top level doc in a format for GitHub

=item C<.travis.yml> 

A generated Travis-CI instruction file

=item C<bin/>  

Installable bin scripts

=item C<doc/>  

All the Project documentation

=item C<eg/>   

A directory of Project examples

=item C<ext/>  

External repositories

=item C<lib/>  

Project library code

=item C<note/> 

Project note files

=item C<pkg/>  

Any extra files needed for packaging a release

=item C<share/>

Ancillary files that ship and install with the release

=item C<test/> 

Project test suite


=back

The documentation is written in L<Swim> instead of Pod. Swim can make docs
every bit as nice as Pod, but in a format nicer than even Markdown.

Everything else is pretty familiar. Even though this layout is quite a
departure from the CPAN style, the content that actually ships to CPAN is
completely in the traditional CPAN style. Swim becomes Pod and tests are in
the C<t/> directory.

This style is meant to be a modern combination of styles and ideas from Perl
and other programming languages. It allows the developer to use more modern
tools and ideas, while keeping the published result compatible with the most
stable and trusted CPAN standards.

When L<Zilla::Dist> generates a distribution for CPAN, it first creates a
C<cpan/> directory, with everything converted into a C<Dist::Zilla> style, and
then invokes C<dzil build> to create the CPAN ready tarball.

To see the C<cpan/> directory, run:

    make cpan

To see the distribution directory, run:

    make distdir

To see all the other Makefile targets, run:

    make help

=head2 Testing

The C<bin>, C<lib> and C<test> directories contain normal code. Make your
changes and test them with:

    make test

which simply runs:

    prove -lv test/

=head2 Installing Dependencies

Even though this Project is managed by L<Zilla::Dist>, you probably don't need
to install it. Many C<Makefile> targets require it, but things like C<make
test> do not. If you do need C<Zilla::Dist> to be installed, this is the best
command to use:

    cpanm --notest Zilla::Dist

This can take a long time, as it needs L<Dist::Zilla> and friends, but it
should only be slow once.

To install the other Project specific dependencies, just run this command:

    make install-deps

=cut